ItemClassController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. ItemClassClass::addGhsItemClass($this->mainId, $post);
  33. util::complete('添加成功');
  34. }
  35. public function actionUpdate()
  36. {
  37. $data = Yii::$app->request->post();
  38. $id = $data['id'] ?? 0;
  39. $name = $data['name'] ?? '';
  40. $class = ItemClassClass::getById($id, true);
  41. if (empty($class)) {
  42. util::fail('没有找到分类');
  43. }
  44. if ($class->isDefault == 1) {
  45. util::fail('不能修改默认分组');
  46. }
  47. $itemName = $class->name;
  48. if ($itemName == $name) {
  49. if (isset($data['inTurn']) && is_numeric($data['inTurn'])) {
  50. $class->inTurn = $data['inTurn'];
  51. }
  52. $class->save();
  53. util::success('修改成功');
  54. }
  55. if ($class->mainId != $this->mainId) {
  56. util::fail('没有权限修改');
  57. }
  58. $has = ItemClassClass::getByCondition(['mainId' => $this->mainId, 'name' => $name]);
  59. if (!empty($has)) {
  60. util::fail('名称已经存在');
  61. }
  62. $class->name = $name;
  63. if (isset($data['inTurn']) && is_numeric($data['inTurn'])) {
  64. $class->inTurn = $data['inTurn'];
  65. }
  66. $class->save();
  67. util::complete('修改成功');
  68. }
  69. //删除花材分类 ssh 202207062136
  70. public function actionDelete()
  71. {
  72. $id = Yii::$app->request->get('id', 0);
  73. $connection = Yii::$app->db;
  74. $transaction = $connection->beginTransaction();
  75. try {
  76. $default = ItemClassClass::getByCondition(['mainId' => $this->mainId, 'isDefault' => 1], true);
  77. $defaultClassId = $default->id ?? 0;
  78. if (empty($defaultClassId)) {
  79. util::fail('没有找到默认分类');
  80. }
  81. if ($defaultClassId == $id) {
  82. util::fail('默认分类不可删除');
  83. }
  84. $class = ItemClassClass::getById($id, true);
  85. ItemClassClass::valid($class, $this->mainId);
  86. $class->delete();
  87. ProductClass::updateByCondition(['classId' => $id], ['classId' => $defaultClassId]);
  88. $transaction->commit();
  89. util::complete('操作成功');
  90. } catch (\Exception $e) {
  91. $transaction->rollBack();
  92. Yii::info("失败原因:" . $e->getMessage());
  93. util::fail('删除失败');
  94. }
  95. }
  96. //开单: 获取所有分类
  97. public function actionAll()
  98. {
  99. //中央ID
  100. $data = ItemClassClass::getGhsItemClassAll($this->mainId);
  101. util::success($data);
  102. }
  103. //修改排序 ssh 20210701
  104. public function actionChangeInTurn()
  105. {
  106. $sortData = Yii::$app->request->post('sortData');
  107. if (empty($sortData)) {
  108. util::fail('请修改你要排序的分类');
  109. }
  110. $sortArr = json_decode($sortData, true);
  111. if (empty($sortArr) || is_array($sortArr) == false) {
  112. util::fail('请修改分类');
  113. }
  114. foreach ($sortArr as $item) {
  115. $id = $item['id'];
  116. $inTurn = $item['inTurn'];
  117. if (is_numeric($inTurn) == false || intval($inTurn) != $inTurn) {
  118. continue;
  119. }
  120. ItemClassClass::updateById($id, ['inTurn' => $inTurn]);
  121. }
  122. util::complete();
  123. }
  124. }