jiangping
2024-07-30 c0cb31a27522f2b480d7f98784eef37c2fb75f2d
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);
@@ -276,13 +277,10 @@
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"获取openid失败!请联系管理员");
            }
//            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")
                );
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).last(" limit 1  "));
            Users users =  null;
            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,42 @@
        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员");
    }
    public void saveCustomerUser(Users users,Long memberId){
    @Override
    public AccountResponse testLogin(String openid){
            String openId = openid;
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).isNotNull("phone"));
            if (member == null) {
                member = new Member();
                member.setNickname("微信用户"+ CodeVerifyUtils.createVerificationCode(4));
                member.setCreateDate(new Date());
                member.setIsdeleted(Constants.ZERO);
                member.setOpenid(openId);
                member.setType(Constants.ZERO);
                //如果绑定了导购 则直接使用已绑定导购信息 跳过手机号绑定的状态
                    member.setAuthStatus(Constants.ZERO);
                ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member);
                if(!Objects.isNull(ztUserGetTokenResponse)){
                    member.setToken(ztUserGetTokenResponse.getToken());
                }
                memberMapper.insert(member);
            }else{
                ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member);
                if(!Objects.isNull(ztUserGetTokenResponse)){
                    member.setToken(ztUserGetTokenResponse.getToken());
                    memberMapper.updateById(member);
                }
                member = this.getMemberInfo(member.getId());
            }
            String token = JwtTokenUtil.generateTokenForZb(member.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
            AccountResponse accountResponse = new AccountResponse();
            accountResponse.setToken(token);
            accountResponse.setMember(member);
            return accountResponse;
    }
    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 +373,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);
            }
        }
    }
@@ -376,12 +418,6 @@
        Member memberDto = new Member();
        BeanUtils.copyProperties(editMemberRequest,memberDto);
        memberDto.setOpenid(member.getOpenid());
//        ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(memberDto);
//        if(Objects.isNull(ztUserGetTokenResponse)){
//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台服务调起失败!");
//        }else{
//            member.setToken(ztUserGetTokenResponse.getToken());
//        }
        memberMapper.updateById(memberDto);
        return this.getMemberInfo(member.getId());
    }
@@ -448,7 +484,8 @@
        String prefix = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode() +
                systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.MEMBER).getCode();
        member.setPrefix(prefix);
        if( customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda().eq(CustomerUser::getIsdeleted,Constants.ZERO).eq(CustomerUser::getMemberId,member.getId()))>0){
        if( customerUserMapper.selectCount(new QueryWrapper<CustomerUser>()
                .lambda().eq(CustomerUser::getIsdeleted,Constants.ZERO).eq(CustomerUser::getMemberId,member.getId()))>0){
            member.setAuthStatus(Constants.TWO);
        }else{
            if(StringUtils.isBlank(member.getPhone())){