diff --git a/web-adapter/src/main/java/com/zcloud/edu/app/study/AppStudentSignController.java b/web-adapter/src/main/java/com/zcloud/edu/app/study/AppStudentSignController.java index 920378e..b968d7a 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/app/study/AppStudentSignController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/app/study/AppStudentSignController.java @@ -8,6 +8,7 @@ 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.api.study.StudentSignServiceI; +import com.zcloud.edu.dto.clientobject.study.StudentCO; import com.zcloud.edu.dto.clientobject.study.StudentSignCO; import com.zcloud.edu.dto.study.*; import io.swagger.annotations.Api; @@ -38,7 +39,7 @@ public class AppStudentSignController { } @ApiOperation("验证是否可签到") @GetMapping("/verify") - public Response verify(@RequestBody StudentSignVerifyQry qry) { + public SingleResponse verify(@RequestBody StudentSignVerifyQry qry) { return studentSignService.verify(qry); } @ApiOperation("分页") diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java new file mode 100644 index 0000000..3fadd8c --- /dev/null +++ b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesController.java @@ -0,0 +1,57 @@ +package com.zcloud.edu.web.archives; + +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.api.study.ClassServiceI; +import com.zcloud.edu.api.study.StudentServiceI; +import com.zcloud.edu.dto.archives.ClassArchivesQry; +import com.zcloud.edu.dto.clientobject.study.ClassCO; +import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; +import com.zcloud.edu.dto.study.ClassPageQry; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author zhangyue + * @date 2026/1/26 15:08 + */ +@Api(tags = "") +@RequestMapping("/${application.gateway}/archives") +@RestController +@AllArgsConstructor +public class ArchivesController { + private final ClassServiceI classService; + private final StudentServiceI studentService; + + @ApiOperation("分页") + @PostMapping("/list") + public PageResponse page(@RequestBody ClassPageQry qry) { + qry.setEqCorpinfoId(AuthContext.getCurrentUser().getTenantId()); + return classService.appListPage(qry); + } + + @ApiOperation("查询学时证明") + @PostMapping("/getAttendanceRecord") + public SingleResponse getAttendanceRecord(@RequestBody ClassArchivesQry qry) { + return studentService.getAttendanceRecord(qry); + } + @ApiOperation("查询学习档案") + @PostMapping("/getStudyArchives") + public SingleResponse getStudyArchives(@RequestBody ClassArchivesQry qry) { + return studentService.getStudyArchives(qry); + } + + @ApiOperation("查询学习记录") + @PostMapping("/getStudyRecord") + public SingleResponse getStudyRecord(@RequestBody ClassArchivesQry qry) { + return studentService.getStudyRecord(qry); + } + +} diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesReviewController.java b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesReviewController.java new file mode 100644 index 0000000..4f6f238 --- /dev/null +++ b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesReviewController.java @@ -0,0 +1,82 @@ +package com.zcloud.edu.web.archives; + + +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.jjb.saas.framework.auth.model.SSOUser; +import com.jjb.saas.framework.auth.utils.AuthContext; +import com.zcloud.edu.api.archives.ArchivesReviewServiceI; +import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd; +import com.zcloud.edu.dto.archives.ArchivesReviewPageQry; +import com.zcloud.edu.dto.archives.ArchivesReviewUpdateCmd; +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO; +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-26 10:59:34 + */ +@Api(tags = "") +@RequestMapping("/${application.gateway}/archivesReview") +@RestController +@AllArgsConstructor +public class ArchivesReviewController { + private final ArchivesReviewServiceI archivesReviewService; + + @ApiOperation("新增") + @PostMapping("/save") + public SingleResponse add(@Validated @RequestBody ArchivesReviewAddCmd cmd) { + SSOUser ssoUser = AuthContext.getCurrentUser(); + return archivesReviewService.add(cmd); + } + + @ApiOperation("分页") + @PostMapping("/list") + public PageResponse page(@RequestBody ArchivesReviewPageQry qry) { + return archivesReviewService.listPage(qry); + } + + @ApiOperation("所有数据") + @GetMapping("/listAll") + public MultiResponse listAll() { + return MultiResponse.of(new ArrayList()); + } + + @ApiOperation("详情") + @GetMapping("/{id}") + public SingleResponse getInfoById(@PathVariable("id") Long id) { + return SingleResponse.of(new ArchivesReviewCO()); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public Response remove(@PathVariable("id") Long id) { + archivesReviewService.remove(id); + return SingleResponse.buildSuccess(); + } + + @ApiOperation("删除多个") + @DeleteMapping("/ids") + public Response removeBatch(@RequestParam Long[] ids) { + archivesReviewService.removeBatch(ids); + return SingleResponse.buildSuccess(); + } + + @ApiOperation("修改") + @PutMapping("/edit") + public SingleResponse edit(@Validated @RequestBody ArchivesReviewUpdateCmd archivesReviewUpdateCmd) { + archivesReviewService.edit(archivesReviewUpdateCmd); + return SingleResponse.buildSuccess(); + } +} + diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesReviewRecordController.java b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesReviewRecordController.java new file mode 100644 index 0000000..6059ec2 --- /dev/null +++ b/web-adapter/src/main/java/com/zcloud/edu/web/archives/ArchivesReviewRecordController.java @@ -0,0 +1,82 @@ +package com.zcloud.edu.web.archives; + + +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.jjb.saas.framework.auth.model.SSOUser; +import com.jjb.saas.framework.auth.utils.AuthContext; +import com.zcloud.edu.api.archives.ArchivesReviewRecordServiceI; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordPageQry; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordUpdateCmd; +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewRecordCO; +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-26 10:59:36 + */ +@Api(tags = "") +@RequestMapping("/${application.gateway}/archivesReviewRecord") +@RestController +@AllArgsConstructor +public class ArchivesReviewRecordController { + private final ArchivesReviewRecordServiceI archivesReviewRecordService; + + @ApiOperation("新增") + @PostMapping("/save") + public SingleResponse add(@Validated @RequestBody ArchivesReviewRecordAddCmd cmd) { + SSOUser ssoUser = AuthContext.getCurrentUser(); + return archivesReviewRecordService.add(cmd); + } + + @ApiOperation("分页") + @PostMapping("/list") + public PageResponse page(@RequestBody ArchivesReviewRecordPageQry qry) { + return archivesReviewRecordService.listPage(qry); + } + + @ApiOperation("所有数据") + @GetMapping("/listAll") + public MultiResponse listAll() { + return MultiResponse.of(new ArrayList()); + } + + @ApiOperation("详情") + @GetMapping("/{id}") + public SingleResponse getInfoById(@PathVariable("id") Long id) { + return SingleResponse.of(new ArchivesReviewRecordCO()); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public Response remove(@PathVariable("id") Long id) { + archivesReviewRecordService.remove(id); + return SingleResponse.buildSuccess(); + } + + @ApiOperation("删除多个") + @DeleteMapping("/ids") + public Response removeBatch(@RequestParam Long[] ids) { + archivesReviewRecordService.removeBatch(ids); + return SingleResponse.buildSuccess(); + } + + @ApiOperation("修改") + @PutMapping("/edit") + public SingleResponse edit(@Validated @RequestBody ArchivesReviewRecordUpdateCmd archivesReviewRecordUpdateCmd) { + archivesReviewRecordService.edit(archivesReviewRecordUpdateCmd); + return SingleResponse.buildSuccess(); + } +} + 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 f5f6440..67afa58 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 @@ -7,12 +7,10 @@ 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.clientobject.study.StudentCO; import com.zcloud.edu.dto.data.study.ClassCountDTO; 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 com.zcloud.edu.dto.study.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -72,6 +70,11 @@ public class ClassController { public MultiResponse countClassStudent() { return MultiResponse.of(new ArrayList()); } + @ApiOperation("统计人员班级数") + @GetMapping("/countStuClass") + public MultiResponse countStuClass(@RequestBody ClassCountQry qry) { + return classService.countStuClass(qry); + } @ApiOperation("详情") @GetMapping("/{id}") diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassCurriculumController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassCurriculumController.java index 8530411..8b26966 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassCurriculumController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/ClassCurriculumController.java @@ -52,7 +52,7 @@ public class ClassCurriculumController { } @ApiOperation("所有数据") - @GetMapping("/listAll") + @PostMapping("/listAll") public MultiResponse listAll(@RequestBody ClassCurriculumQry qry) { return classCurriculumService.listAll(qry); } diff --git a/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentExamRecordController.java b/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentExamRecordController.java index 8f02cf1..69fe24e 100644 --- a/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentExamRecordController.java +++ b/web-adapter/src/main/java/com/zcloud/edu/web/study/StudentExamRecordController.java @@ -58,6 +58,12 @@ public class StudentExamRecordController { return SingleResponse.of(new StudentExamRecordCO()); } + @ApiOperation("查询考试记录") + @GetMapping("/getInfoByStudentId/{studentId}") + public SingleResponse getInfoByStudentId(@PathVariable("id") String studentId) { + return studentExamRecordService.getInfoByStudentId(studentId); + } + @ApiOperation("删除") @DeleteMapping("/{id}") public Response remove(@PathVariable("id") Long id) { diff --git a/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewAddExe.java b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewAddExe.java new file mode 100644 index 0000000..4018692 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewAddExe.java @@ -0,0 +1,40 @@ +package com.zcloud.edu.command.archives; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.edu.domain.gateway.archives.ArchivesReviewGateway; +import com.zcloud.edu.domain.model.archives.ArchivesReviewE; +import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:34 + */ +@Component +@AllArgsConstructor +public class ArchivesReviewAddExe { + private final ArchivesReviewGateway archivesReviewGateway; + + @Transactional(rollbackFor = Exception.class) + public boolean execute(ArchivesReviewAddCmd cmd) { + ArchivesReviewE archivesReviewE = new ArchivesReviewE(); + BeanUtils.copyProperties(cmd, archivesReviewE); + boolean res = false; + try { + res = archivesReviewGateway.add(archivesReviewE); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (!res) { + throw new BizException("保存失败"); + } + return true; + } +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRecordAddExe.java b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRecordAddExe.java new file mode 100644 index 0000000..67ad36a --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRecordAddExe.java @@ -0,0 +1,40 @@ +package com.zcloud.edu.command.archives; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.edu.domain.gateway.archives.ArchivesReviewRecordGateway; +import com.zcloud.edu.domain.model.archives.ArchivesReviewRecordE; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:36 + */ +@Component +@AllArgsConstructor +public class ArchivesReviewRecordAddExe { + private final ArchivesReviewRecordGateway archivesReviewRecordGateway; + + @Transactional(rollbackFor = Exception.class) + public boolean execute(ArchivesReviewRecordAddCmd cmd) { + ArchivesReviewRecordE archivesReviewRecordE = new ArchivesReviewRecordE(); + BeanUtils.copyProperties(cmd, archivesReviewRecordE); + boolean res = false; + try { + res = archivesReviewRecordGateway.add(archivesReviewRecordE); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (!res) { + throw new BizException("保存失败"); + } + return true; + } +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRecordRemoveExe.java b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRecordRemoveExe.java new file mode 100644 index 0000000..c4d5066 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRecordRemoveExe.java @@ -0,0 +1,39 @@ +package com.zcloud.edu.command.archives; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.edu.domain.gateway.archives.ArchivesReviewRecordGateway; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +@Component +@AllArgsConstructor +public class ArchivesReviewRecordRemoveExe { + private final ArchivesReviewRecordGateway archivesReviewRecordGateway; + + @Transactional(rollbackFor = Exception.class) + public boolean execute(Long id) { + boolean res = archivesReviewRecordGateway.deletedArchivesReviewRecordById(id); + if (!res) { + throw new BizException("删除失败"); + } + return true; + } + + @Transactional(rollbackFor = Exception.class) + public boolean execute(Long[] ids) { + boolean res = archivesReviewRecordGateway.deletedArchivesReviewRecordByIds(ids); + if (!res) { + throw new BizException("删除失败"); + } + return true; + } +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRecordUpdateExe.java b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRecordUpdateExe.java new file mode 100644 index 0000000..ce86853 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRecordUpdateExe.java @@ -0,0 +1,34 @@ +package com.zcloud.edu.command.archives; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.edu.domain.gateway.archives.ArchivesReviewRecordGateway; +import com.zcloud.edu.domain.model.archives.ArchivesReviewRecordE; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordUpdateCmd; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +@Component +@AllArgsConstructor +public class ArchivesReviewRecordUpdateExe { + private final ArchivesReviewRecordGateway archivesReviewRecordGateway; + + @Transactional(rollbackFor = Exception.class) + public void execute(ArchivesReviewRecordUpdateCmd archivesReviewRecordUpdateCmd) { + ArchivesReviewRecordE archivesReviewRecordE = new ArchivesReviewRecordE(); + BeanUtils.copyProperties(archivesReviewRecordUpdateCmd, archivesReviewRecordE); + boolean res = archivesReviewRecordGateway.update(archivesReviewRecordE); + if (!res) { + throw new BizException("修改失败"); + } + } +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRemoveExe.java b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRemoveExe.java new file mode 100644 index 0000000..3149d8e --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewRemoveExe.java @@ -0,0 +1,39 @@ +package com.zcloud.edu.command.archives; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.edu.domain.gateway.archives.ArchivesReviewGateway; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +@Component +@AllArgsConstructor +public class ArchivesReviewRemoveExe { + private final ArchivesReviewGateway archivesReviewGateway; + + @Transactional(rollbackFor = Exception.class) + public boolean execute(Long id) { + boolean res = archivesReviewGateway.deletedArchivesReviewById(id); + if (!res) { + throw new BizException("删除失败"); + } + return true; + } + + @Transactional(rollbackFor = Exception.class) + public boolean execute(Long[] ids) { + boolean res = archivesReviewGateway.deletedArchivesReviewByIds(ids); + if (!res) { + throw new BizException("删除失败"); + } + return true; + } +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewUpdateExe.java b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewUpdateExe.java new file mode 100644 index 0000000..25ff445 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/archives/ArchivesReviewUpdateExe.java @@ -0,0 +1,34 @@ +package com.zcloud.edu.command.archives; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.edu.domain.gateway.archives.ArchivesReviewGateway; +import com.zcloud.edu.domain.model.archives.ArchivesReviewE; +import com.zcloud.edu.dto.archives.ArchivesReviewUpdateCmd; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +@Component +@AllArgsConstructor +public class ArchivesReviewUpdateExe { + private final ArchivesReviewGateway archivesReviewGateway; + + @Transactional(rollbackFor = Exception.class) + public void execute(ArchivesReviewUpdateCmd archivesReviewUpdateCmd) { + ArchivesReviewE archivesReviewE = new ArchivesReviewE(); + BeanUtils.copyProperties(archivesReviewUpdateCmd, archivesReviewE); + boolean res = archivesReviewGateway.update(archivesReviewE); + if (!res) { + throw new BizException("修改失败"); + } + } +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/convertor/archives/ArchivesReviewCoConvertor.java b/web-app/src/main/java/com/zcloud/edu/command/convertor/archives/ArchivesReviewCoConvertor.java new file mode 100644 index 0000000..0fc9b20 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/convertor/archives/ArchivesReviewCoConvertor.java @@ -0,0 +1,24 @@ +package com.zcloud.edu.command.convertor.archives; + +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO; +import org.mapstruct.Mapper; + +import java.util.List; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:34 + */ +@Mapper(componentModel = "spring") +public interface ArchivesReviewCoConvertor { + /** + * @param archivesReviewDOs + * @return + */ + List converDOsToCOs(List archivesReviewDOs); +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/convertor/archives/ArchivesReviewRecordCoConvertor.java b/web-app/src/main/java/com/zcloud/edu/command/convertor/archives/ArchivesReviewRecordCoConvertor.java new file mode 100644 index 0000000..431136c --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/convertor/archives/ArchivesReviewRecordCoConvertor.java @@ -0,0 +1,24 @@ +package com.zcloud.edu.command.convertor.archives; + +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewRecordCO; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO; +import org.mapstruct.Mapper; + +import java.util.List; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:36 + */ +@Mapper(componentModel = "spring") +public interface ArchivesReviewRecordCoConvertor { + /** + * @param archivesReviewRecordDOs + * @return + */ + List converDOsToCOs(List archivesReviewRecordDOs); +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesReviewQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesReviewQueryExe.java new file mode 100644 index 0000000..2fcb7b9 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesReviewQueryExe.java @@ -0,0 +1,42 @@ +package com.zcloud.edu.command.query.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.zcloud.edu.command.convertor.archives.ArchivesReviewCoConvertor; +import com.zcloud.edu.dto.archives.ArchivesReviewPageQry; +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO; +import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRepository; +import com.zcloud.gbscommon.utils.PageQueryHelper; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +@Component +@AllArgsConstructor +public class ArchivesReviewQueryExe { + private final ArchivesReviewRepository archivesReviewRepository; + private final ArchivesReviewCoConvertor archivesReviewCoConvertor; + + /** + * 分页 + * + * @param archivesReviewPageQry + * @return + */ + public PageResponse execute(ArchivesReviewPageQry archivesReviewPageQry) { + Map params = PageQueryHelper.toHashMap(archivesReviewPageQry); + PageResponse pageResponse = archivesReviewRepository.listPage(params); + List examCenterCOS = archivesReviewCoConvertor.converDOsToCOs(pageResponse.getData()); + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesReviewRecordQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesReviewRecordQueryExe.java new file mode 100644 index 0000000..67e80c8 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/command/query/archives/ArchivesReviewRecordQueryExe.java @@ -0,0 +1,42 @@ +package com.zcloud.edu.command.query.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.zcloud.edu.command.convertor.archives.ArchivesReviewRecordCoConvertor; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordPageQry; +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewRecordCO; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO; +import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRecordRepository; +import com.zcloud.gbscommon.utils.PageQueryHelper; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +@Component +@AllArgsConstructor +public class ArchivesReviewRecordQueryExe { + private final ArchivesReviewRecordRepository archivesReviewRecordRepository; + private final ArchivesReviewRecordCoConvertor archivesReviewRecordCoConvertor; + + /** + * 分页 + * + * @param archivesReviewRecordPageQry + * @return + */ + public PageResponse execute(ArchivesReviewRecordPageQry archivesReviewRecordPageQry) { + Map params = PageQueryHelper.toHashMap(archivesReviewRecordPageQry); + PageResponse pageResponse = archivesReviewRecordRepository.listPage(params); + List examCenterCOS = archivesReviewRecordCoConvertor.converDOsToCOs(pageResponse.getData()); + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } +} + diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassCurriculumQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassCurriculumQueryExe.java index 7179a8c..10e7529 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassCurriculumQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/ClassCurriculumQueryExe.java @@ -65,8 +65,8 @@ public class ClassCurriculumQueryExe { BeanUtils.copyProperties(classCurriculumDO, classCurriculumCO); List classCurriculumChapterCOList = classCurriculumChapterCoConvertor.converDOsToCOs(classCurriculumChapterDOList); long videoCount = classCurriculumChapterCOList.stream().filter(bean -> !ObjectUtils.isEmpty(bean.getVideoCoursewareId())).count(); - Tools.buildEntityTree(classCurriculumChapterCOList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0"); - classCurriculumCO.setCurriculumChapterCOList(classCurriculumChapterCOList); + List resultList = Tools.buildEntityTree(classCurriculumChapterCOList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0"); + classCurriculumCO.setCurriculumChapterCOList(resultList); classCurriculumCO.setVideoCount(videoCount); return SingleResponse.of(classCurriculumCO); } @@ -77,9 +77,9 @@ public class ClassCurriculumQueryExe { List classCurriculumIds = curList.stream().map(ClassCurriculumDO::getClassCurriculumId).collect(Collectors.toList()); List chapterList = classCurriculumChapterRepository.listByClassCurriculumIds(classCurriculumIds); List chapterCoList = classCurriculumChapterCoConvertor.converDOsToCOs(chapterList); - Tools.buildEntityTree(chapterCoList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0"); + List resultList = Tools.buildEntityTree(chapterCoList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0"); - Map> chapterMap = chapterCoList.stream().collect(Collectors.groupingBy(ClassCurriculumChapterCO::getClassCurriculumId)); + Map> chapterMap = resultList.stream().collect(Collectors.groupingBy(ClassCurriculumChapterCO::getClassCurriculumId)); List curriculumList = classCurriculumCoConvertor.converDOsToCOs(curList); curriculumList.stream().forEach(bean -> { bean.setCurriculumChapterCOList(chapterMap.get(bean.getClassCurriculumId())); 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 fd9c7b7..b1ce684 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 @@ -1,15 +1,21 @@ package com.zcloud.edu.command.query.study; +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.cola.dto.MultiResponse; 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.command.convertor.study.StudentCoConvertor; import com.zcloud.edu.dto.clientobject.study.ClassCO; +import com.zcloud.edu.dto.clientobject.study.StudentCO; import com.zcloud.edu.dto.data.study.ClassCountDTO; import com.zcloud.edu.dto.data.study.ClassQuestionDTO; +import com.zcloud.edu.dto.study.ClassCountQry; import com.zcloud.edu.dto.study.ClassPageQry; import com.zcloud.edu.persistence.dataobject.study.ClassDO; +import com.zcloud.edu.persistence.dataobject.study.StudentDO; 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; @@ -37,6 +43,7 @@ public class ClassQueryExe { private final ClassRepository classRepository; private final ClassCoConvertor classCoConvertor; private final StudentRepository studentRepository; + private final StudentCoConvertor studentCoConvertor; /** * 分页 @@ -124,5 +131,12 @@ public class ClassQueryExe { BeanUtils.copyProperties(classDO, classCO); return SingleResponse.of(classCO); } + + public MultiResponse executeCountStuClass(ClassCountQry qry){ + Map params = PageQueryHelper.toHashMap(qry); + List studentDOList = studentRepository.countStuClass(params); + List studentCOList = BeanUtil.copyToList(studentDOList, StudentCO.class); + return MultiResponse.of(studentCOList); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentExamRecordQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentExamRecordQueryExe.java index 6ded692..4bb2f0f 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentExamRecordQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentExamRecordQueryExe.java @@ -1,13 +1,19 @@ 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.StudentExamRecordCoConvertor; +import com.zcloud.edu.command.convertor.study.StudentExamRecordItemCoConvertor; import com.zcloud.edu.dto.clientobject.study.StudentExamRecordCO; +import com.zcloud.edu.dto.clientobject.study.StudentExamRecordItemCO; import com.zcloud.edu.dto.study.StudentExamRecordPageQry; import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordDO; +import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordItemDO; +import com.zcloud.edu.persistence.repository.study.StudentExamRecordItemRepository; import com.zcloud.edu.persistence.repository.study.StudentExamRecordRepository; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; import java.util.List; @@ -25,6 +31,8 @@ import java.util.Map; public class StudentExamRecordQueryExe { private final StudentExamRecordRepository studentExamRecordRepository; private final StudentExamRecordCoConvertor studentExamRecordCoConvertor; + private final StudentExamRecordItemRepository studentExamRecordItemRepository; + private final StudentExamRecordItemCoConvertor studentExamRecordItemCoConvertor; /** * 分页 @@ -38,5 +46,14 @@ public class StudentExamRecordQueryExe { List examCenterCOS = studentExamRecordCoConvertor.converDOsToCOs(pageResponse.getData()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + public SingleResponse executeGetInfoByStudentId(String studentId){ + StudentExamRecordDO studentExamRecordDO = studentExamRecordRepository.getInfoByStudentId(studentId); + StudentExamRecordCO studentExamRecordCO = new StudentExamRecordCO(); + BeanUtils.copyProperties(studentExamRecordDO, studentExamRecordCO); + List recordList = studentExamRecordItemRepository.listByExamRecordId(studentExamRecordDO.getStudentExamRecordId()); + List recordCoList = studentExamRecordItemCoConvertor.converDOsToCOs(recordList); + studentExamRecordCO.setExamRecordItemList(recordCoList); + return SingleResponse.of(studentExamRecordCO); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java index 7ec13e5..5f3ee47 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentQueryExe.java @@ -1,15 +1,23 @@ package com.zcloud.edu.command.query.study; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.command.convertor.study.StudentCoConvertor; +import com.zcloud.edu.domain.model.archives.PersonArchivesE; +import com.zcloud.edu.domain.model.study.*; +import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.clientobject.study.StudentCO; +import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; import com.zcloud.edu.dto.study.StudentPageQry; -import com.zcloud.edu.persistence.dataobject.study.StudentDO; -import com.zcloud.edu.persistence.repository.study.StudentRepository; +import com.zcloud.edu.persistence.dataobject.study.*; +import com.zcloud.edu.persistence.repository.study.*; import com.zcloud.gbscommon.utils.PageQueryHelper; import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Component; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -25,6 +33,10 @@ import java.util.Map; public class StudentQueryExe { private final StudentRepository studentRepository; private final StudentCoConvertor studentCoConvertor; + private final ClassRepository classRepository; + private final ClassCurriculumRepository classCurriculumRepository; + private final ClassCurriculumChapterRepository classCurriculumChapterRepository; + private final StudentSignRepository studentSignRepository; /** * 分页 @@ -38,5 +50,89 @@ public class StudentQueryExe { List examCenterCOS = studentCoConvertor.converDOsToCOs(pageResponse.getData()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + + public SingleResponse executeAttendanceRecord(ClassArchivesQry qry){ + StudentDO studentDO = studentRepository.getById(qry.getStuId()); + StudentE studentE = new StudentE(); + BeanUtils.copyProperties(studentDO, studentE); + ClassDO classDO = classRepository.getByClassId(studentDO.getClassId()); + ClassE classE = new ClassE(); + BeanUtils.copyProperties(classDO, classE); + + // 课程信息 + ClassCurriculumE classCurriculumE = new ClassCurriculumE(); + Map params = classCurriculumE.initListAllParams(studentDO.getClassId()); + List curEList = classCurriculumRepository.listAll(params); + List classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class); + + // 课件信息 + List classChapterList = classCurriculumChapterRepository.listVideoByClassId(classE.getClassId()); + List classChapterEList = BeanUtil.copyToList(classChapterList, ClassCurriculumChapterE.class); + + + PersonArchivesE personArchivesE = new PersonArchivesE(); + personArchivesE.initAttendanceRecord(studentE, classE, classChapterEList, classCurList); + PersonArchivesDTO personArchivesDTO = new PersonArchivesDTO(); + BeanUtils.copyProperties(personArchivesE, personArchivesDTO); + return SingleResponse.of(personArchivesDTO); + } + + public SingleResponse executeStudyArchives(ClassArchivesQry qry){ + // 学员信息 + StudentDO studentDO = studentRepository.getById(qry.getStuId()); + StudentDO studentUrl = studentRepository.findFaceUrlByPhone(studentDO.getPhone()); + StudentE studentE = new StudentE(); + studentE.setUserAvatarUrl(studentUrl.getUserAvatarUrl()); + BeanUtils.copyProperties(studentDO, studentE); + // 班级信息 + ClassDO classDO = classRepository.getByClassId(studentDO.getClassId()); + ClassE classE = new ClassE(); + BeanUtils.copyProperties(classDO, classE); + + // 课程信息 + ClassCurriculumE classCurriculumE = new ClassCurriculumE(); + Map params = classCurriculumE.initListAllParams(studentDO.getClassId()); + List curEList = classCurriculumRepository.listAll(params); + List classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class); + + PersonArchivesE personArchivesE = new PersonArchivesE(); + personArchivesE.init(studentE, classE, classCurList); + + + PersonArchivesDTO personArchivesDTO = new PersonArchivesDTO(); + BeanUtils.copyProperties(personArchivesE, personArchivesDTO); + + return SingleResponse.of(personArchivesDTO); + } + + + + + public SingleResponse executeStudyRecord(ClassArchivesQry qry){ + StudentDO studentDO = studentRepository.getById(qry.getStuId()); + StudentE studentE = new StudentE(); + BeanUtils.copyProperties(studentDO, studentE); + ClassDO classDO = classRepository.getByClassId(studentDO.getClassId()); + ClassE classE = new ClassE(); + BeanUtils.copyProperties(classDO, classE); + + // 课程信息 + ClassCurriculumE classCurriculumE = new ClassCurriculumE(); + Map params = classCurriculumE.initListAllParams(studentDO.getClassId()); + List curEList = classCurriculumRepository.listAll(params); + List classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class); + + // 签到照片 + params.put("studentId", studentDO.getStudentId()); + List studentSignList = studentSignRepository.listAllByStudentId(params); + List studentSignEList = BeanUtil.copyToList(studentSignList, StudentSignE.class); + + + PersonArchivesE personArchivesE = new PersonArchivesE(); + personArchivesE.initStudyRecord(studentE, classE, studentSignEList, classCurList); + PersonArchivesDTO personArchivesDTO = new PersonArchivesDTO(); + BeanUtils.copyProperties(personArchivesE, personArchivesDTO); + return SingleResponse.of(personArchivesDTO); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentSignQueryExe.java b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentSignQueryExe.java index b9bef72..4813f1a 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentSignQueryExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/query/study/StudentSignQueryExe.java @@ -3,8 +3,10 @@ package com.zcloud.edu.command.query.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.command.convertor.study.StudentSignCoConvertor; import com.zcloud.edu.domain.model.study.ClassE; +import com.zcloud.edu.dto.clientobject.study.StudentCO; import com.zcloud.edu.dto.clientobject.study.StudentSignCO; import com.zcloud.edu.dto.study.ClassAppSignQry; import com.zcloud.edu.dto.study.StudentSignPageQry; @@ -65,7 +67,7 @@ public class StudentSignQueryExe { } - public Response executeVerify(StudentSignVerifyQry qry) { + public SingleResponse executeVerify(StudentSignVerifyQry qry) { ClassDO classDO = classRepository.getByClassId(qry.getClassId()); ClassE classE = new ClassE(); BeanUtils.copyProperties(classDO, classE); @@ -78,7 +80,7 @@ public class StudentSignQueryExe { throw new RuntimeException("您已经完成此班级的学习"); } Map params = new HashMap<>(); - params.put("student_id", studentDO.getStudentId()); + params.put("studentId", studentDO.getStudentId()); params.put("type", qry.getType()); if (qry.getType() == 1){ List list = studentSignRepository.listAllByStudentId(params); @@ -91,7 +93,9 @@ public class StudentSignQueryExe { throw new RuntimeException("您已经没有考试次数"); } } - return MultiResponse.buildSuccess(); + StudentCO studentCO = new StudentCO(); + BeanUtils.copyProperties(studentDO, studentCO); + return SingleResponse.of(studentCO); } } diff --git a/web-app/src/main/java/com/zcloud/edu/command/study/StudentSignAddExe.java b/web-app/src/main/java/com/zcloud/edu/command/study/StudentSignAddExe.java index 9fa9840..6cd2fb3 100644 --- a/web-app/src/main/java/com/zcloud/edu/command/study/StudentSignAddExe.java +++ b/web-app/src/main/java/com/zcloud/edu/command/study/StudentSignAddExe.java @@ -3,9 +3,12 @@ package com.zcloud.edu.command.study; import com.alibaba.cola.exception.BizException; import com.zcloud.edu.domain.gateway.study.StudentSignGateway; import com.zcloud.edu.domain.model.study.StudentSignE; +import com.zcloud.edu.dto.clientobject.study.StudentSignCO; import com.zcloud.edu.dto.study.StudentSignAddCmd; import com.zcloud.edu.persistence.dataobject.study.StudentDO; import com.zcloud.edu.persistence.repository.study.StudentRepository; +import com.zcloud.gbscommon.utils.Base64Util; +import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.zcloudimgfiles.facade.ZcloudImgFilesFacade; import lombok.AllArgsConstructor; import org.apache.dubbo.config.annotation.DubboReference; @@ -14,6 +17,8 @@ import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; +import java.io.IOException; + /** * web-app @@ -30,33 +35,39 @@ public class StudentSignAddExe { private ZcloudImgFilesFacade zcloudImgFilesFacade; @Transactional(rollbackFor = Exception.class) - public boolean execute(StudentSignAddCmd cmd) { - + public StudentSignCO execute(StudentSignAddCmd cmd) { + StudentDO stu = studentRepository.findInfoByStudentId(cmd.getStudentId()); StudentSignE studentSignE = new StudentSignE(); BeanUtils.copyProperties(cmd, studentSignE); - StudentDO student = studentRepository.findFaceUrlByPhone(studentSignE.getPhone()); + StudentDO student = studentRepository.findFaceUrlByPhone(stu.getPhone()); if (student == null || ObjectUtils.isEmpty(student.getUserAvatarUrl())) { throw new RuntimeException("您还没有录入人脸"); } + String faceUrl = null; try { - studentSignE.compareFace(student.getUserAvatarUrl()); + faceUrl = Base64Util.getBase64String(studentSignE.getFiles()[0]); + studentSignE.compareFace(student.getUserAvatarUrl(), faceUrl); } catch (Exception e) { throw new RuntimeException(e); } String path = studentSignE.getType() == 1 ? "clockSign" : "examSign"; - studentSignE.setFaceUrl(zcloudImgFilesFacade.saveFile(studentSignE.getFiles()[0], path)); + String fileName = Tools.get32UUID() + studentSignE.getFiles()[0].getOriginalFilename().substring(studentSignE.getFiles()[0].getOriginalFilename().lastIndexOf(".")); + studentSignE.setFaceUrl(zcloudImgFilesFacade.saveFile( faceUrl,fileName, path)); + studentSignE.init(stu.getStudentId(), stu.getClassId(), stu.getClassCorpinfoId()); boolean res = false; + StudentSignCO studentSignCO = new StudentSignCO(); try { res = studentSignGateway.add(studentSignE); + BeanUtils.copyProperties(studentSignE, studentSignCO); } catch (Exception e) { throw new RuntimeException(e); } if (!res) { throw new BizException("保存失败"); } - return true; + return studentSignCO; } } diff --git a/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesReviewRecordServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesReviewRecordServiceImpl.java new file mode 100644 index 0000000..e6b0968 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesReviewRecordServiceImpl.java @@ -0,0 +1,59 @@ +package com.zcloud.edu.service.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.edu.api.archives.ArchivesReviewRecordServiceI; +import com.zcloud.edu.command.archives.ArchivesReviewRecordAddExe; +import com.zcloud.edu.command.archives.ArchivesReviewRecordRemoveExe; +import com.zcloud.edu.command.archives.ArchivesReviewRecordUpdateExe; +import com.zcloud.edu.command.query.archives.ArchivesReviewRecordQueryExe; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordPageQry; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordUpdateCmd; +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewRecordCO; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +@Service +@AllArgsConstructor +public class ArchivesReviewRecordServiceImpl implements ArchivesReviewRecordServiceI { + private final ArchivesReviewRecordAddExe archivesReviewRecordAddExe; + private final ArchivesReviewRecordUpdateExe archivesReviewRecordUpdateExe; + private final ArchivesReviewRecordRemoveExe archivesReviewRecordRemoveExe; + private final ArchivesReviewRecordQueryExe archivesReviewRecordQueryExe; + + @Override + public PageResponse listPage(ArchivesReviewRecordPageQry qry) { + + return archivesReviewRecordQueryExe.execute(qry); + } + + @Override + public SingleResponse add(ArchivesReviewRecordAddCmd cmd) { + + archivesReviewRecordAddExe.execute(cmd); + return SingleResponse.buildSuccess(); + } + + @Override + public void edit(ArchivesReviewRecordUpdateCmd archivesReviewRecordUpdateCmd) { + archivesReviewRecordUpdateExe.execute(archivesReviewRecordUpdateCmd); + } + + @Override + public void remove(Long id) { + archivesReviewRecordRemoveExe.execute(id); + } + + @Override + public void removeBatch(Long[] ids) { + archivesReviewRecordRemoveExe.execute(ids); + } +} + diff --git a/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesReviewServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesReviewServiceImpl.java new file mode 100644 index 0000000..c2172c8 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/edu/service/archives/ArchivesReviewServiceImpl.java @@ -0,0 +1,59 @@ +package com.zcloud.edu.service.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.edu.api.archives.ArchivesReviewServiceI; +import com.zcloud.edu.command.archives.ArchivesReviewAddExe; +import com.zcloud.edu.command.archives.ArchivesReviewRemoveExe; +import com.zcloud.edu.command.archives.ArchivesReviewUpdateExe; +import com.zcloud.edu.command.query.archives.ArchivesReviewQueryExe; +import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd; +import com.zcloud.edu.dto.archives.ArchivesReviewPageQry; +import com.zcloud.edu.dto.archives.ArchivesReviewUpdateCmd; +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * web-app + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +@Service +@AllArgsConstructor +public class ArchivesReviewServiceImpl implements ArchivesReviewServiceI { + private final ArchivesReviewAddExe archivesReviewAddExe; + private final ArchivesReviewUpdateExe archivesReviewUpdateExe; + private final ArchivesReviewRemoveExe archivesReviewRemoveExe; + private final ArchivesReviewQueryExe archivesReviewQueryExe; + + @Override + public PageResponse listPage(ArchivesReviewPageQry qry) { + + return archivesReviewQueryExe.execute(qry); + } + + @Override + public SingleResponse add(ArchivesReviewAddCmd cmd) { + + archivesReviewAddExe.execute(cmd); + return SingleResponse.buildSuccess(); + } + + @Override + public void edit(ArchivesReviewUpdateCmd archivesReviewUpdateCmd) { + archivesReviewUpdateExe.execute(archivesReviewUpdateCmd); + } + + @Override + public void remove(Long id) { + archivesReviewRemoveExe.execute(id); + } + + @Override + public void removeBatch(Long[] ids) { + archivesReviewRemoveExe.execute(ids); + } +} + 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 eac4ad1..dcf0c0e 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 @@ -9,12 +9,10 @@ import com.zcloud.edu.command.study.ClassAddExe; import com.zcloud.edu.command.study.ClassRemoveExe; import com.zcloud.edu.command.study.ClassUpdateExe; import com.zcloud.edu.dto.clientobject.study.ClassCO; +import com.zcloud.edu.dto.clientobject.study.StudentCO; import com.zcloud.edu.dto.data.study.ClassCountDTO; 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 com.zcloud.edu.dto.study.*; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -85,5 +83,10 @@ public class ClassServiceImpl implements ClassServiceI { public SingleResponse statisticsCount(ClassPageQry qry) { return classQueryExe.executeStatisticsCount(qry); } + + @Override + public MultiResponse countStuClass(ClassCountQry qry) { + return classQueryExe.executeCountStuClass(qry); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/service/study/StudentExamRecordServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/study/StudentExamRecordServiceImpl.java index 2bd75d0..0fa3bd3 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/study/StudentExamRecordServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/study/StudentExamRecordServiceImpl.java @@ -55,5 +55,10 @@ public class StudentExamRecordServiceImpl implements StudentExamRecordServiceI { public void removeBatch(Long[] ids) { studentExamRecordRemoveExe.execute(ids); } + + @Override + public SingleResponse getInfoByStudentId(String studentId) { + return studentExamRecordQueryExe.executeGetInfoByStudentId(studentId); + } } 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 47ec3a4..ec56ea2 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 @@ -7,7 +7,9 @@ import com.zcloud.edu.command.query.study.StudentQueryExe; import com.zcloud.edu.command.study.StudentAddExe; import com.zcloud.edu.command.study.StudentRemoveExe; import com.zcloud.edu.command.study.StudentUpdateExe; +import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.clientobject.study.StudentCO; +import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; import com.zcloud.edu.dto.study.StudentAddCmd; import com.zcloud.edu.dto.study.StudentPageQry; import com.zcloud.edu.dto.study.StudentUpdateCmd; @@ -57,5 +59,19 @@ public class StudentServiceImpl implements StudentServiceI { public void removeBatch(Long[] ids) { studentRemoveExe.execute(ids); } + + @Override + public SingleResponse getAttendanceRecord(ClassArchivesQry qry) { + return studentQueryExe.executeAttendanceRecord(qry); + } + @Override + public SingleResponse getStudyArchives(ClassArchivesQry qry) { + return studentQueryExe.executeStudyArchives(qry); + } + + @Override + public SingleResponse getStudyRecord(ClassArchivesQry qry) { + return studentQueryExe.executeStudyRecord(qry); + } } diff --git a/web-app/src/main/java/com/zcloud/edu/service/study/StudentSignServiceImpl.java b/web-app/src/main/java/com/zcloud/edu/service/study/StudentSignServiceImpl.java index 518e30c..007e05a 100644 --- a/web-app/src/main/java/com/zcloud/edu/service/study/StudentSignServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/edu/service/study/StudentSignServiceImpl.java @@ -9,6 +9,7 @@ import com.zcloud.edu.command.query.study.StudentSignQueryExe; import com.zcloud.edu.command.study.StudentSignAddExe; import com.zcloud.edu.command.study.StudentSignRemoveExe; import com.zcloud.edu.command.study.StudentSignUpdateExe; +import com.zcloud.edu.dto.clientobject.study.StudentCO; import com.zcloud.edu.dto.clientobject.study.StudentSignCO; import com.zcloud.edu.dto.study.*; import lombok.AllArgsConstructor; @@ -35,10 +36,9 @@ public class StudentSignServiceImpl implements StudentSignServiceI { } @Override - public SingleResponse add(StudentSignAddCmd cmd) { + public SingleResponse add(StudentSignAddCmd cmd) { - studentSignAddExe.execute(cmd); - return SingleResponse.buildSuccess(); + return SingleResponse.of(studentSignAddExe.execute(cmd)); } @Override @@ -62,7 +62,7 @@ public class StudentSignServiceImpl implements StudentSignServiceI { } @Override - public Response verify(StudentSignVerifyQry qry) { + public SingleResponse verify(StudentSignVerifyQry qry) { return studentSignQueryExe.executeVerify(qry); } } diff --git a/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesReviewRecordServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesReviewRecordServiceI.java new file mode 100644 index 0000000..db51053 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesReviewRecordServiceI.java @@ -0,0 +1,27 @@ +package com.zcloud.edu.api.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordPageQry; +import com.zcloud.edu.dto.archives.ArchivesReviewRecordUpdateCmd; +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewRecordCO; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +public interface ArchivesReviewRecordServiceI { + PageResponse listPage(ArchivesReviewRecordPageQry qry); + + SingleResponse add(ArchivesReviewRecordAddCmd cmd); + + void edit(ArchivesReviewRecordUpdateCmd cmd); + + void remove(Long id); + + void removeBatch(Long[] ids); +} + diff --git a/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesReviewServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesReviewServiceI.java new file mode 100644 index 0000000..20d85d9 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/api/archives/ArchivesReviewServiceI.java @@ -0,0 +1,27 @@ +package com.zcloud.edu.api.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd; +import com.zcloud.edu.dto.archives.ArchivesReviewPageQry; +import com.zcloud.edu.dto.archives.ArchivesReviewUpdateCmd; +import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +public interface ArchivesReviewServiceI { + PageResponse listPage(ArchivesReviewPageQry qry); + + SingleResponse add(ArchivesReviewAddCmd cmd); + + void edit(ArchivesReviewUpdateCmd cmd); + + void remove(Long id); + + void removeBatch(Long[] ids); +} + 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 9ee2211..f84fd0e 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 @@ -4,12 +4,10 @@ import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; import com.zcloud.edu.dto.clientobject.study.ClassCO; +import com.zcloud.edu.dto.clientobject.study.StudentCO; import com.zcloud.edu.dto.data.study.ClassCountDTO; 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 com.zcloud.edu.dto.study.*; /** * web-client @@ -40,5 +38,7 @@ public interface ClassServiceI { PageResponse appListPage(ClassPageQry qry); SingleResponse statisticsCount(ClassPageQry qry); + + MultiResponse countStuClass(ClassCountQry qry); } diff --git a/web-client/src/main/java/com/zcloud/edu/api/study/StudentExamRecordServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/study/StudentExamRecordServiceI.java index 98fcb45..d6d2c93 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/study/StudentExamRecordServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/study/StudentExamRecordServiceI.java @@ -23,5 +23,7 @@ public interface StudentExamRecordServiceI { void remove(Long id); void removeBatch(Long[] ids); + + SingleResponse getInfoByStudentId(String studentId); } 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 a74ade3..850bb32 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 @@ -2,7 +2,9 @@ package com.zcloud.edu.api.study; import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.edu.dto.archives.ClassArchivesQry; import com.zcloud.edu.dto.clientobject.study.StudentCO; +import com.zcloud.edu.dto.data.archives.PersonArchivesDTO; import com.zcloud.edu.dto.study.StudentAddCmd; import com.zcloud.edu.dto.study.StudentPageQry; import com.zcloud.edu.dto.study.StudentUpdateCmd; @@ -25,5 +27,11 @@ public interface StudentServiceI { void remove(Long id); void removeBatch(Long[] ids); + + SingleResponse getAttendanceRecord(ClassArchivesQry qry); + + SingleResponse getStudyArchives(ClassArchivesQry qry); + + SingleResponse getStudyRecord(ClassArchivesQry qry); } diff --git a/web-client/src/main/java/com/zcloud/edu/api/study/StudentSignServiceI.java b/web-client/src/main/java/com/zcloud/edu/api/study/StudentSignServiceI.java index 4640f7e..e3ac1a0 100644 --- a/web-client/src/main/java/com/zcloud/edu/api/study/StudentSignServiceI.java +++ b/web-client/src/main/java/com/zcloud/edu/api/study/StudentSignServiceI.java @@ -4,6 +4,7 @@ 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.dto.clientobject.study.StudentCO; import com.zcloud.edu.dto.clientobject.study.StudentSignCO; import com.zcloud.edu.dto.study.*; @@ -26,6 +27,6 @@ public interface StudentSignServiceI { MultiResponse listAll(ClassAppSignQry qry); - Response verify(StudentSignVerifyQry qry); + SingleResponse verify(StudentSignVerifyQry qry); } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewAddCmd.java new file mode 100644 index 0000000..8d071fa --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewAddCmd.java @@ -0,0 +1,77 @@ +package com.zcloud.edu.dto.archives; + +import com.alibaba.cola.dto.Command; +import com.fasterxml.jackson.annotation.JsonFormat; +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; +import java.time.LocalDateTime; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-26 10:59:34 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ArchivesReviewAddCmd extends Command { + @ApiModelProperty(value = "业务id", name = "archivesReviewId", required = true) + @NotEmpty(message = "业务id不能为空") + private String archivesReviewId; + + @ApiModelProperty(value = "课程id", name = "classCurriculumId", required = true) + @NotEmpty(message = "课程id不能为空") + private String classCurriculumId; + + @ApiModelProperty(value = "班级id", name = "classId", required = true) + @NotEmpty(message = "班级id不能为空") + private String classId; + + @ApiModelProperty(value = "初版书号", name = "bookNum", required = true) + @NotEmpty(message = "初版书号不能为空") + private String bookNum; + + @ApiModelProperty(value = "班级所属企业id", name = "corpinfoId", required = true) + @NotNull(message = "班级所属企业id不能为空") + private Integer corpinfoId; + + @ApiModelProperty(value = "编写单位", name = "corpName", required = true) + @NotEmpty(message = "编写单位不能为空") + private String corpName; + + @ApiModelProperty(value = "编写时间", name = "writeDate", required = true) + @NotNull(message = "编写时间不能为空") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime writeDate; + + @ApiModelProperty(value = "教材类型", name = "materialType", required = true) + @NotEmpty(message = "教材类型不能为空") + private String materialType; + + @ApiModelProperty(value = "会审地点", name = "address", required = true) + @NotEmpty(message = "会审地点不能为空") + private String address; + + @ApiModelProperty(value = "主持人", name = "compere", required = true) + @NotEmpty(message = "主持人不能为空") + private String compere; + + @ApiModelProperty(value = "会审时间", name = "auditDate", required = true) + @NotNull(message = "会审时间不能为空") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime auditDate; + + @ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true) + @NotEmpty(message = "会审意见不能为空") + private String reviewOpinions; + +} + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewPageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewPageQry.java new file mode 100644 index 0000000..946e24d --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewPageQry.java @@ -0,0 +1,28 @@ +package com.zcloud.edu.dto.archives; + +import com.alibaba.cola.dto.PageQuery; +import lombok.Data; + + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +@Data +public class ArchivesReviewPageQry extends PageQuery { + + /** + * 查询条件操作前缀,支持以下几种数据库查询操作: + * - `like`: 模糊匹配查询,对应SQL的LIKE操作符 + * - `eq`: 等值查询,对应SQL的=操作符 + * - `gt`: 大于比较查询 + * - `lt`: 小于比较查询 + * - `ge`: 大于等于比较查询 + * - `le`: 小于等于比较查询 + * - `ne`: 不等比较查询,对应SQL的!=操作符 + */ + private String likeArchivesReviewId; +} + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewRecordAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewRecordAddCmd.java new file mode 100644 index 0000000..c0d31b4 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewRecordAddCmd.java @@ -0,0 +1,48 @@ +package com.zcloud.edu.dto.archives; + +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; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-26 10:59:36 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ArchivesReviewRecordAddCmd extends Command { + @ApiModelProperty(value = "业务id", name = "archivesReviewRecordId", required = true) + @NotEmpty(message = "业务id不能为空") + private String archivesReviewRecordId; + + @ApiModelProperty(value = "会审表id", name = "archivesReviewId", required = true) + @NotEmpty(message = "会审表id不能为空") + private String archivesReviewId; + + @ApiModelProperty(value = "会审人员", name = "reviewUser", required = true) + @NotEmpty(message = "会审人员不能为空") + private String reviewUser; + + @ApiModelProperty(value = "工作部门", name = "department", required = true) + @NotEmpty(message = "工作部门不能为空") + private String department; + + @ApiModelProperty(value = "职务/职称", name = "duties", required = true) + @NotEmpty(message = "职务/职称不能为空") + private String duties; + + @ApiModelProperty(value = "审查意见", name = "checkOpinion", required = true) + @NotEmpty(message = "审查意见不能为空") + private String checkOpinion; + +} + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewRecordPageQry.java b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewRecordPageQry.java new file mode 100644 index 0000000..a828849 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewRecordPageQry.java @@ -0,0 +1,28 @@ +package com.zcloud.edu.dto.archives; + +import com.alibaba.cola.dto.PageQuery; +import lombok.Data; + + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +@Data +public class ArchivesReviewRecordPageQry extends PageQuery { + + /** + * 查询条件操作前缀,支持以下几种数据库查询操作: + * - `like`: 模糊匹配查询,对应SQL的LIKE操作符 + * - `eq`: 等值查询,对应SQL的=操作符 + * - `gt`: 大于比较查询 + * - `lt`: 小于比较查询 + * - `ge`: 大于等于比较查询 + * - `le`: 小于等于比较查询 + * - `ne`: 不等比较查询,对应SQL的!=操作符 + */ + private String likeArchivesReviewRecordId; +} + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewRecordUpdateCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewRecordUpdateCmd.java new file mode 100644 index 0000000..e09c9d5 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewRecordUpdateCmd.java @@ -0,0 +1,46 @@ +package com.zcloud.edu.dto.archives; + +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-26 10:59:37 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ArchivesReviewRecordUpdateCmd extends Command { + @ApiModelProperty(value = "主键", name = "id", required = true) + @NotNull(message = "主键不能为空") + private Long id; + @ApiModelProperty(value = "业务id", name = "archivesReviewRecordId", required = true) + @NotEmpty(message = "业务id不能为空") + private String archivesReviewRecordId; + @ApiModelProperty(value = "会审表id", name = "archivesReviewId", required = true) + @NotEmpty(message = "会审表id不能为空") + private String archivesReviewId; + @ApiModelProperty(value = "会审人员", name = "reviewUser", required = true) + @NotEmpty(message = "会审人员不能为空") + private String reviewUser; + @ApiModelProperty(value = "工作部门", name = "department", required = true) + @NotEmpty(message = "工作部门不能为空") + private String department; + @ApiModelProperty(value = "职务/职称", name = "duties", required = true) + @NotEmpty(message = "职务/职称不能为空") + private String duties; + @ApiModelProperty(value = "审查意见", name = "checkOpinion", required = true) + @NotEmpty(message = "审查意见不能为空") + private String checkOpinion; +} + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewUpdateCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewUpdateCmd.java new file mode 100644 index 0000000..313ec90 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/archives/ArchivesReviewUpdateCmd.java @@ -0,0 +1,68 @@ +package com.zcloud.edu.dto.archives; + +import com.alibaba.cola.dto.Command; +import com.fasterxml.jackson.annotation.JsonFormat; +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; +import java.time.LocalDateTime; + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ArchivesReviewUpdateCmd extends Command { + @ApiModelProperty(value = "${column.comment}", name = "id", required = true) + @NotNull(message = "${column.comment}不能为空") + private Long id; + @ApiModelProperty(value = "业务id", name = "archivesReviewId", required = true) + @NotEmpty(message = "业务id不能为空") + private String archivesReviewId; + @ApiModelProperty(value = "课程id", name = "classCurriculumId", required = true) + @NotEmpty(message = "课程id不能为空") + private String classCurriculumId; + @ApiModelProperty(value = "班级id", name = "classId", required = true) + @NotEmpty(message = "班级id不能为空") + private String classId; + @ApiModelProperty(value = "初版书号", name = "bookNum", required = true) + @NotEmpty(message = "初版书号不能为空") + private String bookNum; + @ApiModelProperty(value = "班级所属企业id", name = "corpinfoId", required = true) + @NotNull(message = "班级所属企业id不能为空") + private Integer corpinfoId; + @ApiModelProperty(value = "编写单位", name = "corpName", required = true) + @NotEmpty(message = "编写单位不能为空") + private String corpName; + @ApiModelProperty(value = "编写时间", name = "writeDate", required = true) + @NotNull(message = "编写时间不能为空") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime writeDate; + @ApiModelProperty(value = "教材类型", name = "materialType", required = true) + @NotEmpty(message = "教材类型不能为空") + private String materialType; + @ApiModelProperty(value = "会审地点", name = "address", required = true) + @NotEmpty(message = "会审地点不能为空") + private String address; + @ApiModelProperty(value = "主持人", name = "compere", required = true) + @NotEmpty(message = "主持人不能为空") + private String compere; + @ApiModelProperty(value = "会审时间", name = "auditDate", required = true) + @NotNull(message = "会审时间不能为空") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime auditDate; + @ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true) + @NotEmpty(message = "会审意见不能为空") + private String reviewOpinions; +} + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/archives/ClassArchivesQry.java b/web-client/src/main/java/com/zcloud/edu/dto/archives/ClassArchivesQry.java new file mode 100644 index 0000000..8d95f2d --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/archives/ClassArchivesQry.java @@ -0,0 +1,30 @@ +package com.zcloud.edu.dto.archives; + +import com.alibaba.cola.dto.PageQuery; +import lombok.Data; + + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-13 14:18:12 + */ +@Data +public class ClassArchivesQry { + + /** + * 查询条件操作前缀,支持以下几种数据库查询操作: + * - `like`: 模糊匹配查询,对应SQL的LIKE操作符 + * - `eq`: 等值查询,对应SQL的=操作符 + * - `gt`: 大于比较查询 + * - `lt`: 小于比较查询 + * - `ge`: 大于等于比较查询 + * - `le`: 小于等于比较查询 + * - `ne`: 不等比较查询,对应SQL的!=操作符 + */ + private Long stuId; + private String studentId; + +} + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewCO.java new file mode 100644 index 0000000..9110a79 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewCO.java @@ -0,0 +1,97 @@ +package com.zcloud.edu.dto.clientobject.archives; + +import com.alibaba.cola.dto.ClientObject; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-26 10:59:34 + */ +@Data +public class ArchivesReviewCO extends ClientObject { + private Long id; + //业务id + @ApiModelProperty(value = "业务id") + private String archivesReviewId; + //课程id + @ApiModelProperty(value = "课程id") + private String classCurriculumId; + //班级id + @ApiModelProperty(value = "班级id") + private String classId; + //初版书号 + @ApiModelProperty(value = "初版书号") + private String bookNum; + //班级所属企业id + @ApiModelProperty(value = "班级所属企业id") + private Integer corpinfoId; + //编写单位 + @ApiModelProperty(value = "编写单位") + private String corpName; + //编写时间 + @ApiModelProperty(value = "编写时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime writeDate; + //教材类型 + @ApiModelProperty(value = "教材类型") + private String materialType; + //会审地点 + @ApiModelProperty(value = "会审地点") + private String address; + //主持人 + @ApiModelProperty(value = "主持人") + private String compere; + //会审时间 + @ApiModelProperty(value = "会审时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime auditDate; + //会审意见 + @ApiModelProperty(value = "会审意见") + private String reviewOpinions; + //删除标识true false + @ApiModelProperty(value = "删除标识true false") + private String deleteEnum; + //备注 + @ApiModelProperty(value = "备注") + private String remarks; + //创建人姓名 + @ApiModelProperty(value = "创建人姓名") + private String createName; + //更新人姓名 + @ApiModelProperty(value = "更新人姓名") + private String updateName; + //租户id + @ApiModelProperty(value = "租户id") + private Long tenantId; + //单位id + @ApiModelProperty(value = "单位id") + private Long orgId; + //版本 + @ApiModelProperty(value = "版本") + private Integer version; + //创建时间 + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime createTime; + //修改时间 + @ApiModelProperty(value = "修改时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime updateTime; + //创建人id + @ApiModelProperty(value = "创建人id") + private Long createId; + //修改人id + @ApiModelProperty(value = "修改人id") + private Long updateId; + //环境 + @ApiModelProperty(value = "环境") + private String env; +} + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewRecordCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewRecordCO.java new file mode 100644 index 0000000..c3294d5 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/archives/ArchivesReviewRecordCO.java @@ -0,0 +1,79 @@ +package com.zcloud.edu.dto.clientobject.archives; + +import com.alibaba.cola.dto.ClientObject; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-26 10:59:36 + */ +@Data +public class ArchivesReviewRecordCO extends ClientObject { + //主键 + @ApiModelProperty(value = "主键") + private Long id; + //业务id + @ApiModelProperty(value = "业务id") + private String archivesReviewRecordId; + //会审表id + @ApiModelProperty(value = "会审表id") + private String archivesReviewId; + //会审人员 + @ApiModelProperty(value = "会审人员") + private String reviewUser; + //工作部门 + @ApiModelProperty(value = "工作部门") + private String department; + //职务/职称 + @ApiModelProperty(value = "职务/职称") + private String duties; + //审查意见 + @ApiModelProperty(value = "审查意见") + private String checkOpinion; + //删除标识true false + @ApiModelProperty(value = "删除标识true false") + private String deleteEnum; + //备注 + @ApiModelProperty(value = "备注") + private String remarks; + //创建人姓名 + @ApiModelProperty(value = "创建人姓名") + private String createName; + //更新人姓名 + @ApiModelProperty(value = "更新人姓名") + private String updateName; + //租户id + @ApiModelProperty(value = "租户id") + private Long tenantId; + //单位id + @ApiModelProperty(value = "单位id") + private Long orgId; + //版本 + @ApiModelProperty(value = "版本") + private Integer version; + //创建时间 + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime createTime; + //修改时间 + @ApiModelProperty(value = "修改时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime updateTime; + //创建人id + @ApiModelProperty(value = "创建人id") + private Long createId; + //修改人id + @ApiModelProperty(value = "修改人id") + private Long updateId; + //环境 + @ApiModelProperty(value = "环境") + private String env; +} + 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 bd1f1b6..583f672 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 @@ -64,6 +64,14 @@ public class ClassCO extends ClientObject { //考试次数只有考试时候有用 @ApiModelProperty(value = "考试次数只有考试时候有用") private Integer numberofexams; + + + @ApiModelProperty(value = "学员id(雪花)") + private Long stuId; + + @ApiModelProperty(value = "学员id(uuid)") + private String studentId; + //删除标识true false @ApiModelProperty(value = "删除标识true false") private String deleteEnum; 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 7711494..14d0413 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 @@ -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 lombok.Data; @@ -95,6 +96,18 @@ public class StudentCO extends ClientObject { //项目名称集合 @ApiModelProperty(value = "项目名称集合") private String projectNames; + + + + @ApiModelProperty(value = "班级数") + @TableField(exist = false) + private Integer classCount; + + @ApiModelProperty(value = "完成班级数") + @TableField(exist = false) + private Integer completeClassCount; + + //环境 @ApiModelProperty(value = "环境") private String env; diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamRecordCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamRecordCO.java index 08e7e85..5d48ccf 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamRecordCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentExamRecordCO.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDateTime; +import java.util.List; /** @@ -59,6 +60,13 @@ public class StudentExamRecordCO extends ClientObject { //考试结果 0 -不通过 1-通过 @ApiModelProperty(value = "考试结果 0 -不通过 1-通过") private Integer result; + + @ApiModelProperty(value = "考试签字") + private String signUrl; + + @ApiModelProperty(value = "试题集合") + private List examRecordItemList; + //环境 @ApiModelProperty(value = "环境") private String env; diff --git a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentSignCO.java b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentSignCO.java index 4b76477..13c4c33 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentSignCO.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/clientobject/study/StudentSignCO.java @@ -35,6 +35,11 @@ public class StudentSignCO extends ClientObject { //签到人脸路径 @ApiModelProperty(value = "签到人脸路径") private String faceUrl; + + //打卡签字路径 + @ApiModelProperty(value = "打卡签字路径") + private String signUrl; + //签到类型 1-打卡签到 2-人脸签到 @ApiModelProperty(value = "签到类型 1-打卡签到 2-人脸签到") private Integer type; diff --git a/web-client/src/main/java/com/zcloud/edu/dto/data/archives/PersonArchivesDTO.java b/web-client/src/main/java/com/zcloud/edu/dto/data/archives/PersonArchivesDTO.java new file mode 100644 index 0000000..813278c --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/data/archives/PersonArchivesDTO.java @@ -0,0 +1,139 @@ +package com.zcloud.edu.dto.data.archives; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author zhangyue + * @date 2026/1/26 16:56 + */ +@Data +public class PersonArchivesDTO { + private Long stuId; + //业务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; + //学员所属班级的企业id + @ApiModelProperty(value = "学员所属班级的企业id") + private Long classCorpinfoId; + //手机号 + @ApiModelProperty(value = "手机号") + private String phone; + //身份证号 + @ApiModelProperty(value = "身份证号") + private String userIdCard; + //民族编码 + @ApiModelProperty(value = "民族编码") + private String nation; + //民族名称 + @ApiModelProperty(value = "民族名称") + private String nationName; + //人脸照片url + @ApiModelProperty(value = "人脸照片url") + private String userAvatarUrl; + //现住址 + @ApiModelProperty(value = "现住址") + private String currentAddress; + //户口所在地 + @ApiModelProperty(value = "户口所在地") + private String locationAddress; + //文化程度 数据字典 + @ApiModelProperty(value = "文化程度 数据字典") + private String culturalLevel; + //文化程度名称 + @ApiModelProperty(value = "文化程度名称") + private String culturalLevelName; + //婚姻状态 + @ApiModelProperty(value = "婚姻状态") + private String maritalStatus; + //婚姻状态名称 + @ApiModelProperty(value = "婚姻状态名称") + private String maritalStatusName; + //政治面貌 + @ApiModelProperty(value = "政治面貌") + private String politicalAffiliation; + //政治面貌名称 + @ApiModelProperty(value = "政治面貌名称") + private String politicalAffiliationName; + //岗位名称 + @ApiModelProperty(value = "岗位名称") + private String postName; + //签到状态 0-未签到 1-已签到 + @ApiModelProperty(value = "签到状态 0-未签到 1-已签到") + private Integer signFlag; + //考试签到状态 0-未签到 1-已签到 + @ApiModelProperty(value = "考试签到状态 0-未签到 1-已签到") + private Integer examSignFlag; + //学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过 + @ApiModelProperty(value = "学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过") + private Integer state; + + + //班级名称 + @ApiModelProperty(value = "班级名称") + private String className; + //培训日期 开始时间 + @ApiModelProperty(value = "培训日期 开始时间") + private String startTime; + //培训日期 结束日期 + @ApiModelProperty(value = "培训日期 结束日期") + private String endTime; + //培训教师id + @ApiModelProperty(value = "培训教师id") + private Long teacherId; + //教师名称 + @ApiModelProperty(value = "教师名称") + private String teacherName; + //培训行业类型 + @ApiModelProperty(value = "培训行业类型") + private String trainType; + //培训行业类型名称 + @ApiModelProperty(value = "培训行业类型名称") + private String trainTypeName; + //培训地点 + @ApiModelProperty(value = "培训地点") + private String trainingLocation; + //机构ID + @ApiModelProperty(value = "机构ID") + private Long corpinfoId; + //状态:1-未申请 2-待开班 3- 培训中 4-培训结束 + @ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ") + private Integer classState; + //培训有效期日期 开始时间 + @ApiModelProperty(value = "培训有效期日期 开始时间") + private String validStartTime; + //培训有效期日期 结束时间 + @ApiModelProperty(value = "培训有效期日期 结束时间") + private String validEndTime; + //1考试0不考试 + @ApiModelProperty(value = "1考试0不考试") + private Integer examination; + //考试次数只有考试时候有用 + @ApiModelProperty(value = "考试次数只有考试时候有用") + private Integer numberofexams; + @ApiModelProperty(value = "培训时长") + private Long trainDurationTime; + @ApiModelProperty(value = "培训科目") + private String trainSubject; + + @ApiModelProperty(value = "视频时长") + private BigDecimal videoTotalTime; + @ApiModelProperty(value = "课件数") + private Integer videoCount; + + @ApiModelProperty(value = "打卡签到人脸图片路径") + private String signFaceUrl; + @ApiModelProperty(value = "考试签到人脸图片路径") + private String examSignFaceUrl; +} diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassAppSignQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassAppSignQry.java index 7671c23..016d6f9 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassAppSignQry.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassAppSignQry.java @@ -25,6 +25,8 @@ public class ClassAppSignQry { */ private String classId; private String phone; + private Long stuId; + private String studentId; } diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCountQry.java b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCountQry.java new file mode 100644 index 0000000..8a74c70 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/ClassCountQry.java @@ -0,0 +1,31 @@ +package com.zcloud.edu.dto.study; + +import com.alibaba.cola.dto.PageQuery; +import lombok.Data; + +import java.util.List; + + +/** + * web-client + * + * @Author zhangyue + * @Date 2026-01-13 14:18:12 + */ +@Data +public class ClassCountQry { + + /** + * 查询条件操作前缀,支持以下几种数据库查询操作: + * - `like`: 模糊匹配查询,对应SQL的LIKE操作符 + * - `eq`: 等值查询,对应SQL的=操作符 + * - `gt`: 大于比较查询 + * - `lt`: 小于比较查询 + * - `ge`: 大于等于比较查询 + * - `le`: 小于等于比较查询 + * - `ne`: 不等比较查询,对应SQL的!=操作符 + */ + private List phones; + +} + diff --git a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentSignAddCmd.java b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentSignAddCmd.java index fd9b54a..e0f6bf0 100644 --- a/web-client/src/main/java/com/zcloud/edu/dto/study/StudentSignAddCmd.java +++ b/web-client/src/main/java/com/zcloud/edu/dto/study/StudentSignAddCmd.java @@ -24,9 +24,11 @@ import javax.validation.constraints.NotNull; public class StudentSignAddCmd extends Command { @ApiModelProperty(value = "班级id", name = "classId", required = true) - @NotEmpty(message = "班级id不能为空") private String classId; + @ApiModelProperty(value = "学员id", name = "studentId", required = true) + private String studentId; + @@ -35,7 +37,6 @@ public class StudentSignAddCmd extends Command { private Integer type; @ApiModelProperty(value = "手机号", name = "phone", required = true) - @NotEmpty(message = "手机号不能为空") private String phone; diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/gateway/archives/ArchivesReviewGateway.java b/web-domain/src/main/java/com/zcloud/edu/domain/gateway/archives/ArchivesReviewGateway.java new file mode 100644 index 0000000..bb4acfd --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/edu/domain/gateway/archives/ArchivesReviewGateway.java @@ -0,0 +1,31 @@ +package com.zcloud.edu.domain.gateway.archives; + + +import com.zcloud.edu.domain.model.archives.ArchivesReviewE; + +/** + * web-domain + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +public interface ArchivesReviewGateway { + + /** + * 新增 + */ + Boolean add(ArchivesReviewE archivesReviewE); + + /** + * 修改 + */ + Boolean update(ArchivesReviewE archivesReviewE); + + /** + * 删除 + */ + Boolean deletedArchivesReviewById(Long id); + + Boolean deletedArchivesReviewByIds(Long[] id); +} + diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/gateway/archives/ArchivesReviewRecordGateway.java b/web-domain/src/main/java/com/zcloud/edu/domain/gateway/archives/ArchivesReviewRecordGateway.java new file mode 100644 index 0000000..ac4d077 --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/edu/domain/gateway/archives/ArchivesReviewRecordGateway.java @@ -0,0 +1,31 @@ +package com.zcloud.edu.domain.gateway.archives; + + +import com.zcloud.edu.domain.model.archives.ArchivesReviewRecordE; + +/** + * web-domain + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +public interface ArchivesReviewRecordGateway { + + /** + * 新增 + */ + Boolean add(ArchivesReviewRecordE archivesReviewRecordE); + + /** + * 修改 + */ + Boolean update(ArchivesReviewRecordE archivesReviewRecordE); + + /** + * 删除 + */ + Boolean deletedArchivesReviewRecordById(Long id); + + Boolean deletedArchivesReviewRecordByIds(Long[] id); +} + diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesReviewE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesReviewE.java new file mode 100644 index 0000000..d8afa28 --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesReviewE.java @@ -0,0 +1,66 @@ +package com.zcloud.edu.domain.model.archives; + +import com.jjb.saas.framework.domain.model.BaseE; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * web-domain + * + * @Author zhangyue + * @Date 2026-01-26 10:59:34 + */ +@Data +public class ArchivesReviewE extends BaseE { + private Long id; + //业务id + private String archivesReviewId; + //课程id + private String classCurriculumId; + //班级id + private String classId; + //初版书号 + private String bookNum; + //班级所属企业id + private Integer corpinfoId; + //编写单位 + private String corpName; + //编写时间 + private LocalDateTime writeDate; + //教材类型 + private String materialType; + //会审地点 + private String address; + //主持人 + private String compere; + //会审时间 + private LocalDateTime auditDate; + //会审意见 + private String reviewOpinions; + //删除标识true false + private String deleteEnum; + //备注 + private String remarks; + //创建人姓名 + private String createName; + //更新人姓名 + private String updateName; + //租户id + private Long tenantId; + //单位id + private Long orgId; + //版本 + private Integer version; + //创建时间 + private LocalDateTime createTime; + //修改时间 + private LocalDateTime updateTime; + //创建人id + private Long createId; + //修改人id + private Long updateId; + //环境 + private String env; +} + diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesReviewRecordE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesReviewRecordE.java new file mode 100644 index 0000000..419d30a --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/ArchivesReviewRecordE.java @@ -0,0 +1,55 @@ +package com.zcloud.edu.domain.model.archives; + +import com.jjb.saas.framework.domain.model.BaseE; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * web-domain + * + * @Author zhangyue + * @Date 2026-01-26 10:59:36 + */ +@Data +public class ArchivesReviewRecordE extends BaseE { + //主键 + private Long id; + //业务id + private String archivesReviewRecordId; + //会审表id + private String archivesReviewId; + //会审人员 + private String reviewUser; + //工作部门 + private String department; + //职务/职称 + private String duties; + //审查意见 + private String checkOpinion; + //删除标识true false + private String deleteEnum; + //备注 + private String remarks; + //创建人姓名 + private String createName; + //更新人姓名 + private String updateName; + //租户id + private Long tenantId; + //单位id + private Long orgId; + //版本 + private Integer version; + //创建时间 + private LocalDateTime createTime; + //修改时间 + private LocalDateTime updateTime; + //创建人id + private Long createId; + //修改人id + private Long updateId; + //环境 + private String env; +} + diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/PersonArchivesE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/PersonArchivesE.java new file mode 100644 index 0000000..c0aede6 --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/archives/PersonArchivesE.java @@ -0,0 +1,232 @@ +package com.zcloud.edu.domain.model.archives; + +import com.jjb.saas.framework.domain.model.BaseE; +import com.zcloud.edu.domain.model.study.*; +import com.zcloud.gbscommon.utils.DateUtil; +import groovy.lang.BenchmarkInterceptor; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.beans.BeanUtils; +import org.springframework.util.ObjectUtils; + +import java.math.BigDecimal; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author zhangyue + * @date 2026/1/26 17:38 + */ +@Data +public class PersonArchivesE extends BaseE { + + private Long stuId; + //业务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; + //学员所属班级的企业id + @ApiModelProperty(value = "学员所属班级的企业id") + private Long classCorpinfoId; + //手机号 + @ApiModelProperty(value = "手机号") + private String phone; + //身份证号 + @ApiModelProperty(value = "身份证号") + private String userIdCard; + //民族编码 + @ApiModelProperty(value = "民族编码") + private String nation; + //民族名称 + @ApiModelProperty(value = "民族名称") + private String nationName; + //人脸照片url + @ApiModelProperty(value = "人脸照片url") + private String userAvatarUrl; + //现住址 + @ApiModelProperty(value = "现住址") + private String currentAddress; + //户口所在地 + @ApiModelProperty(value = "户口所在地") + private String locationAddress; + //文化程度 数据字典 + @ApiModelProperty(value = "文化程度 数据字典") + private String culturalLevel; + //文化程度名称 + @ApiModelProperty(value = "文化程度名称") + private String culturalLevelName; + //婚姻状态 + @ApiModelProperty(value = "婚姻状态") + private String maritalStatus; + //婚姻状态名称 + @ApiModelProperty(value = "婚姻状态名称") + private String maritalStatusName; + //政治面貌 + @ApiModelProperty(value = "政治面貌") + private String politicalAffiliation; + //政治面貌名称 + @ApiModelProperty(value = "政治面貌名称") + private String politicalAffiliationName; + //岗位名称 + @ApiModelProperty(value = "岗位名称") + private String postName; + //签到状态 0-未签到 1-已签到 + @ApiModelProperty(value = "签到状态 0-未签到 1-已签到") + private Integer signFlag; + //考试签到状态 0-未签到 1-已签到 + @ApiModelProperty(value = "考试签到状态 0-未签到 1-已签到") + private Integer examSignFlag; + //学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过 + @ApiModelProperty(value = "学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过") + private Integer state; + + + //班级名称 + @ApiModelProperty(value = "班级名称") + private String className; + //培训日期 开始时间 + @ApiModelProperty(value = "培训日期 开始时间") + private String startTime; + //培训日期 结束日期 + @ApiModelProperty(value = "培训日期 结束日期") + private String endTime; + //培训教师id + @ApiModelProperty(value = "培训教师id") + private Long teacherId; + //教师名称 + @ApiModelProperty(value = "教师名称") + private String teacherName; + //培训行业类型 + @ApiModelProperty(value = "培训行业类型") + private String trainType; + //培训行业类型名称 + @ApiModelProperty(value = "培训行业类型名称") + private String trainTypeName; + //培训地点 + @ApiModelProperty(value = "培训地点") + private String trainingLocation; + //机构ID + @ApiModelProperty(value = "机构ID") + private Long corpinfoId; + //状态:1-未申请 2-待开班 3- 培训中 4-培训结束 + @ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ") + private Integer classState; + //培训有效期日期 开始时间 + @ApiModelProperty(value = "培训有效期日期 开始时间") + private String validStartTime; + //培训有效期日期 结束时间 + @ApiModelProperty(value = "培训有效期日期 结束时间") + private String validEndTime; + //1考试0不考试 + @ApiModelProperty(value = "1考试0不考试") + private Integer examination; + //考试次数只有考试时候有用 + @ApiModelProperty(value = "考试次数只有考试时候有用") + private Integer numberofexams; + @ApiModelProperty(value = "培训时长") + private Long trainDurationTime; + @ApiModelProperty(value = "培训科目") + private String trainSubject; + @ApiModelProperty(value = "视频时长") + private BigDecimal videoTotalTime; + @ApiModelProperty(value = "课件数") + private Integer videoCount; + @ApiModelProperty(value = "打卡签到人脸图片路径") + private String signFaceUrl; + @ApiModelProperty(value = "考试签到人脸图片路径") + private String examSignFaceUrl; + + public void init(StudentE studentE, ClassE classE, List classCurList) { + BeanUtils.copyProperties(studentE, this); + setStuId(studentE.getId()); + setClassName(classE.getName()); + setStartTime(classE.getStartTime()); + setEndTime(classE.getEndTime()); + setTeacherId(classE.getTeacherId()); + setTeacherName(classE.getTeacherName()); + setTrainType(classE.getTrainType()); + setTrainTypeName(classE.getTrainTypeName()); + setTrainingLocation(classE.getTrainingLocation()); + setCorpinfoId(classE.getCorpinfoId()); + setClassState(classE.getState()); + setValidStartTime(classE.getValidStartTime()); + setValidEndTime(classE.getValidEndTime()); + setExamination(classE.getExamination()); + setNumberofexams(classE.getNumberofexams()); + String trainSubject = classCurList.stream().map(ClassCurriculumE::getCurriculumName).collect(Collectors.joining(",")); + setTrainSubject(trainSubject); + setTrainDurationTime(DateUtil.getMinuteSub(classE.getStartTime(), classE.getEndTime())); + } + + public void initAttendanceRecord(StudentE studentE, ClassE classE, List chapterEList, List classCurList) { + BeanUtils.copyProperties(studentE, this); + setStuId(studentE.getId()); + setClassName(classE.getName()); + setStartTime(classE.getStartTime()); + setEndTime(classE.getEndTime()); + setTeacherId(classE.getTeacherId()); + setTeacherName(classE.getTeacherName()); + setTrainType(classE.getTrainType()); + setTrainTypeName(classE.getTrainTypeName()); + setTrainingLocation(classE.getTrainingLocation()); + setCorpinfoId(classE.getCorpinfoId()); + setClassState(classE.getState()); + setValidStartTime(classE.getValidStartTime()); + setValidEndTime(classE.getValidEndTime()); + setExamination(classE.getExamination()); + setNumberofexams(classE.getNumberofexams()); + setVideoCount(chapterEList.size()); + BigDecimal videoTotalTime = classCurList.stream() + .map(ClassCurriculumE::getVideoTotalTime) // 假设getBigDecimalField是获取BigDecimal字段的方法 + .filter(bigDecimal -> bigDecimal != null) // 过滤null值,防止空指针异常 + .reduce(BigDecimal.ZERO, BigDecimal::add); + setVideoTotalTime(videoTotalTime); + } + public void initStudyRecord(StudentE studentE, ClassE classE, List studentSignEList, List classCurList) { + BeanUtils.copyProperties(studentE, this); + setStuId(studentE.getId()); + setClassName(classE.getName()); + setStartTime(classE.getStartTime()); + setEndTime(classE.getEndTime()); + setTeacherId(classE.getTeacherId()); + setTeacherName(classE.getTeacherName()); + setTrainType(classE.getTrainType()); + setTrainTypeName(classE.getTrainTypeName()); + setTrainingLocation(classE.getTrainingLocation()); + setCorpinfoId(classE.getCorpinfoId()); + setClassState(classE.getState()); + setValidStartTime(classE.getValidStartTime()); + setValidEndTime(classE.getValidEndTime()); + setExamination(classE.getExamination()); + setNumberofexams(classE.getNumberofexams()); + BigDecimal videoTotalTime = classCurList.stream() + .map(ClassCurriculumE::getVideoTotalTime) // 假设getBigDecimalField是获取BigDecimal字段的方法 + .filter(bigDecimal -> bigDecimal != null) // 过滤null值,防止空指针异常 + .reduce(BigDecimal.ZERO, BigDecimal::add); + String trainSubject = classCurList.stream().map(ClassCurriculumE::getCurriculumName).collect(Collectors.joining(",")); + setTrainSubject(trainSubject); + setVideoTotalTime(videoTotalTime); + if (studentSignEList != null && studentSignEList.size() > 0){ + for (StudentSignE studentSignE : studentSignEList){ + if(studentSignE.getType() == 1 + && !ObjectUtils.isEmpty(studentSignE.getFaceUrl()) + && ObjectUtils.isEmpty(this.getSignFaceUrl()) ){ + this.setSignFaceUrl(studentSignE.getFaceUrl()); + } + if(studentSignE.getType() == 2 + && !ObjectUtils.isEmpty(studentSignE.getFaceUrl()) + && ObjectUtils.isEmpty(this.getExamSignFaceUrl()) ){ + this.setExamSignFaceUrl(studentSignE.getFaceUrl()); + } + } + } + } +} diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumE.java index 79d104d..4fcc306 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/ClassCurriculumE.java @@ -100,5 +100,11 @@ public class ClassCurriculumE extends BaseE { }); } + public HashMap initListAllParams(String classId){ + HashMap params = new HashMap(); + params.put("classId", classId); + return params; + } + } 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 a0dda6b..885a65d 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 @@ -105,7 +105,7 @@ public class ClassE extends BaseE { public void isBegin(){ if(DateUtil.isBeforeThan(this.startTime)){ throw new RuntimeException("班级未开班"); - } else if(DateUtil.isBeforeThan(this.endTime)){ + } else if(DateUtil.isAfter(this.endTime)){ throw new RuntimeException("班级已结束"); } } diff --git a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentSignE.java b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentSignE.java index 48bd6d4..5736caa 100644 --- a/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentSignE.java +++ b/web-domain/src/main/java/com/zcloud/edu/domain/model/study/StudentSignE.java @@ -6,6 +6,7 @@ import com.zcloud.gbscommon.utils.Base64Util; import com.zcloud.gbscommon.utils.FaceUtil; import com.zcloud.gbscommon.utils.Tools; import com.zcloud.gbscommon.zcloudimgfiles.facade.ZcloudImgFilesFacade; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.dubbo.config.annotation.DubboReference; import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream; @@ -39,6 +40,8 @@ public class StudentSignE extends BaseE { private Long corpinfoId; //签到人脸路径 private String faceUrl; + //打卡签字路径 + private String signUrl; //签到类型 1-打卡签到 2-人脸签到 private Integer type; @@ -73,8 +76,7 @@ public class StudentSignE extends BaseE { @DubboReference private ZcloudImgFilesFacade zcloudImgFilesFacade; - public void compareFace(String templateFaceUrl) throws Exception { - String faceUrl = Base64Util.getBase64String(files[0]); + public void compareFace(String templateFaceUrl, String faceUrl) throws Exception { String templateFace = Base64Util.urlToBase64(prefixUrl + templateFaceUrl); String confidence = FaceUtil.compareFace(templateFace, faceUrl); @@ -83,6 +85,10 @@ public class StudentSignE extends BaseE { } this.setStudentSignId(Tools.get32UUID()); } - + public void init(String studentId, String classId, long corpinfoId){ + this.setStudentId(studentId); + this.setClassId(classId); + this.setCorpinfoId(corpinfoId); + } } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/archives/ArchivesReviewGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/archives/ArchivesReviewGatewayImpl.java new file mode 100644 index 0000000..cdef42e --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/archives/ArchivesReviewGatewayImpl.java @@ -0,0 +1,50 @@ +package com.zcloud.edu.gatewayimpl.archives; + +import com.zcloud.edu.domain.gateway.archives.ArchivesReviewGateway; +import com.zcloud.edu.domain.model.archives.ArchivesReviewE; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO; +import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRepository; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.Arrays; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +@Service +@AllArgsConstructor +public class ArchivesReviewGatewayImpl implements ArchivesReviewGateway { + private final ArchivesReviewRepository archivesReviewRepository; + + @Override + public Boolean add(ArchivesReviewE archivesReviewE) { + ArchivesReviewDO d = new ArchivesReviewDO(); + BeanUtils.copyProperties(archivesReviewE, d); + archivesReviewRepository.save(d); + return true; + } + + @Override + public Boolean update(ArchivesReviewE archivesReviewE) { + ArchivesReviewDO d = new ArchivesReviewDO(); + BeanUtils.copyProperties(archivesReviewE, d); + archivesReviewRepository.updateById(d); + return true; + } + + @Override + public Boolean deletedArchivesReviewById(Long id) { + return archivesReviewRepository.removeById(id); + } + + @Override + public Boolean deletedArchivesReviewByIds(Long[] ids) { + return archivesReviewRepository.removeByIds(Arrays.asList(ids)); + } +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/archives/ArchivesReviewRecordGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/archives/ArchivesReviewRecordGatewayImpl.java new file mode 100644 index 0000000..d9fa9c9 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/archives/ArchivesReviewRecordGatewayImpl.java @@ -0,0 +1,50 @@ +package com.zcloud.edu.gatewayimpl.archives; + +import com.zcloud.edu.domain.gateway.archives.ArchivesReviewRecordGateway; +import com.zcloud.edu.domain.model.archives.ArchivesReviewRecordE; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO; +import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRecordRepository; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.Collections; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +@Service +@AllArgsConstructor +public class ArchivesReviewRecordGatewayImpl implements ArchivesReviewRecordGateway { + private final ArchivesReviewRecordRepository archivesReviewRecordRepository; + + @Override + public Boolean add(ArchivesReviewRecordE archivesReviewRecordE) { + ArchivesReviewRecordDO d = new ArchivesReviewRecordDO(); + BeanUtils.copyProperties(archivesReviewRecordE, d); + archivesReviewRecordRepository.save(d); + return true; + } + + @Override + public Boolean update(ArchivesReviewRecordE archivesReviewRecordE) { + ArchivesReviewRecordDO d = new ArchivesReviewRecordDO(); + BeanUtils.copyProperties(archivesReviewRecordE, d); + archivesReviewRecordRepository.updateById(d); + return true; + } + + @Override + public Boolean deletedArchivesReviewRecordById(Long id) { + return archivesReviewRecordRepository.removeById(id); + } + + @Override + public Boolean deletedArchivesReviewRecordByIds(Long[] ids) { + return archivesReviewRecordRepository.removeByIds(Collections.singletonList(ids)); + } +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/StudentSignGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/StudentSignGatewayImpl.java index 891507d..0a88dba 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/StudentSignGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/gatewayimpl/study/StudentSignGatewayImpl.java @@ -26,6 +26,7 @@ public class StudentSignGatewayImpl implements StudentSignGateway { StudentSignDO d = new StudentSignDO(); BeanUtils.copyProperties(studentSignE, d); studentSignRepository.save(d); + studentSignE.setId(d.getId()); return true; } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/archives/ArchivesReviewDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/archives/ArchivesReviewDO.java new file mode 100644 index 0000000..5d652d1 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/archives/ArchivesReviewDO.java @@ -0,0 +1,62 @@ +package com.zcloud.edu.persistence.dataobject.archives; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jjb.saas.framework.repository.basedo.BaseDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.time.LocalDateTime; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:34 + */ +@Data +@TableName("archives_review") +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ArchivesReviewDO extends BaseDO { + //业务id + @ApiModelProperty(value = "业务id") + private String archivesReviewId; + //课程id + @ApiModelProperty(value = "课程id") + private String classCurriculumId; + //班级id + @ApiModelProperty(value = "班级id") + private String classId; + //初版书号 + @ApiModelProperty(value = "初版书号") + private String bookNum; + //班级所属企业id + @ApiModelProperty(value = "班级所属企业id") + private Integer corpinfoId; + //编写单位 + @ApiModelProperty(value = "编写单位") + private String corpName; + //编写时间 + @ApiModelProperty(value = "编写时间") + private LocalDateTime writeDate; + //教材类型 + @ApiModelProperty(value = "教材类型") + private String materialType; + //会审地点 + @ApiModelProperty(value = "会审地点") + private String address; + //主持人 + @ApiModelProperty(value = "主持人") + private String compere; + //会审时间 + @ApiModelProperty(value = "会审时间") + private LocalDateTime auditDate; + //会审意见 + @ApiModelProperty(value = "会审意见") + private String reviewOpinions; + + +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/archives/ArchivesReviewRecordDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/archives/ArchivesReviewRecordDO.java new file mode 100644 index 0000000..fd1636d --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/archives/ArchivesReviewRecordDO.java @@ -0,0 +1,42 @@ +package com.zcloud.edu.persistence.dataobject.archives; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jjb.saas.framework.repository.basedo.BaseDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +@Data +@TableName("archives_review_record") +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class ArchivesReviewRecordDO extends BaseDO { + //业务id + @ApiModelProperty(value = "业务id") + private String archivesReviewRecordId; + //会审表id + @ApiModelProperty(value = "会审表id") + private String archivesReviewId; + //会审人员 + @ApiModelProperty(value = "会审人员") + private String reviewUser; + //工作部门 + @ApiModelProperty(value = "工作部门") + private String department; + //职务/职称 + @ApiModelProperty(value = "职务/职称") + private String duties; + //审查意见 + @ApiModelProperty(value = "审查意见") + private String checkOpinion; + + +} + 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 9398a9c..938d871 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 @@ -75,5 +75,15 @@ public class ClassDO extends BaseDO { @TableField(exist = false) private Integer finishCount = 0; + @ApiModelProperty(value = "学员id(雪花)") + @TableField(exist = false) + private Long stuId; + + @ApiModelProperty(value = "学员id(uuid)") + @TableField(exist = false) + private String studentId; + + + } 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 3b2eb63..2e83837 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 @@ -97,5 +97,13 @@ public class StudentDO extends BaseDO { @ApiModelProperty(value = "项目名称集合") private String projectNames; + @ApiModelProperty(value = "班级数") + @TableField(exist = false) + private Integer classCount; + + @ApiModelProperty(value = "完成班级数") + @TableField(exist = false) + private Integer completeClassCount; + } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentExamRecordDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentExamRecordDO.java index 276c048..c5e7b6e 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentExamRecordDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentExamRecordDO.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; @@ -61,6 +62,13 @@ public class StudentExamRecordDO extends BaseDO { @ApiModelProperty(value = "考试结果 0 -不通过 1-通过") private Integer result; + @ApiModelProperty(value = "学员考试签到id") + private String studentSignId; + + @ApiModelProperty(value = "考试签字") + @TableField(exist = false) + private String signUrl; + } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentSignDO.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentSignDO.java index d8dd998..8077fdc 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentSignDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/dataobject/study/StudentSignDO.java @@ -46,6 +46,10 @@ public class StudentSignDO extends BaseDO { @ApiModelProperty(value = "签到人脸路径") private String faceUrl; + //打卡签字路径 + @ApiModelProperty(value = "打卡签字路径") + private String signUrl; + //签到类型 1-打卡签到 2-人脸签到 @ApiModelProperty(value = "签到类型 1-打卡签到 2-人脸签到") private Integer type; diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/archives/ArchivesReviewMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/archives/ArchivesReviewMapper.java new file mode 100644 index 0000000..d144fa9 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/archives/ArchivesReviewMapper.java @@ -0,0 +1,17 @@ +package com.zcloud.edu.persistence.mapper.archives; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +@Mapper +public interface ArchivesReviewMapper extends BaseMapper { + +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/archives/ArchivesReviewRecordMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/archives/ArchivesReviewRecordMapper.java new file mode 100644 index 0000000..1d4af7f --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/archives/ArchivesReviewRecordMapper.java @@ -0,0 +1,17 @@ +package com.zcloud.edu.persistence.mapper.archives; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +@Mapper +public interface ArchivesReviewRecordMapper extends BaseMapper { + +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentExamRecordMapper.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentExamRecordMapper.java index d302fc3..8cad650 100644 --- a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentExamRecordMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/mapper/study/StudentExamRecordMapper.java @@ -3,6 +3,7 @@ package com.zcloud.edu.persistence.mapper.study; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * web-infrastructure @@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface StudentExamRecordMapper extends BaseMapper { + StudentExamRecordDO getInfoByStudentId(@Param("studentId") String studentId); } 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 8b26a2a..30585ad 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 @@ -25,5 +25,8 @@ public interface StudentMapper extends BaseMapper { StudentDO findByClassIdAndPhone(@Param("classId") String classId, @Param("phone") String phone); StudentDO findFaceUrlByPhone(@Param("phone") String phone); + List countStuClass(@Param("params") Map params); + + } diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/archives/ArchivesReviewRecordRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/archives/ArchivesReviewRecordRepository.java new file mode 100644 index 0000000..4e2c022 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/archives/ArchivesReviewRecordRepository.java @@ -0,0 +1,18 @@ +package com.zcloud.edu.persistence.repository.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.jjb.saas.framework.repository.repo.BaseRepository; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO; + +import java.util.Map; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +public interface ArchivesReviewRecordRepository extends BaseRepository { + PageResponse listPage(Map params); +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/archives/ArchivesReviewRepository.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/archives/ArchivesReviewRepository.java new file mode 100644 index 0000000..10bdd46 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/archives/ArchivesReviewRepository.java @@ -0,0 +1,18 @@ +package com.zcloud.edu.persistence.repository.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.jjb.saas.framework.repository.repo.BaseRepository; +import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO; + +import java.util.Map; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +public interface ArchivesReviewRepository extends BaseRepository { + PageResponse listPage(Map params); +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/archives/ArchivesReviewRecordRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/archives/ArchivesReviewRecordRepositoryImpl.java new file mode 100644 index 0000000..935fe5b --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/archives/ArchivesReviewRecordRepositoryImpl.java @@ -0,0 +1,39 @@ +package com.zcloud.edu.persistence.repository.impl.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.archives.ArchivesReviewRecordDO; +import com.zcloud.edu.persistence.mapper.archives.ArchivesReviewRecordMapper; +import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRecordRepository; +import com.zcloud.gbscommon.utils.PageQueryHelper; +import com.zcloud.gbscommon.utils.Query; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:37 + */ +@Service +@RequiredArgsConstructor +public class ArchivesReviewRecordRepositoryImpl extends BaseRepositoryImpl implements ArchivesReviewRecordRepository { + private final ArchivesReviewRecordMapper archivesReviewRecordMapper; + + @Override + public PageResponse listPage(Map params) { + IPage iPage = new Query().getPage(params); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); + queryWrapper.orderByDesc("create_time"); + IPage result = archivesReviewRecordMapper.selectPage(iPage, queryWrapper); + return PageHelper.pageToResponse(result, result.getRecords()); + } +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/archives/ArchivesReviewRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/archives/ArchivesReviewRepositoryImpl.java new file mode 100644 index 0000000..af200d1 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/edu/persistence/repository/impl/archives/ArchivesReviewRepositoryImpl.java @@ -0,0 +1,39 @@ +package com.zcloud.edu.persistence.repository.impl.archives; + +import com.alibaba.cola.dto.PageResponse; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.archives.ArchivesReviewDO; +import com.zcloud.edu.persistence.mapper.archives.ArchivesReviewMapper; +import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRepository; +import com.zcloud.gbscommon.utils.PageQueryHelper; +import com.zcloud.gbscommon.utils.Query; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * web-infrastructure + * + * @Author zhangyue + * @Date 2026-01-26 10:59:35 + */ +@Service +@RequiredArgsConstructor +public class ArchivesReviewRepositoryImpl extends BaseRepositoryImpl implements ArchivesReviewRepository { + private final ArchivesReviewMapper archivesReviewMapper; + + @Override + public PageResponse listPage(Map params) { + IPage iPage = new Query().getPage(params); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); + queryWrapper.orderByDesc("create_time"); + IPage result = archivesReviewMapper.selectPage(iPage, queryWrapper); + return PageHelper.pageToResponse(result, result.getRecords()); + } +} + 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 258c6ec..6107a87 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 @@ -70,5 +70,15 @@ public class ClassCurriculumChapterRepositoryImpl extends BaseRepositoryImpl listVideoByClassId(String classId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("class_id", classId); + queryWrapper.isNotNull("video_courseware_id"); + queryWrapper.ne("video_courseware_id", ""); + queryWrapper.eq("delete_enum", "FALSE"); + return classCurriculumChapterMapper.selectList(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 cfa4f2c..744ee62 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 @@ -14,6 +14,7 @@ import com.zcloud.gbscommon.utils.Query; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; /** @@ -54,5 +55,14 @@ public class StudentExamRecordItemRepositoryImpl extends BaseRepositoryImpl listByExamRecordId(String examRecordId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("exam_record_id", examRecordId); + queryWrapper.eq("delete_enum", "FALSE"); + queryWrapper.orderByDesc("create_time"); + return studentExamRecordItemMapper.selectList(queryWrapper); + } } 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 a21455d..a228568 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 @@ -63,5 +63,10 @@ public class StudentExamRecordRepositoryImpl extends BaseRepositoryImpl countStuClass(Map params) { + return studentMapper.countStuClass(params); + } + + @Override + public StudentDO findInfoByStudentId(String studentId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("student_id", studentId); + queryWrapper.eq("delete_enum", "FALSE"); + return studentMapper.selectOne(queryWrapper); + } + } 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 a84c878..b69b618 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 @@ -15,6 +15,7 @@ import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.Query; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import java.util.List; import java.util.Map; @@ -59,7 +60,13 @@ public class StudentSignRepositoryImpl extends BaseRepositoryImpl(); queryWrapper.eq("student_id", params.get("studentId")); queryWrapper.eq("delete_enum", "FALSE"); - queryWrapper.eq("type", params.get("type")); + if (!ObjectUtils.isEmpty(params.get("type"))){ + queryWrapper.eq("type", params.get("type")); + } + if (!ObjectUtils.isEmpty(params.get("orderCreateTime"))){ + queryWrapper.orderByDesc("create_time"); + } + queryWrapper.isNotNull("sign_url"); return studentSignMapper.selectList(queryWrapper); } } 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 530676b..08557f7 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 @@ -23,5 +23,7 @@ public interface ClassCurriculumChapterRepository extends BaseRepository listByClassCurriculumIds(List classCurriculumIds); + + List listVideoByClassId(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 fb8beed..3a31de5 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 @@ -5,6 +5,7 @@ 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.List; import java.util.Map; /** @@ -19,5 +20,7 @@ public interface StudentExamRecordItemRepository extends BaseRepository listByExamRecordId(String examRecordId); } 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 598a78d..10a3bd1 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 @@ -21,5 +21,7 @@ public interface StudentExamRecordRepository extends BaseRepository listAllByStudentId(String studentId); + + StudentExamRecordDO getInfoByStudentId(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 98ea3fb..a02a8a1 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 @@ -31,6 +31,11 @@ public interface StudentRepository extends BaseRepository { StudentDO findFaceUrlByPhone(String phone); + List countStuClass(Map params); + + + StudentDO findInfoByStudentId(String studentId); + 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 c0bc65c..1117e20 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 @@ -23,5 +23,6 @@ public interface StudentSignRepository extends BaseRepository { List listAllByStudentId(Map params); + } diff --git a/web-infrastructure/src/main/resources/mapper/archives/ArchivesReviewMapper.xml b/web-infrastructure/src/main/resources/mapper/archives/ArchivesReviewMapper.xml new file mode 100644 index 0000000..b8dff85 --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/archives/ArchivesReviewMapper.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/web-infrastructure/src/main/resources/mapper/archives/ArchivesReviewRecordMapper.xml b/web-infrastructure/src/main/resources/mapper/archives/ArchivesReviewRecordMapper.xml new file mode 100644 index 0000000..745a325 --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/archives/ArchivesReviewRecordMapper.xml @@ -0,0 +1,8 @@ + + + + + + + diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml index a3662e2..b14095f 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassCurriculumChapterMapper.xml @@ -6,7 +6,7 @@ SELECT c.id, - c.curriculum_chapter_id, + c.class_curriculum_chapter_id, c.class_id, c.corpinfo_id, c.class_curriculum_id, diff --git a/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml b/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml index 3c88367..8bdc92b 100644 --- a/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/ClassMapper.xml @@ -97,17 +97,25 @@ c.valid_start_time, c.valid_end_time, c.examination, - c.numberofexams + c.numberofexams, + s.student_id, + s.id stu_id FROM - class c + student s + left join class c on c.class_id = s.class_id left join training_type t on t.training_type_id = c.train_type left join corp_info ci on ci.id = c.corpinfo_id - WHERE - c.class_id IN (SELECT s.class_id FROM student s WHERE s.phone = #{params.phone} AND s.delete_enum = 'FALSE') + + AND s.phone = #{params.phone} + AND s.delete_enum = 'FALSE' AND c.delete_enum = 'FALSE' and c.name like concat('%',#{params.likeName},'%') + + and c.corpinfo_id = #{params.eqCorpinfoId} + + order by c.state, c.create_time desc diff --git a/web-infrastructure/src/main/resources/mapper/study/StudentExamRecordMapper.xml b/web-infrastructure/src/main/resources/mapper/study/StudentExamRecordMapper.xml index 99d240b..2184085 100644 --- a/web-infrastructure/src/main/resources/mapper/study/StudentExamRecordMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/StudentExamRecordMapper.xml @@ -3,6 +3,35 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + diff --git a/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml b/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml index d2fc350..83e5497 100644 --- a/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/StudentMapper.xml @@ -70,5 +70,25 @@ create_time desc limit 1 + + + diff --git a/web-infrastructure/src/main/resources/mapper/study/StudentSignMapper.xml b/web-infrastructure/src/main/resources/mapper/study/StudentSignMapper.xml index ce6e32b..2cefd45 100644 --- a/web-infrastructure/src/main/resources/mapper/study/StudentSignMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/study/StudentSignMapper.xml @@ -13,12 +13,11 @@ ss.face_url FROM student_sign ss - LEFT JOIN student s ON ss.student_id = ss.student_id - LEFT JOIN class cl ON cl.class_id = s.class_id + LEFT JOIN student s ON ss.student_id = ss.student_id + LEFT JOIN class cl ON cl.class_id = s.class_id WHERE - s.phone = #{params.phone} - AND s.class_id = #{params.classId} - AND ss.delete_enum = 'FALSE' + ss.student_id = #{params.studentId} + AND ss.delete_enum = 'FALSE'