diff --git a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java index f216f4f4..4bed9fa0 100644 --- a/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java +++ b/bd-api/bd-api-member/src/main/java/com/hzs/member/base/IMemberServiceApi.java @@ -356,4 +356,12 @@ public interface IMemberServiceApi { */ R checkRegisterRelation(String phone, String parentCode); + + /** + * 获取手机号数量 + * + * @param phone 联系方式 + * @return 返回为null则正常,否则则错误信息 + */ + R getMemberPhoneCount(String phone); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java index 50a00a47..cddd62da 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/provider/MemberServiceProvider.java @@ -351,5 +351,9 @@ public class MemberServiceProvider implements IMemberServiceApi { public R checkRegisterRelation(String phone, String parentCode) { return R.ok(iCuMemberService.checkRegisterRelation(phone, parentCode)); } + @Override + public R getMemberPhoneCount(String phone){ + return R.ok(iCuMemberService.getMemberPhoneCount(phone)); + } } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java index 777c21a1..b51f25ed 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/ICuMemberService.java @@ -871,4 +871,11 @@ public interface ICuMemberService extends IService { * @return */ CuMemberExt queryFansOrder(String orderCode); + + /** + * 获取手机号数量 + * @param phone + * @return + */ + Integer getMemberPhoneCount(String phone); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java index 38f59014..a0b7bf33 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/member/base/service/impl/CuMemberServiceImpl.java @@ -3268,4 +3268,12 @@ public class CuMemberServiceImpl extends ServiceImpl i public CuMemberExt queryFansOrder(String orderCode) { return baseMapper.queryFansOrder(orderCode); } + + @Override + public Integer getMemberPhoneCount(String phone) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(CuMember::getDelFlag, EDelFlag.UN_DELETE.getValue()); + wrapper.eq(CuMember::getPhone, phone); + return baseMapper.selectCount(wrapper); + } } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java index adfe8a7e..0092efb0 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/retail/sale/controller/api/ApiRetailOrderController.java @@ -293,6 +293,12 @@ public class ApiRetailOrderController { @PostMapping("/confirm-reg-order") public AjaxResult confirmRegisterOrder(@Valid @RequestBody RetailOrderRegisterParam registerParam, @RequestHeader("Source") Integer source) { + if(RetailConstants.LIMIT_TO_REG_PHONE_NUMBER){ + Integer phoneCount = iMemberServiceApi.getMemberPhoneCount(registerParam.getPhone()).getData(); + if(phoneCount > 0){ + return AjaxResult.error("已注册相同的手机号码,不允许重复注册!"); + } + } // 设置数据来源 registerParam.setSource(source); // 会员ID @@ -322,6 +328,13 @@ public class ApiRetailOrderController { // 确认订单 String str = iRetailOrderService.confirmRegOrder(registerParam, gradeList); + // redis 拿金额 + SaOrderExt saOrder = redisService.getCacheObject(CacheConstants.RETAIL_TEMP_ORDER + registerParam.getPkCreator() + registerParam.getOrderCode()); + if (ESpecialArea.RETAIL_REGISTER.getValue() == registerParam.getSpecialArea() && saOrder.getOrderAmount().compareTo(RetailConstants.SPECIAL_AREA_41_MAX_ORDER_AMOUNT) > 0) { + redisService.deleteObject(CacheConstants.RETAIL_TEMP_ORDER + registerParam.getPkCreator() + registerParam.getOrderCode()); + return AjaxResult.error("订单金额超过" + RetailConstants.SPECIAL_AREA_41_MAX_ORDER_AMOUNT + "上限"); + } + return confirmOrderReturn(str, registerParam.getPkCreator(), registerParam.getShopList(), registerParam.getOrderCode()); } @@ -704,6 +717,12 @@ public class ApiRetailOrderController { @PostMapping("/fans-confirm-order") public AjaxResult fansConfirmOrder(@RequestBody RetailOrderRegisterParam registerParam, @RequestHeader("Source") Integer source) { + if(RetailConstants.LIMIT_TO_REG_PHONE_NUMBER){ + Integer phoneCount = iMemberServiceApi.getMemberPhoneCount(registerParam.getPhone()).getData(); + if(phoneCount > 0){ + return AjaxResult.error("已注册相同的手机号码,不允许重复注册!"); + } + } // 设置数据来源 registerParam.setSource(source); // 会员ID diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java index 2e30449f..bd812a63 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/RetailConstants.java @@ -33,4 +33,9 @@ public class RetailConstants { */ public static final BigDecimal SPECIAL_AREA_41_MAX_ORDER_AMOUNT = new BigDecimal("20000"); + /** + * 注册是否限制手机号重复 + */ + public static final boolean LIMIT_TO_REG_PHONE_NUMBER = true; + }