Merge remote-tracking branch 'origin/dev' into dev

dev
shenzhidan 2026-02-03 10:52:47 +08:00
commit aa06fcb829
182 changed files with 5995 additions and 203 deletions

View File

@ -8,10 +8,7 @@ import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.edu.api.study.ClassServiceI;
import com.zcloud.edu.dto.clientobject.study.ClassCO;
import com.zcloud.edu.dto.data.study.ClassQuestionDTO;
import com.zcloud.edu.dto.study.ClassAddCmd;
import com.zcloud.edu.dto.study.ClassPageQry;
import com.zcloud.edu.dto.study.ClassPostponeCmd;
import com.zcloud.edu.dto.study.ClassUpdateCmd;
import com.zcloud.edu.dto.study.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@ -39,5 +36,6 @@ public class AppClassController {
return classService.appListPage(qry);
}
}

View File

@ -0,0 +1,93 @@
package com.zcloud.edu.app.study;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.edu.api.study.ClassExamPaperServiceI;
import com.zcloud.edu.dto.clientobject.study.ClassExamPaperCO;
import com.zcloud.edu.dto.study.ClassExamPaperAddCmd;
import com.zcloud.edu.dto.study.ClassExamPaperAutoAddCmd;
import com.zcloud.edu.dto.study.ClassExamPaperPageQry;
import com.zcloud.edu.dto.study.ClassExamPaperUpdateCmd;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
/**
* web-adapter
*
* @Author zhangyue
* @Date 2026-01-13 14:18:21
*/
@Api(tags = "班级考试信息")
@RequestMapping("/${application.gateway}/app/classExamPaper")
@RestController
@AllArgsConstructor
public class AppClassExamPaperController {
private final ClassExamPaperServiceI classExamPaperService;
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<ClassExamPaperCO> add(@Validated @RequestBody ClassExamPaperAddCmd cmd) {
return classExamPaperService.add(cmd);
}
@ApiOperation("自动生成试卷")
@PostMapping("/autoSave")
public SingleResponse<ClassExamPaperCO> autoSave(@Validated @RequestBody ClassExamPaperAutoAddCmd cmd) {
return classExamPaperService.autoSave(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<ClassExamPaperCO> page(@RequestBody ClassExamPaperPageQry qry) {
return classExamPaperService.listPage(qry);
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<ClassExamPaperCO> listAll() {
return MultiResponse.of(new ArrayList<ClassExamPaperCO>());
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<ClassExamPaperCO> getInfoById(@PathVariable("id") Long id) {
return classExamPaperService.getInfoById(id);
}
@ApiOperation("详情")
@GetMapping("/getInfoByClassId/{classId}")
public SingleResponse<ClassExamPaperCO> getInfoByClassId(@PathVariable("classId") String classId) {
return classExamPaperService.getInfoByClassId(classId);
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {
classExamPaperService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@DeleteMapping("/ids")
public Response removeBatch(@RequestParam Long[] ids) {
classExamPaperService.removeBatch(ids);
return SingleResponse.buildSuccess();
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody ClassExamPaperUpdateCmd classExamPaperUpdateCmd) {
classExamPaperService.edit(classExamPaperUpdateCmd);
return SingleResponse.buildSuccess();
}
}

View File

@ -0,0 +1,57 @@
package com.zcloud.edu.app.study;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.api.study.StudentExamRecordServiceI;
import com.zcloud.edu.dto.clientobject.study.StudentExamRecordCO;
import com.zcloud.edu.dto.clientobject.study.StudentSignCO;
import com.zcloud.edu.dto.study.StudentExamRecordAddCmd;
import com.zcloud.edu.dto.study.StudentExamRecordPageQry;
import com.zcloud.edu.dto.study.StudentExamRecordUpdateCmd;
import com.zcloud.edu.dto.study.StudentSignPageQry;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
/**
* web-adapter
*
* @Author zhangyue
* @Date 2026-01-13 14:18:16
*/
@Api(tags = "考试信息")
@RequestMapping("/${application.gateway}/app/studentExamRecord")
@RestController
@AllArgsConstructor
public class AppStudentExamRecordController {
private final StudentExamRecordServiceI studentExamRecordService;
@ApiOperation("提交试卷")
@PostMapping("/submit")
public SingleResponse<StudentExamRecordCO> submit(@Validated @RequestBody StudentExamRecordAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return studentExamRecordService.add(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<StudentExamRecordCO> page(@RequestBody StudentExamRecordPageQry qry) {
return studentExamRecordService.listPage(qry);
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<StudentExamRecordCO> getInfoById(@PathVariable("id") Long id) {
return studentExamRecordService.getInfoById(id);
}
}

View File

@ -0,0 +1,84 @@
package com.zcloud.edu.app.study;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.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;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
/**
* web-adapter
*
* @Author zhangyue
* @Date 2026-01-13 14:18:19
*/
@Api(tags = "学员签到")
@RequestMapping("/${application.gateway}/app/studentSign")
@RestController
@AllArgsConstructor
public class AppStudentSignController {
private final StudentSignServiceI studentSignService;
@ApiOperation("对比人脸")
@PostMapping("/compareFace")
public SingleResponse<StudentSignCO> compareFace(@Validated StudentSignAddCmd cmd) {
return studentSignService.add(cmd);
}
@ApiOperation("验证是否可签到")
@PostMapping("/verify")
public SingleResponse<StudentCO> verify(@RequestBody StudentSignVerifyQry qry) {
return studentSignService.verify(qry);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<StudentSignCO> page(@RequestBody StudentSignPageQry qry) {
return studentSignService.listPage(qry);
}
@ApiOperation("所有数据")
@PostMapping("/listAll")
public MultiResponse<StudentSignCO> listAll(@RequestBody ClassAppSignQry qry) {
return studentSignService.listAll(qry);
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<StudentSignCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(new StudentSignCO());
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {
studentSignService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@DeleteMapping("/ids")
public Response removeBatch(@RequestParam Long[] ids) {
studentSignService.removeBatch(ids);
return SingleResponse.buildSuccess();
}
@ApiOperation("上传签到签字")
@PostMapping("/uploadSignUrl")
public SingleResponse edit(@Validated @RequestBody StudentSignUpdateCmd studentSignUpdateCmd) {
studentSignService.edit(studentSignUpdateCmd);
return SingleResponse.buildSuccess();
}
}

View File

@ -0,0 +1,71 @@
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.clientobject.study.StudentCO;
import com.zcloud.edu.dto.data.archives.ClassArchivesDTO;
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<StudentCO> page(@RequestBody ClassPageQry qry) {
return classService.listStudentClass(qry);
}
@ApiOperation("查询学时证明")
@PostMapping("/getAttendanceRecord")
public SingleResponse<PersonArchivesDTO> getAttendanceRecord(@RequestBody ClassArchivesQry qry) {
return studentService.getAttendanceRecord(qry);
}
@ApiOperation("查询学习档案")
@PostMapping("/getStudyArchives")
public SingleResponse<PersonArchivesDTO> getStudyArchives(@RequestBody ClassArchivesQry qry) {
return studentService.getStudyArchives(qry);
}
@ApiOperation("查询学习记录")
@PostMapping("/getStudyRecord")
public SingleResponse<PersonArchivesDTO> getStudyRecord(@RequestBody ClassArchivesQry qry) {
return studentService.getStudyRecord(qry);
}
@ApiOperation("签字表")
@PostMapping("/getClassSign")
public SingleResponse<ClassArchivesDTO> getClassSign(@RequestBody ClassArchivesQry qry) {
return studentService.getClassSign(qry);
}
@ApiOperation("学员考核成绩统计表")
@PostMapping("/getClassExamResult")
public SingleResponse<ClassArchivesDTO> getClassExamResult(@RequestBody ClassArchivesQry qry) {
return studentService.getClassExamResult(qry);
}
}

View File

@ -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.ArchivesPdfFileServiceI;
import com.zcloud.edu.dto.archives.ArchivesPdfFileAddCmd;
import com.zcloud.edu.dto.archives.ArchivesPdfFilePageQry;
import com.zcloud.edu.dto.archives.ArchivesPdfFileUpdateCmd;
import com.zcloud.edu.dto.clientobject.archives.ArchivesPdfFileCO;
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-02-02 10:32:41
*/
@Api(tags = "")
@RequestMapping("/${application.gateway}/archivesPdfFile")
@RestController
@AllArgsConstructor
public class ArchivesPdfFileController {
private final ArchivesPdfFileServiceI archivesPdfFileService;
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<ArchivesPdfFileCO> add(@Validated @RequestBody ArchivesPdfFileAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return archivesPdfFileService.add(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<ArchivesPdfFileCO> page(@RequestBody ArchivesPdfFilePageQry qry) {
return archivesPdfFileService.listPage(qry);
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<ArchivesPdfFileCO> listAll() {
return MultiResponse.of(new ArrayList<ArchivesPdfFileCO>());
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<ArchivesPdfFileCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(new ArchivesPdfFileCO());
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {
archivesPdfFileService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@DeleteMapping("/ids")
public Response removeBatch(@RequestParam Long[] ids) {
archivesPdfFileService.removeBatch(ids);
return SingleResponse.buildSuccess();
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody ArchivesPdfFileUpdateCmd archivesPdfFileUpdateCmd) {
archivesPdfFileService.edit(archivesPdfFileUpdateCmd);
return SingleResponse.buildSuccess();
}
}

View File

@ -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<ArchivesReviewCO> add(@Validated @RequestBody ArchivesReviewAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return archivesReviewService.add(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<ArchivesReviewCO> page(@RequestBody ArchivesReviewPageQry qry) {
return archivesReviewService.listPage(qry);
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<ArchivesReviewCO> listAll() {
return MultiResponse.of(new ArrayList<ArchivesReviewCO>());
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<ArchivesReviewCO> getInfoById(@PathVariable("id") Long id) {
return archivesReviewService.getInfoById(id);
}
@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();
}
}

View File

@ -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.jjb.saas.framework.sdk.http.annotation.request.Post;
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<ArchivesReviewRecordCO> add(@Validated @RequestBody ArchivesReviewRecordAddCmd cmd) {
return archivesReviewRecordService.add(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<ArchivesReviewRecordCO> page(@RequestBody ArchivesReviewRecordPageQry qry) {
return archivesReviewRecordService.listPage(qry);
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<ArchivesReviewRecordCO> listAll() {
return MultiResponse.of(new ArrayList<ArchivesReviewRecordCO>());
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<ArchivesReviewRecordCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(new ArchivesReviewRecordCO());
}
@ApiOperation("删除")
@PostMapping("/{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();
}
}

View File

@ -29,7 +29,7 @@ public class ExamPaperController {
@ApiOperation("新增试卷")
@PostMapping("/save")
public SingleResponse<ExamPaperCO> add(@Validated @RequestBody ExamPaperAddCmd cmd) {
public SingleResponse<ExamPaperCO> add(@Validated ExamPaperAddCmd cmd) {
return examPaperService.add(cmd);
}
@ApiOperation("新增继承试卷")

View File

@ -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<ClassCO> countClassStudent() {
return MultiResponse.of(new ArrayList<ClassCO>());
}
@ApiOperation("统计人员班级数")
@PostMapping("/countStuClass")
public MultiResponse<StudentCO> countStuClass(@RequestBody ClassCountQry qry) {
return classService.countStuClass(qry);
}
@ApiOperation("详情")
@GetMapping("/{id}")

View File

@ -9,9 +9,7 @@ import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.api.study.ClassCurriculumServiceI;
import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO;
import com.zcloud.edu.dto.study.ClassCurriculumAddCmd;
import com.zcloud.edu.dto.study.ClassCurriculumPageQry;
import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd;
import com.zcloud.edu.dto.study.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@ -41,6 +39,12 @@ public class ClassCurriculumController {
return classCurriculumService.add(cmdList);
}
@ApiOperation("批量新增")
@PostMapping("/saveBatch")
public Response batchAdd(@Validated @RequestBody ClassCurriculumBatchAddCmd cmd) {
return classCurriculumService.batchAdd(cmd);
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<ClassCurriculumCO> page(@RequestBody ClassCurriculumPageQry qry) {
@ -48,9 +52,9 @@ public class ClassCurriculumController {
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<ClassCurriculumCO> listAll() {
return MultiResponse.of(new ArrayList<ClassCurriculumCO>());
@PostMapping("/listAll")
public MultiResponse<ClassCurriculumCO> listAll(@RequestBody ClassCurriculumQry qry) {
return classCurriculumService.listAll(qry);
}
@ApiOperation("详情")

View File

@ -59,11 +59,10 @@ public class ClassExamPaperController {
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<ClassExamPaperCO> getInfoById(@PathVariable("id") Long id) {
return classExamPaperService.getInfoById(id);
@GetMapping("/getInfoByClassId/{classId}")
public SingleResponse<ClassExamPaperCO> getInfoByClassId(@PathVariable("classId") String classId) {
return classExamPaperService.getInfoByClassId(classId);
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {

View File

@ -10,6 +10,7 @@ import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.api.study.StudentServiceI;
import com.zcloud.edu.dto.clientobject.study.StudentCO;
import com.zcloud.edu.dto.study.StudentAddCmd;
import com.zcloud.edu.dto.study.StudentCountQry;
import com.zcloud.edu.dto.study.StudentPageQry;
import com.zcloud.edu.dto.study.StudentUpdateCmd;
import io.swagger.annotations.Api;
@ -47,6 +48,11 @@ public class StudentController {
public PageResponse<StudentCO> page(@RequestBody StudentPageQry qry) {
return studentService.listPage(qry);
}
@ApiOperation("培训记录管理分页")
@PostMapping("/listPageClassByStudent")
public PageResponse<StudentCO> listPageClassByStudent(@RequestBody StudentPageQry qry) {
return studentService.listPageClassByStudent(qry);
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
@ -54,12 +60,37 @@ public class StudentController {
return MultiResponse.of(new ArrayList<StudentCO>());
}
@ApiOperation("查询用户统计")
@PostMapping("/listStudentCount")
public MultiResponse<StudentCO> listStudentCount(@RequestBody StudentCountQry qry) {
return studentService.listStudentCount(qry);
}
@ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<StudentCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(new StudentCO());
}
@ApiOperation("查看学员详情")
@GetMapping("/getInfoByStudentId/{studentId}")
public SingleResponse<StudentCO> getInfoByStudentId(@PathVariable("studentId") String studentId) {
return studentService.getInfoByStudentId(studentId);
}
@ApiOperation("班级内学员数")
@GetMapping("/countStudent/{classId}")
public SingleResponse<Long> countStudent(@PathVariable("classId") String classId) {
return SingleResponse.of(studentService.countStudent(classId));
}
@ApiOperation("根据企业统计学员")
@PostMapping("/countStudentByCorpId")
public MultiResponse<StudentCO> countStudentByCorpId(@RequestBody StudentCountQry qry) {
return studentService.countStudentByCorpId(qry);
}
@ApiOperation("删除")
@PostMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {

View File

@ -58,6 +58,12 @@ public class StudentExamRecordController {
return SingleResponse.of(new StudentExamRecordCO());
}
@ApiOperation("查询考试记录")
@GetMapping("/getInfoByStudentId/{studentId}")
public SingleResponse<StudentExamRecordCO> getInfoByStudentId(@PathVariable("studentId") String studentId) {
return studentExamRecordService.getInfoByStudentId(studentId);
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {

View File

@ -9,6 +9,7 @@ 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.StudentSignCO;
import com.zcloud.edu.dto.study.ClassAppSignQry;
import com.zcloud.edu.dto.study.StudentSignAddCmd;
import com.zcloud.edu.dto.study.StudentSignPageQry;
import com.zcloud.edu.dto.study.StudentSignUpdateCmd;
@ -47,9 +48,9 @@ public class StudentSignController {
}
@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<StudentSignCO> listAll() {
return MultiResponse.of(new ArrayList<StudentSignCO>());
@PostMapping("/listAll")
public MultiResponse<StudentSignCO> listAll(@RequestBody ClassAppSignQry qry) {
return studentSignService.listAll(qry);
}
@ApiOperation("详情")

View File

@ -0,0 +1,40 @@
package com.zcloud.edu.command.archives;
import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.domain.gateway.archives.ArchivesPdfFileGateway;
import com.zcloud.edu.domain.model.archives.ArchivesPdfFileE;
import com.zcloud.edu.dto.archives.ArchivesPdfFileAddCmd;
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-02-02 10:32:41
*/
@Component
@AllArgsConstructor
public class ArchivesPdfFileAddExe {
private final ArchivesPdfFileGateway archivesPdfFileGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(ArchivesPdfFileAddCmd cmd) {
ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE();
BeanUtils.copyProperties(cmd, archivesPdfFileE);
boolean res = false;
try {
res = archivesPdfFileGateway.add(archivesPdfFileE);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

@ -0,0 +1,39 @@
package com.zcloud.edu.command.archives;
import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.domain.gateway.archives.ArchivesPdfFileGateway;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author zhangyue
* @Date 2026-02-02 10:32:42
*/
@Component
@AllArgsConstructor
public class ArchivesPdfFileRemoveExe {
private final ArchivesPdfFileGateway archivesPdfFileGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
boolean res = archivesPdfFileGateway.deletedArchivesPdfFileById(id);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long[] ids) {
boolean res = archivesPdfFileGateway.deletedArchivesPdfFileByIds(ids);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
}

View File

@ -0,0 +1,34 @@
package com.zcloud.edu.command.archives;
import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.domain.gateway.archives.ArchivesPdfFileGateway;
import com.zcloud.edu.domain.model.archives.ArchivesPdfFileE;
import com.zcloud.edu.dto.archives.ArchivesPdfFileUpdateCmd;
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-02-02 10:32:42
*/
@Component
@AllArgsConstructor
public class ArchivesPdfFileUpdateExe {
private final ArchivesPdfFileGateway archivesPdfFileGateway;
@Transactional(rollbackFor = Exception.class)
public void execute(ArchivesPdfFileUpdateCmd archivesPdfFileUpdateCmd) {
ArchivesPdfFileE archivesPdfFileE = new ArchivesPdfFileE();
BeanUtils.copyProperties(archivesPdfFileUpdateCmd, archivesPdfFileE);
boolean res = archivesPdfFileGateway.update(archivesPdfFileE);
if (!res) {
throw new BizException("修改失败");
}
}
}

View File

@ -0,0 +1,60 @@
package com.zcloud.edu.command.archives;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.domain.gateway.archives.ArchivesReviewGateway;
import com.zcloud.edu.domain.model.archives.ArchivesReviewE;
import com.zcloud.edu.domain.model.archives.ArchivesReviewRecordE;
import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd;
import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd;
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.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* web-app
*
* @Author zhangyue
* @Date 2026-01-26 10:59:34
*/
@Component
@AllArgsConstructor
public class ArchivesReviewAddExe {
private final ArchivesReviewGateway archivesReviewGateway;
private final ArchivesReviewRecordRepository archivesReviewRecordRepository;
@Transactional(rollbackFor = Exception.class)
public boolean execute(ArchivesReviewAddCmd cmd) {
ArchivesReviewE archivesReviewE = new ArchivesReviewE();
SSOUser ssoUser = AuthContext.getCurrentUser();
List<ArchivesReviewRecordAddCmd> archivesReviewRecordAddCmdList = cmd.getArchivesReviewRecordAddCmdList();
BeanUtils.copyProperties(cmd, archivesReviewE);
archivesReviewE.init(ssoUser.getTenantId());
boolean res = false;
try {
res = archivesReviewGateway.add(archivesReviewE);
if (archivesReviewRecordAddCmdList != null && archivesReviewRecordAddCmdList.size() > 0){
ArchivesReviewRecordE archivesReviewRecordE = new ArchivesReviewRecordE();
List<ArchivesReviewRecordE> archivesReviewRecordEList = BeanUtil.copyToList(archivesReviewRecordAddCmdList, ArchivesReviewRecordE.class);
archivesReviewRecordE.initList(archivesReviewRecordEList, archivesReviewE.getArchivesReviewId());
archivesReviewRecordRepository.saveBatch(BeanUtil.copyToList(archivesReviewRecordEList, ArchivesReviewRecordDO.class));
}
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

@ -0,0 +1,41 @@
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);
archivesReviewRecordE.init();
boolean res = false;
try {
res = archivesReviewRecordGateway.add(archivesReviewRecordE);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

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

View File

@ -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("修改失败");
}
}
}

View File

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

View File

@ -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("修改失败");
}
}
}

View File

@ -0,0 +1,24 @@
package com.zcloud.edu.command.convertor.archives;
import com.zcloud.edu.dto.clientobject.archives.ArchivesPdfFileCO;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesPdfFileDO;
import org.mapstruct.Mapper;
import java.util.List;
/**
* web-app
*
* @Author zhangyue
* @Date 2026-02-02 10:32:41
*/
@Mapper(componentModel = "spring")
public interface ArchivesPdfFileCoConvertor {
/**
* @param archivesPdfFileDOs
* @return
*/
List<ArchivesPdfFileCO> converDOsToCOs(List<ArchivesPdfFileDO> archivesPdfFileDOs);
}

View File

@ -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<ArchivesReviewCO> converDOsToCOs(List<ArchivesReviewDO> archivesReviewDOs);
}

View File

@ -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<ArchivesReviewRecordCO> converDOsToCOs(List<ArchivesReviewRecordDO> archivesReviewRecordDOs);
}

View File

@ -0,0 +1,42 @@
package com.zcloud.edu.command.query.archives;
import com.alibaba.cola.dto.PageResponse;
import com.zcloud.edu.command.convertor.archives.ArchivesPdfFileCoConvertor;
import com.zcloud.edu.dto.archives.ArchivesPdfFilePageQry;
import com.zcloud.edu.dto.clientobject.archives.ArchivesPdfFileCO;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesPdfFileDO;
import com.zcloud.edu.persistence.repository.archives.ArchivesPdfFileRepository;
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-02-02 10:32:42
*/
@Component
@AllArgsConstructor
public class ArchivesPdfFileQueryExe {
private final ArchivesPdfFileRepository archivesPdfFileRepository;
private final ArchivesPdfFileCoConvertor archivesPdfFileCoConvertor;
/**
*
*
* @param archivesPdfFilePageQry
* @return
*/
public PageResponse<ArchivesPdfFileCO> execute(ArchivesPdfFilePageQry archivesPdfFilePageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(archivesPdfFilePageQry);
PageResponse<ArchivesPdfFileDO> pageResponse = archivesPdfFileRepository.listPage(params);
List<ArchivesPdfFileCO> examCenterCOS = archivesPdfFileCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -0,0 +1,71 @@
package com.zcloud.edu.command.query.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.command.convertor.archives.ArchivesReviewCoConvertor;
import com.zcloud.edu.command.convertor.archives.ArchivesReviewRecordCoConvertor;
import com.zcloud.edu.domain.model.archives.ArchivesReviewE;
import com.zcloud.edu.dto.archives.ArchivesReviewPageQry;
import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO;
import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewRecordCO;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO;
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO;
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRecordRepository;
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
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;
private final ArchivesReviewRecordRepository archivesReviewRecordRepository;
private final ArchivesReviewRecordCoConvertor archivesReviewRecordCoConvertor;
/**
*
*
* @param archivesReviewPageQry
* @return
*/
public PageResponse<ArchivesReviewCO> execute(ArchivesReviewPageQry archivesReviewPageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(archivesReviewPageQry);
PageResponse<ArchivesReviewDO> pageResponse = archivesReviewRepository.listPage(params);
List<ArchivesReviewCO> examCenterCOS = archivesReviewCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public SingleResponse<ArchivesReviewCO> executeGetInfoById(Long id) {
ArchivesReviewE archivesReviewE = new ArchivesReviewE();
ArchivesReviewDO archivesReviewDO = archivesReviewRepository.getInfoById(id);
BeanUtils.copyProperties(archivesReviewDO, archivesReviewE);
SSOUser ssoUser = AuthContext.getCurrentUser();
archivesReviewE.initInfo(ssoUser.getTenantName());
BeanUtils.copyProperties(archivesReviewE, archivesReviewDO);
ArchivesReviewCO archivesReviewCO = new ArchivesReviewCO();
BeanUtils.copyProperties(archivesReviewDO, archivesReviewCO);
List<ArchivesReviewRecordDO> arrList =archivesReviewRecordRepository.listByReviewId(archivesReviewDO.getArchivesReviewId());
List<ArchivesReviewRecordCO> recordList = archivesReviewRecordCoConvertor.converDOsToCOs(arrList);
archivesReviewCO.setArchivesReviewRecordList(recordList);
return SingleResponse.of(archivesReviewCO);
}
}

View File

@ -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<ArchivesReviewRecordCO> execute(ArchivesReviewRecordPageQry archivesReviewRecordPageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(archivesReviewRecordPageQry);
PageResponse<ArchivesReviewRecordDO> pageResponse = archivesReviewRecordRepository.listPage(params);
List<ArchivesReviewRecordCO> examCenterCOS = archivesReviewRecordCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -2,6 +2,7 @@ package com.zcloud.edu.command.query.resource;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.command.convertor.resource.ExamPaperCoConvertor;
import com.zcloud.edu.command.convertor.resource.QuestionCoConvertor;
@ -84,7 +85,7 @@ public class ExamPaperQueryExe {
public ExamPaperCO getInfoById(Long id) {
ExamPaperDO examPaperDO =examPaperRepository.getInfoById(id);
if(examPaperDO==null){
throw new RuntimeException("试卷不存在");
throw new BizException("试卷不存在");
}
ExamPaperCO examPaperCO =new ExamPaperCO();
BeanUtil.copyProperties(examPaperDO,examPaperCO);

View File

@ -1,5 +1,6 @@
package com.zcloud.edu.command.query.study;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.edu.command.convertor.study.ClassCurriculumChapterCoConvertor;
@ -8,6 +9,7 @@ import com.zcloud.edu.domain.gateway.study.ClassCurriculumChapterGateway;
import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO;
import com.zcloud.edu.dto.clientobject.study.ClassCurriculumChapterCO;
import com.zcloud.edu.dto.study.ClassCurriculumPageQry;
import com.zcloud.edu.dto.study.ClassCurriculumQry;
import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO;
import com.zcloud.edu.persistence.dataobject.study.ClassCurriculumDO;
import com.zcloud.edu.persistence.repository.study.ClassCurriculumChapterRepository;
@ -21,6 +23,7 @@ import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -57,15 +60,31 @@ public class ClassCurriculumQueryExe {
*/
public SingleResponse<ClassCurriculumCO> executeGetInfoById(Long id) {
ClassCurriculumDO classCurriculumDO = classCurriculumRepository.getInfoById(id);
List<ClassCurriculumChapterDO> classCurriculumChapterDOList = classCurriculumChapterRepository.listByCurriculumId(classCurriculumDO.getClassCurriculumId());
List<ClassCurriculumChapterDO> classCurriculumChapterDOList = classCurriculumChapterRepository.listByClassCurriculumId(classCurriculumDO.getClassCurriculumId());
ClassCurriculumCO classCurriculumCO = new ClassCurriculumCO();
BeanUtils.copyProperties(classCurriculumDO, classCurriculumCO);
List<ClassCurriculumChapterCO> classCurriculumChapterCOList = classCurriculumChapterCoConvertor.converDOsToCOs(classCurriculumChapterDOList);
long videoCount = classCurriculumChapterCOList.stream().filter(bean -> !ObjectUtils.isEmpty(bean.getVideoCoursewareId())).count();
Tools.buildEntityTree(classCurriculumChapterCOList, "curriculumChapterId", "parentId", "children", "0");
classCurriculumCO.setChapterList(classCurriculumChapterCOList);
List<ClassCurriculumChapterCO> resultList = Tools.buildEntityTree(classCurriculumChapterCOList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0");
classCurriculumCO.setCurriculumChapterCOList(resultList);
classCurriculumCO.setVideoCount(videoCount);
return SingleResponse.of(classCurriculumCO);
}
public MultiResponse<ClassCurriculumCO> executeListAll(ClassCurriculumQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<ClassCurriculumDO> curList = classCurriculumRepository.listAll(params);
List<String> classCurriculumIds = curList.stream().map(ClassCurriculumDO::getClassCurriculumId).collect(Collectors.toList());
List<ClassCurriculumChapterDO> chapterList = classCurriculumChapterRepository.listByClassCurriculumIds(classCurriculumIds);
List<ClassCurriculumChapterCO> chapterCoList = classCurriculumChapterCoConvertor.converDOsToCOs(chapterList);
List<ClassCurriculumChapterCO> resultList = Tools.buildEntityTree(chapterCoList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0");
Map<String, List<ClassCurriculumChapterCO>> chapterMap = resultList.stream().collect(Collectors.groupingBy(ClassCurriculumChapterCO::getClassCurriculumId));
List<ClassCurriculumCO> curriculumList = classCurriculumCoConvertor.converDOsToCOs(curList);
curriculumList.stream().forEach(bean -> {
bean.setCurriculumChapterCOList(chapterMap.get(bean.getClassCurriculumId()));
});
return MultiResponse.of(curriculumList);
}
}

View File

@ -1,17 +1,22 @@
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.ClassExamPaperCoConvertor;
import com.zcloud.edu.dto.clientobject.resource.QuestionCO;
import com.zcloud.edu.dto.clientobject.study.ClassExamPaperCO;
import com.zcloud.edu.dto.study.ClassExamPaperPageQry;
import com.zcloud.edu.persistence.dataobject.QuestionDO;
import com.zcloud.edu.persistence.dataobject.study.ClassExamPaperDO;
import com.zcloud.edu.persistence.repository.resource.QuestionRepository;
import com.zcloud.edu.persistence.repository.study.ClassExamPaperRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -27,6 +32,7 @@ import java.util.Map;
public class ClassExamPaperQueryExe {
private final ClassExamPaperRepository classExamPaperRepository;
private final ClassExamPaperCoConvertor classExamPaperCoConvertor;
private final QuestionRepository questionRepository;
/**
*
@ -52,5 +58,19 @@ public class ClassExamPaperQueryExe {
BeanUtils.copyProperties(classExamPaperDO, classExamPaperCO);
return SingleResponse.of(classExamPaperCO);
}
/**
*
* @param classId
* @return
*/
public SingleResponse<ClassExamPaperCO> executeGetInfoByClassId(String classId) {
ClassExamPaperDO classExamPaperDO = classExamPaperRepository.findByClassId(classId);
List<QuestionDO> questionDOList = questionRepository.getInfoByExamPaperId(classExamPaperDO.getExamPaperId());
List<QuestionCO> questionCOList = BeanUtil.copyToList(questionDOList, QuestionCO.class);
ClassExamPaperCO classExamPaperCO = new ClassExamPaperCO();
BeanUtils.copyProperties(classExamPaperDO, classExamPaperCO);
classExamPaperCO.setQuestionList(questionCOList);
return SingleResponse.of(classExamPaperCO);
}
}

View File

@ -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,19 @@ public class ClassQueryExe {
BeanUtils.copyProperties(classDO, classCO);
return SingleResponse.of(classCO);
}
public MultiResponse<StudentCO> executeCountStuClass(ClassCountQry qry){
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<StudentDO> studentDOList = studentRepository.countStuClass(params);
List<StudentCO> studentCOList = BeanUtil.copyToList(studentDOList, StudentCO.class);
return MultiResponse.of(studentCOList);
}
public PageResponse<StudentCO> executeListStudentClass(ClassPageQry classPageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(classPageQry);
PageResponse<StudentDO> pageResponse = classRepository.listStudentClassPage(params);
List<StudentCO> examCenterCOS = studentCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -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,24 @@ public class StudentExamRecordQueryExe {
List<StudentExamRecordCO> examCenterCOS = studentExamRecordCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public SingleResponse<StudentExamRecordCO> executeGetInfoByStudentId(String studentId){
StudentExamRecordDO studentExamRecordDO = studentExamRecordRepository.getInfoByStudentId(studentId);
StudentExamRecordCO studentExamRecordCO = new StudentExamRecordCO();
BeanUtils.copyProperties(studentExamRecordDO, studentExamRecordCO);
List<StudentExamRecordItemDO> recordList = studentExamRecordItemRepository.listByExamRecordId(studentExamRecordDO.getStudentExamRecordId());
List<StudentExamRecordItemCO> recordCoList = studentExamRecordItemCoConvertor.converDOsToCOs(recordList);
studentExamRecordCO.setExamRecordItemList(recordCoList);
return SingleResponse.of(studentExamRecordCO);
}
public SingleResponse<StudentExamRecordCO> executeGetInfoById(Long id){
StudentExamRecordDO studentExamRecordDO = studentExamRecordRepository.getInfoById(id);
StudentExamRecordCO studentExamRecordCO = new StudentExamRecordCO();
BeanUtils.copyProperties(studentExamRecordDO, studentExamRecordCO);
List<StudentExamRecordItemDO> recordList = studentExamRecordItemRepository.listByExamRecordId(studentExamRecordDO.getStudentExamRecordId());
List<StudentExamRecordItemCO> recordCoList = studentExamRecordItemCoConvertor.converDOsToCOs(recordList);
studentExamRecordCO.setExamRecordItemList(recordCoList);
return SingleResponse.of(studentExamRecordCO);
}
}

View File

@ -1,15 +1,29 @@
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.zcloud.edu.command.convertor.study.StudentCoConvertor;
import com.zcloud.edu.domain.model.archives.ClassArchivesE;
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.clientobject.study.StudentSignCO;
import com.zcloud.edu.dto.data.archives.ClassArchivesDTO;
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
import com.zcloud.edu.dto.study.StudentCountQry;
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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -25,6 +39,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 +56,184 @@ public class StudentQueryExe {
List<StudentCO> examCenterCOS = studentCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public PageResponse<StudentCO> executelistPageClassByStudent(StudentPageQry studentPageQry) {
Map<String, Object> params = PageQueryHelper.toHashMap(studentPageQry);
PageResponse<StudentDO> pageResponse = studentRepository.listPageClassByStudent(params);
List<StudentCO> examCenterCOS = studentCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public SingleResponse<PersonArchivesDTO> 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);
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("classId", studentDO.getClassId());
// 课程信息
List<ClassCurriculumDO> curEList = classCurriculumRepository.listAll(params);
List<ClassCurriculumE> classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class);
// 课件信息
List<ClassCurriculumChapterDO> classChapterList = classCurriculumChapterRepository.listVideoByClassId(classE.getClassId());
List<ClassCurriculumChapterE> 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<PersonArchivesDTO> 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);
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("classId", studentDO.getClassId());
// 课程信息
List<ClassCurriculumDO> curEList = classCurriculumRepository.listAll(params);
List<ClassCurriculumE> 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<PersonArchivesDTO> 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);
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("classId", studentDO.getClassId());
// 课程信息
List<ClassCurriculumDO> curEList = classCurriculumRepository.listAll(params);
List<ClassCurriculumE> classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class);
// 签到照片
params.put("studentId", studentDO.getStudentId());
List<StudentSignDO> studentSignList = studentSignRepository.listAllByStudentId(params);
List<StudentSignE> 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);
}
public SingleResponse<ClassArchivesDTO> executeGetClassSign(ClassArchivesQry qry){
ClassDO classDO = classRepository.getByClassId(qry.getClassId());
ClassE classE = new ClassE();
long stuCount = studentRepository.countByClassId(qry.getClassId());
BeanUtils.copyProperties(classDO, classE);
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("classId", qry.getClassId());
// 课程信息
List<ClassCurriculumDO> curEList = classCurriculumRepository.listAll(params);
List<ClassCurriculumE> classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class);
List<StudentSignDO> studentSignList = studentSignRepository.listAll(params);
ClassArchivesE classArchivesE = new ClassArchivesE();
classArchivesE.initClassSign(classE, stuCount, classCurList);
ClassArchivesDTO classArchivesDTO = new ClassArchivesDTO();
BeanUtils.copyProperties(classArchivesE, classArchivesDTO);
classArchivesDTO.setSignList(BeanUtil.copyToList(studentSignList, StudentSignCO.class));
return SingleResponse.of(classArchivesDTO);
}
public Long executeCountStudent(String classId){
return studentRepository.countByClassId(classId);
}
public SingleResponse<ClassArchivesDTO> executeGetClassExamResult(ClassArchivesQry qry){
// 班级信息
ClassDO classDO = classRepository.getByClassId(qry.getClassId());
ClassE classE = new ClassE();
BeanUtils.copyProperties(classDO, classE);
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("classId", qry.getClassId());
// 学员总数
List<StudentDO> stuList = studentRepository.listAll(params);
List<StudentCO> stuCOList = BeanUtil.copyToList(stuList, StudentCO.class);
// // 课程信息
// List<ClassCurriculumDO> curEList = classCurriculumRepository.listAll(params);
// List<ClassCurriculumE> classCurList = BeanUtil.copyToList(curEList, ClassCurriculumE.class);
// 签到人员数量
params.put("type",1);
List<StudentSignDO> studentSignList = studentSignRepository.listAll(params);
ClassArchivesE classArchivesE = new ClassArchivesE();
// 整理数据
classArchivesE.initClassExamResult(classE, stuList.size(), studentSignList.size());
ClassArchivesDTO classArchivesDTO = new ClassArchivesDTO();
BeanUtils.copyProperties(classArchivesE, classArchivesDTO);
// 获取通过和未通过学员
List<StudentCO> passStudentList = new ArrayList<StudentCO>();
List<StudentCO> failStudentList = new ArrayList<StudentCO>();
stuCOList.forEach(stu -> {
if (stu.getState() == 0){
failStudentList.add(stu);
}
if (stu.getState() == 1){
passStudentList.add(stu);
}
});
classArchivesDTO.setPassStudentList(passStudentList);
classArchivesDTO.setFailStudentList(failStudentList);
return SingleResponse.of(classArchivesDTO);
}
public MultiResponse<StudentCO> executeCountStudentByCorpId(StudentCountQry qry){
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<StudentDO> studentDOList = studentRepository.countStudentByCorpId(params);
List<StudentCO> studentCOList = BeanUtil.copyToList(studentDOList, StudentCO.class);
return MultiResponse.of(studentCOList);
}
public MultiResponse<StudentCO> executeListStudentCount(StudentCountQry qry){
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<StudentDO> studentDOList = studentRepository.listStudentCount(params);
List<StudentCO> studentCOList = BeanUtil.copyToList(studentDOList, StudentCO.class);
return MultiResponse.of(studentCOList);
}
public SingleResponse<StudentCO> executeGetInfoByStudentId(String studentId){
StudentDO studentDO = studentRepository.findInfoByStudentId(studentId);
StudentCO studentCO = BeanUtil.copyProperties(studentDO, StudentCO.class);
return SingleResponse.of(studentCO);
}
}

View File

@ -1,15 +1,33 @@
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.alibaba.cola.exception.BizException;
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;
import com.zcloud.edu.dto.study.StudentSignVerifyQry;
import com.zcloud.edu.persistence.dataobject.study.ClassDO;
import com.zcloud.edu.persistence.dataobject.study.StudentDO;
import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordDO;
import com.zcloud.edu.persistence.dataobject.study.StudentSignDO;
import com.zcloud.edu.persistence.repository.study.ClassRepository;
import com.zcloud.edu.persistence.repository.study.StudentExamRecordRepository;
import com.zcloud.edu.persistence.repository.study.StudentRepository;
import com.zcloud.edu.persistence.repository.study.StudentSignRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -25,6 +43,9 @@ import java.util.Map;
public class StudentSignQueryExe {
private final StudentSignRepository studentSignRepository;
private final StudentSignCoConvertor studentSignCoConvertor;
private final ClassRepository classRepository;
private final StudentRepository studentRepository;
private final StudentExamRecordRepository studentExamRecordRepository;
/**
*
@ -38,5 +59,44 @@ public class StudentSignQueryExe {
List<StudentSignCO> examCenterCOS = studentSignCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public MultiResponse<StudentSignCO> executeListAll(ClassAppSignQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<StudentSignDO> list = studentSignRepository.listAll(params);
List<StudentSignCO> studentSignCOS = studentSignCoConvertor.converDOsToCOs(list);
return MultiResponse.of(studentSignCOS);
}
public SingleResponse<StudentCO> executeVerify(StudentSignVerifyQry qry) {
ClassDO classDO = classRepository.getByClassId(qry.getClassId());
ClassE classE = new ClassE();
BeanUtils.copyProperties(classDO, classE);
classE.isBegin();
StudentDO studentDO = studentRepository.findByClassIdAndPhone(classDO.getClassId(), qry.getPhone());
if (studentDO == null){
throw new BizException("您不在此班级中");
}
if(studentDO.getState() == 1){
throw new BizException("您已经完成此班级的学习");
}
Map<String, Object> params = new HashMap<>();
params.put("studentId", studentDO.getStudentId());
params.put("type", qry.getType());
if (qry.getType() == 1){
List<StudentSignDO> list = studentSignRepository.listAllByStudentId(params);
if (list != null && list.size() > 0){
throw new BizException("您已签到");
}
} else if (qry.getType() == 2){
List<StudentExamRecordDO> list = studentExamRecordRepository.listAllByStudentId(studentDO.getStudentId());
if (list != null && list.size() == classDO.getNumberofexams()){
throw new BizException("您已经没有考试次数");
}
}
StudentCO studentCO = new StudentCO();
BeanUtils.copyProperties(studentDO, studentCO);
return SingleResponse.of(studentCO);
}
}

View File

@ -2,6 +2,7 @@ package com.zcloud.edu.command.resource;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.command.convertor.resource.QuestionCoConvertor;
import com.zcloud.edu.domain.enums.CoursewareTypeEnum;
import com.zcloud.edu.domain.gateway.resource.ExamPaperGateway;
@ -12,6 +13,7 @@ import com.zcloud.edu.dto.resource.ExamPaperAddInheritCmd;
import com.zcloud.edu.dto.resource.QuestionAddInheritCmd;
import com.zcloud.edu.persistence.dataobject.QuestionDO;
import com.zcloud.edu.persistence.repository.resource.QuestionRepository;
import com.zcloud.gbscommon.utils.Tools;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
@ -87,6 +89,9 @@ public class ExamPaperAddExe {
List<QuestionE> questionES =questionCoConvertor.converCmdsToEs(questionList);
questionES.forEach(info->{
info.setExamPaperId(examPaperE.getExamPaperId());
info.setQuestionId(Tools.get32UUID());
info.setCorpinfoId(AuthContext.getTenantId());
info.setId(null);
});
BigDecimal examScore = questionES.stream().map(QuestionE::getScore).reduce(BigDecimal.ZERO, BigDecimal::add);
//判断总分数量是否一致

View File

@ -38,7 +38,7 @@ public class ExamPaperRemoveExe {
public boolean execute(Long id) {
ExamPaperDO examPaperDO = examPaperRepository.getById(id);
if(examPaperDO==null){
throw new RuntimeException("试卷不存在");
throw new BizException("试卷不存在");
}
//企业端禁用:所属单位为股份的不能禁用
//股份端禁用:所属单位为各企业的不能禁用
@ -70,7 +70,7 @@ public class ExamPaperRemoveExe {
List<ExamPaperDO> examPaperDOList =examPaperRepository.getListByIdList(examPaperRemoveCmd.getIds());
if(CollUtil.isEmpty(examPaperDOList)){
throw new RuntimeException("试卷不存在");
throw new BizException("试卷不存在");
}
//获取试卷idlist
List<String> examPaperIdList = examPaperDOList.stream().map(ExamPaperDO::getExamPaperId).collect(Collectors.toList());

View File

@ -1,11 +1,14 @@
package com.zcloud.edu.command.study;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.domain.gateway.study.ClassGateway;
import com.zcloud.edu.domain.model.study.ClassE;
import com.zcloud.edu.dto.clientobject.study.ClassCO;
import com.zcloud.edu.dto.study.ClassAddCmd;
import com.zcloud.edu.persistence.dataobject.study.ClassDO;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
@ -24,22 +27,21 @@ public class ClassAddExe {
private final ClassGateway classGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(ClassAddCmd cmd) {
public SingleResponse<ClassCO> execute(ClassAddCmd cmd) {
ClassE classE = new ClassE();
BeanUtils.copyProperties(cmd, classE);
SSOUser ssoUser = AuthContext.getCurrentUser();
classE.initSave(ssoUser.getTenantId());
boolean res = false;
try {
res = classGateway.add(classE);
Long id = classGateway.add(classE);
classE.setId(id);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
ClassCO classCO = new ClassCO();
BeanUtils.copyProperties(classE, classCO);
return SingleResponse.of(classCO);
}
}

View File

@ -7,7 +7,12 @@ import com.zcloud.edu.domain.gateway.study.ClassCurriculumGateway;
import com.zcloud.edu.domain.model.study.ClassCurriculumChapterE;
import com.zcloud.edu.domain.model.study.ClassCurriculumE;
import com.zcloud.edu.dto.study.ClassCurriculumAddCmd;
import com.zcloud.edu.dto.study.ClassCurriculumBatchAddCmd;
import com.zcloud.edu.dto.study.ClassCurriculumChapterAddCmd;
import com.zcloud.edu.persistence.dataobject.CurriculumChapterDO;
import com.zcloud.edu.persistence.dataobject.CurriculumDO;
import com.zcloud.edu.persistence.repository.resource.CurriculumChapterRepository;
import com.zcloud.edu.persistence.repository.resource.CurriculumRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
@ -29,6 +34,8 @@ import java.util.List;
public class ClassCurriculumAddExe {
private final ClassCurriculumGateway classCurriculumGateway;
private final ClassCurriculumChapterGateway classCurriculumChapterGateway;
private final CurriculumRepository curriculumRepository;
private final CurriculumChapterRepository curriculumChapterRepository;
@Transactional(rollbackFor = Exception.class)
public boolean execute(List<ClassCurriculumAddCmd> cmdList) {
@ -40,28 +47,28 @@ public class ClassCurriculumAddExe {
BeanUtils.copyProperties(curCmd, curriculum);
BigDecimal decimal = BigDecimal.valueOf(curCmd.getVideoTotalTime());
curriculum.setVideoTotalTime(decimal);
for (ClassCurriculumChapterAddCmd chapterCmd : curCmd.getChapterList()){
for (ClassCurriculumChapterAddCmd chapterCmd : curCmd.getCurriculumChapterAddCmdList()){
ClassCurriculumChapterE chapter = new ClassCurriculumChapterE();
BeanUtils.copyProperties(chapterCmd, chapter);
if (chapterCmd.getChildren() != null && chapterCmd.getChildren().size() > 0){
for (ClassCurriculumChapterAddCmd childChapterCmd : chapterCmd.getChildren()){
if (chapterCmd.getCurriculumChapterAddCmdList() != null && chapterCmd.getCurriculumChapterAddCmdList().size() > 0){
for (ClassCurriculumChapterAddCmd childChapterCmd : chapterCmd.getCurriculumChapterAddCmdList()){
ClassCurriculumChapterE childChapter = new ClassCurriculumChapterE();
BeanUtils.copyProperties(childChapterCmd, childChapter);
if (chapter.getChildren() != null){
chapter.getChildren().add(childChapter);
if (chapter.getCurriculumChapterAddCmdList() != null){
chapter.getCurriculumChapterAddCmdList().add(childChapter);
} else {
List<ClassCurriculumChapterE> children = new ArrayList<>();
children.add(childChapter);
chapter.setChildren(children);
chapter.setCurriculumChapterAddCmdList(children);
}
}
}
if (curriculum.getChapterList() != null){
curriculum.getChapterList().add(chapter);
if (curriculum.getCurriculumChapterAddCmdList() != null){
curriculum.getCurriculumChapterAddCmdList().add(chapter);
} else {
List<ClassCurriculumChapterE> chapterList = new ArrayList<>();
chapterList.add(chapter);
curriculum.setChapterList(chapterList);
curriculum.setCurriculumChapterAddCmdList(chapterList);
}
}
classCurriculumEList.add(curriculum);
@ -75,5 +82,21 @@ public class ClassCurriculumAddExe {
}
return true;
}
@Transactional(rollbackFor = Exception.class)
public void executeBatchAdd(ClassCurriculumBatchAddCmd cmd) {
List<CurriculumDO> curList = curriculumRepository.listByCurriculumIds(cmd.getCurriculumIds());
List<CurriculumChapterDO> chapterList = curriculumChapterRepository.listByCurriculumIds(cmd.getCurriculumIds());
List<ClassCurriculumE> curEList = BeanUtil.copyToList(curList, ClassCurriculumE.class);
List<ClassCurriculumChapterE> chapterEList = BeanUtil.copyToList(chapterList, ClassCurriculumChapterE.class);
ClassCurriculumE classCurriculumE = new ClassCurriculumE();
classCurriculumE.initBatchAdd(curEList, chapterEList, cmd.getClassId());
try {
classCurriculumGateway.batchAdd(curEList);
classCurriculumChapterGateway.batchAdd(chapterEList);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}

View File

@ -1,14 +1,33 @@
package com.zcloud.edu.command.study;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.domain.gateway.study.StudentExamRecordGateway;
import com.zcloud.edu.domain.model.study.ClassExamPaperE;
import com.zcloud.edu.domain.model.study.StudentExamRecordE;
import com.zcloud.edu.domain.model.study.StudentExamRecordItemE;
import com.zcloud.edu.dto.clientobject.study.StudentExamRecordCO;
import com.zcloud.edu.dto.study.StudentExamRecordAddCmd;
import com.zcloud.edu.dto.study.StudentExamRecordItemAddCmd;
import com.zcloud.edu.persistence.dataobject.study.ClassDO;
import com.zcloud.edu.persistence.dataobject.study.ClassExamPaperDO;
import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordDO;
import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordItemDO;
import com.zcloud.edu.persistence.repository.study.ClassExamPaperRepository;
import com.zcloud.edu.persistence.repository.study.ClassRepository;
import com.zcloud.edu.persistence.repository.study.StudentExamRecordItemRepository;
import com.zcloud.edu.persistence.repository.study.StudentExamRecordRepository;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
/**
* web-app
@ -20,21 +39,41 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class StudentExamRecordAddExe {
private final StudentExamRecordGateway studentExamRecordGateway;
private final ClassExamPaperRepository classExamPaperRepository;
private final StudentExamRecordItemRepository studentExamRecordItemRepository;
private final StudentExamRecordRepository studentExamRecordRepository;
private final ClassRepository classRepository;
@Transactional(rollbackFor = Exception.class)
public boolean execute(StudentExamRecordAddCmd cmd) {
public SingleResponse<StudentExamRecordCO> execute(StudentExamRecordAddCmd cmd) {
ClassDO classDO = classRepository.getByClassId(cmd.getClassId());
Integer count = studentExamRecordRepository.countByStudentId(cmd.getStudentId());
if (count >= classDO.getNumberofexams()) {
throw new BizException("您已经没有考试次数");
}
StudentExamRecordE studentExamRecordE = new StudentExamRecordE();
ClassExamPaperDO classExamPaper = classExamPaperRepository.findByClassId(cmd.getClassId());
List<StudentExamRecordItemAddCmd> questionList = cmd.getQuestionList();
List<StudentExamRecordItemE> queList = BeanUtil.copyToList(questionList, StudentExamRecordItemE.class);
BeanUtils.copyProperties(cmd, studentExamRecordE);
studentExamRecordE.submit(classExamPaper.getPassScore(), queList);
boolean res = false;
try {
res = studentExamRecordGateway.add(studentExamRecordE);
studentExamRecordItemRepository.saveBatch(BeanUtil.copyToList(queList, StudentExamRecordItemDO.class));
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
StudentExamRecordCO studentExamRecordCO = new StudentExamRecordCO();
BeanUtils.copyProperties(studentExamRecordE, studentExamRecordCO);
studentExamRecordCO.setSurplusExamNum(classDO.getNumberofexams() - count - 1);
return SingleResponse.of(studentExamRecordCO);
}
}

View File

@ -3,11 +3,21 @@ 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;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.io.IOException;
/**
@ -20,21 +30,44 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class StudentSignAddExe {
private final StudentSignGateway studentSignGateway;
private final StudentRepository studentRepository;
@DubboReference
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(stu.getPhone());
if (student == null || ObjectUtils.isEmpty(student.getUserAvatarUrl())) {
throw new BizException("您还没有录入人脸");
}
String faceUrl = null;
try {
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";
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;
}
}

View File

@ -4,11 +4,16 @@ 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.study.StudentSignUpdateCmd;
import com.zcloud.edu.persistence.dataobject.study.StudentDO;
import com.zcloud.edu.persistence.repository.study.StudentRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
/**
* web-app
@ -20,12 +25,22 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class StudentSignUpdateExe {
private final StudentSignGateway studentSignGateway;
private final StudentRepository studentRepository;
@Transactional(rollbackFor = Exception.class)
public void execute(StudentSignUpdateCmd studentSignUpdateCmd) {
StudentSignE studentSignE = new StudentSignE();
BeanUtils.copyProperties(studentSignUpdateCmd, studentSignE);
boolean res = studentSignGateway.update(studentSignE);
Map<String, Object> params = new HashMap<>();
if (studentSignUpdateCmd.getType() == 1){
params.put("signFlag",1);
} else if (studentSignUpdateCmd.getType() == 2){
params.put("examSignFlag",1);
}
params.put("studentId", studentSignUpdateCmd.getStudentId());
studentRepository.updateStudent(params);
if (!res) {
throw new BizException("修改失败");
}

View File

@ -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.ArchivesPdfFileServiceI;
import com.zcloud.edu.command.archives.ArchivesPdfFileAddExe;
import com.zcloud.edu.command.archives.ArchivesPdfFileRemoveExe;
import com.zcloud.edu.command.archives.ArchivesPdfFileUpdateExe;
import com.zcloud.edu.command.query.archives.ArchivesPdfFileQueryExe;
import com.zcloud.edu.dto.archives.ArchivesPdfFileAddCmd;
import com.zcloud.edu.dto.archives.ArchivesPdfFilePageQry;
import com.zcloud.edu.dto.archives.ArchivesPdfFileUpdateCmd;
import com.zcloud.edu.dto.clientobject.archives.ArchivesPdfFileCO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* web-app
*
* @Author zhangyue
* @Date 2026-02-02 10:32:42
*/
@Service
@AllArgsConstructor
public class ArchivesPdfFileServiceImpl implements ArchivesPdfFileServiceI {
private final ArchivesPdfFileAddExe archivesPdfFileAddExe;
private final ArchivesPdfFileUpdateExe archivesPdfFileUpdateExe;
private final ArchivesPdfFileRemoveExe archivesPdfFileRemoveExe;
private final ArchivesPdfFileQueryExe archivesPdfFileQueryExe;
@Override
public PageResponse<ArchivesPdfFileCO> listPage(ArchivesPdfFilePageQry qry) {
return archivesPdfFileQueryExe.execute(qry);
}
@Override
public SingleResponse add(ArchivesPdfFileAddCmd cmd) {
archivesPdfFileAddExe.execute(cmd);
return SingleResponse.buildSuccess();
}
@Override
public void edit(ArchivesPdfFileUpdateCmd archivesPdfFileUpdateCmd) {
archivesPdfFileUpdateExe.execute(archivesPdfFileUpdateCmd);
}
@Override
public void remove(Long id) {
archivesPdfFileRemoveExe.execute(id);
}
@Override
public void removeBatch(Long[] ids) {
archivesPdfFileRemoveExe.execute(ids);
}
}

View File

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

View File

@ -0,0 +1,64 @@
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<ArchivesReviewCO> 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);
}
@Override
public SingleResponse<ArchivesReviewCO> getInfoById(Long id) {
return archivesReviewQueryExe.executeGetInfoById(id);
}
}

View File

@ -1,5 +1,6 @@
package com.zcloud.edu.service.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;
@ -9,9 +10,7 @@ import com.zcloud.edu.command.study.ClassCurriculumAddExe;
import com.zcloud.edu.command.study.ClassCurriculumRemoveExe;
import com.zcloud.edu.command.study.ClassCurriculumUpdateExe;
import com.zcloud.edu.dto.clientobject.study.ClassCurriculumCO;
import com.zcloud.edu.dto.study.ClassCurriculumAddCmd;
import com.zcloud.edu.dto.study.ClassCurriculumPageQry;
import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd;
import com.zcloud.edu.dto.study.*;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@ -63,5 +62,16 @@ public class ClassCurriculumServiceImpl implements ClassCurriculumServiceI {
public SingleResponse<ClassCurriculumCO> getInfoById(Long id) {
return classCurriculumQueryExe.executeGetInfoById(id);
}
@Override
public Response batchAdd(ClassCurriculumBatchAddCmd cmd) {
classCurriculumAddExe.executeBatchAdd(cmd);
return Response.buildSuccess();
}
@Override
public MultiResponse<ClassCurriculumCO> listAll(ClassCurriculumQry qry) {
return classCurriculumQueryExe.executeListAll(qry);
}
}

View File

@ -67,5 +67,11 @@ public class ClassExamPaperServiceImpl implements ClassExamPaperServiceI {
public SingleResponse<ClassExamPaperCO> getInfoById(Long id) {
return classExamPaperQueryExe.executeGetInfoById(id);
}
@Override
public SingleResponse<ClassExamPaperCO> getInfoByClassId(String classId) {
return classExamPaperQueryExe.executeGetInfoByClassId(classId);
}
}

View File

@ -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;
@ -38,10 +36,10 @@ public class ClassServiceImpl implements ClassServiceI {
}
@Override
public SingleResponse add(ClassAddCmd cmd) {
public SingleResponse<ClassCO> add(ClassAddCmd cmd) {
classAddExe.execute(cmd);
return SingleResponse.buildSuccess();
return classAddExe.execute(cmd);
}
@Override
@ -85,5 +83,15 @@ public class ClassServiceImpl implements ClassServiceI {
public SingleResponse<ClassCountDTO> statisticsCount(ClassPageQry qry) {
return classQueryExe.executeStatisticsCount(qry);
}
@Override
public MultiResponse<StudentCO> countStuClass(ClassCountQry qry) {
return classQueryExe.executeCountStuClass(qry);
}
@Override
public PageResponse<StudentCO> listStudentClass(ClassPageQry qry) {
return classQueryExe.executeListStudentClass(qry);
}
}

View File

@ -1,6 +1,7 @@
package com.zcloud.edu.service.study;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.edu.api.study.StudentExamRecordServiceI;
import com.zcloud.edu.command.query.study.StudentExamRecordQueryExe;
@ -14,6 +15,8 @@ import com.zcloud.edu.dto.study.StudentExamRecordUpdateCmd;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
/**
* web-app
*
@ -35,10 +38,8 @@ public class StudentExamRecordServiceImpl implements StudentExamRecordServiceI {
}
@Override
public SingleResponse add(StudentExamRecordAddCmd cmd) {
studentExamRecordAddExe.execute(cmd);
return SingleResponse.buildSuccess();
public SingleResponse<StudentExamRecordCO> add(StudentExamRecordAddCmd cmd) {
return studentExamRecordAddExe.execute(cmd);
}
@Override
@ -55,5 +56,15 @@ public class StudentExamRecordServiceImpl implements StudentExamRecordServiceI {
public void removeBatch(Long[] ids) {
studentExamRecordRemoveExe.execute(ids);
}
@Override
public SingleResponse<StudentExamRecordCO> getInfoByStudentId(String studentId) {
return studentExamRecordQueryExe.executeGetInfoByStudentId(studentId);
}
@Override
public SingleResponse<StudentExamRecordCO> getInfoById(Long id) {
return studentExamRecordQueryExe.executeGetInfoById(id);
}
}

View File

@ -1,5 +1,6 @@
package com.zcloud.edu.service.study;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.edu.api.study.StudentServiceI;
@ -7,12 +8,17 @@ 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.ClassArchivesDTO;
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
import com.zcloud.edu.dto.study.StudentAddCmd;
import com.zcloud.edu.dto.study.StudentCountQry;
import com.zcloud.edu.dto.study.StudentPageQry;
import com.zcloud.edu.dto.study.StudentUpdateCmd;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@ -36,6 +42,11 @@ public class StudentServiceImpl implements StudentServiceI {
return studentQueryExe.execute(qry);
}
@Override
public PageResponse<StudentCO> listPageClassByStudent(StudentPageQry qry) {
return studentQueryExe.executelistPageClassByStudent(qry);
}
@Override
public SingleResponse add(List<StudentAddCmd> cmdList) {
@ -57,5 +68,49 @@ public class StudentServiceImpl implements StudentServiceI {
public void removeBatch(Long[] ids) {
studentRemoveExe.execute(ids);
}
@Override
public SingleResponse<PersonArchivesDTO> getAttendanceRecord(ClassArchivesQry qry) {
return studentQueryExe.executeAttendanceRecord(qry);
}
@Override
public SingleResponse<PersonArchivesDTO> getStudyArchives(ClassArchivesQry qry) {
return studentQueryExe.executeStudyArchives(qry);
}
@Override
public SingleResponse<PersonArchivesDTO> getStudyRecord(ClassArchivesQry qry) {
return studentQueryExe.executeStudyRecord(qry);
}
@Override
public SingleResponse<ClassArchivesDTO> getClassSign(ClassArchivesQry qry) {
return studentQueryExe.executeGetClassSign(qry);
}
@Override
public Long countStudent(String classId) {
return studentQueryExe.executeCountStudent(classId);
}
@Override
public SingleResponse<ClassArchivesDTO> getClassExamResult(ClassArchivesQry qry) {
return studentQueryExe.executeGetClassExamResult(qry);
}
@Override
public MultiResponse<StudentCO> countStudentByCorpId(StudentCountQry qry) {
return studentQueryExe.executeCountStudentByCorpId(qry);
}
@Override
public MultiResponse<StudentCO> listStudentCount(StudentCountQry qry) {
return studentQueryExe.executeListStudentCount(qry);
}
@Override
public SingleResponse<StudentCO> getInfoByStudentId(String studentId) {
return studentQueryExe.executeGetInfoByStudentId(studentId);
}
}

View File

@ -1,16 +1,17 @@
package com.zcloud.edu.service.study;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.edu.api.study.StudentSignServiceI;
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.StudentSignAddCmd;
import com.zcloud.edu.dto.study.StudentSignPageQry;
import com.zcloud.edu.dto.study.StudentSignUpdateCmd;
import com.zcloud.edu.dto.study.*;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@ -35,10 +36,9 @@ public class StudentSignServiceImpl implements StudentSignServiceI {
}
@Override
public SingleResponse add(StudentSignAddCmd cmd) {
public SingleResponse<StudentSignCO> add(StudentSignAddCmd cmd) {
studentSignAddExe.execute(cmd);
return SingleResponse.buildSuccess();
return SingleResponse.of(studentSignAddExe.execute(cmd));
}
@Override
@ -55,5 +55,15 @@ public class StudentSignServiceImpl implements StudentSignServiceI {
public void removeBatch(Long[] ids) {
studentSignRemoveExe.execute(ids);
}
@Override
public MultiResponse<StudentSignCO> listAll(ClassAppSignQry qry) {
return studentSignQueryExe.executeListAll(qry);
}
@Override
public SingleResponse<StudentCO> verify(StudentSignVerifyQry qry) {
return studentSignQueryExe.executeVerify(qry);
}
}

View File

@ -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.ArchivesPdfFileAddCmd;
import com.zcloud.edu.dto.archives.ArchivesPdfFilePageQry;
import com.zcloud.edu.dto.archives.ArchivesPdfFileUpdateCmd;
import com.zcloud.edu.dto.clientobject.archives.ArchivesPdfFileCO;
/**
* web-client
*
* @Author zhangyue
* @Date 2026-02-02 10:32:42
*/
public interface ArchivesPdfFileServiceI {
PageResponse<ArchivesPdfFileCO> listPage(ArchivesPdfFilePageQry qry);
SingleResponse<ArchivesPdfFileCO> add(ArchivesPdfFileAddCmd cmd);
void edit(ArchivesPdfFileUpdateCmd cmd);
void remove(Long id);
void removeBatch(Long[] ids);
}

View File

@ -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<ArchivesReviewRecordCO> listPage(ArchivesReviewRecordPageQry qry);
SingleResponse<ArchivesReviewRecordCO> add(ArchivesReviewRecordAddCmd cmd);
void edit(ArchivesReviewRecordUpdateCmd cmd);
void remove(Long id);
void removeBatch(Long[] ids);
}

View File

@ -0,0 +1,30 @@
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<ArchivesReviewCO> listPage(ArchivesReviewPageQry qry);
SingleResponse<ArchivesReviewCO> add(ArchivesReviewAddCmd cmd);
void edit(ArchivesReviewUpdateCmd cmd);
void remove(Long id);
void removeBatch(Long[] ids);
SingleResponse<ArchivesReviewCO> getInfoById(Long id);
}

View File

@ -1,13 +1,13 @@
package com.zcloud.edu.api.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.dto.clientobject.study.ClassCurriculumCO;
import com.zcloud.edu.dto.study.ClassCurriculumAddCmd;
import com.zcloud.edu.dto.study.ClassCurriculumPageQry;
import com.zcloud.edu.dto.study.ClassCurriculumUpdateCmd;
import com.zcloud.edu.dto.study.*;
import java.nio.channels.MulticastChannel;
import java.util.List;
/**
@ -28,5 +28,11 @@ public interface ClassCurriculumServiceI {
void removeBatch(Long[] ids);
SingleResponse<ClassCurriculumCO> getInfoById(Long id);
Response batchAdd(ClassCurriculumBatchAddCmd cmd);
MultiResponse<ClassCurriculumCO> listAll(ClassCurriculumQry qry);
}

View File

@ -28,5 +28,7 @@ public interface ClassExamPaperServiceI {
void removeBatch(Long[] ids);
SingleResponse<ClassExamPaperCO> getInfoById(Long id);
SingleResponse<ClassExamPaperCO> getInfoByClassId(String classId);
}

View File

@ -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,10 @@ public interface ClassServiceI {
PageResponse<ClassCO> appListPage(ClassPageQry qry);
SingleResponse<ClassCountDTO> statisticsCount(ClassPageQry qry);
MultiResponse<StudentCO> countStuClass(ClassCountQry qry);
PageResponse<StudentCO> listStudentClass(ClassPageQry qry);
}

View File

@ -23,5 +23,9 @@ public interface StudentExamRecordServiceI {
void remove(Long id);
void removeBatch(Long[] ids);
SingleResponse<StudentExamRecordCO> getInfoByStudentId(String studentId);
SingleResponse<StudentExamRecordCO> getInfoById(Long id);
}

View File

@ -1,11 +1,17 @@
package com.zcloud.edu.api.study;
import com.alibaba.cola.dto.MultiResponse;
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.ClassArchivesDTO;
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
import com.zcloud.edu.dto.study.StudentAddCmd;
import com.zcloud.edu.dto.study.StudentCountQry;
import com.zcloud.edu.dto.study.StudentPageQry;
import com.zcloud.edu.dto.study.StudentUpdateCmd;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@ -18,6 +24,8 @@ import java.util.List;
public interface StudentServiceI {
PageResponse<StudentCO> listPage(StudentPageQry qry);
PageResponse<StudentCO> listPageClassByStudent(StudentPageQry qry);
SingleResponse<StudentCO> add(List<StudentAddCmd> cmdList);
void edit(StudentUpdateCmd cmd);
@ -25,5 +33,23 @@ public interface StudentServiceI {
void remove(Long id);
void removeBatch(Long[] ids);
SingleResponse<PersonArchivesDTO> getAttendanceRecord(ClassArchivesQry qry);
SingleResponse<PersonArchivesDTO> getStudyArchives(ClassArchivesQry qry);
SingleResponse<PersonArchivesDTO> getStudyRecord(ClassArchivesQry qry);
SingleResponse<ClassArchivesDTO> getClassSign(ClassArchivesQry qry);
Long countStudent(String classId);
SingleResponse<ClassArchivesDTO> getClassExamResult(ClassArchivesQry qry);
MultiResponse<StudentCO> countStudentByCorpId(StudentCountQry qry);
MultiResponse<StudentCO> listStudentCount(StudentCountQry qry);
SingleResponse<StudentCO> getInfoByStudentId(String studentId);
}

View File

@ -1,11 +1,12 @@
package com.zcloud.edu.api.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.dto.clientobject.study.StudentCO;
import com.zcloud.edu.dto.clientobject.study.StudentSignCO;
import com.zcloud.edu.dto.study.StudentSignAddCmd;
import com.zcloud.edu.dto.study.StudentSignPageQry;
import com.zcloud.edu.dto.study.StudentSignUpdateCmd;
import com.zcloud.edu.dto.study.*;
/**
* web-client
@ -23,5 +24,9 @@ public interface StudentSignServiceI {
void remove(Long id);
void removeBatch(Long[] ids);
MultiResponse<StudentSignCO> listAll(ClassAppSignQry qry);
SingleResponse<StudentCO> verify(StudentSignVerifyQry qry);
}

View File

@ -0,0 +1,61 @@
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-02-02 10:32:41
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ArchivesPdfFileAddCmd extends Command {
@ApiModelProperty(value = "业务id", name = "archivesPdfFileId", required = true)
@NotEmpty(message = "业务id不能为空")
private String archivesPdfFileId;
@ApiModelProperty(value = "关联表名称", name = "tableName", required = true)
@NotEmpty(message = "关联表名称不能为空")
private String tableName;
@ApiModelProperty(value = "关联表id", name = "tableId", required = true)
@NotEmpty(message = "关联表id不能为空")
private String tableId;
@ApiModelProperty(value = "文件路径", name = "filePath", required = true)
@NotEmpty(message = "文件路径不能为空")
private String filePath;
@ApiModelProperty(value = "档案类型 1 一人一档 2一期一档", name = "type", required = true)
@NotNull(message = "档案类型 1 一人一档 2一期一档不能为空")
private Integer type;
@ApiModelProperty(value = "上传状态 0-上传中 1-上传成功 -1 - 上传失败 -2 已删除", name = "status", required = true)
@NotNull(message = "上传状态 0-上传中 1-上传成功 -1 - 上传失败 -2 已删除不能为空")
private Integer status;
@ApiModelProperty(value = "上传失败错误原因(上传成功则不传)", name = "errormsg", required = true)
@NotEmpty(message = "上传失败错误原因(上传成功则不传)不能为空")
private String errormsg;
@ApiModelProperty(value = "方法名称", name = "methodName", required = true)
@NotEmpty(message = "方法名称不能为空")
private String methodName;
@ApiModelProperty(value = "参数", name = "param", required = true)
@NotEmpty(message = "参数不能为空")
private String param;
}

View File

@ -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-02-02 10:32:42
*/
@Data
public class ArchivesPdfFilePageQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeArchivesPdfFileId;
}

View File

@ -0,0 +1,55 @@
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-02-02 10:32:42
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ArchivesPdfFileUpdateCmd extends Command {
@ApiModelProperty(value = "主键id", name = "id", required = true)
@NotNull(message = "主键id不能为空")
private Long id;
@ApiModelProperty(value = "业务id", name = "archivesPdfFileId", required = true)
@NotEmpty(message = "业务id不能为空")
private String archivesPdfFileId;
@ApiModelProperty(value = "关联表名称", name = "tableName", required = true)
@NotEmpty(message = "关联表名称不能为空")
private String tableName;
@ApiModelProperty(value = "关联表id", name = "tableId", required = true)
@NotEmpty(message = "关联表id不能为空")
private String tableId;
@ApiModelProperty(value = "文件路径", name = "filePath", required = true)
@NotEmpty(message = "文件路径不能为空")
private String filePath;
@ApiModelProperty(value = "档案类型 1 一人一档 2一期一档", name = "type", required = true)
@NotNull(message = "档案类型 1 一人一档 2一期一档不能为空")
private Integer type;
@ApiModelProperty(value = "上传状态 0-上传中 1-上传成功 -1 - 上传失败 -2 已删除", name = "status", required = true)
@NotNull(message = "上传状态 0-上传中 1-上传成功 -1 - 上传失败 -2 已删除不能为空")
private Integer status;
@ApiModelProperty(value = "上传失败错误原因(上传成功则不传)", name = "errormsg", required = true)
@NotEmpty(message = "上传失败错误原因(上传成功则不传)不能为空")
private String errormsg;
@ApiModelProperty(value = "方法名称", name = "methodName", required = true)
@NotEmpty(message = "方法名称不能为空")
private String methodName;
@ApiModelProperty(value = "参数", name = "param", required = true)
@NotEmpty(message = "参数不能为空")
private String param;
}

View File

@ -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;
import java.util.List;
/**
* 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)
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)
private Long corpinfoId;
@ApiModelProperty(value = "编写单位", name = "corpName", required = true)
@NotEmpty(message = "编写单位不能为空")
private String corpName;
@ApiModelProperty(value = "编写时间", name = "writeDate", required = true)
@NotNull(message = "编写时间不能为空")
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 = "会审时间不能为空")
private LocalDateTime auditDate;
@ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true)
@NotEmpty(message = "会审意见不能为空")
private String reviewOpinions;
@ApiModelProperty(value = "安全培训教材会审情况", name = "archivesReviewRecordAddCmdList", required = true)
private List<ArchivesReviewRecordAddCmd> archivesReviewRecordAddCmdList;
}

View File

@ -0,0 +1,29 @@
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`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeArchivesReviewId;
private String eqClassId;
}

View File

@ -0,0 +1,45 @@
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 = "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;
}

View File

@ -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`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeArchivesReviewRecordId;
}

View File

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

View File

@ -0,0 +1,54 @@
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 = "id", name = "id", required = true)
@NotNull(message = "id不能为空")
private Long id;
@ApiModelProperty(value = "初版书号", name = "bookNum", required = true)
@NotEmpty(message = "初版书号不能为空")
private String bookNum;
@ApiModelProperty(value = "编写单位", name = "corpName", required = true)
@NotEmpty(message = "编写单位不能为空")
private String corpName;
@ApiModelProperty(value = "编写时间", name = "writeDate", required = true)
@NotNull(message = "编写时间不能为空")
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 = "会审时间不能为空")
private LocalDateTime auditDate;
@ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true)
@NotEmpty(message = "会审意见不能为空")
private String reviewOpinions;
}

View File

@ -0,0 +1,31 @@
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`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private Long stuId;
private String studentId;
private String classId;
}

View File

@ -0,0 +1,88 @@
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-02-02 10:32:41
*/
@Data
public class ArchivesPdfFileCO extends ClientObject {
//主键id
@ApiModelProperty(value = "主键id")
private Long id;
//业务id
@ApiModelProperty(value = "业务id")
private String archivesPdfFileId;
//关联表名称
@ApiModelProperty(value = "关联表名称")
private String tableName;
//关联表id
@ApiModelProperty(value = "关联表id")
private String tableId;
//文件路径
@ApiModelProperty(value = "文件路径")
private String filePath;
//档案类型 1 一人一档 2一期一档
@ApiModelProperty(value = "档案类型 1 一人一档 2一期一档")
private Integer type;
//上传状态 0-上传中 1-上传成功 -1 - 上传失败 -2 已删除
@ApiModelProperty(value = "上传状态 0-上传中 1-上传成功 -1 - 上传失败 -2 已删除")
private Integer status;
//上传失败错误原因(上传成功则不传)
@ApiModelProperty(value = "上传失败错误原因(上传成功则不传)")
private String errormsg;
//方法名称
@ApiModelProperty(value = "方法名称")
private String methodName;
//参数
@ApiModelProperty(value = "参数")
private String param;
//环境
@ApiModelProperty(value = "环境")
private String env;
//删除标识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;
}

View File

@ -0,0 +1,108 @@
package com.zcloud.edu.dto.clientobject.archives;
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;
import java.time.LocalDateTime;
import java.util.List;
/**
* 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 Long 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;
@ApiModelProperty(value = "安全培训教材会审情况")
@TableField(exist = false)
private List<ArchivesReviewRecordCO> archivesReviewRecordList;
// 教材名称
@ApiModelProperty(value = "教材名称")
@TableField(exist = false)
private String curriculumName;
//删除标识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;
}

View File

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

View File

@ -49,6 +49,9 @@ public class ClassCO extends ClientObject {
//机构ID
@ApiModelProperty(value = "机构ID")
private Long corpinfoId;
//机构ID
@ApiModelProperty(value = "所属单位")
private String corpName;
//状态1-未申请 2-待开班 3- 培训中 4-培训结束
@ApiModelProperty(value = "状态1-未申请 2-待开班 3- 培训中 4-培训结束 ")
private Integer state;
@ -64,6 +67,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;

View File

@ -42,8 +42,11 @@ public class ClassCurriculumCO extends ClientObject {
private long videoCount;
// 章节目录
@ApiModelProperty(value = "章节目录")
private List<ClassCurriculumChapterCO> chapterList;
private List<ClassCurriculumChapterCO> curriculumChapterCOList;
//目录级别 1-一级目录 2-二级目录
@ApiModelProperty(value = "目录级别 1-一级目录 2-二级目录")
private Integer catalogueLevel;
@ApiModelProperty(value = "所属单位id")
@TableField(exist = false)

View File

@ -23,7 +23,7 @@ public class ClassCurriculumChapterCO extends ClientObject {
private Long id;
//业务主键id
@ApiModelProperty(value = "业务主键id")
private String curriculumChapterId;
private String classCurriculumChapterId;
//班级id
@ApiModelProperty(value = "班级id")
private String classId;
@ -128,7 +128,7 @@ public class ClassCurriculumChapterCO extends ClientObject {
// 章节目录
@ApiModelProperty(value = "章节目录")
private List<ClassCurriculumChapterCO> children;
private List<ClassCurriculumChapterCO> childCurriculumChapterCOList;

View File

@ -2,11 +2,13 @@ package com.zcloud.edu.dto.clientobject.study;
import com.alibaba.cola.dto.ClientObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zcloud.edu.dto.clientobject.resource.QuestionCO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
@ -44,6 +46,8 @@ public class ClassExamPaperCO extends ClientObject {
private Integer examTime;
@ApiModelProperty(value = "企业名称")
private String corpName;
@ApiModelProperty(value = "习题列表")
private List<QuestionCO> questionList;
//删除标识true false
@ApiModelProperty(value = "删除标识true false")
private String deleteEnum;

View File

@ -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;
@ -23,9 +24,18 @@ public class StudentCO extends ClientObject {
//学员userid
@ApiModelProperty(value = "学员userid")
private Integer userId;
//学员uuid
@ApiModelProperty(value = "学员uuid")
@TableField(exist = false)
private String userIdUuid;
//班级id
@ApiModelProperty(value = "班级id")
private String classId;
//班级id(雪花)
@ApiModelProperty(value = "班级id(雪花)")
private String clzId;
//学员姓名
@ApiModelProperty(value = "学员姓名")
private String name;
@ -81,7 +91,7 @@ public class StudentCO extends ClientObject {
@ApiModelProperty(value = "考试签到状态 0-未签到 1-已签到")
private Integer examSignFlag;
//学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过
@ApiModelProperty(value = "学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过")
@ApiModelProperty(value = "学员状态 0-未完成 1-已完成")
private Integer state;
//相关方id集合
@ApiModelProperty(value = "相关方id集合")
@ -95,6 +105,114 @@ 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 = "完成班级数")
@TableField(exist = false)
private String departmentName;
//班级名称
@ApiModelProperty(value = "班级名称")
@TableField(exist = false)
private String className;
//培训日期 开始时间
@ApiModelProperty(value = "培训日期 开始时间")
@TableField(exist = false)
private String startTime;
//培训日期 结束日期
@ApiModelProperty(value = "培训日期 结束日期")
@TableField(exist = false)
private String endTime;
//培训教师id
@ApiModelProperty(value = "培训教师id")
@TableField(exist = false)
private Long teacherId;
//教师名称
@ApiModelProperty(value = "教师名称")
@TableField(exist = false)
private String teacherName;
//培训行业类型
@ApiModelProperty(value = "培训行业类型")
@TableField(exist = false)
private String trainType;
//培训行业类型名称
@ApiModelProperty(value = "培训行业类型名称")
@TableField(exist = false)
private String trainTypeName;
//培训地点
@ApiModelProperty(value = "培训地点")
@TableField(exist = false)
private String trainingLocation;
//机构ID
@ApiModelProperty(value = "机构ID")
@TableField(exist = false)
private Long corpinfoId;
//所属单位
@ApiModelProperty(value = "所属单位")
@TableField(exist = false)
private String corpName;
//状态1-未申请 2-待开班 3- 培训中 4-培训结束
@ApiModelProperty(value = "状态1-未申请 2-待开班 3- 培训中 4-培训结束 ")
@TableField(exist = false)
private Integer classState;
//培训有效期日期 开始时间
@ApiModelProperty(value = "培训有效期日期 开始时间")
@TableField(exist = false)
private String validStartTime;
//培训有效期日期 结束时间
@ApiModelProperty(value = "培训有效期日期 结束时间")
@TableField(exist = false)
private String validEndTime;
//1考试0不考试
@ApiModelProperty(value = "1考试0不考试")
@TableField(exist = false)
private Integer examination;
//考试次数只有考试时候有用
@ApiModelProperty(value = "考试次数只有考试时候有用")
@TableField(exist = false)
private Integer numberofexams;
// 学员统计数量
@ApiModelProperty(value = "学员统计数量")
@TableField(exist = false)
private Integer studentCount;
// 年龄
@ApiModelProperty(value = "年龄")
@TableField(exist = false)
private Integer age;
//生日
@ApiModelProperty(value = "生日")
@TableField(exist = false)
private String birthday;
// 性别
@ApiModelProperty(value = "性别")
@TableField(exist = false)
private String sex;
//环境
@ApiModelProperty(value = "环境")
private String env;

View File

@ -5,7 +5,9 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
@ -55,10 +57,20 @@ public class StudentExamRecordCO extends ClientObject {
private Integer examQuestionWrong;
//考试得分
@ApiModelProperty(value = "考试得分")
private Object examScore;
private BigDecimal examScore;
//考试结果 0 -不通过 1-通过
@ApiModelProperty(value = "考试结果 0 -不通过 1-通过")
private Integer result;
@ApiModelProperty(value = "考试签字")
private String signUrl;
@ApiModelProperty(value = "试题集合")
private List<StudentExamRecordItemCO> examRecordItemList;
@ApiModelProperty(value = "剩余考试次数")
private Integer surplusExamNum;
//环境
@ApiModelProperty(value = "环境")
private String env;

View File

@ -1,10 +1,12 @@
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;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@ -26,18 +28,62 @@ public class StudentExamRecordItemCO extends ClientObject {
//学员id
@ApiModelProperty(value = "学员id")
private String studentId;
//班级id
@ApiModelProperty(value = "班级id")
private String classId;
//习题ID
@ApiModelProperty(value = "习题ID")
private String questionId;
//学员答案
@ApiModelProperty(value = "学员答案")
@ApiModelProperty(value = "正确答案")
private String answer;
//正确答案
@ApiModelProperty(value = "正确答案")
private String answerRight;
@ApiModelProperty(value = "学员答案")
private String choiceAnswer;
//删除标识true false
@ApiModelProperty(value = "删除标识true false")
private String deleteEnum;
@ApiModelProperty(value = "试题类型1单选题、2多选题、3判断题")
@TableField(exist = false)
private Integer questionType;
//题干
@ApiModelProperty(value = "题干")
@TableField(exist = false)
private String questionDry;
//选项A
@ApiModelProperty(value = "选项A")
@TableField(exist = false)
private String optionA;
//选项B
@ApiModelProperty(value = "选项B")
@TableField(exist = false)
private String optionB;
//选项C
@ApiModelProperty(value = "选项C")
@TableField(exist = false)
private String optionC;
//选项D
@ApiModelProperty(value = "选项D")
@TableField(exist = false)
private String optionD;
//课件类型(1:视频课件、2:试卷习题)
@ApiModelProperty(value = "课件类型(1:视频课件、2:试卷习题)")
@TableField(exist = false)
private Integer coursewareType;
//答案解析
@ApiModelProperty(value = "答案解析")
@TableField(exist = false)
private String descr;
//分值
@ApiModelProperty(value = "分值")
@TableField(exist = false)
private BigDecimal score;
//备注
@ApiModelProperty(value = "备注")
private String remarks;

View File

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

View File

@ -0,0 +1,97 @@
package com.zcloud.edu.dto.data.archives;
import com.zcloud.edu.dto.clientobject.study.StudentCO;
import com.zcloud.edu.dto.clientobject.study.StudentSignCO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author zhangyue
* @date 2026/1/26 16:56
*/
@Data
public class ClassArchivesDTO {
//班级id(uuid)
@ApiModelProperty(value = "班级id(uuid)")
private String classId;
//班级id(雪花)
@ApiModelProperty(value = "班级id(雪花)")
private Long clzId;
//班级名称
@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;
//所属单位名称
@ApiModelProperty(value = "所属单位名称")
private String corpName;
//状态1-未申请 2-待开班 3- 培训中 4-培训结束
@ApiModelProperty(value = "状态1-未申请 2-待开班 3- 培训中 4-培训结束 ")
private Integer state;
//培训有效期日期 开始时间
@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;
@ApiModelProperty(value = "签字列表")
private List<StudentSignCO> signList;
@ApiModelProperty(value = "学员数")
private Long studentCount;
@ApiModelProperty(value = "实际参加培训人数")
private Long signCount;
@ApiModelProperty(value = "合格学员列表")
private List<StudentCO> passStudentList;
@ApiModelProperty(value = "不合格学员列表")
private List<StudentCO> failStudentList;
}

View File

@ -0,0 +1,143 @@
package com.zcloud.edu.dto.data.archives;
import com.zcloud.edu.dto.clientobject.study.StudentSignCO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @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;
@ApiModelProperty(value = "签字列表")
private List<StudentSignCO> signList;
}

View File

@ -0,0 +1,32 @@
package com.zcloud.edu.dto.study;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
*
* @Author zhangyue
* @Date 2026-01-13 14:18:12
*/
@Data
public class ClassAppSignQry {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String classId;
private String phone;
private Long stuId;
private String studentId;
}

View File

@ -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`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private List<String> phones;
}

View File

@ -43,10 +43,15 @@ public class ClassCurriculumAddCmd extends Command {
@NotNull(message = "课程总时长不能为空")
private double videoTotalTime;
//目录级别 1-一级目录 2-二级目录
@ApiModelProperty(value = "目录级别 1-一级目录 2-二级目录")
@NotNull(message = "课程总时长不能为空")
private Integer catalogueLevel;
@ApiModelProperty(value = "课程目录", name = "curriculumChapterAddCmdList", required = true)
@NotNull(message = "课程目录")
private List<ClassCurriculumChapterAddCmd> chapterList;
private List<ClassCurriculumChapterAddCmd> curriculumChapterAddCmdList;
}

View File

@ -0,0 +1,36 @@
package com.zcloud.edu.dto.study;
import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* web-client
*
* @Author zhangyue
* @Date 2026-01-16 09:54:32
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ClassCurriculumBatchAddCmd extends Command {
@ApiModelProperty(value = "课程id", name = "curriculumId", required = true)
@NotEmpty(message = "课程id不能为空")
private List<String> curriculumIds;
@ApiModelProperty(value = "班级id", name = "classId", required = true)
@NotEmpty(message = "班级id不能为空")
private String classId;
}

View File

@ -52,7 +52,7 @@ public class ClassCurriculumChapterAddCmd extends Command {
@ApiModelProperty(value = "目录课件", name = "curriculumChapterAddCmdList", required = true)
@NotEmpty(message = "目录课件不能为空")
private List<ClassCurriculumChapterAddCmd> children;
private List<ClassCurriculumChapterAddCmd> curriculumChapterAddCmdList;
}

View File

@ -0,0 +1,29 @@
package com.zcloud.edu.dto.study;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
*
* @Author zhangyue
* @Date 2026-01-16 09:54:33
*/
@Data
public class ClassCurriculumQry {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeClassCurriculumId;
private String eqClassId;
}

View File

@ -26,7 +26,7 @@ public class StudentAddCmd extends Command {
@ApiModelProperty(value = "学员userid", name = "userId", required = true)
@NotNull(message = "学员userid不能为空")
private Integer userId;
private Long userId;
@ApiModelProperty(value = "班级id", name = "classId", required = true)
@NotEmpty(message = "班级id不能为空")

View File

@ -0,0 +1,37 @@
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:15
*/
@Data
public class StudentCountQry {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String eqStudentId;
private String eqClassId;
private String likeProjectNames;
private String likeName;
private String likeInterestedIds;
private List<Long> corpinfoIds;
private List<String> phones;
}

View File

@ -9,6 +9,8 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
* web-client
@ -22,60 +24,50 @@ import javax.validation.constraints.NotNull;
@AllArgsConstructor
public class StudentExamRecordAddCmd extends Command {
@ApiModelProperty(value = "业务id", name = "studentExamRecordId", required = true)
@NotEmpty(message = "业务id不能为空")
private String studentExamRecordId;
@ApiModelProperty(value = "用户id", name = "userId", required = true)
@NotNull(message = "用户id不能为空")
private Long userId;
@ApiModelProperty(value = "学员id", name = "studentId", required = true)
@NotEmpty(message = "学员id不能为空")
private String studentId;
@ApiModelProperty(value = "班级id", name = "classId", required = true)
@NotEmpty(message = "班级id不能为空")
private String classId;
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotNull(message = "企业id不能为空")
private Long corpinfoId;
@ApiModelProperty(value = "班级-试卷 表ID", name = "classExamPaperId", required = true)
@NotEmpty(message = "班级-试卷 表ID不能为空")
private String classExamPaperId;
@ApiModelProperty(value = "试卷id", name = "examPaperId", required = true)
@NotEmpty(message = "试卷id不能为空")
private String examPaperId;
@ApiModelProperty(value = "考试时间", name = "examTimeBegin", required = true)
@NotEmpty(message = "考试时间不能为空")
private String examTimeBegin;
@ApiModelProperty(value = "考试交卷时间", name = "examTimeEnd", required = true)
@NotEmpty(message = "考试交卷时间不能为空")
private String examTimeEnd;
@ApiModelProperty(value = "考试总题数", name = "examQuestionNum", required = true)
@NotNull(message = "考试总题数不能为空")
private Integer examQuestionNum;
@ApiModelProperty(value = "考试对题数", name = "examQuestionRight", required = true)
@NotNull(message = "考试对题数不能为空")
private Integer examQuestionRight;
@ApiModelProperty(value = "考试错题数", name = "examQuestionWrong", required = true)
@NotNull(message = "考试错题数不能为空")
private Integer examQuestionWrong;
@ApiModelProperty(value = "考试得分", name = "examScore", required = true)
@NotEmpty(message = "考试得分不能为空")
private Object examScore;
private BigDecimal examScore;
@ApiModelProperty(value = "考试结果 0 -不通过 1-通过", name = "result", required = true)
@NotNull(message = "考试结果 0 -不通过 1-通过不能为空")
private Integer result;
@ApiModelProperty(value = "选项", name = "questionList", required = true)
@NotNull(message = "选项不能为空")
private List<StudentExamRecordItemAddCmd> questionList;
}

View File

@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
/**
* web-client
@ -21,28 +22,24 @@ import javax.validation.constraints.NotEmpty;
@AllArgsConstructor
public class StudentExamRecordItemAddCmd extends Command {
@ApiModelProperty(value = "业务id", name = "studentExamRecordItemId", required = true)
@NotEmpty(message = "业务id不能为空")
private String studentExamRecordItemId;
@ApiModelProperty(value = "考试记录id", name = "studentExamRecordId", required = true)
@NotEmpty(message = "考试记录id不能为空")
private String studentExamRecordId;
@ApiModelProperty(value = "学员id", name = "studentId", required = true)
@NotEmpty(message = "学员id不能为空")
private String studentId;
@ApiModelProperty(value = "习题ID", name = "questionId", required = true)
@NotEmpty(message = "习题ID不能为空")
private String questionId;
@ApiModelProperty(value = "学员答案", name = "answer", required = true)
@NotEmpty(message = "学员答案不能为空")
@ApiModelProperty(value = "正确答案", name = "answer", required = true)
private String answer;
@ApiModelProperty(value = "正确答案", name = "answerRight", required = true)
@NotEmpty(message = "正确答案不能为空")
private String answerRight;
@ApiModelProperty(value = "学员答案", name = "choiceAnswer", required = true)
private String choiceAnswer;
@ApiModelProperty(value = "分值", name = "score", required = true)
private BigDecimal score;
}

View File

@ -36,11 +36,11 @@ public class StudentExamRecordItemUpdateCmd extends Command {
@ApiModelProperty(value = "习题ID", name = "questionId", required = true)
@NotEmpty(message = "习题ID不能为空")
private String questionId;
@ApiModelProperty(value = "学员答案", name = "answer", required = true)
@NotEmpty(message = "学员答案不能为空")
private String answer;
@ApiModelProperty(value = "正确答案", name = "answerRight", required = true)
@ApiModelProperty(value = "正确答案", name = "answer", required = true)
@NotEmpty(message = "正确答案不能为空")
private String answerRight;
private String answer;
@ApiModelProperty(value = "学员答案", name = "choiceAnswer", required = true)
@NotEmpty(message = "学员答案不能为空")
private String choiceAnswer;
}

View File

@ -24,5 +24,6 @@ public class StudentExamRecordPageQry extends PageQuery {
* - `ne`: SQL!=
*/
private String likeStudentExamRecordId;
private String likeStudentId;
}

View File

@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* web-client
@ -62,7 +63,7 @@ public class StudentExamRecordUpdateCmd extends Command {
private Integer examQuestionWrong;
@ApiModelProperty(value = "考试得分", name = "examScore", required = true)
@NotEmpty(message = "考试得分不能为空")
private Object examScore;
private BigDecimal examScore;
@ApiModelProperty(value = "考试结果 0 -不通过 1-通过", name = "result", required = true)
@NotNull(message = "考试结果 0 -不通过 1-通过不能为空")
private Integer result;

View File

@ -28,6 +28,7 @@ public class StudentPageQry extends PageQuery {
private String likeProjectNames;
private String likeName;
private String likeInterestedIds;
private String likeClassName;
private Integer state;
}

View File

@ -6,6 +6,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@ -21,33 +22,26 @@ import javax.validation.constraints.NotNull;
@NoArgsConstructor
@AllArgsConstructor
public class StudentSignAddCmd extends Command {
@ApiModelProperty(value = "学员id", name = "studentId", required = true)
@NotEmpty(message = "学员id不能为空")
private String studentId;
@ApiModelProperty(value = "业务id", name = "studentSignId", required = true)
@NotEmpty(message = "业务id不能为空")
private String studentSignId;
@ApiModelProperty(value = "班级id", name = "classId", required = true)
@NotEmpty(message = "班级id不能为空")
private String classId;
@ApiModelProperty(value = "用户id", name = "userId", required = true)
@NotNull(message = "用户id不能为空")
private Long userId;
@ApiModelProperty(value = "学员id", name = "studentId", required = true)
private String studentId;
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotNull(message = "企业id不能为空")
private Long corpinfoId;
@ApiModelProperty(value = "签到人脸路径", name = "faceUrl", required = true)
@NotEmpty(message = "签到人脸路径不能为空")
private String faceUrl;
@ApiModelProperty(value = "签到类型 1-打卡签到 2-人脸签到", name = "type", required = true)
@NotNull(message = "签到类型 1-打卡签到 2-人脸签到不能为空")
private Integer type;
@ApiModelProperty(value = "手机号", name = "phone", required = true)
private String phone;
@ApiModelProperty(value = "人脸照片", name = "files")
@NotEmpty(message = "请上传人脸照片")
private MultipartFile[] files;
}

Some files were not shown because too many files have changed in this diff Show More