request->isAjax) { if (\Yii::$app->request->isGet) { $params = \Yii::$app->request->get(); $where[] = ['mall_id' => $this->mall_id]; $where[] = ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]; if (!empty($params['course_name'])) { $course_list = AddonsCourse::lists(['where' => [['like', 'name', $params['course_name'] . '%', false]], 'select' => 'id']); $cid = array_column($course_list, 'id'); $where[] = ['course_id' => $cid]; } if (!empty($params['user_id'])) $where[] = ['user_id' => $params['user_id']]; if (!empty($params['user_info'])) { $user_list = User::lists([ 'where' => [ [ 'or', ['like', 'nickname', $params['user_info'] . '%', false], ['like', 'mobile', $params['user_info'] . '%', false], ] ], 'select' => 'id' ]); $user_id_arr = array_column($user_list, 'id'); $where[] = ['user_id' => $user_id_arr]; } if (!empty($params['order_no'])) $where[] = ['order_no' => $params['order_no']]; if (!empty($params['start_time'])) { $where[] = ['>=', 'created_at', strtotime($params['start_time'] . ' 00:00:00')]; } if (!empty($params['end_time'])) { $where[] = ['<=', 'created_at', strtotime($params['end_time'] . ' 23:59:59')]; } $params = [ 'where' => $where, 'order' => 'created_at desc', ]; $page_data = AddonsCourseOrders::listPage($params); if (!empty($page_data['list'])) { $user_id_arr = array_column($page_data['list'], 'user_id'); $course_id = array_column($page_data['list'], 'course_id'); $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'index' => 'id', 'select' => 'id,nickname,avatar_url,mobile']); $course_list = AddonsCourse::lists(['where' => [['id' => $course_id]], 'index' => 'id', 'select' => 'id,name,logo']); foreach ($page_data['list'] as &$item) { $item['course_name'] = ''; $item['course_picture'] = ''; $item['nickname'] = ''; $item['avatar_url'] = ''; $item['mobile'] = ''; if (isset($course_list[$item['course_id']])) { $item['course_name'] = $course_list[$item['course_id']]['name']; $item['course_picture'] = $course_list[$item['course_id']]['logo']; } if (isset($user_list[$item['user_id']])) { $item['nickname'] = $user_list[$item['user_id']]['nickname']; $item['avatar_url'] = $user_list[$item['user_id']]['avatar_url']; $item['mobile'] = $user_list[$item['user_id']]['mobile']; } $item['show_refund_botton'] = 0; //判断订单是否为课程订单 if (substr($item['order_no'], 0, 1) == 'C' && is_numeric(substr($item['order_no'], 1, 1))) { if (strtotime("+3 months", $item['created_at']) > time()) { $item['show_refund_botton'] = 1; } } } } $page_data['payment_type_list'] = PayTypeEnum::getMap(); $page_data['order_status_map'] = CourseEnum::getOrderStatusMap(); return $this->success('success', $page_data); } else { return $this->error('请求方式错误'); } } else { return $this->render('index'); } } public function actionGetCourseCommissionList() { $request = Yii::$app->request; if ($request->isAjax && $request->isGet) { try { $get = $request->get(); $res = Yii::$app->services->validate->validate($get, [ [['order_id'], 'integer'], [['wallet_type'], 'string'], ]); if (!$res) throw new Exception(Yii::$app->services->validate->getErrorMessage()); $list = (new CourseService(['mall_id' => $this->mall_id]))->getCourseCommissionList($get); return $this->success('操作成功', ['list' => $list]); } catch (\Exception $e) { throw new Exception($e->getMessage()); } } } public function actionDoRefundSubmit() { $request = Yii::$app->request; if ($request->isAjax && $request->isPost) { try { $post = $request->post(); $res = Yii::$app->services->validate->validate($post, [ [['user_id', 'order_id', 'id', 'balance_pre'], 'integer'], [['refund_price'], 'number'], [['remark'], 'string'] ]); if (!$res) throw new Exception(Yii::$app->services->validate->getErrorMessage()); $res = (new CourseService(['mall_id' => $this->mall_id]))->doRefundSubmit($post); return $this->success('退款成功'); } catch (\Exception $e) { return $this->error($e->getMessage()); } } } }