GroupOrderController.php 5.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace addons\LuckyGroup\backend\controllers;
  3. use addons\LuckyGroup\common\enums\LuckyGroupEnum;
  4. use addons\LuckyGroup\common\models\DefaultModel;
  5. use addons\LuckyGroup\common\models\LuckyGroupActivity;
  6. use addons\LuckyGroup\common\models\LuckyGroupLevel;
  7. use addons\LuckyGroup\common\models\LuckyGroupOrder;
  8. use addons\LuckyGroup\common\models\LuckyGroupUser;
  9. use common\enums\StatusEnum;
  10. use common\models\goods\Goods;
  11. use common\models\order\Order;
  12. use common\models\user\User;
  13. class GroupOrderController extends BaseController
  14. {
  15. public function actionIndex()
  16. {
  17. if (\Yii::$app->request->isAjax) {
  18. if (\Yii::$app->request->isGet) {
  19. $params = \Yii::$app->request->get();
  20. $where = [];
  21. $where[]=['mall_id'=>$this->mall_id];
  22. $where[]=['status'=>StatusEnum::ENABLED];
  23. if(!empty($params['order_no'])) $where[] = ['order_no'=>trim($params['order_no'])];
  24. if(!empty($params['id'])) $where[] = ['id'=>trim($params['id'])];
  25. if(!empty($params['group_status'])) $where[] = ['group_status'=>trim($params['group_status'])];
  26. if(!empty($params['group_status'])) $where[] = ['group_status'=>trim($params['group_status'])];
  27. if(!empty($params['attend_type'])) $where[] = ['attend_type'=>trim($params['attend_type'])];
  28. if(!empty($params['user_id'])) $where[] = ['user_id'=>trim($params['user_id'])];
  29. if(!empty($params['nickname'])){
  30. $user_list = User::lists(['where'=>[['like','nickname',trim($params['nickname']).'%',false],['mall_id'=>$this->mall_id],],'select'=>'id']);
  31. $user_id_arr = array_column($user_list,'id');
  32. $where[] = ['user_id'=>$user_id_arr];
  33. }
  34. if(!empty($params['date_start'])) $where[] = ['>=','pay_at',strtotime($params['date_start'])];
  35. if(!empty($params['date_end'])) $where[] = ['<=','pay_at',strtotime($params['date_end'])];
  36. if(!empty($params['win_date_start'])) $where[] = ['>=','win_time',strtotime($params['win_date_start'])];
  37. if(!empty($params['win_date_end'])) $where[] = ['<=','win_time',strtotime($params['win_date_end'])];
  38. if (!empty($params['goods_name'])) {
  39. $goods_list = Goods::lists(['where'=>[['like', 'goods_name', $params['goods_name']]],'index'=>'id','select'=>'id,goods_name']);
  40. $good_ids = array_column($goods_list, 'id');
  41. $where[] = ['goods_id' => $good_ids];
  42. }
  43. $params['where'] = $where;
  44. $params['order'] = 'id desc';
  45. $list = LuckyGroupOrder::listPage($params);
  46. if(!empty($list['list'])){
  47. $user_id_arr = array_column($list['list'],'user_id');
  48. $activity_id_arr = array_column($list['list'],'activity_id');
  49. $order_ids = array_column($list['list'], 'id');
  50. $user_list = User::lists(['where'=>[['id'=>$user_id_arr],['status'=>StatusEnum::ENABLED]],'index'=>'id','select'=>'id,nickname,username,avatar_url']);
  51. $activity_list = LuckyGroupActivity::lists(['where'=>[['id'=>$activity_id_arr]],'index'=>'id','select'=>'id,title']);
  52. if (empty($goods_list)) {
  53. $goods_id_arr = array_column($list['list'],'goods_id');
  54. $goods_list = Goods::lists(['where'=>[['id'=>$goods_id_arr]],'index'=>'id','select'=>'id,goods_name']);
  55. }
  56. $orders = Order::find()
  57. ->select('id,marketing_id,marketing_type')
  58. ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'marketing_type' => LuckyGroupEnum::ADDONS_NAME, 'marketing_id' => $order_ids])
  59. ->asArray()
  60. ->indexBy('marketing_id')
  61. ->all();
  62. foreach ($list['list'] as &$item){
  63. $item['nickname'] = $item['username'] = $item['avatar_url'] =$item['activity_title'] =$item['goods_name'] = '';
  64. if(isset($user_list[$item['user_id']])){
  65. $item['nickname'] = $user_list[$item['user_id']]['nickname'];
  66. $item['username'] = $user_list[$item['user_id']]['username'];
  67. $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url'];
  68. }
  69. if(isset($activity_list[$item['activity_id']]))$item['activity_title'] = $activity_list[$item['activity_id']]['title'];
  70. if(isset($goods_list[$item['goods_id']]))$item['goods_name'] = $goods_list[$item['goods_id']]['goods_name'];
  71. $order = $orders[$item['id']] ?? [];
  72. $item['mall_order_id'] = $order['id'] ?? 0;
  73. }
  74. }
  75. $list['group_status_map'] = DefaultModel::getGroupText($this->mall_id);
  76. $list['attend_type_map'] = DefaultModel::getAttendTypeArr($this->mall_id);
  77. return $this->success('success', $list);
  78. }
  79. } else {
  80. return $this->render('index');
  81. }
  82. }
  83. }