|
|
@ -19,6 +19,7 @@ use app\model\student_course_usage\StudentCourseUsage; |
|
|
use app\model\student_courses\StudentCourses; |
|
|
use app\model\student_courses\StudentCourses; |
|
|
use app\model\student\Student; |
|
|
use app\model\student\Student; |
|
|
use app\model\customer_resources\CustomerResources; |
|
|
use app\model\customer_resources\CustomerResources; |
|
|
|
|
|
use app\model\campus_person_role\CampusPersonRole; |
|
|
use app\model\venue\Venue; |
|
|
use app\model\venue\Venue; |
|
|
use core\base\BaseApiService; |
|
|
use core\base\BaseApiService; |
|
|
use think\facade\Db; |
|
|
use think\facade\Db; |
|
|
@ -462,12 +463,47 @@ class PersonCourseScheduleService extends BaseApiService |
|
|
]; |
|
|
]; |
|
|
|
|
|
|
|
|
try { |
|
|
try { |
|
|
// 获取所有人员,可以通过角色或者其他字段来区分角色类型 |
|
|
// 先从校区人员角色关系表查询dept_id=2的所有人员ID |
|
|
$personnel = Personnel::field('id,name,role_type,role_name') |
|
|
$personIds = CampusPersonRole::where('dept_id', 2) |
|
|
->where('status', 1) // 假设1表示正常状态 |
|
|
->where('deleted_at', 0) // 未删除 |
|
|
|
|
|
->distinct(true) |
|
|
|
|
|
->column('person_id'); |
|
|
|
|
|
|
|
|
|
|
|
if (empty($personIds)) { |
|
|
|
|
|
$res['msg'] = '暂无相关人员'; |
|
|
|
|
|
return $res; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 根据获取到的人员ID查询人员详情,并关联角色信息 |
|
|
|
|
|
$personnel = Personnel::whereIn('id', $personIds) |
|
|
|
|
|
->field('id,name') |
|
|
|
|
|
->where('status', 1) // 正常状态 |
|
|
->select() |
|
|
->select() |
|
|
->toArray(); |
|
|
->toArray(); |
|
|
|
|
|
|
|
|
|
|
|
// 为每个人员获取角色信息 |
|
|
|
|
|
foreach ($personnel as &$person) { |
|
|
|
|
|
$roles = CampusPersonRole::where('person_id', $person['id']) |
|
|
|
|
|
->where('dept_id', 2) |
|
|
|
|
|
->where('deleted_at', 0) |
|
|
|
|
|
->with(['sysRole' => function($query) { |
|
|
|
|
|
$query->field('role_id,role_name'); |
|
|
|
|
|
}]) |
|
|
|
|
|
->select() |
|
|
|
|
|
->toArray(); |
|
|
|
|
|
|
|
|
|
|
|
// 提取角色名称 |
|
|
|
|
|
$roleNames = []; |
|
|
|
|
|
foreach ($roles as $role) { |
|
|
|
|
|
if (!empty($role['sys_role']['role_name'])) { |
|
|
|
|
|
$roleNames[] = $role['sys_role']['role_name']; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$person['role_name'] = implode(',', $roleNames); |
|
|
|
|
|
$person['roles'] = $roleNames; // 保留数组格式便于前端判断 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
$res = [ |
|
|
$res = [ |
|
|
'code' => 1, |
|
|
'code' => 1, |
|
|
'msg' => '获取成功', |
|
|
'msg' => '获取成功', |
|
|
|