Merge branch 'master' of ssh://47.101.48.251:/data/git/wx.sstbc.com

master
lion 3 weeks ago
commit df131dc240

@ -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);
}
}

@ -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);

@ -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);

@ -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"]);

Loading…
Cancel
Save