diff --git a/web-adapter/src/main/java/com/zcloud/edu/app/study/AppClassController.java b/web-adapter/src/main/java/com/zcloud/edu/app/study/AppClassController.java new file mode 100644 index 0000000..d521981 --- /dev/null +++ b/web-adapter/src/main/java/com/zcloud/edu/app/study/AppClassController.java @@ -0,0 +1,43 @@ +package com.zcloud.edu.app.study; + + +import com.alibaba.cola.dto.MultiResponse; +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.Response; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.edu.api.study.ClassServiceI; +import com.zcloud.edu.dto.clientobject.study.ClassCO; +import com.zcloud.edu.dto.data.study.ClassQuestionDTO; +import com.zcloud.edu.dto.study.ClassAddCmd; +import com.zcloud.edu.dto.study.ClassPageQry; +import com.zcloud.edu.dto.study.ClassPostponeCmd; +import com.zcloud.edu.dto.study.ClassUpdateCmd; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; + +/** + * web-adapter + * + * @Author zhangyue + * @Date 2026-01-13 14:18:11 + */ +@Api(tags = "班级信息") +@RequestMapping("/${application.gateway}/app/class") +@RestController +@AllArgsConstructor +public class AppClassController { + private final ClassServiceI classService; + + @ApiOperation("分页") + @PostMapping("/list") + public PageResponse page(@RequestBody ClassPageQry qry) { + return classService.appListPage(qry); + } + +} + 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 7c99988..bdb5e8e 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 @@ -10,6 +10,7 @@ import com.zcloud.edu.dto.clientobject.study.ClassCO; import com.zcloud.edu.dto.data.study.ClassQuestionDTO; import com.zcloud.edu.dto.study.ClassAddCmd; import com.zcloud.edu.dto.study.ClassPageQry; +import com.zcloud.edu.dto.study.ClassPostponeCmd; import com.zcloud.edu.dto.study.ClassUpdateCmd; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -44,7 +45,6 @@ public class ClassController { return classService.countQuestionByClassId(id); } - @ApiOperation("分页") @PostMapping("/list") public PageResponse page(@RequestBody ClassPageQry qry) { @@ -56,15 +56,20 @@ public class ClassController { public MultiResponse listAll() { return MultiResponse.of(new ArrayList()); } + @ApiOperation("统计班级人数") + @GetMapping("/countClassStudent") + public MultiResponse countClassStudent() { + return MultiResponse.of(new ArrayList()); + } @ApiOperation("详情") @GetMapping("/{id}") public SingleResponse getInfoById(@PathVariable("id") Long id) { - return SingleResponse.of(new ClassCO()); + return classService.getInfoById(id); } @ApiOperation("删除") - @DeleteMapping("/{id}") + @PostMapping("/{id}") public Response remove(@PathVariable("id") Long id) { classService.remove(id); return SingleResponse.buildSuccess(); @@ -83,5 +88,12 @@ public class ClassController { classService.edit(classUpdateCmd); return SingleResponse.buildSuccess(); } + + @ApiOperation("延期") + @PutMapping("/postpone") + public SingleResponse postpone(@Validated @RequestBody ClassPostponeCmd classUpdateCmd) { + classService.postpone(classUpdateCmd); + return SingleResponse.buildSuccess(); + } } diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassExamPaperController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassExamPaperController.java index dc7625a..b3b443c 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassExamPaperController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassExamPaperController.java @@ -61,7 +61,7 @@ public class ClassExamPaperController { @ApiOperation("详情") @GetMapping("/{id}") public SingleResponse getInfoById(@PathVariable("id") Long id) { - return SingleResponse.of(new ClassExamPaperCO()); + return classExamPaperService.getInfoById(id); } @ApiOperation("删除") diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java index 3ec5dc4..cea4357 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassExamPaperQueryExe.java @@ -1,6 +1,7 @@ package com.zcloud.edu.command.query.study; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.command.convertor.study.ClassExamPaperCoConvertor; import com.zcloud.edu.dto.clientobject.study.ClassExamPaperCO; import com.zcloud.edu.dto.study.ClassExamPaperPageQry; @@ -8,6 +9,7 @@ import com.zcloud.edu.persistence.dataobject.study.ClassExamPaperDO; import com.zcloud.edu.persistence.repository.study.ClassExamPaperRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import java.util.List; @@ -38,5 +40,17 @@ public class ClassExamPaperQueryExe { List examCenterCOS = classExamPaperCoConvertor.converDOsToCOs(pageResponse.getData()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + + /** + * 详情 + * @param id + * @return + */ + public SingleResponse executeGetInfoById(Long id) { + ClassExamPaperDO classExamPaperDO = classExamPaperRepository.findById(id); + ClassExamPaperCO classExamPaperCO = new ClassExamPaperCO(); + BeanUtils.copyProperties(classExamPaperDO, classExamPaperCO); + return SingleResponse.of(classExamPaperCO); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java index abfe63b..80d0339 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassQueryExe.java @@ -2,19 +2,26 @@ package com.zcloud.edu.command.query.study; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; +import com.jjb.saas.framework.auth.model.SSOUser; +import com.jjb.saas.framework.auth.utils.AuthContext; import com.zcloud.edu.command.convertor.study.ClassCoConvertor; import com.zcloud.edu.dto.clientobject.study.ClassCO; import com.zcloud.edu.dto.data.study.ClassQuestionDTO; import com.zcloud.edu.dto.study.ClassPageQry; import com.zcloud.edu.persistence.dataobject.study.ClassDO; import com.zcloud.edu.persistence.mapper.po.study.ClassQuestionPO; +import com.zcloud.edu.persistence.mapper.po.study.StudentCountPO; import com.zcloud.edu.persistence.repository.study.ClassRepository; +import com.zcloud.edu.persistence.repository.study.StudentRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; +import org.springframework.util.ObjectUtils; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** @@ -28,6 +35,7 @@ import java.util.Map; public class ClassQueryExe { private final ClassRepository classRepository; private final ClassCoConvertor classCoConvertor; + private final StudentRepository studentRepository; /** * 分页 @@ -36,8 +44,37 @@ public class ClassQueryExe { * @return */ public PageResponse execute(ClassPageQry classPageQry) { + // 如果isMyCorp不为空,则查询当前登录人所在企业数据 + if (!ObjectUtils.isEmpty(classPageQry.getIsMyCorp())){ + SSOUser ssoUser = AuthContext.getCurrentUser(); + classPageQry.setEqCorpinfoId(ssoUser.getTenantId()); + } Map params = PageQueryHelper.toHashMap(classPageQry); + PageResponse pageResponse = classRepository.listPage(params); + if (pageResponse.getData() != null && pageResponse.getData().size() > 0){ + List classIds = pageResponse.getData().stream().map(ClassDO::getClassId).collect(Collectors.toList()); + List stuCountList = studentRepository.countStudentByClass(classIds); + if (stuCountList != null && stuCountList.size() > 0){ + Map stuCountMap = stuCountList.stream().collect(Collectors.toMap(ClassDO::getClassId, classDO -> classDO)); + pageResponse.getData().stream().forEach(classDO -> { + if(stuCountMap.containsKey(classDO.getClassId())){ + classDO.setTotalCount(stuCountMap.get(classDO.getClassId()).getTotalCount()); + classDO.setSignCount(stuCountMap.get(classDO.getClassId()).getSignCount()); + classDO.setFinishCount(stuCountMap.get(classDO.getClassId()).getFinishCount()); + } + }); + } + } + List examCenterCOS = classCoConvertor.converDOsToCOs(pageResponse.getData()); + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + + public PageResponse executeAppListPage(ClassPageQry classPageQry) { + SSOUser ssoUser = AuthContext.getCurrentUser(); + Map params = PageQueryHelper.toHashMap(classPageQry); + params.put("phone", ssoUser.getAccount()); + PageResponse pageResponse = classRepository.listStuClassPage(params); List examCenterCOS = classCoConvertor.converDOsToCOs(pageResponse.getData()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } @@ -63,5 +100,11 @@ public class ClassQueryExe { } return SingleResponse.of(classQuestionDTO); } + public SingleResponse executeGetInfoById(Long id) { + ClassDO classDO = classRepository.getInfoById(id); + ClassCO classCO = new ClassCO(); + BeanUtils.copyProperties(classDO, classCO); + return SingleResponse.of(classCO); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/study/ClassRemoveExe.java b/web-app/src/main/java/com/zcloud/edu/command/study/ClassRemoveExe.java index 634fbf8..56ebba5 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/study/ClassRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/study/ClassRemoveExe.java @@ -2,6 +2,9 @@ package com.zcloud.edu.command.study; import com.alibaba.cola.exception.BizException; import com.zcloud.edu.domain.gateway.study.ClassGateway; +import com.zcloud.edu.persistence.dataobject.study.ClassDO; +import com.zcloud.edu.persistence.mapper.study.ClassExamPaperMapper; +import com.zcloud.edu.persistence.repository.study.*; import lombok.AllArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -17,10 +20,26 @@ import org.springframework.transaction.annotation.Transactional; @AllArgsConstructor public class ClassRemoveExe { private final ClassGateway classGateway; + private final ClassRepository classRepository; + private final ClassCurriculumRepository classCurriculumRepository; + private final ClassCurriculumChapterRepository classCurriculumChapterRepository; + private final ClassExamPaperRepository classExamPaperRepository; + private final StudentRepository studentRepository; + private final StudentExamRecordRepository studentExamRecordRepository; + private final StudentExamRecordItemRepository studentExamRecordItemRepository; + private final StudentSignRepository studentSignRepository; @Transactional(rollbackFor = Exception.class) public boolean execute(Long id) { + ClassDO classDO = classRepository.getById(id); boolean res = classGateway.deletedClassById(id); + classCurriculumRepository.deleteByClassId(classDO.getClassId()); + classCurriculumChapterRepository.deleteByClassId(classDO.getClassId()); + classExamPaperRepository.deleteByClassId(classDO.getClassId()); + studentRepository.deleteByClassId(classDO.getClassId()); + studentExamRecordRepository.deleteByClassId(classDO.getClassId()); + studentExamRecordItemRepository.deleteByClassId(classDO.getClassId()); + studentSignRepository.deleteByClassId(classDO.getClassId()); if (!res) { throw new BizException("删除失败"); } 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 92517f4..3117ec6 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 @@ -3,6 +3,7 @@ package com.zcloud.edu.command.study; 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.ClassPostponeCmd; import com.zcloud.edu.dto.study.ClassUpdateCmd; import com.zcloud.edu.persistence.repository.study.ClassCurriculumRepository; import com.zcloud.edu.persistence.repository.study.ClassExamPaperRepository; @@ -53,5 +54,13 @@ public class ClassUpdateExe { throw new BizException("修改失败"); } } + @Transactional(rollbackFor = Exception.class) + public void executePostpone(ClassPostponeCmd classPostponeCmd){ + ClassE classE = new ClassE(); + BeanUtils.copyProperties(classPostponeCmd, classE); + classE.postpone(); + classGateway.update(classE); + studentRepository.postponeUpdateStudent(classPostponeCmd.getClassId()); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/service/study/ClassExamPaperServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/study/ClassExamPaperServiceImpl.java index ba3632b..85cc6b3 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/study/ClassExamPaperServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/study/ClassExamPaperServiceImpl.java @@ -62,5 +62,10 @@ public class ClassExamPaperServiceImpl implements ClassExamPaperServiceI { public void removeBatch(Long[] ids) { classExamPaperRemoveExe.execute(ids); } + + @Override + public SingleResponse getInfoById(Long id) { + return classExamPaperQueryExe.executeGetInfoById(id); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/service/study/ClassServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/study/ClassServiceImpl.java index 5164bd9..a00c6b4 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/study/ClassServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/study/ClassServiceImpl.java @@ -11,6 +11,7 @@ import com.zcloud.edu.dto.clientobject.study.ClassCO; import com.zcloud.edu.dto.data.study.ClassQuestionDTO; import com.zcloud.edu.dto.study.ClassAddCmd; import com.zcloud.edu.dto.study.ClassPageQry; +import com.zcloud.edu.dto.study.ClassPostponeCmd; import com.zcloud.edu.dto.study.ClassUpdateCmd; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -31,7 +32,6 @@ public class ClassServiceImpl implements ClassServiceI { @Override public PageResponse listPage(ClassPageQry qry) { - return classQueryExe.execute(qry); } @@ -62,5 +62,21 @@ public class ClassServiceImpl implements ClassServiceI { return classQueryExe.executeCountQuestionByClassId(id); } + + @Override + public SingleResponse getInfoById(Long id) { + return classQueryExe.executeGetInfoById(id); + } + + @Override + public void postpone(ClassPostponeCmd cmd) { + + classUpdateExe.executePostpone(cmd); + } + + @Override + public PageResponse appListPage(ClassPageQry qry) { + return classQueryExe.executeAppListPage(qry); + } } diff --git a/web-client/src/main/java/com/zcloud/edu/api/study/ClassExamPaperServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/study/ClassExamPaperServiceI.java index 8863601..01a59fb 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/study/ClassExamPaperServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/study/ClassExamPaperServiceI.java @@ -26,5 +26,7 @@ public interface ClassExamPaperServiceI { void remove(Long id); void removeBatch(Long[] ids); + + SingleResponse getInfoById(Long id); } diff --git a/web-client/src/main/java/com/zcloud/edu/api/study/ClassServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/study/ClassServiceI.java index 6e1f41d..0f88b3c 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/study/ClassServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/study/ClassServiceI.java @@ -6,6 +6,7 @@ import com.zcloud.edu.dto.clientobject.study.ClassCO; import com.zcloud.edu.dto.data.study.ClassQuestionDTO; import com.zcloud.edu.dto.study.ClassAddCmd; import com.zcloud.edu.dto.study.ClassPageQry; +import com.zcloud.edu.dto.study.ClassPostponeCmd; import com.zcloud.edu.dto.study.ClassUpdateCmd; /** @@ -26,5 +27,14 @@ public interface ClassServiceI { void removeBatch(Long[] ids); SingleResponse countQuestionByClassId(String id); + + SingleResponse getInfoById(Long id); + + + + void postpone(ClassPostponeCmd cmd); + + + PageResponse appListPage(ClassPageQry qry); } 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 c60076b..bd1f1b6 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 @@ -1,6 +1,7 @@ package com.zcloud.edu.dto.clientobject.study; import com.alibaba.cola.dto.ClientObject; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import io.swagger.models.auth.In; @@ -101,5 +102,12 @@ public class ClassCO extends ClientObject { //环境 @ApiModelProperty(value = "环境") private String env; + + @ApiModelProperty(value = "班级学员总数") + private Integer totalCount= 0; + @ApiModelProperty(value = "班级签到人数") + private Integer signCount = 0; + @ApiModelProperty(value = "考试通过人数") + private Integer finishCount= 0; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java index d4c4ba0..acd2be0 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/ClassExamPaperCO.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDateTime; @@ -34,13 +35,15 @@ public class ClassExamPaperCO extends ClientObject { private String examName; //试卷总分数 @ApiModelProperty(value = "试卷总分数") - private String examScore; + private BigDecimal examScore; //合格分数 @ApiModelProperty(value = "合格分数") - private String passScore; + private BigDecimal passScore; //考试时长(分钟) @ApiModelProperty(value = "考试时长(分钟)") - private String examTime; + private Integer examTime; + @ApiModelProperty(value = "企业名称") + private String corpName; //删除标识true false @ApiModelProperty(value = "删除标识true false") private String deleteEnum; 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 dee9901..876bc34 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 @@ -31,6 +31,8 @@ public class ClassPageQry extends PageQuery { private String leStartTime; private String geEndTime; private String leEndTime; + private String isMyCorp; + private Long eqCorpinfoId; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPostponeCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPostponeCmd.java new file mode 100644 index 0000000..d68bc51 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassPostponeCmd.java @@ -0,0 +1,38 @@ +package com.zcloud.edu.dto.study; + +import com.alibaba.cola.dto.Command; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-13 14:18:12 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ClassPostponeCmd extends Command { + + @ApiModelProperty(value = "主键不能为空", name = "id", required = true) + @NotNull(message = "主键不能为空") + private Long id; + + @ApiModelProperty(value = "业务主键id", name = "classId", required = true) + @NotEmpty(message = "业务主键id不能为空") + private String classId; + + @ApiModelProperty(value = "培训日期 结束日期", name = "endTime", required = true) + @NotEmpty(message = "培训日期 结束日期不能为空") + private String endTime; + +} + 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 f2b381a..e647752 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 @@ -90,5 +90,14 @@ public class ClassE extends BaseE { } } } + + public void postpone(){ + if(DateUtil.isBeforeThan(this.endTime)){ + this.state = 3; + } else { + this.state = 4; + } + } + } 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 3d2b75d..85395af 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 @@ -1,5 +1,6 @@ package com.zcloud.edu.persistence.dataobject.study; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.jjb.saas.framework.repository.basedo.BaseDO; import io.swagger.annotations.ApiModelProperty; @@ -41,6 +42,7 @@ public class ClassDO extends BaseDO { private String trainType; //培训行业类型名称 @ApiModelProperty(value = "培训行业类型名称") + @TableField(exist = false) private String trainTypeName; //培训地点 @ApiModelProperty(value = "培训地点") @@ -63,7 +65,15 @@ public class ClassDO extends BaseDO { //考试次数只有考试时候有用 @ApiModelProperty(value = "考试次数只有考试时候有用") private Integer numberofexams; - + @ApiModelProperty(value = "班级学员总数") + @TableField(exist = false) + private Integer totalCount; + @ApiModelProperty(value = "班级签到人数") + @TableField(exist = false) + private Integer signCount; + @ApiModelProperty(value = "考试通过人数") + @TableField(exist = false) + private Integer finishCount; } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassExamPaperDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassExamPaperDO.java index b2bf16f..21fb24e 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassExamPaperDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/ClassExamPaperDO.java @@ -1,5 +1,6 @@ package com.zcloud.edu.persistence.dataobject.study; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.jjb.saas.framework.repository.basedo.BaseDO; import io.swagger.annotations.ApiModelProperty; @@ -45,6 +46,8 @@ public class ClassExamPaperDO extends BaseDO { @ApiModelProperty(value = "考试时长(分钟)") private Integer examTime; - + @ApiModelProperty(value = "企业名称") + @TableField(exist = false) + private String corpName; } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentExamRecordItemDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentExamRecordItemDO.java index cf23534..43b83c7 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentExamRecordItemDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentExamRecordItemDO.java @@ -27,6 +27,9 @@ public class StudentExamRecordItemDO extends BaseDO { //学员id @ApiModelProperty(value = "学员id") private String studentId; + //班级id + @ApiModelProperty(value = "班级id") + private String classId; //习题ID @ApiModelProperty(value = "习题ID") private String questionId; diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentCountPO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentCountPO.java new file mode 100644 index 0000000..d9d3ac0 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/po/study/StudentCountPO.java @@ -0,0 +1,22 @@ +package com.zcloud.edu.persistence.mapper.po.study; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.poi.ss.formula.functions.Count; + +/** + * @author zhangyue + * @date 2026/1/19 15:38 + */ +@Data +public class StudentCountPO { + @ApiModelProperty(value = "班级学员总数") + private Integer totalCount; + @ApiModelProperty(value = "班级签到人数") + private Integer signCount; + @ApiModelProperty(value = "考试通过人数") + private Integer finishCount; + @ApiModelProperty(value = "班级id") + private Integer classId; +} diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassExamPaperMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassExamPaperMapper.java index 5d57d58..9af8723 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassExamPaperMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassExamPaperMapper.java @@ -13,6 +13,6 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface ClassExamPaperMapper extends BaseMapper { - + ClassExamPaperDO findById(Long id); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassMapper.java index 57adb1f..d4aee50 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/ClassMapper.java @@ -1,12 +1,16 @@ package com.zcloud.edu.persistence.mapper.study; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.zcloud.edu.persistence.dataobject.study.ClassDO; import com.zcloud.edu.persistence.mapper.po.study.ClassQuestionPO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import oshi.jna.platform.mac.SystemB; import java.util.List; +import java.util.Map; /** * web-infrastructure @@ -16,6 +20,12 @@ import java.util.List; */ @Mapper public interface ClassMapper extends BaseMapper { + + IPage listPage(IPage page, @Param("ew") QueryWrapper queryWrapper, String menuPerms); + IPage listStuClassPage(IPage page, @Param("params") Map params, String menuPerms); + List countQuestionByClassId(String classId); + + ClassDO getInfoById(long id); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentMapper.java index 2ad8eaa..f3259a7 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentMapper.java @@ -1,9 +1,13 @@ package com.zcloud.edu.persistence.mapper.study; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zcloud.edu.persistence.dataobject.study.ClassDO; import com.zcloud.edu.persistence.dataobject.study.StudentDO; +import com.zcloud.edu.persistence.mapper.po.study.StudentCountPO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * web-infrastructure * @@ -12,6 +16,8 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface StudentMapper extends BaseMapper { + long postponeUpdateStudent(String classId); + List countStudentByClass(List classIds); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumChapterRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumChapterRepositoryImpl.java index 0647132..88a5223 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumChapterRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/ClassCurriculumChapterRepositoryImpl.java @@ -52,5 +52,14 @@ public class ClassCurriculumChapterRepositoryImpl extends BaseRepositoryImpl(); + updateWrapper.eq("class_id", classId); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + return classCurriculumChapterMapper.delete(updateWrapper); + } } 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 73ea862..1611d4d 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 @@ -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; @@ -56,5 +57,14 @@ public class ClassCurriculumRepositoryImpl extends BaseRepositoryImpl(); + updateWrapper.set("delete_enum", "TRUE"); + updateWrapper.eq("class_id", classId); + updateWrapper.eq("delete_enum", "FALSE"); + return classCurriculumMapper.delete(updateWrapper); + } } 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 0ca2a59..3694b42 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 @@ -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; @@ -51,5 +52,19 @@ public class ClassExamPaperRepositoryImpl extends BaseRepositoryImpl(); + updateWrapper.set("delete_enum", "TRUE"); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.eq("class_id", classId); + return classExamPaperMapper.delete(updateWrapper); + } } 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 1cc91ce..131abb9 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 @@ -32,9 +32,17 @@ public class ClassRepositoryImpl extends BaseRepositoryImpl listPage(Map params) { IPage iPage = new Query().getPage(params); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); - queryWrapper.orderByDesc("create_time"); - IPage result = classMapper.selectPage(iPage, queryWrapper); + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params,"c."); + queryWrapper.orderByAsc("c.state").orderByDesc("c.create_time"); + queryWrapper.eq("c.delete_enum","FALSE"); + IPage result = classMapper.listPage(iPage, queryWrapper, null); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public PageResponse listStuClassPage(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = classMapper.listStuClassPage(iPage, params, null); return PageHelper.pageToResponse(result, result.getRecords()); } @@ -49,5 +57,10 @@ public class ClassRepositoryImpl extends BaseRepositoryImpl countQuestionByClassId(String classId) { return classMapper.countQuestionByClassId(classId); } + + @Override + public ClassDO getInfoById(Long id) { + return classMapper.getInfoById(id); + } } 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 adf0e1a..cfa4f2c 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 @@ -45,5 +45,14 @@ public class StudentExamRecordItemRepositoryImpl extends BaseRepositoryImpl(); + updateWrapper.eq("class_id", classId); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + return studentExamRecordItemMapper.delete(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 82be264..67f993b 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 @@ -45,5 +45,14 @@ public class StudentExamRecordRepositoryImpl extends BaseRepositoryImpl(); + updateWrapper.eq("class_id", classId); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + return studentExamRecordMapper.delete( 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 28d3eb5..bafbc8f 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 @@ -2,10 +2,13 @@ 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; +import com.zcloud.edu.persistence.dataobject.study.ClassDO; import com.zcloud.edu.persistence.dataobject.study.StudentDO; +import com.zcloud.edu.persistence.mapper.po.study.StudentCountPO; import com.zcloud.edu.persistence.mapper.study.StudentMapper; import com.zcloud.edu.persistence.repository.study.StudentRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; @@ -50,5 +53,25 @@ public class StudentRepositoryImpl extends BaseRepositoryImpl(); + updateWrapper.eq("class_id", classId); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + return studentMapper.delete(updateWrapper); + } + + @Override + public List countStudentByClass(List classIds) { + return studentMapper.countStudentByClass(classIds); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentSignRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentSignRepositoryImpl.java index 99aee20..4dc8b7d 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentSignRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/study/StudentSignRepositoryImpl.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 StudentSignRepositoryImpl extends BaseRepositoryImpl result = studentSignMapper.selectPage(iPage, queryWrapper); return PageHelper.pageToResponse(result, result.getRecords()); } + + @Override + public Integer deleteByClassId(String classId) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("class_id", classId); + updateWrapper.eq("delete_enum", "FALSE"); + updateWrapper.set("delete_enum", "TRUE"); + return studentSignMapper.delete(updateWrapper); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumChapterRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumChapterRepository.java index bd77ce2..6f7036b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumChapterRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/ClassCurriculumChapterRepository.java @@ -19,5 +19,7 @@ public interface ClassCurriculumChapterRepository extends BaseRepository listByCurriculumId(String classCurriculumId); Integer deleteByCurriculumId(String classCurriculumId); + + Integer deleteByClassId(String classId); } 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 b8e80c9..81fda9d 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 @@ -20,5 +20,7 @@ public interface ClassCurriculumRepository extends BaseRepository { PageResponse listPage(Map params); + PageResponse listStuClassPage(Map params); + ClassDO getByClassId(String classId); List countQuestionByClassId(String classId); + + ClassDO getInfoById(Long id); } 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 b04574f..fb8beed 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 @@ -3,6 +3,7 @@ package com.zcloud.edu.persistence.repository.study; import com.alibaba.cola.dto.PageResponse; import com.jjb.saas.framework.repository.repo.BaseRepository; import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordItemDO; +import io.swagger.models.auth.In; import java.util.Map; @@ -16,5 +17,7 @@ public interface StudentExamRecordItemRepository extends BaseRepository listPage(Map params); void deleteByStudentId(String studentId); + + Integer deleteByClassId(String classId); } 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 92387ac..ee0069a 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 @@ -16,5 +16,7 @@ public interface StudentExamRecordRepository extends BaseRepository listPage(Map params); void deleteByStudentId(String studentId); + + Integer deleteByClassId(String classId); } 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 eed6cb9..a8918ce 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 @@ -2,7 +2,9 @@ package com.zcloud.edu.persistence.repository.study; import com.alibaba.cola.dto.PageResponse; import com.jjb.saas.framework.repository.repo.BaseRepository; +import com.zcloud.edu.persistence.dataobject.study.ClassDO; import com.zcloud.edu.persistence.dataobject.study.StudentDO; +import com.zcloud.edu.persistence.mapper.po.study.StudentCountPO; import java.util.List; import java.util.Map; @@ -18,5 +20,11 @@ public interface StudentRepository extends BaseRepository { Boolean addBatch(List studentDOs); Long countByClassId(String classId); + + Long postponeUpdateStudent(String classId); + + Integer deleteByClassId(String classId); + + List countStudentByClass(List classIds); } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentSignRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentSignRepository.java index a23612a..1c687dd 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentSignRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/study/StudentSignRepository.java @@ -14,5 +14,7 @@ import java.util.Map; */ public interface StudentSignRepository extends BaseRepository { PageResponse listPage(Map params); + + Integer deleteByClassId(String classId); } diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassExamPaperMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassExamPaperMapper.xml index c3fe5c5..5d843fa 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassExamPaperMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassExamPaperMapper.xml @@ -3,6 +3,23 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml index 1bb3f4b..32b0e03 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml @@ -17,5 +17,92 @@ GROUP BY q.question_type + + + + + + + + diff --git a/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml b/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml index d280065..40246d5 100644 --- a/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml @@ -4,5 +4,36 @@ + + update + student + set state = + CASE state + WHEN 4 THEN 0 + WHEN 5 THEN 1 + WHEN 6 THEN 2 + END + where class_id = #{classId} and delete_enum = 'FALSE' and state in (4,5,6) + + + +