feat(customer):新增管理端审核服务人员/机构的功能
This commit is contained in:
parent
8c387f3649
commit
1b68988c9a
@ -1,13 +1,13 @@
|
||||
package com.jzo2o.customer.controller.operation;
|
||||
|
||||
import com.jzo2o.common.expcetions.ForbiddenOperationException;
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.customer.enums.CertificationStatusEnum;
|
||||
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 org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@ -21,8 +21,29 @@ public class AgencyCertificationAuditController {
|
||||
@Resource
|
||||
private ICertificationAuditService certificationAuditService;
|
||||
|
||||
/**
|
||||
* 分页查询机构认证的记录
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
public PageResult<AgencyCertificationAuditResDTO> page(AgencyCertificationAuditPageQueryReqDTO agencyCertificationAuditPageQueryReqDTO) {
|
||||
return certificationAuditService.getAgencyCertificationInfo(agencyCertificationAuditPageQueryReqDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核机构认证信息
|
||||
* @param id 认证记录id
|
||||
* @param certificationStatus 认证状态
|
||||
* @param rejectReason 拒绝原因
|
||||
*/
|
||||
@PutMapping("/audit/{id}")
|
||||
public void audit(@PathVariable Long id,
|
||||
@RequestParam Integer certificationStatus,
|
||||
@RequestParam(required = false) String rejectReason) {
|
||||
if (certificationStatus != CertificationStatusEnum.SUCCESS.getStatus()
|
||||
&& certificationStatus != CertificationStatusEnum.FAIL.getStatus()) {
|
||||
throw new ForbiddenOperationException("更新的认证状态有误无法认证");
|
||||
} else {
|
||||
certificationAuditService.audit(id, certificationStatus, rejectReason);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,13 +1,13 @@
|
||||
package com.jzo2o.customer.controller.operation;
|
||||
|
||||
import com.jzo2o.common.expcetions.ForbiddenOperationException;
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.customer.enums.CertificationStatusEnum;
|
||||
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 org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@ -21,8 +21,29 @@ public class WorkerCertificationAuditController {
|
||||
@Resource
|
||||
private ICertificationAuditService certificationAuditService;
|
||||
|
||||
/**
|
||||
* 分页查询服务人员认证的记录
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
public PageResult<WorkerCertificationAuditResDTO> page(WorkerCertificationAuditPageQueryReqDTO workerCertificationAuditPageQueryReqDTO) {
|
||||
return certificationAuditService.getWorkerCertificationInfo(workerCertificationAuditPageQueryReqDTO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核服务人员认证信息
|
||||
* @param id 认证记录id
|
||||
* @param certificationStatus 认证状态
|
||||
* @param rejectReason 拒绝原因
|
||||
*/
|
||||
@PutMapping("/audit/{id}")
|
||||
public void audit(@PathVariable Long id,
|
||||
@RequestParam Integer certificationStatus,
|
||||
@RequestParam(required = false) String rejectReason) {
|
||||
if (certificationStatus != CertificationStatusEnum.SUCCESS.getStatus()
|
||||
&& certificationStatus != CertificationStatusEnum.FAIL.getStatus()) {
|
||||
throw new ForbiddenOperationException("更新的认证状态有误无法认证");
|
||||
} else {
|
||||
certificationAuditService.audit(id, certificationStatus, rejectReason);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
package com.jzo2o.customer.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 审核状态枚举类
|
||||
* @author JIAN
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum AuditStatusEnum {
|
||||
UNAUDITED(0, "未审核"),
|
||||
AUDITED(1, "已审核");
|
||||
|
||||
/**
|
||||
* 状态值
|
||||
*/
|
||||
private final int status;
|
||||
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private final String description;
|
||||
}
|
||||
@ -44,4 +44,9 @@ public interface ICertificationAuditService extends IService<CertificationAudit>
|
||||
* 获取机构端认证消息
|
||||
*/
|
||||
PageResult<AgencyCertificationAuditResDTO> getAgencyCertificationInfo(AgencyCertificationAuditPageQueryReqDTO pageQueryReqDTO);
|
||||
|
||||
/**
|
||||
* 审核认证是否通过
|
||||
*/
|
||||
void audit(Long id, Integer certificationStatus, String rejectReason);
|
||||
}
|
||||
@ -2,13 +2,17 @@ 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.conditions.update.LambdaUpdateChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.baomidou.mybatisplus.extension.toolkit.ChainWrappers;
|
||||
import com.jzo2o.common.constants.UserType;
|
||||
import com.jzo2o.common.expcetions.ForbiddenOperationException;
|
||||
import com.jzo2o.common.model.CurrentUserInfo;
|
||||
import com.jzo2o.common.model.PageResult;
|
||||
import com.jzo2o.common.utils.CollUtils;
|
||||
import com.jzo2o.common.utils.ObjectUtils;
|
||||
import com.jzo2o.customer.enums.AuditStatusEnum;
|
||||
import com.jzo2o.customer.enums.CertificationStatusEnum;
|
||||
import com.jzo2o.customer.mapper.AgencyCertificationMapper;
|
||||
import com.jzo2o.customer.mapper.CertificationAuditMapper;
|
||||
@ -32,6 +36,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -184,4 +189,89 @@ public class CertificationAuditServiceImpl extends ServiceImpl<CertificationAudi
|
||||
target.setLegalPersonIdCardNo(origin.getIdCardNo());
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void audit(Long id, Integer certificationStatus, String rejectReason) {
|
||||
CertificationAudit certificationAudit = baseMapper.selectById(id);
|
||||
if (ObjectUtils.isEmpty(certificationAudit)) {
|
||||
throw new ForbiddenOperationException("认证记录不存在无法操作");
|
||||
}
|
||||
|
||||
CurrentUserInfo currentUserInfo = UserContext.currentUser();
|
||||
if (ObjectUtils.isEmpty(currentUserInfo) || ObjectUtils.isEmpty(currentUserInfo.getId())) {
|
||||
throw new ForbiddenOperationException("无法获取当前用户信息");
|
||||
}
|
||||
|
||||
// 准备公共更新部分
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
certificationAudit.setCertificationStatus(certificationStatus);
|
||||
LambdaUpdateChainWrapper<CertificationAudit> updateChainWrapper = lambdaUpdate()
|
||||
.eq(CertificationAudit::getId, id)
|
||||
.set(CertificationAudit::getAuditStatus, AuditStatusEnum.AUDITED.getStatus())
|
||||
.set(CertificationAudit::getAuditTime, now)
|
||||
.set(CertificationAudit::getAuditorId, currentUserInfo.getId())
|
||||
.set(CertificationAudit::getAuditorName, currentUserInfo.getName())
|
||||
.set(CertificationAudit::getCertificationStatus, certificationStatus);
|
||||
|
||||
Long serveProviderId = certificationAudit.getServeProviderId();
|
||||
if (certificationStatus == CertificationStatusEnum.FAIL.getStatus()) {
|
||||
// 认证失败
|
||||
updateChainWrapper
|
||||
.set(CertificationAudit::getRejectReason, rejectReason)
|
||||
.update();
|
||||
|
||||
if (certificationAudit.getServeProviderType() == UserType.WORKER) {
|
||||
// 服务人员认证失败
|
||||
workerCertificationMapper.updateById(WorkerCertification.builder()
|
||||
.id(serveProviderId)
|
||||
.certificationStatus(certificationStatus)
|
||||
.certificationTime(now).build());
|
||||
} else {
|
||||
// 机构认证失败
|
||||
agencyCertificationMapper.updateById(AgencyCertification.builder()
|
||||
.id(serveProviderId)
|
||||
.certificationStatus(certificationStatus)
|
||||
.certificationTime(now).build());
|
||||
}
|
||||
|
||||
} else {
|
||||
// 认证成功
|
||||
updateChainWrapper
|
||||
.update();
|
||||
|
||||
String name;
|
||||
if (certificationAudit.getServeProviderType() == UserType.WORKER) {
|
||||
// 服务人员认证成功
|
||||
workerCertificationMapper.updateById(WorkerCertification.builder()
|
||||
.id(serveProviderId)
|
||||
.name(certificationAudit.getName())
|
||||
.idCardNo(certificationAudit.getIdCardNo())
|
||||
.frontImg(certificationAudit.getFrontImg())
|
||||
.backImg(certificationAudit.getBackImg())
|
||||
.certificationMaterial(certificationAudit.getCertificationMaterial())
|
||||
.certificationStatus(certificationStatus)
|
||||
.certificationTime(now).build());
|
||||
name = certificationAudit.getName();
|
||||
} else {
|
||||
// 机构认证成功
|
||||
agencyCertificationMapper.updateById(AgencyCertification.builder()
|
||||
.id(serveProviderId)
|
||||
.name(certificationAudit.getInstitutionName())
|
||||
.idNumber(certificationAudit.getIdNumber())
|
||||
.legalPersonName(certificationAudit.getName())
|
||||
.legalPersonIdCardNo(certificationAudit.getIdCardNo())
|
||||
.businessLicense(certificationAudit.getBusinessLicense())
|
||||
.certificationStatus(certificationStatus)
|
||||
.certificationTime(now).build());
|
||||
name = certificationAudit.getInstitutionName();
|
||||
}
|
||||
|
||||
// 更新总表中的姓名/机构名称
|
||||
ChainWrappers.lambdaUpdateChain(serveProviderMapper)
|
||||
.eq(ServeProvider::getId, serveProviderId)
|
||||
.set(ServeProvider::getName, name)
|
||||
.update();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user