| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace addons\LuckyGroup\backend\controllers;
- use addons\LuckyGroup\common\enums\LuckyGroupEnum;
- use addons\LuckyGroup\common\models\DefaultModel;
- use addons\LuckyGroup\common\models\LuckyGroupActivity;
- use addons\LuckyGroup\common\models\LuckyGroupLevel;
- use addons\LuckyGroup\common\models\LuckyGroupOrder;
- use addons\LuckyGroup\common\models\LuckyGroupUser;
- use common\enums\StatusEnum;
- use common\models\goods\Goods;
- use common\models\order\Order;
- use common\models\user\User;
- class GroupOrderController extends BaseController
- {
- public function actionIndex()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $params = \Yii::$app->request->get();
- $where = [];
- $where[]=['mall_id'=>$this->mall_id];
- $where[]=['status'=>StatusEnum::ENABLED];
- if(!empty($params['order_no'])) $where[] = ['order_no'=>trim($params['order_no'])];
- if(!empty($params['id'])) $where[] = ['id'=>trim($params['id'])];
- if(!empty($params['group_status'])) $where[] = ['group_status'=>trim($params['group_status'])];
- if(!empty($params['group_status'])) $where[] = ['group_status'=>trim($params['group_status'])];
- if(!empty($params['attend_type'])) $where[] = ['attend_type'=>trim($params['attend_type'])];
- if(!empty($params['user_id'])) $where[] = ['user_id'=>trim($params['user_id'])];
- if(!empty($params['nickname'])){
- $user_list = User::lists(['where'=>[['like','nickname',trim($params['nickname']).'%',false],['mall_id'=>$this->mall_id],],'select'=>'id']);
- $user_id_arr = array_column($user_list,'id');
- $where[] = ['user_id'=>$user_id_arr];
- }
- if(!empty($params['date_start'])) $where[] = ['>=','pay_at',strtotime($params['date_start'])];
- if(!empty($params['date_end'])) $where[] = ['<=','pay_at',strtotime($params['date_end'])];
- if(!empty($params['win_date_start'])) $where[] = ['>=','win_time',strtotime($params['win_date_start'])];
- if(!empty($params['win_date_end'])) $where[] = ['<=','win_time',strtotime($params['win_date_end'])];
- if (!empty($params['goods_name'])) {
- $goods_list = Goods::lists(['where'=>[['like', 'goods_name', $params['goods_name']]],'index'=>'id','select'=>'id,goods_name']);
- $good_ids = array_column($goods_list, 'id');
- $where[] = ['goods_id' => $good_ids];
- }
- $params['where'] = $where;
- $params['order'] = 'id desc';
- $list = LuckyGroupOrder::listPage($params);
- if(!empty($list['list'])){
- $user_id_arr = array_column($list['list'],'user_id');
- $activity_id_arr = array_column($list['list'],'activity_id');
- $order_ids = array_column($list['list'], 'id');
- $user_list = User::lists(['where'=>[['id'=>$user_id_arr],['status'=>StatusEnum::ENABLED]],'index'=>'id','select'=>'id,nickname,username,avatar_url']);
- $activity_list = LuckyGroupActivity::lists(['where'=>[['id'=>$activity_id_arr]],'index'=>'id','select'=>'id,title']);
- if (empty($goods_list)) {
- $goods_id_arr = array_column($list['list'],'goods_id');
- $goods_list = Goods::lists(['where'=>[['id'=>$goods_id_arr]],'index'=>'id','select'=>'id,goods_name']);
- }
- $orders = Order::find()
- ->select('id,marketing_id,marketing_type')
- ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'marketing_type' => LuckyGroupEnum::ADDONS_NAME, 'marketing_id' => $order_ids])
- ->asArray()
- ->indexBy('marketing_id')
- ->all();
- foreach ($list['list'] as &$item){
- $item['nickname'] = $item['username'] = $item['avatar_url'] =$item['activity_title'] =$item['goods_name'] = '';
- if(isset($user_list[$item['user_id']])){
- $item['nickname'] = $user_list[$item['user_id']]['nickname'];
- $item['username'] = $user_list[$item['user_id']]['username'];
- $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url'];
- }
- if(isset($activity_list[$item['activity_id']]))$item['activity_title'] = $activity_list[$item['activity_id']]['title'];
- if(isset($goods_list[$item['goods_id']]))$item['goods_name'] = $goods_list[$item['goods_id']]['goods_name'];
- $order = $orders[$item['id']] ?? [];
- $item['mall_order_id'] = $order['id'] ?? 0;
- }
- }
- $list['group_status_map'] = DefaultModel::getGroupText($this->mall_id);
- $list['attend_type_map'] = DefaultModel::getAttendTypeArr($this->mall_id);
- return $this->success('success', $list);
- }
- } else {
- return $this->render('index');
- }
- }
- }
|