DefaultController.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. namespace addons\BlindBox\backend\controllers;
  3. use addons\Agent\common\models\Agent;
  4. use addons\Agent\common\models\AgentLevel;
  5. use addons\BlindBox\common\models\BlindBoxGoods;
  6. use addons\BlindBox\common\models\BlindBoxUser;
  7. use common\enums\StatusEnum;
  8. use common\models\goods\Goods;
  9. use common\models\user\User;
  10. use Yii;
  11. use common\controllers\AddonsController;
  12. /**
  13. * 默认控制器
  14. *
  15. * Class DefaultController
  16. * @package addons\BlindBox\backend\controllers
  17. */
  18. class DefaultController extends BaseController
  19. {
  20. /**
  21. * 首页
  22. *
  23. * @return string
  24. */
  25. public function actionIndex()
  26. {
  27. return $this->render('index', [
  28. ]);
  29. }
  30. public function actionUserList()
  31. {
  32. if (\Yii::$app->request->isAjax) {
  33. if (\Yii::$app->request->isGet) {
  34. $params = \Yii::$app->request->get();
  35. $user_id_arr = [];
  36. $is_search = 0;
  37. if (!empty($params['user_id'])){
  38. $is_search = 1;
  39. $user_id_arr[]=$params['user_id'];
  40. }
  41. if (!empty($params['keyword'])) {
  42. $is_search = 1;
  43. $user_list = User::lists(['where'=>[['mall_id'=>$this->mall_id],[
  44. 'or',
  45. ['like', 'username', $params['keyword']],
  46. ['like', 'nickname', $params['keyword']],
  47. ['like', 'mobile', $params['keyword']]
  48. ]],'select'=>'id']);
  49. $user_ids = array_column($user_list,'id');
  50. if(!empty($user_id_arr)){
  51. $user_id_arr = array_intersect($user_id_arr,$user_ids);
  52. }else{
  53. $user_id_arr = $user_ids;
  54. }
  55. }
  56. if($is_search)$params['where'][] = ['in', 'user_id', $user_id_arr];
  57. $params['where'][] = ['=', 'mall_id',$this->mall_id];
  58. $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]];
  59. $params['limit'] = 10;
  60. $params['order'] = 'id DESC';
  61. $pageData = BlindBoxUser::listPage($params, false);
  62. if ($pageData === false) return $this->error(Agent::getStaticError());
  63. if(!empty($pageData['list'])){
  64. $user_id_arr = array_column($pageData['list'],'user_id');
  65. $user_list = User::lists(['where'=>[['id'=>$user_id_arr]],'select'=>'id,nickname,avatar_url,mobile']);
  66. $user_arr = [];
  67. foreach ($user_list as $item){
  68. $user_arr[$item['id']] = $item;
  69. }
  70. foreach ($pageData['list'] as &$v) {
  71. $v['nickname'] = $v['avatar_url'] = $v['mobile'] = '';
  72. if (isset($user_arr[$v['user_id']])) {
  73. $v['mobile'] = $user_arr[$v['user_id']]['mobile'];
  74. $v['nickname'] = $user_arr[$v['user_id']]['nickname'];
  75. $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url'];
  76. }
  77. }
  78. }
  79. return $this->success('操作成功', $pageData);
  80. }
  81. }
  82. return $this->render('user-list', [
  83. ]);
  84. }
  85. //获取商品列表,添加活动使用,不用验证权限
  86. public function actionGoodsList()
  87. {
  88. $request = Yii::$app->request;
  89. if ($request->isAjax) {
  90. //商品列表筛选
  91. $params = Yii::$app->request->get();
  92. // 排序
  93. $blind_box_goods_list = BlindBoxGoods::findAll([
  94. 'mall_id' => $this->mall_id,
  95. 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED],
  96. ]);
  97. $goods_id_arr = array_column($blind_box_goods_list, 'goods_id');
  98. $where = [
  99. ['mall_id' => $this->mall['id']],
  100. ['status' => [StatusEnum::ENABLED]],
  101. ['is_on_sale' => 1],
  102. ];
  103. if (isset($params['keyword'])){
  104. $where[] = [
  105. 'or',
  106. ['like', 'goods_name', trim($params['keyword']) . '%', false],
  107. ['=', 'id', trim($params['keyword'])]
  108. ];
  109. }
  110. $where[] = ['not in', 'id', $goods_id_arr];
  111. $params['where'] = $where;
  112. $params['order'] = 'sort ASC,id DESC';
  113. $page_data = Goods::getGoodsList($params, true, false);
  114. if ($page_data === false) return $this->error(Goods::getStaticError());
  115. return $this->success('操作成功', $page_data);
  116. }
  117. return $this->render($this->action->id);
  118. }
  119. }