Compare commits

...

2 Commits

Author SHA1 Message Date
SondonYong c8a542a40b init:教师管理初始化代码 2025-11-26 17:34:40 +08:00
SondonYong 28e7a192bf dev:培训类型信息 2025-11-26 17:02:54 +08:00
57 changed files with 2065 additions and 16 deletions

View File

@ -0,0 +1,85 @@
package com.zcloud.edu.web;
import com.zcloud.edu.api.TeacherCertificateServiceI;
import com.zcloud.edu.dto.TeacherCertificateAddCmd;
import com.zcloud.edu.dto.TeacherCertificatePageQry;
import com.zcloud.edu.dto.TeacherCertificateListQry;
import com.zcloud.edu.dto.TeacherCertificateUpdateCmd;
import com.zcloud.edu.dto.TeacherCertificateRemoveCmd;
import com.zcloud.edu.dto.clientobject.TeacherCertificateCO;
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 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 SondonYong
* @Date 2025-11-26 17:26:50
*/
@Api(tags = "教师资质证书信息")
@RequestMapping("/${application.gateway}/teacherCertificate")
@RestController
@AllArgsConstructor
public class TeacherCertificateController {
private final TeacherCertificateServiceI teacherCertificateService;
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<TeacherCertificateCO> add(@Validated @RequestBody TeacherCertificateAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return teacherCertificateService.add(cmd);
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody TeacherCertificateUpdateCmd cmd) {
teacherCertificateService.edit(cmd);
return SingleResponse.buildSuccess();
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<TeacherCertificateCO> page(@RequestBody TeacherCertificatePageQry qry) {
return teacherCertificateService.listPage(qry);
}
@ApiOperation("所有数据")
@PostMapping("/listAll")
public MultiResponse<TeacherCertificateCO> listAll(@RequestBody TeacherCertificateListQry qry) {
return teacherCertificateService.list(qry);
}
@ApiOperation("详情")
@GetMapping("/getInfoById")
public SingleResponse<TeacherCertificateCO> getInfoById(@RequestParam(value = "id") Long id) {
return teacherCertificateService.getInfoById(id);
}
@ApiOperation("删除")
@PutMapping("/remove")
public Response remove(@RequestParam(value = "id") Long id) {
teacherCertificateService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@PutMapping("/removeBatch")
public Response removeBatch(@Validated @RequestBody TeacherCertificateRemoveCmd cmd) {
teacherCertificateService.removeBatch(cmd.getIds());
return SingleResponse.buildSuccess();
}
}

View File

@ -0,0 +1,83 @@
package com.zcloud.edu.web;
import com.zcloud.edu.api.TeacherServiceI;
import com.zcloud.edu.dto.TeacherAddCmd;
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.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.dto.clientobject.TeacherCO;
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.*;
/**
* web-adapter
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Api(tags = "教师信息")
@RequestMapping("/${application.gateway}/teacher")
@RestController
@AllArgsConstructor
public class TeacherController {
private final TeacherServiceI teacherService;
@ApiOperation("新增")
@PostMapping("/save")
public SingleResponse<TeacherCO> add(@Validated @RequestBody TeacherAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return teacherService.add(cmd);
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody TeacherUpdateCmd cmd) {
teacherService.edit(cmd);
return SingleResponse.buildSuccess();
}
@ApiOperation("分页")
@PostMapping("/list")
public PageResponse<TeacherCO> page(@RequestBody TeacherPageQry qry) {
return teacherService.listPage(qry);
}
@ApiOperation("所有数据")
@PostMapping("/listAll")
public MultiResponse<TeacherCO> listAll(@RequestBody TeacherListQry qry) {
return teacherService.list(qry);
}
@ApiOperation("详情")
@GetMapping("/getInfoById")
public SingleResponse<TeacherCO> getInfoById(@RequestParam(value = "id") Long id) {
return teacherService.getInfoById(id);
}
@ApiOperation("删除")
@PutMapping("/remove")
public Response remove(@RequestParam(value = "id") Long id) {
teacherService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@PutMapping("/removeBatch")
public Response removeBatch(@Validated @RequestBody TeacherRemoveCmd cmd) {
teacherService.removeBatch(cmd.getIds());
return SingleResponse.buildSuccess();
}
}

View File

@ -2,10 +2,7 @@ package com.zcloud.edu.web;
import com.zcloud.edu.api.TrainingTypeServiceI;
import com.zcloud.edu.dto.TrainingTypeAddCmd;
import com.zcloud.edu.dto.TrainingTypePageQry;
import com.zcloud.edu.dto.TrainingTypeUpdateCmd;
import com.zcloud.edu.dto.TrainingTypeRemoveCmd;
import com.zcloud.edu.dto.*;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
@ -53,8 +50,8 @@ public class TrainingTypeController {
@ApiOperation("所有数据")
@PostMapping("/listAll")
public MultiResponse<TrainingTypeCO> listAll() {
return MultiResponse.of(new ArrayList<TrainingTypeCO>());
public MultiResponse<TrainingTypeCO> listAll(@RequestBody TrainingTypeListQry qry) {
return trainingTypeService.list(qry);
}
@ApiOperation("详情")

View File

@ -0,0 +1,40 @@
package com.zcloud.edu.command;
import com.zcloud.edu.domain.gateway.TeacherGateway;
import com.zcloud.edu.domain.model.TeacherE;
import com.zcloud.edu.dto.TeacherAddCmd;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Component
@AllArgsConstructor
public class TeacherAddExe {
private final TeacherGateway teacherGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(TeacherAddCmd cmd) {
TeacherE teacherE = new TeacherE();
BeanUtils.copyProperties(cmd, teacherE);
boolean res = false;
try {
res = teacherGateway.add(teacherE);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

@ -0,0 +1,40 @@
package com.zcloud.edu.command;
import com.zcloud.edu.domain.gateway.TeacherCertificateGateway;
import com.zcloud.edu.domain.model.TeacherCertificateE;
import com.zcloud.edu.dto.TeacherCertificateAddCmd;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:26:50
*/
@Component
@AllArgsConstructor
public class TeacherCertificateAddExe {
private final TeacherCertificateGateway teacherCertificateGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(TeacherCertificateAddCmd cmd) {
TeacherCertificateE teacherCertificateE = new TeacherCertificateE();
BeanUtils.copyProperties(cmd, teacherCertificateE);
boolean res = false;
try {
res = teacherCertificateGateway.add(teacherCertificateE);
} catch (Exception e) {
throw new RuntimeException(e);
}
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

@ -0,0 +1,39 @@
package com.zcloud.edu.command;
import com.zcloud.edu.domain.gateway.TeacherCertificateGateway;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
@Component
@AllArgsConstructor
public class TeacherCertificateRemoveExe {
private final TeacherCertificateGateway teacherCertificateGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
boolean res = teacherCertificateGateway.deletedTeacherCertificateById(id);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long[] ids) {
boolean res = teacherCertificateGateway.deletedTeacherCertificateByIds(ids);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
}

View File

@ -0,0 +1,34 @@
package com.zcloud.edu.command;
import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.domain.gateway.TeacherCertificateGateway;
import com.zcloud.edu.domain.model.TeacherCertificateE;
import com.zcloud.edu.dto.TeacherCertificateUpdateCmd;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
@Component
@AllArgsConstructor
public class TeacherCertificateUpdateExe {
private final TeacherCertificateGateway teacherCertificateGateway;
@Transactional(rollbackFor = Exception.class)
public void execute(TeacherCertificateUpdateCmd cmd) {
TeacherCertificateE teacherCertificateE = new TeacherCertificateE();
BeanUtils.copyProperties(cmd, teacherCertificateE);
boolean res = teacherCertificateGateway.update(teacherCertificateE);
if (!res) {
throw new BizException("修改失败");
}
}
}

View File

@ -0,0 +1,39 @@
package com.zcloud.edu.command;
import com.zcloud.edu.domain.gateway.TeacherGateway;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Component
@AllArgsConstructor
public class TeacherRemoveExe {
private final TeacherGateway teacherGateway;
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
boolean res = teacherGateway.deletedTeacherById(id);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long[] ids) {
boolean res = teacherGateway.deletedTeacherByIds(ids);
if (!res) {
throw new BizException("删除失败");
}
return true;
}
}

View File

@ -0,0 +1,34 @@
package com.zcloud.edu.command;
import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.domain.gateway.TeacherGateway;
import com.zcloud.edu.domain.model.TeacherE;
import com.zcloud.edu.dto.TeacherUpdateCmd;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Component
@AllArgsConstructor
public class TeacherUpdateExe {
private final TeacherGateway teacherGateway;
@Transactional(rollbackFor = Exception.class)
public void execute(TeacherUpdateCmd cmd) {
TeacherE teacherE = new TeacherE();
BeanUtils.copyProperties(cmd, teacherE);
boolean res = teacherGateway.update(teacherE);
if (!res) {
throw new BizException("修改失败");
}
}
}

View File

@ -4,12 +4,14 @@ import com.zcloud.edu.domain.gateway.TrainingTypeGateway;
import com.zcloud.edu.domain.model.TrainingTypeE;
import com.zcloud.edu.dto.TrainingTypeAddCmd;
import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.persistence.dataobject.TrainingTypeDO;
import com.zcloud.edu.persistence.repository.TrainingTypeRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
@ -21,10 +23,15 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class TrainingTypeAddExe {
private final TrainingTypeGateway trainingTypeGateway;
private final TrainingTypeRepository trainingTypeRepository;
@Transactional(rollbackFor = Exception.class)
public boolean execute(TrainingTypeAddCmd cmd) {
TrainingTypeE trainingTypeE = new TrainingTypeE();
List<TrainingTypeDO> trainingTypeDOS = trainingTypeRepository.listByName(cmd.getName());
trainingTypeE.checkList(trainingTypeDOS == null ? 0 : trainingTypeDOS.size());
BeanUtils.copyProperties(cmd, trainingTypeE);
boolean res = false;
try {

View File

@ -21,6 +21,8 @@ public class TrainingTypeRemoveExe {
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
// todo 校验是否有其他业务调用
boolean res = trainingTypeGateway.deletedTrainingTypeById(id);
if(!res){
throw new BizException("删除失败");
@ -30,6 +32,8 @@ public class TrainingTypeRemoveExe {
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long[] ids) {
// todo 校验是否有其他业务调用
boolean res = trainingTypeGateway.deletedTrainingTypeByIds(ids);
if(!res){
throw new BizException("删除失败");

View File

@ -4,12 +4,14 @@ import com.alibaba.cola.exception.BizException;
import com.zcloud.edu.domain.gateway.TrainingTypeGateway;
import com.zcloud.edu.domain.model.TrainingTypeE;
import com.zcloud.edu.dto.TrainingTypeUpdateCmd;
import com.zcloud.edu.persistence.dataobject.TrainingTypeDO;
import com.zcloud.edu.persistence.repository.TrainingTypeRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
@ -21,10 +23,15 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class TrainingTypeUpdateExe {
private final TrainingTypeGateway trainingTypeGateway;
private final TrainingTypeRepository trainingTypeRepository;
@Transactional(rollbackFor = Exception.class)
public void execute(TrainingTypeUpdateCmd cmd) {
TrainingTypeE trainingTypeE = new TrainingTypeE();
List<TrainingTypeDO> trainingTypeDOS = trainingTypeRepository.listByNameAndId(cmd.getName(), cmd.getId());
trainingTypeE.checkList(trainingTypeDOS == null ? 0 : trainingTypeDOS.size());
BeanUtils.copyProperties(cmd, trainingTypeE);
boolean res = trainingTypeGateway.update(trainingTypeE);
if (!res) {

View File

@ -0,0 +1,24 @@
package com.zcloud.edu.command.convertor;
import com.zcloud.edu.dto.clientobject.TeacherCertificateCO;
import com.zcloud.edu.persistence.dataobject.TeacherCertificateDO;
import org.mapstruct.Mapper;
import java.util.List;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:26:50
*/
@Mapper(componentModel = "spring")
public interface TeacherCertificateCoConvertor {
/**
* @param teacherCertificateDOs
* @return
*/
List<TeacherCertificateCO> converDOsToCOs(List<TeacherCertificateDO> teacherCertificateDOs);
}

View File

@ -0,0 +1,24 @@
package com.zcloud.edu.command.convertor;
import com.zcloud.edu.dto.clientobject.TeacherCO;
import com.zcloud.edu.persistence.dataobject.TeacherDO;
import org.mapstruct.Mapper;
import java.util.List;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Mapper(componentModel = "spring")
public interface TeacherCoConvertor {
/**
* @param teacherDOs
* @return
*/
List<TeacherCO> converDOsToCOs(List<TeacherDO> teacherDOs);
}

View File

@ -0,0 +1,60 @@
package com.zcloud.edu.command.query;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.command.convertor.TeacherCertificateCoConvertor;
import com.zcloud.edu.dto.TeacherCertificateListQry;
import com.zcloud.edu.dto.TeacherCertificatePageQry;
import com.zcloud.edu.dto.clientobject.TeacherCertificateCO;
import com.zcloud.edu.persistence.dataobject.TeacherCertificateDO;
import com.zcloud.edu.persistence.repository.TeacherCertificateRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.beans.BeanUtils;
import java.util.List;
import java.util.Map;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
@Component
@AllArgsConstructor
public class TeacherCertificateQueryExe {
private final TeacherCertificateRepository teacherCertificateRepository;
private final TeacherCertificateCoConvertor teacherCertificateCoConvertor;
/**
*
*
* @return
*/
public PageResponse<TeacherCertificateCO> execute(TeacherCertificatePageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
PageResponse<TeacherCertificateDO> pageResponse = teacherCertificateRepository.listPage(params);
List<TeacherCertificateCO> examCenterCOS = teacherCertificateCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public MultiResponse<TeacherCertificateCO> execute(TeacherCertificateListQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<TeacherCertificateDO> list = teacherCertificateRepository.list(params);
List<TeacherCertificateCO> examCenterCOS = teacherCertificateCoConvertor.converDOsToCOs(list);
return MultiResponse.of(examCenterCOS);
}
public SingleResponse<TeacherCertificateCO> execute(Long id) {
SingleResponse<TeacherCertificateDO> teacherCertificateDO = teacherCertificateRepository.getInfoById(id);
TeacherCertificateCO co = new TeacherCertificateCO();
BeanUtils.copyProperties(teacherCertificateDO.getData(), co);
return SingleResponse.of(co);
}
}

View File

@ -0,0 +1,60 @@
package com.zcloud.edu.command.query;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.command.convertor.TeacherCoConvertor;
import com.zcloud.edu.dto.TeacherListQry;
import com.zcloud.edu.dto.TeacherPageQry;
import com.zcloud.edu.dto.clientobject.TeacherCO;
import com.zcloud.edu.persistence.dataobject.TeacherDO;
import com.zcloud.edu.persistence.repository.TeacherRepository;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.beans.BeanUtils;
import java.util.List;
import java.util.Map;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Component
@AllArgsConstructor
public class TeacherQueryExe {
private final TeacherRepository teacherRepository;
private final TeacherCoConvertor teacherCoConvertor;
/**
*
*
* @return
*/
public PageResponse<TeacherCO> execute(TeacherPageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
PageResponse<TeacherDO> pageResponse = teacherRepository.listPage(params);
List<TeacherCO> examCenterCOS = teacherCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public MultiResponse<TeacherCO> execute(TeacherListQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
List<TeacherDO> list = teacherRepository.list(params);
List<TeacherCO> examCenterCOS = teacherCoConvertor.converDOsToCOs(list);
return MultiResponse.of(examCenterCOS);
}
public SingleResponse<TeacherCO> execute(Long id) {
SingleResponse<TeacherDO> teacherDO = teacherRepository.getInfoById(id);
TeacherCO co = new TeacherCO();
BeanUtils.copyProperties(teacherDO.getData(), co);
return SingleResponse.of(co);
}
}

View File

@ -1,6 +1,8 @@
package com.zcloud.edu.command.query;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.command.convertor.TrainingTypeCoConvertor;
import com.zcloud.edu.dto.TrainingTypeListQry;
import com.zcloud.edu.dto.TrainingTypePageQry;
import com.zcloud.edu.dto.clientobject.TrainingTypeCO;
import com.zcloud.edu.persistence.dataobject.TrainingTypeDO;
@ -31,23 +33,27 @@ public class TrainingTypeQueryExe {
/**
*
*
* @param trainingTypePageQry
* @return
*/
public PageResponse<TrainingTypeCO> execute(TrainingTypePageQry trainingTypePageQry) {
Map<String,Object> params = PageQueryHelper.toHashMap(trainingTypePageQry);
public PageResponse<TrainingTypeCO> execute(TrainingTypePageQry qry) {
Map<String,Object> params = PageQueryHelper.toHashMap(qry);
PageResponse<TrainingTypeDO> pageResponse = trainingTypeRepository.listPage(params);
List<TrainingTypeCO> examCenterCOS = trainingTypeCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public MultiResponse<TrainingTypeCO> execute(TrainingTypeListQry qry) {
Map<String,Object> params = PageQueryHelper.toHashMap(qry);
List<TrainingTypeDO> list = trainingTypeRepository.list(params);
List<TrainingTypeCO> examCenterCOS = trainingTypeCoConvertor.converDOsToCOs(list);
return MultiResponse.of(examCenterCOS);
}
public SingleResponse<TrainingTypeCO> execute(Long id) {
SingleResponse<TrainingTypeDO> trainingTypeDO = trainingTypeRepository.getInfoById(id);
SingleResponse<TrainingTypeCO> trainingTypeCO = new SingleResponse<>();
TrainingTypeCO co = new TrainingTypeCO();
BeanUtils.copyProperties(trainingTypeDO.getData(), co);
trainingTypeCO.setData(co);
return trainingTypeCO;
return SingleResponse.of(co);
}
}

View File

@ -0,0 +1,70 @@
package com.zcloud.edu.service;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.api.TeacherCertificateServiceI;
import com.zcloud.edu.command.TeacherCertificateAddExe;
import com.zcloud.edu.command.TeacherCertificateRemoveExe;
import com.zcloud.edu.command.TeacherCertificateUpdateExe;
import com.zcloud.edu.command.query.TeacherCertificateQueryExe;
import com.zcloud.edu.dto.TeacherCertificateAddCmd;
import com.zcloud.edu.dto.TeacherCertificatePageQry;
import com.zcloud.edu.dto.TeacherCertificateListQry;
import com.zcloud.edu.dto.TeacherCertificateUpdateCmd;
import com.zcloud.edu.dto.clientobject.TeacherCertificateCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
@Service
@AllArgsConstructor
public class TeacherCertificateServiceImpl implements TeacherCertificateServiceI {
private final TeacherCertificateAddExe teacherCertificateAddExe;
private final TeacherCertificateUpdateExe teacherCertificateUpdateExe;
private final TeacherCertificateRemoveExe teacherCertificateRemoveExe;
private final TeacherCertificateQueryExe teacherCertificateQueryExe;
@Override
public PageResponse<TeacherCertificateCO> listPage(TeacherCertificatePageQry qry) {
return teacherCertificateQueryExe.execute(qry);
}
@Override
public MultiResponse<TeacherCertificateCO> list(TeacherCertificateListQry qry) {
return teacherCertificateQueryExe.execute(qry);
}
@Override
public SingleResponse<TeacherCertificateCO> getInfoById(Long id) {
return teacherCertificateQueryExe.execute(id);
}
@Override
public SingleResponse add(TeacherCertificateAddCmd cmd) {
teacherCertificateAddExe.execute(cmd);
return SingleResponse.buildSuccess();
}
@Override
public void edit(TeacherCertificateUpdateCmd cmd) {
teacherCertificateUpdateExe.execute(cmd);
}
@Override
public void remove(Long id) {
teacherCertificateRemoveExe.execute(id);
}
@Override
public void removeBatch(Long[] ids) {
teacherCertificateRemoveExe.execute(ids);
}
}

View File

@ -0,0 +1,70 @@
package com.zcloud.edu.service;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.api.TeacherServiceI;
import com.zcloud.edu.command.TeacherAddExe;
import com.zcloud.edu.command.TeacherRemoveExe;
import com.zcloud.edu.command.TeacherUpdateExe;
import com.zcloud.edu.command.query.TeacherQueryExe;
import com.zcloud.edu.dto.TeacherAddCmd;
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.SingleResponse;
import com.zcloud.edu.dto.clientobject.TeacherCO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* web-app
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Service
@AllArgsConstructor
public class TeacherServiceImpl implements TeacherServiceI {
private final TeacherAddExe teacherAddExe;
private final TeacherUpdateExe teacherUpdateExe;
private final TeacherRemoveExe teacherRemoveExe;
private final TeacherQueryExe teacherQueryExe;
@Override
public PageResponse<TeacherCO> listPage(TeacherPageQry qry) {
return teacherQueryExe.execute(qry);
}
@Override
public MultiResponse<TeacherCO> list(TeacherListQry qry) {
return teacherQueryExe.execute(qry);
}
@Override
public SingleResponse<TeacherCO> getInfoById(Long id) {
return teacherQueryExe.execute(id);
}
@Override
public SingleResponse add(TeacherAddCmd cmd) {
teacherAddExe.execute(cmd);
return SingleResponse.buildSuccess();
}
@Override
public void edit(TeacherUpdateCmd cmd) {
teacherUpdateExe.execute(cmd);
}
@Override
public void remove(Long id) {
teacherRemoveExe.execute(id);
}
@Override
public void removeBatch(Long[] ids) {
teacherRemoveExe.execute(ids);
}
}

View File

@ -1,11 +1,13 @@
package com.zcloud.edu.service;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.api.TrainingTypeServiceI;
import com.zcloud.edu.command.TrainingTypeAddExe;
import com.zcloud.edu.command.TrainingTypeRemoveExe;
import com.zcloud.edu.command.TrainingTypeUpdateExe;
import com.zcloud.edu.command.query.TrainingTypeQueryExe;
import com.zcloud.edu.dto.TrainingTypeAddCmd;
import com.zcloud.edu.dto.TrainingTypeListQry;
import com.zcloud.edu.dto.TrainingTypePageQry;
import com.zcloud.edu.dto.TrainingTypeUpdateCmd;
@ -33,6 +35,11 @@ public class TrainingTypeServiceImpl implements TrainingTypeServiceI {
return trainingTypeQueryExe.execute(qry);
}
@Override
public MultiResponse<TrainingTypeCO> list(TrainingTypeListQry qry) {
return trainingTypeQueryExe.execute(qry);
}
@Override
public SingleResponse<TrainingTypeCO> getInfoById(Long id){
return trainingTypeQueryExe.execute(id);

View File

@ -0,0 +1,34 @@
package com.zcloud.edu.api;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.dto.TeacherCertificateAddCmd;
import com.zcloud.edu.dto.TeacherCertificatePageQry;
import com.zcloud.edu.dto.TeacherCertificateListQry;
import com.zcloud.edu.dto.TeacherCertificateUpdateCmd;
import com.zcloud.edu.dto.clientobject.TeacherCertificateCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
public interface TeacherCertificateServiceI {
PageResponse<TeacherCertificateCO> listPage(TeacherCertificatePageQry qry);
MultiResponse<TeacherCertificateCO> list(TeacherCertificateListQry qry);
SingleResponse<TeacherCertificateCO> getInfoById(Long id);
SingleResponse<TeacherCertificateCO> add(TeacherCertificateAddCmd cmd);
void edit(TeacherCertificateUpdateCmd cmd);
void remove(Long id);
void removeBatch(Long[] ids);
}

View File

@ -0,0 +1,34 @@
package com.zcloud.edu.api;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.dto.TeacherAddCmd;
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.SingleResponse;
import com.zcloud.edu.dto.clientobject.TeacherCO;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
public interface TeacherServiceI {
PageResponse<TeacherCO> listPage(TeacherPageQry qry);
MultiResponse<TeacherCO> list(TeacherListQry qry);
SingleResponse<TeacherCO> getInfoById(Long id);
SingleResponse<TeacherCO> add(TeacherAddCmd cmd);
void edit(TeacherUpdateCmd cmd);
void remove(Long id);
void removeBatch(Long[] ids);
}

View File

@ -1,6 +1,8 @@
package com.zcloud.edu.api;
import com.alibaba.cola.dto.MultiResponse;
import com.zcloud.edu.dto.TrainingTypeAddCmd;
import com.zcloud.edu.dto.TrainingTypeListQry;
import com.zcloud.edu.dto.TrainingTypePageQry;
import com.zcloud.edu.dto.TrainingTypeUpdateCmd;
@ -16,6 +18,8 @@ import com.zcloud.edu.dto.clientobject.TrainingTypeCO;
public interface TrainingTypeServiceI {
PageResponse<TrainingTypeCO> listPage(TrainingTypePageQry qry);
MultiResponse<TrainingTypeCO> list(TrainingTypeListQry qry);
SingleResponse<TrainingTypeCO> getInfoById(Long id);
SingleResponse<TrainingTypeCO> add(TrainingTypeAddCmd cmd);

View File

@ -0,0 +1,80 @@
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.*;
import java.util.Date;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
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)
@NotNull(message = "企业ID不能为空")
private Long corpinfoId;
@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

@ -0,0 +1,63 @@
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.*;
import java.util.Date;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:26:50
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TeacherCertificateAddCmd extends Command {
@ApiModelProperty(value = "教师ID", name = "teacherId", required = true)
@NotEmpty(message = "教师ID不能为空")
private String teacherId;
@ApiModelProperty(value = "资质类型", name = "qualificationType", required = true)
@NotEmpty(message = "资质类型不能为空")
private String qualificationType;
@ApiModelProperty(value = "资质类型名称", name = "qualificationTypeName", required = true)
@NotEmpty(message = "资质类型名称不能为空")
private String qualificationTypeName;
@ApiModelProperty(value = "职业证书编号", name = "vocationalCertificateNumber", required = true)
@NotEmpty(message = "职业证书编号不能为空")
private String vocationalCertificateNumber;
@ApiModelProperty(value = "是否永久有效:0-否,1-是", name = "effectiveFlag", required = true)
@NotNull(message = "是否永久有效:0-否,1-是不能为空")
private Integer effectiveFlag;
@ApiModelProperty(value = "证书有效期(开始)", name = "certificateDateStart", required = true)
@NotNull(message = "证书有效期(开始)不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date certificateDateStart;
@ApiModelProperty(value = "证书有效期(结束)", name = "certificateDateEnd", required = true)
@NotNull(message = "证书有效期(结束)不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date certificateDateEnd;
@ApiModelProperty(value = "证书照片", name = "certificateFilepath", required = true)
@NotEmpty(message = "证书照片不能为空")
private String certificateFilepath;
@ApiModelProperty(value = "企业ID", name = "corpinfoId", required = true)
@NotNull(message = "企业ID不能为空")
private Long corpinfoId;
}

View File

@ -0,0 +1,28 @@
package com.zcloud.edu.dto;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
@Data
public class TeacherCertificateListQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeTeacherCertificateId;
}

View File

@ -0,0 +1,28 @@
package com.zcloud.edu.dto;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
@Data
public class TeacherCertificatePageQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeTeacherCertificateId;
}

View File

@ -0,0 +1,29 @@
package com.zcloud.edu.dto;
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.*;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TeacherCertificateRemoveCmd extends Command {
@ApiModelProperty(value = "主键", name = "ids", required = true)
@NotNull(message = "主键不能为空")
private Long[] ids;
}

View File

@ -0,0 +1,61 @@
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.*;
import java.util.Date;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TeacherCertificateUpdateCmd extends Command {
@ApiModelProperty(value = "${column.comment}", name = "id", required = true)
@NotNull(message = "${column.comment}不能为空")
private Long id;
@ApiModelProperty(value = "业务主键id", name = "teacherCertificateId", required = true)
@NotEmpty(message = "业务主键id不能为空")
private String teacherCertificateId;
@ApiModelProperty(value = "教师ID", name = "teacherId", required = true)
@NotEmpty(message = "教师ID不能为空")
private String teacherId;
@ApiModelProperty(value = "资质类型", name = "qualificationType", required = true)
@NotEmpty(message = "资质类型不能为空")
private String qualificationType;
@ApiModelProperty(value = "资质类型名称", name = "qualificationTypeName", required = true)
@NotEmpty(message = "资质类型名称不能为空")
private String qualificationTypeName;
@ApiModelProperty(value = "职业证书编号", name = "vocationalCertificateNumber", required = true)
@NotEmpty(message = "职业证书编号不能为空")
private String vocationalCertificateNumber;
@ApiModelProperty(value = "是否永久有效:0-否,1-是", name = "effectiveFlag", required = true)
@NotNull(message = "是否永久有效:0-否,1-是不能为空")
private Integer effectiveFlag;
@ApiModelProperty(value = "证书有效期(开始)", name = "certificateDateStart", required = true)
@NotNull(message = "证书有效期(开始)不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date certificateDateStart;
@ApiModelProperty(value = "证书有效期(结束)", name = "certificateDateEnd", required = true)
@NotNull(message = "证书有效期(结束)不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date certificateDateEnd;
@ApiModelProperty(value = "证书照片", name = "certificateFilepath", required = true)
@NotEmpty(message = "证书照片不能为空")
private String certificateFilepath;
@ApiModelProperty(value = "企业ID", name = "corpinfoId", required = true)
@NotNull(message = "企业ID不能为空")
private Long corpinfoId;
}

View File

@ -0,0 +1,28 @@
package com.zcloud.edu.dto;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Data
public class TeacherListQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeTeacherId;
}

View File

@ -0,0 +1,28 @@
package com.zcloud.edu.dto;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Data
public class TeacherPageQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeTeacherId;
}

View File

@ -0,0 +1,29 @@
package com.zcloud.edu.dto;
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.*;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TeacherRemoveCmd extends Command {
@ApiModelProperty(value = "主键", name = "ids", required = true)
@NotNull(message = "主键不能为空")
private Long[] ids;
}

View File

@ -0,0 +1,73 @@
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.*;
import java.util.Date;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TeacherUpdateCmd extends Command {
@ApiModelProperty(value = "教师id", name = "id", required = true)
@NotNull(message = "教师id不能为空")
private Long id;
@ApiModelProperty(value = "业务主键id", name = "teacherId", required = true)
@NotEmpty(message = "业务主键id不能为空")
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)
@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

@ -0,0 +1,27 @@
package com.zcloud.edu.dto;
import com.alibaba.cola.dto.PageQuery;
import lombok.Data;
/**
* web-client
* @Author SondonYong
* @Date 2025-11-26 15:04:07
*/
@Data
public class TrainingTypeListQry extends PageQuery {
/**
* ,
* - `like`: SQLLIKE
* - `eq`: SQL=
* - `gt`:
* - `lt`:
* - `ge`:
* - `le`:
* - `ne`: SQL!=
*/
private String likeName;
}

View File

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

View File

@ -18,15 +18,19 @@ import javax.validation.constraints.*;
@NoArgsConstructor
@AllArgsConstructor
public class TrainingTypeUpdateCmd extends Command {
@ApiModelProperty(value = "id", name = "id", required = true)
@NotNull(message = "id不能为空")
private Long id;
@ApiModelProperty(value = "业务主键id", name = "trainingTypeId", required = true)
@NotEmpty(message = "业务主键id不能为空")
private String trainingTypeId;
@ApiModelProperty(value = "名称", name = "name", required = true)
@NotEmpty(message = "名称不能为空")
private String name;
@ApiModelProperty(value = "排序", name = "sort", required = true)
@NotNull(message = "排序不能为空")
private Integer sort;

View File

@ -0,0 +1,80 @@
package com.zcloud.edu.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
import java.time.LocalDate;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:20:28
*/
@Data
public class TeacherCO extends ClientObject {
//教师id
@ApiModelProperty(value = "教师id")
private Long id;
//业务主键id
@ApiModelProperty(value = "业务主键id")
private String teacherId;
//用户id
@ApiModelProperty(value = "用户id")
private Long userId;
//企业ID
@ApiModelProperty(value = "企业ID")
private Long corpinfoId;
//教师姓名
@ApiModelProperty(value = "教师姓名")
private String teacherName;
//手机号
@ApiModelProperty(value = "手机号")
private String phone;
//身份证号
@ApiModelProperty(value = "身份证号")
private String identityNumber;
//文化程度
@ApiModelProperty(value = "文化程度")
private String educationLevel;
//文化程度名称
@ApiModelProperty(value = "文化程度名称")
private String educationLevelName;
//专业
@ApiModelProperty(value = "专业")
private String profession;
//工作年限
@ApiModelProperty(value = "工作年限")
private Integer workyear;
//考核部门
@ApiModelProperty(value = "考核部门")
private String assessmentDepartment;
//考核时间
@ApiModelProperty(value = "考核时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate assessmentTime;
//考核结果
@ApiModelProperty(value = "考核结果")
private String assessmentResult;
//状态0-禁用 1-启用)(老项目0启用,1禁用)
@ApiModelProperty(value = "状态0-禁用 1-启用)(老项目0启用,1禁用)")
private String state;
}

View File

@ -0,0 +1,63 @@
package com.zcloud.edu.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;
import java.time.LocalDate;
/**
* web-client
*
* @Author SondonYong
* @Date 2025-11-26 17:26:50
*/
@Data
public class TeacherCertificateCO extends ClientObject {
private Long id;
//业务主键id
@ApiModelProperty(value = "业务主键id")
private String teacherCertificateId;
//教师ID
@ApiModelProperty(value = "教师ID")
private String teacherId;
//资质类型
@ApiModelProperty(value = "资质类型")
private String qualificationType;
//资质类型名称
@ApiModelProperty(value = "资质类型名称")
private String qualificationTypeName;
//职业证书编号
@ApiModelProperty(value = "职业证书编号")
private String vocationalCertificateNumber;
//是否永久有效:0-否,1-是
@ApiModelProperty(value = "是否永久有效:0-否,1-是")
private Integer effectiveFlag;
//证书有效期(开始)
@ApiModelProperty(value = "证书有效期(开始)")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate certificateDateStart;
//证书有效期(结束)
@ApiModelProperty(value = "证书有效期(结束)")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate certificateDateEnd;
//证书照片
@ApiModelProperty(value = "证书照片")
private String certificateFilepath;
//企业ID
@ApiModelProperty(value = "企业ID")
private Long corpinfoId;
}

View File

@ -0,0 +1,30 @@
package com.zcloud.edu.domain.gateway;
import com.zcloud.edu.domain.model.TeacherCertificateE;
/**
* web-domain
*
* @Author SondonYong
* @Date 2025-11-26 17:26:50
*/
public interface TeacherCertificateGateway {
/**
*
*/
Boolean add(TeacherCertificateE teacherCertificateE);
/**
*
*/
Boolean update(TeacherCertificateE teacherCertificateE);
/**
*
*/
Boolean deletedTeacherCertificateById(Long id);
Boolean deletedTeacherCertificateByIds(Long[] id);
}

View File

@ -0,0 +1,30 @@
package com.zcloud.edu.domain.gateway;
import com.zcloud.edu.domain.model.TeacherE;
/**
* web-domain
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
public interface TeacherGateway {
/**
*
*/
Boolean add(TeacherE teacherE);
/**
*
*/
Boolean update(TeacherE teacherE);
/**
*
*/
Boolean deletedTeacherById(Long id);
Boolean deletedTeacherByIds(Long[] id);
}

View File

@ -0,0 +1,38 @@
package com.zcloud.edu.domain.model;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
import java.util.Date;
/**
* web-domain
*
* @Author SondonYong
* @Date 2025-11-26 17:26:50
*/
@Data
public class TeacherCertificateE extends BaseE {
private Long id;
//业务主键id
private String teacherCertificateId;
//教师ID
private String teacherId;
//资质类型
private String qualificationType;
//资质类型名称
private String qualificationTypeName;
//职业证书编号
private String vocationalCertificateNumber;
//是否永久有效:0-否,1-是
private Integer effectiveFlag;
//证书有效期(开始)
private Date certificateDateStart;
//证书有效期(结束)
private Date certificateDateEnd;
//证书照片
private String certificateFilepath;
//企业ID
private Long corpinfoId;
}

View File

@ -0,0 +1,47 @@
package com.zcloud.edu.domain.model;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
import java.util.Date;
/**
* web-domain
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Data
public class TeacherE extends BaseE {
//教师id
private Long id;
//业务主键id
private String teacherId;
//用户id
private Long userId;
//企业ID
private Long corpinfoId;
//教师姓名
private String teacherName;
//手机号
private String phone;
//身份证号
private String identityNumber;
//文化程度
private String educationLevel;
//文化程度名称
private String educationLevelName;
//专业
private String profession;
//工作年限
private Integer workyear;
//考核部门
private String assessmentDepartment;
//考核时间
private Date assessmentTime;
//考核结果
private String assessmentResult;
//状态0-禁用 1-启用)(老项目0启用,1禁用)
private String state;
}

View File

@ -1,5 +1,6 @@
package com.zcloud.edu.domain.model;
import com.alibaba.cola.exception.BizException;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
@ -20,5 +21,12 @@ public class TrainingTypeE extends BaseE {
private String name;
//排序
private Integer sort;
public void checkList(int size){
if(size > 0){
throw new BizException("培训类型名称重复。");
}
}
}

View File

@ -0,0 +1,50 @@
package com.zcloud.edu.gatewayimpl;
import com.zcloud.edu.domain.gateway.TeacherCertificateGateway;
import com.zcloud.edu.domain.model.TeacherCertificateE;
import com.zcloud.edu.persistence.dataobject.TeacherCertificateDO;
import com.zcloud.edu.persistence.repository.TeacherCertificateRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:26:50
*/
@Service
@AllArgsConstructor
public class TeacherCertificateGatewayImpl implements TeacherCertificateGateway {
private final TeacherCertificateRepository teacherCertificateRepository;
@Override
public Boolean add(TeacherCertificateE teacherCertificateE) {
TeacherCertificateDO d = new TeacherCertificateDO();
BeanUtils.copyProperties(teacherCertificateE, d);
teacherCertificateRepository.save(d);
return true;
}
@Override
public Boolean update(TeacherCertificateE teacherCertificateE) {
TeacherCertificateDO d = new TeacherCertificateDO();
BeanUtils.copyProperties(teacherCertificateE, d);
teacherCertificateRepository.updateById(d);
return true;
}
@Override
public Boolean deletedTeacherCertificateById(Long id) {
return teacherCertificateRepository.removeById(id);
}
@Override
public Boolean deletedTeacherCertificateByIds(Long[] ids) {
return teacherCertificateRepository.removeByIds(Collections.singletonList(ids));
}
}

View File

@ -0,0 +1,50 @@
package com.zcloud.edu.gatewayimpl;
import com.zcloud.edu.domain.gateway.TeacherGateway;
import com.zcloud.edu.domain.model.TeacherE;
import com.zcloud.edu.persistence.dataobject.TeacherDO;
import com.zcloud.edu.persistence.repository.TeacherRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Service
@AllArgsConstructor
public class TeacherGatewayImpl implements TeacherGateway {
private final TeacherRepository teacherRepository;
@Override
public Boolean add(TeacherE teacherE) {
TeacherDO d = new TeacherDO();
BeanUtils.copyProperties(teacherE, d);
teacherRepository.save(d);
return true;
}
@Override
public Boolean update(TeacherE teacherE) {
TeacherDO d = new TeacherDO();
BeanUtils.copyProperties(teacherE, d);
teacherRepository.updateById(d);
return true;
}
@Override
public Boolean deletedTeacherById(Long id) {
return teacherRepository.removeById(id);
}
@Override
public Boolean deletedTeacherByIds(Long[] ids) {
return teacherRepository.removeByIds(Collections.singletonList(ids));
}
}

View File

@ -0,0 +1,59 @@
package com.zcloud.edu.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.*;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:26:50
*/
@Data
@TableName("teacher_certificate")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TeacherCertificateDO extends BaseDO {
//业务主键id
@ApiModelProperty(value = "业务主键id")
private String teacherCertificateId;
//教师ID
@ApiModelProperty(value = "教师ID")
private String teacherId;
//资质类型
@ApiModelProperty(value = "资质类型")
private String qualificationType;
//资质类型名称
@ApiModelProperty(value = "资质类型名称")
private String qualificationTypeName;
//职业证书编号
@ApiModelProperty(value = "职业证书编号")
private String vocationalCertificateNumber;
//是否永久有效:0-否,1-是
@ApiModelProperty(value = "是否永久有效:0-否,1-是")
private Integer effectiveFlag;
//证书有效期(开始)
@ApiModelProperty(value = "证书有效期(开始)")
private Date certificateDateStart;
//证书有效期(结束)
@ApiModelProperty(value = "证书有效期(结束)")
private Date certificateDateEnd;
//证书照片
@ApiModelProperty(value = "证书照片")
private String certificateFilepath;
//企业ID
@ApiModelProperty(value = "企业ID")
private Long corpinfoId;
public TeacherCertificateDO(String teacherCertificateId) {
this.teacherCertificateId = teacherCertificateId;
}
}

View File

@ -0,0 +1,71 @@
package com.zcloud.edu.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.*;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Data
@TableName("teacher")
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class TeacherDO extends BaseDO {
//业务主键id
@ApiModelProperty(value = "业务主键id")
private String teacherId;
//用户id
@ApiModelProperty(value = "用户id")
private Long userId;
//企业ID
@ApiModelProperty(value = "企业ID")
private Long corpinfoId;
//教师姓名
@ApiModelProperty(value = "教师姓名")
private String teacherName;
//手机号
@ApiModelProperty(value = "手机号")
private String phone;
//身份证号
@ApiModelProperty(value = "身份证号")
private String identityNumber;
//文化程度
@ApiModelProperty(value = "文化程度")
private String educationLevel;
//文化程度名称
@ApiModelProperty(value = "文化程度名称")
private String educationLevelName;
//专业
@ApiModelProperty(value = "专业")
private String profession;
//工作年限
@ApiModelProperty(value = "工作年限")
private Integer workyear;
//考核部门
@ApiModelProperty(value = "考核部门")
private String assessmentDepartment;
//考核时间
@ApiModelProperty(value = "考核时间")
private Date assessmentTime;
//考核结果
@ApiModelProperty(value = "考核结果")
private String assessmentResult;
//状态0-禁用 1-启用)(老项目0启用,1禁用)
@ApiModelProperty(value = "状态0-禁用 1-启用)(老项目0启用,1禁用)")
private String state;
public TeacherDO(String teacherId) {
this.teacherId = teacherId;
}
}

View File

@ -0,0 +1,17 @@
package com.zcloud.edu.persistence.mapper;
import com.zcloud.edu.persistence.dataobject.TeacherCertificateDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:26:50
*/
@Mapper
public interface TeacherCertificateMapper extends BaseMapper<TeacherCertificateDO> {
}

View File

@ -0,0 +1,17 @@
package com.zcloud.edu.persistence.mapper;
import com.zcloud.edu.persistence.dataobject.TeacherDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Mapper
public interface TeacherMapper extends BaseMapper<TeacherDO> {
}

View File

@ -0,0 +1,25 @@
package com.zcloud.edu.persistence.repository;
import com.zcloud.edu.persistence.dataobject.TeacherCertificateDO;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import java.util.Map;
import java.util.List;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
public interface TeacherCertificateRepository extends BaseRepository<TeacherCertificateDO> {
PageResponse<TeacherCertificateDO> listPage(Map<String, Object> params);
List<TeacherCertificateDO> list(Map<String, Object> params);
SingleResponse<TeacherCertificateDO> getInfoById(Long id);
}

View File

@ -0,0 +1,25 @@
package com.zcloud.edu.persistence.repository;
import com.zcloud.edu.persistence.dataobject.TeacherDO;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import java.util.Map;
import java.util.List;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
public interface TeacherRepository extends BaseRepository<TeacherDO> {
PageResponse<TeacherDO> listPage(Map<String, Object> params);
List<TeacherDO> list(Map<String, Object> params);
SingleResponse<TeacherDO> getInfoById(Long id);
}

View File

@ -4,6 +4,8 @@ import com.zcloud.edu.persistence.dataobject.TrainingTypeDO;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import java.util.List;
import java.util.Map;
/**
@ -15,6 +17,12 @@ public interface TrainingTypeRepository extends BaseRepository<TrainingTypeDO> {
PageResponse<TrainingTypeDO> listPage(Map<String,Object> params);
List<TrainingTypeDO> list(Map<String,Object> params);
List<TrainingTypeDO> listByName(String name);
List<TrainingTypeDO> listByNameAndId(String name, Long id);
SingleResponse<TrainingTypeDO> getInfoById(Long id);
}

View File

@ -0,0 +1,55 @@
package com.zcloud.edu.persistence.repository.impl;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.edu.persistence.dataobject.TeacherCertificateDO;
import com.zcloud.edu.persistence.mapper.TeacherCertificateMapper;
import com.zcloud.edu.persistence.repository.TeacherCertificateRepository;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.dto.PageResponse;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:26:51
*/
@Service
@RequiredArgsConstructor
public class TeacherCertificateRepositoryImpl extends BaseRepositoryImpl<TeacherCertificateMapper, TeacherCertificateDO> implements TeacherCertificateRepository {
private final TeacherCertificateMapper teacherCertificateMapper;
@Override
public PageResponse<TeacherCertificateDO> listPage(Map<String, Object> params) {
IPage<TeacherCertificateDO> iPage = new Query<TeacherCertificateDO>().getPage(params);
QueryWrapper<TeacherCertificateDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
IPage<TeacherCertificateDO> result = teacherCertificateMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public List<TeacherCertificateDO> list(Map<String, Object> params) {
QueryWrapper<TeacherCertificateDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
List<TeacherCertificateDO> result = teacherCertificateMapper.selectList(queryWrapper);
return result;
}
@Override
public SingleResponse<TeacherCertificateDO> getInfoById(Long id) {
return SingleResponse.of(teacherCertificateMapper.selectById(id));
}
}

View File

@ -0,0 +1,55 @@
package com.zcloud.edu.persistence.repository.impl;
import com.jjb.saas.framework.repository.common.PageHelper;
import com.zcloud.edu.persistence.dataobject.TeacherDO;
import com.zcloud.edu.persistence.mapper.TeacherMapper;
import com.zcloud.edu.persistence.repository.TeacherRepository;
import com.alibaba.cola.dto.SingleResponse;
import com.alibaba.cola.dto.PageResponse;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;
/**
* web-infrastructure
*
* @Author SondonYong
* @Date 2025-11-26 17:04:44
*/
@Service
@RequiredArgsConstructor
public class TeacherRepositoryImpl extends BaseRepositoryImpl<TeacherMapper, TeacherDO> implements TeacherRepository {
private final TeacherMapper teacherMapper;
@Override
public PageResponse<TeacherDO> listPage(Map<String, Object> params) {
IPage<TeacherDO> iPage = new Query<TeacherDO>().getPage(params);
QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
IPage<TeacherDO> result = teacherMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public List<TeacherDO> list(Map<String, Object> params) {
QueryWrapper<TeacherDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
List<TeacherDO> result = teacherMapper.selectList(queryWrapper);
return result;
}
@Override
public SingleResponse<TeacherDO> getInfoById(Long id) {
return SingleResponse.of(teacherMapper.selectById(id));
}
}

View File

@ -13,6 +13,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
@ -30,11 +33,35 @@ public class TrainingTypeRepositoryImpl extends BaseRepositoryImpl<TrainingTypeM
IPage<TrainingTypeDO> iPage = new Query<TrainingTypeDO>().getPage(params);
QueryWrapper<TrainingTypeDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
queryWrapper.orderByAsc("sort");
IPage<TrainingTypeDO> result = trainingTypeMapper.selectPage(iPage, queryWrapper);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public List<TrainingTypeDO> list(Map<String, Object> params) {
QueryWrapper<TrainingTypeDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByAsc("sort");
List<TrainingTypeDO> trainingTypeDOS = trainingTypeMapper.selectList(queryWrapper);
return trainingTypeDOS;
}
@Override
public List<TrainingTypeDO> listByName(String name) {
QueryWrapper<TrainingTypeDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", name);
return list(queryWrapper);
}
@Override
public List<TrainingTypeDO> listByNameAndId(String name, Long id) {
QueryWrapper<TrainingTypeDO> queryWrapper = new QueryWrapper<>();
queryWrapper.ne("id", id);
queryWrapper.eq("name", name);
return list(queryWrapper);
}
@Override
public SingleResponse<TrainingTypeDO> getInfoById(Long id) {
return SingleResponse.of(trainingTypeMapper.selectById(id));

View File

@ -0,0 +1,7 @@
<?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.TeacherCertificateMapper">
</mapper>

View File

@ -0,0 +1,7 @@
<?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.TeacherMapper">
</mapper>