添加学生档案和签到功能
parent
7290042ed8
commit
bd4b0bd46b
|
|
@ -8,6 +8,7 @@ import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.jjb.saas.framework.auth.model.SSOUser;
|
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
import com.zcloud.edu.api.study.StudentSignServiceI;
|
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.clientobject.study.StudentSignCO;
|
||||||
import com.zcloud.edu.dto.study.*;
|
import com.zcloud.edu.dto.study.*;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
|
|
@ -38,7 +39,7 @@ public class AppStudentSignController {
|
||||||
}
|
}
|
||||||
@ApiOperation("验证是否可签到")
|
@ApiOperation("验证是否可签到")
|
||||||
@GetMapping("/verify")
|
@GetMapping("/verify")
|
||||||
public Response verify(@RequestBody StudentSignVerifyQry qry) {
|
public SingleResponse<StudentCO> verify(@RequestBody StudentSignVerifyQry qry) {
|
||||||
return studentSignService.verify(qry);
|
return studentSignService.verify(qry);
|
||||||
}
|
}
|
||||||
@ApiOperation("分页")
|
@ApiOperation("分页")
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
package com.zcloud.edu.web.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
|
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||||
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
|
import com.zcloud.edu.api.study.ClassServiceI;
|
||||||
|
import com.zcloud.edu.api.study.StudentServiceI;
|
||||||
|
import com.zcloud.edu.dto.archives.ClassArchivesQry;
|
||||||
|
import com.zcloud.edu.dto.clientobject.study.ClassCO;
|
||||||
|
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
|
||||||
|
import com.zcloud.edu.dto.study.ClassPageQry;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zhangyue
|
||||||
|
* @date 2026/1/26 15:08
|
||||||
|
*/
|
||||||
|
@Api(tags = "")
|
||||||
|
@RequestMapping("/${application.gateway}/archives")
|
||||||
|
@RestController
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesController {
|
||||||
|
private final ClassServiceI classService;
|
||||||
|
private final StudentServiceI studentService;
|
||||||
|
|
||||||
|
@ApiOperation("分页")
|
||||||
|
@PostMapping("/list")
|
||||||
|
public PageResponse<ClassCO> page(@RequestBody ClassPageQry qry) {
|
||||||
|
qry.setEqCorpinfoId(AuthContext.getCurrentUser().getTenantId());
|
||||||
|
return classService.appListPage(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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -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 SingleResponse.of(new ArchivesReviewCO());
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("删除")
|
||||||
|
@DeleteMapping("/{id}")
|
||||||
|
public Response remove(@PathVariable("id") Long id) {
|
||||||
|
archivesReviewService.remove(id);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("删除多个")
|
||||||
|
@DeleteMapping("/ids")
|
||||||
|
public Response removeBatch(@RequestParam Long[] ids) {
|
||||||
|
archivesReviewService.removeBatch(ids);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("修改")
|
||||||
|
@PutMapping("/edit")
|
||||||
|
public SingleResponse edit(@Validated @RequestBody ArchivesReviewUpdateCmd archivesReviewUpdateCmd) {
|
||||||
|
archivesReviewService.edit(archivesReviewUpdateCmd);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
package com.zcloud.edu.web.archives;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.MultiResponse;
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.alibaba.cola.dto.Response;
|
||||||
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
|
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||||
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
|
import com.zcloud.edu.api.archives.ArchivesReviewRecordServiceI;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewRecordPageQry;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewRecordUpdateCmd;
|
||||||
|
import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewRecordCO;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-adapter
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:36
|
||||||
|
*/
|
||||||
|
@Api(tags = "")
|
||||||
|
@RequestMapping("/${application.gateway}/archivesReviewRecord")
|
||||||
|
@RestController
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewRecordController {
|
||||||
|
private final ArchivesReviewRecordServiceI archivesReviewRecordService;
|
||||||
|
|
||||||
|
@ApiOperation("新增")
|
||||||
|
@PostMapping("/save")
|
||||||
|
public SingleResponse<ArchivesReviewRecordCO> add(@Validated @RequestBody ArchivesReviewRecordAddCmd cmd) {
|
||||||
|
SSOUser ssoUser = AuthContext.getCurrentUser();
|
||||||
|
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("删除")
|
||||||
|
@DeleteMapping("/{id}")
|
||||||
|
public Response remove(@PathVariable("id") Long id) {
|
||||||
|
archivesReviewRecordService.remove(id);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("删除多个")
|
||||||
|
@DeleteMapping("/ids")
|
||||||
|
public Response removeBatch(@RequestParam Long[] ids) {
|
||||||
|
archivesReviewRecordService.removeBatch(ids);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("修改")
|
||||||
|
@PutMapping("/edit")
|
||||||
|
public SingleResponse edit(@Validated @RequestBody ArchivesReviewRecordUpdateCmd archivesReviewRecordUpdateCmd) {
|
||||||
|
archivesReviewRecordService.edit(archivesReviewRecordUpdateCmd);
|
||||||
|
return SingleResponse.buildSuccess();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -7,12 +7,10 @@ import com.alibaba.cola.dto.Response;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.zcloud.edu.api.study.ClassServiceI;
|
import com.zcloud.edu.api.study.ClassServiceI;
|
||||||
import com.zcloud.edu.dto.clientobject.study.ClassCO;
|
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.ClassCountDTO;
|
||||||
import com.zcloud.edu.dto.data.study.ClassQuestionDTO;
|
import com.zcloud.edu.dto.data.study.ClassQuestionDTO;
|
||||||
import com.zcloud.edu.dto.study.ClassAddCmd;
|
import com.zcloud.edu.dto.study.*;
|
||||||
import com.zcloud.edu.dto.study.ClassPageQry;
|
|
||||||
import com.zcloud.edu.dto.study.ClassPostponeCmd;
|
|
||||||
import com.zcloud.edu.dto.study.ClassUpdateCmd;
|
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
|
@ -72,6 +70,11 @@ public class ClassController {
|
||||||
public MultiResponse<ClassCO> countClassStudent() {
|
public MultiResponse<ClassCO> countClassStudent() {
|
||||||
return MultiResponse.of(new ArrayList<ClassCO>());
|
return MultiResponse.of(new ArrayList<ClassCO>());
|
||||||
}
|
}
|
||||||
|
@ApiOperation("统计人员班级数")
|
||||||
|
@GetMapping("/countStuClass")
|
||||||
|
public MultiResponse<StudentCO> countStuClass(@RequestBody ClassCountQry qry) {
|
||||||
|
return classService.countStuClass(qry);
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("详情")
|
@ApiOperation("详情")
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ public class ClassCurriculumController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation("所有数据")
|
@ApiOperation("所有数据")
|
||||||
@GetMapping("/listAll")
|
@PostMapping("/listAll")
|
||||||
public MultiResponse<ClassCurriculumCO> listAll(@RequestBody ClassCurriculumQry qry) {
|
public MultiResponse<ClassCurriculumCO> listAll(@RequestBody ClassCurriculumQry qry) {
|
||||||
return classCurriculumService.listAll(qry);
|
return classCurriculumService.listAll(qry);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,12 @@ public class StudentExamRecordController {
|
||||||
return SingleResponse.of(new StudentExamRecordCO());
|
return SingleResponse.of(new StudentExamRecordCO());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("查询考试记录")
|
||||||
|
@GetMapping("/getInfoByStudentId/{studentId}")
|
||||||
|
public SingleResponse<StudentExamRecordCO> getInfoByStudentId(@PathVariable("id") String studentId) {
|
||||||
|
return studentExamRecordService.getInfoByStudentId(studentId);
|
||||||
|
}
|
||||||
|
|
||||||
@ApiOperation("删除")
|
@ApiOperation("删除")
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public Response remove(@PathVariable("id") Long id) {
|
public Response remove(@PathVariable("id") Long id) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.zcloud.edu.command.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.exception.BizException;
|
||||||
|
import com.zcloud.edu.domain.gateway.archives.ArchivesReviewGateway;
|
||||||
|
import com.zcloud.edu.domain.model.archives.ArchivesReviewE;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-app
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:34
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewAddExe {
|
||||||
|
private final ArchivesReviewGateway archivesReviewGateway;
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public boolean execute(ArchivesReviewAddCmd cmd) {
|
||||||
|
ArchivesReviewE archivesReviewE = new ArchivesReviewE();
|
||||||
|
BeanUtils.copyProperties(cmd, archivesReviewE);
|
||||||
|
boolean res = false;
|
||||||
|
try {
|
||||||
|
res = archivesReviewGateway.add(archivesReviewE);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
if (!res) {
|
||||||
|
throw new BizException("保存失败");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
package com.zcloud.edu.command.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.exception.BizException;
|
||||||
|
import com.zcloud.edu.domain.gateway.archives.ArchivesReviewRecordGateway;
|
||||||
|
import com.zcloud.edu.domain.model.archives.ArchivesReviewRecordE;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewRecordAddCmd;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-app
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:36
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewRecordAddExe {
|
||||||
|
private final ArchivesReviewRecordGateway archivesReviewRecordGateway;
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public boolean execute(ArchivesReviewRecordAddCmd cmd) {
|
||||||
|
ArchivesReviewRecordE archivesReviewRecordE = new ArchivesReviewRecordE();
|
||||||
|
BeanUtils.copyProperties(cmd, archivesReviewRecordE);
|
||||||
|
boolean res = false;
|
||||||
|
try {
|
||||||
|
res = archivesReviewRecordGateway.add(archivesReviewRecordE);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
if (!res) {
|
||||||
|
throw new BizException("保存失败");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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("修改失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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("修改失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
package com.zcloud.edu.command.query.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.zcloud.edu.command.convertor.archives.ArchivesReviewCoConvertor;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewPageQry;
|
||||||
|
import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO;
|
||||||
|
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO;
|
||||||
|
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRepository;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-app
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewQueryExe {
|
||||||
|
private final ArchivesReviewRepository archivesReviewRepository;
|
||||||
|
private final ArchivesReviewCoConvertor archivesReviewCoConvertor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页
|
||||||
|
*
|
||||||
|
* @param archivesReviewPageQry
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public PageResponse<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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -65,8 +65,8 @@ public class ClassCurriculumQueryExe {
|
||||||
BeanUtils.copyProperties(classCurriculumDO, classCurriculumCO);
|
BeanUtils.copyProperties(classCurriculumDO, classCurriculumCO);
|
||||||
List<ClassCurriculumChapterCO> classCurriculumChapterCOList = classCurriculumChapterCoConvertor.converDOsToCOs(classCurriculumChapterDOList);
|
List<ClassCurriculumChapterCO> classCurriculumChapterCOList = classCurriculumChapterCoConvertor.converDOsToCOs(classCurriculumChapterDOList);
|
||||||
long videoCount = classCurriculumChapterCOList.stream().filter(bean -> !ObjectUtils.isEmpty(bean.getVideoCoursewareId())).count();
|
long videoCount = classCurriculumChapterCOList.stream().filter(bean -> !ObjectUtils.isEmpty(bean.getVideoCoursewareId())).count();
|
||||||
Tools.buildEntityTree(classCurriculumChapterCOList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0");
|
List<ClassCurriculumChapterCO> resultList = Tools.buildEntityTree(classCurriculumChapterCOList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0");
|
||||||
classCurriculumCO.setCurriculumChapterCOList(classCurriculumChapterCOList);
|
classCurriculumCO.setCurriculumChapterCOList(resultList);
|
||||||
classCurriculumCO.setVideoCount(videoCount);
|
classCurriculumCO.setVideoCount(videoCount);
|
||||||
return SingleResponse.of(classCurriculumCO);
|
return SingleResponse.of(classCurriculumCO);
|
||||||
}
|
}
|
||||||
|
|
@ -77,9 +77,9 @@ public class ClassCurriculumQueryExe {
|
||||||
List<String> classCurriculumIds = curList.stream().map(ClassCurriculumDO::getClassCurriculumId).collect(Collectors.toList());
|
List<String> classCurriculumIds = curList.stream().map(ClassCurriculumDO::getClassCurriculumId).collect(Collectors.toList());
|
||||||
List<ClassCurriculumChapterDO> chapterList = classCurriculumChapterRepository.listByClassCurriculumIds(classCurriculumIds);
|
List<ClassCurriculumChapterDO> chapterList = classCurriculumChapterRepository.listByClassCurriculumIds(classCurriculumIds);
|
||||||
List<ClassCurriculumChapterCO> chapterCoList = classCurriculumChapterCoConvertor.converDOsToCOs(chapterList);
|
List<ClassCurriculumChapterCO> chapterCoList = classCurriculumChapterCoConvertor.converDOsToCOs(chapterList);
|
||||||
Tools.buildEntityTree(chapterCoList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0");
|
List<ClassCurriculumChapterCO> resultList = Tools.buildEntityTree(chapterCoList, "classCurriculumChapterId", "parentId", "childCurriculumChapterCOList", "0");
|
||||||
|
|
||||||
Map<String, List<ClassCurriculumChapterCO>> chapterMap = chapterCoList.stream().collect(Collectors.groupingBy(ClassCurriculumChapterCO::getClassCurriculumId));
|
Map<String, List<ClassCurriculumChapterCO>> chapterMap = resultList.stream().collect(Collectors.groupingBy(ClassCurriculumChapterCO::getClassCurriculumId));
|
||||||
List<ClassCurriculumCO> curriculumList = classCurriculumCoConvertor.converDOsToCOs(curList);
|
List<ClassCurriculumCO> curriculumList = classCurriculumCoConvertor.converDOsToCOs(curList);
|
||||||
curriculumList.stream().forEach(bean -> {
|
curriculumList.stream().forEach(bean -> {
|
||||||
bean.setCurriculumChapterCOList(chapterMap.get(bean.getClassCurriculumId()));
|
bean.setCurriculumChapterCOList(chapterMap.get(bean.getClassCurriculumId()));
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,21 @@
|
||||||
package com.zcloud.edu.command.query.study;
|
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.PageResponse;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.jjb.saas.framework.auth.model.SSOUser;
|
import com.jjb.saas.framework.auth.model.SSOUser;
|
||||||
import com.jjb.saas.framework.auth.utils.AuthContext;
|
import com.jjb.saas.framework.auth.utils.AuthContext;
|
||||||
import com.zcloud.edu.command.convertor.study.ClassCoConvertor;
|
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.ClassCO;
|
||||||
|
import com.zcloud.edu.dto.clientobject.study.StudentCO;
|
||||||
import com.zcloud.edu.dto.data.study.ClassCountDTO;
|
import com.zcloud.edu.dto.data.study.ClassCountDTO;
|
||||||
import com.zcloud.edu.dto.data.study.ClassQuestionDTO;
|
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.dto.study.ClassPageQry;
|
||||||
import com.zcloud.edu.persistence.dataobject.study.ClassDO;
|
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.ClassQuestionPO;
|
||||||
import com.zcloud.edu.persistence.mapper.po.study.StudentCountPO;
|
import com.zcloud.edu.persistence.mapper.po.study.StudentCountPO;
|
||||||
import com.zcloud.edu.persistence.repository.study.ClassRepository;
|
import com.zcloud.edu.persistence.repository.study.ClassRepository;
|
||||||
|
|
@ -37,6 +43,7 @@ public class ClassQueryExe {
|
||||||
private final ClassRepository classRepository;
|
private final ClassRepository classRepository;
|
||||||
private final ClassCoConvertor classCoConvertor;
|
private final ClassCoConvertor classCoConvertor;
|
||||||
private final StudentRepository studentRepository;
|
private final StudentRepository studentRepository;
|
||||||
|
private final StudentCoConvertor studentCoConvertor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页
|
* 分页
|
||||||
|
|
@ -124,5 +131,12 @@ public class ClassQueryExe {
|
||||||
BeanUtils.copyProperties(classDO, classCO);
|
BeanUtils.copyProperties(classDO, classCO);
|
||||||
return SingleResponse.of(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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,19 @@
|
||||||
package com.zcloud.edu.command.query.study;
|
package com.zcloud.edu.command.query.study;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
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.StudentExamRecordCoConvertor;
|
||||||
|
import com.zcloud.edu.command.convertor.study.StudentExamRecordItemCoConvertor;
|
||||||
import com.zcloud.edu.dto.clientobject.study.StudentExamRecordCO;
|
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.dto.study.StudentExamRecordPageQry;
|
||||||
import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordDO;
|
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.edu.persistence.repository.study.StudentExamRecordRepository;
|
||||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -25,6 +31,8 @@ import java.util.Map;
|
||||||
public class StudentExamRecordQueryExe {
|
public class StudentExamRecordQueryExe {
|
||||||
private final StudentExamRecordRepository studentExamRecordRepository;
|
private final StudentExamRecordRepository studentExamRecordRepository;
|
||||||
private final StudentExamRecordCoConvertor studentExamRecordCoConvertor;
|
private final StudentExamRecordCoConvertor studentExamRecordCoConvertor;
|
||||||
|
private final StudentExamRecordItemRepository studentExamRecordItemRepository;
|
||||||
|
private final StudentExamRecordItemCoConvertor studentExamRecordItemCoConvertor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页
|
* 分页
|
||||||
|
|
@ -38,5 +46,14 @@ public class StudentExamRecordQueryExe {
|
||||||
List<StudentExamRecordCO> examCenterCOS = studentExamRecordCoConvertor.converDOsToCOs(pageResponse.getData());
|
List<StudentExamRecordCO> examCenterCOS = studentExamRecordCoConvertor.converDOsToCOs(pageResponse.getData());
|
||||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,23 @@
|
||||||
package com.zcloud.edu.command.query.study;
|
package com.zcloud.edu.command.query.study;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.zcloud.edu.command.convertor.study.StudentCoConvertor;
|
import com.zcloud.edu.command.convertor.study.StudentCoConvertor;
|
||||||
|
import com.zcloud.edu.domain.model.archives.PersonArchivesE;
|
||||||
|
import com.zcloud.edu.domain.model.study.*;
|
||||||
|
import com.zcloud.edu.dto.archives.ClassArchivesQry;
|
||||||
import com.zcloud.edu.dto.clientobject.study.StudentCO;
|
import com.zcloud.edu.dto.clientobject.study.StudentCO;
|
||||||
|
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
|
||||||
import com.zcloud.edu.dto.study.StudentPageQry;
|
import com.zcloud.edu.dto.study.StudentPageQry;
|
||||||
import com.zcloud.edu.persistence.dataobject.study.StudentDO;
|
import com.zcloud.edu.persistence.dataobject.study.*;
|
||||||
import com.zcloud.edu.persistence.repository.study.StudentRepository;
|
import com.zcloud.edu.persistence.repository.study.*;
|
||||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
@ -25,6 +33,10 @@ import java.util.Map;
|
||||||
public class StudentQueryExe {
|
public class StudentQueryExe {
|
||||||
private final StudentRepository studentRepository;
|
private final StudentRepository studentRepository;
|
||||||
private final StudentCoConvertor studentCoConvertor;
|
private final StudentCoConvertor studentCoConvertor;
|
||||||
|
private final ClassRepository classRepository;
|
||||||
|
private final ClassCurriculumRepository classCurriculumRepository;
|
||||||
|
private final ClassCurriculumChapterRepository classCurriculumChapterRepository;
|
||||||
|
private final StudentSignRepository studentSignRepository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页
|
* 分页
|
||||||
|
|
@ -38,5 +50,89 @@ public class StudentQueryExe {
|
||||||
List<StudentCO> examCenterCOS = studentCoConvertor.converDOsToCOs(pageResponse.getData());
|
List<StudentCO> examCenterCOS = studentCoConvertor.converDOsToCOs(pageResponse.getData());
|
||||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
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);
|
||||||
|
|
||||||
|
// 课程信息
|
||||||
|
ClassCurriculumE classCurriculumE = new ClassCurriculumE();
|
||||||
|
Map<String, Object> params = classCurriculumE.initListAllParams(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);
|
||||||
|
|
||||||
|
// 课程信息
|
||||||
|
ClassCurriculumE classCurriculumE = new ClassCurriculumE();
|
||||||
|
Map<String, Object> params = classCurriculumE.initListAllParams(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);
|
||||||
|
|
||||||
|
// 课程信息
|
||||||
|
ClassCurriculumE classCurriculumE = new ClassCurriculumE();
|
||||||
|
Map<String, Object> params = classCurriculumE.initListAllParams(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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,10 @@ package com.zcloud.edu.command.query.study;
|
||||||
import com.alibaba.cola.dto.MultiResponse;
|
import com.alibaba.cola.dto.MultiResponse;
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.Response;
|
import com.alibaba.cola.dto.Response;
|
||||||
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.zcloud.edu.command.convertor.study.StudentSignCoConvertor;
|
import com.zcloud.edu.command.convertor.study.StudentSignCoConvertor;
|
||||||
import com.zcloud.edu.domain.model.study.ClassE;
|
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.clientobject.study.StudentSignCO;
|
||||||
import com.zcloud.edu.dto.study.ClassAppSignQry;
|
import com.zcloud.edu.dto.study.ClassAppSignQry;
|
||||||
import com.zcloud.edu.dto.study.StudentSignPageQry;
|
import com.zcloud.edu.dto.study.StudentSignPageQry;
|
||||||
|
|
@ -65,7 +67,7 @@ public class StudentSignQueryExe {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Response executeVerify(StudentSignVerifyQry qry) {
|
public SingleResponse<StudentCO> executeVerify(StudentSignVerifyQry qry) {
|
||||||
ClassDO classDO = classRepository.getByClassId(qry.getClassId());
|
ClassDO classDO = classRepository.getByClassId(qry.getClassId());
|
||||||
ClassE classE = new ClassE();
|
ClassE classE = new ClassE();
|
||||||
BeanUtils.copyProperties(classDO, classE);
|
BeanUtils.copyProperties(classDO, classE);
|
||||||
|
|
@ -78,7 +80,7 @@ public class StudentSignQueryExe {
|
||||||
throw new RuntimeException("您已经完成此班级的学习");
|
throw new RuntimeException("您已经完成此班级的学习");
|
||||||
}
|
}
|
||||||
Map<String, Object> params = new HashMap<>();
|
Map<String, Object> params = new HashMap<>();
|
||||||
params.put("student_id", studentDO.getStudentId());
|
params.put("studentId", studentDO.getStudentId());
|
||||||
params.put("type", qry.getType());
|
params.put("type", qry.getType());
|
||||||
if (qry.getType() == 1){
|
if (qry.getType() == 1){
|
||||||
List<StudentSignDO> list = studentSignRepository.listAllByStudentId(params);
|
List<StudentSignDO> list = studentSignRepository.listAllByStudentId(params);
|
||||||
|
|
@ -91,7 +93,9 @@ public class StudentSignQueryExe {
|
||||||
throw new RuntimeException("您已经没有考试次数");
|
throw new RuntimeException("您已经没有考试次数");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return MultiResponse.buildSuccess();
|
StudentCO studentCO = new StudentCO();
|
||||||
|
BeanUtils.copyProperties(studentDO, studentCO);
|
||||||
|
return SingleResponse.of(studentCO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,12 @@ package com.zcloud.edu.command.study;
|
||||||
import com.alibaba.cola.exception.BizException;
|
import com.alibaba.cola.exception.BizException;
|
||||||
import com.zcloud.edu.domain.gateway.study.StudentSignGateway;
|
import com.zcloud.edu.domain.gateway.study.StudentSignGateway;
|
||||||
import com.zcloud.edu.domain.model.study.StudentSignE;
|
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.dto.study.StudentSignAddCmd;
|
||||||
import com.zcloud.edu.persistence.dataobject.study.StudentDO;
|
import com.zcloud.edu.persistence.dataobject.study.StudentDO;
|
||||||
import com.zcloud.edu.persistence.repository.study.StudentRepository;
|
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 com.zcloud.gbscommon.zcloudimgfiles.facade.ZcloudImgFilesFacade;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
|
|
@ -14,6 +17,8 @@ import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* web-app
|
* web-app
|
||||||
|
|
@ -30,33 +35,39 @@ public class StudentSignAddExe {
|
||||||
private ZcloudImgFilesFacade zcloudImgFilesFacade;
|
private ZcloudImgFilesFacade zcloudImgFilesFacade;
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public boolean execute(StudentSignAddCmd cmd) {
|
public StudentSignCO execute(StudentSignAddCmd cmd) {
|
||||||
|
StudentDO stu = studentRepository.findInfoByStudentId(cmd.getStudentId());
|
||||||
StudentSignE studentSignE = new StudentSignE();
|
StudentSignE studentSignE = new StudentSignE();
|
||||||
BeanUtils.copyProperties(cmd, studentSignE);
|
BeanUtils.copyProperties(cmd, studentSignE);
|
||||||
StudentDO student = studentRepository.findFaceUrlByPhone(studentSignE.getPhone());
|
StudentDO student = studentRepository.findFaceUrlByPhone(stu.getPhone());
|
||||||
|
|
||||||
if (student == null || ObjectUtils.isEmpty(student.getUserAvatarUrl())) {
|
if (student == null || ObjectUtils.isEmpty(student.getUserAvatarUrl())) {
|
||||||
throw new RuntimeException("您还没有录入人脸");
|
throw new RuntimeException("您还没有录入人脸");
|
||||||
}
|
}
|
||||||
|
String faceUrl = null;
|
||||||
try {
|
try {
|
||||||
studentSignE.compareFace(student.getUserAvatarUrl());
|
faceUrl = Base64Util.getBase64String(studentSignE.getFiles()[0]);
|
||||||
|
studentSignE.compareFace(student.getUserAvatarUrl(), faceUrl);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
String path = studentSignE.getType() == 1 ? "clockSign" : "examSign";
|
String path = studentSignE.getType() == 1 ? "clockSign" : "examSign";
|
||||||
studentSignE.setFaceUrl(zcloudImgFilesFacade.saveFile(studentSignE.getFiles()[0], path));
|
String fileName = Tools.get32UUID() + studentSignE.getFiles()[0].getOriginalFilename().substring(studentSignE.getFiles()[0].getOriginalFilename().lastIndexOf("."));
|
||||||
|
studentSignE.setFaceUrl(zcloudImgFilesFacade.saveFile( faceUrl,fileName, path));
|
||||||
|
studentSignE.init(stu.getStudentId(), stu.getClassId(), stu.getClassCorpinfoId());
|
||||||
boolean res = false;
|
boolean res = false;
|
||||||
|
StudentSignCO studentSignCO = new StudentSignCO();
|
||||||
try {
|
try {
|
||||||
res = studentSignGateway.add(studentSignE);
|
res = studentSignGateway.add(studentSignE);
|
||||||
|
BeanUtils.copyProperties(studentSignE, studentSignCO);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
if (!res) {
|
if (!res) {
|
||||||
throw new BizException("保存失败");
|
throw new BizException("保存失败");
|
||||||
}
|
}
|
||||||
return true;
|
return studentSignCO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
package com.zcloud.edu.service.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
|
import com.zcloud.edu.api.archives.ArchivesReviewServiceI;
|
||||||
|
import com.zcloud.edu.command.archives.ArchivesReviewAddExe;
|
||||||
|
import com.zcloud.edu.command.archives.ArchivesReviewRemoveExe;
|
||||||
|
import com.zcloud.edu.command.archives.ArchivesReviewUpdateExe;
|
||||||
|
import com.zcloud.edu.command.query.archives.ArchivesReviewQueryExe;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewPageQry;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewUpdateCmd;
|
||||||
|
import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-app
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewServiceImpl implements ArchivesReviewServiceI {
|
||||||
|
private final ArchivesReviewAddExe archivesReviewAddExe;
|
||||||
|
private final ArchivesReviewUpdateExe archivesReviewUpdateExe;
|
||||||
|
private final ArchivesReviewRemoveExe archivesReviewRemoveExe;
|
||||||
|
private final ArchivesReviewQueryExe archivesReviewQueryExe;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -9,12 +9,10 @@ import com.zcloud.edu.command.study.ClassAddExe;
|
||||||
import com.zcloud.edu.command.study.ClassRemoveExe;
|
import com.zcloud.edu.command.study.ClassRemoveExe;
|
||||||
import com.zcloud.edu.command.study.ClassUpdateExe;
|
import com.zcloud.edu.command.study.ClassUpdateExe;
|
||||||
import com.zcloud.edu.dto.clientobject.study.ClassCO;
|
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.ClassCountDTO;
|
||||||
import com.zcloud.edu.dto.data.study.ClassQuestionDTO;
|
import com.zcloud.edu.dto.data.study.ClassQuestionDTO;
|
||||||
import com.zcloud.edu.dto.study.ClassAddCmd;
|
import com.zcloud.edu.dto.study.*;
|
||||||
import com.zcloud.edu.dto.study.ClassPageQry;
|
|
||||||
import com.zcloud.edu.dto.study.ClassPostponeCmd;
|
|
||||||
import com.zcloud.edu.dto.study.ClassUpdateCmd;
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|
@ -85,5 +83,10 @@ public class ClassServiceImpl implements ClassServiceI {
|
||||||
public SingleResponse<ClassCountDTO> statisticsCount(ClassPageQry qry) {
|
public SingleResponse<ClassCountDTO> statisticsCount(ClassPageQry qry) {
|
||||||
return classQueryExe.executeStatisticsCount(qry);
|
return classQueryExe.executeStatisticsCount(qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MultiResponse<StudentCO> countStuClass(ClassCountQry qry) {
|
||||||
|
return classQueryExe.executeCountStuClass(qry);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -55,5 +55,10 @@ public class StudentExamRecordServiceImpl implements StudentExamRecordServiceI {
|
||||||
public void removeBatch(Long[] ids) {
|
public void removeBatch(Long[] ids) {
|
||||||
studentExamRecordRemoveExe.execute(ids);
|
studentExamRecordRemoveExe.execute(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SingleResponse<StudentExamRecordCO> getInfoByStudentId(String studentId) {
|
||||||
|
return studentExamRecordQueryExe.executeGetInfoByStudentId(studentId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,9 @@ import com.zcloud.edu.command.query.study.StudentQueryExe;
|
||||||
import com.zcloud.edu.command.study.StudentAddExe;
|
import com.zcloud.edu.command.study.StudentAddExe;
|
||||||
import com.zcloud.edu.command.study.StudentRemoveExe;
|
import com.zcloud.edu.command.study.StudentRemoveExe;
|
||||||
import com.zcloud.edu.command.study.StudentUpdateExe;
|
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.clientobject.study.StudentCO;
|
||||||
|
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
|
||||||
import com.zcloud.edu.dto.study.StudentAddCmd;
|
import com.zcloud.edu.dto.study.StudentAddCmd;
|
||||||
import com.zcloud.edu.dto.study.StudentPageQry;
|
import com.zcloud.edu.dto.study.StudentPageQry;
|
||||||
import com.zcloud.edu.dto.study.StudentUpdateCmd;
|
import com.zcloud.edu.dto.study.StudentUpdateCmd;
|
||||||
|
|
@ -57,5 +59,19 @@ public class StudentServiceImpl implements StudentServiceI {
|
||||||
public void removeBatch(Long[] ids) {
|
public void removeBatch(Long[] ids) {
|
||||||
studentRemoveExe.execute(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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import com.zcloud.edu.command.query.study.StudentSignQueryExe;
|
||||||
import com.zcloud.edu.command.study.StudentSignAddExe;
|
import com.zcloud.edu.command.study.StudentSignAddExe;
|
||||||
import com.zcloud.edu.command.study.StudentSignRemoveExe;
|
import com.zcloud.edu.command.study.StudentSignRemoveExe;
|
||||||
import com.zcloud.edu.command.study.StudentSignUpdateExe;
|
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.clientobject.study.StudentSignCO;
|
||||||
import com.zcloud.edu.dto.study.*;
|
import com.zcloud.edu.dto.study.*;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
|
@ -35,10 +36,9 @@ public class StudentSignServiceImpl implements StudentSignServiceI {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SingleResponse add(StudentSignAddCmd cmd) {
|
public SingleResponse<StudentSignCO> add(StudentSignAddCmd cmd) {
|
||||||
|
|
||||||
studentSignAddExe.execute(cmd);
|
return SingleResponse.of(studentSignAddExe.execute(cmd));
|
||||||
return SingleResponse.buildSuccess();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -62,7 +62,7 @@ public class StudentSignServiceImpl implements StudentSignServiceI {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Response verify(StudentSignVerifyQry qry) {
|
public SingleResponse<StudentCO> verify(StudentSignVerifyQry qry) {
|
||||||
return studentSignQueryExe.executeVerify(qry);
|
return studentSignQueryExe.executeVerify(qry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.zcloud.edu.api.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewAddCmd;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewPageQry;
|
||||||
|
import com.zcloud.edu.dto.archives.ArchivesReviewUpdateCmd;
|
||||||
|
import com.zcloud.edu.dto.clientobject.archives.ArchivesReviewCO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
public interface ArchivesReviewServiceI {
|
||||||
|
PageResponse<ArchivesReviewCO> listPage(ArchivesReviewPageQry qry);
|
||||||
|
|
||||||
|
SingleResponse<ArchivesReviewCO> add(ArchivesReviewAddCmd cmd);
|
||||||
|
|
||||||
|
void edit(ArchivesReviewUpdateCmd cmd);
|
||||||
|
|
||||||
|
void remove(Long id);
|
||||||
|
|
||||||
|
void removeBatch(Long[] ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -4,12 +4,10 @@ import com.alibaba.cola.dto.MultiResponse;
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
import com.alibaba.cola.dto.SingleResponse;
|
||||||
import com.zcloud.edu.dto.clientobject.study.ClassCO;
|
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.ClassCountDTO;
|
||||||
import com.zcloud.edu.dto.data.study.ClassQuestionDTO;
|
import com.zcloud.edu.dto.data.study.ClassQuestionDTO;
|
||||||
import com.zcloud.edu.dto.study.ClassAddCmd;
|
import com.zcloud.edu.dto.study.*;
|
||||||
import com.zcloud.edu.dto.study.ClassPageQry;
|
|
||||||
import com.zcloud.edu.dto.study.ClassPostponeCmd;
|
|
||||||
import com.zcloud.edu.dto.study.ClassUpdateCmd;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* web-client
|
* web-client
|
||||||
|
|
@ -40,5 +38,7 @@ public interface ClassServiceI {
|
||||||
PageResponse<ClassCO> appListPage(ClassPageQry qry);
|
PageResponse<ClassCO> appListPage(ClassPageQry qry);
|
||||||
|
|
||||||
SingleResponse<ClassCountDTO> statisticsCount(ClassPageQry qry);
|
SingleResponse<ClassCountDTO> statisticsCount(ClassPageQry qry);
|
||||||
|
|
||||||
|
MultiResponse<StudentCO> countStuClass(ClassCountQry qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,5 +23,7 @@ public interface StudentExamRecordServiceI {
|
||||||
void remove(Long id);
|
void remove(Long id);
|
||||||
|
|
||||||
void removeBatch(Long[] ids);
|
void removeBatch(Long[] ids);
|
||||||
|
|
||||||
|
SingleResponse<StudentExamRecordCO> getInfoByStudentId(String studentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,9 @@ package com.zcloud.edu.api.study;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
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.clientobject.study.StudentCO;
|
||||||
|
import com.zcloud.edu.dto.data.archives.PersonArchivesDTO;
|
||||||
import com.zcloud.edu.dto.study.StudentAddCmd;
|
import com.zcloud.edu.dto.study.StudentAddCmd;
|
||||||
import com.zcloud.edu.dto.study.StudentPageQry;
|
import com.zcloud.edu.dto.study.StudentPageQry;
|
||||||
import com.zcloud.edu.dto.study.StudentUpdateCmd;
|
import com.zcloud.edu.dto.study.StudentUpdateCmd;
|
||||||
|
|
@ -25,5 +27,11 @@ public interface StudentServiceI {
|
||||||
void remove(Long id);
|
void remove(Long id);
|
||||||
|
|
||||||
void removeBatch(Long[] ids);
|
void removeBatch(Long[] ids);
|
||||||
|
|
||||||
|
SingleResponse<PersonArchivesDTO> getAttendanceRecord(ClassArchivesQry qry);
|
||||||
|
|
||||||
|
SingleResponse<PersonArchivesDTO> getStudyArchives(ClassArchivesQry qry);
|
||||||
|
|
||||||
|
SingleResponse<PersonArchivesDTO> getStudyRecord(ClassArchivesQry qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.alibaba.cola.dto.MultiResponse;
|
||||||
import com.alibaba.cola.dto.PageResponse;
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
import com.alibaba.cola.dto.Response;
|
import com.alibaba.cola.dto.Response;
|
||||||
import com.alibaba.cola.dto.SingleResponse;
|
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.clientobject.study.StudentSignCO;
|
||||||
import com.zcloud.edu.dto.study.*;
|
import com.zcloud.edu.dto.study.*;
|
||||||
|
|
||||||
|
|
@ -26,6 +27,6 @@ public interface StudentSignServiceI {
|
||||||
|
|
||||||
MultiResponse<StudentSignCO> listAll(ClassAppSignQry qry);
|
MultiResponse<StudentSignCO> listAll(ClassAppSignQry qry);
|
||||||
|
|
||||||
Response verify(StudentSignVerifyQry qry);
|
SingleResponse<StudentCO> verify(StudentSignVerifyQry qry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
package com.zcloud.edu.dto.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.Command;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:34
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewAddCmd extends Command {
|
||||||
|
@ApiModelProperty(value = "业务id", name = "archivesReviewId", required = true)
|
||||||
|
@NotEmpty(message = "业务id不能为空")
|
||||||
|
private String archivesReviewId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "课程id", name = "classCurriculumId", required = true)
|
||||||
|
@NotEmpty(message = "课程id不能为空")
|
||||||
|
private String classCurriculumId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "班级id", name = "classId", required = true)
|
||||||
|
@NotEmpty(message = "班级id不能为空")
|
||||||
|
private String classId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "初版书号", name = "bookNum", required = true)
|
||||||
|
@NotEmpty(message = "初版书号不能为空")
|
||||||
|
private String bookNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "班级所属企业id", name = "corpinfoId", required = true)
|
||||||
|
@NotNull(message = "班级所属企业id不能为空")
|
||||||
|
private Integer corpinfoId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "编写单位", name = "corpName", required = true)
|
||||||
|
@NotEmpty(message = "编写单位不能为空")
|
||||||
|
private String corpName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "编写时间", name = "writeDate", required = true)
|
||||||
|
@NotNull(message = "编写时间不能为空")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDateTime writeDate;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "教材类型", name = "materialType", required = true)
|
||||||
|
@NotEmpty(message = "教材类型不能为空")
|
||||||
|
private String materialType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "会审地点", name = "address", required = true)
|
||||||
|
@NotEmpty(message = "会审地点不能为空")
|
||||||
|
private String address;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "主持人", name = "compere", required = true)
|
||||||
|
@NotEmpty(message = "主持人不能为空")
|
||||||
|
private String compere;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "会审时间", name = "auditDate", required = true)
|
||||||
|
@NotNull(message = "会审时间不能为空")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDateTime auditDate;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true)
|
||||||
|
@NotEmpty(message = "会审意见不能为空")
|
||||||
|
private String reviewOpinions;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.zcloud.edu.dto.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageQuery;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ArchivesReviewPageQry extends PageQuery {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询条件操作前缀,支持以下几种数据库查询操作:
|
||||||
|
* - `like`: 模糊匹配查询,对应SQL的LIKE操作符
|
||||||
|
* - `eq`: 等值查询,对应SQL的=操作符
|
||||||
|
* - `gt`: 大于比较查询
|
||||||
|
* - `lt`: 小于比较查询
|
||||||
|
* - `ge`: 大于等于比较查询
|
||||||
|
* - `le`: 小于等于比较查询
|
||||||
|
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
||||||
|
*/
|
||||||
|
private String likeArchivesReviewId;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.zcloud.edu.dto.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.Command;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:36
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewRecordAddCmd extends Command {
|
||||||
|
@ApiModelProperty(value = "业务id", name = "archivesReviewRecordId", required = true)
|
||||||
|
@NotEmpty(message = "业务id不能为空")
|
||||||
|
private String archivesReviewRecordId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "会审表id", name = "archivesReviewId", required = true)
|
||||||
|
@NotEmpty(message = "会审表id不能为空")
|
||||||
|
private String archivesReviewId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "会审人员", name = "reviewUser", required = true)
|
||||||
|
@NotEmpty(message = "会审人员不能为空")
|
||||||
|
private String reviewUser;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "工作部门", name = "department", required = true)
|
||||||
|
@NotEmpty(message = "工作部门不能为空")
|
||||||
|
private String department;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "职务/职称", name = "duties", required = true)
|
||||||
|
@NotEmpty(message = "职务/职称不能为空")
|
||||||
|
private String duties;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "审查意见", name = "checkOpinion", required = true)
|
||||||
|
@NotEmpty(message = "审查意见不能为空")
|
||||||
|
private String checkOpinion;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
package com.zcloud.edu.dto.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageQuery;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:37
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ArchivesReviewRecordPageQry extends PageQuery {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询条件操作前缀,支持以下几种数据库查询操作:
|
||||||
|
* - `like`: 模糊匹配查询,对应SQL的LIKE操作符
|
||||||
|
* - `eq`: 等值查询,对应SQL的=操作符
|
||||||
|
* - `gt`: 大于比较查询
|
||||||
|
* - `lt`: 小于比较查询
|
||||||
|
* - `ge`: 大于等于比较查询
|
||||||
|
* - `le`: 小于等于比较查询
|
||||||
|
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
||||||
|
*/
|
||||||
|
private String likeArchivesReviewRecordId;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,68 @@
|
||||||
|
package com.zcloud.edu.dto.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.Command;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewUpdateCmd extends Command {
|
||||||
|
@ApiModelProperty(value = "${column.comment}", name = "id", required = true)
|
||||||
|
@NotNull(message = "${column.comment}不能为空")
|
||||||
|
private Long id;
|
||||||
|
@ApiModelProperty(value = "业务id", name = "archivesReviewId", required = true)
|
||||||
|
@NotEmpty(message = "业务id不能为空")
|
||||||
|
private String archivesReviewId;
|
||||||
|
@ApiModelProperty(value = "课程id", name = "classCurriculumId", required = true)
|
||||||
|
@NotEmpty(message = "课程id不能为空")
|
||||||
|
private String classCurriculumId;
|
||||||
|
@ApiModelProperty(value = "班级id", name = "classId", required = true)
|
||||||
|
@NotEmpty(message = "班级id不能为空")
|
||||||
|
private String classId;
|
||||||
|
@ApiModelProperty(value = "初版书号", name = "bookNum", required = true)
|
||||||
|
@NotEmpty(message = "初版书号不能为空")
|
||||||
|
private String bookNum;
|
||||||
|
@ApiModelProperty(value = "班级所属企业id", name = "corpinfoId", required = true)
|
||||||
|
@NotNull(message = "班级所属企业id不能为空")
|
||||||
|
private Integer corpinfoId;
|
||||||
|
@ApiModelProperty(value = "编写单位", name = "corpName", required = true)
|
||||||
|
@NotEmpty(message = "编写单位不能为空")
|
||||||
|
private String corpName;
|
||||||
|
@ApiModelProperty(value = "编写时间", name = "writeDate", required = true)
|
||||||
|
@NotNull(message = "编写时间不能为空")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDateTime writeDate;
|
||||||
|
@ApiModelProperty(value = "教材类型", name = "materialType", required = true)
|
||||||
|
@NotEmpty(message = "教材类型不能为空")
|
||||||
|
private String materialType;
|
||||||
|
@ApiModelProperty(value = "会审地点", name = "address", required = true)
|
||||||
|
@NotEmpty(message = "会审地点不能为空")
|
||||||
|
private String address;
|
||||||
|
@ApiModelProperty(value = "主持人", name = "compere", required = true)
|
||||||
|
@NotEmpty(message = "主持人不能为空")
|
||||||
|
private String compere;
|
||||||
|
@ApiModelProperty(value = "会审时间", name = "auditDate", required = true)
|
||||||
|
@NotNull(message = "会审时间不能为空")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDateTime auditDate;
|
||||||
|
@ApiModelProperty(value = "会审意见", name = "reviewOpinions", required = true)
|
||||||
|
@NotEmpty(message = "会审意见不能为空")
|
||||||
|
private String reviewOpinions;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.zcloud.edu.dto.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageQuery;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-13 14:18:12
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ClassArchivesQry {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询条件操作前缀,支持以下几种数据库查询操作:
|
||||||
|
* - `like`: 模糊匹配查询,对应SQL的LIKE操作符
|
||||||
|
* - `eq`: 等值查询,对应SQL的=操作符
|
||||||
|
* - `gt`: 大于比较查询
|
||||||
|
* - `lt`: 小于比较查询
|
||||||
|
* - `ge`: 大于等于比较查询
|
||||||
|
* - `le`: 小于等于比较查询
|
||||||
|
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
||||||
|
*/
|
||||||
|
private Long stuId;
|
||||||
|
private String studentId;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
package com.zcloud.edu.dto.clientobject.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:34
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ArchivesReviewCO extends ClientObject {
|
||||||
|
private Long id;
|
||||||
|
//业务id
|
||||||
|
@ApiModelProperty(value = "业务id")
|
||||||
|
private String archivesReviewId;
|
||||||
|
//课程id
|
||||||
|
@ApiModelProperty(value = "课程id")
|
||||||
|
private String classCurriculumId;
|
||||||
|
//班级id
|
||||||
|
@ApiModelProperty(value = "班级id")
|
||||||
|
private String classId;
|
||||||
|
//初版书号
|
||||||
|
@ApiModelProperty(value = "初版书号")
|
||||||
|
private String bookNum;
|
||||||
|
//班级所属企业id
|
||||||
|
@ApiModelProperty(value = "班级所属企业id")
|
||||||
|
private Integer corpinfoId;
|
||||||
|
//编写单位
|
||||||
|
@ApiModelProperty(value = "编写单位")
|
||||||
|
private String corpName;
|
||||||
|
//编写时间
|
||||||
|
@ApiModelProperty(value = "编写时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDateTime writeDate;
|
||||||
|
//教材类型
|
||||||
|
@ApiModelProperty(value = "教材类型")
|
||||||
|
private String materialType;
|
||||||
|
//会审地点
|
||||||
|
@ApiModelProperty(value = "会审地点")
|
||||||
|
private String address;
|
||||||
|
//主持人
|
||||||
|
@ApiModelProperty(value = "主持人")
|
||||||
|
private String compere;
|
||||||
|
//会审时间
|
||||||
|
@ApiModelProperty(value = "会审时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDateTime auditDate;
|
||||||
|
//会审意见
|
||||||
|
@ApiModelProperty(value = "会审意见")
|
||||||
|
private String reviewOpinions;
|
||||||
|
//删除标识true false
|
||||||
|
@ApiModelProperty(value = "删除标识true false")
|
||||||
|
private String deleteEnum;
|
||||||
|
//备注
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
private String remarks;
|
||||||
|
//创建人姓名
|
||||||
|
@ApiModelProperty(value = "创建人姓名")
|
||||||
|
private String createName;
|
||||||
|
//更新人姓名
|
||||||
|
@ApiModelProperty(value = "更新人姓名")
|
||||||
|
private String updateName;
|
||||||
|
//租户id
|
||||||
|
@ApiModelProperty(value = "租户id")
|
||||||
|
private Long tenantId;
|
||||||
|
//单位id
|
||||||
|
@ApiModelProperty(value = "单位id")
|
||||||
|
private Long orgId;
|
||||||
|
//版本
|
||||||
|
@ApiModelProperty(value = "版本")
|
||||||
|
private Integer version;
|
||||||
|
//创建时间
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
//修改时间
|
||||||
|
@ApiModelProperty(value = "修改时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
//创建人id
|
||||||
|
@ApiModelProperty(value = "创建人id")
|
||||||
|
private Long createId;
|
||||||
|
//修改人id
|
||||||
|
@ApiModelProperty(value = "修改人id")
|
||||||
|
private Long updateId;
|
||||||
|
//环境
|
||||||
|
@ApiModelProperty(value = "环境")
|
||||||
|
private String env;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -64,6 +64,14 @@ public class ClassCO extends ClientObject {
|
||||||
//考试次数只有考试时候有用
|
//考试次数只有考试时候有用
|
||||||
@ApiModelProperty(value = "考试次数只有考试时候有用")
|
@ApiModelProperty(value = "考试次数只有考试时候有用")
|
||||||
private Integer numberofexams;
|
private Integer numberofexams;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "学员id(雪花)")
|
||||||
|
private Long stuId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "学员id(uuid)")
|
||||||
|
private String studentId;
|
||||||
|
|
||||||
//删除标识true false
|
//删除标识true false
|
||||||
@ApiModelProperty(value = "删除标识true false")
|
@ApiModelProperty(value = "删除标识true false")
|
||||||
private String deleteEnum;
|
private String deleteEnum;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.zcloud.edu.dto.clientobject.study;
|
package com.zcloud.edu.dto.clientobject.study;
|
||||||
|
|
||||||
import com.alibaba.cola.dto.ClientObject;
|
import com.alibaba.cola.dto.ClientObject;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -95,6 +96,18 @@ public class StudentCO extends ClientObject {
|
||||||
//项目名称集合
|
//项目名称集合
|
||||||
@ApiModelProperty(value = "项目名称集合")
|
@ApiModelProperty(value = "项目名称集合")
|
||||||
private String projectNames;
|
private String projectNames;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "班级数")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer classCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "完成班级数")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer completeClassCount;
|
||||||
|
|
||||||
|
|
||||||
//环境
|
//环境
|
||||||
@ApiModelProperty(value = "环境")
|
@ApiModelProperty(value = "环境")
|
||||||
private String env;
|
private String env;
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -59,6 +60,13 @@ public class StudentExamRecordCO extends ClientObject {
|
||||||
//考试结果 0 -不通过 1-通过
|
//考试结果 0 -不通过 1-通过
|
||||||
@ApiModelProperty(value = "考试结果 0 -不通过 1-通过")
|
@ApiModelProperty(value = "考试结果 0 -不通过 1-通过")
|
||||||
private Integer result;
|
private Integer result;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "考试签字")
|
||||||
|
private String signUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "试题集合")
|
||||||
|
private List<StudentExamRecordItemCO> examRecordItemList;
|
||||||
|
|
||||||
//环境
|
//环境
|
||||||
@ApiModelProperty(value = "环境")
|
@ApiModelProperty(value = "环境")
|
||||||
private String env;
|
private String env;
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,11 @@ public class StudentSignCO extends ClientObject {
|
||||||
//签到人脸路径
|
//签到人脸路径
|
||||||
@ApiModelProperty(value = "签到人脸路径")
|
@ApiModelProperty(value = "签到人脸路径")
|
||||||
private String faceUrl;
|
private String faceUrl;
|
||||||
|
|
||||||
|
//打卡签字路径
|
||||||
|
@ApiModelProperty(value = "打卡签字路径")
|
||||||
|
private String signUrl;
|
||||||
|
|
||||||
//签到类型 1-打卡签到 2-人脸签到
|
//签到类型 1-打卡签到 2-人脸签到
|
||||||
@ApiModelProperty(value = "签到类型 1-打卡签到 2-人脸签到")
|
@ApiModelProperty(value = "签到类型 1-打卡签到 2-人脸签到")
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,139 @@
|
||||||
|
package com.zcloud.edu.dto.data.archives;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zhangyue
|
||||||
|
* @date 2026/1/26 16:56
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PersonArchivesDTO {
|
||||||
|
private Long stuId;
|
||||||
|
//业务id
|
||||||
|
@ApiModelProperty(value = "业务id")
|
||||||
|
private String studentId;
|
||||||
|
//学员userid
|
||||||
|
@ApiModelProperty(value = "学员userid")
|
||||||
|
private Integer userId;
|
||||||
|
//班级id
|
||||||
|
@ApiModelProperty(value = "班级id")
|
||||||
|
private String classId;
|
||||||
|
//学员姓名
|
||||||
|
@ApiModelProperty(value = "学员姓名")
|
||||||
|
private String name;
|
||||||
|
//学员所属班级的企业id
|
||||||
|
@ApiModelProperty(value = "学员所属班级的企业id")
|
||||||
|
private Long classCorpinfoId;
|
||||||
|
//手机号
|
||||||
|
@ApiModelProperty(value = "手机号")
|
||||||
|
private String phone;
|
||||||
|
//身份证号
|
||||||
|
@ApiModelProperty(value = "身份证号")
|
||||||
|
private String userIdCard;
|
||||||
|
//民族编码
|
||||||
|
@ApiModelProperty(value = "民族编码")
|
||||||
|
private String nation;
|
||||||
|
//民族名称
|
||||||
|
@ApiModelProperty(value = "民族名称")
|
||||||
|
private String nationName;
|
||||||
|
//人脸照片url
|
||||||
|
@ApiModelProperty(value = "人脸照片url")
|
||||||
|
private String userAvatarUrl;
|
||||||
|
//现住址
|
||||||
|
@ApiModelProperty(value = "现住址")
|
||||||
|
private String currentAddress;
|
||||||
|
//户口所在地
|
||||||
|
@ApiModelProperty(value = "户口所在地")
|
||||||
|
private String locationAddress;
|
||||||
|
//文化程度 数据字典
|
||||||
|
@ApiModelProperty(value = "文化程度 数据字典")
|
||||||
|
private String culturalLevel;
|
||||||
|
//文化程度名称
|
||||||
|
@ApiModelProperty(value = "文化程度名称")
|
||||||
|
private String culturalLevelName;
|
||||||
|
//婚姻状态
|
||||||
|
@ApiModelProperty(value = "婚姻状态")
|
||||||
|
private String maritalStatus;
|
||||||
|
//婚姻状态名称
|
||||||
|
@ApiModelProperty(value = "婚姻状态名称")
|
||||||
|
private String maritalStatusName;
|
||||||
|
//政治面貌
|
||||||
|
@ApiModelProperty(value = "政治面貌")
|
||||||
|
private String politicalAffiliation;
|
||||||
|
//政治面貌名称
|
||||||
|
@ApiModelProperty(value = "政治面貌名称")
|
||||||
|
private String politicalAffiliationName;
|
||||||
|
//岗位名称
|
||||||
|
@ApiModelProperty(value = "岗位名称")
|
||||||
|
private String postName;
|
||||||
|
//签到状态 0-未签到 1-已签到
|
||||||
|
@ApiModelProperty(value = "签到状态 0-未签到 1-已签到")
|
||||||
|
private Integer signFlag;
|
||||||
|
//考试签到状态 0-未签到 1-已签到
|
||||||
|
@ApiModelProperty(value = "考试签到状态 0-未签到 1-已签到")
|
||||||
|
private Integer examSignFlag;
|
||||||
|
//学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过
|
||||||
|
@ApiModelProperty(value = "学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过")
|
||||||
|
private Integer state;
|
||||||
|
|
||||||
|
|
||||||
|
//班级名称
|
||||||
|
@ApiModelProperty(value = "班级名称")
|
||||||
|
private String className;
|
||||||
|
//培训日期 开始时间
|
||||||
|
@ApiModelProperty(value = "培训日期 开始时间")
|
||||||
|
private String startTime;
|
||||||
|
//培训日期 结束日期
|
||||||
|
@ApiModelProperty(value = "培训日期 结束日期")
|
||||||
|
private String endTime;
|
||||||
|
//培训教师id
|
||||||
|
@ApiModelProperty(value = "培训教师id")
|
||||||
|
private Long teacherId;
|
||||||
|
//教师名称
|
||||||
|
@ApiModelProperty(value = "教师名称")
|
||||||
|
private String teacherName;
|
||||||
|
//培训行业类型
|
||||||
|
@ApiModelProperty(value = "培训行业类型")
|
||||||
|
private String trainType;
|
||||||
|
//培训行业类型名称
|
||||||
|
@ApiModelProperty(value = "培训行业类型名称")
|
||||||
|
private String trainTypeName;
|
||||||
|
//培训地点
|
||||||
|
@ApiModelProperty(value = "培训地点")
|
||||||
|
private String trainingLocation;
|
||||||
|
//机构ID
|
||||||
|
@ApiModelProperty(value = "机构ID")
|
||||||
|
private Long corpinfoId;
|
||||||
|
//状态:1-未申请 2-待开班 3- 培训中 4-培训结束
|
||||||
|
@ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ")
|
||||||
|
private Integer classState;
|
||||||
|
//培训有效期日期 开始时间
|
||||||
|
@ApiModelProperty(value = "培训有效期日期 开始时间")
|
||||||
|
private String validStartTime;
|
||||||
|
//培训有效期日期 结束时间
|
||||||
|
@ApiModelProperty(value = "培训有效期日期 结束时间")
|
||||||
|
private String validEndTime;
|
||||||
|
//1考试0不考试
|
||||||
|
@ApiModelProperty(value = "1考试0不考试")
|
||||||
|
private Integer examination;
|
||||||
|
//考试次数只有考试时候有用
|
||||||
|
@ApiModelProperty(value = "考试次数只有考试时候有用")
|
||||||
|
private Integer numberofexams;
|
||||||
|
@ApiModelProperty(value = "培训时长")
|
||||||
|
private Long trainDurationTime;
|
||||||
|
@ApiModelProperty(value = "培训科目")
|
||||||
|
private String trainSubject;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "视频时长")
|
||||||
|
private BigDecimal videoTotalTime;
|
||||||
|
@ApiModelProperty(value = "课件数")
|
||||||
|
private Integer videoCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "打卡签到人脸图片路径")
|
||||||
|
private String signFaceUrl;
|
||||||
|
@ApiModelProperty(value = "考试签到人脸图片路径")
|
||||||
|
private String examSignFaceUrl;
|
||||||
|
}
|
||||||
|
|
@ -25,6 +25,8 @@ public class ClassAppSignQry {
|
||||||
*/
|
*/
|
||||||
private String classId;
|
private String classId;
|
||||||
private String phone;
|
private String phone;
|
||||||
|
private Long stuId;
|
||||||
|
private String studentId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.zcloud.edu.dto.study;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageQuery;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-client
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-13 14:18:12
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ClassCountQry {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询条件操作前缀,支持以下几种数据库查询操作:
|
||||||
|
* - `like`: 模糊匹配查询,对应SQL的LIKE操作符
|
||||||
|
* - `eq`: 等值查询,对应SQL的=操作符
|
||||||
|
* - `gt`: 大于比较查询
|
||||||
|
* - `lt`: 小于比较查询
|
||||||
|
* - `ge`: 大于等于比较查询
|
||||||
|
* - `le`: 小于等于比较查询
|
||||||
|
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
||||||
|
*/
|
||||||
|
private List<String> phones;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -24,9 +24,11 @@ import javax.validation.constraints.NotNull;
|
||||||
public class StudentSignAddCmd extends Command {
|
public class StudentSignAddCmd extends Command {
|
||||||
|
|
||||||
@ApiModelProperty(value = "班级id", name = "classId", required = true)
|
@ApiModelProperty(value = "班级id", name = "classId", required = true)
|
||||||
@NotEmpty(message = "班级id不能为空")
|
|
||||||
private String classId;
|
private String classId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "学员id", name = "studentId", required = true)
|
||||||
|
private String studentId;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -35,7 +37,6 @@ public class StudentSignAddCmd extends Command {
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
||||||
@ApiModelProperty(value = "手机号", name = "phone", required = true)
|
@ApiModelProperty(value = "手机号", name = "phone", required = true)
|
||||||
@NotEmpty(message = "手机号不能为空")
|
|
||||||
private String phone;
|
private String phone;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.zcloud.edu.domain.gateway.archives;
|
||||||
|
|
||||||
|
|
||||||
|
import com.zcloud.edu.domain.model.archives.ArchivesReviewE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-domain
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
public interface ArchivesReviewGateway {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*/
|
||||||
|
Boolean add(ArchivesReviewE archivesReviewE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改
|
||||||
|
*/
|
||||||
|
Boolean update(ArchivesReviewE archivesReviewE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*/
|
||||||
|
Boolean deletedArchivesReviewById(Long id);
|
||||||
|
|
||||||
|
Boolean deletedArchivesReviewByIds(Long[] id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.zcloud.edu.domain.gateway.archives;
|
||||||
|
|
||||||
|
|
||||||
|
import com.zcloud.edu.domain.model.archives.ArchivesReviewRecordE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-domain
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:37
|
||||||
|
*/
|
||||||
|
public interface ArchivesReviewRecordGateway {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*/
|
||||||
|
Boolean add(ArchivesReviewRecordE archivesReviewRecordE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改
|
||||||
|
*/
|
||||||
|
Boolean update(ArchivesReviewRecordE archivesReviewRecordE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*/
|
||||||
|
Boolean deletedArchivesReviewRecordById(Long id);
|
||||||
|
|
||||||
|
Boolean deletedArchivesReviewRecordByIds(Long[] id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
package com.zcloud.edu.domain.model.archives;
|
||||||
|
|
||||||
|
import com.jjb.saas.framework.domain.model.BaseE;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-domain
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:34
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ArchivesReviewE extends BaseE {
|
||||||
|
private Long id;
|
||||||
|
//业务id
|
||||||
|
private String archivesReviewId;
|
||||||
|
//课程id
|
||||||
|
private String classCurriculumId;
|
||||||
|
//班级id
|
||||||
|
private String classId;
|
||||||
|
//初版书号
|
||||||
|
private String bookNum;
|
||||||
|
//班级所属企业id
|
||||||
|
private Integer corpinfoId;
|
||||||
|
//编写单位
|
||||||
|
private String corpName;
|
||||||
|
//编写时间
|
||||||
|
private LocalDateTime writeDate;
|
||||||
|
//教材类型
|
||||||
|
private String materialType;
|
||||||
|
//会审地点
|
||||||
|
private String address;
|
||||||
|
//主持人
|
||||||
|
private String compere;
|
||||||
|
//会审时间
|
||||||
|
private LocalDateTime auditDate;
|
||||||
|
//会审意见
|
||||||
|
private String reviewOpinions;
|
||||||
|
//删除标识true false
|
||||||
|
private String deleteEnum;
|
||||||
|
//备注
|
||||||
|
private String remarks;
|
||||||
|
//创建人姓名
|
||||||
|
private String createName;
|
||||||
|
//更新人姓名
|
||||||
|
private String updateName;
|
||||||
|
//租户id
|
||||||
|
private Long tenantId;
|
||||||
|
//单位id
|
||||||
|
private Long orgId;
|
||||||
|
//版本
|
||||||
|
private Integer version;
|
||||||
|
//创建时间
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
//修改时间
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
//创建人id
|
||||||
|
private Long createId;
|
||||||
|
//修改人id
|
||||||
|
private Long updateId;
|
||||||
|
//环境
|
||||||
|
private String env;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,55 @@
|
||||||
|
package com.zcloud.edu.domain.model.archives;
|
||||||
|
|
||||||
|
import com.jjb.saas.framework.domain.model.BaseE;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-domain
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:36
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ArchivesReviewRecordE extends BaseE {
|
||||||
|
//主键
|
||||||
|
private Long id;
|
||||||
|
//业务id
|
||||||
|
private String archivesReviewRecordId;
|
||||||
|
//会审表id
|
||||||
|
private String archivesReviewId;
|
||||||
|
//会审人员
|
||||||
|
private String reviewUser;
|
||||||
|
//工作部门
|
||||||
|
private String department;
|
||||||
|
//职务/职称
|
||||||
|
private String duties;
|
||||||
|
//审查意见
|
||||||
|
private String checkOpinion;
|
||||||
|
//删除标识true false
|
||||||
|
private String deleteEnum;
|
||||||
|
//备注
|
||||||
|
private String remarks;
|
||||||
|
//创建人姓名
|
||||||
|
private String createName;
|
||||||
|
//更新人姓名
|
||||||
|
private String updateName;
|
||||||
|
//租户id
|
||||||
|
private Long tenantId;
|
||||||
|
//单位id
|
||||||
|
private Long orgId;
|
||||||
|
//版本
|
||||||
|
private Integer version;
|
||||||
|
//创建时间
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
//修改时间
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
//创建人id
|
||||||
|
private Long createId;
|
||||||
|
//修改人id
|
||||||
|
private Long updateId;
|
||||||
|
//环境
|
||||||
|
private String env;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,232 @@
|
||||||
|
package com.zcloud.edu.domain.model.archives;
|
||||||
|
|
||||||
|
import com.jjb.saas.framework.domain.model.BaseE;
|
||||||
|
import com.zcloud.edu.domain.model.study.*;
|
||||||
|
import com.zcloud.gbscommon.utils.DateUtil;
|
||||||
|
import groovy.lang.BenchmarkInterceptor;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author zhangyue
|
||||||
|
* @date 2026/1/26 17:38
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PersonArchivesE extends BaseE {
|
||||||
|
|
||||||
|
private Long stuId;
|
||||||
|
//业务id
|
||||||
|
@ApiModelProperty(value = "业务id")
|
||||||
|
private String studentId;
|
||||||
|
//学员userid
|
||||||
|
@ApiModelProperty(value = "学员userid")
|
||||||
|
private Integer userId;
|
||||||
|
//班级id
|
||||||
|
@ApiModelProperty(value = "班级id")
|
||||||
|
private String classId;
|
||||||
|
//学员姓名
|
||||||
|
@ApiModelProperty(value = "学员姓名")
|
||||||
|
private String name;
|
||||||
|
//学员所属班级的企业id
|
||||||
|
@ApiModelProperty(value = "学员所属班级的企业id")
|
||||||
|
private Long classCorpinfoId;
|
||||||
|
//手机号
|
||||||
|
@ApiModelProperty(value = "手机号")
|
||||||
|
private String phone;
|
||||||
|
//身份证号
|
||||||
|
@ApiModelProperty(value = "身份证号")
|
||||||
|
private String userIdCard;
|
||||||
|
//民族编码
|
||||||
|
@ApiModelProperty(value = "民族编码")
|
||||||
|
private String nation;
|
||||||
|
//民族名称
|
||||||
|
@ApiModelProperty(value = "民族名称")
|
||||||
|
private String nationName;
|
||||||
|
//人脸照片url
|
||||||
|
@ApiModelProperty(value = "人脸照片url")
|
||||||
|
private String userAvatarUrl;
|
||||||
|
//现住址
|
||||||
|
@ApiModelProperty(value = "现住址")
|
||||||
|
private String currentAddress;
|
||||||
|
//户口所在地
|
||||||
|
@ApiModelProperty(value = "户口所在地")
|
||||||
|
private String locationAddress;
|
||||||
|
//文化程度 数据字典
|
||||||
|
@ApiModelProperty(value = "文化程度 数据字典")
|
||||||
|
private String culturalLevel;
|
||||||
|
//文化程度名称
|
||||||
|
@ApiModelProperty(value = "文化程度名称")
|
||||||
|
private String culturalLevelName;
|
||||||
|
//婚姻状态
|
||||||
|
@ApiModelProperty(value = "婚姻状态")
|
||||||
|
private String maritalStatus;
|
||||||
|
//婚姻状态名称
|
||||||
|
@ApiModelProperty(value = "婚姻状态名称")
|
||||||
|
private String maritalStatusName;
|
||||||
|
//政治面貌
|
||||||
|
@ApiModelProperty(value = "政治面貌")
|
||||||
|
private String politicalAffiliation;
|
||||||
|
//政治面貌名称
|
||||||
|
@ApiModelProperty(value = "政治面貌名称")
|
||||||
|
private String politicalAffiliationName;
|
||||||
|
//岗位名称
|
||||||
|
@ApiModelProperty(value = "岗位名称")
|
||||||
|
private String postName;
|
||||||
|
//签到状态 0-未签到 1-已签到
|
||||||
|
@ApiModelProperty(value = "签到状态 0-未签到 1-已签到")
|
||||||
|
private Integer signFlag;
|
||||||
|
//考试签到状态 0-未签到 1-已签到
|
||||||
|
@ApiModelProperty(value = "考试签到状态 0-未签到 1-已签到")
|
||||||
|
private Integer examSignFlag;
|
||||||
|
//学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过
|
||||||
|
@ApiModelProperty(value = "学员状态 0-未学习 1-已签到 2-考试通过 3-未签到 4-考试未通过")
|
||||||
|
private Integer state;
|
||||||
|
|
||||||
|
|
||||||
|
//班级名称
|
||||||
|
@ApiModelProperty(value = "班级名称")
|
||||||
|
private String className;
|
||||||
|
//培训日期 开始时间
|
||||||
|
@ApiModelProperty(value = "培训日期 开始时间")
|
||||||
|
private String startTime;
|
||||||
|
//培训日期 结束日期
|
||||||
|
@ApiModelProperty(value = "培训日期 结束日期")
|
||||||
|
private String endTime;
|
||||||
|
//培训教师id
|
||||||
|
@ApiModelProperty(value = "培训教师id")
|
||||||
|
private Long teacherId;
|
||||||
|
//教师名称
|
||||||
|
@ApiModelProperty(value = "教师名称")
|
||||||
|
private String teacherName;
|
||||||
|
//培训行业类型
|
||||||
|
@ApiModelProperty(value = "培训行业类型")
|
||||||
|
private String trainType;
|
||||||
|
//培训行业类型名称
|
||||||
|
@ApiModelProperty(value = "培训行业类型名称")
|
||||||
|
private String trainTypeName;
|
||||||
|
//培训地点
|
||||||
|
@ApiModelProperty(value = "培训地点")
|
||||||
|
private String trainingLocation;
|
||||||
|
//机构ID
|
||||||
|
@ApiModelProperty(value = "机构ID")
|
||||||
|
private Long corpinfoId;
|
||||||
|
//状态:1-未申请 2-待开班 3- 培训中 4-培训结束
|
||||||
|
@ApiModelProperty(value = "状态:1-未申请 2-待开班 3- 培训中 4-培训结束 ")
|
||||||
|
private Integer classState;
|
||||||
|
//培训有效期日期 开始时间
|
||||||
|
@ApiModelProperty(value = "培训有效期日期 开始时间")
|
||||||
|
private String validStartTime;
|
||||||
|
//培训有效期日期 结束时间
|
||||||
|
@ApiModelProperty(value = "培训有效期日期 结束时间")
|
||||||
|
private String validEndTime;
|
||||||
|
//1考试0不考试
|
||||||
|
@ApiModelProperty(value = "1考试0不考试")
|
||||||
|
private Integer examination;
|
||||||
|
//考试次数只有考试时候有用
|
||||||
|
@ApiModelProperty(value = "考试次数只有考试时候有用")
|
||||||
|
private Integer numberofexams;
|
||||||
|
@ApiModelProperty(value = "培训时长")
|
||||||
|
private Long trainDurationTime;
|
||||||
|
@ApiModelProperty(value = "培训科目")
|
||||||
|
private String trainSubject;
|
||||||
|
@ApiModelProperty(value = "视频时长")
|
||||||
|
private BigDecimal videoTotalTime;
|
||||||
|
@ApiModelProperty(value = "课件数")
|
||||||
|
private Integer videoCount;
|
||||||
|
@ApiModelProperty(value = "打卡签到人脸图片路径")
|
||||||
|
private String signFaceUrl;
|
||||||
|
@ApiModelProperty(value = "考试签到人脸图片路径")
|
||||||
|
private String examSignFaceUrl;
|
||||||
|
|
||||||
|
public void init(StudentE studentE, ClassE classE, List<ClassCurriculumE> classCurList) {
|
||||||
|
BeanUtils.copyProperties(studentE, this);
|
||||||
|
setStuId(studentE.getId());
|
||||||
|
setClassName(classE.getName());
|
||||||
|
setStartTime(classE.getStartTime());
|
||||||
|
setEndTime(classE.getEndTime());
|
||||||
|
setTeacherId(classE.getTeacherId());
|
||||||
|
setTeacherName(classE.getTeacherName());
|
||||||
|
setTrainType(classE.getTrainType());
|
||||||
|
setTrainTypeName(classE.getTrainTypeName());
|
||||||
|
setTrainingLocation(classE.getTrainingLocation());
|
||||||
|
setCorpinfoId(classE.getCorpinfoId());
|
||||||
|
setClassState(classE.getState());
|
||||||
|
setValidStartTime(classE.getValidStartTime());
|
||||||
|
setValidEndTime(classE.getValidEndTime());
|
||||||
|
setExamination(classE.getExamination());
|
||||||
|
setNumberofexams(classE.getNumberofexams());
|
||||||
|
String trainSubject = classCurList.stream().map(ClassCurriculumE::getCurriculumName).collect(Collectors.joining(","));
|
||||||
|
setTrainSubject(trainSubject);
|
||||||
|
setTrainDurationTime(DateUtil.getMinuteSub(classE.getStartTime(), classE.getEndTime()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initAttendanceRecord(StudentE studentE, ClassE classE, List<ClassCurriculumChapterE> chapterEList, List<ClassCurriculumE> classCurList) {
|
||||||
|
BeanUtils.copyProperties(studentE, this);
|
||||||
|
setStuId(studentE.getId());
|
||||||
|
setClassName(classE.getName());
|
||||||
|
setStartTime(classE.getStartTime());
|
||||||
|
setEndTime(classE.getEndTime());
|
||||||
|
setTeacherId(classE.getTeacherId());
|
||||||
|
setTeacherName(classE.getTeacherName());
|
||||||
|
setTrainType(classE.getTrainType());
|
||||||
|
setTrainTypeName(classE.getTrainTypeName());
|
||||||
|
setTrainingLocation(classE.getTrainingLocation());
|
||||||
|
setCorpinfoId(classE.getCorpinfoId());
|
||||||
|
setClassState(classE.getState());
|
||||||
|
setValidStartTime(classE.getValidStartTime());
|
||||||
|
setValidEndTime(classE.getValidEndTime());
|
||||||
|
setExamination(classE.getExamination());
|
||||||
|
setNumberofexams(classE.getNumberofexams());
|
||||||
|
setVideoCount(chapterEList.size());
|
||||||
|
BigDecimal videoTotalTime = classCurList.stream()
|
||||||
|
.map(ClassCurriculumE::getVideoTotalTime) // 假设getBigDecimalField是获取BigDecimal字段的方法
|
||||||
|
.filter(bigDecimal -> bigDecimal != null) // 过滤null值,防止空指针异常
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
setVideoTotalTime(videoTotalTime);
|
||||||
|
}
|
||||||
|
public void initStudyRecord(StudentE studentE, ClassE classE, List<StudentSignE> studentSignEList, List<ClassCurriculumE> classCurList) {
|
||||||
|
BeanUtils.copyProperties(studentE, this);
|
||||||
|
setStuId(studentE.getId());
|
||||||
|
setClassName(classE.getName());
|
||||||
|
setStartTime(classE.getStartTime());
|
||||||
|
setEndTime(classE.getEndTime());
|
||||||
|
setTeacherId(classE.getTeacherId());
|
||||||
|
setTeacherName(classE.getTeacherName());
|
||||||
|
setTrainType(classE.getTrainType());
|
||||||
|
setTrainTypeName(classE.getTrainTypeName());
|
||||||
|
setTrainingLocation(classE.getTrainingLocation());
|
||||||
|
setCorpinfoId(classE.getCorpinfoId());
|
||||||
|
setClassState(classE.getState());
|
||||||
|
setValidStartTime(classE.getValidStartTime());
|
||||||
|
setValidEndTime(classE.getValidEndTime());
|
||||||
|
setExamination(classE.getExamination());
|
||||||
|
setNumberofexams(classE.getNumberofexams());
|
||||||
|
BigDecimal videoTotalTime = classCurList.stream()
|
||||||
|
.map(ClassCurriculumE::getVideoTotalTime) // 假设getBigDecimalField是获取BigDecimal字段的方法
|
||||||
|
.filter(bigDecimal -> bigDecimal != null) // 过滤null值,防止空指针异常
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
String trainSubject = classCurList.stream().map(ClassCurriculumE::getCurriculumName).collect(Collectors.joining(","));
|
||||||
|
setTrainSubject(trainSubject);
|
||||||
|
setVideoTotalTime(videoTotalTime);
|
||||||
|
if (studentSignEList != null && studentSignEList.size() > 0){
|
||||||
|
for (StudentSignE studentSignE : studentSignEList){
|
||||||
|
if(studentSignE.getType() == 1
|
||||||
|
&& !ObjectUtils.isEmpty(studentSignE.getFaceUrl())
|
||||||
|
&& ObjectUtils.isEmpty(this.getSignFaceUrl()) ){
|
||||||
|
this.setSignFaceUrl(studentSignE.getFaceUrl());
|
||||||
|
}
|
||||||
|
if(studentSignE.getType() == 2
|
||||||
|
&& !ObjectUtils.isEmpty(studentSignE.getFaceUrl())
|
||||||
|
&& ObjectUtils.isEmpty(this.getExamSignFaceUrl()) ){
|
||||||
|
this.setExamSignFaceUrl(studentSignE.getFaceUrl());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -100,5 +100,11 @@ public class ClassCurriculumE extends BaseE {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public HashMap<String, Object> initListAllParams(String classId){
|
||||||
|
HashMap<String, Object> params = new HashMap<String, Object>();
|
||||||
|
params.put("classId", classId);
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@ public class ClassE extends BaseE {
|
||||||
public void isBegin(){
|
public void isBegin(){
|
||||||
if(DateUtil.isBeforeThan(this.startTime)){
|
if(DateUtil.isBeforeThan(this.startTime)){
|
||||||
throw new RuntimeException("班级未开班");
|
throw new RuntimeException("班级未开班");
|
||||||
} else if(DateUtil.isBeforeThan(this.endTime)){
|
} else if(DateUtil.isAfter(this.endTime)){
|
||||||
throw new RuntimeException("班级已结束");
|
throw new RuntimeException("班级已结束");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.zcloud.gbscommon.utils.Base64Util;
|
||||||
import com.zcloud.gbscommon.utils.FaceUtil;
|
import com.zcloud.gbscommon.utils.FaceUtil;
|
||||||
import com.zcloud.gbscommon.utils.Tools;
|
import com.zcloud.gbscommon.utils.Tools;
|
||||||
import com.zcloud.gbscommon.zcloudimgfiles.facade.ZcloudImgFilesFacade;
|
import com.zcloud.gbscommon.zcloudimgfiles.facade.ZcloudImgFilesFacade;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.dubbo.config.annotation.DubboReference;
|
import org.apache.dubbo.config.annotation.DubboReference;
|
||||||
import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream;
|
import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream;
|
||||||
|
|
@ -39,6 +40,8 @@ public class StudentSignE extends BaseE {
|
||||||
private Long corpinfoId;
|
private Long corpinfoId;
|
||||||
//签到人脸路径
|
//签到人脸路径
|
||||||
private String faceUrl;
|
private String faceUrl;
|
||||||
|
//打卡签字路径
|
||||||
|
private String signUrl;
|
||||||
//签到类型 1-打卡签到 2-人脸签到
|
//签到类型 1-打卡签到 2-人脸签到
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
||||||
|
|
@ -73,8 +76,7 @@ public class StudentSignE extends BaseE {
|
||||||
@DubboReference
|
@DubboReference
|
||||||
private ZcloudImgFilesFacade zcloudImgFilesFacade;
|
private ZcloudImgFilesFacade zcloudImgFilesFacade;
|
||||||
|
|
||||||
public void compareFace(String templateFaceUrl) throws Exception {
|
public void compareFace(String templateFaceUrl, String faceUrl) throws Exception {
|
||||||
String faceUrl = Base64Util.getBase64String(files[0]);
|
|
||||||
String templateFace = Base64Util.urlToBase64(prefixUrl + templateFaceUrl);
|
String templateFace = Base64Util.urlToBase64(prefixUrl + templateFaceUrl);
|
||||||
String confidence = FaceUtil.compareFace(templateFace, faceUrl);
|
String confidence = FaceUtil.compareFace(templateFace, faceUrl);
|
||||||
|
|
||||||
|
|
@ -83,6 +85,10 @@ public class StudentSignE extends BaseE {
|
||||||
}
|
}
|
||||||
this.setStudentSignId(Tools.get32UUID());
|
this.setStudentSignId(Tools.get32UUID());
|
||||||
}
|
}
|
||||||
|
public void init(String studentId, String classId, long corpinfoId){
|
||||||
|
this.setStudentId(studentId);
|
||||||
|
this.setClassId(classId);
|
||||||
|
this.setCorpinfoId(corpinfoId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
package com.zcloud.edu.gatewayimpl.archives;
|
||||||
|
|
||||||
|
import com.zcloud.edu.domain.gateway.archives.ArchivesReviewGateway;
|
||||||
|
import com.zcloud.edu.domain.model.archives.ArchivesReviewE;
|
||||||
|
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO;
|
||||||
|
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRepository;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewGatewayImpl implements ArchivesReviewGateway {
|
||||||
|
private final ArchivesReviewRepository archivesReviewRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean add(ArchivesReviewE archivesReviewE) {
|
||||||
|
ArchivesReviewDO d = new ArchivesReviewDO();
|
||||||
|
BeanUtils.copyProperties(archivesReviewE, d);
|
||||||
|
archivesReviewRepository.save(d);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean update(ArchivesReviewE archivesReviewE) {
|
||||||
|
ArchivesReviewDO d = new ArchivesReviewDO();
|
||||||
|
BeanUtils.copyProperties(archivesReviewE, d);
|
||||||
|
archivesReviewRepository.updateById(d);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean deletedArchivesReviewById(Long id) {
|
||||||
|
return archivesReviewRepository.removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean deletedArchivesReviewByIds(Long[] ids) {
|
||||||
|
return archivesReviewRepository.removeByIds(Arrays.asList(ids));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
package com.zcloud.edu.gatewayimpl.archives;
|
||||||
|
|
||||||
|
import com.zcloud.edu.domain.gateway.archives.ArchivesReviewRecordGateway;
|
||||||
|
import com.zcloud.edu.domain.model.archives.ArchivesReviewRecordE;
|
||||||
|
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO;
|
||||||
|
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRecordRepository;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:37
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ArchivesReviewRecordGatewayImpl implements ArchivesReviewRecordGateway {
|
||||||
|
private final ArchivesReviewRecordRepository archivesReviewRecordRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean add(ArchivesReviewRecordE archivesReviewRecordE) {
|
||||||
|
ArchivesReviewRecordDO d = new ArchivesReviewRecordDO();
|
||||||
|
BeanUtils.copyProperties(archivesReviewRecordE, d);
|
||||||
|
archivesReviewRecordRepository.save(d);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean update(ArchivesReviewRecordE archivesReviewRecordE) {
|
||||||
|
ArchivesReviewRecordDO d = new ArchivesReviewRecordDO();
|
||||||
|
BeanUtils.copyProperties(archivesReviewRecordE, d);
|
||||||
|
archivesReviewRecordRepository.updateById(d);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean deletedArchivesReviewRecordById(Long id) {
|
||||||
|
return archivesReviewRecordRepository.removeById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean deletedArchivesReviewRecordByIds(Long[] ids) {
|
||||||
|
return archivesReviewRecordRepository.removeByIds(Collections.singletonList(ids));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -26,6 +26,7 @@ public class StudentSignGatewayImpl implements StudentSignGateway {
|
||||||
StudentSignDO d = new StudentSignDO();
|
StudentSignDO d = new StudentSignDO();
|
||||||
BeanUtils.copyProperties(studentSignE, d);
|
BeanUtils.copyProperties(studentSignE, d);
|
||||||
studentSignRepository.save(d);
|
studentSignRepository.save(d);
|
||||||
|
studentSignE.setId(d.getId());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
package com.zcloud.edu.persistence.dataobject.archives;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:34
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("archives_review")
|
||||||
|
@NoArgsConstructor
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class ArchivesReviewDO extends BaseDO {
|
||||||
|
//业务id
|
||||||
|
@ApiModelProperty(value = "业务id")
|
||||||
|
private String archivesReviewId;
|
||||||
|
//课程id
|
||||||
|
@ApiModelProperty(value = "课程id")
|
||||||
|
private String classCurriculumId;
|
||||||
|
//班级id
|
||||||
|
@ApiModelProperty(value = "班级id")
|
||||||
|
private String classId;
|
||||||
|
//初版书号
|
||||||
|
@ApiModelProperty(value = "初版书号")
|
||||||
|
private String bookNum;
|
||||||
|
//班级所属企业id
|
||||||
|
@ApiModelProperty(value = "班级所属企业id")
|
||||||
|
private Integer corpinfoId;
|
||||||
|
//编写单位
|
||||||
|
@ApiModelProperty(value = "编写单位")
|
||||||
|
private String corpName;
|
||||||
|
//编写时间
|
||||||
|
@ApiModelProperty(value = "编写时间")
|
||||||
|
private LocalDateTime writeDate;
|
||||||
|
//教材类型
|
||||||
|
@ApiModelProperty(value = "教材类型")
|
||||||
|
private String materialType;
|
||||||
|
//会审地点
|
||||||
|
@ApiModelProperty(value = "会审地点")
|
||||||
|
private String address;
|
||||||
|
//主持人
|
||||||
|
@ApiModelProperty(value = "主持人")
|
||||||
|
private String compere;
|
||||||
|
//会审时间
|
||||||
|
@ApiModelProperty(value = "会审时间")
|
||||||
|
private LocalDateTime auditDate;
|
||||||
|
//会审意见
|
||||||
|
@ApiModelProperty(value = "会审意见")
|
||||||
|
private String reviewOpinions;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
package com.zcloud.edu.persistence.dataobject.archives;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:37
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@TableName("archives_review_record")
|
||||||
|
@NoArgsConstructor
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class ArchivesReviewRecordDO extends BaseDO {
|
||||||
|
//业务id
|
||||||
|
@ApiModelProperty(value = "业务id")
|
||||||
|
private String archivesReviewRecordId;
|
||||||
|
//会审表id
|
||||||
|
@ApiModelProperty(value = "会审表id")
|
||||||
|
private String archivesReviewId;
|
||||||
|
//会审人员
|
||||||
|
@ApiModelProperty(value = "会审人员")
|
||||||
|
private String reviewUser;
|
||||||
|
//工作部门
|
||||||
|
@ApiModelProperty(value = "工作部门")
|
||||||
|
private String department;
|
||||||
|
//职务/职称
|
||||||
|
@ApiModelProperty(value = "职务/职称")
|
||||||
|
private String duties;
|
||||||
|
//审查意见
|
||||||
|
@ApiModelProperty(value = "审查意见")
|
||||||
|
private String checkOpinion;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -75,5 +75,15 @@ public class ClassDO extends BaseDO {
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer finishCount = 0;
|
private Integer finishCount = 0;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "学员id(雪花)")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Long stuId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "学员id(uuid)")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String studentId;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -97,5 +97,13 @@ public class StudentDO extends BaseDO {
|
||||||
@ApiModelProperty(value = "项目名称集合")
|
@ApiModelProperty(value = "项目名称集合")
|
||||||
private String projectNames;
|
private String projectNames;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "班级数")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer classCount;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "完成班级数")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private Integer completeClassCount;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.zcloud.edu.persistence.dataobject.study;
|
package com.zcloud.edu.persistence.dataobject.study;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
import com.jjb.saas.framework.repository.basedo.BaseDO;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
@ -61,6 +62,13 @@ public class StudentExamRecordDO extends BaseDO {
|
||||||
@ApiModelProperty(value = "考试结果 0 -不通过 1-通过")
|
@ApiModelProperty(value = "考试结果 0 -不通过 1-通过")
|
||||||
private Integer result;
|
private Integer result;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "学员考试签到id")
|
||||||
|
private String studentSignId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "考试签字")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String signUrl;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,10 @@ public class StudentSignDO extends BaseDO {
|
||||||
@ApiModelProperty(value = "签到人脸路径")
|
@ApiModelProperty(value = "签到人脸路径")
|
||||||
private String faceUrl;
|
private String faceUrl;
|
||||||
|
|
||||||
|
//打卡签字路径
|
||||||
|
@ApiModelProperty(value = "打卡签字路径")
|
||||||
|
private String signUrl;
|
||||||
|
|
||||||
//签到类型 1-打卡签到 2-人脸签到
|
//签到类型 1-打卡签到 2-人脸签到
|
||||||
@ApiModelProperty(value = "签到类型 1-打卡签到 2-人脸签到")
|
@ApiModelProperty(value = "签到类型 1-打卡签到 2-人脸签到")
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.zcloud.edu.persistence.mapper.archives;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ArchivesReviewMapper extends BaseMapper<ArchivesReviewDO> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.zcloud.edu.persistence.mapper.archives;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:37
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ArchivesReviewRecordMapper extends BaseMapper<ArchivesReviewRecordDO> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.zcloud.edu.persistence.mapper.study;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordDO;
|
import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* web-infrastructure
|
* web-infrastructure
|
||||||
|
|
@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface StudentExamRecordMapper extends BaseMapper<StudentExamRecordDO> {
|
public interface StudentExamRecordMapper extends BaseMapper<StudentExamRecordDO> {
|
||||||
|
StudentExamRecordDO getInfoByStudentId(@Param("studentId") String studentId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,5 +25,8 @@ public interface StudentMapper extends BaseMapper<StudentDO> {
|
||||||
StudentDO findByClassIdAndPhone(@Param("classId") String classId, @Param("phone") String phone);
|
StudentDO findByClassIdAndPhone(@Param("classId") String classId, @Param("phone") String phone);
|
||||||
StudentDO findFaceUrlByPhone(@Param("phone") String phone);
|
StudentDO findFaceUrlByPhone(@Param("phone") String phone);
|
||||||
|
|
||||||
|
List<StudentDO> countStuClass(@Param("params") Map<String, Object> params);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.zcloud.edu.persistence.repository.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:37
|
||||||
|
*/
|
||||||
|
public interface ArchivesReviewRecordRepository extends BaseRepository<ArchivesReviewRecordDO> {
|
||||||
|
PageResponse<ArchivesReviewRecordDO> listPage(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.zcloud.edu.persistence.repository.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
|
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
public interface ArchivesReviewRepository extends BaseRepository<ArchivesReviewDO> {
|
||||||
|
PageResponse<ArchivesReviewDO> listPage(Map<String, Object> params);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
package com.zcloud.edu.persistence.repository.impl.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||||
|
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||||
|
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewRecordDO;
|
||||||
|
import com.zcloud.edu.persistence.mapper.archives.ArchivesReviewRecordMapper;
|
||||||
|
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRecordRepository;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
|
import com.zcloud.gbscommon.utils.Query;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:37
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ArchivesReviewRecordRepositoryImpl extends BaseRepositoryImpl<ArchivesReviewRecordMapper, ArchivesReviewRecordDO> implements ArchivesReviewRecordRepository {
|
||||||
|
private final ArchivesReviewRecordMapper archivesReviewRecordMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<ArchivesReviewRecordDO> listPage(Map<String, Object> params) {
|
||||||
|
IPage<ArchivesReviewRecordDO> iPage = new Query<ArchivesReviewRecordDO>().getPage(params);
|
||||||
|
QueryWrapper<ArchivesReviewRecordDO> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
|
||||||
|
queryWrapper.orderByDesc("create_time");
|
||||||
|
IPage<ArchivesReviewRecordDO> result = archivesReviewRecordMapper.selectPage(iPage, queryWrapper);
|
||||||
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
package com.zcloud.edu.persistence.repository.impl.archives;
|
||||||
|
|
||||||
|
import com.alibaba.cola.dto.PageResponse;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||||
|
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||||
|
import com.zcloud.edu.persistence.dataobject.archives.ArchivesReviewDO;
|
||||||
|
import com.zcloud.edu.persistence.mapper.archives.ArchivesReviewMapper;
|
||||||
|
import com.zcloud.edu.persistence.repository.archives.ArchivesReviewRepository;
|
||||||
|
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
|
import com.zcloud.gbscommon.utils.Query;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* web-infrastructure
|
||||||
|
*
|
||||||
|
* @Author zhangyue
|
||||||
|
* @Date 2026-01-26 10:59:35
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class ArchivesReviewRepositoryImpl extends BaseRepositoryImpl<ArchivesReviewMapper, ArchivesReviewDO> implements ArchivesReviewRepository {
|
||||||
|
private final ArchivesReviewMapper archivesReviewMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResponse<ArchivesReviewDO> listPage(Map<String, Object> params) {
|
||||||
|
IPage<ArchivesReviewDO> iPage = new Query<ArchivesReviewDO>().getPage(params);
|
||||||
|
QueryWrapper<ArchivesReviewDO> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
|
||||||
|
queryWrapper.orderByDesc("create_time");
|
||||||
|
IPage<ArchivesReviewDO> result = archivesReviewMapper.selectPage(iPage, queryWrapper);
|
||||||
|
return PageHelper.pageToResponse(result, result.getRecords());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -70,5 +70,15 @@ public class ClassCurriculumChapterRepositoryImpl extends BaseRepositoryImpl<Cla
|
||||||
return classCurriculumChapterMapper.selectList(queryWrapper);
|
return classCurriculumChapterMapper.selectList(queryWrapper);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ClassCurriculumChapterDO> listVideoByClassId(String classId) {
|
||||||
|
QueryWrapper<ClassCurriculumChapterDO> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("class_id", classId);
|
||||||
|
queryWrapper.isNotNull("video_courseware_id");
|
||||||
|
queryWrapper.ne("video_courseware_id", "");
|
||||||
|
queryWrapper.eq("delete_enum", "FALSE");
|
||||||
|
return classCurriculumChapterMapper.selectList(queryWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ import com.zcloud.gbscommon.utils.Query;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -54,5 +55,14 @@ public class StudentExamRecordItemRepositoryImpl extends BaseRepositoryImpl<Stud
|
||||||
updateWrapper.set("delete_enum", "TRUE");
|
updateWrapper.set("delete_enum", "TRUE");
|
||||||
return studentExamRecordItemMapper.delete(updateWrapper);
|
return studentExamRecordItemMapper.delete(updateWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<StudentExamRecordItemDO> listByExamRecordId(String examRecordId) {
|
||||||
|
QueryWrapper<StudentExamRecordItemDO> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("exam_record_id", examRecordId);
|
||||||
|
queryWrapper.eq("delete_enum", "FALSE");
|
||||||
|
queryWrapper.orderByDesc("create_time");
|
||||||
|
return studentExamRecordItemMapper.selectList(queryWrapper);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,5 +63,10 @@ public class StudentExamRecordRepositoryImpl extends BaseRepositoryImpl<StudentE
|
||||||
queryWrapper.eq("delete_enum", "FALSE");
|
queryWrapper.eq("delete_enum", "FALSE");
|
||||||
return studentExamRecordMapper.selectList(queryWrapper);
|
return studentExamRecordMapper.selectList(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StudentExamRecordDO getInfoByStudentId(String studentId) {
|
||||||
|
return studentExamRecordMapper.getInfoByStudentId(studentId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,5 +84,18 @@ public class StudentRepositoryImpl extends BaseRepositoryImpl<StudentMapper, Stu
|
||||||
return studentMapper.findFaceUrlByPhone(phone);
|
return studentMapper.findFaceUrlByPhone(phone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<StudentDO> countStuClass(Map<String, Object> params) {
|
||||||
|
return studentMapper.countStuClass(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StudentDO findInfoByStudentId(String studentId) {
|
||||||
|
QueryWrapper<StudentDO> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("student_id", studentId);
|
||||||
|
queryWrapper.eq("delete_enum", "FALSE");
|
||||||
|
return studentMapper.selectOne(queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||||
import com.zcloud.gbscommon.utils.Query;
|
import com.zcloud.gbscommon.utils.Query;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -59,7 +60,13 @@ public class StudentSignRepositoryImpl extends BaseRepositoryImpl<StudentSignMap
|
||||||
QueryWrapper queryWrapper = new QueryWrapper<>();
|
QueryWrapper queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("student_id", params.get("studentId"));
|
queryWrapper.eq("student_id", params.get("studentId"));
|
||||||
queryWrapper.eq("delete_enum", "FALSE");
|
queryWrapper.eq("delete_enum", "FALSE");
|
||||||
queryWrapper.eq("type", params.get("type"));
|
if (!ObjectUtils.isEmpty(params.get("type"))){
|
||||||
|
queryWrapper.eq("type", params.get("type"));
|
||||||
|
}
|
||||||
|
if (!ObjectUtils.isEmpty(params.get("orderCreateTime"))){
|
||||||
|
queryWrapper.orderByDesc("create_time");
|
||||||
|
}
|
||||||
|
queryWrapper.isNotNull("sign_url");
|
||||||
return studentSignMapper.selectList(queryWrapper);
|
return studentSignMapper.selectList(queryWrapper);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,5 +23,7 @@ public interface ClassCurriculumChapterRepository extends BaseRepository<ClassCu
|
||||||
Integer deleteByClassId(String classId);
|
Integer deleteByClassId(String classId);
|
||||||
|
|
||||||
List<ClassCurriculumChapterDO> listByClassCurriculumIds(List<String> classCurriculumIds);
|
List<ClassCurriculumChapterDO> listByClassCurriculumIds(List<String> classCurriculumIds);
|
||||||
|
|
||||||
|
List<ClassCurriculumChapterDO> listVideoByClassId(String classId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||||
import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordItemDO;
|
import com.zcloud.edu.persistence.dataobject.study.StudentExamRecordItemDO;
|
||||||
import io.swagger.models.auth.In;
|
import io.swagger.models.auth.In;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -19,5 +20,7 @@ public interface StudentExamRecordItemRepository extends BaseRepository<StudentE
|
||||||
void deleteByStudentId(String studentId);
|
void deleteByStudentId(String studentId);
|
||||||
|
|
||||||
Integer deleteByClassId(String classId);
|
Integer deleteByClassId(String classId);
|
||||||
|
|
||||||
|
List<StudentExamRecordItemDO> listByExamRecordId(String examRecordId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,5 +21,7 @@ public interface StudentExamRecordRepository extends BaseRepository<StudentExamR
|
||||||
Integer deleteByClassId(String classId);
|
Integer deleteByClassId(String classId);
|
||||||
|
|
||||||
List<StudentExamRecordDO> listAllByStudentId(String studentId);
|
List<StudentExamRecordDO> listAllByStudentId(String studentId);
|
||||||
|
|
||||||
|
StudentExamRecordDO getInfoByStudentId(String studentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,11 @@ public interface StudentRepository extends BaseRepository<StudentDO> {
|
||||||
|
|
||||||
StudentDO findFaceUrlByPhone(String phone);
|
StudentDO findFaceUrlByPhone(String phone);
|
||||||
|
|
||||||
|
List<StudentDO> countStuClass(Map<String, Object> params);
|
||||||
|
|
||||||
|
|
||||||
|
StudentDO findInfoByStudentId(String studentId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,5 +23,6 @@ public interface StudentSignRepository extends BaseRepository<StudentSignDO> {
|
||||||
|
|
||||||
List<StudentSignDO> listAllByStudentId(Map<String, Object> params);
|
List<StudentSignDO> listAllByStudentId(Map<String, Object> params);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
|
||||||
|
<mapper namespace="com.zcloud.edu.persistence.mapper.archives.ArchivesReviewMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
|
||||||
|
<mapper namespace="com.zcloud.edu.persistence.mapper.archives.ArchivesReviewRecordMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
<select id="listByClassCurriculumId" resultType="com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO">
|
<select id="listByClassCurriculumId" resultType="com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO">
|
||||||
SELECT
|
SELECT
|
||||||
c.id,
|
c.id,
|
||||||
c.curriculum_chapter_id,
|
c.class_curriculum_chapter_id,
|
||||||
c.class_id,
|
c.class_id,
|
||||||
c.corpinfo_id,
|
c.corpinfo_id,
|
||||||
c.class_curriculum_id,
|
c.class_curriculum_id,
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
<select id="listByClassCurriculumIds" resultType="com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO">
|
<select id="listByClassCurriculumIds" resultType="com.zcloud.edu.persistence.dataobject.study.ClassCurriculumChapterDO">
|
||||||
SELECT
|
SELECT
|
||||||
c.id,
|
c.id,
|
||||||
c.curriculum_chapter_id,
|
c.class_curriculum_chapter_id,
|
||||||
c.class_id,
|
c.class_id,
|
||||||
c.corpinfo_id,
|
c.corpinfo_id,
|
||||||
c.class_curriculum_id,
|
c.class_curriculum_id,
|
||||||
|
|
|
||||||
|
|
@ -97,17 +97,25 @@
|
||||||
c.valid_start_time,
|
c.valid_start_time,
|
||||||
c.valid_end_time,
|
c.valid_end_time,
|
||||||
c.examination,
|
c.examination,
|
||||||
c.numberofexams
|
c.numberofexams,
|
||||||
|
s.student_id,
|
||||||
|
s.id stu_id
|
||||||
FROM
|
FROM
|
||||||
class c
|
student s
|
||||||
|
left join class c on c.class_id = s.class_id
|
||||||
left join training_type t on t.training_type_id = c.train_type
|
left join training_type t on t.training_type_id = c.train_type
|
||||||
left join corp_info ci on ci.id = c.corpinfo_id
|
left join corp_info ci on ci.id = c.corpinfo_id
|
||||||
WHERE
|
<where>
|
||||||
c.class_id IN (SELECT s.class_id FROM student s WHERE s.phone = #{params.phone} AND s.delete_enum = 'FALSE')
|
AND s.phone = #{params.phone}
|
||||||
|
AND s.delete_enum = 'FALSE'
|
||||||
AND c.delete_enum = 'FALSE'
|
AND c.delete_enum = 'FALSE'
|
||||||
<if test="params.likeName != null and params.likeName !='' ">
|
<if test="params.likeName != null and params.likeName !='' ">
|
||||||
and c.name like concat('%',#{params.likeName},'%')
|
and c.name like concat('%',#{params.likeName},'%')
|
||||||
</if>
|
</if>
|
||||||
|
<if test="params.eqCorpinfoId != null and params.eqCorpinfoId !='' ">
|
||||||
|
and c.corpinfo_id = #{params.eqCorpinfoId}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
order by
|
order by
|
||||||
c.state,
|
c.state,
|
||||||
c.create_time desc
|
c.create_time desc
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,35 @@
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
|
||||||
<mapper namespace="com.zcloud.edu.persistence.mapper.study.StudentExamRecordMapper">
|
<mapper namespace="com.zcloud.edu.persistence.mapper.study.StudentExamRecordMapper">
|
||||||
|
<select id="getInfoByStudentId" resultType="com.zcloud.edu.persistence.dataobject.study.StudentExamRecordDO">
|
||||||
|
SELECT
|
||||||
|
er.id,
|
||||||
|
er.student_exam_record_id,
|
||||||
|
er.user_id,
|
||||||
|
er.student_id,
|
||||||
|
er.class_id,
|
||||||
|
er.corpinfo_id,
|
||||||
|
er.student_sign_id,
|
||||||
|
er.class_exam_paper_id,
|
||||||
|
er.exam_paper_id,
|
||||||
|
er.exam_time_begin,
|
||||||
|
er.exam_time_end,
|
||||||
|
er.exam_question_num,
|
||||||
|
er.exam_question_right,
|
||||||
|
er.exam_question_wrong,
|
||||||
|
er.exam_score,
|
||||||
|
er.result,
|
||||||
|
ss.sign_url
|
||||||
|
FROM
|
||||||
|
student_exam_record er
|
||||||
|
left join student_sign ss on ss.student_sign_id = er.student_sign_id
|
||||||
|
<where>
|
||||||
|
er.delete_enum = 'FALSE'
|
||||||
|
and er.student_id = #{studentId}
|
||||||
|
</where>
|
||||||
|
ORDER BY
|
||||||
|
er.result desc, er.exam_score desc, er.create_time desc
|
||||||
|
limit 1
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,5 +70,25 @@
|
||||||
create_time desc
|
create_time desc
|
||||||
limit 1
|
limit 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="countStuClass" resultType="com.zcloud.edu.persistence.dataobject.study.StudentDO">
|
||||||
|
SELECT
|
||||||
|
s.phone,
|
||||||
|
count(*) class_count,
|
||||||
|
count(CASE WHEN s.state = 1 THEN 1 END) complete_class_count
|
||||||
|
FROM
|
||||||
|
student s
|
||||||
|
<where>
|
||||||
|
<if test="params.inCorpinfoId != null">
|
||||||
|
AND s.phone in
|
||||||
|
<foreach collection="params.phones" item="phone" open="(" close=")" separator=",">
|
||||||
|
#{phone}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
and s.delete_enum = 'FALSE'
|
||||||
|
</where>
|
||||||
|
group by s.phone
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,12 +13,11 @@
|
||||||
ss.face_url
|
ss.face_url
|
||||||
FROM
|
FROM
|
||||||
student_sign ss
|
student_sign ss
|
||||||
LEFT JOIN student s ON ss.student_id = ss.student_id
|
LEFT JOIN student s ON ss.student_id = ss.student_id
|
||||||
LEFT JOIN class cl ON cl.class_id = s.class_id
|
LEFT JOIN class cl ON cl.class_id = s.class_id
|
||||||
WHERE
|
WHERE
|
||||||
s.phone = #{params.phone}
|
ss.student_id = #{params.studentId}
|
||||||
AND s.class_id = #{params.classId}
|
AND ss.delete_enum = 'FALSE'
|
||||||
AND ss.delete_enum = 'FALSE'
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue