Files
amb_wechatapp/application/api/controller/app/activity/BindCourse.php
T

100 lines
2.6 KiB
PHP

<?php
namespace app\api\controller\app\activity;
use app\common\controller\Api;
use think\Db;
use app\api\model\app\activity\Form;
/**
* 绑定课程
*/
class BindCourse extends Api
{
protected $noNeedLogin = ["getBindCourse"];
// 无需鉴权的接口,*表示全部
protected $noNeedRight = ['*'];
public function _initialize()
{
parent::_initialize();
$this->courseBindModel = new \app\api\model\app\activity\BindCourse();
}
public function getBindCourse(){
$activityId = input('activity_id');
$list = $this->courseBindModel
->with(['course'])
->where([
'activity_id'=>$activityId,
'course.status'=>1
])
->select();
if($list){
foreach ($list as &$item){
$item->getRelation('course')->visible(['name','cover','id']);
$item->visible(['id','course','count','subscription']);
if(!$this->auth->isLogin()){
$item->subscription = false;
}else{
$item->subscription = \app\common\model\user\Subscription::getSubscriptionAuth($this->auth->id,$item->course->id);
}
}
}
return $this->success("获取成功", $list);
}
/**
* 检查参与权限
* @return void
*/
public function checkJoinAuth(){
$activityId = input('activity_id');
$data = $this->courseBindModel->checkJoinAuth($this->auth->id,$activityId);
if($data){
return $this->success("可以参与");
}
return $this->error("请先订阅关联课程");
}
/**
* 获取课程关联的活动
* @return void
*/
public function getCourseBindActivity(){
$courseId = $this->request->post('course_id');
$activityIds = $this->courseBindModel
->where([
'course_id'=>$courseId
])
->column('activity_id');
$query = \app\common\model\goods\Handle::getGoodsQuery();
$list = [];
if($activityIds) {
$list = $query->where([
'id'=>['in',$activityIds],
'type'=>'activity'
])->select();
if($list){
foreach ($list as &$item){
$priceInfo = \app\common\model\goods\Handle::parseGoodsExtendInfo($item['id'],$item['type']);
$item = array_merge($item,$priceInfo);
}
}
}
$this->success("获取成功",$list);
}
}