钉钉日志推送实例
背景:jeecg boot集成钉钉小程序,进行日志填报,同时推送到钉钉日志系统给相关人员。主要方便日志问题的讨论,回复等。
效果:
接口:
通过数据ID查找封装Marckdown方式进行推送;
public String doLogsDataDingtalk(String tableId, String toUsers) {
if (!thirdAppConfig.isDingtalkEnabled()) {
return null;
}
String accessToken = this.getAccessToken();
if (accessToken == null) {
return null;
}
try {
return sendMessage2(accessToken, tableId, toUsers);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private String sendMessage2(String accessToken, String tableId, String toUsers) throws ApiException {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/report/create");
OapiReportCreateRequest req = new OapiReportCreateRequest();
OapiCreateReportParam obj1 = new OapiCreateReportParam();
List<OapiReportContentVo> list3 = new ArrayList<OapiReportContentVo>();
OapiReportContentVo obj4 = new OapiReportContentVo();// 内容
list3.add(obj4);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<QualityTraceability> qualityTraceabilities = sysThirdAccountMapper.findQualityTraceabilityId(tableId);
if (qualityTraceabilities != null && qualityTraceabilities.size() > 0) {
QualityTraceability q = qualityTraceabilities.get(0);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
StringBuilder strb = new StringBuilder();
strb.append("- **标题:**" + q.getTitle()).append("\n");
strb.append("- **详情说明:**" + q.getProblemDescribe()).append("\n");
strb.append("- **日志时间:**" + format.format(q.getProblemTime())).append("\n");
if (oConvertUtils.isNotEmpty(q.getOtherDescribe()))
strb.append("- **其他描述:**" + q.getOtherDescribe()).append("\n");
if (oConvertUtils.isNotEmpty(q.getProblemFiles()) && q.getProblemFiles().contains("http")) {
String[] problemFiles = q.getProblemFiles().split(",");
strb.append("\n### **图片**:").append("\n");
for (String problemFile : problemFiles) {
strb.append("![图片](" + problemFile + ")").append("\n");
}
}
obj4.setSort(7L);
obj4.setType(1L);
obj4.setContentType("markdown");
obj4.setContent(strb.toString());
obj4.setKey("日志内容");
//
obj1.setContents(list3);
String[] toUserss = toUsers.split(",");
List<String> toUserids = Arrays.asList(toUserss);
obj1.setToUserids(toUserids);
obj1.setTemplateId("1882de124f831b974c739354525b21d9");
obj1.setToChat(true);
obj1.setDdFrom("qrcode");
obj1.setUserid(sysUser.getUsername());
req.setCreateReportParam(obj1);
OapiReportCreateResponse rsp = client.execute(req, accessToken);
System.out.println(rsp.getBody());
return rsp.getBody();
}
return null;
}