dev:教师管理

main
SondonYong 2025-11-27 14:01:36 +08:00
parent c8a542a40b
commit 50da0e47ea
31 changed files with 683 additions and 102 deletions

View File

@ -2,11 +2,7 @@ package com.zcloud.edu.web;
import com.zcloud.edu.api.TeacherServiceI; import com.zcloud.edu.api.TeacherServiceI;
import com.zcloud.edu.dto.TeacherAddCmd; import com.zcloud.edu.dto.*;
import com.zcloud.edu.dto.TeacherPageQry;
import com.zcloud.edu.dto.TeacherListQry;
import com.zcloud.edu.dto.TeacherUpdateCmd;
import com.zcloud.edu.dto.TeacherRemoveCmd;
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;
@ -33,7 +29,7 @@ import org.springframework.web.bind.annotation.*;
public class TeacherController { public class TeacherController {
private final TeacherServiceI teacherService; private final TeacherServiceI teacherService;
@ApiOperation("新增") @ApiOperation("新增(从人员列表选择)")
@PostMapping("/save") @PostMapping("/save")
public SingleResponse<TeacherCO> add(@Validated @RequestBody TeacherAddCmd cmd) { public SingleResponse<TeacherCO> add(@Validated @RequestBody TeacherAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser(); SSOUser ssoUser = AuthContext.getCurrentUser();
@ -47,6 +43,13 @@ public class TeacherController {
return SingleResponse.buildSuccess(); return SingleResponse.buildSuccess();
} }
@ApiOperation("启用/禁用")
@PutMapping("/editState")
public SingleResponse editState(@Validated @RequestBody TeacherUpdateStateCmd cmd) {
teacherService.editState(cmd);
return SingleResponse.buildSuccess();
}
@ApiOperation("分页") @ApiOperation("分页")
@PostMapping("/list") @PostMapping("/list")
public PageResponse<TeacherCO> page(@RequestBody TeacherPageQry qry) { public PageResponse<TeacherCO> page(@RequestBody TeacherPageQry qry) {

View File

@ -1,14 +1,21 @@
package com.zcloud.edu.command; package com.zcloud.edu.command;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.zcloud.edu.domain.gateway.TeacherGateway; import com.zcloud.edu.domain.gateway.TeacherGateway;
import com.zcloud.edu.domain.model.TeacherE; import com.zcloud.edu.domain.model.TeacherE;
import com.zcloud.edu.domain.model.UserAddE;
import com.zcloud.edu.dto.TeacherAddCmd; import com.zcloud.edu.dto.TeacherAddCmd;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.persistence.dataobject.TeacherDO;
import com.zcloud.edu.persistence.repository.TeacherRepository;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/** /**
* web-app * web-app
@ -20,14 +27,18 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor @AllArgsConstructor
public class TeacherAddExe { public class TeacherAddExe {
private final TeacherGateway teacherGateway; private final TeacherGateway teacherGateway;
private final TeacherRepository teacherRepository;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(TeacherAddCmd cmd) { public boolean execute(TeacherAddCmd cmd) {
TeacherE teacherE = new TeacherE(); TeacherE teacherE = new TeacherE();
BeanUtils.copyProperties(cmd, teacherE); List<TeacherE> teacherEList = teacherE.convertFromUserList(BeanUtil.copyToList(cmd.getUserList(), UserAddE.class));
boolean res = false; boolean res = false;
try { try {
res = teacherGateway.add(teacherE); if(CollUtil.isNotEmpty(teacherEList)){
res = teacherRepository.saveBatch(BeanUtil.copyToList(teacherEList, TeacherDO.class));
}
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }

View File

@ -1,11 +1,20 @@
package com.zcloud.edu.command; package com.zcloud.edu.command;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.edu.domain.gateway.TeacherGateway; import com.zcloud.edu.domain.gateway.TeacherGateway;
import com.alibaba.cola.exception.BizException; import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.persistence.dataobject.TeacherDO;
import com.zcloud.edu.persistence.repository.TeacherCertificateRepository;
import com.zcloud.edu.persistence.repository.TeacherRepository;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* web-app * web-app
@ -17,10 +26,22 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor @AllArgsConstructor
public class TeacherRemoveExe { public class TeacherRemoveExe {
private final TeacherGateway teacherGateway; private final TeacherGateway teacherGateway;
private final TeacherRepository teacherRepository;
private final TeacherCertificateRepository teacherCertificateRepository;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) { public boolean execute(Long id) {
SingleResponse<TeacherDO> teacherDO = teacherRepository.getInfoById(id);
if(teacherDO.getData() == null || teacherDO.getData() == null){
throw new BizException("数据不存在");
}
boolean res = teacherGateway.deletedTeacherById(id); boolean res = teacherGateway.deletedTeacherById(id);
if(res){
String teacherId = teacherDO.getData().getTeacherId();
teacherCertificateRepository.removeByTeacherId(teacherId);
}
if (!res) { if (!res) {
throw new BizException("删除失败"); throw new BizException("删除失败");
} }
@ -29,7 +50,17 @@ public class TeacherRemoveExe {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean execute(Long[] ids) { public boolean execute(Long[] ids) {
List<TeacherDO> teacherDOS = teacherRepository.listByIds(Arrays.asList(ids));
if(CollUtil.isEmpty(teacherDOS)){
throw new BizException("数据不存在");
}
boolean res = teacherGateway.deletedTeacherByIds(ids); boolean res = teacherGateway.deletedTeacherByIds(ids);
if(res){
List<String> teacherIds = teacherDOS.stream().map(TeacherDO::getTeacherId).collect(Collectors.toList());
teacherCertificateRepository.removeByTeacherIds(teacherIds);
}
if (!res) { if (!res) {
throw new BizException("删除失败"); throw new BizException("删除失败");
} }

View File

@ -4,6 +4,7 @@ import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.domain.gateway.TeacherGateway; import com.zcloud.edu.domain.gateway.TeacherGateway;
import com.zcloud.edu.domain.model.TeacherE; import com.zcloud.edu.domain.model.TeacherE;
import com.zcloud.edu.dto.TeacherUpdateCmd; import com.zcloud.edu.dto.TeacherUpdateCmd;
import com.zcloud.edu.dto.TeacherUpdateStateCmd;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -30,5 +31,15 @@ public class TeacherUpdateExe {
throw new BizException("修改失败"); throw new BizException("修改失败");
} }
} }
@Transactional(rollbackFor = Exception.class)
public void execute(TeacherUpdateStateCmd cmd) {
TeacherE teacherE = new TeacherE();
BeanUtils.copyProperties(cmd, teacherE);
boolean res = teacherGateway.update(teacherE);
if (!res) {
throw new BizException("修改失败");
}
}
} }

View File

@ -1,11 +1,15 @@
package com.zcloud.edu.command.query; package com.zcloud.edu.command.query;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.command.convertor.TeacherCoConvertor; import com.zcloud.edu.command.convertor.TeacherCoConvertor;
import com.zcloud.edu.dto.TeacherListQry; import com.zcloud.edu.dto.TeacherListQry;
import com.zcloud.edu.dto.TeacherPageQry; import com.zcloud.edu.dto.TeacherPageQry;
import com.zcloud.edu.dto.clientobject.TeacherCO; import com.zcloud.edu.dto.clientobject.TeacherCO;
import com.zcloud.edu.dto.clientobject.TeacherCertificateCO;
import com.zcloud.edu.persistence.dataobject.TeacherCertificateDO;
import com.zcloud.edu.persistence.dataobject.TeacherDO; import com.zcloud.edu.persistence.dataobject.TeacherDO;
import com.zcloud.edu.persistence.repository.TeacherCertificateRepository;
import com.zcloud.edu.persistence.repository.TeacherRepository; import com.zcloud.edu.persistence.repository.TeacherRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper; import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
@ -29,6 +33,7 @@ import java.util.Map;
public class TeacherQueryExe { public class TeacherQueryExe {
private final TeacherRepository teacherRepository; private final TeacherRepository teacherRepository;
private final TeacherCoConvertor teacherCoConvertor; private final TeacherCoConvertor teacherCoConvertor;
private final TeacherCertificateRepository teacherCertificateRepository;
/** /**
* *
@ -53,6 +58,12 @@ public class TeacherQueryExe {
SingleResponse<TeacherDO> teacherDO = teacherRepository.getInfoById(id); SingleResponse<TeacherDO> teacherDO = teacherRepository.getInfoById(id);
TeacherCO co = new TeacherCO(); TeacherCO co = new TeacherCO();
BeanUtils.copyProperties(teacherDO.getData(), co); BeanUtils.copyProperties(teacherDO.getData(), co);
if(co != null){
List<TeacherCertificateDO> teacherCertificateDOS = teacherCertificateRepository.listByTeacherId(co.getTeacherId());
co.setTeacherCertificateList(BeanUtil.copyToList(teacherCertificateDOS, TeacherCertificateCO.class));
}
return SingleResponse.of(co); return SingleResponse.of(co);
} }

View File

@ -6,10 +6,7 @@ import com.zcloud.edu.command.TeacherAddExe;
import com.zcloud.edu.command.TeacherRemoveExe; import com.zcloud.edu.command.TeacherRemoveExe;
import com.zcloud.edu.command.TeacherUpdateExe; import com.zcloud.edu.command.TeacherUpdateExe;
import com.zcloud.edu.command.query.TeacherQueryExe; import com.zcloud.edu.command.query.TeacherQueryExe;
import com.zcloud.edu.dto.TeacherAddCmd; import com.zcloud.edu.dto.*;
import com.zcloud.edu.dto.TeacherPageQry;
import com.zcloud.edu.dto.TeacherListQry;
import com.zcloud.edu.dto.TeacherUpdateCmd;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
@ -57,6 +54,11 @@ public class TeacherServiceImpl implements TeacherServiceI {
teacherUpdateExe.execute(cmd); teacherUpdateExe.execute(cmd);
} }
@Override
public void editState(TeacherUpdateStateCmd cmd) {
teacherUpdateExe.execute(cmd);
}
@Override @Override
public void remove(Long id) { public void remove(Long id) {
teacherRemoveExe.execute(id); teacherRemoveExe.execute(id);

View File

@ -1,10 +1,7 @@
package com.zcloud.edu.api; package com.zcloud.edu.api;
import com.alibaba.cola.dto.MultiResponse; import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.dto.TeacherAddCmd; import com.zcloud.edu.dto.*;
import com.zcloud.edu.dto.TeacherPageQry;
import com.zcloud.edu.dto.TeacherListQry;
import com.zcloud.edu.dto.TeacherUpdateCmd;
import com.alibaba.cola.dto.PageResponse; import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse; import com.alibaba.cola.dto.SingleResponse;
@ -27,6 +24,8 @@ public interface TeacherServiceI {
void edit(TeacherUpdateCmd cmd); void edit(TeacherUpdateCmd cmd);
void editState(TeacherUpdateStateCmd cmd);
void remove(Long id); void remove(Long id);
void removeBatch(Long[] ids); void removeBatch(Long[] ids);

View File

@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.*; import javax.validation.constraints.*;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* web-client * web-client
@ -23,58 +24,10 @@ import java.util.Date;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class TeacherAddCmd extends Command { public class TeacherAddCmd extends Command {
@ApiModelProperty(value = "用户id", name = "userId", required = true)
@NotNull(message = "用户id不能为空")
private Long userId;
@ApiModelProperty(value = "企业ID", name = "corpinfoId", required = true) @ApiModelProperty(value = "用户列表",name = "userList", required = true)
@NotNull(message = "企业ID不能为空") @NotEmpty(message = "用户列表不能为空")
private Long corpinfoId; private List<UserAddCmd> userList;
@ApiModelProperty(value = "教师姓名", name = "teacherName", required = true)
@NotEmpty(message = "教师姓名不能为空")
private String teacherName;
@ApiModelProperty(value = "手机号", name = "phone", required = true)
@NotEmpty(message = "手机号不能为空")
private String phone;
@ApiModelProperty(value = "身份证号", name = "identityNumber", required = true)
@NotEmpty(message = "身份证号不能为空")
private String identityNumber;
@ApiModelProperty(value = "文化程度", name = "educationLevel", required = true)
@NotEmpty(message = "文化程度不能为空")
private String educationLevel;
@ApiModelProperty(value = "文化程度名称", name = "educationLevelName", required = true)
@NotEmpty(message = "文化程度名称不能为空")
private String educationLevelName;
@ApiModelProperty(value = "专业", name = "profession", required = true)
@NotEmpty(message = "专业不能为空")
private String profession;
@ApiModelProperty(value = "工作年限", name = "workyear", required = true)
@NotNull(message = "工作年限不能为空")
private Integer workyear;
@ApiModelProperty(value = "考核部门", name = "assessmentDepartment", required = true)
@NotEmpty(message = "考核部门不能为空")
private String assessmentDepartment;
@ApiModelProperty(value = "考核时间", name = "assessmentTime", required = true)
@NotNull(message = "考核时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date assessmentTime;
@ApiModelProperty(value = "考核结果", name = "assessmentResult", required = true)
@NotEmpty(message = "考核结果不能为空")
private String assessmentResult;
@ApiModelProperty(value = "状态0-禁用 1-启用)(老项目0启用,1禁用)", name = "state", required = true)
@NotEmpty(message = "状态0-禁用 1-启用)(老项目0启用,1禁用)不能为空")
private String state;
} }

View File

@ -47,8 +47,7 @@ public class TeacherCertificateAddCmd extends Command {
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date certificateDateStart; private Date certificateDateStart;
@ApiModelProperty(value = "证书有效期(结束)", name = "certificateDateEnd", required = true) @ApiModelProperty(value = "证书有效期(结束)", name = "certificateDateEnd")
@NotNull(message = "证书有效期(结束)不能为空")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date certificateDateEnd; private Date certificateDateEnd;
@ -56,8 +55,7 @@ public class TeacherCertificateAddCmd extends Command {
@NotEmpty(message = "证书照片不能为空") @NotEmpty(message = "证书照片不能为空")
private String certificateFilepath; private String certificateFilepath;
@ApiModelProperty(value = "企业ID", name = "corpinfoId", required = true) @ApiModelProperty(value = "企业ID", name = "corpinfoId")
@NotNull(message = "企业ID不能为空")
private Long corpinfoId; private Long corpinfoId;
} }

View File

@ -1,8 +1,11 @@
package com.zcloud.edu.dto; package com.zcloud.edu.dto;
import com.alibaba.cola.dto.PageQuery; import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty;
/** /**
* web-client * web-client
@ -23,6 +26,9 @@ public class TeacherCertificatePageQry extends PageQuery {
* - `le`: * - `le`:
* - `ne`: SQL!= * - `ne`: SQL!=
*/ */
private String likeTeacherCertificateId;
@ApiModelProperty(name = "eqTeacherId", value = "教师id", required = true)
@NotEmpty(message = "教师id不能为空")
private String eqTeacherId;
} }

View File

@ -23,6 +23,7 @@ public class TeacherCertificateRemoveCmd extends Command {
@ApiModelProperty(value = "主键", name = "ids", required = true) @ApiModelProperty(value = "主键", name = "ids", required = true)
@NotNull(message = "主键不能为空") @NotNull(message = "主键不能为空")
@Size(min = 1, message = "请选择数据")
private Long[] ids; private Long[] ids;
} }

View File

@ -22,8 +22,8 @@ import java.util.Date;
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public class TeacherCertificateUpdateCmd extends Command { public class TeacherCertificateUpdateCmd extends Command {
@ApiModelProperty(value = "${column.comment}", name = "id", required = true) @ApiModelProperty(value = "id", name = "id", required = true)
@NotNull(message = "${column.comment}不能为空") @NotNull(message = "id不能为空")
private Long id; private Long id;
@ApiModelProperty(value = "业务主键id", name = "teacherCertificateId", required = true) @ApiModelProperty(value = "业务主键id", name = "teacherCertificateId", required = true)
@NotEmpty(message = "业务主键id不能为空") @NotEmpty(message = "业务主键id不能为空")
@ -47,8 +47,7 @@ public class TeacherCertificateUpdateCmd extends Command {
@NotNull(message = "证书有效期(开始)不能为空") @NotNull(message = "证书有效期(开始)不能为空")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date certificateDateStart; private Date certificateDateStart;
@ApiModelProperty(value = "证书有效期(结束)", name = "certificateDateEnd", required = true) @ApiModelProperty(value = "证书有效期(结束)", name = "certificateDateEnd")
@NotNull(message = "证书有效期(结束)不能为空")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date certificateDateEnd; private Date certificateDateEnd;
@ApiModelProperty(value = "证书照片", name = "certificateFilepath", required = true) @ApiModelProperty(value = "证书照片", name = "certificateFilepath", required = true)

View File

@ -23,6 +23,6 @@ public class TeacherListQry extends PageQuery {
* - `le`: * - `le`:
* - `ne`: SQL!= * - `ne`: SQL!=
*/ */
private String likeTeacherId; private String eqCorpinfoId;
} }

View File

@ -1,6 +1,7 @@
package com.zcloud.edu.dto; package com.zcloud.edu.dto;
import com.alibaba.cola.dto.PageQuery; import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -23,6 +24,13 @@ public class TeacherPageQry extends PageQuery {
* - `le`: * - `le`:
* - `ne`: SQL!= * - `ne`: SQL!=
*/ */
private String likeTeacherId; @ApiModelProperty(name = "likeTeacherName", value = "教师名称")
private String likeTeacherName;
@ApiModelProperty(name = "eqCorpinfoId", value = "企业ID")
private Long eqCorpinfoId;
@ApiModelProperty(name = "qualificationType", value = "资格类型")
private String qualificationType;
} }

View File

@ -23,6 +23,7 @@ public class TeacherRemoveCmd extends Command {
@ApiModelProperty(value = "主键", name = "ids", required = true) @ApiModelProperty(value = "主键", name = "ids", required = true)
@NotNull(message = "主键不能为空") @NotNull(message = "主键不能为空")
@Size(min = 1, message = "请选择数据")
private Long[] ids; private Long[] ids;
} }

View File

@ -26,48 +26,49 @@ public class TeacherUpdateCmd extends Command {
@ApiModelProperty(value = "教师id", name = "id", required = true) @ApiModelProperty(value = "教师id", name = "id", required = true)
@NotNull(message = "教师id不能为空") @NotNull(message = "教师id不能为空")
private Long id; private Long id;
@ApiModelProperty(value = "业务主键id", name = "teacherId", required = true) @ApiModelProperty(value = "业务主键id", name = "teacherId", required = true)
@NotEmpty(message = "业务主键id不能为空") @NotEmpty(message = "业务主键id不能为空")
private String teacherId; private String teacherId;
@ApiModelProperty(value = "用户id", name = "userId", required = true)
@NotNull(message = "用户id不能为空")
private Long userId;
@ApiModelProperty(value = "企业ID", name = "corpinfoId", required = true)
@NotNull(message = "企业ID不能为空")
private Long corpinfoId;
@ApiModelProperty(value = "教师姓名", name = "teacherName", required = true) @ApiModelProperty(value = "教师姓名", name = "teacherName", required = true)
@NotEmpty(message = "教师姓名不能为空") @NotEmpty(message = "教师姓名不能为空")
private String teacherName; private String teacherName;
@ApiModelProperty(value = "手机号", name = "phone", required = true)
@NotEmpty(message = "手机号不能为空")
private String phone;
@ApiModelProperty(value = "身份证号", name = "identityNumber", required = true) @ApiModelProperty(value = "身份证号", name = "identityNumber", required = true)
@NotEmpty(message = "身份证号不能为空") @NotEmpty(message = "身份证号不能为空")
private String identityNumber; private String identityNumber;
@ApiModelProperty(value = "文化程度", name = "educationLevel", required = true) @ApiModelProperty(value = "文化程度", name = "educationLevel", required = true)
@NotEmpty(message = "文化程度不能为空") @NotEmpty(message = "文化程度不能为空")
private String educationLevel; private String educationLevel;
@ApiModelProperty(value = "文化程度名称", name = "educationLevelName", required = true) @ApiModelProperty(value = "文化程度名称", name = "educationLevelName", required = true)
@NotEmpty(message = "文化程度名称不能为空") @NotEmpty(message = "文化程度名称不能为空")
private String educationLevelName; private String educationLevelName;
@ApiModelProperty(value = "专业", name = "profession", required = true) @ApiModelProperty(value = "专业", name = "profession", required = true)
@NotEmpty(message = "专业不能为空") @NotEmpty(message = "专业不能为空")
private String profession; private String profession;
@ApiModelProperty(value = "工作年限", name = "workyear", required = true) @ApiModelProperty(value = "工作年限", name = "workyear", required = true)
@NotNull(message = "工作年限不能为空") @NotNull(message = "工作年限不能为空")
private Integer workyear; private Integer workyear;
@ApiModelProperty(value = "考核部门", name = "assessmentDepartment", required = true) @ApiModelProperty(value = "考核部门", name = "assessmentDepartment", required = true)
@NotEmpty(message = "考核部门不能为空") @NotEmpty(message = "考核部门不能为空")
private String assessmentDepartment; private String assessmentDepartment;
@ApiModelProperty(value = "考核时间", name = "assessmentTime", required = true) @ApiModelProperty(value = "考核时间", name = "assessmentTime", required = true)
@NotNull(message = "考核时间不能为空") @NotNull(message = "考核时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date assessmentTime; private Date assessmentTime;
@ApiModelProperty(value = "考核结果", name = "assessmentResult", required = true) @ApiModelProperty(value = "考核结果", name = "assessmentResult", required = true)
@NotEmpty(message = "考核结果不能为空") @NotEmpty(message = "考核结果不能为空")
private String assessmentResult; private String assessmentResult;
@ApiModelProperty(value = "状态0-禁用 1-启用)(老项目0启用,1禁用)", name = "state", required = true)
@NotEmpty(message = "状态0-禁用 1-启用)(老项目0启用,1禁用)不能为空")
private String state;
} }

View File

@ -0,0 +1,36 @@
package com.zcloud.edu.dto;
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.util.Date;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TeacherUpdateStateCmd extends Command {
@ApiModelProperty(value = "教师id", name = "id", required = true)
@NotNull(message = "教师id不能为空")
private Long id;
@ApiModelProperty(value = "教师状态, 启用传1, 禁用传0", name = "state", required = true)
@NotNull(message = "教师状态不能为空")
private Integer state;
}

View File

@ -21,6 +21,7 @@ public class TrainingTypeRemoveCmd extends Command {
@ApiModelProperty(value = "主键", name = "ids", required = true) @ApiModelProperty(value = "主键", name = "ids", required = true)
@NotNull(message = "主键不能为空") @NotNull(message = "主键不能为空")
@Size(min = 1, message = "请选择数据")
private Long[] ids; private Long[] ids;
} }

View File

@ -0,0 +1,181 @@
package com.zcloud.edu.dto;
import com.alibaba.cola.dto.ClientObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zcloud.gbscommon.translateaop.TranslateEunm;
import com.zcloud.gbscommon.translateaop.ZCloudTranslate;
import com.zcloud.gbscommon.translateaop.ZCloudTranslates;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* web-client
*
* @Author zhangyue
* @Date 2025-11-04 14:07:33
*/
@Data
public class UserAddCmd extends ClientObject {
//GBS用户id
@ApiModelProperty(value = "GBS用户id")
private Long id;
//业务主键id老系统id
@ApiModelProperty(value = "业务主键id老系统id")
private String userId;
//登录账号
@ApiModelProperty(value = "登录账号")
private String username;
//姓名
@ApiModelProperty(value = "姓名")
private String name;
//企业id
@ApiModelProperty(value = "企业id")
private Long corpinfoId;
@ApiModelProperty(value = "企业名称")
private String corpinfoName;
//是否主账号1是0否
@ApiModelProperty(value = "是否主账号1是0否")
private Integer mainCorpFlag;
//用户类型,1监管2企业3相关方
@ApiModelProperty(value = "用户类型,1监管2企业3相关方")
private Integer userType;
//部门id
@ApiModelProperty(value = "部门id")
private Long departmentId;
//部门id
@ApiModelProperty(value = "部门名称")
private String departmentName;
//岗位id
@ApiModelProperty(value = "岗位id")
private Long postId;
//岗位id
@ApiModelProperty(value = "岗位名称")
private String postName;
//角色id
@ApiModelProperty(value = "角色id")
private Long roleId;
//邮箱
@ApiModelProperty(value = "邮箱")
private String email;
//人员类型编码(主要负责人等)
@ApiModelProperty(value = "人员类型编码(主要负责人等)")
private String personnelType;
//人员类型翻译
@ApiModelProperty(value = "人员类型翻译")
private String personnelTypeName;
//民族编码问一下有没有组件
@ApiModelProperty(value = "民族编码问一下有没有组件")
private String nation;
//民族名称
@ApiModelProperty(value = "民族名称")
private String nationName;
//身份证号
@ApiModelProperty(value = "身份证号")
private String userIdCard;
//人脸头像url
@ApiModelProperty(value = "人脸头像url")
private String userAvatarUrl;
//现住址
@ApiModelProperty(value = "现住址")
private String currentAddress;
//户口所在地
@ApiModelProperty(value = "户口所在地")
private String locationAddress;
@ApiModelProperty(value = "职级")
private String rankLevel;
@ApiModelProperty(value = "职级名称")
private String rankLevelName;
@ApiModelProperty(value = "手机号")
private String phone;
//人员在部门中的排序
@ApiModelProperty(value = "人员在部门中的排序")
private Integer sort;
//乐观锁
@ApiModelProperty(value = "乐观锁")
private Integer version;
//创建人
@ApiModelProperty(value = "创建人")
private Long createId;
//创建人姓名
@ApiModelProperty(value = "创建人姓名")
private String createName;
//创建时间
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
//更新人
@ApiModelProperty(value = "更新人")
private Long updateId;
//修改人名称
@ApiModelProperty(value = "修改人名称")
private String updateName;
//更新时间
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date updateTime;
//描述
@ApiModelProperty(value = "描述")
private String remarks;
//是否删除
@ApiModelProperty(value = "是否删除")
private String deleteEnum;
//租户ID
@ApiModelProperty(value = "租户ID")
private Long tenantId;
//机构ID
@ApiModelProperty(value = "机构ID")
private Long orgId;
//环境
@ApiModelProperty(value = "环境")
private String env;
//是否部门领导0否1是
@ApiModelProperty(value = "是否部门领导0否1是")
private Integer departmentLeaderFlag;
//是否分管领导0否1是
@ApiModelProperty(value = "是否分管领导0否1是")
private Integer deputyLeaderFlag;
//文化程度 数据字典
@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;
private String mappingName;
private String mappingUserName;
private String mappingPostName;
private String mappingDeptName;
// 入职状态
@ApiModelProperty(value = "入职状态")
private Integer employmentFlag;
// 年龄
@ApiModelProperty(value = "年龄")
private Integer age;
//生日
@ApiModelProperty(value = "生日")
private String birthday;
// 性别
@ApiModelProperty(value = "性别")
private String sex;
}

View File

@ -1,12 +1,14 @@
package com.zcloud.edu.dto.clientobject; package com.zcloud.edu.dto.clientobject;
import com.alibaba.cola.dto.ClientObject; import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.List;
/** /**
* web-client * web-client
@ -74,7 +76,20 @@ public class TeacherCO extends ClientObject {
private String assessmentResult; private String assessmentResult;
//状态0-禁用 1-启用)(老项目0启用,1禁用) //状态0-禁用 1-启用)(老项目0启用,1禁用)
@ApiModelProperty(value = "状态0-禁用 1-启用)(老项目0启用,1禁用)") @ApiModelProperty(value = "状态0-禁用 1-启用)")
private String state; private Integer state;
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@ApiModelProperty(value = "资质类型名称")
private String qualificationTypeNames;
@ApiModelProperty(value = "单位名称")
private String corpinfoName;
@ApiModelProperty(value = "教师资格证书列表")
private List<TeacherCertificateCO> teacherCertificateList;
} }

View File

@ -1,9 +1,13 @@
package com.zcloud.edu.domain.model; package com.zcloud.edu.domain.model;
import cn.hutool.core.collection.CollUtil;
import com.jjb.saas.framework.domain.model.BaseE; import com.jjb.saas.framework.domain.model.BaseE;
import com.zcloud.gbscommon.utils.UuidUtil;
import lombok.Data; import lombok.Data;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* web-domain * web-domain
@ -42,6 +46,35 @@ public class TeacherE extends BaseE {
//考核结果 //考核结果
private String assessmentResult; private String assessmentResult;
//状态0-禁用 1-启用)(老项目0启用,1禁用) //状态0-禁用 1-启用)(老项目0启用,1禁用)
private String state; private Integer state;
/**
*
*/
public List<TeacherE> convertFromUserList(List<UserAddE> userList) {
if (CollUtil.isEmpty(userList)) {
return null;
}
List<TeacherE> teacherList = new ArrayList<>();
for (UserAddE userAddE : userList) {
TeacherE teacher = new TeacherE();
teacher.setTeacherId(UuidUtil.get32UUID());
teacher.setUserId(userAddE.getId());
teacher.setCorpinfoId(userAddE.getCorpinfoId());
teacher.setTeacherName(userAddE.getName());
teacher.setPhone(userAddE.getPhone());
teacher.setIdentityNumber(userAddE.getUserIdCard());
teacher.setEducationLevel(userAddE.getCulturalLevel());
teacher.setEducationLevelName(userAddE.getCulturalLevelName());
// 默认启用
teacher.setState(1);
teacherList.add(teacher);
}
return teacherList;
}
} }

