From aa5724551f7cb5139d4b9759da80d856222d01b6 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Fri, 21 Nov 2025 16:16:55 +0800 Subject: [PATCH 1/4] update --- app/Http/Controllers/Admin/CompanyController.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Admin/CompanyController.php b/app/Http/Controllers/Admin/CompanyController.php index d8ef205..3267e34 100644 --- a/app/Http/Controllers/Admin/CompanyController.php +++ b/app/Http/Controllers/Admin/CompanyController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin; use App\Exports\BaseExport; +use App\Exports\CommonExport; use App\Helpers\ResponseCode; use App\Models\AppointmentType; use App\Models\Book; @@ -147,11 +148,7 @@ class CompanyController extends BaseController })->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc'); if (isset($all['is_export']) && !empty($all['is_export'])) { $list = $list->get()->toArray(); - $export_fields = $all['export_fields'] ?? []; - // 导出文件名字 - $tableName = $this->model->getTable(); - $filename = (new CustomForm())->getTableComment($tableName); - return Excel::download(new BaseExport($export_fields, $list, $tableName), $filename . date('YmdHis') . '.xlsx'); + return Excel::download(new CommonExport($list, $all['export_fields'] ?? ''), $all['file_name'] ?? '' . date('YmdHis') . '.xlsx'); } else { // 输出 $list = $list->paginate($all['page_size'] ?? 20); From 04cb209d00da8ffd293e6ead5768e753335d0e82 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Fri, 21 Nov 2025 16:40:52 +0800 Subject: [PATCH 2/4] update --- app/Exports/CommonExport.php | 50 ++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/app/Exports/CommonExport.php b/app/Exports/CommonExport.php index 979c332..dfb7c41 100755 --- a/app/Exports/CommonExport.php +++ b/app/Exports/CommonExport.php @@ -56,9 +56,20 @@ class CommonExport implements FromCollection $temp = []; foreach ($fields as $field) { if (str_contains($field, 'idcard')) { + // 身份证 $temp[$field] = ' ' . $this->getDotValue($info, $field); } elseif (str_contains($field, 'all_course')) { + // 所有课程 $temp[$field] = $this->allCourse($info); + } elseif (str_contains($field, 'partners')) { + // 股东信息 + $temp[$field] = $this->partners($info); + } elseif (str_contains($field, 'partners')) { + // 项目经理 + $temp[$field] = $this->projectManager($info); + } elseif (str_contains($field, 'users')) { + // 学员信息 + $temp[$field] = $this->getUsers($info); } else { $temp[$field] = $this->getDotValue($info, $field); } @@ -124,4 +135,43 @@ class CommonExport implements FromCollection return implode("、\r\n", $list); } + /** + * 获取所有股东信息 + * @param $data + */ + function partners($data) + { + $list = []; + foreach ($data['partners'] as $item) { + $list[] = $item['stockName'] . '-' . $item['stockPercent'] ?? ''; + } + return implode("、\r\n", $list); + } + + /** + * 获取所有项目经理 + * @param $data + */ + function projectManager($data) + { + $list = []; + foreach ($data['project_users'] as $item) { + $list[] = $item['groupName'] . '-' . $item['userName'] ?? ''; + } + return implode("、\r\n", $list); + } + + /** + * 获取手机号 + * @param $data + */ + function getUsers($data) + { + $list = []; + foreach ($data['users'] as $item) { + $list[] = $item['username'] . '-' . $item['company_position'] . '-' . $item['mobile'] ?? ''; + } + return implode("、\r\n", $list); + } + } From 025d73f6496ae0070cd97cb8f7e4803bffa30fe9 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Fri, 21 Nov 2025 16:48:20 +0800 Subject: [PATCH 3/4] update --- app/Http/Controllers/Admin/OtherController.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 60c2733..e001064 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -287,7 +287,7 @@ class OtherController extends CommonController * tags={"其他"}, * summary="课程统计明细导出", * description="导出课程统计数据的明细", - * @OA\Parameter(name="export_type", in="query", @OA\Schema(type="string"), required=true, description="导出类型:invested_companies-被投企业明细, course_signs_total-报名人数明细, course_signs_pass-审核通过人数明细, course_signs_pass_unique-审核通过人数去重明细, course_types-课程分类明细, areas-区域明细, company_market-上市公司明细, ganbu-跟班学员明细, company_market_year-今年上市公司明细, company_market_after_enrollment-入学后上市公司明细"), + * @OA\Parameter(name="export_type", in="query", @OA\Schema(type="string"), required=true, description="导出类型:course_signs_invested-被投企业明细, course_signs_total-报名人数明细, course_signs_pass-审核通过人数明细, course_signs_pass_unique-审核通过人数去重明细, courseTypesSum-课程分类明细, areas-区域明细, company_market_total-上市公司明细, ganbu_total-跟班学员明细, company_market_year_total-今年上市公司明细, company_market_after_enrollment_total-入学后上市公司明细"), * @OA\Parameter(name="start_date", in="query", @OA\Schema(type="string"), required=false, description="开始日期"), * @OA\Parameter(name="end_date", in="query", @OA\Schema(type="string"), required=false, description="结束日期"), * @OA\Parameter(name="course_type_id", in="query", @OA\Schema(type="string"), required=false, description="课程体系id,多个英文逗号"), @@ -318,7 +318,7 @@ class OtherController extends CommonController $filename = ''; switch ($export_type) { - case 'invested_companies': + case 'course_signs_invested': // 被投企业明细 - 使用与coursesHome相同的算法 $companies = CourseSign::yhInvested($start_date, $end_date, true); foreach ($companies as $company) { @@ -439,7 +439,7 @@ class OtherController extends CommonController $filename = '审核通过人数去重明细'; break; - case 'course_types': + case 'courseTypesSum': // 课程分类明细 - 与coursesHome中的courseTypesSum逻辑保持一致 $courseTypes = CourseType::whereIn('id', $course_type_id)->get(); foreach ($courseTypes as $courseType) { @@ -482,7 +482,7 @@ class OtherController extends CommonController $filename = '区域明细'; break; - case 'company_market': + case 'company_market_total': // 上市公司明细 - 所有上市公司 $companies = Company::companyMarket($start_date, $end_date, true); foreach ($companies as $company) { @@ -508,7 +508,7 @@ class OtherController extends CommonController $filename = '上市公司明细'; break; - case 'ganbu': + case 'ganbu_total': // 跟班学员明细 - 使用模型方法 $users = CourseSign::ganbu($start_date, $end_date, $course_ids, true); @@ -547,9 +547,9 @@ class OtherController extends CommonController $filename = '跟班学员明细'; break; - case 'company_market_year': + case 'company_market_year_total': // 今年上市公司明细 - 使用模型方法 - $companies = Company::companyMarketYear($start_date, $end_date,null, true); + $companies = Company::companyMarketYear($start_date, $end_date, $course_ids, true); foreach ($companies as $company) { $data[] = [ 'company_name' => $company->company_name, @@ -573,7 +573,7 @@ class OtherController extends CommonController $filename = '今年上市公司明细'; break; - case 'company_market_after_enrollment': + case 'company_market_after_enrollment_total': // 入学后上市公司明细 - 使用模型方法 $companiesAfterEnrollment = CourseSign::companyMarketAfterEnrollment($start_date, $end_date, $course_ids->toArray(), true); From 616c930968dbdf862a39992e1ad26f4835d36008 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Fri, 21 Nov 2025 17:00:03 +0800 Subject: [PATCH 4/4] update --- routes/api.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/routes/api.php b/routes/api.php index 318ef4e..bb82395 100755 --- a/routes/api.php +++ b/routes/api.php @@ -43,6 +43,9 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () { // 验证码登陆 Route::get('auth/sms-login', [\App\Http\Controllers\Admin\AuthController::class, "smsLogin"]); Route::get('auth/send-sms', [\App\Http\Controllers\Admin\AuthController::class, "sendSms"]); + + Route::get('company/config', [\App\Http\Controllers\Admin\CompanyController::class, "config"]); + Route::group(['middleware' => ['sanctum.jwt:admin']], function () { // 课程管理 Route::get('courses/index', [\App\Http\Controllers\Admin\CourseController::class, "index"]); @@ -231,7 +234,6 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () { Route::post('email-record/excel-show', [\App\Http\Controllers\Admin\EmailRecordController::class, "excelShow"]); // 企业管理 - Route::get('company/config', [\App\Http\Controllers\Admin\CompanyController::class, "config"]); Route::get('company/index', [\App\Http\Controllers\Admin\CompanyController::class, "index"]); Route::get('company/show', [\App\Http\Controllers\Admin\CompanyController::class, "show"]); Route::post('company/save', [\App\Http\Controllers\Admin\CompanyController::class, "save"]);