From fe18fade770722fe046a58d3ee557dbd19a87aed Mon Sep 17 00:00:00 2001 From: JIAN Date: Sat, 31 Aug 2024 00:03:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(customer):=E6=96=B0=E5=A2=9E=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD=20=20=20=20=201.?= =?UTF-8?q?=20=E6=9C=8D=E5=8A=A1=E7=AB=AF=E8=AE=A4=E8=AF=81=E5=B9=B6?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E6=8B=92=E7=BB=9D=E5=8E=9F=E5=9B=A0=20=20=20?= =?UTF-8?q?=20=202.=20=E6=9C=BA=E6=9E=84=E7=AB=AF=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E5=B9=B6=E6=9F=A5=E7=9C=8B=E6=8B=92=E7=BB=9D=E5=8E=9F=E5=9B=A0?= =?UTF-8?q?=20=20=20=20=203.=20=E7=AE=A1=E7=90=86=E7=AB=AF=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=9C=8D=E5=8A=A1=E4=BA=BA=E5=91=98/=E6=9C=BA?= =?UTF-8?q?=E6=9E=84=E8=AE=A4=E8=AF=81=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agency/CertificationAuditController.java | 36 ++++ .../AgencyCertificationAuditController.java | 28 +++ .../WorkerCertificationAuditController.java | 28 +++ .../worker/CertificationAuditController.java | 36 ++++ .../mapper/CertificationAuditMapper.java | 16 ++ .../model/domain/AgencyCertification.java | 15 +- .../model/domain/CertificationAudit.java | 125 +++++++++++++ .../model/domain/WorkerCertification.java | 15 +- .../service/ICertificationAuditService.java | 47 +++++ .../impl/CertificationAuditServiceImpl.java | 173 ++++++++++++++++++ .../mapper/CertificationAuditMapper.xml | 5 + 11 files changed, 510 insertions(+), 14 deletions(-) create mode 100644 jzo2o-customer/src/main/java/com/jzo2o/customer/controller/agency/CertificationAuditController.java create mode 100644 jzo2o-customer/src/main/java/com/jzo2o/customer/controller/operation/AgencyCertificationAuditController.java create mode 100644 jzo2o-customer/src/main/java/com/jzo2o/customer/controller/operation/WorkerCertificationAuditController.java create mode 100644 jzo2o-customer/src/main/java/com/jzo2o/customer/controller/worker/CertificationAuditController.java create mode 100644 jzo2o-customer/src/main/java/com/jzo2o/customer/mapper/CertificationAuditMapper.java create mode 100644 jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/CertificationAudit.java create mode 100644 jzo2o-customer/src/main/java/com/jzo2o/customer/service/ICertificationAuditService.java create mode 100644 jzo2o-customer/src/main/java/com/jzo2o/customer/service/impl/CertificationAuditServiceImpl.java create mode 100644 jzo2o-customer/src/main/resources/mapper/CertificationAuditMapper.xml diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/agency/CertificationAuditController.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/agency/CertificationAuditController.java new file mode 100644 index 0000000..3a51c18 --- /dev/null +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/agency/CertificationAuditController.java @@ -0,0 +1,36 @@ +package com.jzo2o.customer.controller.agency; + +import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditAddReqDTO; +import com.jzo2o.customer.model.dto.response.RejectReasonResDTO; +import com.jzo2o.customer.service.ICertificationAuditService; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * @author JIAN + */ +@RestController("agencyCertificationAuditController") +@RequestMapping("/agency/agency-certification-audit") +@Api(tags = "机构端 - 认证相关接口") +public class CertificationAuditController { + @Resource + private ICertificationAuditService certificationAuditService; + + /** + * 提交认证信息 + */ + @PostMapping + public void addCertificationInfo(@RequestBody AgencyCertificationAuditAddReqDTO agencyCertificationAuditAddReqDTO) { + certificationAuditService.addCertificationInfoForAgency(agencyCertificationAuditAddReqDTO); + } + + /** + * 查询当前用户最新的拒绝原因 + */ + @GetMapping("/rejectReason") + public RejectReasonResDTO getLatestRejectReason() { + return certificationAuditService.getLatestRejectReason(); + } +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/operation/AgencyCertificationAuditController.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/operation/AgencyCertificationAuditController.java new file mode 100644 index 0000000..2f2d322 --- /dev/null +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/operation/AgencyCertificationAuditController.java @@ -0,0 +1,28 @@ +package com.jzo2o.customer.controller.operation; + +import com.jzo2o.common.model.PageResult; +import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditPageQueryReqDTO; +import com.jzo2o.customer.model.dto.response.AgencyCertificationAuditResDTO; +import com.jzo2o.customer.service.ICertificationAuditService; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @author JIAN + */ +@RestController("operationAgencyCertificationAuditController") +@RequestMapping("/operation/agency-certification-audit") +@Api(tags = "运营端 - 机构认证相关接口") +public class AgencyCertificationAuditController { + @Resource + private ICertificationAuditService certificationAuditService; + + @GetMapping("/page") + public PageResult page(AgencyCertificationAuditPageQueryReqDTO agencyCertificationAuditPageQueryReqDTO) { + return certificationAuditService.getAgencyCertificationInfo(agencyCertificationAuditPageQueryReqDTO); + } +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/operation/WorkerCertificationAuditController.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/operation/WorkerCertificationAuditController.java new file mode 100644 index 0000000..9a3891f --- /dev/null +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/operation/WorkerCertificationAuditController.java @@ -0,0 +1,28 @@ +package com.jzo2o.customer.controller.operation; + +import com.jzo2o.common.model.PageResult; +import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditPageQueryReqDTO; +import com.jzo2o.customer.model.dto.response.WorkerCertificationAuditResDTO; +import com.jzo2o.customer.service.ICertificationAuditService; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @author JIAN + */ +@RestController("operationWorkerCertificationAudit") +@RequestMapping("/operation/worker-certification-audit") +@Api(tags = "运营端 - 服务人员认证相关接口") +public class WorkerCertificationAuditController { + @Resource + private ICertificationAuditService certificationAuditService; + + @GetMapping("/page") + public PageResult page(WorkerCertificationAuditPageQueryReqDTO workerCertificationAuditPageQueryReqDTO) { + return certificationAuditService.getWorkerCertificationInfo(workerCertificationAuditPageQueryReqDTO); + } +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/worker/CertificationAuditController.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/worker/CertificationAuditController.java new file mode 100644 index 0000000..da3bd92 --- /dev/null +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/controller/worker/CertificationAuditController.java @@ -0,0 +1,36 @@ +package com.jzo2o.customer.controller.worker; + +import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditAddReqDTO; +import com.jzo2o.customer.model.dto.response.RejectReasonResDTO; +import com.jzo2o.customer.service.ICertificationAuditService; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * @author JIAN + */ +@RestController("workerCertificationAuditController") +@RequestMapping("/worker/worker-certification-audit") +@Api(tags = "服务端 - 认证相关接口") +public class CertificationAuditController { + @Resource + private ICertificationAuditService certificationAuditService; + + /** + * 提交认证信息 + */ + @PostMapping + public void addCertificationInfo(@RequestBody WorkerCertificationAuditAddReqDTO workerCertificationAuditAddReqDTO) { + certificationAuditService.addCertificationInfoForWorker(workerCertificationAuditAddReqDTO); + } + + /** + * 查询当前用户最新的拒绝原因 + */ + @GetMapping("/rejectReason") + public RejectReasonResDTO getLatestRejectReason() { + return certificationAuditService.getLatestRejectReason(); + } +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/mapper/CertificationAuditMapper.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/mapper/CertificationAuditMapper.java new file mode 100644 index 0000000..ab544f0 --- /dev/null +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/mapper/CertificationAuditMapper.java @@ -0,0 +1,16 @@ +package com.jzo2o.customer.mapper; + +import com.jzo2o.customer.model.domain.CertificationAudit; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + *

+ * 服务人员/机构认证流水表 Mapper 接口 + *

+ * + * @author JIAN + * @since 2024-08-30 + */ +public interface CertificationAuditMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/AgencyCertification.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/AgencyCertification.java index 2253255..6c47a05 100644 --- a/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/AgencyCertification.java +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/AgencyCertification.java @@ -1,14 +1,16 @@ package com.jzo2o.customer.model.domain; -import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; -import java.time.LocalDateTime; -import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.io.Serializable; +import java.time.LocalDateTime; + /** *

* 机构认证信息表 @@ -18,6 +20,7 @@ import lombok.experimental.Accessors; * @since 2023-09-06 */ @Data +@Builder @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("agency_certification") @@ -28,7 +31,7 @@ public class AgencyCertification implements Serializable { /** * 机构id */ - @TableId(value = "id", type = IdType.ASSIGN_ID) + @TableId(value = "id", type = IdType.NONE) private Long id; /** @@ -75,6 +78,4 @@ public class AgencyCertification implements Serializable { * 更新时间 */ private LocalDateTime updateTime; - - -} +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/CertificationAudit.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/CertificationAudit.java new file mode 100644 index 0000000..3f8af67 --- /dev/null +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/CertificationAudit.java @@ -0,0 +1,125 @@ +package com.jzo2o.customer.model.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * 服务人员/机构认证流水表 + *

+ * @author JIAN + * @since 2024-08-30 + */ +@Data +@Builder +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("certification_audit") +public class CertificationAudit implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 流水表主键 + */ + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 服务人员/机构id + */ + private Long serveProviderId; + + /** + * 类型,2:服务人员,3:服务机构 + */ + private Integer serveProviderType; + + /** + * 服务人员/机构法人姓名 + */ + private String name; + + /** + * 服务人员/机构法人身份证号 + */ + private String idCardNo; + + /** + * 服务人员身份证正面 + */ + private String frontImg; + + /** + * 服务人员身份证反面 + */ + private String backImg; + + /** + * 服务人员认证材料 + */ + private String certificationMaterial; + + /** + * 机构名称 + */ + private String institutionName; + + /** + * 机构统一社会信用代码 + */ + private String idNumber; + + /** + * 机构营业执照 + */ + private String businessLicense; + + /** + * 审核状态,0:未审核,1:已审核 + */ + private Integer auditStatus; + + /** + * 审核时间 + */ + private LocalDateTime auditTime; + + /** + * 审核人员id(运营端) + */ + private Long auditorId; + + /** + * 审核人员姓名(运营端) + */ + private String auditorName; + + /** + * 认证状态,1:认证中,2:认证成功,3: 认证失败 + */ + private Integer certificationStatus; + + /** + * 认证拒绝原因 + */ + private String rejectReason; + + /** + * 创建时间 + */ + private LocalDateTime createTime; + + /** + * 更新时间 + */ + private LocalDateTime updateTime; +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/WorkerCertification.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/WorkerCertification.java index c029fc6..c732e63 100644 --- a/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/WorkerCertification.java +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/model/domain/WorkerCertification.java @@ -1,14 +1,16 @@ package com.jzo2o.customer.model.domain; -import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.IdType; -import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableId; -import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import java.io.Serializable; +import java.time.LocalDateTime; + /** *

* 服务人员认证信息表 @@ -18,6 +20,7 @@ import lombok.experimental.Accessors; * @since 2023-09-06 */ @Data +@Builder @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("worker_certification") @@ -28,7 +31,7 @@ public class WorkerCertification implements Serializable { /** * 服务人员id */ - @TableId(value = "id", type = IdType.ASSIGN_ID) + @TableId(value = "id", type = IdType.NONE) private Long id; /** @@ -75,6 +78,4 @@ public class WorkerCertification implements Serializable { * 更新时间 */ private LocalDateTime updateTime; - - -} +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/service/ICertificationAuditService.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/service/ICertificationAuditService.java new file mode 100644 index 0000000..79eac8a --- /dev/null +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/service/ICertificationAuditService.java @@ -0,0 +1,47 @@ +package com.jzo2o.customer.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.jzo2o.common.model.PageResult; +import com.jzo2o.customer.model.domain.CertificationAudit; +import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditAddReqDTO; +import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditPageQueryReqDTO; +import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditAddReqDTO; +import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditPageQueryReqDTO; +import com.jzo2o.customer.model.dto.response.AgencyCertificationAuditResDTO; +import com.jzo2o.customer.model.dto.response.RejectReasonResDTO; +import com.jzo2o.customer.model.dto.response.WorkerCertificationAuditResDTO; + +/** + *

+ * 服务人员/机构认证流水表 服务类 + *

+ * + * @author JIAN + * @since 2024-08-30 + */ +public interface ICertificationAuditService extends IService { + /** + * 服务端提交认证信息 + */ + void addCertificationInfoForWorker(WorkerCertificationAuditAddReqDTO workerCertificationAuditAddReqDTO); + + /** + * 机构端提交认证信息 + */ + void addCertificationInfoForAgency(AgencyCertificationAuditAddReqDTO agencyCertificationAuditAddReqDTO); + + /** + * 获取当前用户最新的拒绝原因 + */ + RejectReasonResDTO getLatestRejectReason(); + + /** + * 获取服务端认证信息 + */ + PageResult getWorkerCertificationInfo(WorkerCertificationAuditPageQueryReqDTO pageQueryReqDTO); + + /** + * 获取机构端认证消息 + */ + PageResult getAgencyCertificationInfo(AgencyCertificationAuditPageQueryReqDTO pageQueryReqDTO); +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/java/com/jzo2o/customer/service/impl/CertificationAuditServiceImpl.java b/jzo2o-customer/src/main/java/com/jzo2o/customer/service/impl/CertificationAuditServiceImpl.java new file mode 100644 index 0000000..2e33513 --- /dev/null +++ b/jzo2o-customer/src/main/java/com/jzo2o/customer/service/impl/CertificationAuditServiceImpl.java @@ -0,0 +1,173 @@ +package com.jzo2o.customer.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jzo2o.common.constants.UserType; +import com.jzo2o.common.expcetions.ForbiddenOperationException; +import com.jzo2o.common.model.PageResult; +import com.jzo2o.common.utils.CollUtils; +import com.jzo2o.common.utils.ObjectUtils; +import com.jzo2o.customer.enums.CertificationStatusEnum; +import com.jzo2o.customer.mapper.AgencyCertificationMapper; +import com.jzo2o.customer.mapper.CertificationAuditMapper; +import com.jzo2o.customer.mapper.ServeProviderMapper; +import com.jzo2o.customer.mapper.WorkerCertificationMapper; +import com.jzo2o.customer.model.domain.AgencyCertification; +import com.jzo2o.customer.model.domain.CertificationAudit; +import com.jzo2o.customer.model.domain.ServeProvider; +import com.jzo2o.customer.model.domain.WorkerCertification; +import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditAddReqDTO; +import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditPageQueryReqDTO; +import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditAddReqDTO; +import com.jzo2o.customer.model.dto.request.WorkerCertificationAuditPageQueryReqDTO; +import com.jzo2o.customer.model.dto.response.AgencyCertificationAuditResDTO; +import com.jzo2o.customer.model.dto.response.RejectReasonResDTO; +import com.jzo2o.customer.model.dto.response.WorkerCertificationAuditResDTO; +import com.jzo2o.customer.service.ICertificationAuditService; +import com.jzo2o.mvc.utils.UserContext; +import com.jzo2o.mysql.utils.PageUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 服务人员/机构认证流水表 服务实现类 + *

+ * @author JIAN + * @since 2024-08-30 + */ +@Service +public class CertificationAuditServiceImpl extends ServiceImpl implements ICertificationAuditService { + @Resource + private ServeProviderMapper serveProviderMapper; + @Resource + private WorkerCertificationMapper workerCertificationMapper; + @Resource + private AgencyCertificationMapper agencyCertificationMapper; + + @Override + @Transactional + public void addCertificationInfoForWorker(WorkerCertificationAuditAddReqDTO workerCertificationAuditAddReqDTO) { + Long userId = UserContext.currentUserId(); + ServeProvider worker = serveProviderMapper.selectById(userId); + if (ObjectUtils.isEmpty(userId) || ObjectUtils.isEmpty(worker)) { + throw new ForbiddenOperationException("用户不存在无法认证"); + } + if (worker.getType() != UserType.WORKER) { + throw new ForbiddenOperationException("提交认证资料不符合用户身份"); + } + + // 更新流水表 + baseMapper.insert(CertificationAudit.builder() + .serveProviderId(userId) + .serveProviderType(UserType.WORKER) + .name(workerCertificationAuditAddReqDTO.getName()) + .idCardNo(workerCertificationAuditAddReqDTO.getIdCardNo()) + .frontImg(workerCertificationAuditAddReqDTO.getFrontImg()) + .backImg(workerCertificationAuditAddReqDTO.getBackImg()) + .certificationMaterial(workerCertificationAuditAddReqDTO.getCertificationMaterial()) + .build()); + + // 更新最终信息表 + workerCertificationMapper.insert(WorkerCertification.builder() + .id(userId) + .certificationStatus(CertificationStatusEnum.PROGRESSING.getStatus()) + .build()); + } + + @Override + @Transactional + public void addCertificationInfoForAgency(AgencyCertificationAuditAddReqDTO agencyCertificationAuditAddReqDTO) { + Long userId = UserContext.currentUserId(); + ServeProvider worker = serveProviderMapper.selectById(userId); + if (ObjectUtils.isEmpty(userId) || ObjectUtils.isEmpty(worker)) { + throw new ForbiddenOperationException("用户不存在无法认证"); + } + if (worker.getType() != UserType.INSTITUTION) { + throw new ForbiddenOperationException("提交认证资料不符合用户身份"); + } + + // 更新流水表 + baseMapper.insert(CertificationAudit.builder() + .serveProviderId(userId) + .serveProviderType(UserType.INSTITUTION) + .name(agencyCertificationAuditAddReqDTO.getLegalPersonName()) + .idCardNo(agencyCertificationAuditAddReqDTO.getLegalPersonIdCardNo()) + .institutionName(agencyCertificationAuditAddReqDTO.getName()) + .idNumber(agencyCertificationAuditAddReqDTO.getIdNumber()) + .businessLicense(agencyCertificationAuditAddReqDTO.getBusinessLicense()) + .build()); + + // 更新最终信息表 + agencyCertificationMapper.insert(AgencyCertification.builder() + .id(userId) + .certificationStatus(CertificationStatusEnum.PROGRESSING.getStatus()) + .build()); + } + + @Override + @SuppressWarnings("unchecked") + public RejectReasonResDTO getLatestRejectReason() { + List certificationAudits = lambdaQuery() + .eq(CertificationAudit::getCertificationStatus, CertificationStatusEnum.FAIL.getStatus()) + .eq(CertificationAudit::getServeProviderId, UserContext.currentUserId()) + .orderByDesc(CertificationAudit::getCreateTime) + .list(); + + return CollUtils.isEmpty(certificationAudits) + ? new RejectReasonResDTO() + : new RejectReasonResDTO(certificationAudits.get(0).getRejectReason()); + } + + @Override + public PageResult getWorkerCertificationInfo(WorkerCertificationAuditPageQueryReqDTO pageQueryReqDTO) { + Page pageQuery = PageUtils.parsePageQuery(pageQueryReqDTO, CertificationAudit.class); + + String name = pageQueryReqDTO.getName(); + String idCardNo = pageQueryReqDTO.getIdCardNo(); + Integer auditStatus = pageQueryReqDTO.getAuditStatus(); + Integer certificationStatus = pageQueryReqDTO.getCertificationStatus(); + + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery() + .eq(CertificationAudit::getServeProviderType, UserType.WORKER) + .like(ObjectUtils.isNotEmpty(name), CertificationAudit::getName, name) + .like(ObjectUtils.isNotEmpty(idCardNo), CertificationAudit::getIdCardNo, idCardNo) + .eq(ObjectUtils.isNotEmpty(auditStatus), CertificationAudit::getAuditStatus, auditStatus) + .eq(ObjectUtils.isNotEmpty(certificationStatus), CertificationAudit::getCertificationStatus, certificationStatus); + + return PageUtils.toPage( + baseMapper.selectPage(pageQuery, queryWrapper), + WorkerCertificationAuditResDTO.class); + } + + @Override + public PageResult getAgencyCertificationInfo(AgencyCertificationAuditPageQueryReqDTO pageQueryReqDTO) { + Page pageQuery = PageUtils.parsePageQuery(pageQueryReqDTO, CertificationAudit.class); + + String name = pageQueryReqDTO.getName(); + String legalPersonName = pageQueryReqDTO.getLegalPersonName(); + Integer auditStatus = pageQueryReqDTO.getAuditStatus(); + Integer certificationStatus = pageQueryReqDTO.getCertificationStatus(); + + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery() + .eq(CertificationAudit::getServeProviderType, UserType.INSTITUTION) + .like(ObjectUtils.isNotEmpty(name), CertificationAudit::getInstitutionName, name) + .like(ObjectUtils.isNotEmpty(legalPersonName), CertificationAudit::getName, legalPersonName) + .eq(ObjectUtils.isNotEmpty(auditStatus), CertificationAudit::getAuditStatus, auditStatus) + .eq(ObjectUtils.isNotEmpty(certificationStatus), CertificationAudit::getCertificationStatus, certificationStatus); + + return PageUtils.toPage( + baseMapper.selectPage(pageQuery, queryWrapper), + AgencyCertificationAuditResDTO.class, + (origin, target) -> { + target.setName(origin.getInstitutionName()); + target.setLegalPersonName(origin.getName()); + target.setLegalPersonIdCardNo(origin.getIdCardNo()); + }); + } +} \ No newline at end of file diff --git a/jzo2o-customer/src/main/resources/mapper/CertificationAuditMapper.xml b/jzo2o-customer/src/main/resources/mapper/CertificationAuditMapper.xml new file mode 100644 index 0000000..647d318 --- /dev/null +++ b/jzo2o-customer/src/main/resources/mapper/CertificationAuditMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file