From 8d3bf318357e7c8d90f5fb4ac7b18a968209d374 Mon Sep 17 00:00:00 2001 From: zhangyue Date: Fri, 16 Jan 2026 09:52:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=AD=A6=E7=94=9F=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=B7=BB=E5=8A=A0=E5=92=8C=E7=8F=AD=E7=BA=A7=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zcloud/edu/web/study/ClassController.java | 2 +- .../edu/web/study/StudentController.java | 8 +++-- .../zcloud/edu/command/study/ClassAddExe.java | 6 ++++ .../edu/command/study/ClassUpdateExe.java | 23 +++++++++++++ .../edu/command/study/StudentAddExe.java | 34 +++++++++++++++++-- .../edu/command/study/StudentRemoveExe.java | 10 ++++++ .../edu/service/study/StudentServiceImpl.java | 6 ++-- .../zcloud/edu/api/study/StudentServiceI.java | 4 ++- .../edu/dto/clientobject/study/ClassCO.java | 5 +-- .../edu/dto/clientobject/study/StudentCO.java | 10 ++++-- .../com/zcloud/edu/dto/study/ClassAddCmd.java | 8 ++--- .../edu/dto/study/ClassCurriculumPageQry.java | 1 + .../zcloud/edu/dto/study/ClassPageQry.java | 8 +++++ .../zcloud/edu/dto/study/ClassUpdateCmd.java | 18 ++++++---- .../zcloud/edu/dto/study/StudentAddCmd.java | 19 +++++------ .../zcloud/edu/dto/study/StudentPageQry.java | 7 +++- .../edu/dto/study/StudentUpdateCmd.java | 23 ++++++------- .../zcloud/edu/domain/model/study/ClassE.java | 26 ++++++++++++-- .../edu/domain/model/study/StudentE.java | 31 ++++++++++++++++- .../persistence/dataobject/study/ClassDO.java | 4 +-- .../dataobject/study/StudentDO.java | 12 +++++-- .../study/ClassCurriculumRepositoryImpl.java | 9 +++++ .../study/ClassExamPaperRepositoryImpl.java | 9 +++++ .../impl/study/ClassRepositoryImpl.java | 7 ++++ .../StudentExamRecordItemRepositoryImpl.java | 10 ++++++ .../StudentExamRecordRepositoryImpl.java | 10 ++++++ .../impl/study/StudentRepositoryImpl.java | 15 ++++++++ .../study/ClassCurriculumRepository.java | 2 ++ .../study/ClassExamPaperRepository.java | 2 ++ .../repository/study/ClassRepository.java | 2 ++ .../StudentExamRecordItemRepository.java | 2 ++ .../study/StudentExamRecordRepository.java | 2 ++ .../repository/study/StudentRepository.java | 4 +++ 33 files changed, 281 insertions(+), 58 deletions(-) diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java index 3d8e33a..b31c121 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassController.java @@ -36,7 +36,7 @@ public class ClassController { @ApiOperation("新增") @PostMapping("/save") public SingleResponse add(@Validated @RequestBody ClassAddCmd cmd) { - SSOUser ssoUser = AuthContext.getCurrentUser(); + return classService.add(cmd); } diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentController.java index a097a64..7537940 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentController.java @@ -19,6 +19,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; +import java.util.List; /** * web-adapter @@ -35,9 +36,10 @@ public class StudentController { @ApiOperation("新增") @PostMapping("/save") - public SingleResponse add(@Validated @RequestBody StudentAddCmd cmd) { + public SingleResponse add(@Validated @RequestBody List cmdList) { + System.out.println(cmdList); SSOUser ssoUser = AuthContext.getCurrentUser(); - return studentService.add(cmd); + return studentService.add(cmdList); } @ApiOperation("分页") @@ -59,7 +61,7 @@ public class StudentController { } @ApiOperation("删除") - @DeleteMapping("/{id}") + @PostMapping("/{id}") public Response remove(@PathVariable("id") Long id) { studentService.remove(id); return SingleResponse.buildSuccess(); diff --git a/web-app/src/main/java/com/zcloud/edu/command/study/ClassAddExe.java b/web-app/src/main/java/com/zcloud/edu/command/study/ClassAddExe.java index 31f065f..127fc86 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/study/ClassAddExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/study/ClassAddExe.java @@ -1,6 +1,9 @@ package com.zcloud.edu.command.study; import com.alibaba.cola.exception.BizException; +import com.jjb.saas.framework.auth.model.SSOUser; +import com.jjb.saas.framework.auth.utils.AuthContext; +import com.sun.org.apache.xml.internal.security.Init; import com.zcloud.edu.domain.gateway.study.ClassGateway; import com.zcloud.edu.domain.model.study.ClassE; import com.zcloud.edu.dto.study.ClassAddCmd; @@ -24,7 +27,10 @@ public class ClassAddExe { @Transactional(rollbackFor = Exception.class) public boolean execute(ClassAddCmd cmd) { ClassE classE = new ClassE(); + BeanUtils.copyProperties(cmd, classE); + SSOUser ssoUser = AuthContext.getCurrentUser(); + classE.initSave(ssoUser.getTenantId()); boolean res = false; try { res = classGateway.add(classE); diff --git a/web-app/src/main/java/com/zcloud/edu/command/study/ClassUpdateExe.java b/web-app/src/main/java/com/zcloud/edu/command/study/ClassUpdateExe.java index 9f5a153..92517f4 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/study/ClassUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/study/ClassUpdateExe.java @@ -4,6 +4,9 @@ import com.alibaba.cola.exception.BizException; import com.zcloud.edu.domain.gateway.study.ClassGateway; import com.zcloud.edu.domain.model.study.ClassE; import com.zcloud.edu.dto.study.ClassUpdateCmd; +import com.zcloud.edu.persistence.repository.study.ClassCurriculumRepository; +import com.zcloud.edu.persistence.repository.study.ClassExamPaperRepository; +import com.zcloud.edu.persistence.repository.study.StudentRepository; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; @@ -20,11 +23,31 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class ClassUpdateExe { private final ClassGateway classGateway; + private final StudentRepository studentRepository; + private final ClassCurriculumRepository classCurriculumRepository; + private final ClassExamPaperRepository classExamPaperRepository; @Transactional(rollbackFor = Exception.class) public void execute(ClassUpdateCmd classUpdateCmd) { ClassE classE = new ClassE(); BeanUtils.copyProperties(classUpdateCmd, classE); + if(classUpdateCmd.getUpdateType() == 2){ + Long studentCount = studentRepository.countByClassId(classE.getClassId()); + if(studentCount <= 0){ + throw new BizException("班级下未添加学员,请先添加学员"); + } + Long curriculumCount = classCurriculumRepository.countByClassId(classE.getClassId()); + if(curriculumCount <= 0){ + throw new BizException("班级下未添加课程,请先添加课程"); + } + if(classE.getExamination() == 1){ + Long examPaperCount = classExamPaperRepository.countByClassId(classE.getClassId()); + if(examPaperCount <= 0){ + throw new BizException("班级下未添加考试,请先添加考试"); + } + } + } + classE.initUpdate(); boolean res = classGateway.update(classE); if (!res) { throw new BizException("修改失败"); diff --git a/web-app/src/main/java/com/zcloud/edu/command/study/StudentAddExe.java b/web-app/src/main/java/com/zcloud/edu/command/study/StudentAddExe.java index d0dd6fe..5d5f921 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/study/StudentAddExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/study/StudentAddExe.java @@ -1,14 +1,29 @@ package com.zcloud.edu.command.study; +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.exception.BizException; import com.zcloud.edu.domain.gateway.study.StudentGateway; import com.zcloud.edu.domain.model.study.StudentE; import com.zcloud.edu.dto.study.StudentAddCmd; +import com.zcloud.edu.persistence.dataobject.study.ClassDO; +import com.zcloud.edu.persistence.dataobject.study.StudentDO; +import com.zcloud.edu.persistence.repository.study.ClassRepository; +import com.zcloud.edu.persistence.repository.study.StudentRepository; +import com.zcloud.gbscommon.zclouduser.facade.ZcloudUserFacade; +import com.zcloud.gbscommon.zclouduser.response.ZcloudUserCo; import lombok.AllArgsConstructor; +import org.apache.dubbo.config.annotation.DubboReference; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** * web-app @@ -20,14 +35,27 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class StudentAddExe { private final StudentGateway studentGateway; + private final StudentRepository studentRepository; + private final ClassRepository classRepository; + @DubboReference + private ZcloudUserFacade zcloudUserFacade; @Transactional(rollbackFor = Exception.class) - public boolean execute(StudentAddCmd cmd) { + public boolean execute(List cmdList) { StudentE studentE = new StudentE(); - BeanUtils.copyProperties(cmd, studentE); + if (cmdList == null || cmdList.size() == 0){ + throw new BizException("请选择要加入班级的学员。"); + } + List studentEList = BeanUtil.copyToList(cmdList, StudentE.class); + List userNameList = cmdList.stream().map(StudentAddCmd::getPhone).distinct().collect(Collectors.toList()); + MultiResponse userResponse = zcloudUserFacade.listUserByUserName(userNameList); + ClassDO classDO = classRepository.getByClassId(studentEList.get(0).getClassId()); + List userList = userResponse.getData(); + Map userMap = userList.stream().collect(HashMap::new, (k, v) -> k.put(v.getUsername(), v), HashMap::putAll); + studentE.initStudentList(studentEList, userMap, classDO.getCorpinfoId()); boolean res = false; try { - res = studentGateway.add(studentE); + res = studentRepository.addBatch(BeanUtil.copyToList(studentEList, StudentDO.class)); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/web-app/src/main/java/com/zcloud/edu/command/study/StudentRemoveExe.java b/web-app/src/main/java/com/zcloud/edu/command/study/StudentRemoveExe.java index 2b8fb34..e2fe8ef 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/study/StudentRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/study/StudentRemoveExe.java @@ -2,6 +2,10 @@ package com.zcloud.edu.command.study; import com.alibaba.cola.exception.BizException; import com.zcloud.edu.domain.gateway.study.StudentGateway; +import com.zcloud.edu.persistence.dataobject.study.StudentDO; +import com.zcloud.edu.persistence.repository.study.StudentExamRecordItemRepository; +import com.zcloud.edu.persistence.repository.study.StudentExamRecordRepository; +import com.zcloud.edu.persistence.repository.study.StudentRepository; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -17,10 +21,16 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class StudentRemoveExe { private final StudentGateway studentGateway; + private final StudentRepository studentRepository; + private final StudentExamRecordRepository studentExamRecordRepository; + private final StudentExamRecordItemRepository studentExamRecordItemRepository; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { + StudentDO studentDO = studentRepository.getById(id); boolean res = studentGateway.deletedStudentById(id); + studentExamRecordRepository.deleteByStudentId(studentDO.getStudentId()); + studentExamRecordItemRepository.deleteByStudentId(studentDO.getStudentId()); if (!res) { throw new BizException("删除失败"); } diff --git a/web-app/src/main/java/com/zcloud/edu/service/study/StudentServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/study/StudentServiceImpl.java index 9d33772..47ec3a4 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/study/StudentServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/study/StudentServiceImpl.java @@ -14,6 +14,8 @@ import com.zcloud.edu.dto.study.StudentUpdateCmd; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.util.List; + /** * web-app * @@ -35,9 +37,9 @@ public class StudentServiceImpl implements StudentServiceI { } @Override - public SingleResponse add(StudentAddCmd cmd) { + public SingleResponse add(List cmdList) { - studentAddExe.execute(cmd); + studentAddExe.execute(cmdList); return SingleResponse.buildSuccess(); } diff --git a/web-client/src/main/java/com/zcloud/edu/api/study/StudentServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/study/StudentServiceI.java index 902cf18..a74ade3 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/study/StudentServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/study/StudentServiceI.java @@ -7,6 +7,8 @@ import com.zcloud.edu.dto.study.StudentAddCmd; import com.zcloud.edu.dto.study.StudentPageQry; import com.zcloud.edu.dto.study.StudentUpdateCmd; +import java.util.List; + /** * web-client * @@ -16,7 +18,7 @@ import com.zcloud.edu.dto.study.StudentUpdateCmd; public interface StudentServiceI { PageResponse listPage(StudentPageQry qry); - SingleResponse add(StudentAddCmd cmd); + SingleResponse add(List cmdList); void edit(StudentUpdateCmd cmd); diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCO.java index 795d443..c60076b 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassCO.java @@ -3,6 +3,7 @@ package com.zcloud.edu.dto.clientobject.study; import com.alibaba.cola.dto.ClientObject; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; import lombok.Data; import java.time.LocalDateTime; @@ -46,10 +47,10 @@ public class ClassCO extends ClientObject { private String trainingLocation; //机构ID @ApiModelProperty(value = "机构ID") - private String corpinfoId; + private Long corpinfoId; //状态:1-未申请 2-待开班 3- 培训中 4-培训结束 @ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ") - private String state; + private Integer state; //培训有效期日期 开始时间 @ApiModelProperty(value = "培训有效期日期 开始时间") private String validStartTime; diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCO.java index 7ad5c50..7711494 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentCO.java @@ -12,7 +12,7 @@ import java.time.LocalDateTime; * web-client * * @Author zhangyue - * @Date 2026-01-13 14:18:14 + * @Date 2026-01-14 14:37:55 */ @Data public class StudentCO extends ClientObject { @@ -20,12 +20,18 @@ public class StudentCO extends ClientObject { //业务id @ApiModelProperty(value = "业务id") private String studentId; + //学员userid + @ApiModelProperty(value = "学员userid") private Integer userId; //班级id @ApiModelProperty(value = "班级id") private String classId; + //学员姓名 + @ApiModelProperty(value = "学员姓名") private String name; - private Long corpinfoId; + //学员所属班级的企业id + @ApiModelProperty(value = "学员所属班级的企业id") + private Long classCorpinfoId; //手机号 @ApiModelProperty(value = "手机号") private String phone; diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassAddCmd.java index e255ba4..68b16d0 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassAddCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassAddCmd.java @@ -22,7 +22,6 @@ import javax.validation.constraints.NotNull; @AllArgsConstructor public class ClassAddCmd extends Command { @ApiModelProperty(value = "业务id", name = "classId", required = true) - @NotEmpty(message = "业务id不能为空") private String classId; @ApiModelProperty(value = "班级名称", name = "name", required = true) @@ -58,12 +57,10 @@ public class ClassAddCmd extends Command { private String trainingLocation; @ApiModelProperty(value = "机构ID", name = "corpinfoId", required = true) - @NotEmpty(message = "机构ID不能为空") - private String corpinfoId; + private Long corpinfoId; @ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ", name = "state", required = true) - @NotEmpty(message = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 不能为空") - private String state; + private Integer state; @ApiModelProperty(value = "培训有效期日期 开始时间", name = "validStartTime", required = true) @NotEmpty(message = "培训有效期日期 开始时间不能为空") @@ -78,7 +75,6 @@ public class ClassAddCmd extends Command { private Integer examination; @ApiModelProperty(value = "考试次数只有考试时候有用", name = "numberofexams", required = true) - @NotNull(message = "考试次数只有考试时候有用不能为空") private Integer numberofexams; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumPageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumPageQry.java index 80a58d7..aa68cdc 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumPageQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCurriculumPageQry.java @@ -24,5 +24,6 @@ public class ClassCurriculumPageQry extends PageQuery { * - `ne`: 不等比较查询,对应SQL的!=操作符 */ private String likeClassCurriculumId; + private String eqClassId; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPageQry.java index 166a18f..dee9901 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPageQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPageQry.java @@ -24,5 +24,13 @@ public class ClassPageQry extends PageQuery { * - `ne`: 不等比较查询,对应SQL的!=操作符 */ private String likeClassId; + private String likeName; + private String eqTrainType; + private Integer eqState; + private String geStartTime; + private String leStartTime; + private String geEndTime; + private String leEndTime; + } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassUpdateCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassUpdateCmd.java index 600a704..4344b93 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassUpdateCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassUpdateCmd.java @@ -21,8 +21,14 @@ import javax.validation.constraints.NotNull; @NoArgsConstructor @AllArgsConstructor public class ClassUpdateCmd extends Command { - @ApiModelProperty(value = "${column.comment}", name = "id", required = true) - @NotNull(message = "${column.comment}不能为空") + + + @ApiModelProperty(value = "修改方式 1-修改未申请班级。2-正式保存班级", name = "修改方式", required = true) + @NotNull(message = "修改方式不能为空") + private Integer updateType; + + @ApiModelProperty(value = "主键不能为空", name = "id", required = true) + @NotNull(message = "主键不能为空") private Long id; @ApiModelProperty(value = "业务id", name = "classId", required = true) @NotEmpty(message = "业务id不能为空") @@ -52,11 +58,9 @@ public class ClassUpdateCmd extends Command { @NotEmpty(message = "培训地点不能为空") private String trainingLocation; @ApiModelProperty(value = "机构ID", name = "corpinfoId", required = true) - @NotEmpty(message = "机构ID不能为空") - private String corpinfoId; + private Long corpinfoId; @ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ", name = "state", required = true) - @NotEmpty(message = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 不能为空") - private String state; + private Integer state; @ApiModelProperty(value = "培训有效期日期 开始时间", name = "validStartTime", required = true) @NotEmpty(message = "培训有效期日期 开始时间不能为空") private String validStartTime; @@ -67,7 +71,7 @@ public class ClassUpdateCmd extends Command { @NotNull(message = "1考试0不考试不能为空") private Integer examination; @ApiModelProperty(value = "考试次数只有考试时候有用", name = "numberofexams", required = true) - @NotNull(message = "考试次数只有考试时候有用不能为空") private Integer numberofexams; + } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentAddCmd.java index b32dac0..b7898c2 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentAddCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentAddCmd.java @@ -7,14 +7,13 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import javax.validation.constraints.*; /** * web-client * * @Author zhangyue - * @Date 2026-01-13 14:18:14 + * @Date 2026-01-14 14:37:55 */ @EqualsAndHashCode(callSuper = true) @Data @@ -25,21 +24,21 @@ public class StudentAddCmd extends Command { @NotEmpty(message = "业务id不能为空") private String studentId; - @ApiModelProperty(value = "${column.comment}", name = "userId", required = true) - @NotNull(message = "${column.comment}不能为空") + @ApiModelProperty(value = "学员userid", name = "userId", required = true) + @NotNull(message = "学员userid不能为空") private Integer userId; @ApiModelProperty(value = "班级id", name = "classId", required = true) @NotEmpty(message = "班级id不能为空") private String classId; - @ApiModelProperty(value = "${column.comment}", name = "name", required = true) - @NotEmpty(message = "${column.comment}不能为空") + @ApiModelProperty(value = "学员姓名", name = "name", required = true) + @NotEmpty(message = "学员姓名不能为空") private String name; - @ApiModelProperty(value = "${column.comment}", name = "corpinfoId", required = true) - @NotNull(message = "${column.comment}不能为空") - private Long corpinfoId; + @ApiModelProperty(value = "学员所属班级的企业id", name = "classCorpinfoId", required = true) + @NotNull(message = "学员所属班级的企业id不能为空") + private Long classCorpinfoId; @ApiModelProperty(value = "手机号", name = "phone", required = true) @NotEmpty(message = "手机号不能为空") diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentPageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentPageQry.java index 41d3c9b..02db9da 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentPageQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentPageQry.java @@ -23,6 +23,11 @@ public class StudentPageQry extends PageQuery { * - `le`: 小于等于比较查询 * - `ne`: 不等比较查询,对应SQL的!=操作符 */ - private String likeStudentId; + private String eqStudentId; + private String eqClassId; + private String likeProjectNames; + private String likeName; + private String likeInterestedIds; + } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentUpdateCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentUpdateCmd.java index 689aeb8..dd4531b 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentUpdateCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentUpdateCmd.java @@ -7,38 +7,37 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; +import javax.validation.constraints.*; /** * web-client * * @Author zhangyue - * @Date 2026-01-13 14:18:15 + * @Date 2026-01-14 14:37:56 */ @EqualsAndHashCode(callSuper = true) @Data @NoArgsConstructor @AllArgsConstructor public class StudentUpdateCmd extends Command { - @ApiModelProperty(value = "${column.comment}", name = "id", required = true) - @NotNull(message = "${column.comment}不能为空") + @ApiModelProperty(value = "主键ID", name = "id", required = true) + @NotNull(message = "主键不能为空") private Long id; @ApiModelProperty(value = "业务id", name = "studentId", required = true) @NotEmpty(message = "业务id不能为空") private String studentId; - @ApiModelProperty(value = "${column.comment}", name = "userId", required = true) - @NotNull(message = "${column.comment}不能为空") + @ApiModelProperty(value = "学员userid", name = "userId", required = true) + @NotNull(message = "学员userid不能为空") private Integer userId; @ApiModelProperty(value = "班级id", name = "classId", required = true) @NotEmpty(message = "班级id不能为空") private String classId; - @ApiModelProperty(value = "${column.comment}", name = "name", required = true) - @NotEmpty(message = "${column.comment}不能为空") + @ApiModelProperty(value = "学员姓名", name = "name", required = true) + @NotEmpty(message = "学员姓名不能为空") private String name; - @ApiModelProperty(value = "${column.comment}", name = "corpinfoId", required = true) - @NotNull(message = "${column.comment}不能为空") - private Long corpinfoId; + @ApiModelProperty(value = "学员所属班级的企业id", name = "classCorpinfoId", required = true) + @NotNull(message = "学员所属班级的企业id不能为空") + private Long classCorpinfoId; @ApiModelProperty(value = "手机号", name = "phone", required = true) @NotEmpty(message = "手机号不能为空") private String phone; diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassE.java index 821feb5..f2b381a 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassE.java @@ -1,9 +1,12 @@ package com.zcloud.edu.domain.model.study; import com.jjb.saas.framework.domain.model.BaseE; +import com.zcloud.gbscommon.utils.DateUtil; +import com.zcloud.gbscommon.utils.Tools; import lombok.Data; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; /** * web-domain @@ -33,9 +36,9 @@ public class ClassE extends BaseE { //培训地点 private String trainingLocation; //机构ID - private String corpinfoId; + private Long corpinfoId; //状态:1-未申请 2-待开班 3- 培训中 4-培训结束 - private String state; + private Integer state; //培训有效期日期 开始时间 private String validStartTime; //培训有效期日期 结束时间 @@ -44,6 +47,8 @@ public class ClassE extends BaseE { private Integer examination; //考试次数只有考试时候有用 private Integer numberofexams; + // 修改方式 1-修改未申请班级。2-正式保存班级 + private Integer updateType; //删除标识true false private String deleteEnum; //备注 @@ -68,5 +73,22 @@ public class ClassE extends BaseE { private Long updateId; //环境 private String env; + + public void initSave(Long corpInfoId){ + this.classId = Tools.get32UUID(); + this.corpinfoId = corpInfoId; + this.state = 1; + } + public void initUpdate(){ + if(this.updateType == 2){ + if(DateUtil.isBeforeThan(this.startTime)){ + this.state = 2; + } else if(DateUtil.isBeforeThan(this.endTime)){ + this.state = 3; + } else { + this.state = 4; + } + } + } } diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentE.java index d02bd31..640ffd6 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentE.java @@ -1,9 +1,13 @@ package com.zcloud.edu.domain.model.study; import com.jjb.saas.framework.domain.model.BaseE; +import com.zcloud.gbscommon.utils.Tools; +import com.zcloud.gbscommon.zclouduser.response.ZcloudUserCo; import lombok.Data; import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; /** * web-domain @@ -20,7 +24,7 @@ public class StudentE extends BaseE { //班级id private String classId; private String name; - private Long corpinfoId; + private Long classCorpinfoId; //手机号 private String phone; //身份证号 @@ -87,5 +91,30 @@ public class StudentE extends BaseE { private Long createId; //修改人id private Long updateId; + + public void initStudentList(List studentEList, Map userMap, Long classCorpinfoId){ + for (StudentE studentE : studentEList){ + studentE.studentId = Tools.get32UUID(); + studentE.signFlag = 0; + studentE.examSignFlag = 0; + studentE.state = 0; + studentE.setClassCorpinfoId(classCorpinfoId); + ZcloudUserCo zcloudUserCo = userMap.get(studentE.getPhone()); + studentE.setUserIdCard(zcloudUserCo.getUserIdCard()); + studentE.setNation(zcloudUserCo.getNation()); + studentE.setNationName(zcloudUserCo.getNationName()); + studentE.setUserAvatarUrl(zcloudUserCo.getUserAvatarUrl()); + studentE.setCurrentAddress(zcloudUserCo.getCurrentAddress()); + studentE.setLocationAddress(zcloudUserCo.getLocationAddress()); + studentE.setCulturalLevel(zcloudUserCo.getCulturalLevel()); + studentE.setCulturalLevelName(zcloudUserCo.getCulturalLevelName()); + studentE.setMaritalStatus(zcloudUserCo.getMaritalStatus()); + studentE.setMaritalStatusName(zcloudUserCo.getMaritalStatusName()); + studentE.setPoliticalAffiliation(zcloudUserCo.getPoliticalAffiliation()); + studentE.setPoliticalAffiliationName(zcloudUserCo.getPoliticalAffiliationName()); + studentE.setPostName(zcloudUserCo.getPostName()); + + } + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassDO.java index 0c13b90..3d2b75d 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassDO.java @@ -47,10 +47,10 @@ public class ClassDO extends BaseDO { private String trainingLocation; //机构ID @ApiModelProperty(value = "机构ID") - private String corpinfoId; + private Long corpinfoId; //状态:1-未申请 2-待开班 3- 培训中 4-培训结束 @ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ") - private String state; + private Integer state; //培训有效期日期 开始时间 @ApiModelProperty(value = "培训有效期日期 开始时间") private String validStartTime; diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentDO.java index c3085d9..d358451 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentDO.java @@ -1,6 +1,6 @@ package com.zcloud.edu.persistence.dataobject.study; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; import com.jjb.saas.framework.repository.basedo.BaseDO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -11,7 +11,7 @@ import lombok.NoArgsConstructor; * web-infrastructure * * @Author zhangyue - * @Date 2026-01-13 14:18:15 + * @Date 2026-01-14 14:37:55 */ @Data @TableName("student") @@ -21,12 +21,18 @@ public class StudentDO extends BaseDO { //业务id @ApiModelProperty(value = "业务id") private String studentId; + //学员userid + @ApiModelProperty(value = "学员userid") private Integer userId; //班级id @ApiModelProperty(value = "班级id") private String classId; + //学员姓名 + @ApiModelProperty(value = "学员姓名") private String name; - private Long corpinfoId; + //学员所属班级的企业id + @ApiModelProperty(value = "学员所属班级的企业id") + private Long classCorpinfoId; //手机号 @ApiModelProperty(value = "手机号") private String phone; diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumRepositoryImpl.java index c4ef13d..34f175f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumRepositoryImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumDO; +import com.zcloud.edu.persistence.dataobject.study.StudentDO; import com.zcloud.edu.persistence.mapper.study.ClassCurriculumMapper; import com.zcloud.edu.persistence.repository.study.ClassCurriculumRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; @@ -42,5 +43,13 @@ public class ClassCurriculumRepositoryImpl extends BaseRepositoryImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("class_id", classId); + queryWrapper.eq("delete_enum", "FALSE"); + return classCurriculumMapper.selectCount(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassExamPaperRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassExamPaperRepositoryImpl.java index 346a4a0..0ca2a59 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassExamPaperRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassExamPaperRepositoryImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.zcloud.edu.persistence.dataobject.study.ClassExamPaperDO; +import com.zcloud.edu.persistence.dataobject.study.StudentDO; import com.zcloud.edu.persistence.mapper.study.ClassExamPaperMapper; import com.zcloud.edu.persistence.repository.study.ClassExamPaperRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; @@ -42,5 +43,13 @@ public class ClassExamPaperRepositoryImpl extends BaseRepositoryImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("class_id", classId); + queryWrapper.eq("delete_enum", "FALSE"); + return classExamPaperMapper.selectCount(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassRepositoryImpl.java index 6d294b7..2208784 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassRepositoryImpl.java @@ -35,5 +35,12 @@ public class ClassRepositoryImpl extends BaseRepositoryImpl result = classMapper.selectPage(iPage, queryWrapper); return PageHelper.pageToResponse(result, result.getRecords()); } + + @Override + public ClassDO getByClassId(String classId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("class_id", classId); + return classMapper.selectOne(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordItemRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordItemRepositoryImpl.java index 2d5da09..adf0e1a 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordItemRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordItemRepositoryImpl.java @@ -2,6 +2,7 @@ package com.zcloud.edu.persistence.repository.impl.study; import com.alibaba.cola.dto.PageResponse; 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.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; @@ -35,5 +36,14 @@ public class StudentExamRecordItemRepositoryImpl extends BaseRepositoryImpl result = studentExamRecordItemMapper.selectPage(iPage, queryWrapper); return PageHelper.pageToResponse(result, result.getRecords()); } + + @Override + public void deleteByStudentId(String studentId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("student_id", studentId); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + studentExamRecordItemMapper.update(null, updateWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordRepositoryImpl.java index e653132..82be264 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentExamRecordRepositoryImpl.java @@ -2,6 +2,7 @@ package com.zcloud.edu.persistence.repository.impl.study; import com.alibaba.cola.dto.PageResponse; 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.jjb.saas.framework.repository.common.PageHelper; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; @@ -35,5 +36,14 @@ public class StudentExamRecordRepositoryImpl extends BaseRepositoryImpl result = studentExamRecordMapper.selectPage(iPage, queryWrapper); return PageHelper.pageToResponse(result, result.getRecords()); } + + @Override + public void deleteByStudentId(String studentId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("student_id", studentId); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + studentExamRecordMapper.update(null, updateWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentRepositoryImpl.java index b215531..28d3eb5 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentRepositoryImpl.java @@ -13,6 +13,7 @@ import com.zcloud.gbscommon.utils.Query; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; /** @@ -35,5 +36,19 @@ public class StudentRepositoryImpl extends BaseRepositoryImpl result = studentMapper.selectPage(iPage, queryWrapper); return PageHelper.pageToResponse(result, result.getRecords()); } + + @Override + public Boolean addBatch(List studentDOs) { + saveBatch(studentDOs); + return true; + } + + @Override + public Long countByClassId(String classId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("class_id", classId); + queryWrapper.eq("delete_enum", "FALSE"); + return studentMapper.selectCount(queryWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumRepository.java index 5cc8c88..b81cb8f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumRepository.java @@ -16,5 +16,7 @@ public interface ClassCurriculumRepository extends BaseRepository listPage(Map params); Long getCountByCurriculumId(String curriculumId); + + Long countByClassId(String classId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassExamPaperRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassExamPaperRepository.java index 47a0089..4c32df9 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassExamPaperRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassExamPaperRepository.java @@ -16,5 +16,7 @@ public interface ClassExamPaperRepository extends BaseRepository listPage(Map params); Long getCountByExamPaperId(String examPaperId); + + Long countByClassId(String classId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassRepository.java index 6450df3..13f6da3 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassRepository.java @@ -14,5 +14,7 @@ import java.util.Map; */ public interface ClassRepository extends BaseRepository { PageResponse listPage(Map params); + + ClassDO getByClassId(String classId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordItemRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordItemRepository.java index 2ef3418..b04574f 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordItemRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordItemRepository.java @@ -14,5 +14,7 @@ import java.util.Map; */ public interface StudentExamRecordItemRepository extends BaseRepository { PageResponse listPage(Map params); + + void deleteByStudentId(String studentId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordRepository.java index 57e7b8a..92387ac 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentExamRecordRepository.java @@ -14,5 +14,7 @@ import java.util.Map; */ public interface StudentExamRecordRepository extends BaseRepository { PageResponse listPage(Map params); + + void deleteByStudentId(String studentId); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentRepository.java index e53148b..eed6cb9 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentRepository.java @@ -4,6 +4,7 @@ import com.alibaba.cola.dto.PageResponse; import com.jjb.saas.framework.repository.repo.BaseRepository; import com.zcloud.edu.persistence.dataobject.study.StudentDO; +import java.util.List; import java.util.Map; /** @@ -14,5 +15,8 @@ import java.util.Map; */ public interface StudentRepository extends BaseRepository { PageResponse listPage(Map params); + Boolean addBatch(List studentDOs); + + Long countByClassId(String classId); }