liukangdong
2024-07-23 4fc49f3f06e9bb6275045d32245469816b451a4c
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2,6 +2,7 @@
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -275,7 +276,7 @@
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"获取openid失败!请联系管理员");
            }
//            String openId = code;
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId));
            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()
@@ -306,18 +307,14 @@
                this.saveCustomerUser(users,member.getId());
            }else{
                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.updateById(member);
                }
                this.saveCustomerUser(users,member.getId());
                member = this.getMemberInfo(member.getId());
            }
            //创建token
            JwtPayLoad payLoad = new JwtPayLoad(member.getId(),Constants.ZERO);
            String token = JwtTokenUtil.generateToken(payLoad);
            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
            AccountResponse accountResponse = new AccountResponse();
            accountResponse.setToken(token);
            accountResponse.setSessionKey(session.getSessionKey());
@@ -439,13 +436,11 @@
        ztUserInfoUpdateRequest.setHouseLayout(Constants.getHouseLayout(member.getHousetype()));
        ZTBaseResponse userUpdateInfo = zbomZhongTaiService.userUpdateInfo(ztUserInfoUpdateRequest);
        if(Objects.isNull(userUpdateInfo)||userUpdateInfo.getCode()!=200){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台信息更新失败,请联系管理员");
            return null;
        }
        ZTUserGetTokenResponse ztUserGetTokenResponse = (ZTUserGetTokenResponse) userUpdateInfo.getData();
        return ztUserGetTokenResponse;
    }
    @Override
    public Member getMemberInfo(Long memberId){
@@ -497,8 +492,6 @@
//                            .set(Member::getTokenDate,date)//默认有效期为两小时
                            .eq(Member::getId,member.getId()));
                    ztBaseInfoResponse.setToken(ztUserGetTokenResponse.getToken());
                }else{
//                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台TOKEN获取失败,请联系管理员");
                }
            }
            ztBaseInfoResponse.setToken(member.getToken());
@@ -511,11 +504,6 @@
            ztBaseInfoResponse.setUserType(ZTConstants.BUSINESS);
            ztBaseInfoResponse.setOpenId(users.getOpenid());
            if(Objects.isNull(users.getTokenDate()) || users.getTokenDate().getTime()<=System.currentTimeMillis() ){
                ZTUserGetTokenRequest param = new ZTUserGetTokenRequest();
                //查询APPID
                String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode();
                param.setAppId(appId);
                param.setOpenId(users.getOpenid());
                ZTSysuserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getSysuserToken(users.getPhone());
                if(Objects.nonNull(ztUserGetTokenResponse)){
                    users.setToken(ztUserGetTokenResponse.getToken());
@@ -525,29 +513,23 @@
                            .eq(Users::getId,users.getId()));
                    ztBaseInfoResponse.setToken(ztUserGetTokenResponse.getToken());
                    return ztBaseInfoResponse;
                }else{
//                   throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台TOKEN获取失败,请联系管理员");
                }
            }
            ztBaseInfoResponse.setToken(users.getToken());
//            return ztBaseInfoResponse;
        }else{
//            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"参数错误");
        }
        return  ztBaseInfoResponse;
    }
    @Override
    public ZTBaseRequst logOff(Long memberId){
    public ZTBaseRequst logOff(Long memberId,String token){
        Member member = memberMapper.selectById(memberId);
        if(Objects.isNull(member)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(StringUtils.isBlank(member.getPhone())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户已注销");
            redisTemplate.delete(token);
           return null;
        }
        //校验用户token信息
        MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId(),ZTConstants.CUSTOMER);
@@ -557,10 +539,12 @@
        ztBaseRequst.setOpenId(member.getOpenid());
        ztBaseRequst.setToken(member.getToken());
        memberMapper.update(new UpdateWrapper<Member>().lambda()
                .set(Member::getOpenid,null)
                .set(Member::getPhone,null)
                .set(Member::getEditDate,new Date())
                .eq(Member::getId,member.getId())
        );
        redisTemplate.delete(ZTConstants.CUSTOMER+"_"+ member.getId());
        return ztBaseRequst;
    }