| | |
| | | import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | 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.ZTUserGetTokenRequest; |
| | | import com.doumee.biz.zbom.model.zhongtai.ZTUserInfoUpdateRequest; |
| | | 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.oss.FileModel; |
| | | import com.doumee.core.utils.CodeVerifyUtils; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.UsersMapper; |
| | | import com.doumee.dao.business.model.InterfaceLog; |
| | | 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 okhttp3.OkHttpClient; |
| | | import okhttp3.Request; |
| | | import okhttp3.Response; |
| | | import org.apache.catalina.User; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | |
| | | private MemberMapper memberMapper; |
| | | |
| | | @Autowired |
| | | private UsersMapper usersMapper; |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | @Autowired |
| | | private ZbomZhongTaiService zbomZhongTaiService; |
| | | |
| | | @Autowired |
| | | private RedisTemplate<String,Object> redisTemplate; |
| | |
| | | |
| | | @Override |
| | | public AccountResponse wxLogin(String code){ |
| | | // 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; |
| | | 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失败!请联系管理员"); |
| | | } |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId)); |
| | | if (member == null) { |
| | | member = new Member(); |
| | |
| | | String token = JwtTokenUtil.generateToken(payLoad); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | // accountResponse.setSessionKey(session.getSessionKey()); |
| | | accountResponse.setSessionKey(session.getSessionKey()); |
| | | accountResponse.setMember(member); |
| | | return accountResponse; |
| | | // } catch (WxErrorException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员"); |
| | | } catch (WxErrorException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员"); |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public void updMemberDetail(EditMemberRequest editMemberRequest){ |
| | | Member member = memberMapper.selectById(editMemberRequest.getMemberId()); |
| | | 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(editMemberRequest.getPhone()); |
| | | ztUserInfoUpdateRequest.setName(editMemberRequest.getName()); |
| | | ztUserInfoUpdateRequest.setAddress(editMemberRequest.getProvinceName()+editMemberRequest.getCityName()+editMemberRequest.getAreaName()); |
| | | ztUserInfoUpdateRequest.setFullAddress(editMemberRequest.getAddress()); |
| | | String prefix = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode() + |
| | | systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.MEMBER).getCode(); |
| | | if(StringUtils.isNotBlank(editMemberRequest.getImgurl())){ |
| | | ztUserInfoUpdateRequest.setAvatarUrl(prefix + editMemberRequest.getImgurl()); |
| | | } |
| | | ztUserInfoUpdateRequest.setUptown(editMemberRequest.getDistrict()); |
| | | ztUserInfoUpdateRequest.setHouseArea(editMemberRequest.getHousearea().toString()); |
| | | ztUserInfoUpdateRequest.setHouseLayout(Constants.getHouseLayout(editMemberRequest.getHousetype())); |
| | | ZTUserGetTokenResponse userUpdateInfo = zbomZhongTaiService.userUpdateInfo(ztUserInfoUpdateRequest); |
| | | if(Objects.isNull(userUpdateInfo)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台信息更新失败,请联系管理员"); |
| | | } |
| | | memberMapper.update(new UpdateWrapper<Member>() |
| | | .lambda() |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getImgurl()),Member::getImgurl,editMemberRequest.getImgurl()) |
| | |
| | | .set(StringUtils.isNotBlank(editMemberRequest.getHousetype()),Member::getHousetype,editMemberRequest.getHousetype()) |
| | | .set(Objects.nonNull(editMemberRequest.getLatitude()),Member::getLatitude,editMemberRequest.getLatitude()) |
| | | .set(Objects.nonNull(editMemberRequest.getLongitude()),Member::getLongitude,editMemberRequest.getLongitude()) |
| | | .set(Member::getToken,userUpdateInfo.getToken()) |
| | | .eq(Member::getId,editMemberRequest.getMemberId())); |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | return member; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public static String getZTToken(ZbomZhongTaiService zbomZhongTaiService, MemberMapper memberMapper, UsersMapper usersMapper, SystemDictDataBiz systemDictDataBiz, String id, String userType){ |
| | | if(userType.equals(Constants.CUSTOMER)){ |
| | | Member member = memberMapper.selectById(id); |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | //如果无有效期/已过期 重新获取 |
| | | 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)){ |
| | | member.setToken(ztUserGetTokenResponse.getToken()); |
| | | //TODO 暂无过期日期 |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getToken,ztUserGetTokenResponse.getToken()) |
| | | .eq(Member::getId,member.getId())); |
| | | return ztUserGetTokenResponse.getToken(); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台TOKEN获取失败,请联系管理员"); |
| | | } |
| | | } |
| | | return member.getToken(); |
| | | }else if(userType.equals(Constants.BUSINESS)){ |
| | | Users users = usersMapper.selectById(id); |
| | | if(Objects.isNull(users)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | 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()); |
| | | ZTUserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getUserToken(param); |
| | | if(Objects.nonNull(ztUserGetTokenResponse)){ |
| | | users.setToken(ztUserGetTokenResponse.getToken()); |
| | | //TODO 暂无过期日期 |
| | | usersMapper.update(new UpdateWrapper<Users>().lambda().set(Users::getToken,ztUserGetTokenResponse.getToken()) |
| | | .eq(Users::getId,users.getId())); |
| | | return ztUserGetTokenResponse.getToken(); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台TOKEN获取失败,请联系管理员"); |
| | | } |
| | | } |
| | | return users.getToken(); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"参数错误"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void logOff(Long memberId){ |
| | | 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(),"用户已注销"); |
| | | } |
| | | //校验用户token信息 |
| | | MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,member.getId().toString(),Constants.CUSTOMER); |
| | | //调起中台注销接口 |
| | | ZTBaseRequst ztBaseRequst = new ZTBaseRequst(); |
| | | ztBaseRequst.setUserType(Constants.CUSTOMER); |
| | | ztBaseRequst.setOpenId(member.getOpenid()); |
| | | ztBaseRequst.setToken(member.getToken()); |
| | | Boolean logoutFlag = zbomZhongTaiService.userLogout(ztBaseRequst); |
| | | if(logoutFlag){ |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .set(Member::getPhone,null) |
| | | .set(Member::getEditDate,new Date()) |
| | | .eq(Member::getId,member.getId()) |
| | | ); |
| | | return; |
| | | } |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台注销失败,请联系管理员"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |