GiftBagController.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. namespace addons\CloudStockTwo\backend\controllers;
  3. use addons\CloudStockTwo\common\models\CloudStockTwoAgent;
  4. use addons\CloudStockTwo\common\models\CloudStockTwoGoods;
  5. use addons\CloudStockTwo\common\models\CloudStockTwoLevel;
  6. use addons\CloudStockTwo\common\models\CloudStockTwoUpgradeBag;
  7. use common\enums\StatusEnum;
  8. use common\models\goods\Goods;
  9. use Yii;
  10. /**
  11. * 默认控制器
  12. *
  13. * Class DefaultController
  14. * @package addons\CloudStockTwo\backend\controllers
  15. */
  16. class GiftBagController extends BaseController
  17. {
  18. public $enableCsrfValidation = false;
  19. public function actionIndex()
  20. {
  21. if (\Yii::$app->request->isAjax) {
  22. $where[] = ['=', 'mall_id', $this->mall_id];
  23. $where[] = ['in', 'status', [StatusEnum::DISABLED, StatusEnum::ENABLED]];
  24. $params = [
  25. 'where' => $where, 'order' => 'id desc'
  26. ];
  27. $page_data = CloudStockTwoUpgradeBag::listPage($params,false,true);
  28. if(!empty($page_data['list'])){
  29. $goods_id_arr = array_column($page_data['list'],'goods_id');
  30. $give_goods_id_arr = array_column($page_data['list'],'give_goods_id');
  31. $level_arr = array_column($page_data['list'],'level');
  32. $goods_arr = Goods::lists(['where'=>[['id'=>$goods_id_arr]],'index'=>'id']);
  33. $give_goods_arr = Goods::lists(['where'=>[['id'=>$give_goods_id_arr]],'index'=>'id']);
  34. $level_list = CloudStockTwoLevel::lists(['where'=>[['mall_id'=>$this->mall_id],['level'=>$level_arr],['status'=>[StatusEnum::DISABLED,StatusEnum::ENABLED]]],'index'=>'level']);
  35. foreach ($page_data['list'] as &$item){
  36. $item['level_name'] = '';
  37. $item['goods_name'] = $item['cover_pic'] = '';
  38. $item['give_goods_name'] = $item['give_cover_pic'] = '';
  39. if($goods_arr[$item['goods_id']]){
  40. $item['goods_name'] = $goods_arr[$item['goods_id']]['goods_name'];
  41. $item['cover_pic'] = $goods_arr[$item['goods_id']]['cover_pic'];
  42. }
  43. if($give_goods_arr[$item['give_goods_id']]){
  44. $item['give_goods_name'] = $give_goods_arr[$item['give_goods_id']]['goods_name'];
  45. $item['give_cover_pic'] = $give_goods_arr[$item['give_goods_id']]['cover_pic'];
  46. }
  47. if($level_list[$item['level']]){
  48. $item['level_name'] = $level_list[$item['level']]['name'];
  49. }
  50. $item['give_goods_info'] = json_decode($item['give_goods_info'],true) ?? [];
  51. if(!empty($item['give_goods_info'])){
  52. foreach($item['give_goods_info'] as &$info){
  53. $goods = Goods::findOne(['id'=>$info['goods_id']]);
  54. if($goods){
  55. $info['goods_name'] = $goods['goods_name'];
  56. $info['cover_pic'] = $goods['cover_pic'];
  57. }else{
  58. $info['goods_name'] = '';
  59. $info['cover_pic'] = '';
  60. }
  61. }
  62. }
  63. }
  64. }
  65. return $this->success('操作成功', $page_data);
  66. }
  67. return $this->render($this->action->id, []);
  68. }
  69. public function actionEdit()
  70. {
  71. try {
  72. $request = Yii::$app->request;
  73. if ($request->isAjax) {
  74. if ($request->isGet) {
  75. $id = Yii::$app->request->get('id', '');
  76. $data = CloudStockTwoUpgradeBag::getOne([['id'=>$id],['mall_id'=>$this->mall_id],['status'=>[StatusEnum::DISABLED,StatusEnum::ENABLED]]],true);
  77. $goods = Goods::findOne(['id'=>$data['goods_id']]);
  78. // $give_goods = Goods::findOne(['id'=>$data['give_goods_id']]);
  79. $data['goods_name'] = $goods['goods_name'];
  80. $data['cover_pic'] = $goods['cover_pic'];
  81. // $data['give_goods_name'] = $give_goods['goods_name']??'';
  82. // $data['give_cover_pic'] = $give_goods['cover_pic']??'';
  83. $data['give_goods_info'] = json_decode($data['give_goods_info'],true) ?? [];
  84. if(!empty($data['give_goods_info'])){
  85. foreach($data['give_goods_info'] as &$give_goods_info){
  86. $goods = Goods::findOne(['id'=>$give_goods_info['goods_id']]);
  87. if($goods){
  88. $give_goods_info['goods_name'] = $goods['goods_name'];
  89. $give_goods_info['cover_pic'] = $goods['cover_pic'];
  90. }else{
  91. $give_goods_info['goods_name'] = '';
  92. $give_goods_info['cover_pic'] = '';
  93. }
  94. }
  95. }
  96. return $this->success('操作成功', $data);
  97. }
  98. if ($request->isPost) {
  99. $params = Yii::$app->request->post();
  100. $params['mall_id'] = $this->mall_id;
  101. if(!empty($params['give_goods_info'])){
  102. foreach($params['give_goods_info'] as &$give_goods_info){
  103. unset($give_goods_info['goods_name'],$give_goods_info['cover_pic']);
  104. }
  105. }
  106. $params['give_goods_info'] = json_encode($params['give_goods_info']);
  107. $res = CloudStockTwoUpgradeBag::setData($params);
  108. if ($res === false) return $this->error(CloudStockTwoAgent::getStaticError());
  109. return $this->success('操作成功');
  110. }
  111. }
  112. } catch (\Exception $e) {
  113. return $this->error($e->getMessage(), []);
  114. }
  115. return $this->render('edit');
  116. }
  117. public function actionUpdateStatus(){
  118. $params = Yii::$app->request->post();
  119. $params['mall_id'] = $this->mall_id;
  120. $res = CloudStockTwoUpgradeBag::setData($params);
  121. if ($res === false) return $this->error(CloudStockTwoLevel::getStaticError());
  122. return $this->success('操作成功');
  123. }
  124. public function actionDel(){
  125. $params = Yii::$app->request->get();
  126. $params['mall_id'] = $this->mall_id;
  127. $params['status'] = StatusEnum::DELETE;
  128. $res = CloudStockTwoUpgradeBag::setData($params);
  129. if ($res === false) return $this->error(CloudStockTwoLevel::getStaticError());
  130. return $this->success('操作成功');
  131. }
  132. //不用验证权限
  133. public function actionGetCloudStockTwoGoodsList(){
  134. $where[] = ['=', 'mall_id', $this->mall_id];
  135. $where[] = ['in', 'status', [StatusEnum::DISABLED, StatusEnum::ENABLED]];
  136. $params = [
  137. 'where' => $where, 'order' => 'id desc','select'=>'id,goods_id'
  138. ];
  139. $page_data = CloudStockTwoGoods::listPage($params,false,true);
  140. if(!empty($page_data['list'])){
  141. $goods_id_arr = array_column($page_data['list'],'goods_id');
  142. $goods_arr = Goods::lists(['where'=>[['id'=>$goods_id_arr]],'index'=>'id']);
  143. foreach ($page_data['list'] as &$item){
  144. $item['goods_name'] = $item['cover_pic'] = '';
  145. if(!empty($goods_arr[$item['goods_id']])){
  146. $item['goods_name'] = $goods_arr[$item['goods_id']]['goods_name'];
  147. $item['cover_pic'] = $goods_arr[$item['goods_id']]['cover_pic'];
  148. }
  149. }
  150. }
  151. return $this->success('操作成功', $page_data);
  152. }
  153. }