ycl-platform/src/main/java/com/ycl/common/dingding/DingCommon.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-platform/src/main/java/com/ycl/timer/GetDingToken.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-platform/src/main/java/com/ycl/util/DingUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ycl-platform/src/main/java/com/ycl/common/dingding/DingCommon.java
@@ -23,6 +23,7 @@ import com.ycl.exception.ApiException; import com.ycl.service.depart.UmsDepartService; import com.ycl.service.user.UmsRoleService; import com.ycl.util.DingUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; @@ -51,6 +52,8 @@ @Autowired private UmsDepartService umsDepartService; @Autowired private DingUtil dingUtil; /** * 获取用户信息 @@ -61,11 +64,16 @@ public DingUserInfo getDingUserInfo(String code) { // 判断ding 信息是否存在 boolean hasDing = redisTemplate.hasKey("ding"); String getToken = ""; if (hasDing) { log.info("redis正常有消息"); String dingStr = redisTemplate.opsForValue().get("ding"); JSONObject dingObj = JSONObject.parseObject(dingStr); String getToken = dingObj.getString("token"); getToken = dingObj.getString("token"); } else { getToken = dingUtil.getToken(); } if (ObjectUtil.isEmpty(code) || ObjectUtil.isEmpty(getToken)) { throw new ApiException("登录异常"); } @@ -87,7 +95,6 @@ String accId = DingEncodeUtil.getMD5(resObj.getString("employeeCode").getBytes()); dingUserInfo.setUserId(Long.parseLong(accId)); return dingUserInfo; } } return null; } @@ -135,6 +142,7 @@ } return resObj; } /** * 发送markdown消息 * @@ -156,6 +164,7 @@ } return resObj; } /** * 发送链接消息 * @@ -336,6 +345,7 @@ redisTemplate.opsForValue().set("userJsonList", arr.toJSONString()); return dingUserInfoList; } /** * 根据员工code 获取员工accountId * @@ -610,6 +620,7 @@ String jsonStr = JSONObject.toJSONString(jsonObject); return jsonStr; } /** * 拼接要发送的消息 markdown消息 * json对象 必须 {"msgtype":"markdown","markdown":{"title":"首屏会话透出的展示内容","text":"消息内容"}} @@ -626,6 +637,7 @@ String jsonStr = JSONObject.toJSONString(jsonObject); return jsonStr; } /** * 拼接要发送的消息 链接消息 * ycl-platform/src/main/java/com/ycl/timer/GetDingToken.java
@@ -6,6 +6,8 @@ import com.alibaba.xxpt.gateway.shared.client.http.GetClient; import com.alibaba.xxpt.gateway.shared.client.http.PostClient; import com.ycl.config.DingConfig; import com.ycl.util.DingUtil; import com.ycl.util.VideoUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -36,7 +38,8 @@ @Resource private DingConfig dingConfig; @Autowired private DingUtil dingUtil; private String getToken() { //调用API @@ -102,9 +105,9 @@ // System.out.println("环境:" + env); if ("online".equals(env)) { //gettoken String getToken = getToken(); String getToken = dingUtil.getToken(); //jsApi String jsapiToken = getTiker(getToken); String jsapiToken = dingUtil.getTiker(getToken); //存储到redis JSONObject dingObj = new JSONObject(); dingObj.put("token", getToken); ycl-platform/src/main/java/com/ycl/util/DingUtil.java
New file @@ -0,0 +1,79 @@ package com.ycl.util; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.xxpt.gateway.shared.client.http.ExecutableClient; import com.alibaba.xxpt.gateway.shared.client.http.GetClient; import com.alibaba.xxpt.gateway.shared.client.http.PostClient; import com.ycl.config.DingConfig; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; import static com.ycl.common.constant.DingConst.GET_TIKER; import static com.ycl.common.constant.DingConst.GET_TOKEN; @Slf4j @Component public class DingUtil { private static GetClient getTokenClient; @Resource private ExecutableClient executableClient; @Resource private DingConfig dingConfig; public String getToken() { //调用API getTokenClient = executableClient.newGetClient(GET_TOKEN); //设置参数 getTokenClient.addParameter("appkey", dingConfig.getAppKey()); getTokenClient.addParameter("appsecret", dingConfig.getAppSecret()); String apiResult = getTokenClient.get(); return parsingResult(apiResult); } public String getTiker(String accToken) { //调用API PostClient postClient = executableClient.newPostClient(GET_TIKER); //设置参数 if (ObjectUtil.isNotNull(accToken)) { postClient.addParameter("accessToken", accToken); postClient.addParameter("appkey", dingConfig.getAppKey()); postClient.addParameter("appsecret", dingConfig.getAppSecret()); String apiResult = postClient.post(); return parsingResult(apiResult); } return null; } /** * 解析返回token * * @param apiResult * @return */ private static String parsingResult(String apiResult) { if (ObjectUtil.isNotNull(apiResult)) { JSONObject resJson = JSONObject.parseObject(apiResult); if (resJson.getBoolean("success")) { JSONObject content = resJson.getJSONObject("content"); if (content.getBoolean("success")) { JSONObject dataObj = content.getJSONObject("data"); String accessToken = dataObj.getString("accessToken"); return accessToken; } } else { log.error(resJson.toJSONString()); } } return null; } }