| | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | 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.utils.*; |
| | | import com.doumee.core.wx.WxMiniConfig; |
| | | import com.doumee.dao.business.CustomerUserMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | |
| | | 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.hikvision.artemis.sdk.util.HttpUtils; |
| | | import me.chanjar.weixin.common.error.WxErrorException; |
| | | import okhttp3.OkHttpClient; |
| | | import okhttp3.Request; |
| | |
| | | import java.io.ByteArrayInputStream; |
| | | import java.io.InputStream; |
| | | import java.util.*; |
| | | import java.util.Date; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | |
| | | |
| | | @Override |
| | | public AccountResponse wxLogin(String code){ |
| | | try { |
| | | // 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失败!请联系管理员"); |
| | | } |
| | | // 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)); |
| | | String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode(); |
| | | if (member == null) { |
| | | member = new Member(); |
| | | member.setNickname("微信用户"+ CodeVerifyUtils.createVerificationCode(4)); |
| | |
| | | member.setOpenid(openId); |
| | | member.setType(Constants.ZERO); |
| | | member.setAuthStatus(Constants.ZERO); |
| | | // ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(memberDto); |
| | | // if(Objects.isNull(ztUserGetTokenResponse)){ |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台服务调起失败!"); |
| | | // }else{ |
| | | // member.setToken(ztUserGetTokenResponse.getToken()); |
| | | // } |
| | | ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member); |
| | | if(Objects.isNull(ztUserGetTokenResponse)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台服务调起失败!"); |
| | | }else{ |
| | | member.setToken(ztUserGetTokenResponse.getToken()); |
| | | } |
| | | memberMapper.insert(member); |
| | | member = this.getMemberInfo(member.getId()); |
| | | }else{ |
| | | // ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(memberDto); |
| | | // if(Objects.isNull(ztUserGetTokenResponse)){ |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台服务调起失败!"); |
| | | // }else{ |
| | | // member.setToken(ztUserGetTokenResponse.getToken()); |
| | | // } |
| | | ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member); |
| | | if(Objects.isNull(ztUserGetTokenResponse)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台服务调起失败!"); |
| | | }else{ |
| | | member.setToken(ztUserGetTokenResponse.getToken()); |
| | | } |
| | | member = this.getMemberInfo(member.getId()); |
| | | } |
| | | //创建token |
| | |
| | | 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 |
| | |
| | | ztUserInfoUpdateRequest.setPlatform(Constants.PLATFORM); |
| | | ztUserInfoUpdateRequest.setPhone(member.getPhone()); |
| | | ztUserInfoUpdateRequest.setName(member.getNickname()); |
| | | ztUserInfoUpdateRequest.setAddress(member.getProvinceName()+member.getCityName()+member.getAreaName()); |
| | | // 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(); |
| | |
| | | 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()); |
| | | //TODO 暂无过期日期 |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getToken,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()); |
| | | return ztBaseInfoResponse; |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台TOKEN获取失败,请联系管理员"); |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台TOKEN获取失败,请联系管理员"); |
| | | } |
| | | } |
| | | ztBaseInfoResponse.setToken(member.getToken()); |
| | |
| | | ZTUserGetTokenResponse ztUserGetTokenResponse = zbomZhongTaiService.getUserToken(param); |
| | | if(Objects.nonNull(ztUserGetTokenResponse)){ |
| | | users.setToken(ztUserGetTokenResponse.getToken()); |
| | | //TODO 暂无过期日期 |
| | | 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; |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台TOKEN获取失败,请联系管理员"); |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"中台TOKEN获取失败,请联系管理员"); |
| | | } |
| | | } |
| | | ztBaseInfoResponse.setToken(users.getToken()); |
| | | return ztBaseInfoResponse; |
| | | // return ztBaseInfoResponse; |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"参数错误"); |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"参数错误"); |
| | | } |
| | | return ztBaseInfoResponse; |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void updWxMiniToken(){ |
| | | DefaultWebSecurityManager manager = new DefaultWebSecurityManager(); |
| | | ThreadContext.bind(manager); |
| | | String appId = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_APPID_CUSTOMER).getCode(); |
| | | String appSecret = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_SECRET_CUSTOMER).getCode(); |
| | | //生成微信token |
| | | String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+appId+"&secret="+appSecret; |
| | | String response = Constants.doGet(url,null); |
| | | JSONObject json = JSONObject.parseObject(response); |
| | | SystemDictData systemDictData = systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG,Constants.WX_TOKEN_CUSTOMER); |
| | | systemDictData.setCode(json.getString("access_token")); |
| | | systemDictData.setUpdateTime(new Date()); |
| | | systemDictDataBiz.updateByIdNew(systemDictData); |
| | | } |
| | | |
| | | } |