| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public WxCpPushResultVO pushVideo(java.io.File file, String title, String description, |
| | | Integer scope, String target) { |
| | | if (file == null || !file.exists()) { |
| | | return new WxCpPushResultVO(false, null, "视频文件不存在,无法推送", null, null); |
| | | } |
| | | try { |
| | | // 企业微信视频消息要求先用 video 类型上传换取 mediaId |
| | | WxMediaUploadResult upload = wxCpService.getMediaService().upload("video", file); |
| | | if (upload == null || StrUtil.isBlank(upload.getMediaId())) { |
| | | return new WxCpPushResultVO(false, null, "视频上传企业微信失败", null, null); |
| | | } |
| | | WxCpMessage message = WxCpMessage.VIDEO() |
| | | .agentId(agentId()) |
| | | .mediaId(upload.getMediaId()) |
| | | .title(StrUtil.blankToDefault(title, "通知视频")) |
| | | .description(StrUtil.blankToDefault(description, "")) |
| | | .build(); |
| | | return doSend(message, scope, target, "video"); |
| | | } catch (Exception e) { |
| | | log.error("[pushVideo][视频上传或推送异常 file={}]", file.getName(), e); |
| | | return new WxCpPushResultVO(false, null, "视频推送异常:" + e.getMessage(), null, null); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public WxCpPushResultVO pushMarkdown(String content, Integer scope, String target) { |
| | | WxCpMessage message = WxCpMessage.MARKDOWN() |
| | | .agentId(agentId()) |
| | | .content(content) |
| | | .build(); |
| | | return doSend(message, scope, target, "markdown"); |
| | | } |
| | | |
| | | @Override |
| | | public WxCpPushResultVO pushMultiNews(java.util.List<NewArticle> articles, Integer scope, String target) { |
| | | if (articles == null || articles.isEmpty()) { |
| | | return new WxCpPushResultVO(false, null, "图文内容为空,无法推送", null, null); |
| | | } |
| | | WxCpMessage message = WxCpMessage.NEWS() |
| | | .agentId(agentId()) |
| | | .articles(articles) |
| | | .build(); |
| | | return doSend(message, scope, target, "multi_news"); |
| | | } |
| | | |
| | | /** |
| | | * 统一处理接收者解析、发送与错误包装 |
| | | */ |