|
|
@@ -679,6 +679,10 @@ public class MaTechnicianServiceImpl extends ServiceImpl<MaTechnicianMapper, MaT
|
|
|
if (dto.getAuditStatus() == AUDIT_REJECTED && StringUtils.isBlank(auditRemark)) {
|
|
|
throw new ServiceException("审核驳回时审核备注不能为空");
|
|
|
}
|
|
|
+ // 审核通过时,身份证到期日期、健康证到期日期、资格证到期日期不能为空
|
|
|
+ if (dto.getAuditStatus() == AUDIT_APPROVED && (dto.getIdCardExpirationDate() == null || dto.getHealthCertificateExpirationDate() == null || dto.getQualificationCertificateExpirationDate() == null)) {
|
|
|
+ throw new ServiceException("审核通过时,身份证到期日期、健康证到期日期、资格证到期日期不能为空");
|
|
|
+ }
|
|
|
if (auditRemark.length() > AUDIT_REMARK_MAX_LENGTH) {
|
|
|
throw new ServiceException("审核备注长度不能超过" + AUDIT_REMARK_MAX_LENGTH + "个字符");
|
|
|
}
|
|
|
@@ -696,6 +700,9 @@ public class MaTechnicianServiceImpl extends ServiceImpl<MaTechnicianMapper, MaT
|
|
|
maTechnician.setId(id);
|
|
|
//设置审核状态
|
|
|
maTechnician.setAuditStatus(dto.getAuditStatus());
|
|
|
+ maTechnician.setIdCardExpirationDate(dto.getIdCardExpirationDate());
|
|
|
+ maTechnician.setHealthCertificateExpirationDate(dto.getHealthCertificateExpirationDate());
|
|
|
+ maTechnician.setQualificationCertificateExpirationDate(dto.getQualificationCertificateExpirationDate());
|
|
|
maTechnician.setAuditRemark(auditRemark);
|
|
|
maTechnician.setApproveTime(DateUtils.getNowDate());
|
|
|
if (loginUser != null && loginUser.getUser() != null) {
|
|
|
@@ -724,64 +731,41 @@ public class MaTechnicianServiceImpl extends ServiceImpl<MaTechnicianMapper, MaT
|
|
|
LambdaQueryWrapper<MerchantApplyFile> queryWrapper = Wrappers.lambdaQuery();
|
|
|
queryWrapper.eq(MerchantApplyFile::getMerchantId, id);
|
|
|
List<MerchantApplyFile> merchantApplyFiles = merchantApplyFileMapper.selectList(queryWrapper);
|
|
|
- if (merchantApplyFiles == null) {
|
|
|
- throw new ServiceException("商户不存在或已删除");
|
|
|
- }
|
|
|
MaTechnicianCertificateVO certificate = new MaTechnicianCertificateVO();
|
|
|
- certificate.setMerchantId(merchantApplyFiles.get(0).getMerchantId());
|
|
|
- merchantApplyFiles.forEach(merchant -> {
|
|
|
- certificate.setAvatar(typeFIleUrl(merchant, PORTRAIT.getCode()));
|
|
|
- // 生活照(可能有多张)
|
|
|
- certificate.setLifePhotos(typeFIleUrl1(merchant, LIFE_PHOTO.getCode()));
|
|
|
- certificate.setPromotionVideo(typeFIleUrl(merchant, PROMOTION_VIDEO.getCode()));
|
|
|
- certificate.setIdCardFrout(typeFIleUrl(merchant, ID_CARD_FRONT.getCode()));
|
|
|
- certificate.setIdCardBack(typeFIleUrl(merchant, ID_CARD_BACK.getCode()));
|
|
|
- certificate.setIdCardHandheld(typeFIleUrl(merchant, ID_CARD_HANDHELD.getCode()));
|
|
|
- certificate.setHealthCertificate(typeFIleUrl(merchant, HEALTH_CERT.getCode()));
|
|
|
- certificate.setQualificationCertificate(typeFIleUrl(merchant, QUALIFICATION_CERT.getCode()));
|
|
|
- certificate.setNoCrimeRecord(typeFIleUrl(merchant, NO_CRIME_RECORD.getCode()));
|
|
|
- certificate.setCommitmentPdf(typeFIleUrl(merchant, COMMITMENT_LETTER.getCode()));
|
|
|
- certificate.setCommitmentAudio(typeFIleUrl(merchant, COMMITMENT_AUDIO.getCode()));
|
|
|
- certificate.setCommitmentVideo(typeFIleUrl(merchant, COMMITMENT_VIDEO.getCode()));
|
|
|
- });
|
|
|
+ certificate.setMerchantId(id);
|
|
|
+
|
|
|
+ Map<String, List<String>> fileUrlsByType = CollectionUtils.isEmpty(merchantApplyFiles)
|
|
|
+ ? Collections.emptyMap()
|
|
|
+ : merchantApplyFiles.stream()
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .filter(file -> StringUtils.isNotBlank(file.getFileType()) && StringUtils.isNotBlank(file.getFileUrl()))
|
|
|
+ .collect(Collectors.groupingBy(MerchantApplyFile::getFileType,
|
|
|
+ Collectors.mapping(MerchantApplyFile::getFileUrl, Collectors.toList())));
|
|
|
+
|
|
|
+ certificate.setAvatar(getCertificateFileUrls(fileUrlsByType, PORTRAIT.getCode()));
|
|
|
+ certificate.setLifePhotos(getCertificateFileUrls(fileUrlsByType, LIFE_PHOTO.getCode()));
|
|
|
+ certificate.setPromotionVideo(getCertificateFileUrls(fileUrlsByType, PROMOTION_VIDEO.getCode()));
|
|
|
+ certificate.setIdCardFrout(getCertificateFileUrls(fileUrlsByType, ID_CARD_FRONT.getCode()));
|
|
|
+ certificate.setIdCardBack(getCertificateFileUrls(fileUrlsByType, ID_CARD_BACK.getCode()));
|
|
|
+ certificate.setIdCardHandheld(getCertificateFileUrls(fileUrlsByType, ID_CARD_HANDHELD.getCode()));
|
|
|
+ certificate.setHealthCertificate(getCertificateFileUrls(fileUrlsByType, HEALTH_CERT.getCode()));
|
|
|
+ certificate.setQualificationCertificate(getCertificateFileUrls(fileUrlsByType, QUALIFICATION_CERT.getCode()));
|
|
|
+ certificate.setNoCrimeRecord(getCertificateFileUrls(fileUrlsByType, NO_CRIME_RECORD.getCode()));
|
|
|
+ certificate.setCommitmentPdf(getCertificateFileUrls(fileUrlsByType, COMMITMENT_LETTER.getCode()));
|
|
|
+ certificate.setCommitmentAudio(getCertificateFileUrls(fileUrlsByType, COMMITMENT_AUDIO.getCode()));
|
|
|
+ certificate.setCommitmentVideo(getCertificateFileUrls(fileUrlsByType, COMMITMENT_VIDEO.getCode()));
|
|
|
return certificate;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 获取商户证照文件URL
|
|
|
- *
|
|
|
- * @param merchant 商户证照
|
|
|
- * @param type 文件类型
|
|
|
- * @return 文件URL列表
|
|
|
- */
|
|
|
- private String typeFIleUrl(MerchantApplyFile merchantApplyFile, String type) {
|
|
|
- LambdaQueryWrapper<MerchantApplyFile> queryWrapper1 = Wrappers.lambdaQuery();
|
|
|
- queryWrapper1.eq(MerchantApplyFile::getMerchantId, merchantApplyFile.getMerchantId());
|
|
|
- queryWrapper1.eq(MerchantApplyFile::getFileType, type);
|
|
|
- List<MerchantApplyFile> merchantApplyFiles = merchantApplyFileMapper.selectList(queryWrapper1);
|
|
|
- if (merchantApplyFiles == null || merchantApplyFiles.isEmpty()) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- return merchantApplyFiles.get(0).getFileUrl();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取商户证照文件URL
|
|
|
+ * 获取指定证照类型的全部文件URL
|
|
|
*
|
|
|
- * @param merchant 商户证照
|
|
|
- * @param type 文件类型
|
|
|
+ * @param fileUrlsByType 文件类型与URL列表映射
|
|
|
+ * @param type 文件类型
|
|
|
* @return List<String> 文件URL列表
|
|
|
*/
|
|
|
- private List<String> typeFIleUrl1(MerchantApplyFile merchantApplyFile, String type) {
|
|
|
- LambdaQueryWrapper<MerchantApplyFile> queryWrapper1 = Wrappers.lambdaQuery();
|
|
|
- queryWrapper1.eq(MerchantApplyFile::getMerchantId, merchantApplyFile.getMerchantId());
|
|
|
- queryWrapper1.eq(MerchantApplyFile::getFileType, type);
|
|
|
- List<MerchantApplyFile> merchantApplyFiles = merchantApplyFileMapper.selectList(queryWrapper1);
|
|
|
- if (merchantApplyFiles == null || merchantApplyFiles.isEmpty()) {
|
|
|
- return null;
|
|
|
- }
|
|
|
- return merchantApplyFiles.stream().map(MerchantApplyFile::getFileUrl).collect(Collectors.toList());
|
|
|
+ private List<String> getCertificateFileUrls(Map<String, List<String>> fileUrlsByType, String type) {
|
|
|
+ return fileUrlsByType.getOrDefault(type, Collections.emptyList());
|
|
|
}
|
|
|
|
|
|
/**
|