| package com.doumee.service.business.impl; | 
|   | 
| 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; | 
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| import com.doumee.biz.system.SystemDictDataBiz; | 
| import com.doumee.biz.zbom.ZbomZhongTaiService; | 
| import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst; | 
| import com.doumee.biz.zbom.model.zhongtai.ZTConstants; | 
| 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; | 
| import com.doumee.config.Jwt.JwtTokenUtil; | 
| import com.doumee.core.constants.ResponseStatus; | 
| import com.doumee.core.exception.BusinessException; | 
| import com.doumee.core.model.PageData; | 
| import com.doumee.core.model.PageWrap; | 
| import com.doumee.core.utils.CodeVerifyUtils; | 
| import com.doumee.core.utils.Constants; | 
| import com.doumee.core.utils.Utils; | 
| import com.doumee.core.wx.WxMiniConfig; | 
| import com.doumee.dao.business.CustomerUserMapper; | 
| import com.doumee.dao.business.MemberMapper; | 
| import com.doumee.dao.business.UsersMapper; | 
| import com.doumee.dao.business.model.CustomerUser; | 
| import com.doumee.dao.business.model.Member; | 
| import com.doumee.dao.business.model.Users; | 
| import com.doumee.dao.web.reqeust.EditMemberRequest; | 
| import com.doumee.dao.web.reqeust.WxPhoneRequest; | 
| import com.doumee.dao.web.response.AccountResponse; | 
| import com.doumee.dao.web.response.ZTBaseInfoResponse; | 
| import com.doumee.service.business.MemberService; | 
| import me.chanjar.weixin.common.error.WxErrorException; | 
| import org.apache.commons.lang3.StringUtils; | 
| import org.springframework.beans.BeanUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.data.redis.core.RedisTemplate; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.util.CollectionUtils; | 
|   | 
| import java.util.Date; | 
| import java.util.List; | 
| import java.util.Objects; | 
|   | 
| /** | 
|  * 用户信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @date 2024/07/04 14:40 | 
|  */ | 
| @Service | 
| public class MemberServiceImpl implements MemberService { | 
|   | 
|     @Autowired | 
|     private MemberMapper memberMapper; | 
|   | 
|     @Autowired | 
|     private UsersMapper usersMapper; | 
|   | 
|     @Autowired | 
|     private CustomerUserMapper customerUserMapper; | 
|   | 
|     @Autowired | 
|     private SystemDictDataBiz systemDictDataBiz; | 
|   | 
|     @Autowired | 
|     private ZbomZhongTaiService zbomZhongTaiService; | 
|   | 
|     @Autowired | 
|     private RedisTemplate<String,Object> redisTemplate; | 
|   | 
|     @Override | 
|     public Long create(Member member) { | 
|         memberMapper.insert(member); | 
|         return member.getId(); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteById(Long id) { | 
|         memberMapper.deleteById(id); | 
|     } | 
|   | 
|     @Override | 
|     public void delete(Member member) { | 
|         UpdateWrapper<Member> deleteWrapper = new UpdateWrapper<>(member); | 
|         memberMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Long> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         memberMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(Member member) { | 
|         memberMapper.updateById(member); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<Member> members) { | 
|         if (CollectionUtils.isEmpty(members)) { | 
|             return; | 
|         } | 
|         for (Member member: members) { | 
|             this.updateById(member); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public Member findById(Long id) { | 
|         return memberMapper.selectById(id); | 
|     } | 
|   | 
|     @Override | 
|     public Member findOne(Member member) { | 
|         QueryWrapper<Member> wrapper = new QueryWrapper<>(member); | 
|         return memberMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<Member> findList(Member member) { | 
|         QueryWrapper<Member> wrapper = new QueryWrapper<>(member); | 
|         return memberMapper.selectList(wrapper); | 
|     } | 
|    | 
|     @Override | 
|     public PageData<Member> findPage(PageWrap<Member> pageWrap) { | 
|         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         QueryWrapper<Member> queryWrapper = new QueryWrapper<>(); | 
|         Utils.MP.blankToNull(pageWrap.getModel()); | 
|         if (pageWrap.getModel().getId() != null) { | 
|             queryWrapper.lambda().eq(Member::getId, pageWrap.getModel().getId()); | 
|         } | 
|         if (pageWrap.getModel().getCreator() != null) { | 
|             queryWrapper.lambda().eq(Member::getCreator, pageWrap.getModel().getCreator()); | 
|         } | 
|         if (pageWrap.getModel().getCreateDate() != null) { | 
|             queryWrapper.lambda().ge(Member::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); | 
|             queryWrapper.lambda().le(Member::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); | 
|         } | 
|         if (pageWrap.getModel().getEditor() != null) { | 
|             queryWrapper.lambda().eq(Member::getEditor, pageWrap.getModel().getEditor()); | 
|         } | 
|         if (pageWrap.getModel().getEditDate() != null) { | 
|             queryWrapper.lambda().ge(Member::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); | 
|             queryWrapper.lambda().le(Member::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); | 
|         } | 
|         if (pageWrap.getModel().getIsdeleted() != null) { | 
|             queryWrapper.lambda().eq(Member::getIsdeleted, pageWrap.getModel().getIsdeleted()); | 
|         } | 
|         if (pageWrap.getModel().getRemark() != null) { | 
|             queryWrapper.lambda().eq(Member::getRemark, pageWrap.getModel().getRemark()); | 
|         } | 
|         if (pageWrap.getModel().getImgurl() != null) { | 
|             queryWrapper.lambda().eq(Member::getImgurl, pageWrap.getModel().getImgurl()); | 
|         } | 
|         if (pageWrap.getModel().getType() != null) { | 
|             queryWrapper.lambda().eq(Member::getType, pageWrap.getModel().getType()); | 
|         } | 
|         if (pageWrap.getModel().getNickname() != null) { | 
|             queryWrapper.lambda().eq(Member::getNickname, pageWrap.getModel().getNickname()); | 
|         } | 
|         if (pageWrap.getModel().getName() != null) { | 
|             queryWrapper.lambda().eq(Member::getName, pageWrap.getModel().getName()); | 
|         } | 
|         if (pageWrap.getModel().getBirthday() != null) { | 
|             queryWrapper.lambda().ge(Member::getBirthday, Utils.Date.getStart(pageWrap.getModel().getBirthday())); | 
|             queryWrapper.lambda().le(Member::getBirthday, Utils.Date.getEnd(pageWrap.getModel().getBirthday())); | 
|         } | 
|         if (pageWrap.getModel().getPhone() != null) { | 
|             queryWrapper.lambda().eq(Member::getPhone, pageWrap.getModel().getPhone()); | 
|         } | 
|         if (pageWrap.getModel().getOpenid() != null) { | 
|             queryWrapper.lambda().eq(Member::getOpenid, pageWrap.getModel().getOpenid()); | 
|         } | 
|         if (pageWrap.getModel().getStatus() != null) { | 
|             queryWrapper.lambda().eq(Member::getStatus, pageWrap.getModel().getStatus()); | 
|         } | 
|         if (pageWrap.getModel().getTokenDate() != null) { | 
|             queryWrapper.lambda().ge(Member::getTokenDate, Utils.Date.getStart(pageWrap.getModel().getTokenDate())); | 
|             queryWrapper.lambda().le(Member::getTokenDate, Utils.Date.getEnd(pageWrap.getModel().getTokenDate())); | 
|         } | 
|         if (pageWrap.getModel().getToken() != null) { | 
|             queryWrapper.lambda().eq(Member::getToken, pageWrap.getModel().getToken()); | 
|         } | 
|         if (pageWrap.getModel().getSex() != null) { | 
|             queryWrapper.lambda().eq(Member::getSex, pageWrap.getModel().getSex()); | 
|         } | 
|         if (pageWrap.getModel().getLastLoginDate() != null) { | 
|             queryWrapper.lambda().ge(Member::getLastLoginDate, Utils.Date.getStart(pageWrap.getModel().getLastLoginDate())); | 
|             queryWrapper.lambda().le(Member::getLastLoginDate, Utils.Date.getEnd(pageWrap.getModel().getLastLoginDate())); | 
|         } | 
|         if (pageWrap.getModel().getLoginNum() != null) { | 
|             queryWrapper.lambda().eq(Member::getLoginNum, pageWrap.getModel().getLoginNum()); | 
|         } | 
|         if (pageWrap.getModel().getProvinceName() != null) { | 
|             queryWrapper.lambda().eq(Member::getProvinceName, pageWrap.getModel().getProvinceName()); | 
|         } | 
|         if (pageWrap.getModel().getCityName() != null) { | 
|             queryWrapper.lambda().eq(Member::getCityName, pageWrap.getModel().getCityName()); | 
|         } | 
|         if (pageWrap.getModel().getAreaName() != null) { | 
|             queryWrapper.lambda().eq(Member::getAreaName, pageWrap.getModel().getAreaName()); | 
|         } | 
|         if (pageWrap.getModel().getProvinceCode() != null) { | 
|             queryWrapper.lambda().eq(Member::getProvinceCode, pageWrap.getModel().getProvinceCode()); | 
|         } | 
|         if (pageWrap.getModel().getCityCode() != null) { | 
|             queryWrapper.lambda().eq(Member::getCityCode, pageWrap.getModel().getCityCode()); | 
|         } | 
|         if (pageWrap.getModel().getAreaCode() != null) { | 
|             queryWrapper.lambda().eq(Member::getAreaCode, pageWrap.getModel().getAreaCode()); | 
|         } | 
|         if (pageWrap.getModel().getDistrict() != null) { | 
|             queryWrapper.lambda().eq(Member::getDistrict, pageWrap.getModel().getDistrict()); | 
|         } | 
|         if (pageWrap.getModel().getHousetype() != null) { | 
|             queryWrapper.lambda().eq(Member::getHousetype, pageWrap.getModel().getHousetype()); | 
|         } | 
|         if (pageWrap.getModel().getLongitude() != null) { | 
|             queryWrapper.lambda().eq(Member::getLongitude, pageWrap.getModel().getLongitude()); | 
|         } | 
|         if (pageWrap.getModel().getLatitude() != null) { | 
|             queryWrapper.lambda().eq(Member::getLatitude, pageWrap.getModel().getLatitude()); | 
|         } | 
|         if (pageWrap.getModel().getAuthStatus() != null) { | 
|             queryWrapper.lambda().eq(Member::getAuthStatus, pageWrap.getModel().getAuthStatus()); | 
|         } | 
|         if (pageWrap.getModel().getAuthDate() != null) { | 
|             queryWrapper.lambda().ge(Member::getAuthDate, Utils.Date.getStart(pageWrap.getModel().getAuthDate())); | 
|             queryWrapper.lambda().le(Member::getAuthDate, Utils.Date.getEnd(pageWrap.getModel().getAuthDate())); | 
|         } | 
|         if (pageWrap.getModel().getAuthInfo() != null) { | 
|             queryWrapper.lambda().eq(Member::getAuthInfo, pageWrap.getModel().getAuthInfo()); | 
|         } | 
|         if (pageWrap.getModel().getQueryStartDate() != null) { | 
|             queryWrapper.lambda().ge(Member::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getQueryStartDate())); | 
|         } | 
|         if (pageWrap.getModel().getQueryEndDate() != null) { | 
|             queryWrapper.lambda().le(Member::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getQueryEndDate())); | 
|         } | 
|         for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|                 queryWrapper.orderByDesc(sortData.getProperty()); | 
|             } else { | 
|                 queryWrapper.orderByAsc(sortData.getProperty()); | 
|             } | 
|         } | 
|         return PageData.from(memberMapper.selectPage(page, queryWrapper)); | 
|     } | 
|   | 
|     @Override | 
|     public long count(Member member) { | 
|         QueryWrapper<Member> wrapper = new QueryWrapper<>(member); | 
|         return memberMapper.selectCount(wrapper); | 
|     } | 
|   | 
|   | 
|   | 
|     @Override | 
|     public AccountResponse wxLogin(String code,String userId){ | 
|         try { | 
| //            获取微信敏感数据 | 
|             WxMaJscode2SessionResult session = WxMiniConfig.wxCustomerService.getUserService().getSessionInfo(code); | 
|             String openId = session.getOpenid(); | 
|             if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { | 
|                 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(userId)){ | 
|                 users = usersMapper.selectById(userId); | 
|             } | 
|             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); | 
|                 //如果绑定了导购 则直接使用已绑定导购信息 跳过手机号绑定的状态 | 
|                 if(Objects.nonNull(users)){ | 
|                     member.setAuthStatus(Constants.TWO); | 
|                 }else{ | 
|                     member.setAuthStatus(Constants.ZERO); | 
|                 } | 
|                 ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member); | 
|                 if(!Objects.isNull(ztUserGetTokenResponse)){ | 
|                     member.setToken(ztUserGetTokenResponse.getToken()); | 
|                 } | 
|                 memberMapper.insert(member); | 
|                 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); | 
|                 } | 
|                 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); | 
|             AccountResponse accountResponse = new AccountResponse(); | 
|             accountResponse.setToken(token); | 
|             accountResponse.setSessionKey(session.getSessionKey()); | 
|             accountResponse.setMember(member); | 
|             return accountResponse; | 
|         } catch (WxErrorException e) { | 
|             e.printStackTrace(); | 
|         } | 
|         throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员"); | 
|     } | 
|   | 
|     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) | 
|                     .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); | 
|                 //等待调起中台接口 | 
|                 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); | 
|             } | 
|         } | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public String getWxMiniPhone(WxPhoneRequest wxPhoneRequest){ | 
|         try { | 
|             WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxCustomerService.getUserService().getPhoneNoInfo( | 
|                     wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv()); | 
|             //获取手机号 | 
|             String phone= userPhoneInfo.getPurePhoneNumber(); | 
|             if(Objects.isNull(phone)){ | 
|                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未获取到手机号"); | 
|             } | 
|             return phone; | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|         } | 
|         throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"更新手机号失败"); | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public Member updMemberDetail(EditMemberRequest editMemberRequest){ | 
|         Member member = memberMapper.selectById(editMemberRequest.getId()); | 
|         if(Objects.isNull(member)){ | 
|             throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|         } | 
|         if(Objects.isNull(editMemberRequest)){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|         } | 
|         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()); | 
|     } | 
|   | 
|   | 
|   | 
|     @Override | 
|     public Member updMemberPhone(EditMemberRequest editMemberRequest){ | 
|         if(Objects.isNull(editMemberRequest)||StringUtils.isBlank(editMemberRequest.getPhone())){ | 
|             throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|         } | 
|         Member member = memberMapper.selectById(editMemberRequest.getId()); | 
|         if(Objects.isNull(member)){ | 
|             throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|         } | 
|         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()); | 
|     } | 
|   | 
|   | 
|     public ZTUserGetTokenResponse syncZhongTaiUser(Member member){ | 
|         ZTUserInfoUpdateRequest ztUserInfoUpdateRequest = new  ZTUserInfoUpdateRequest(); | 
|         ztUserInfoUpdateRequest.setOpenId(member.getOpenid()); | 
|         String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode(); | 
|         ztUserInfoUpdateRequest.setAppId(appId); | 
|         ztUserInfoUpdateRequest.setPlatform(Constants.PLATFORM); | 
|         ztUserInfoUpdateRequest.setPhone(member.getPhone()); | 
|         ztUserInfoUpdateRequest.setName(member.getNickname()); | 
| //        ztUserInfoUpdateRequest.setAddress(member.getProvinceName()+member.getCityName()+member.getAreaName()); | 
|         ztUserInfoUpdateRequest.setFullAddress(member.getAddress()); | 
|         String prefix = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode() + | 
|                 systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.MEMBER).getCode(); | 
|         if(StringUtils.isNotBlank(member.getImgurl())){ | 
|             ztUserInfoUpdateRequest.setAvatarUrl(prefix + member.getImgurl()); | 
|         } | 
|         ztUserInfoUpdateRequest.setUptown(member.getDistrict()); | 
|         if(Objects.nonNull(member.getHousearea())){ | 
|             ztUserInfoUpdateRequest.setHouseArea(member.getHousearea().toString()); | 
|         } | 
|         ztUserInfoUpdateRequest.setHouseLayout(Constants.getHouseLayout(member.getHousetype())); | 
|         ZTBaseResponse userUpdateInfo = zbomZhongTaiService.userUpdateInfo(ztUserInfoUpdateRequest); | 
|         if(Objects.isNull(userUpdateInfo)||userUpdateInfo.getCode()!=200){ | 
|             return null; | 
|         } | 
|         ZTUserGetTokenResponse ztUserGetTokenResponse = (ZTUserGetTokenResponse) userUpdateInfo.getData(); | 
|         return ztUserGetTokenResponse; | 
|     } | 
|   | 
|     @Override | 
|     public Member getMemberInfo(Long memberId){ | 
|         Member member = memberMapper.selectById(memberId); | 
|         if(Objects.isNull(member)){ | 
|             throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|         } | 
|         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){ | 
|             member.setAuthStatus(Constants.TWO); | 
|         }else{ | 
|             if(StringUtils.isBlank(member.getPhone())){ | 
|                 member.setAuthStatus(Constants.ZERO); | 
|             }else{ | 
|                 member.setAuthStatus(Constants.ONE); | 
|             } | 
|         } | 
|        return member; | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|     public static ZTBaseInfoResponse getZTToken(ZbomZhongTaiService zbomZhongTaiService, | 
|                                                 MemberMapper memberMapper, UsersMapper usersMapper, SystemDictDataBiz systemDictDataBiz, Long id, String userType){ | 
|         ZTBaseInfoResponse ztBaseInfoResponse = new ZTBaseInfoResponse(); | 
|         if(userType.equals(ZTConstants.CUSTOMER)){ | 
|             Member member = memberMapper.selectById(id); | 
|             if(Objects.isNull(member)){ | 
|                 throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|             } | 
|             ztBaseInfoResponse.setUserType(ZTConstants.CUSTOMER); | 
|             ztBaseInfoResponse.setOpenId(member.getOpenid()); | 
|             //如果无有效期/已过期 重新获取 | 
|             if(Objects.isNull(member.getTokenDate()) || member.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(member.getOpenid()); | 
|                 ZTUserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getUserToken(param); | 
|                 if(Objects.nonNull(ztUserGetTokenResponse)){ | 
| //                    Date date =new Date(System.currentTimeMillis()+(Constants.formatLongNum(ztUserGetTokenResponse.getExpire())<=0?2*60*60*1000:ztUserGetTokenResponse.getExpire()*1000)); | 
|                     member.setToken(ztUserGetTokenResponse.getToken()); | 
|                     memberMapper.update(new UpdateWrapper<Member>().lambda() | 
|                             .set(Member::getToken,ztUserGetTokenResponse.getToken()) | 
| //                            .set(Member::getTokenDate,date)//默认有效期为两小时 | 
|                             .eq(Member::getId,member.getId())); | 
|                     ztBaseInfoResponse.setToken(ztUserGetTokenResponse.getToken()); | 
|                 } | 
|             } | 
|             ztBaseInfoResponse.setToken(member.getToken()); | 
|             return ztBaseInfoResponse; | 
|         }else if(userType.equals(ZTConstants.BUSINESS)){ | 
|             Users users = usersMapper.selectById(id); | 
|             if(Objects.isNull(users)){ | 
|                 throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|             } | 
|             ztBaseInfoResponse.setUserType(ZTConstants.BUSINESS); | 
|             ztBaseInfoResponse.setOpenId(users.getOpenid()); | 
|             if(Objects.isNull(users.getTokenDate()) || users.getTokenDate().getTime()<=System.currentTimeMillis() ){ | 
|                 ZTSysuserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getSysuserToken(users.getPhone()); | 
|                 if(Objects.nonNull(ztUserGetTokenResponse)){ | 
|                     users.setToken(ztUserGetTokenResponse.getToken()); | 
|                     Date date =new Date(System.currentTimeMillis()+(Constants.formatLongNum(ztUserGetTokenResponse.getExpire())<=0?2*60*60*1000:ztUserGetTokenResponse.getExpire()*1000)); | 
|                     usersMapper.update(new UpdateWrapper<Users>().lambda().set(Users::getToken,ztUserGetTokenResponse.getToken()) | 
|                             .set(Users::getTokenDate,date)//默认有效期为两小时 | 
|                             .eq(Users::getId,users.getId())); | 
|                     ztBaseInfoResponse.setToken(ztUserGetTokenResponse.getToken()); | 
|                     return ztBaseInfoResponse; | 
|                 } | 
|             } | 
|             ztBaseInfoResponse.setToken(users.getToken()); | 
|         } | 
|         return  ztBaseInfoResponse; | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public ZTBaseRequst logOff(Long memberId,String token){ | 
|         Member member = memberMapper.selectById(memberId); | 
|         if(Objects.isNull(member)){ | 
|             throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|         } | 
|         //校验用户token信息 | 
|         MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId(),ZTConstants.CUSTOMER); | 
|         //调起中台注销接口 | 
|         ZTBaseRequst ztBaseRequst = new ZTBaseRequst(); | 
|         ztBaseRequst.setUserType(ZTConstants.CUSTOMER); | 
|         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::getOpenid,member.getOpenid()) | 
|         ); | 
|         redisTemplate.delete(token); | 
|         return ztBaseRequst; | 
|     } | 
|   | 
|   | 
|   | 
|   | 
| } |