From 663f60782333bcda25e52fe8605d4f3c338ba98f Mon Sep 17 00:00:00 2001 From: lianjie111 <1046407070@qq.com> Date: Sat, 15 Nov 2025 10:18:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/model/dto/MarriageCodeDTO1.java | 28 ++++++++++++ .../client/controller/CommonController.java | 3 +- .../client/controller/MarriageController.java | 45 ++++++++++++------- .../client/controller/OcrController.java | 2 +- .../marriage/client/dto/OcrParseDTO.java | 1 - .../main/resources/config/application-dev.yml | 6 +-- 6 files changed, 64 insertions(+), 21 deletions(-) create mode 100644 com-core-model/src/main/java/com/jinrui/core/model/dto/MarriageCodeDTO1.java diff --git a/com-core-model/src/main/java/com/jinrui/core/model/dto/MarriageCodeDTO1.java b/com-core-model/src/main/java/com/jinrui/core/model/dto/MarriageCodeDTO1.java new file mode 100644 index 0000000..b026806 --- /dev/null +++ b/com-core-model/src/main/java/com/jinrui/core/model/dto/MarriageCodeDTO1.java @@ -0,0 +1,28 @@ +package com.jinrui.core.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class MarriageCodeDTO1 extends PageDTO implements Serializable { + + private String marriageNo;//结婚登记证号 + private String receiveName;//领取人姓名 + private String receiveMobile;//领取人手机号 + private String signImage;//领取人电子签名 + private String salesNo;//销售场所编号 + private String smsCode;//短信验证码 + private String dataTime;//数据日期2025-10 + + + +} diff --git a/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/CommonController.java b/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/CommonController.java index ac10ab7..4617c21 100644 --- a/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/CommonController.java +++ b/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/CommonController.java @@ -103,7 +103,8 @@ public class CommonController { } } - String verifyCode = RandomUtil.randomDigit(6); +// String verifyCode = RandomUtil.randomDigit(6); + String verifyCode = "123456"; SMSClient smsClient = new SMSClient(masterSecret, appKey); SMSPayload payload = SMSPayload.newBuilder() .setMobileNumber(mobile) diff --git a/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/MarriageController.java b/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/MarriageController.java index 703c495..67b76ea 100644 --- a/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/MarriageController.java +++ b/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/MarriageController.java @@ -9,7 +9,7 @@ import com.jinrui.assembly.utils.result.ResultObject; import com.jinrui.assembly.utils.result.ResultUtil; import com.jinrui.core.consts.RedisCacheKey; import com.jinrui.core.model.dto.MarriageCodeDTO; -import com.jinrui.core.model.dto.MarrigeLoginDTO; +import com.jinrui.core.model.dto.MarriageCodeDTO1; import com.jinrui.core.model.entity.MarriageCode; import com.jinrui.core.model.entity.MarriageSales; import com.jinrui.core.model.entity.MarriageActivity; @@ -149,7 +149,7 @@ public class MarriageController { } @PostMapping("/receiveCheck2") - public ResultObject receiveCheck2(@RequestBody MarriageCodeDTO dto) { + public ResultObject receiveCheck2(@RequestBody MarriageCodeDTO1 dto) { if (StringUtils.isBlank(dto.getMarriageNo())) { return ResultUtil.failedMessage("结婚证字号不能为空!"); } else { @@ -168,15 +168,23 @@ public class MarriageController { if (StringUtils.isBlank(dto.getReceiveMobile())) { return ResultUtil.failedMessage("领取人手机号不能为空!"); } + Date now = DateTimeUtil.now(); - if (StringUtils.isBlank(dto.getCode())) { - return ResultUtil.failedMessage("核验码不能为空!"); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MarriageActivity::getStatus, 0) + .le(MarriageActivity::getActivityStartTime, now) + .ge(MarriageActivity::getActivityEndTime, now) + .orderByDesc(MarriageActivity::getCreateTime) + .last("limit 1"); + MarriageActivity act = iMarriageActivityService.getOne(wrapper); + if (act == null) { + return ResultUtil.failed("活动已结束"); } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.and(wrap -> { wrap.or().eq(MarriageCode::getMarriageNo, dto.getMarriageNo()); wrap.or().eq(MarriageCode::getReceiveMobile, dto.getReceiveMobile()); - wrap.or().eq(MarriageCode::getCode, dto.getCode()); }); queryWrapper.orderByDesc(MarriageCode::getCreateTime); queryWrapper.last("limit 1"); @@ -194,21 +202,28 @@ public class MarriageController { } } + queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MarriageCode::getActivityId,act.getId()) + .isNull(MarriageCode::getMarriageNo); + queryWrapper.orderByDesc(MarriageCode::getCreateTime); + queryWrapper.last("limit 1"); + marriageCode = iMarriageCodeService.getOne(queryWrapper); + + marriageCode.setMarriageNo(dto.getMarriageNo()); + marriageCode.setMarriageNo(dto.getReceiveMobile()); + marriageCode.setReceiveMoney((int)(long)act.getMoney()); + marriageCode.setReceiveTime(new Date()); + marriageCode.setSalesNo(dto.getSalesNo()); + marriageCode.setReceiveName(dto.getReceiveName()); + iMarriageCodeService.saveOrUpdate(marriageCode); + + + String key = RedisCacheKey.VERICODE_MOBILE + "3-" + dto.getReceiveMobile(); String verifyCode = (String) redisCacheManager.getObject(RedisCacheKey.DBINDEX_DEFAULT, key); if (!StringUtils.equals(dto.getSmsCode(), verifyCode)) { return ResultUtil.failedMessage("验证码错误,请重新输入!"); } - Date now = DateTimeUtil.now(); - marriageCode = MarriageCode.builder() - .marriageNo(dto.getMarriageNo()) - .receiveName(dto.getReceiveName()) - .code(dto.getCode()) - .receiveMobile(dto.getReceiveMobile()) - .signImage(dto.getSignImage()) - .receiveTime(now) - .salesNo(dto.getSalesNo()) - .build(); MarriageCodeVO vo = new MarriageCodeVO(); BeanUtils.copyProperties(marriageCode, vo); return ResultUtil.success(vo); diff --git a/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/OcrController.java b/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/OcrController.java index 7276a91..b2b46c7 100644 --- a/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/OcrController.java +++ b/com-marriage-client/src/main/java/com/jinrui/marriage/client/controller/OcrController.java @@ -42,7 +42,7 @@ public class OcrController { @Value("${baidu.ocr.authUrl:https://aip.baidubce.com/oauth/2.0/token}") private String authUrl; - @Value("${baidu.ocr.generalUrl:https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic}") + @Value("${baidu.ocr.generalUrl:https://aip.baidubce.com/rest/2.0/ocr/v1/marriage_certificate}") private String generalUrl; @PostMapping("/upload") diff --git a/com-marriage-client/src/main/java/com/jinrui/marriage/client/dto/OcrParseDTO.java b/com-marriage-client/src/main/java/com/jinrui/marriage/client/dto/OcrParseDTO.java index b7392f7..38110f1 100644 --- a/com-marriage-client/src/main/java/com/jinrui/marriage/client/dto/OcrParseDTO.java +++ b/com-marriage-client/src/main/java/com/jinrui/marriage/client/dto/OcrParseDTO.java @@ -8,4 +8,3 @@ public class OcrParseDTO { private String smsCode; private String uploadId; } - diff --git a/com-marriage-client/src/main/resources/config/application-dev.yml b/com-marriage-client/src/main/resources/config/application-dev.yml index 3ddb09f..8f70d53 100644 --- a/com-marriage-client/src/main/resources/config/application-dev.yml +++ b/com-marriage-client/src/main/resources/config/application-dev.yml @@ -78,8 +78,8 @@ token: # 百度OCR配置(请在部署环境中设置实际值,不要提交密钥) baidu: ocr: - appId: ${BAIDU_OCR_APP_ID:} - apiKey: ${BAIDU_OCR_API_KEY:} - secretKey: ${BAIDU_OCR_SECRET_KEY:} + appId: ${BAIDU_OCR_APP_ID:120787041} + apiKey: ${BAIDU_OCR_API_KEY:nQnKdxJZJs6UycitAauLMcUW} + secretKey: ${BAIDU_OCR_SECRET_KEY:HTEVDoN3mN5J8usjAABt9k8euZ5cPJyr} # 存储上传的结婚证图片目录 storagePath: ${OCR_STORAGE_PATH:data/ocr}