k94314517
2024-07-25 a75b18a4157ab486e0b51c438ac165ab3a08e3e0
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -267,7 +267,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 +278,8 @@
//            String openId = code;
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).isNotNull("phone"));
            Users users = new Users();
            if(StringUtils.isBlank(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();
@@ -298,23 +295,21 @@
                    member.setAuthStatus(Constants.ZERO);
                }
                ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member);
                if(Objects.isNull(ztUserGetTokenResponse)){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台服务调起失败!");
                }else{
                if(!Objects.isNull(ztUserGetTokenResponse)){
                    member.setToken(ztUserGetTokenResponse.getToken());
                }
                memberMapper.insert(member);
                this.saveCustomerUser(users,member.getId());
                MemberServiceImpl.saveCustomerUser(customerUserMapper,users,member.getId());
            }else{
                ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member);
                if(!Objects.isNull(ztUserGetTokenResponse)){
                    member.setToken(ztUserGetTokenResponse.getToken());
                    memberMapper.updateById(member);
                }
                this.saveCustomerUser(users,member.getId());
                MemberServiceImpl.saveCustomerUser(customerUserMapper,users,member.getId());
                member = this.getMemberInfo(member.getId());
            }
            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
            String token = JwtTokenUtil.generateTokenForZb(member.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
            AccountResponse accountResponse = new AccountResponse();
            accountResponse.setToken(token);
            accountResponse.setSessionKey(session.getSessionKey());
@@ -326,25 +321,24 @@
        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员");
    }
    public void saveCustomerUser(Users users,Long memberId){
        if(!(Objects.nonNull(users)&&Objects.nonNull(memberId))){
            return;
        }
        if( customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda()
                        .eq(CustomerUser::getIsdeleted,Constants.ZERO)
                .eq(CustomerUser::getUserId,users.getId())
                .eq(CustomerUser::getMemberId,memberId)) <= Constants.ZERO ){
            CustomerUser customerUser = new CustomerUser();
            customerUser.setUserId(users.getId());
            customerUser.setCreateDate(new Date());
            customerUser.setMemberId(memberId);
            customerUser.setPhone(users.getPhone());
            customerUser.setIamUserId(users.getIamId());
            customerUser.setName(users.getName());
            customerUser.setUsername(users.getIamUsername());
            customerUser.setAddr(users.getShopAddress());
            customerUserMapper.insert(customerUser);
            //TODO 等待调起中台接口
    public static void saveCustomerUser(CustomerUserMapper customerUserMapper,Users users,Long memberId){
        if(Objects.nonNull(users)&&Objects.nonNull(memberId)) {
            if (customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda()
                    .eq(CustomerUser::getIsdeleted, Constants.ZERO)
                    .eq(CustomerUser::getUserId, users.getId())
                    .eq(CustomerUser::getMemberId, memberId)) <= Constants.ZERO) {
                CustomerUser customerUser = new CustomerUser();
                customerUser.setUserId(users.getId());
                customerUser.setCreateDate(new Date());
                customerUser.setMemberId(memberId);
                customerUser.setPhone(users.getPhone());
                customerUser.setIamUserId(users.getIamId());
                customerUser.setName(users.getName());
                customerUser.setUsername(users.getIamUsername());
                customerUser.setAddr(users.getShopAddress());
                customerUserMapper.insert(customerUser);
                //TODO 等待调起中台接口
            }
        }
    }
@@ -527,10 +521,6 @@
        if(Objects.isNull(member)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(StringUtils.isBlank(member.getPhone())){
            redisTemplate.delete(token);
           return null;
        }
        //校验用户token信息
        MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId(),ZTConstants.CUSTOMER);
        //调起中台注销接口
@@ -542,9 +532,9 @@
                .set(Member::getOpenid,null)
                .set(Member::getPhone,null)
                .set(Member::getEditDate,new Date())
                .eq(Member::getId,member.getId())
                .eq(Member::getOpenid,member.getOpenid())
        );
        redisTemplate.delete(ZTConstants.CUSTOMER+"_"+ member.getId());
        redisTemplate.delete(token);
        return ztBaseRequst;
    }