View File

@ -0,0 +1,178 @@
package com.zcloud.edu.domain.model;
import com.alibaba.cola.dto.ClientObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* web-client
*
* @Author zhangyue
* @Date 2025-11-04 14:07:33
*/
@Data
public class UserAddE extends ClientObject {
//GBS用户id
@ApiModelProperty(value = "GBS用户id")
private Long id;
//业务主键id老系统id
@ApiModelProperty(value = "业务主键id老系统id")
private String userId;
//登录账号
@ApiModelProperty(value = "登录账号")
private String username;
//姓名
@ApiModelProperty(value = "姓名")
private String name;
//企业id
@ApiModelProperty(value = "企业id")
private Long corpinfoId;
@ApiModelProperty(value = "企业名称")
private String corpinfoName;
//是否主账号1是0否
@ApiModelProperty(value = "是否主账号1是0否")
private Integer mainCorpFlag;
//用户类型,1监管2企业3相关方
@ApiModelProperty(value = "用户类型,1监管2企业3相关方")
private Integer userType;
//部门id
@ApiModelProperty(value = "部门id")
private Long departmentId;
//部门id
@ApiModelProperty(value = "部门名称")
private String departmentName;
//岗位id
@ApiModelProperty(value = "岗位id")
private Long postId;
//岗位id
@ApiModelProperty(value = "岗位名称")
private String postName;
//角色id
@ApiModelProperty(value = "角色id")
private Long roleId;
//邮箱
@ApiModelProperty(value = "邮箱")
private String email;
//人员类型编码(主要负责人等)
@ApiModelProperty(value = "人员类型编码(主要负责人等)")
private String personnelType;
//人员类型翻译
@ApiModelProperty(value = "人员类型翻译")
private String personnelTypeName;
//民族编码问一下有没有组件
@ApiModelProperty(value = "民族编码问一下有没有组件")
private String nation;
//民族名称
@ApiModelProperty(value = "民族名称")
private String nationName;
//身份证号
@ApiModelProperty(value = "身份证号")
private String userIdCard;
//人脸头像url
@ApiModelProperty(value = "人脸头像url")
private String userAvatarUrl;
//现住址
@ApiModelProperty(value = "现住址")
private String currentAddress;
//户口所在地
@ApiModelProperty(value = "户口所在地")
private String locationAddress;
@ApiModelProperty(value = "职级")
private String rankLevel;
@ApiModelProperty(value = "职级名称")
private String rankLevelName;
@ApiModelProperty(value = "手机号")
private String phone;
//人员在部门中的排序
@ApiModelProperty(value = "人员在部门中的排序")
private Integer sort;
//乐观锁
@ApiModelProperty(value = "乐观锁")
private Integer version;
//创建人
@ApiModelProperty(value = "创建人")
private Long createId;
//创建人姓名
@ApiModelProperty(value = "创建人姓名")
private String createName;
//创建时间
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
//更新人
@ApiModelProperty(value = "更新人")
private Long updateId;
//修改人名称
@ApiModelProperty(value = "修改人名称")
private String updateName;
//更新时间
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date updateTime;
//描述
@ApiModelProperty(value = "描述")
private String remarks;
//是否删除
@ApiModelProperty(value = "是否删除")
private String deleteEnum;
//租户ID
@ApiModelProperty(value = "租户ID")
private Long tenantId;
//机构ID
@ApiModelProperty(value = "机构ID")
private Long orgId;
//环境
@ApiModelProperty(value = "环境")
private String env;
//是否部门领导0否1是
@ApiModelProperty(value = "是否部门领导0否1是")
private Integer departmentLeaderFlag;
//是否分管领导0否1是
@ApiModelProperty(value = "是否分管领导0否1是")
private Integer deputyLeaderFlag;
//文化程度 数据字典
@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;
private String mappingName;
private String mappingUserName;
private String mappingPostName;
private String mappingDeptName;
// 入职状态
@ApiModelProperty(value = "入职状态")
private Integer employmentFlag;
// 年龄
@ApiModelProperty(value = "年龄")
private Integer age;
//生日
@ApiModelProperty(value = "生日")
private String birthday;
// 性别
@ApiModelProperty(value = "性别")
private String sex;
}

