Browse Source

代码修改

dev
zxc 3 years ago
parent
commit
478bd10698
  1. 43
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java

43
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/DingTalkServiceImpl.java

@ -1,16 +1,8 @@
package com.epmet.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.aliyun.dingtalk.module.DingTalkResult;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiV2UserGetRequest;
import com.dingtalk.api.request.OapiV2UserGetuserinfoRequest;
import com.dingtalk.api.response.OapiV2UserGetResponse;
import com.dingtalk.api.response.OapiV2UserGetuserinfoResponse;
import com.epmet.commons.tools.dto.form.DingMiniInfoFormDTO;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.redis.common.bean.DingMiniInfoCache;
@ -20,9 +12,7 @@ import com.epmet.dto.DingMiniInfoDTO;
import com.epmet.dto.form.ExemptLoginUserDetailFormDTO;
import com.epmet.redis.DingDingCallbackRedis;
import com.epmet.service.DingTalkService;
import com.taobao.api.ApiException;
import com.taobao.dingtalk.client.DingTalkClientToken;
import com.taobao.dingtalk.vo.result.AccessTokenResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -51,37 +41,8 @@ public class DingTalkServiceImpl implements DingTalkService {
@Override
public Object getExemptLoginUserDetail(ExemptLoginUserDetailFormDTO formDTO) {
DingMiniInfoDTO dingMiniInfo = openSyncBizDataDao.getDingMiniInfoByAppId(formDTO.getMiniAppId());
DingTalkResult<AccessTokenResult> isvAccessToken = dingTalkClientToken.getIsvAccessToken(formDTO.getCorpId(), dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret(), dingCallbackRedis.get(dingMiniInfo.getSuiteKey()));
if (!isvAccessToken.success()){
throw new EpmetException("获取accessToken失败...");
}
String accessToken = isvAccessToken.getData().getAccessToken();
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo");
OapiV2UserGetuserinfoRequest req = new OapiV2UserGetuserinfoRequest();
req.setCode(formDTO.getCode());
Object o = new Object();
try {
OapiV2UserGetuserinfoResponse rsp = client.execute(req, accessToken);
Map<String,Object> map = JSON.parseObject(rsp.getBody(), Map.class);
if (!map.containsValue("ok")){
throw new EpmetException("通过免登码获取用户信息失败...");
}
Map<String,Object> userInfo = JSON.parseObject(map.get("result").toString(), Map.class);
DingTalkClient userDetailClient = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/user/get");
OapiV2UserGetRequest userDetailRequest = new OapiV2UserGetRequest();
userDetailRequest.setUserid(userInfo.get("userid").toString());
//userDetailRequest.setLanguage("zh_CN");
OapiV2UserGetResponse execute = userDetailClient.execute(userDetailRequest, accessToken);
Map<String,Object> userDetailResult = JSON.parseObject(execute.getBody(), Map.class);
if (!userDetailResult.containsValue("ok")){
throw new EpmetException("查询用户详情失败...");
}
o = userDetailResult.get("result");
} catch (ApiException e) {
log.error(e.getMessage());
e.printStackTrace();
}
return o;
DingTalkResult<String> exemptLoginUserDetail = dingTalkClientToken.getExemptLoginUserDetail(formDTO.getCorpId(), dingMiniInfo.getSuiteKey(), dingMiniInfo.getSuiteSecret(), dingCallbackRedis.get(dingMiniInfo.getSuiteKey()), formDTO.getCode());
return exemptLoginUserDetail.getData();
}
/**

Loading…
Cancel
Save