| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <?php
- namespace addons\Course\backend\controllers;
- use addons\Course\common\models\AddonsCourse;
- use addons\Course\common\models\AddonsCourseActivity;
- use addons\Course\common\models\AddonsCourseDiscuss;
- use addons\Course\common\models\CourseCategory;
- use common\enums\StatusEnum;
- use common\models\goods\Goods;
- use common\models\user\User;
- class ActivityController extends BaseController
- {
- public function actionIndex()
- {
- if (\Yii::$app->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('操作成功');
- }
- }
- }
- }
|