View File

@ -1,13 +1,17 @@
package com.zcloud.edu.gatewayimpl; package com.zcloud.edu.gatewayimpl;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.edu.domain.gateway.TeacherCertificateGateway; import com.zcloud.edu.domain.gateway.TeacherCertificateGateway;
import com.zcloud.edu.domain.model.TeacherCertificateE; import com.zcloud.edu.domain.model.TeacherCertificateE;
import com.zcloud.edu.persistence.dataobject.TeacherCertificateDO; import com.zcloud.edu.persistence.dataobject.TeacherCertificateDO;
import com.zcloud.edu.persistence.repository.TeacherCertificateRepository; import com.zcloud.edu.persistence.repository.TeacherCertificateRepository;
import com.zcloud.gbscommon.utils.UuidUtil;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
/** /**
@ -25,6 +29,12 @@ public class TeacherCertificateGatewayImpl implements TeacherCertificateGateway
public Boolean add(TeacherCertificateE teacherCertificateE) { public Boolean add(TeacherCertificateE teacherCertificateE) {
TeacherCertificateDO d = new TeacherCertificateDO(); TeacherCertificateDO d = new TeacherCertificateDO();
BeanUtils.copyProperties(teacherCertificateE, d); BeanUtils.copyProperties(teacherCertificateE, d);
if(StringUtils.isNotEmpty(d.getTeacherCertificateId())){
d.setTeacherCertificateId(UuidUtil.get32UUID());
}
if(d.getCorpinfoId() == null){
d.setCorpinfoId(AuthContext.getTenantId());
}
teacherCertificateRepository.save(d); teacherCertificateRepository.save(d);
return true; return true;
} }
@ -44,7 +54,7 @@ public class TeacherCertificateGatewayImpl implements TeacherCertificateGateway
@Override @Override
public Boolean deletedTeacherCertificateByIds(Long[] ids) { public Boolean deletedTeacherCertificateByIds(Long[] ids) {
return teacherCertificateRepository.removeByIds(Collections.singletonList(ids)); return teacherCertificateRepository.removeByIds(Arrays.asList(ids));
} }
} }

View File

@ -8,6 +8,7 @@ import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
/** /**
@ -44,7 +45,7 @@ public class TeacherGatewayImpl implements TeacherGateway {
@Override @Override
public Boolean deletedTeacherByIds(Long[] ids) { public Boolean deletedTeacherByIds(Long[] ids) {
return teacherRepository.removeByIds(Collections.singletonList(ids)); return teacherRepository.removeByIds(Arrays.asList(ids));
} }
} }

View File

@ -29,6 +29,9 @@ public class TeacherDO extends BaseDO {
//企业ID //企业ID
@ApiModelProperty(value = "企业ID") @ApiModelProperty(value = "企业ID")
private Long corpinfoId; private Long corpinfoId;
@ApiModelProperty(value = "单位名称")
@TableField(exist = false)
private String corpinfoName;
//教师姓名 //教师姓名
@ApiModelProperty(value = "教师姓名") @ApiModelProperty(value = "教师姓名")
private String teacherName; private String teacherName;
@ -61,7 +64,11 @@ public class TeacherDO extends BaseDO {
private String assessmentResult; private String assessmentResult;
//状态0-禁用 1-启用)(老项目0启用,1禁用) //状态0-禁用 1-启用)(老项目0启用,1禁用)
@ApiModelProperty(value = "状态0-禁用 1-启用)(老项目0启用,1禁用)") @ApiModelProperty(value = "状态0-禁用 1-启用)(老项目0启用,1禁用)")
private String state; private Integer state;
@ApiModelProperty(value = "资质类型名称")
@TableField(exist = false)
private String qualificationTypeNames;
public TeacherDO(String teacherId) { public TeacherDO(String teacherId) {
this.teacherId = teacherId; this.teacherId = teacherId;

View File

@ -1,8 +1,13 @@
package com.zcloud.edu.persistence.mapper; package com.zcloud.edu.persistence.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zcloud.edu.persistence.dataobject.TeacherDO; import com.zcloud.edu.persistence.dataobject.TeacherDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* web-infrastructure * web-infrastructure
@ -13,5 +18,10 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface TeacherMapper extends BaseMapper<TeacherDO> { public interface TeacherMapper extends BaseMapper<TeacherDO> {
IPage<TeacherDO> getTeacherPage(IPage<TeacherDO> page, @Param("ew") QueryWrapper<TeacherDO> queryWrapper);
List<TeacherDO> getTeacherList(@Param("ew") QueryWrapper<TeacherDO> queryWrapper);
} }

View File

@ -20,6 +20,12 @@ public interface TeacherCertificateRepository extends BaseRepository<TeacherCert
List<TeacherCertificateDO> list(Map<String, Object> params); List<TeacherCertificateDO> list(Map<String, Object> params);
List<TeacherCertificateDO> listByTeacherId(String teacherId);
SingleResponse<TeacherCertificateDO> getInfoById(Long id); SingleResponse<TeacherCertificateDO> getInfoById(Long id);
boolean removeByTeacherId(String teacherId);
boolean removeByTeacherIds(List<String> teacherIds);
} }

View File

@ -20,6 +20,8 @@ public interface TeacherRepository extends BaseRepository<TeacherDO> {
List<TeacherDO> list(Map<String, Object> params); List<TeacherDO> list(Map<String, Object> params);
List<TeacherDO> listByIds(List<Long> ids);
SingleResponse<TeacherDO> getInfoById(Long id); SingleResponse<TeacherDO> getInfoById(Long id);
} }

View File

@ -14,6 +14,7 @@ import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Map; import java.util.Map;
import java.util.List; import java.util.List;
@ -47,9 +48,30 @@ public class TeacherCertificateRepositoryImpl extends BaseRepositoryImpl<Teacher
return result; return result;
} }
@Override
public List<TeacherCertificateDO> listByTeacherId(String teacherId) {
QueryWrapper<TeacherCertificateDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("teacher_id", teacherId);
return list(queryWrapper);
}
@Override @Override
public SingleResponse<TeacherCertificateDO> getInfoById(Long id) { public SingleResponse<TeacherCertificateDO> getInfoById(Long id) {
return SingleResponse.of(teacherCertificateMapper.selectById(id)); return SingleResponse.of(teacherCertificateMapper.selectById(id));
} }
@Override
public boolean removeByTeacherId(String teacherId) {
QueryWrapper<TeacherCertificateDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("teacher_id", teacherId);
return teacherCertificateMapper.delete(queryWrapper) > 0;
}
@Override
public boolean removeByTeacherIds(List<String> teacherIds) {
QueryWrapper<TeacherCertificateDO> queryWrapper = new QueryWrapper<>();
queryWrapper.in("teacher_id", teacherIds);
return teacherCertificateMapper.delete(queryWrapper) > 0;
}
} }

View File

@ -12,8 +12,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl; import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Map; import java.util.Map;
import java.util.List; import java.util.List;
@ -32,21 +34,40 @@ public class TeacherRepositoryImpl extends BaseRepositoryImpl<TeacherMapper, Tea
public PageResponse<TeacherDO> listPage(Map<String, Object> params) { public PageResponse<TeacherDO> listPage(Map<String, Object> params) {
IPage<TeacherDO> iPage = new Query<TeacherDO>().getPage(params); IPage<TeacherDO> iPage = new Query<TeacherDO>().getPage(params);
QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params, "a.");
queryWrapper.orderByDesc("create_time"); queryWrapper.eq("a.delete_enum", "FALSE");
IPage<TeacherDO> result = teacherMapper.selectPage(iPage, queryWrapper); if(StringUtils.isNotEmpty((String) params.get("qualificationType"))){
queryWrapper.in("b.qualification_type", params.get("qualificationType").toString());
}
queryWrapper.groupBy("a.teacher_id")
.groupBy("a.id")
.groupBy("a.user_id")
.groupBy("a.corpinfo_id")
.groupBy("a.teacher_name")
.groupBy("a.state")
.groupBy("a.create_time");
queryWrapper.orderByDesc("a.create_time");
IPage<TeacherDO> result = teacherMapper.getTeacherPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords()); return PageHelper.pageToResponse(result, result.getRecords());
} }
@Override @Override
public List<TeacherDO> list(Map<String, Object> params) { public List<TeacherDO> list(Map<String, Object> params) {
QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params, "a.");
queryWrapper.orderByDesc("create_time"); queryWrapper.eq("a.delete_enum", "FALSE");
List<TeacherDO> result = teacherMapper.selectList(queryWrapper); queryWrapper.orderByDesc("a.create_time");
List<TeacherDO> result = teacherMapper.getTeacherList(queryWrapper);
return result; return result;
} }
@Override
public List<TeacherDO> listByIds(List<Long> ids) {
QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>();
queryWrapper.in("a.id", ids);
return list(queryWrapper);
}
@Override @Override
public SingleResponse<TeacherDO> getInfoById(Long id) { public SingleResponse<TeacherDO> getInfoById(Long id) {
return SingleResponse.of(teacherMapper.selectById(id)); return SingleResponse.of(teacherMapper.selectById(id));

View File

@ -3,5 +3,28 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.edu.persistence.mapper.TeacherMapper"> <mapper namespace="com.zcloud.edu.persistence.mapper.TeacherMapper">
<select id="getTeacherPage" resultType="com.zcloud.edu.persistence.dataobject.TeacherDO">
select
a.id,a.teacher_id,a.user_id,a.corpinfo_id,a.teacher_name,a.`state`,a.create_time,
c.corp_name as corpinfoName,
GROUP_CONCAT(b.qualification_type_name SEPARATOR ',') AS qualificationTypeNames
from teacher a
left join teacher_certificate b on a.teacher_id = b.teacher_id and b.delete_enum = 'FALSE'
left join corp_info c on a.corpinfo_id = c.id
${ew.customSqlSegment}
</select>
<select id="getTeacherList" resultType="com.zcloud.edu.persistence.dataobject.TeacherDO">
select
a.id,a.teacher_id,a.user_id,a.corpinfo_id,a.teacher_name,a.`state`,a.create_time,
c.corp_name as corpinfoName,
GROUP_CONCAT(b.qualification_type_name SEPARATOR ',') AS qualificationTypeNames
from teacher a
left join teacher_certificate b on a.teacher_id = b.teacher_id and b.delete_enum = 'FALSE'
left join corp_info c on a.corpinfo_id = c.id
${ew.customSqlSegment}
</select>
</mapper> </mapper>