Files
amb_wechatapp/application/api/model/app/exam/ExercisesBindWarehouseGroup.php
T

61 lines
1.5 KiB
PHP

<?php
namespace app\api\model\app\exam;
use think\Model;
use app\api\model\app\exam\WarehouseGroup;
class ExercisesBindWarehouseGroup extends Model
{
// 表名
protected $name = 'app_exam_exercises_bind_warehouse_group';
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'integer';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = false;
protected $deleteTime = false;
// 追加属性
protected $append = [
];
/**
* 获取练习绑定的题库分组
* @param $exercisesId
* @return mixed
*/
public static function getExercisesBindWarehouseGroupIds($exercisesId){
return self::where([
'exercises_id'=>$exercisesId
])->field('warehouse_group_id')->column('warehouse_group_id');
}
/**
* 获取没有被练习绑定的分组ID
* 为什么要查这个?
* 当分组被删除时,绑定被删除的分组的题目的分组ID未变更,
* 当练习绑定了未分组的题目集合是,仅搜索分组为0的数据查不到上面情景的题目,故获取该类型的分组ID进行not in 反查询
* @return void
*/
public static function getNotInExercisesGroupIds($exercisesId){
$bindIds = self::getExercisesBindWarehouseGroupIds($exercisesId);
$group = WarehouseGroup::where([
'id'=>['not in',$bindIds]
])->field('id')->column('id');
if(!in_array('0',$bindIds)){
$group[] = 0;
}
return $group;
}
}