diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java index a9d1f3217..f5b558e27 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java @@ -17,6 +17,7 @@ import com.jsowell.pile.domain.MemberPlateNumberRelation; import com.jsowell.pile.dto.*; import com.jsowell.pile.service.IMemberBasicInfoService; import com.jsowell.pile.service.IMemberPlateNumberRelationService; +import com.jsowell.pile.service.IPileMerchantInfoService; import com.jsowell.pile.vo.base.MemberWalletVO; import com.jsowell.pile.vo.uniapp.InvoiceTitleVO; import com.jsowell.pile.vo.uniapp.MemberVO; @@ -44,6 +45,9 @@ public class MemberController extends BaseController { @Autowired private IMemberBasicInfoService memberBasicInfoService; + @Autowired + private IPileMerchantInfoService pileMerchantInfoService; + @Autowired private IMemberPlateNumberRelationService memberPlateNumberRelationService; @@ -80,6 +84,14 @@ public class MemberController extends BaseController { logger.info("会员登录注册接口 param:{}", JSONObject.toJSONString(dto)); RestApiResponse response = null; try { + String appId = request.getHeader("appId"); + if (StringUtils.isNotBlank(appId)) { + String firstLevelMerchantId = pileMerchantInfoService.getFirstLevelMerchantIdByAppId(appId); + if (StringUtils.isNotBlank(firstLevelMerchantId)) { + dto.setMerchantId(firstLevelMerchantId); + } + } + // 执行登录(查这个手机号在后台有没有数据,如果没有就静默注册) String memberToken = memberService.memberRegisterAndLogin(dto); diff --git a/jsowell-admin/src/main/java/com/jsowell/service/AgentDevService.java b/jsowell-admin/src/main/java/com/jsowell/service/AgentDevService.java index 5ecc66bff..19786245e 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/AgentDevService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/AgentDevService.java @@ -14,13 +14,11 @@ import com.jsowell.common.util.wxplatform.WXXmlToMapUtil; import com.jsowell.pile.domain.agentDev.AuditItem; import com.jsowell.pile.domain.agentDev.CategoryInfo; import com.jsowell.pile.domain.agentDev.UserInfoSetting; -import com.jsowell.pile.dto.WechatLoginDTO; import com.jsowell.pile.dto.agentDev.*; import com.jsowell.pile.service.IPileMerchantInfoService; import com.jsowell.pile.vo.agentDev.AuthInfoVO; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; -import org.aspectj.weaver.ast.Var; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -633,10 +631,10 @@ public class AgentDevService { // 获取openId String openId = getOpenIdByCode(dto.getOpenIdCode(), appId); // 通过 appid 查询 merchantId - String merchantId = pileMerchantInfoService.getFirstLevelMerchantIdByAppId(appId); - logger.info("微信一键登录 获取merchantId:{}", merchantId); + String firstLevelMerchantId = pileMerchantInfoService.getFirstLevelMerchantIdByAppId(appId); + logger.info("微信一键登录 获取merchantId:{}", firstLevelMerchantId); // 下面方法有判断 merchantId 是否为空,因此可直接传值 - return memberService.memberRegisterAndLogin(phoneNumber, merchantId, openId); + return memberService.memberRegisterAndLogin(phoneNumber, firstLevelMerchantId, openId); } /** diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index 0ac1f07d1..eb8852f20 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -134,21 +134,21 @@ public class MemberService { /** * 公共登陆注册方法 * @param phoneNumber 手机号 - * @param merchantId 商户id + * @param firstLevelMerchantId 商户id * @return token返给前端 */ - protected String memberRegisterAndLogin(String phoneNumber, String merchantId, String openId) { + protected String memberRegisterAndLogin(String phoneNumber, String firstLevelMerchantId, String openId) { if (StringUtils.isBlank(phoneNumber)) { throw new BusinessException(ReturnCodeEnum.CODE_GET_MOBILE_NUMBER_BY_CODE_ERROR); } - if (StringUtils.isBlank(merchantId)) { + if (StringUtils.isBlank(firstLevelMerchantId)) { throw new BusinessException(ReturnCodeEnum.CODE_GET_MERCHANT_ID_BY_APP_ID_ERROR); } if (StringUtils.isBlank(openId)) { throw new BusinessException(ReturnCodeEnum.CODE_OPEN_ID_IS_NULL_ERROR); } // 查询手机号码是否注册过 - MemberBasicInfo memberBasicInfo = memberBasicInfoService.selectInfoByMobileNumber(phoneNumber, merchantId); + MemberBasicInfo memberBasicInfo = memberBasicInfoService.selectInfoByMobileNumber(phoneNumber, firstLevelMerchantId); if (Objects.isNull(memberBasicInfo)) { // 不存在则新增数据 String memberId = generateNewMemberId(); @@ -157,13 +157,13 @@ public class MemberService { memberBasicInfo.setMemberId(memberId); memberBasicInfo.setNickName("会员" + memberId); memberBasicInfo.setMobileNumber(phoneNumber); - memberBasicInfo.setMerchantId(Long.valueOf(merchantId)); + memberBasicInfo.setMerchantId(Long.valueOf(firstLevelMerchantId)); memberBasicInfo.setOpenId(openId); MemberTransactionDTO memberTransactionDTO = new MemberTransactionDTO(); memberTransactionDTO.setMemberBasicInfo(memberBasicInfo); // 首次新建会员,同时新建会员钱包 - if (StringUtils.equals("35", merchantId)) { + if (StringUtils.equals("35", firstLevelMerchantId)) { MemberWalletInfo memberWalletInfo = MemberWalletInfo.builder() .memberId(memberId) .merchantId("35") @@ -218,9 +218,9 @@ public class MemberService { log.error("getOpenIdByCode发生异常", e); } // 根据appid查询merchantId - String merchantId = pileMerchantInfoService.getFirstLevelMerchantIdByAppId(APP_ID); + String firstLevelMerchantId = pileMerchantInfoService.getFirstLevelMerchantIdByAppId(APP_ID); // 查询手机号码是否注册过 - return memberRegisterAndLogin(mobileNumber, merchantId, openId); + return memberRegisterAndLogin(mobileNumber, firstLevelMerchantId, openId); } /** diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberBasicInfoMapper.java index cbae5cacf..9b1a5aa42 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberBasicInfoMapper.java @@ -72,10 +72,10 @@ public interface MemberBasicInfoMapper { * 不同手机号可以在多个运营商下注册账号 * * @param mobileNumber 手机号 - * @param firstMerchantId 运营商id + * @param firstLevelMerchantId 运营商id * @return 会员信息 */ - MemberBasicInfo selectInfoByMobileNumberAndMerchantId(@Param("mobileNumber") String mobileNumber, @Param("firstMerchantId") String firstMerchantId); + MemberBasicInfo selectInfoByMobileNumberAndMerchantId(@Param("mobileNumber") String mobileNumber, @Param("firstLevelMerchantId") String firstLevelMerchantId); /** * 通过手机号码查询会员信息 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberBasicInfoService.java index 6a7b28eb0..e29932f49 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberBasicInfoService.java @@ -70,10 +70,10 @@ public interface IMemberBasicInfoService { /** * 根据手机号和运营商id查询会员信息 * @param phone 手机号 mobile number - * @param firstMerchantId 一级运营商id + * @param firstLevelMerchantId 一级运营商id * @return 会员信息 */ - MemberBasicInfo selectInfoByMobileNumber(String phone, String firstMerchantId); + MemberBasicInfo selectInfoByMobileNumber(String phone, String firstLevelMerchantId); /** * 根据手机号查询会员信息 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java index a78768270..c3f72c27a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java @@ -158,12 +158,12 @@ public class MemberBasicInfoServiceImpl implements IMemberBasicInfoService { /** * 根据手机号和运营商id查询会员信息 * @param mobileNumber 手机号 - * @param firstMerchantId 所属一级运营商 运营商id + * @param firstLevelMerchantId 所属一级运营商 运营商id * @return 会员信息 */ @Override - public MemberBasicInfo selectInfoByMobileNumber(String mobileNumber, String firstMerchantId) { - return memberBasicInfoMapper.selectInfoByMobileNumberAndMerchantId(mobileNumber, firstMerchantId); + public MemberBasicInfo selectInfoByMobileNumber(String mobileNumber, String firstLevelMerchantId) { + return memberBasicInfoMapper.selectInfoByMobileNumberAndMerchantId(mobileNumber, firstLevelMerchantId); } // @Override diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileAuthCardServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileAuthCardServiceImpl.java index df276c4c2..ff714c115 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileAuthCardServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileAuthCardServiceImpl.java @@ -9,6 +9,7 @@ import com.jsowell.pile.domain.PileAuthCard; import com.jsowell.pile.dto.PileAuthCardDTO; import com.jsowell.pile.mapper.PileAuthCardMapper; import com.jsowell.pile.service.IMemberBasicInfoService; +import com.jsowell.pile.service.IPileMerchantInfoService; import com.jsowell.pile.service.PileAuthCardService; import com.jsowell.pile.util.UserUtils; import com.jsowell.pile.vo.base.LoginUserDetailVO; @@ -38,6 +39,9 @@ public class PileAuthCardServiceImpl implements PileAuthCardService { @Autowired private IMemberBasicInfoService memberBasicInfoService; + @Autowired + private IPileMerchantInfoService pileMerchantInfoService; + /** * 查询充电站鉴权卡 * @@ -122,8 +126,11 @@ public class PileAuthCardServiceImpl implements PileAuthCardService { String memberId = null; if (StringUtils.isNotBlank(dto.getPhoneNumber())) { + // 通过运营商id获取一级运营商id + String firstLevelMerchantId = pileMerchantInfoService.getFirstLevelMerchantIdByMerchantId(dto.getMerchantId()); + // 通过手机号查询memberId - MemberBasicInfo memberBasicInfo = memberBasicInfoService.selectInfoByMobileNumber(dto.getPhoneNumber(), dto.getMerchantId()); + MemberBasicInfo memberBasicInfo = memberBasicInfoService.selectInfoByMobileNumber(dto.getPhoneNumber(), firstLevelMerchantId); if (memberBasicInfo == null) { // 为空则说明未查到该用户的注册信息 throw new BusinessException(ReturnCodeEnum.CODE_USER_IS_NOT_REGISTER); diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberBasicInfoMapper.xml index 6f01903f9..7478828fa 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberBasicInfoMapper.xml @@ -154,8 +154,8 @@ from member_basic_info where del_flag = '0' and mobile_number = #{mobileNumber,jdbcType=VARCHAR} - - and merchant_id = #{firstMerchantId,jdbcType=VARCHAR} + + and merchant_id = #{firstLevelMerchantId,jdbcType=VARCHAR} order by create_time DESC, update_time DESC