From 8fe4f21c14992622041654ceb6f60af958931d17 Mon Sep 17 00:00:00 2001 From: mirage <1127314491@qq.com> Date: Sat, 28 Feb 2026 09:29:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E9=A2=84=E6=8A=A5=E5=90=8D=E7=9A=84?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=E7=8B=AC=E7=AB=8B,=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=95=99=E5=B8=88=E4=BF=A1=E6=81=AF=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E6=B7=BB=E5=8A=A0=E8=AF=BE=E7=A8=8B=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=9A=84=E7=9B=B8=E5=85=B3=E6=9D=83=E9=99=90=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/api/college.ts | 5 + admin/src/api/enrollment.ts | 25 +++ admin/src/api/info/info.ts | 2 +- admin/src/api/teacher.ts | 5 + admin/src/utils/format.ts | 18 +- admin/src/views/enrollment/detail.vue | 73 +++++++ admin/src/views/enrollment/index.vue | 50 ++--- .../src/views/teacher/teacher copy/course.vue | 17 +- admin/src/views/teacher/teacher copy/edit.vue | 17 +- .../src/views/teacher/teacher copy/index.vue | 38 ++-- .../admin/controller/CollegeController.java | 21 +- .../controller/StudentInfoController.java | 9 - .../controller/TeacherCourseController.java | 23 ++- .../enrollment/EnrollmentController.java | 64 ++++++ .../mdd/admin/service/ICollegeService.java | 19 +- .../mdd/admin/service/IEnrollmentService.java | 46 +++++ .../admin/service/IStudentInfoService.java | 15 +- .../service/impl/CollegeServiceImpl.java | 58 ++++-- .../service/impl/EnrollmentServiceImpl.java | 195 ++++++++++++++++++ .../service/impl/StudentInfoServiceImpl.java | 118 ++--------- .../service/impl/TeacherServiceImpl.java | 14 ++ .../service/impl/admin/AdminServiceImpl.java | 83 ++++---- .../service/impl/system/JobsServiceImpl.java | 48 +++-- .../com/mdd/admin/vo/EnrollmentDetailVo.java | 49 +++++ .../com/mdd/admin/vo/major/MajorOptionVo.java | 21 ++ .../mdd/admin/vo/teacher/TeacherDetailVo.java | 4 + .../mdd/admin/vo/teacher/TeacherOptionVo.java | 21 ++ .../com/mdd/common/entity/admin/Jobs.java | 4 +- .../mdd/common/mapper/admin/JobsMapper.java | 4 +- 29 files changed, 773 insertions(+), 293 deletions(-) create mode 100644 admin/src/api/enrollment.ts create mode 100644 admin/src/views/enrollment/detail.vue create mode 100644 server/like-admin/src/main/java/com/mdd/admin/controller/enrollment/EnrollmentController.java create mode 100644 server/like-admin/src/main/java/com/mdd/admin/service/IEnrollmentService.java create mode 100644 server/like-admin/src/main/java/com/mdd/admin/service/impl/EnrollmentServiceImpl.java create mode 100644 server/like-admin/src/main/java/com/mdd/admin/vo/EnrollmentDetailVo.java create mode 100644 server/like-admin/src/main/java/com/mdd/admin/vo/major/MajorOptionVo.java create mode 100644 server/like-admin/src/main/java/com/mdd/admin/vo/teacher/TeacherOptionVo.java diff --git a/admin/src/api/college.ts b/admin/src/api/college.ts index 620e9702..0a2988fb 100644 --- a/admin/src/api/college.ts +++ b/admin/src/api/college.ts @@ -5,6 +5,11 @@ export function collegeLists(params?: Record) { return request.get({ url: '/college/list', params }) } +// 学院下拉选项列表(仅id和名称,免权限) +export function collegeOptionLists(params?: Record) { + return request.get({ url: '/college/options', params }) +} + // 学院详情 export function collegeDetail(params: Record) { return request.get({ url: '/college/detail', params }) diff --git a/admin/src/api/enrollment.ts b/admin/src/api/enrollment.ts new file mode 100644 index 00000000..de881fa6 --- /dev/null +++ b/admin/src/api/enrollment.ts @@ -0,0 +1,25 @@ +import request from '@/utils/request' + +// 预报名学生列表 +export function preRegistrationInfoLists(params?: Record) { + return request.get({ url: '/enrollment/preRegistrationList', params }) +} + +// 预报名详情 +export function enrollmentDetail(params: { id: number }) { + return request.get({ url: '/enrollment/detail', params }) +} + +// 学生单个入学 +export function updateStudentStatus(params: { studentId: number }) { + return request.get({ url: '/enrollment/updateStudentStatus', params }) +} + +// 学生批量入学 +export function batchUpdateStudentStatus(params: { studentIdList: number[] }) { + // 批量入学接口:GET /enrollment/batchUpdateStudentStatus?studentIdList=1&studentIdList=2... + const query = params.studentIdList.map((id) => `studentIdList=${encodeURIComponent(id)}`).join('&') + return request.get({ + url: `/enrollment/batchUpdateStudentStatus?${query}` + }) +} diff --git a/admin/src/api/info/info.ts b/admin/src/api/info/info.ts index 24f81638..7cf73d7d 100644 --- a/admin/src/api/info/info.ts +++ b/admin/src/api/info/info.ts @@ -1,6 +1,6 @@ import request from '@/utils/request' -// 学生信息列表 +// 学生信息列表(综合管理用) export function infoLists(params?: Record) { return request.get({ url: '/info/list', params }) } diff --git a/admin/src/api/teacher.ts b/admin/src/api/teacher.ts index b0b63fd7..321eea3a 100644 --- a/admin/src/api/teacher.ts +++ b/admin/src/api/teacher.ts @@ -1,5 +1,10 @@ import request from '@/utils/request' +// 所有课程列表 +export function allCourseList(params?: Record) { + return request.get({ url: '/teacher/course/allCourseList', params }) +} + // 教师信息扩展列表(管理后台用,带权限控制) export function teacherLists(params?: Record) { return request.get({ url: '/teacher/list', params }) diff --git a/admin/src/utils/format.ts b/admin/src/utils/format.ts index 8659ac9b..fc2da396 100644 --- a/admin/src/utils/format.ts +++ b/admin/src/utils/format.ts @@ -4,7 +4,14 @@ * @returns 驼峰命名的对象 */ export const snakeToCamel = (obj: Record): Record => { - if (typeof obj !== 'object' || obj === null) { + if (obj === null || obj === undefined) { + return obj as any + } + // 数组:逐项递归处理,保持数组结构 + if (Array.isArray(obj)) { + return obj.map((item) => snakeToCamel(item)) as any + } + if (typeof obj !== 'object') { return obj // 非对象类型直接返回 } @@ -26,7 +33,14 @@ export const snakeToCamel = (obj: Record): Record => { * @returns 下划线命名的对象 */ export const camelToSnake = (obj: Record): Record => { - if (typeof obj !== 'object' || obj === null) { + if (obj === null || obj === undefined) { + return obj as any + } + // 数组:逐项递归处理,保持数组结构 + if (Array.isArray(obj)) { + return obj.map((item) => camelToSnake(item)) as any + } + if (typeof obj !== 'object') { return obj // 非对象类型直接返回 } diff --git a/admin/src/views/enrollment/detail.vue b/admin/src/views/enrollment/detail.vue new file mode 100644 index 00000000..0b6eb976 --- /dev/null +++ b/admin/src/views/enrollment/detail.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/admin/src/views/enrollment/index.vue b/admin/src/views/enrollment/index.vue index 04e76cb0..cdbb10f5 100644 --- a/admin/src/views/enrollment/index.vue +++ b/admin/src/views/enrollment/index.vue @@ -119,22 +119,22 @@ - + - diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/CollegeController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/CollegeController.java index cf575c53..fe67aaf2 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/CollegeController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/CollegeController.java @@ -9,8 +9,10 @@ import com.mdd.admin.validate.college.CollegeSearchValidate; import com.mdd.admin.validate.commons.PageValidate; import com.mdd.admin.vo.college.CollegeListedVo; import com.mdd.admin.vo.college.CollegeDetailVo; +import com.mdd.admin.vo.college.CollegeOptionVo; import com.mdd.common.core.AjaxResult; import com.mdd.common.core.PageResult; +import com.mdd.common.aop.NotPower; import com.mdd.common.validator.annotation.IDMust; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -28,15 +30,15 @@ public class CollegeController { ICollegeService iCollegeService; @GetMapping("/list") - @ApiOperation(value="学院列表") + @ApiOperation(value = "学院列表") public AjaxResult> list(@Validated PageValidate pageValidate, - @Validated CollegeSearchValidate searchValidate) { + @Validated CollegeSearchValidate searchValidate) { PageResult list = iCollegeService.list(pageValidate, searchValidate); return AjaxResult.success(list); } @GetMapping("/detail") - @ApiOperation(value="学院详情") + @ApiOperation(value = "学院详情") public AjaxResult detail(@Validated @IDMust() @RequestParam("id") Integer id) { CollegeDetailVo detail = iCollegeService.detail(id); return AjaxResult.success(detail); @@ -44,7 +46,7 @@ public class CollegeController { @Log(title = "学院新增") @PostMapping("/add") - @ApiOperation(value="学院新增") + @ApiOperation(value = "学院新增") public AjaxResult add(@Validated @RequestBody CollegeCreateValidate createValidate) { iCollegeService.add(createValidate); return AjaxResult.success(); @@ -52,7 +54,7 @@ public class CollegeController { @Log(title = "学院编辑") @PostMapping("/edit") - @ApiOperation(value="学院编辑") + @ApiOperation(value = "学院编辑") public AjaxResult edit(@Validated @RequestBody CollegeUpdateValidate updateValidate) { iCollegeService.edit(updateValidate); return AjaxResult.success(); @@ -60,10 +62,17 @@ public class CollegeController { @Log(title = "学院删除") @PostMapping("/del") - @ApiOperation(value="学院删除") + @ApiOperation(value = "学院删除") public AjaxResult del(@Validated @RequestBody IdValidate idValidate) { iCollegeService.del(idValidate.getId()); return AjaxResult.success(); } + @GetMapping("/options") + @NotPower + @ApiOperation(value = "学院下拉选项列表") + public AjaxResult> options() { + return AjaxResult.success(iCollegeService.optionList()); + } + } diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/StudentInfoController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/StudentInfoController.java index 0f673e7f..9d43b7fc 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/StudentInfoController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/StudentInfoController.java @@ -18,7 +18,6 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.List; @RestController @RequestMapping("adminapi/info") @@ -59,14 +58,6 @@ public class StudentInfoController { return AjaxResult.success(); } - @Log(title = "学生批量入学") - @GetMapping("/batchUpdateStudentStatus") - @ApiOperation(value = "学生批量入学") - public AjaxResult batchUpdateStudentStatus(@RequestParam("studentIdList") List studentIdList) { - iStudentInfoService.batchUpdateStudentStatus(studentIdList); - return AjaxResult.success(); - } - @Log(title = "学生信息删除") @PostMapping("/del") @ApiOperation(value = "学生信息删除") diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/TeacherCourseController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/TeacherCourseController.java index fb60d0a8..b018efaa 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/controller/TeacherCourseController.java +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/TeacherCourseController.java @@ -2,11 +2,14 @@ package com.mdd.admin.controller; import com.mdd.admin.LikeAdminThreadLocal; import com.mdd.admin.aop.Log; +import com.mdd.admin.service.ICourseService; import com.mdd.admin.service.ITeacherCourseService; import com.mdd.admin.validate.commons.IdValidate; +import com.mdd.admin.validate.course.CourseSearchValidate; import com.mdd.admin.validate.teacher.TeacherCourseCreateValidate; import com.mdd.admin.validate.teacher.TeacherCourseSearchValidate; import com.mdd.admin.validate.commons.PageValidate; +import com.mdd.admin.vo.course.CourseListedVo; import com.mdd.admin.vo.teacher.TeacherCourseListedVo; import com.mdd.admin.vo.teacher.TeacherCourseDetailVo; import com.mdd.common.aop.NotPower; @@ -28,11 +31,21 @@ public class TeacherCourseController { @Resource ITeacherCourseService iTeacherCourseService; + @Resource + ICourseService iCourseService; + + @GetMapping("/allCourseList") + @ApiOperation(value = "获取所有课程列表") + public AjaxResult> list(@Validated PageValidate pageValidate, + @Validated CourseSearchValidate searchValidate) { + PageResult list = iCourseService.list(pageValidate, searchValidate); + return AjaxResult.success(list); + } @GetMapping("/list") - @ApiOperation(value="教师可授课程列表") + @ApiOperation(value = "教师可授课程列表") public AjaxResult> list(@Validated PageValidate pageValidate, - @Validated TeacherCourseSearchValidate searchValidate) { + @Validated TeacherCourseSearchValidate searchValidate) { PageResult list = iTeacherCourseService.list(pageValidate, searchValidate); return AjaxResult.success(list); } @@ -48,7 +61,7 @@ public class TeacherCourseController { } @GetMapping("/detail") - @ApiOperation(value="教师可授课程详情") + @ApiOperation(value = "教师可授课程详情") public AjaxResult detail(@Validated @IDMust() @RequestParam("id") Integer id) { TeacherCourseDetailVo detail = iTeacherCourseService.detail(id); return AjaxResult.success(detail); @@ -56,7 +69,7 @@ public class TeacherCourseController { @Log(title = "教师可授课程新增") @PostMapping("/add") - @ApiOperation(value="教师可授课程新增") + @ApiOperation(value = "教师可授课程新增") public AjaxResult add(@Validated @RequestBody TeacherCourseCreateValidate createValidate) { iTeacherCourseService.add(createValidate); return AjaxResult.success(); @@ -65,7 +78,7 @@ public class TeacherCourseController { @Log(title = "教师可授课程删除") @PostMapping("/del") - @ApiOperation(value="教师可授课程删除") + @ApiOperation(value = "教师可授课程删除") public AjaxResult del(@Validated @RequestBody IdValidate idValidate) { iTeacherCourseService.del(idValidate.getId()); return AjaxResult.success(); diff --git a/server/like-admin/src/main/java/com/mdd/admin/controller/enrollment/EnrollmentController.java b/server/like-admin/src/main/java/com/mdd/admin/controller/enrollment/EnrollmentController.java new file mode 100644 index 00000000..116cb5fc --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/controller/enrollment/EnrollmentController.java @@ -0,0 +1,64 @@ +package com.mdd.admin.controller.enrollment; + +import com.mdd.admin.aop.Log; +import com.mdd.admin.service.IEnrollmentService; +import com.mdd.admin.validate.StudentInfoSearchValidate; +import com.mdd.admin.validate.commons.PageValidate; +import com.mdd.admin.vo.EnrollmentDetailVo; +import com.mdd.admin.vo.StudentInfoListedVo; +import com.mdd.common.core.AjaxResult; +import com.mdd.common.core.PageResult; +import com.mdd.common.validator.annotation.IDMust; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +@RestController +@RequestMapping("adminapi/enrollment") +@Api(tags = "预报名管理") +public class EnrollmentController { + + @Resource + IEnrollmentService iEnrollmentService; + + @GetMapping("/preRegistrationList") + @ApiOperation(value = "预报名学生列表") + public AjaxResult> preRegistrationList(@Validated PageValidate pageValidate, + @Validated StudentInfoSearchValidate searchValidate) { + // 默认只查预报名(0)和报名(1)的学生 + if (searchValidate.getStudentStatus() == null) { + // 约定:传 -1 表示“预报名+报名”,由 Service 层统一处理 + searchValidate.setStudentStatus(-1); + } + PageResult list = iEnrollmentService.list(pageValidate, searchValidate); + return AjaxResult.success(list); + } + + @GetMapping("/detail") + @ApiOperation(value = "预报名详情") + public AjaxResult detail(@Validated @IDMust() @RequestParam("id") Integer id) { + EnrollmentDetailVo detail = iEnrollmentService.detail(id); + return AjaxResult.success(detail); + } + + @Log(title = "学生单个入学") + @GetMapping("/updateStudentStatus") + @ApiOperation(value = "学生单个入学") + public AjaxResult updateStudentStatus(@RequestParam("studentId") Integer studentId) { + iEnrollmentService.updateStudentStatus(studentId); + return AjaxResult.success(); + } + + @Log(title = "学生批量入学") + @GetMapping("/batchUpdateStudentStatus") + @ApiOperation(value = "学生批量入学") + public AjaxResult batchUpdateStudentStatus(@RequestParam("studentIdList") List studentIdList) { + iEnrollmentService.batchUpdateStudentStatus(studentIdList); + return AjaxResult.success(); + } + +} diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/ICollegeService.java b/server/like-admin/src/main/java/com/mdd/admin/service/ICollegeService.java index 3241d495..4124bd28 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/ICollegeService.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/ICollegeService.java @@ -6,10 +6,12 @@ import com.mdd.admin.validate.college.CollegeUpdateValidate; import com.mdd.admin.validate.college.CollegeSearchValidate; import com.mdd.admin.vo.college.CollegeListedVo; import com.mdd.admin.vo.college.CollegeDetailVo; +import com.mdd.admin.vo.college.CollegeOptionVo; import com.mdd.common.core.PageResult; /** * 学院服务接口类 + * * @author LikeAdmin */ public interface ICollegeService { @@ -17,43 +19,48 @@ public interface ICollegeService { /** * 学院列表 * - * @author LikeAdmin - * @param pageValidate 分页参数 + * @param pageValidate 分页参数 * @param searchValidate 搜索参数 * @return PageResult + * @author LikeAdmin */ PageResult list(PageValidate pageValidate, CollegeSearchValidate searchValidate); /** * 学院详情 * - * @author LikeAdmin * @param id 主键ID * @return CollegeDetailVo + * @author LikeAdmin */ CollegeDetailVo detail(Integer id); + /** + * 学院下拉选项列表 + */ + java.util.List optionList(); + /** * 学院新增 * - * @author LikeAdmin * @param createValidate 参数 + * @author LikeAdmin */ void add(CollegeCreateValidate createValidate); /** * 学院编辑 * - * @author LikeAdmin * @param updateValidate 参数 + * @author LikeAdmin */ void edit(CollegeUpdateValidate updateValidate); /** * 学院删除 * - * @author LikeAdmin * @param id 主键ID + * @author LikeAdmin */ void del(Integer id); diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/IEnrollmentService.java b/server/like-admin/src/main/java/com/mdd/admin/service/IEnrollmentService.java new file mode 100644 index 00000000..c0fecba8 --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/service/IEnrollmentService.java @@ -0,0 +1,46 @@ +package com.mdd.admin.service; + +import com.mdd.admin.validate.StudentInfoSearchValidate; +import com.mdd.admin.validate.commons.PageValidate; +import com.mdd.admin.vo.EnrollmentDetailVo; +import com.mdd.admin.vo.StudentInfoListedVo; +import com.mdd.common.core.PageResult; + +import java.util.List; + +/** + * 预报名服务接口类 + */ +public interface IEnrollmentService { + + /** + * 预报名列表 + * + * @param pageValidate 分页参数 + * @param searchValidate 搜索参数 + * @return PageResult + */ + PageResult list(PageValidate pageValidate, StudentInfoSearchValidate searchValidate); + + /** + * 预报名详情 + * + * @param id 主键ID + * @return EnrollmentDetailVo + */ + EnrollmentDetailVo detail(Integer id); + + /** + * 学生入学状态更新 + * + * @param studentId 学生ID + */ + void updateStudentStatus(Integer studentId); + + /** + * 学生批量入学状态更新 + * + * @param studentIdList 学生ID列表 + */ + void batchUpdateStudentStatus(List studentIdList); +} diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/IStudentInfoService.java b/server/like-admin/src/main/java/com/mdd/admin/service/IStudentInfoService.java index 0103d0aa..fd126648 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/IStudentInfoService.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/IStudentInfoService.java @@ -13,6 +13,7 @@ import java.util.List; /** * 学生信息服务接口类 + * * @author gyp */ public interface IStudentInfoService { @@ -20,45 +21,43 @@ public interface IStudentInfoService { /** * 学生信息列表 * - * @author gyp - * @param pageValidate 分页参数 + * @param pageValidate 分页参数 * @param searchValidate 搜索参数 * @return PageResult + * @author gyp */ PageResult list(PageValidate pageValidate, StudentInfoSearchValidate searchValidate); /** * 学生信息详情 * - * @author gyp * @param id 主键ID * @return StudentInfoDetailVo + * @author gyp */ StudentInfoDetailVo detail(Integer id); /** * 学生信息新增 * - * @author gyp * @param createValidate 参数 + * @author gyp */ void add(StudentInfoCreateValidate createValidate); /** * 学生信息编辑 * - * @author gyp * @param updateValidate 参数 + * @author gyp */ void edit(StudentInfoUpdateValidate updateValidate); /** * 学生信息删除 * - * @author gyp * @param id 主键ID + * @author gyp */ void del(Integer id); - - void batchUpdateStudentStatus(List studentIdList); } diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/CollegeServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/CollegeServiceImpl.java index 724ce78d..ec5c737f 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/CollegeServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/CollegeServiceImpl.java @@ -10,6 +10,7 @@ import com.mdd.admin.validate.college.CollegeUpdateValidate; import com.mdd.admin.validate.college.CollegeSearchValidate; import com.mdd.admin.vo.college.CollegeListedVo; import com.mdd.admin.vo.college.CollegeDetailVo; +import com.mdd.admin.vo.college.CollegeOptionVo; import com.mdd.common.core.PageResult; import com.mdd.common.entity.College; import com.mdd.common.mapper.CollegeMapper; @@ -23,40 +24,41 @@ import java.util.*; /** * 学院实现类 + * * @author LikeAdmin */ @Service public class CollegeServiceImpl implements ICollegeService { - + @Resource CollegeMapper collegeMapper; /** * 学院列表 * - * @author LikeAdmin - * @param pageValidate 分页参数 + * @param pageValidate 分页参数 * @param searchValidate 搜索参数 * @return PageResult + * @author LikeAdmin */ @Override public PageResult list(PageValidate pageValidate, CollegeSearchValidate searchValidate) { - Integer page = pageValidate.getPage_no(); + Integer page = pageValidate.getPage_no(); Integer limit = pageValidate.getPage_size(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("id"); collegeMapper.setSearch(queryWrapper, searchValidate, new String[]{ - "=:collegeCode@college_code:str", - "like:collegeName@college_name:str", - "=:status:int", + "=:collegeCode@college_code:str", + "like:collegeName@college_name:str", + "=:status:int", }); IPage iPage = collegeMapper.selectPage(new Page<>(page, limit), queryWrapper); List list = new LinkedList<>(); - for(College item : iPage.getRecords()) { + for (College item : iPage.getRecords()) { CollegeListedVo vo = new CollegeListedVo(); BeanUtils.copyProperties(item, vo); vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime())); @@ -70,16 +72,16 @@ public class CollegeServiceImpl implements ICollegeService { /** * 学院详情 * - * @author LikeAdmin * @param id 主键参数 * @return College + * @author LikeAdmin */ @Override public CollegeDetailVo detail(Integer id) { College model = collegeMapper.selectOne( new QueryWrapper() - .eq("id", id) - .last("limit 1")); + .eq("id", id) + .last("limit 1")); Assert.notNull(model, "数据不存在"); @@ -88,11 +90,30 @@ public class CollegeServiceImpl implements ICollegeService { return vo; } + /** + * 学院下拉选项列表 + */ + @Override + public java.util.List optionList() { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.isNull("delete_time") + .orderByAsc("college_name"); + java.util.List colleges = collegeMapper.selectList(queryWrapper); + java.util.List list = new java.util.ArrayList<>(); + for (College college : colleges) { + CollegeOptionVo vo = new CollegeOptionVo(); + vo.setId(college.getId()); + vo.setCollegeName(college.getCollegeName()); + list.add(vo); + } + return list; + } + /** * 学院新增 * - * @author LikeAdmin * @param createValidate 参数 + * @author LikeAdmin */ @Override public void add(CollegeCreateValidate createValidate) { @@ -115,15 +136,15 @@ public class CollegeServiceImpl implements ICollegeService { /** * 学院编辑 * - * @author LikeAdmin * @param updateValidate 参数 + * @author LikeAdmin */ @Override public void edit(CollegeUpdateValidate updateValidate) { College model = collegeMapper.selectOne( new QueryWrapper() - .eq("id", updateValidate.getId()) - .last("limit 1")); + .eq("id", updateValidate.getId()) + .last("limit 1")); Assert.notNull(model, "数据不存在!"); @@ -145,16 +166,13 @@ public class CollegeServiceImpl implements ICollegeService { /** * 学院删除 - * - * @author LikeAdmin - * @param id 主键ID */ @Override public void del(Integer id) { College model = collegeMapper.selectOne( new QueryWrapper() - .eq("id", id) - .last("limit 1")); + .eq("id", id) + .last("limit 1")); Assert.notNull(model, "数据不存在!"); diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/EnrollmentServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/EnrollmentServiceImpl.java new file mode 100644 index 00000000..06cfe350 --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/EnrollmentServiceImpl.java @@ -0,0 +1,195 @@ +package com.mdd.admin.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mdd.admin.service.IEnrollmentService; +import com.mdd.admin.validate.StudentInfoSearchValidate; +import com.mdd.admin.validate.commons.PageValidate; +import com.mdd.admin.vo.EnrollmentDetailVo; +import com.mdd.admin.vo.StudentInfoListedVo; +import com.mdd.common.core.PageResult; +import com.mdd.common.entity.*; +import com.mdd.common.entity.Class; +import com.mdd.common.entity.admin.Admin; +import com.mdd.common.exception.OperateException; +import com.mdd.common.mapper.*; +import com.mdd.common.mapper.admin.AdminMapper; +import com.mdd.common.util.TimeUtils; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 预报名服务实现类 + */ +@Service +public class EnrollmentServiceImpl extends ServiceImpl implements IEnrollmentService { + + @Resource + StudentInfoMapper studentInfoMapper; + @Autowired + private StudentBaseInfoMapper studentBaseInfoMapper; + @Autowired + private CollegeMapper collegeMapper; + @Autowired + private MajorMapper majorMapper; + @Autowired + private ClassMapper classMapper; + @Autowired + private AdminMapper adminMapper; + @Autowired + private TeacherMapper teacherMapper; + + /** + * 预报名列表 + */ + @Override + public PageResult list(PageValidate pageValidate, StudentInfoSearchValidate searchValidate) { + Integer page = pageValidate.getPage_no(); + Integer limit = pageValidate.getPage_size(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("student_id"); + + List conditions = new ArrayList<>(Arrays.asList( + "like:studentNumber@student_number:str", + "=:collegeId@college_id:int", + "=:majorId@major_id:int", + "=:classId@class_id:int", + "=:grade:int", + "=:enrollmentYear@enrollment_year:int", + "=:studentStatus@student_status:int", + "like:dormitory:str", + "=:counselorId@counselor_id:int", + "=:academicWarnings@academic_warnings:int", + "=:isVerified@is_verified:int", + "=:verifiedBy@verified_by:int", + "=:recruitmentTeacherId@recruitment_teacher_id:int", + "=:receptionTeacherId@reception_teacher_id:int", + "datetime:createTimeStart-createTimeEnd@create_time:str" + )); + + if (searchValidate.getStudentStatus() != null && searchValidate.getStudentStatus() == -1) { + conditions.remove("=:studentStatus@student_status:int"); + queryWrapper.in("student_status", 0, 1); + searchValidate.setStudentStatus(null); + } + + studentInfoMapper.setSearch(queryWrapper, searchValidate, conditions.toArray(new String[0])); + + IPage iPage = studentInfoMapper.selectPage(new Page<>(page, limit), queryWrapper); + + List list = new LinkedList<>(); + for (StudentInfo item : iPage.getRecords()) { + StudentInfoListedVo vo = new StudentInfoListedVo(); + BeanUtils.copyProperties(item, vo); + vo.setVerifiedTime(TimeUtils.timestampToDate(item.getVerifiedTime())); + + StudentBaseInfo baseInfo = studentBaseInfoMapper.selectOne( + new QueryWrapper() + .eq("student_id", item.getStudentId()) + .last("limit 1")); + if (baseInfo != null) { + vo.setName(baseInfo.getName()); + vo.setGender(baseInfo.getGender()); + vo.setIdCard(baseInfo.getIdCard()); + vo.setPreviousSchool(baseInfo.getPreviousSchool()); + vo.setHeight(baseInfo.getHeight()); + vo.setWeight(baseInfo.getWeight()); + vo.setShoeSize(baseInfo.getShoeSize()); + } + + if (item.getCreateTime() != null) { + vo.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(item.getCreateTime())); + } + if (item.getUpdateTime() != null) { + vo.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(item.getUpdateTime())); + } + + College college = collegeMapper.selectById(item.getCollegeId()); + Major major = majorMapper.selectById(item.getMajorId()); + Class clazz = classMapper.selectById(item.getClassId()); + Admin counselor = adminMapper.selectById(item.getCounselorId()); + Admin verifier = adminMapper.selectById(item.getVerifiedBy()); + Teacher teacher = teacherMapper.selectById(item.getRecruitmentTeacherId()); + + vo.setCollegeName(college != null ? college.getCollegeName() : ""); + vo.setMajorName(major != null ? major.getMajorName() : ""); + vo.setClassName(clazz != null ? clazz.getClassName() : ""); + vo.setCounselorName(counselor != null ? counselor.getName() : ""); + vo.setVerifierName(verifier != null ? verifier.getName() : ""); + vo.setRecruitmentTeacherName(teacher != null ? teacher.getTeacherName() : null); + + list.add(vo); + } + + return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); + } + + /** + * 预报名详情 + */ + @Override + public EnrollmentDetailVo detail(Integer id) { + StudentInfo model = studentInfoMapper.selectOne( + new QueryWrapper() + .eq("student_id", id) + .last("limit 1")); + + Assert.notNull(model, "数据不存在"); + + EnrollmentDetailVo vo = new EnrollmentDetailVo(); + vo.setHighSchoolScore(model.getHighSchoolScore()); + vo.setPreRegistrationAmount(model.getPreRegistrationAmount()); + + Major major = majorMapper.selectById(model.getMajorId()); + vo.setMajorName(major != null ? major.getMajorName() : ""); + + Teacher teacher = teacherMapper.selectById(model.getRecruitmentTeacherId()); + vo.setRecruitmentTeacherName(teacher != null ? teacher.getTeacherName() : ""); + + StudentBaseInfo baseInfo = studentBaseInfoMapper.selectOne( + new QueryWrapper() + .eq("student_id", model.getStudentId()) + .last("limit 1")); + if (baseInfo != null) { + vo.setName(baseInfo.getName()); + vo.setGender(baseInfo.getGender()); + vo.setIdCard(baseInfo.getIdCard()); + vo.setPreviousSchool(baseInfo.getPreviousSchool()); + vo.setHeight(baseInfo.getHeight()); + vo.setWeight(baseInfo.getWeight()); + vo.setShoeSize(baseInfo.getShoeSize()); + } + + return vo; + } + + /** + * 更新学生入学状态 + */ + @Override + public void updateStudentStatus(Integer studentId) { + this.update(new UpdateWrapper().eq("student_id", studentId).set("student_status", 2)); + } + + /** + * 批量更新学生入学状态 + */ + @Override + public void batchUpdateStudentStatus(List studentIdList) { + if (CollectionUtils.isEmpty(studentIdList)) { + throw new OperateException("批量入学失败, 学生idList丢失"); + } + studentInfoMapper.batchUpdateStudentStatus(studentIdList); + } +} diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/StudentInfoServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/StudentInfoServiceImpl.java index 67b7676c..cbf7d712 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/StudentInfoServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/StudentInfoServiceImpl.java @@ -1,7 +1,6 @@ package com.mdd.admin.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -16,8 +15,6 @@ import com.mdd.common.core.PageResult; import com.mdd.common.entity.*; import com.mdd.common.entity.Class; import com.mdd.common.entity.admin.Admin; -import com.mdd.common.entity.user.User; -import com.mdd.common.exception.OperateException; import com.mdd.common.mapper.*; import com.mdd.common.mapper.admin.AdminMapper; import com.mdd.common.mapper.user.UserMapper; @@ -27,8 +24,6 @@ import java.time.format.DateTimeFormatter; import java.text.SimpleDateFormat; import com.mdd.common.util.*; -import io.netty.util.internal.ThreadLocalRandom; -import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -78,7 +73,8 @@ public class StudentInfoServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("student_id"); - studentInfoMapper.setSearch(queryWrapper, searchValidate, new String[]{ + // 特殊处理:当 studentStatus = -1 时,表示“预报名 + 报名” + List conditions = new ArrayList<>(Arrays.asList( "like:studentNumber@student_number:str", "=:collegeId@college_id:int", "=:majorId@major_id:int", @@ -93,8 +89,18 @@ public class StudentInfoServiceImpl extends ServiceImpl iPage = studentInfoMapper.selectPage(new Page<>(page, limit), queryWrapper); @@ -388,101 +394,5 @@ public class StudentInfoServiceImpl extends ServiceImpl().eq("student_id", id)); } - - @Override - public void batchUpdateStudentStatus(List studentIdList) { - if (CollectionUtils.isEmpty(studentIdList)) { - throw new OperateException("批量入学失败, 学生idList丢失"); - } - - studentInfoMapper.batchUpdateStudentStatus(studentIdList); - } - - private > T getRandomEntity(M mapper) { - try { - QueryWrapper wrapper = new QueryWrapper<>(); - List entityList = mapper.selectList(wrapper); - - // 检查列表是否为空 - if (entityList == null || entityList.isEmpty()) { - return null; - } - - // 生成随机索引 - Random random = new Random(); - int randomIndex = random.nextInt(entityList.size()); - return entityList.get(randomIndex); - - } catch (Exception e) { - return null; - } - } - - /** - * 根据班级入学年份计算当前年级 - * - * @param enrollmentYear 班级入学年份 - * @return 当前年级(1-4 对应大一到大四) - */ - private Integer calculateGrade(Integer enrollmentYear) { - if (enrollmentYear == null) { - return null; - } - - // 获取当前年份 - Calendar calendar = Calendar.getInstance(); - int currentYear = calendar.get(Calendar.YEAR); - int currentMonth = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,需要+1 - - // 计算年级 - int grade = currentYear - enrollmentYear; - - // 调整:如果当前月份在9月之前(秋季学期开始前),年级减1 - if (currentMonth < 9) { - grade--; - } - - // 确保年级在合理范围内(1-4) - if (grade < 1) { - grade = 1; // 最小为大一 - } else if (grade > 4) { - grade = 4; // 最大为大四 - } - - return grade; - } - - /** - * 生成随机的用户信息,返回身份证号 - * 由于user实体不存储身份证号,但生成的用户账户是根据身份证后六位生成的,故需要让方法返回一个身份证号 - */ - public String createRandomUser(User user) { - // 生成随机姓名 - String name = RandomUtil.randomName(); - // 生成随机身份证号 - String idCard = RandomUtil.randomIdCard(); - // 生成随机编号 - Random random = ThreadLocalRandom.current(); - Integer sn = random.nextInt(900000) + 100000; - - user.setNickname(name); - user.setRealName(name); - user.setAccount("T" + sn.toString()); - user.setSn(sn); - String pwd = idCard.substring(12); - user.setPassword(ToolUtils.makePassword(pwd)); - - String defaultAvatar = ConfigUtils.get("default_image", "user_avatar", "/api/static/default_avatar.png"); - - user.setAvatar(defaultAvatar); - user.setChannel(0); - user.setIsNewUser(1); - user.setSex(RandomUtil.genderFromIdCard(idCard)); - user.setCreateTime(System.currentTimeMillis() / 1000); - user.setUpdateTime(System.currentTimeMillis() / 1000); - userMapper.insert(user); - return idCard; - } - } diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/TeacherServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/TeacherServiceImpl.java index 5aabed7e..1df1b077 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/TeacherServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/TeacherServiceImpl.java @@ -22,6 +22,7 @@ import com.mdd.common.entity.admin.AdminRole; import com.mdd.common.entity.system.SystemRole; import com.mdd.common.mapper.CollegeMapper; import com.mdd.common.mapper.TeacherMapper; +import com.mdd.common.mapper.admin.AdminMapper; import com.mdd.common.mapper.system.SystemRoleMapper; import com.mdd.common.exception.OperateException; import com.mdd.common.service.RegisterService; @@ -65,6 +66,8 @@ public class TeacherServiceImpl implements ITeacherService { private AdminRoleServiceImpl adminRoleServiceImpl; @Autowired private SystemRoleMapper systemRoleMapper; + @Autowired + private AdminMapper adminMapper; /** * 教师信息扩展列表 @@ -150,6 +153,17 @@ public class TeacherServiceImpl implements ITeacherService { College college = collegeMapper.selectById(vo.getCollegeId()); if (college != null) vo.setCollegeName(college.getCollegeName()); + // 绑定角色ID列表:根据教师工号找到对应的后台账号,再查询其角色ID + com.mdd.common.entity.admin.Admin admin = adminMapper.selectOne( + new com.baomidou.mybatisplus.core.conditions.query.QueryWrapper() + .eq("account", model.getTeacherCode()) + .isNull("delete_time") + .last("limit 1") + ); + if (admin != null) { + java.util.List roleIds = adminRoleServiceImpl.getRoleIdAttr(admin.getId()); + vo.setRoleId(roleIds); + } return vo; } diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/admin/AdminServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/admin/AdminServiceImpl.java index 938c5ef5..379ada88 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/admin/AdminServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/admin/AdminServiceImpl.java @@ -17,17 +17,13 @@ import com.mdd.admin.validate.system.SystemAdminCreateValidate; import com.mdd.admin.validate.system.SystemAdminSearchValidate; import com.mdd.admin.validate.system.SystemAdminUpInfoValidate; import com.mdd.admin.validate.system.SystemAdminUpdateValidate; -import com.mdd.admin.validate.user.UserSearchValidate; import com.mdd.admin.vo.auth.AdminMySelfVo; import com.mdd.admin.vo.auth.AuthMySelfVo; import com.mdd.admin.vo.system.*; -import com.mdd.admin.vo.user.UserListExportVo; -import com.mdd.admin.vo.user.UserVo; import com.mdd.common.core.PageResult; -import com.mdd.common.entity.Teacher; import com.mdd.common.entity.admin.Admin; import com.mdd.common.entity.admin.Dept; -import com.mdd.common.entity.system.Jobs; +import com.mdd.common.entity.admin.Jobs; import com.mdd.common.entity.system.SystemMenu; import com.mdd.common.entity.system.SystemRole; import com.mdd.common.exception.OperateException; @@ -87,23 +83,23 @@ public class AdminServiceImpl implements IAdminService { /** * 管理员列表 * - * @author fzr - * @param pageValidate 分页参数 + * @param pageValidate 分页参数 * @param searchValidate 搜索参数 * @return PageResult + * @author fzr */ @Override public PageResult list(PageValidate pageValidate, SystemAdminSearchValidate searchValidate) { - Integer page = pageValidate.getPage_no(); + Integer page = pageValidate.getPage_no(); Integer limit = pageValidate.getPage_size(); MPJQueryWrapper mpjQueryWrapper = new MPJQueryWrapper<>(); mpjQueryWrapper.select("distinct t.id,t.account,t.name,t.avatar," + - "t.multipoint_login," + - "t.disable,t.login_ip,t.login_time,t.create_time,t.update_time") + "t.multipoint_login," + + "t.disable,t.login_ip,t.login_time,t.create_time,t.update_time") .leftJoin("la_admin_role lar ON lar.admin_id = t.id") - .isNull("t.delete_time") - .orderByDesc(Arrays.asList("t.id")); + .isNull("t.delete_time") + .orderByDesc(Arrays.asList("t.id")); systemAuthAdminMapper.setSearch(mpjQueryWrapper, searchValidate, new String[]{ @@ -130,7 +126,7 @@ public class AdminServiceImpl implements IAdminService { List roleIds = new ArrayList<>(); List roleNames = new ArrayList<>(); if (!roles.isEmpty()) { - roles.forEach(item-> { + roles.forEach(item -> { roleIds.add(item.getId()); roleNames.add(item.getName()); @@ -144,7 +140,7 @@ public class AdminServiceImpl implements IAdminService { List jobsId = new ArrayList<>(); List jobsNames = new ArrayList<>(); if (!jobs.isEmpty()) { - jobs.forEach(item-> { + jobs.forEach(item -> { jobsId.add(item.getId()); jobsNames.add(item.getName()); }); @@ -157,7 +153,7 @@ public class AdminServiceImpl implements IAdminService { List deptIds = new ArrayList<>(); List deptNames = new ArrayList<>(); if (!depts.isEmpty()) { - depts.forEach(item-> { + depts.forEach(item -> { deptIds.add(item.getId()); deptNames.add(item.getName()); }); @@ -181,17 +177,17 @@ public class AdminServiceImpl implements IAdminService { /** * 当前管理员 * - * @author fzr * @param adminId 管理员ID * @return SystemAuthAdminSelvesVo + * @author fzr */ @Override public SystemAuthAdminSelvesVo self(Integer adminId) { // 管理员信息 Admin sysAdmin = systemAuthAdminMapper.selectOne(new QueryWrapper() - .select(Admin.class, info-> - !info.getColumn().equals("password") && - !info.getColumn().equals("delete_time")) + .select(Admin.class, info -> + !info.getColumn().equals("password") && + !info.getColumn().equals("delete_time")) .isNull("delete_time") .eq("id", adminId) .last("limit 1")); @@ -241,9 +237,9 @@ public class AdminServiceImpl implements IAdminService { /** * 管理员详细 * - * @author fzr * @param id 主键 * @return SystemAuthAdminDetailVo + * @author fzr */ @Override public SystemAuthAdminDetailVo detail(Integer id) { @@ -269,8 +265,8 @@ public class AdminServiceImpl implements IAdminService { /** * 管理员新增 * - * @author fzr * @param createValidate 参数 + * @author fzr */ @Override public void add(SystemAdminCreateValidate createValidate) { @@ -287,9 +283,9 @@ public class AdminServiceImpl implements IAdminService { .eq("name", createValidate.getName()) .last("limit 1")), "昵称已存在换一个吧!"); - String pwd = ToolUtils.makePassword(createValidate.getPassword().trim()); + String pwd = ToolUtils.makePassword(createValidate.getPassword().trim()); - String createAvatar = createValidate.getAvatar(); + String createAvatar = createValidate.getAvatar(); String defaultAvatar = "/api/static/backend_avatar.png"; String avatar = StringUtils.isNotEmpty(createValidate.getAvatar()) ? UrlUtils.toRelativeUrl(createAvatar) : defaultAvatar; @@ -318,9 +314,9 @@ public class AdminServiceImpl implements IAdminService { /** * 管理员更新 * - * @author fzr * @param updateValidate 参数 - * @param adminId 管理员ID + * @param adminId 管理员ID + * @author fzr */ @Override public void edit(SystemAdminUpdateValidate updateValidate, Integer adminId) { @@ -404,14 +400,13 @@ public class AdminServiceImpl implements IAdminService { } - } /** * 当前管理员更新 * - * @author fzr * @param upInfoValidate 参数 + * @author fzr */ @Override public void upInfo(SystemAdminUpInfoValidate upInfoValidate, Integer adminId) { @@ -423,7 +418,7 @@ public class AdminServiceImpl implements IAdminService { Assert.notNull(model, "账号不存在了!"); - String createAvatar = upInfoValidate.getAvatar(); + String createAvatar = upInfoValidate.getAvatar(); String defaultAvatar = "/api/static/backend_avatar.png"; String avatar = StringUtils.isNotEmpty(upInfoValidate.getAvatar()) ? UrlUtils.toRelativeUrl(createAvatar) : defaultAvatar; @@ -437,7 +432,7 @@ public class AdminServiceImpl implements IAdminService { if (upInfoValidate.getPassword().length() > 64) { throw new OperateException("密码不能超出64个字符"); } - String pwd = ToolUtils.makePassword( upInfoValidate.getPassword().trim()); + String pwd = ToolUtils.makePassword(upInfoValidate.getPassword().trim()); model.setPassword(pwd); } @@ -450,9 +445,9 @@ public class AdminServiceImpl implements IAdminService { /** * 管理员删除 * - * @author fzr - * @param id 主键 + * @param id 主键 * @param adminId 管理员ID + * @author fzr */ @Override public void del(Integer id, Integer adminId) { @@ -464,7 +459,7 @@ public class AdminServiceImpl implements IAdminService { .last("limit 1")), "账号已不存在!"); Assert.isFalse(id.equals(1), "系统管理员不允许删除!"); - Assert.isFalse(id.equals(adminId) , "不能删除自己!"); + Assert.isFalse(id.equals(adminId), "不能删除自己!"); Admin model = new Admin(); model.setId(id); @@ -480,9 +475,9 @@ public class AdminServiceImpl implements IAdminService { /** * 管理员状态切换 * - * @author fzr - * @param id 主键参数 + * @param id 主键参数 * @param adminId 管理员ID + * @author fzr */ @Override public void disable(Integer id, Integer adminId) { @@ -493,7 +488,7 @@ public class AdminServiceImpl implements IAdminService { .last("limit 1")); Assert.notNull(systemAuthAdmin, "账号已不存在!"); - Assert.isFalse(id.equals(adminId) , "不能禁用自己!"); + Assert.isFalse(id.equals(adminId), "不能禁用自己!"); Integer disable = systemAuthAdmin.getDisable() == 1 ? 0 : 1; systemAuthAdmin.setDisable(disable); @@ -524,10 +519,10 @@ public class AdminServiceImpl implements IAdminService { @Override public JSONObject getExportData(PageValidate pageValidate, SystemAdminSearchValidate searchValidate) { - Integer page = pageValidate.getPage_no(); + Integer page = pageValidate.getPage_no(); Integer limit = pageValidate.getPage_size(); PageResult userVoPageResult = this.list(pageValidate, searchValidate); - JSONObject ret = ToolUtils.getExportData(userVoPageResult.getCount(), limit, searchValidate.getPage_start(), searchValidate.getPage_end(),"管理员记录列表"); + JSONObject ret = ToolUtils.getExportData(userVoPageResult.getCount(), limit, searchValidate.getPage_start(), searchValidate.getPage_end(), "管理员记录列表"); return ret; } @@ -548,9 +543,9 @@ public class AdminServiceImpl implements IAdminService { Boolean isAll = StringUtils.isNull(searchValidate.getPage_type()) || searchValidate.getPage_type().equals(0) ? true : false; List excellist = this.getExcellist(isAll, pageValidate, searchValidate); String fileName = StringUtils.isNull(searchValidate.getFile_name()) ? ToolUtils.makeUUID() : searchValidate.getFile_name(); - String folderPath = "/excel/export/"+ TimeUtils.timestampToDay(System.currentTimeMillis() / 1000) +"/" ; - String path = folderPath + fileName +".xlsx"; - String filePath = YmlUtils.get("like.upload-directory") + path; + String folderPath = "/excel/export/" + TimeUtils.timestampToDay(System.currentTimeMillis() / 1000) + "/"; + String path = folderPath + fileName + ".xlsx"; + String filePath = YmlUtils.get("like.upload-directory") + path; File folder = new File(YmlUtils.get("like.upload-directory") + folderPath); if (!folder.exists()) { if (!folder.mkdirs()) { @@ -566,7 +561,7 @@ public class AdminServiceImpl implements IAdminService { } private List getExcellist(boolean isAll, PageValidate pageValidate, SystemAdminSearchValidate searchValidate) { - Integer page = pageValidate.getPage_no(); + Integer page = pageValidate.getPage_no(); Integer limit = pageValidate.getPage_size(); MPJQueryWrapper mpjQueryWrapper = new MPJQueryWrapper<>(); @@ -608,7 +603,7 @@ public class AdminServiceImpl implements IAdminService { List roleIds = new ArrayList<>(); List roleNames = new ArrayList<>(); if (!roles.isEmpty()) { - roles.forEach(item-> { + roles.forEach(item -> { roleIds.add(item.getId()); roleNames.add(item.getName()); @@ -622,7 +617,7 @@ public class AdminServiceImpl implements IAdminService { List jobsId = new ArrayList<>(); List jobsNames = new ArrayList<>(); if (!jobs.isEmpty()) { - jobs.forEach(item-> { + jobs.forEach(item -> { jobsId.add(item.getId()); jobsNames.add(item.getName()); }); @@ -635,7 +630,7 @@ public class AdminServiceImpl implements IAdminService { List deptIds = new ArrayList<>(); List deptNames = new ArrayList<>(); if (!depts.isEmpty()) { - depts.forEach(item-> { + depts.forEach(item -> { deptIds.add(item.getId()); deptNames.add(item.getName()); }); diff --git a/server/like-admin/src/main/java/com/mdd/admin/service/impl/system/JobsServiceImpl.java b/server/like-admin/src/main/java/com/mdd/admin/service/impl/system/JobsServiceImpl.java index a74ade57..02a990cc 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/service/impl/system/JobsServiceImpl.java +++ b/server/like-admin/src/main/java/com/mdd/admin/service/impl/system/JobsServiceImpl.java @@ -12,14 +12,11 @@ import com.mdd.admin.validate.commons.PageValidate; import com.mdd.admin.validate.system.JobsCreateValidate; import com.mdd.admin.validate.system.JobsSearchValidate; import com.mdd.admin.validate.system.JobsUpdateValidate; -import com.mdd.admin.validate.user.UserSearchValidate; import com.mdd.admin.vo.system.JobsExportVo; import com.mdd.admin.vo.system.JobsVo; -import com.mdd.admin.vo.user.UserListExportVo; -import com.mdd.admin.vo.user.UserVo; import com.mdd.common.core.PageResult; import com.mdd.common.entity.admin.Admin; -import com.mdd.common.entity.system.Jobs; +import com.mdd.common.entity.admin.Jobs; import com.mdd.common.exception.OperateException; import com.mdd.common.mapper.admin.AdminMapper; import com.mdd.common.mapper.admin.JobsMapper; @@ -48,8 +45,8 @@ public class JobsServiceImpl implements IJobsService { /** * 岗位所有 * - * @author fzr * @return List + * @author fzr */ @Override public List all() { @@ -73,19 +70,19 @@ public class JobsServiceImpl implements IJobsService { /** * 岗位列表 * - * @author fzr - * @param pageValidate 分页参数 + * @param pageValidate 分页参数 * @param searchValidate 搜索参数 * @return PageResult + * @author fzr */ @Override public PageResult list(PageValidate pageValidate, JobsSearchValidate searchValidate) { - Integer page = pageValidate.getPage_no(); + Integer page = pageValidate.getPage_no(); Integer limit = pageValidate.getPage_size(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select(Jobs.class, info-> - !info.getColumn().equals("delete_time")) + queryWrapper.select(Jobs.class, info -> + !info.getColumn().equals("delete_time")) .isNull("delete_time") .orderByDesc(Arrays.asList("sort", "id")); @@ -113,15 +110,15 @@ public class JobsServiceImpl implements IJobsService { /** * 岗位详情 * - * @author fzr * @param id 主键 * @return SystemPostVo + * @author fzr */ @Override public JobsVo detail(Integer id) { Jobs systemAuthPost = jobsMapper.selectOne(new QueryWrapper() .select(Jobs.class, info -> - !info.getColumn().equals("delete_time")) + !info.getColumn().equals("delete_time")) .eq("id", id) .isNull("delete_time") .last("limit 1")); @@ -139,15 +136,15 @@ public class JobsServiceImpl implements IJobsService { /** * 岗位新增 * - * @author fzr * @param createValidate 参数 + * @author fzr */ @Override public void add(JobsCreateValidate createValidate) { Assert.isNull(jobsMapper.selectOne(new QueryWrapper() .select("id,code,name") .nested( - wq->wq.eq("code", createValidate.getCode()) + wq -> wq.eq("code", createValidate.getCode()) .or() .eq("name", createValidate.getName()) ) @@ -168,14 +165,14 @@ public class JobsServiceImpl implements IJobsService { /** * 岗位编辑 * - * @author fzr * @param updateValidate 参数 + * @author fzr */ @Override public void edit(JobsUpdateValidate updateValidate) { Jobs model = jobsMapper.selectOne(new QueryWrapper() .select(Jobs.class, info -> - !info.getColumn().equals("delete_time")) + !info.getColumn().equals("delete_time")) .eq("id", updateValidate.getId()) .isNull("delete_time") .last("limit 1")); @@ -184,7 +181,7 @@ public class JobsServiceImpl implements IJobsService { .select("id,code,name") .ne("id", updateValidate.getId()) .nested( - wq->wq.eq("code", updateValidate.getCode()) + wq -> wq.eq("code", updateValidate.getCode()) .or() .eq("name", updateValidate.getName()) ) @@ -202,8 +199,8 @@ public class JobsServiceImpl implements IJobsService { /** * 岗位删除 * - * @author fzr * @param id 主键 + * @author fzr */ @Override public void del(Integer id) { @@ -225,10 +222,10 @@ public class JobsServiceImpl implements IJobsService { @Override public JSONObject getExportData(PageValidate pageValidate, JobsSearchValidate searchValidate) { - Integer page = pageValidate.getPage_no(); + Integer page = pageValidate.getPage_no(); Integer limit = pageValidate.getPage_size(); PageResult userVoPageResult = this.list(pageValidate, searchValidate); - JSONObject ret = ToolUtils.getExportData(userVoPageResult.getCount(), limit, searchValidate.getPage_start(), searchValidate.getPage_end(),"岗位记录列表"); + JSONObject ret = ToolUtils.getExportData(userVoPageResult.getCount(), limit, searchValidate.getPage_start(), searchValidate.getPage_end(), "岗位记录列表"); return ret; } @@ -249,9 +246,9 @@ public class JobsServiceImpl implements IJobsService { Boolean isAll = StringUtils.isNull(searchValidate.getPage_type()) || searchValidate.getPage_type().equals(0) ? true : false; List excellist = this.getExcellist(isAll, pageValidate, searchValidate); String fileName = StringUtils.isNull(searchValidate.getFile_name()) ? ToolUtils.makeUUID() : searchValidate.getFile_name(); - String folderPath = "/excel/export/"+ TimeUtils.timestampToDay(System.currentTimeMillis() / 1000) +"/" ; - String path = folderPath + fileName +".xlsx"; - String filePath = YmlUtils.get("like.upload-directory") + path; + String folderPath = "/excel/export/" + TimeUtils.timestampToDay(System.currentTimeMillis() / 1000) + "/"; + String path = folderPath + fileName + ".xlsx"; + String filePath = YmlUtils.get("like.upload-directory") + path; File folder = new File(YmlUtils.get("like.upload-directory") + folderPath); if (!folder.exists()) { if (!folder.mkdirs()) { @@ -265,12 +262,13 @@ public class JobsServiceImpl implements IJobsService { .doWrite(excellist); return UrlUtils.toAdminAbsoluteUrl(path); } + private List getExcellist(boolean isAll, PageValidate pageValidate, JobsSearchValidate searchValidate) { - Integer page = pageValidate.getPage_no(); + Integer page = pageValidate.getPage_no(); Integer limit = pageValidate.getPage_size(); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.select(Jobs.class, info-> + queryWrapper.select(Jobs.class, info -> !info.getColumn().equals("delete_time")) .isNull("delete_time") .orderByDesc(Arrays.asList("sort", "id")); diff --git a/server/like-admin/src/main/java/com/mdd/admin/vo/EnrollmentDetailVo.java b/server/like-admin/src/main/java/com/mdd/admin/vo/EnrollmentDetailVo.java new file mode 100644 index 00000000..d22cc947 --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/vo/EnrollmentDetailVo.java @@ -0,0 +1,49 @@ +package com.mdd.admin.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@ApiModel("预报名详情Vo") +public class EnrollmentDetailVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "性别:0-女 1-男") + private Integer gender; + + @ApiModelProperty(value = "身份证号") + private String idCard; + + @ApiModelProperty(value = "毕业学校") + private String previousSchool; + + @ApiModelProperty(value = "身高(cm)") + private BigDecimal height; + + @ApiModelProperty(value = "体重(kg)") + private BigDecimal weight; + + @ApiModelProperty(value = "鞋码") + private Integer shoeSize; + + @ApiModelProperty(value = "中考成绩") + private BigDecimal highSchoolScore; + + @ApiModelProperty(value = "报名专业") + private String majorName; + + @ApiModelProperty(value = "招生老师") + private String recruitmentTeacherName; + + @ApiModelProperty(value = "预报名金额") + private BigDecimal preRegistrationAmount; + +} diff --git a/server/like-admin/src/main/java/com/mdd/admin/vo/major/MajorOptionVo.java b/server/like-admin/src/main/java/com/mdd/admin/vo/major/MajorOptionVo.java new file mode 100644 index 00000000..8c2dc4e4 --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/vo/major/MajorOptionVo.java @@ -0,0 +1,21 @@ +package com.mdd.admin.vo.major; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("专业下拉选项Vo") +public class MajorOptionVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "专业ID") + private Integer id; + + @ApiModelProperty(value = "专业名称") + private String majorName; +} + diff --git a/server/like-admin/src/main/java/com/mdd/admin/vo/teacher/TeacherDetailVo.java b/server/like-admin/src/main/java/com/mdd/admin/vo/teacher/TeacherDetailVo.java index bc9327e7..cdc28dd4 100644 --- a/server/like-admin/src/main/java/com/mdd/admin/vo/teacher/TeacherDetailVo.java +++ b/server/like-admin/src/main/java/com/mdd/admin/vo/teacher/TeacherDetailVo.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; +import java.util.List; @Data @ApiModel("教师信息扩展详情Vo") @@ -45,4 +46,7 @@ public class TeacherDetailVo implements Serializable { @ApiModelProperty(value = "二维码图片地址") private String qrcodeUrl; + @ApiModelProperty(value = "角色ID列表") + private List roleId; + } diff --git a/server/like-admin/src/main/java/com/mdd/admin/vo/teacher/TeacherOptionVo.java b/server/like-admin/src/main/java/com/mdd/admin/vo/teacher/TeacherOptionVo.java new file mode 100644 index 00000000..3941b2ee --- /dev/null +++ b/server/like-admin/src/main/java/com/mdd/admin/vo/teacher/TeacherOptionVo.java @@ -0,0 +1,21 @@ +package com.mdd.admin.vo.teacher; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel("教师下拉选项Vo") +public class TeacherOptionVo implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "教师ID") + private Integer id; + + @ApiModelProperty(value = "教师姓名") + private String name; +} + diff --git a/server/like-common/src/main/java/com/mdd/common/entity/admin/Jobs.java b/server/like-common/src/main/java/com/mdd/common/entity/admin/Jobs.java index 2df9aa3b..66495faf 100644 --- a/server/like-common/src/main/java/com/mdd/common/entity/admin/Jobs.java +++ b/server/like-common/src/main/java/com/mdd/common/entity/admin/Jobs.java @@ -1,4 +1,4 @@ -package com.mdd.common.entity.system; +package com.mdd.common.entity.admin; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -14,7 +14,7 @@ public class Jobs implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value="id", type= IdType.AUTO) + @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty("ID") private Integer id; diff --git a/server/like-common/src/main/java/com/mdd/common/mapper/admin/JobsMapper.java b/server/like-common/src/main/java/com/mdd/common/mapper/admin/JobsMapper.java index dc7174d0..8d2ad761 100644 --- a/server/like-common/src/main/java/com/mdd/common/mapper/admin/JobsMapper.java +++ b/server/like-common/src/main/java/com/mdd/common/mapper/admin/JobsMapper.java @@ -1,9 +1,7 @@ package com.mdd.common.mapper.admin; import com.mdd.common.core.basics.IBaseMapper; -import com.mdd.common.entity.admin.AdminJobs; -import com.mdd.common.entity.admin.Dept; -import com.mdd.common.entity.system.Jobs; +import com.mdd.common.entity.admin.Jobs; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select;