提交修改

This commit is contained in:
quyixiao 2021-01-06 18:04:08 +08:00
parent 0cd5e13657
commit 22a2b16cb7
3 changed files with 211 additions and 78 deletions

View File

@ -52,6 +52,7 @@ public class ShiroConfig {
Map<String, String> filterMap = new LinkedHashMap<>(); Map<String, String> filterMap = new LinkedHashMap<>();
filterMap.put("/webjars/**", "anon"); filterMap.put("/webjars/**", "anon");
filterMap.put("/oneCode/**", "anon"); filterMap.put("/oneCode/**", "anon");
filterMap.put("/dingding/**", "anon");
filterMap.put("/file/**", "anon"); filterMap.put("/file/**", "anon");
filterMap.put("/test/**", "anon"); filterMap.put("/test/**", "anon");
filterMap.put("/druid/**", "anon"); filterMap.put("/druid/**", "anon");

View File

@ -0,0 +1,125 @@
package com.lz.modules.app.controller;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
import com.lz.common.utils.DingTalkUtil;
import com.lz.common.utils.R;
import com.lz.common.utils.StringUtil;
import com.lz.modules.app.entity.StaffEntity;
import com.lz.modules.app.service.StaffService;
import com.lz.modules.third.entity.ThirdAppConfig;
import com.lz.modules.third.service.ThirdAppConfigService;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.net.URLEncoder;
@RestController
@Slf4j
@RequestMapping("/dingding")
public class DingDingController {
@Autowired
private ThirdAppConfigService thirdAppConfigService;
@Autowired
private DingTalkUtil dingTalkUtil;
@Autowired
private StaffService staffService;
static String homeUrl = "https://lzmanagement.ldxinyong.com/digitization";
//http://localhost:8080/lz_management/dingding/msg?username=18458195149&title=%E8%AF%B7%E6%B3%A8%E6%84%8F&content=%E9%A1%B9%E7%9B%AE%E8%A6%81%E8%BF%87%E6%9C%9F%E4%BA%86
@RequestMapping("/msg")
public R dingdingxiaoxi(String username, String title, String content) {
String appid = "856016278";
StaffEntity staffEntity = staffService.selectByPhone(username);
ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid);
String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig);
String url = homeUrl;
if (url.contains("?")) {
url += "&halokit=" + System.currentTimeMillis();
} else {
url += "?halokit=" + System.currentTimeMillis();
}
url += "&detail=1&id=1&detailId=" + 1;
url = URLEncoder.encode(url);
url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() +
"&container_type=work_platform&app_id=0_" +
appid + "&redirect_type=jump&redirect_url=" + url;
try {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
OapiMessageCorpconversationAsyncsendV2Request req = new OapiMessageCorpconversationAsyncsendV2Request();
req.setAgentId(Long.parseLong(appid));
req.setUseridList(staffEntity.getEmployeeId());//员工 id
OapiMessageCorpconversationAsyncsendV2Request.Msg obj1 = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
obj1.setMsgtype("action_card");
OapiMessageCorpconversationAsyncsendV2Request.ActionCard obj2 = new OapiMessageCorpconversationAsyncsendV2Request.ActionCard();
obj2.setSingleTitle(title);
obj2.setSingleUrl(url);
obj2.setMarkdown(
getMarkDown(content)
);
obj2.setTitle(title);
obj1.setActionCard(obj2);
req.setMsg(obj1);
OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(req, token);
log.info("钉钉请求返回{}", rsp.getBody());
//插入数据库
} catch (ApiException e) {
e.printStackTrace();
return R.error("抛出异常");
}
return R.ok();
}
public static String getMarkDown(String content) {
StringBuilder sb = new StringBuilder();
char[] cs = content.toCharArray();
int i = 0;
int j = 0;
for (char c : cs) {
if (i == 0) {
if (c == '/') {
sb.append("#");
} else {
sb.append("# ").append(c);
}
} else {
if (c == '/') {
if (j == 0) {
sb.append("\n");
}
j++;
sb.append("#");
continue;
} else {
j = 0;
String xx = sb.toString();
if(StringUtil.isNotBlank(xx)){
char [] yy = xx.toCharArray();
if(yy[yy.length -1 ] == '#'){
sb.append(" ");
}
}
sb.append(c);
}
}
i++;
}
log.info(" getmarkdown :" + sb.toString());
return sb.toString();
}
}

View File

@ -3,6 +3,11 @@ package com.lz.modules.app.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
import com.lz.common.utils.DingTalkUtil;
import com.lz.common.utils.NumberUtil; import com.lz.common.utils.NumberUtil;
import com.lz.common.utils.R; import com.lz.common.utils.R;
import com.lz.modules.app.dto.ApprovalDto; import com.lz.modules.app.dto.ApprovalDto;
@ -29,6 +34,9 @@ import com.lz.modules.sys.entity.app.ResultRecord;
import com.lz.modules.sys.service.SysUserService; import com.lz.modules.sys.service.SysUserService;
import com.lz.modules.sys.service.app.ResultDetailService; import com.lz.modules.sys.service.app.ResultDetailService;
import com.lz.modules.sys.service.app.ResultRecordService; import com.lz.modules.sys.service.app.ResultRecordService;
import com.lz.modules.third.entity.ThirdAppConfig;
import com.lz.modules.third.service.ThirdAppConfigService;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -36,6 +44,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -176,7 +185,6 @@ public class TestController {
} }
@RequestMapping("/test/userinfo") @RequestMapping("/test/userinfo")
public void userinfo() { public void userinfo() {
@ -204,7 +212,6 @@ public class TestController {
} }
// http://localhost:8080/lz_management/test/restore // http://localhost:8080/lz_management/test/restore
@RequestMapping("/test/restore") @RequestMapping("/test/restore")
public void restore() throws Exception { public void restore() throws Exception {