From d9765e1b0285098738e03f377f48bcb4da6b890b Mon Sep 17 00:00:00 2001 From: winter <664946893@qq.com> Date: Mon, 29 May 2023 13:34:54 +0800 Subject: [PATCH] fix --- .../iformall/controller/WxInfoController.java | 1 + .../controller/WxMerchantBUserController.java | 55 ++++++++++++++----- .../iformall/common/SysConfigConstant.java | 1 + 3 files changed, 44 insertions(+), 13 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java index b8235eccf..86696f3aa 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java @@ -156,6 +156,7 @@ public class WxInfoController extends BaseController { //处理登陆用户 cUser = cuserFactory.getBUserService(appPlat).handleLoginUser(cUser,null); resultMap.put("token", cUser.getToken()); + resultMap.put("up", cUser.getPhone()); // request.setAttribute(Constant.LOGIN_USER_KEY, cUser.getId()); // request.setAttribute(Constant.TENANT_ID, buUser.getTenantId()); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java index d17e459f3..413f003e5 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMerchantBUserController.java @@ -7,12 +7,15 @@ import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.common.SysConfigConstant; import com.iformall.domain.po.*; import com.iformall.domain.vo.WxMerchantBuInfoVo; import com.iformall.enums.EnumCreditLockedStatus; import com.iformall.enums.EnumEnableType; import com.iformall.enums.EnumMerchantBUserStatus; import com.iformall.enums.EnumMerchantStatus; +import com.iformall.enums.EnumYesOrNo; +import com.iformall.exception.MallinkException; import com.iformall.service.*; import com.iformall.utils.Constant; import com.iformall.utils.HashUtil; @@ -62,6 +65,9 @@ public class WxMerchantBUserController extends BaseController { @Autowired private WxAppinfoService wxAppinfoService; + @Autowired + private SysConfigService sysConfigService; + @RedisCache @ApiOperation("查寻当bUser详情接口") @@ -129,6 +135,7 @@ public class WxMerchantBUserController extends BaseController { @ApiOperation(value = "用户登录", notes = "{" + "\"appId\":\"string\"," + "\"phone\":\"string\",\"password\":\"string\"," + + "\"up\":\"string\","+ "\"latitude\":\"string\",\"longitude\":\"string\"}") public ResultData userLogin(@RequestBody Map map) { logger.debug(map.toString()); @@ -138,6 +145,8 @@ public class WxMerchantBUserController extends BaseController { String password = map.get("password"); String latitude = map.get("latitude"); String longitude = map.get("longitude"); + //当前登陆人的授权手机号 + String userPhone = map.get("up"); //登录凭证不能为空 if (StringUtils.isBlank(phone)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "手机号不能为空"); @@ -176,12 +185,12 @@ public class WxMerchantBUserController extends BaseController { ResultData merchantStatus = checkMerchantStatus(orgUser); if (merchantStatus != null) return merchantStatus; -// try { -// wxMerchantBUserService.saveOrUpdate(orgUser); -// } catch (Exception e) { -// logger.error("B端用户更新用户信息失败, e:" + e.getMessage()); -// return new ResultData(ErrorCode.DB_FAIL.getCode(), "数据库保存失败,e:" + e.getMessage()); -// } + try { + checkLoginUserPhone(orgUser, userPhone); + }catch(Exception e) { + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); + } + Map resultMap = new HashMap<>(); resultMap.put("bUserId", orgUser.getId()); resultMap.put("logined", true); @@ -221,17 +230,38 @@ public class WxMerchantBUserController extends BaseController { return new ResultData(ErrorCode.USER_IS_EMPTY); } } + + private void checkLoginUserPhone(WxMerchantBUser orgUser,String userPhone) throws Exception { + if (StringUtils.isBlank(userPhone) || "undefined".equals(userPhone.toLowerCase())) { + return; + } + SysConfig config = sysConfigService.getByKey(SysConfigConstant.merchant_Login_CheckPhone, orgUser); + if (null != config ) { + String v = config.getConfigItemValue(); + if (!StringUtils.isBlank(v)) { + Integer iv = Integer.parseInt(v); + if (iv.intValue() == EnumYesOrNo.YES.getCode().intValue()) { + //校验当前登陆人的授权手机号和账号手机号是否一致 + if (!userPhone.equals(orgUser.getPhone())) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"当前用户授权手机号非登录账号,不允许登录"); + } + } + } + } + } @TenantIgnore @AuthIgnore @PostMapping("/selectMerchant") @ApiOperation(value = "选择商户", notes = "{" + "\"buUserId\":\"string\"," + + "\"up\":\"string\","+ "\"merchantId\":\"string\"}") public ResultData selectMerchant(@RequestBody Map map) { String buUserIdStr = map.get("buUserId"); String merchantIdStr = map.get("merchantId"); - + //当前登陆人的授权手机号 + String userPhone = map.get("up"); if (StringUtils.isBlank(buUserIdStr)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "buUserId不能为空"); } @@ -248,12 +278,11 @@ public class WxMerchantBUserController extends BaseController { if (orgUser != null) { ResultData merchantStatus = checkMerchantStatus(orgUser); if (merchantStatus != null) return merchantStatus; -// try { -// wxMerchantBUserService.saveOrUpdate(orgUser); -// } catch (Exception e) { -// logger.error("B端用户更新用户信息失败, e:" + e.getMessage()); -// return new ResultData(ErrorCode.DB_FAIL.getCode(), "数据库保存失败,e:" + e.getMessage()); -// } + try { + checkLoginUserPhone(orgUser, userPhone); + }catch(Exception e) { + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); + } Map resultMap = new HashMap<>(); resultMap.put("bUserId", orgUser.getId()); resultMap.put("logined", true); diff --git a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java index 5326e197b..220c4e39a 100644 --- a/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java +++ b/mallinkService/src/main/java/com/iformall/common/SysConfigConstant.java @@ -9,5 +9,6 @@ public class SysConfigConstant { public static final String coupon_list_show_selled = "couponListShowSelled"; public static final String member_seconds_key="memberSeconds"; public static final String merchant_credit_locked="merchantCreditLocked"; + public static final String merchant_Login_CheckPhone = "merchantLoginCheckPhone"; }