liukangdong
2024-07-29 2b65fa2a67736d4316115ce91c26792f6c0b2377
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -14,6 +14,7 @@
import com.doumee.biz.zbom.model.zhongtai.ZTUserGetTokenRequest;
import com.doumee.biz.zbom.model.zhongtai.ZTUserInfoUpdateRequest;
import com.doumee.biz.zbom.model.zhongtai.response.ZTBaseResponse;
import com.doumee.biz.zbom.model.zhongtai.response.ZTCustomerBindingUsersRequest;
import com.doumee.biz.zbom.model.zhongtai.response.ZTSysuserGetTokenResponse;
import com.doumee.biz.zbom.model.zhongtai.response.ZTUserGetTokenResponse;
import com.doumee.config.Jwt.JwtPayLoad;
@@ -267,7 +268,7 @@
    @Override
    public AccountResponse wxLogin(String code,String iamId){
    public AccountResponse wxLogin(String code,String userId){
        try {
//            获取微信敏感数据
            WxMaJscode2SessionResult session = WxMiniConfig.wxCustomerService.getUserService().getSessionInfo(code);
@@ -278,11 +279,8 @@
//            String openId = code;
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).isNotNull("phone"));
            Users users = new Users();
            if(StringUtils.isNotBlank(iamId)){
                users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
                        .eq(Users::getIamId,iamId)
                        .last("limit 1")
                );
            if(StringUtils.isNotBlank(userId)){
                users = usersMapper.selectById(userId);
            }
            if (member == null) {
                member = new Member();
@@ -302,14 +300,14 @@
                    member.setToken(ztUserGetTokenResponse.getToken());
                }
                memberMapper.insert(member);
                this.saveCustomerUser(users,member.getId());
                MemberServiceImpl.saveCustomerUser(zbomZhongTaiService,customerUserMapper,users,member.getId(),member.getOpenid());
            }else{
                ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member);
                if(!Objects.isNull(ztUserGetTokenResponse)){
                    member.setToken(ztUserGetTokenResponse.getToken());
                    memberMapper.updateById(member);
                }
                this.saveCustomerUser(users,member.getId());
                MemberServiceImpl.saveCustomerUser(zbomZhongTaiService,customerUserMapper,users,member.getId(),member.getOpenid());
                member = this.getMemberInfo(member.getId());
            }
            String token = JwtTokenUtil.generateTokenForZb(member.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
@@ -324,7 +322,7 @@
        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员");
    }
    public void saveCustomerUser(Users users,Long memberId){
    public static void saveCustomerUser(ZbomZhongTaiService zbomZhongTaiService,CustomerUserMapper customerUserMapper,Users users,Long memberId,String openId){
        if(Objects.nonNull(users)&&Objects.nonNull(memberId)) {
            if (customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda()
                    .eq(CustomerUser::getIsdeleted, Constants.ZERO)
@@ -340,7 +338,16 @@
                customerUser.setUsername(users.getIamUsername());
                customerUser.setAddr(users.getShopAddress());
                customerUserMapper.insert(customerUser);
                //TODO 等待调起中台接口
                //等待调起中台接口
                ZTCustomerBindingUsersRequest ztCustomerBindingUsersRequest = new ZTCustomerBindingUsersRequest();
                ztCustomerBindingUsersRequest.setOpenId(openId);
                ztCustomerBindingUsersRequest.setSourceCustomerId(memberId.toString());
                ztCustomerBindingUsersRequest.setDaoGouUserId(users.getId().toString());
                ztCustomerBindingUsersRequest.setDaoGouAccount(users.getIamUsername());
                ztCustomerBindingUsersRequest.setDaoGouType(users.getUserTypes());
                ztCustomerBindingUsersRequest.setUserName(users.getIamId());
                ztCustomerBindingUsersRequest.setPlatSource(ZTConstants.PLATFORM_MP_WX);
                zbomZhongTaiService.customerBinDingUsers(ztCustomerBindingUsersRequest);
            }
        }
    }