## Fix - 【H5】扫码注册和注册专区注册,没有限制一个手机号的注册次数,也没有限制手机号一样姓名不一样的情况 [http://47.94.148.201:8081/index.php?m=bug&f=view&bugID=388]

This commit is contained in:
sangelxiu1 2025-09-19 08:48:39 +08:00
parent f45a4f3e23
commit 769164a79a
6 changed files with 51 additions and 0 deletions

View File

@ -356,4 +356,12 @@ public interface IMemberServiceApi {
*/ */
R<String> checkRegisterRelation(String phone, String parentCode); R<String> checkRegisterRelation(String phone, String parentCode);
/**
* 获取手机号数量
*
* @param phone 联系方式
* @return 返回为null则正常否则则错误信息
*/
R<Integer> getMemberPhoneCount(String phone);
} }

View File

@ -351,5 +351,9 @@ public class MemberServiceProvider implements IMemberServiceApi {
public R<String> checkRegisterRelation(String phone, String parentCode) { public R<String> checkRegisterRelation(String phone, String parentCode) {
return R.ok(iCuMemberService.checkRegisterRelation(phone, parentCode)); return R.ok(iCuMemberService.checkRegisterRelation(phone, parentCode));
} }
@Override
public R<Integer> getMemberPhoneCount(String phone){
return R.ok(iCuMemberService.getMemberPhoneCount(phone));
}
} }

View File

@ -871,4 +871,11 @@ public interface ICuMemberService extends IService<CuMember> {
* @return * @return
*/ */
CuMemberExt queryFansOrder(String orderCode); CuMemberExt queryFansOrder(String orderCode);
/**
* 获取手机号数量
* @param phone
* @return
*/
Integer getMemberPhoneCount(String phone);
} }

View File

@ -3268,4 +3268,12 @@ public class CuMemberServiceImpl extends ServiceImpl<CuMemberMapper, CuMember> i
public CuMemberExt queryFansOrder(String orderCode) { public CuMemberExt queryFansOrder(String orderCode) {
return baseMapper.queryFansOrder(orderCode); return baseMapper.queryFansOrder(orderCode);
} }
@Override
public Integer getMemberPhoneCount(String phone) {
LambdaQueryWrapper<CuMember> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CuMember::getDelFlag, EDelFlag.UN_DELETE.getValue());
wrapper.eq(CuMember::getPhone, phone);
return baseMapper.selectCount(wrapper);
}
} }

View File

@ -293,6 +293,12 @@ public class ApiRetailOrderController {
@PostMapping("/confirm-reg-order") @PostMapping("/confirm-reg-order")
public AjaxResult confirmRegisterOrder(@Valid @RequestBody RetailOrderRegisterParam registerParam, public AjaxResult confirmRegisterOrder(@Valid @RequestBody RetailOrderRegisterParam registerParam,
@RequestHeader("Source") Integer source) { @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); registerParam.setSource(source);
// 会员ID // 会员ID
@ -322,6 +328,13 @@ public class ApiRetailOrderController {
// 确认订单 // 确认订单
String str = iRetailOrderService.confirmRegOrder(registerParam, gradeList); 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()); return confirmOrderReturn(str, registerParam.getPkCreator(), registerParam.getShopList(), registerParam.getOrderCode());
} }
@ -704,6 +717,12 @@ public class ApiRetailOrderController {
@PostMapping("/fans-confirm-order") @PostMapping("/fans-confirm-order")
public AjaxResult fansConfirmOrder(@RequestBody RetailOrderRegisterParam registerParam, public AjaxResult fansConfirmOrder(@RequestBody RetailOrderRegisterParam registerParam,
@RequestHeader("Source") Integer source) { @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); registerParam.setSource(source);
// 会员ID // 会员ID

View File

@ -33,4 +33,9 @@ public class RetailConstants {
*/ */
public static final BigDecimal SPECIAL_AREA_41_MAX_ORDER_AMOUNT = new BigDecimal("20000"); public static final BigDecimal SPECIAL_AREA_41_MAX_ORDER_AMOUNT = new BigDecimal("20000");
/**
* 注册是否限制手机号重复
*/
public static final boolean LIMIT_TO_REG_PHONE_NUMBER = true;
} }