belongsTo('Course', 'course_id', 'id', [], 'RIGHT')->setEagerlyType(0); } /** * 通过内容ID设置绑定 * @param $courseId 内容ID * @param $column 专栏 * @return void */ public function setCourseBindGroup($courseId,$groupIds){ //删除旧的 $courseBindGroupIds = $this->getCourseBindGroup($courseId); if(!empty($courseBindGroupIds)){ foreach ($courseBindGroupIds as $groupId){ if(!in_array($groupId,$groupIds)){ self::where([ 'group_id'=>$groupId, 'course_id'=>$courseId, ])->delete(); } } } //添加新的 if(!empty($groupIds)){ foreach ($groupIds as $groupId){ $this->setGroupBindCourse($groupId,[$courseId]); } } } /** * 通过分组ID设置绑定 * @param $courseId 内容ID * @param $column 专栏 * @return void */ public function setGroupBindCourse($groupId,$courseIds){ $bindCourseId = $this->getGroupBindCourse($groupId); if(!empty($courseIds)){ foreach ($courseIds as $item){ if(!in_array($item,$bindCourseId)){ $row = [ 'uniacid'=>UNIACID, 'course_id'=>$item, 'group_id'=>$groupId, 'createtime'=>time(), ]; $row['sort']=$this->defineSort($groupId); self::insert($row); } } } return true; } /** * 获取排序 * @return void */ public function defineSort($columnId){ $maxItem = self::where([ 'group_id'=>$columnId ])->field("sort")->order("sort desc")->find(); if(!$maxItem){ return 0; } return $maxItem['sort'] + 1; } /** * 获取内容绑定分组 * @param $courseId * @return array */ public function getCourseBindGroup($courseId){ $groupIds = self::where(['course_id'=>$courseId])->field('group_id')->select(); if(!$groupIds){ return []; } $ids = []; foreach ($groupIds as $id){ $ids[] = $id['group_id']; } return $ids; } /** * 获取分组绑定内容 * @param $courseId * @return array */ public function getGroupBindCourse($groupId){ $courseIds = self::where(['group_id'=>$groupId])->field('course_id')->select(); if(!$courseIds){ return []; } $ids = []; foreach ($courseIds as $id){ $ids[] = $id['course_id']; } return $ids; } /** * 获取分组绑定内容数量 * @param $courseId * @return mixed */ public function groupGetCourseBindCount($groupId){ return self::where(['group_id'=>$groupId])->count(); } /** * 取消某分组绑定的内容(全部) * @param $groupId * @return mixed */ public function groupDelCourseBind($groupId){ return self::where(['group_id'=>$groupId])->delete(); } /** * 取消分组与内容的绑定(单个) * @param $groupId * @return mixed */ public function groupCancelCourse($groupId,$courseId){ return self::where(['group_id'=>$groupId,'course_id'=>$courseId])->delete(); } }