钉钉日志推送实例

背景: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;
    }
 
 

 

posted @ 2023-05-30 15:02  悠悠乃  阅读(68)  评论(0编辑  收藏  举报