diff --git a/app/Http/Controllers/Admin/CompanyController.php b/app/Http/Controllers/Admin/CompanyController.php index 0475515..6f10d31 100644 --- a/app/Http/Controllers/Admin/CompanyController.php +++ b/app/Http/Controllers/Admin/CompanyController.php @@ -119,6 +119,7 @@ class CompanyController extends BaseController * @OA\Parameter(name="course_start_date", in="query", @OA\Schema(type="string"), required=false, description="课程开始日期(筛选课程起止时间在范围内的企业)"), * @OA\Parameter(name="course_end_date", in="query", @OA\Schema(type="string"), required=false, description="课程结束日期(筛选课程起止时间在范围内的企业)"), * @OA\Parameter(name="is_chart", in="query", @OA\Schema(type="string"), required=false, description="课程是否参与统计0否1是(按公司下用户关联的课程筛选)"), + * @OA\Parameter(name="address", in="query", @OA\Schema(type="string"), required=false, description="地址,模糊匹配 company_address 或 company_city"), * @OA\Response( * response="200", * description="暂无" @@ -185,6 +186,13 @@ class CompanyController extends BaseController $query->where('is_schoolmate', $all['is_schoolmate']); } })->where(function ($query) use ($all, $start_year, $end_year) { + // 地址:模糊匹配 company_address 或 company_city + if (isset($all['address']) && $all['address'] !== '') { + $query->where(function ($q) use ($all) { + $q->where('company_address', 'like', '%' . $all['address'] . '%') + ->orWhere('company_city', 'like', '%' . $all['address'] . '%'); + }); + } // 根据开始和结束年份筛选 project_users 中的 investDate if ($start_year && $end_year) { // 使用 LIKE 匹配 JSON 字符串中的年份范围 diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 6a2068a..195f425 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -132,10 +132,10 @@ class OtherController extends CommonController // 默认结束日期一年以后 $end_date = date('Y-m-d', strtotime('+10 year')); - // 校友总数 - $list['schoolmate_total'] = User::where('is_schoolmate', 1)->count(); - // 今年新增校友数(根据schoolmate_time字段统计) - $list['schoolmate_year'] = User::where('is_schoolmate', 1)->whereYear('schoolmate_time', date('Y'))->count(); + // 校友总数(与 study 口径一致:仅统计有课程报名记录的校友) + $list['schoolmate_total'] = User::where('is_schoolmate', 1)->whereHas('courseSigns')->count(); + // 今年新增校友数(根据schoolmate_time字段统计,口径同上) + $list['schoolmate_year'] = User::where('is_schoolmate', 1)->whereHas('courseSigns')->whereYear('schoolmate_time', date('Y'))->count(); // 投后企业 $list['company_invested_total'] = CourseSign::yhInvestedTotal(CourseType::START_DATE, date('Y-m-d'), null); // 元和员工参与人数 @@ -2041,6 +2041,7 @@ class OtherController extends CommonController 'company_city' => $user->company->company_city ?? '', 'company_position' => $user->company_position ?? '', 'education' => $user->education ?? '', + 'geren_rongyu' => $user->type ?? '', 'course_names' => $courseNamesStr, 'course_types' => $courseTypesStr, 'course_count' => $totalCourseCount, @@ -2054,6 +2055,7 @@ class OtherController extends CommonController 'company_city' => '所在城市', 'company_position' => '职位', 'education' => '学历', + 'geren_rongyu' => '个人荣誉', 'course_names' => '课程名称', 'course_types' => '课程体系', 'course_count' => '报名课程数', diff --git a/app/Models/CourseSign.php b/app/Models/CourseSign.php index 860db34..582eb70 100755 --- a/app/Models/CourseSign.php +++ b/app/Models/CourseSign.php @@ -804,20 +804,10 @@ class CourseSign extends SoftDeletesModel }); })->with(['user.company'])->get(); - // 条件2:data 字段中 name="个人荣誉" 且 value != "其他" 的用户 - $courseSigns2 = $courseSignsQuery->with(['user.company'])->get()->filter(function ($courseSign) { - if (empty($courseSign->data) || !is_array($courseSign->data)) { - return false; - } - foreach ($courseSign->data as $item) { - if (isset($item['key']) && $item['key'] === 'type') { - if (isset($item['value']) && $item['value'] !== '其他') { - return true; - } - } - } - return false; - }); + // 条件2:user.type 包含「人才」的用户 + $courseSigns2 = $courseSignsQuery->whereHas('user', function ($q) { + $q->where('type', 'like', '%人才%'); + })->with(['user.company'])->get(); // 合并两个条件的结果(或关系),并去重 user_id $allUserIds = $courseSigns1->pluck('user_id')