CpClassClass.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace bizGhs\cp\classes;
  3. use bizGhs\base\classes\BaseClass;
  4. use bizGhs\shop\classes\ShopClass;
  5. use common\components\util;
  6. class CpClassClass extends BaseClass
  7. {
  8. public static $baseFile = '\bizGhs\cp\models\CpClass';
  9. public static function getClassList($where)
  10. {
  11. $data = self::getList('*', $where, 'inTurn DESC');
  12. return $data;
  13. }
  14. public static function addClass($data, $masterShop)
  15. {
  16. self::add($data);
  17. if (isset($masterShop->default) && $masterShop->default == 1) {
  18. $sjId = $masterShop->sjId ?? 0;
  19. $shopList = ShopClass::getAllByCondition(['sjId' => $sjId], null, '*', null, true);
  20. foreach ($shopList as $shop) {
  21. $shopId = $shop->id ?? 0;
  22. if ($shopId == $masterShop->id) {
  23. continue;
  24. }
  25. $chainMainId = $shop->mainId ?? 0;
  26. $chainData = $data;
  27. $chainData['mainId'] = $chainMainId;
  28. self::add($chainData, true);
  29. }
  30. }
  31. }
  32. //删除分类 ssh 20240220
  33. public static function delClass($class, $masterShop)
  34. {
  35. if ($class->isDefault == 1) {
  36. util::fail('默认分类不能删除');
  37. }
  38. $classId = $class->id ?? 0;
  39. $mainId = $class->mainId ?? 0;
  40. $className = $class->name ?? '';
  41. $defaultId = 0;
  42. $classList = self::getAllByCondition(['mainId' => $mainId], null, '*');
  43. if (!empty($classList)) {
  44. foreach ($classList as $classInfo) {
  45. if ($classInfo['isDefault'] == 1) {
  46. $defaultId = $classInfo['id'] ?? 0;
  47. }
  48. }
  49. }
  50. if (empty($defaultId)) {
  51. util::fail('没有找到默认分类');
  52. }
  53. $class->delete();
  54. CpClass::updateByCondition(['mainId' => $mainId, 'classId' => $classId], ['classId' => $defaultId]);
  55. if (isset($masterShop->default) && $masterShop->default == 1) {
  56. $sjId = $masterShop->sjId ?? 0;
  57. $shopList = ShopClass::getAllByCondition(['sjId' => $sjId], null, '*', null, true);
  58. foreach ($shopList as $shop) {
  59. $shopId = $shop->id ?? 0;
  60. if ($shopId == $masterShop->id) {
  61. continue;
  62. }
  63. $chainMainId = $shop->mainId ?? 0;
  64. $chainClassList = self::getAllByCondition(['mainId' => $chainMainId], null, '*', null, true);
  65. if (!empty($chainClassList)) {
  66. $chainDefaultId = 0;
  67. $chainDelId = 0;
  68. foreach ($chainClassList as $chainClass) {
  69. $currentId = $class['id'] ?? 0;
  70. if ($chainClass->isDefault == 1) {
  71. $chainDefaultId = $currentId;
  72. }
  73. if ($chainClass->name == $className) {
  74. $chainDelId = $currentId;
  75. $chainClass->delete();
  76. }
  77. }
  78. if (!empty($chainDelId) && !empty($chainDefaultId)) {
  79. CpClass::updateByCondition(['mainId' => $chainMainId, 'classId' => $chainDelId], ['classId' => $chainDefaultId]);
  80. }
  81. }
  82. }
  83. }
  84. }
  85. }