ItemClassController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <?php
  2. namespace ghs\controllers;
  3. use bizGhs\item\classes\ItemClassClass;
  4. use bizGhs\item\services\ItemClassService;
  5. use bizGhs\product\classes\ProductClass;
  6. use common\components\util;
  7. use Yii;
  8. class ItemClassController extends BaseController
  9. {
  10. public function actionList()
  11. {
  12. $where = ['mainId' => $this->mainId];
  13. $list = ItemClassClass::getGhsItemClassList($where);
  14. util::success($list);
  15. }
  16. //花材列表页的分类,包含今日特价分类 ssh 20220315
  17. public function actionShowClass()
  18. {
  19. $list = ItemClassClass::getShopClass($this->mainId);
  20. util::success($list);
  21. }
  22. public function actionGetAllClass()
  23. {
  24. //中央ID
  25. $list = ItemClassClass::getGhsItemClassAll($this->mainId);
  26. util::success(['list' => $list]);
  27. }
  28. public function actionAdd()
  29. {
  30. $post = Yii::$app->request->post();
  31. $post['adminId'] = $this->adminId;
  32. $post['mainId'] = $this->mainId ?? 0;
  33. ItemClassClass::addGhsItemClass($this->mainId, $post);
  34. util::complete('添加成功');
  35. }
  36. public function actionUpdate()
  37. {
  38. $data = Yii::$app->request->post();
  39. $id = $data['id'] ?? 0;
  40. $name = $data['name'] ?? '';
  41. $class = ItemClassClass::getById($id, true);
  42. if (empty($class)) {
  43. util::fail('没有找到分类');
  44. }
  45. if ($class->isDefault == 1) {
  46. util::fail('不能修改默认分组');
  47. }
  48. $itemName = $class->name;
  49. if ($itemName == $name) {
  50. if (isset($data['inTurn']) && is_numeric($data['inTurn'])) {
  51. $class->inTurn = $data['inTurn'];
  52. }
  53. $class->save();
  54. util::success('修改成功');
  55. }
  56. if ($class->mainId != $this->mainId) {
  57. util::fail('没有权限修改');
  58. }
  59. $has = ItemClassClass::getByCondition(['mainId' => $this->mainId, 'name' => $name]);
  60. if (!empty($has)) {
  61. util::fail('名称已经存在');
  62. }
  63. $class->name = $name;
  64. if (isset($data['inTurn']) && is_numeric($data['inTurn'])) {
  65. $class->inTurn = $data['inTurn'];
  66. }
  67. $class->save();
  68. util::complete('修改成功');
  69. }
  70. //删除花材分类 ssh 202207062136
  71. public function actionDelete()
  72. {
  73. $id = Yii::$app->request->get('id', 0);
  74. $connection = Yii::$app->db;
  75. $transaction = $connection->beginTransaction();
  76. try {
  77. $default = ItemClassClass::getByCondition(['mainId' => $this->mainId, 'isDefault' => 1], true);
  78. $defaultClassId = $default->id ?? 0;
  79. if (empty($defaultClassId)) {
  80. util::fail('没有找到默认分类');
  81. }
  82. if ($defaultClassId == $id) {
  83. util::fail('默认分类不可删除');
  84. }
  85. $class = ItemClassClass::getById($id, true);
  86. ItemClassClass::valid($class, $this->mainId);
  87. $class->delete();
  88. ProductClass::updateByCondition(['classId' => $id], ['classId' => $defaultClassId]);
  89. $transaction->commit();
  90. util::complete('操作成功');
  91. } catch (\Exception $e) {
  92. $transaction->rollBack();
  93. Yii::info("失败原因:" . $e->getMessage());
  94. util::fail('删除失败');
  95. }
  96. }
  97. //开单: 获取所有分类
  98. public function actionAll()
  99. {
  100. //中央ID
  101. $data = ItemClassClass::getGhsItemClassAll($this->mainId);
  102. util::success($data);
  103. }
  104. //修改排序 ssh 20210701
  105. public function actionChangeInTurn()
  106. {
  107. $sortData = Yii::$app->request->post('sortData');
  108. if (empty($sortData)) {
  109. util::fail('请修改你要排序的分类');
  110. }
  111. $sortArr = json_decode($sortData, true);
  112. if (empty($sortArr) || is_array($sortArr) == false) {
  113. util::fail('请修改分类');
  114. }
  115. foreach ($sortArr as $item) {
  116. $id = $item['id'];
  117. $inTurn = $item['inTurn'];
  118. if (is_numeric($inTurn) == false || intval($inTurn) != $inTurn) {
  119. continue;
  120. }
  121. ItemClassClass::updateById($id, ['inTurn' => $inTurn]);
  122. }
  123. util::complete();
  124. }
  125. }