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['keyword'])) $where[] = ['like', 'name', $params['keyword'] . '%', false]; $params = [ 'where' => $where, ]; $page_data = AddonsCourseActivity::listPage($params); if (!empty($page_data['list'])) { $goods_id = array_column($page_data['list'], 'goods_id'); $goods_list = Goods::lists(['where' => [['id' => $goods_id]], 'index' => 'id', 'select' => 'id,goods_name,original_price,cover_pic']); foreach ($page_data['list'] as &$item) { $course_id = explode(',', $item['course_id']); $item['course_number'] = 0; if (!empty($course_id)) $item['course_number'] = count($course_id); $item['goods_name'] = $item['original_price'] = $item['cover_pic'] = ''; if (isset($goods_list[$item['goods_id']])) { $item['goods_name'] = $goods_list[$item['goods_id']]['goods_name']; $item['original_price'] = $goods_list[$item['goods_id']]['original_price']; $item['cover_pic'] = $goods_list[$item['goods_id']]['cover_pic']; } } } return $this->success('success', $page_data); } else { return $this->error('请求方式错误'); } } else { return $this->render('index'); } } public function actionEdit() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isGet) { $params = \Yii::$app->request->get(); $activity_info = $goods = ''; if (!empty($params['id'])) { $activity_info = AddonsCourseActivity::getOne([['id' => $params['id'], 'mall_id' => $this->mall_id]], true); if (!empty($activity_info['banners'])) $activity_info['banners'] = json_decode($activity_info['banners'], true); if (!empty($activity_info['course_id'])) { $activity_info['course_id'] = explode(',', $activity_info['course_id']); $selected_course_info = AddonsCourse::lists(['where' => [['id' => $activity_info['course_id']]], 'select' => 'id,logo,name as course_name,introduce']); $activity_info['selected_course_info'] = $selected_course_info; } $goods = Goods::lists(['where' => [['id' => $activity_info['goods_id']]], 'select' => 'id,cover_pic,goods_name as name']); } $data['goods'] = $goods; $data['activity_info'] = $activity_info; return $this->success('success', $data); } else { $params = \Yii::$app->request->post(); $res = \Yii::$app->services->validate->validate($params, [ [['course_id','goods_id','name','banners','select_number'], 'required'], [['id'], 'integer'], [['logo'], 'string'], ]); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; if(!empty($params['course_id'])){ $counts = count($params['course_id']); if($params['select_number']>$counts) return $this->error('任选课程的数量不能大于课程总数量"'); $params['course_id'] = join(',',$params['course_id']); $params['course_number'] = $counts; } if (empty($params['logo'])) { //如果没有上传活动封面图,则用默认的封面图 $static_url = \Yii::$app->services->setting->get('system.static_url') ?? ''; $params['logo'] = $static_url . '/static/addons/course/activity_default_logo.png'; } $res = AddonsCourseActivity::setData($params); if ($res === false) return $this->error(AddonsCourseActivity::getStaticError()); return $this->success('操作成功'); } } else { return $this->render('edit'); } } public function actionDelete() { $post = \Yii::$app->request->post(); $params['id'] = $post['id']; $params['mall_id'] = $this->mall_id; $params['status'] = StatusEnum::DELETE; $res = AddonsCourseActivity::setData($params); if ($res === false) return $this->error(AddonsCourseActivity::getStaticError()); return $this->success('操作成功'); } //不用验证权限 public function actionCourseList() { $params = \Yii::$app->request->get(); $where[] = ['mall_id' => $this->mall_id]; $where[] = ['status' => StatusEnum::ENABLED]; if (!empty($params['course_name'])) $where[] = ['like', 'name', '%' . $params['course_name'] . '%', false]; $course_list = AddonsCourse::listPage([ 'where' => $where, 'select' => 'id,logo,name as course_name,price,cat_id' ]); if (!empty($course_list['list'])) { $cat_ids = array_column($course_list['list'], 'cat_id'); $cate_list = CourseCategory::lists(['where' => [['id' => $cat_ids]], 'index' => 'id', 'select' => 'id,cname']); foreach ($course_list['list'] as &$item) { $item['cate_name'] = ''; if (!empty($cate_list[$item['cat_id']])) $item['cate_name'] = $cate_list[$item['cat_id']]['cname']; } } return $this->success('操作成功', $course_list); } public function actionEditStatus() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isPost) { $params = \Yii::$app->request->post(); $res = \Yii::$app->services->validate->validate($params, [ [['id','status'], 'required'], ]); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $res = AddonsCourseActivity::setData($params); if ($res === false) return $this->error(AddonsCourseActivity::getStaticError()); return $this->success('操作成功'); } } } }