|
@@ -1,6 +1,7 @@
|
|
|
package com.tzld.piaoquan.api.job.wecom.thirdpart;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.ctrip.framework.apollo.spring.annotation.ApolloJsonValue;
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
|
|
import com.tzld.piaoquan.api.dao.mapper.contentplatform.ext.ContentPlatformPlanMapperExt;
|
|
|
import com.tzld.piaoquan.api.dao.mapper.wecom.thirdpart.ThirdPartWeComMsgMapper;
|
|
@@ -13,6 +14,7 @@ import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComMsgExample;
|
|
|
import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComRoom;
|
|
|
import com.tzld.piaoquan.api.model.po.wecom.thirdpart.ThirdPartWeComStaff;
|
|
|
import com.tzld.piaoquan.api.service.WeComThirdPartyService;
|
|
|
+import com.tzld.piaoquan.api.util.CdnUtil;
|
|
|
import com.tzld.piaoquan.growth.common.model.po.CgiReplyBucketData;
|
|
|
import com.tzld.piaoquan.growth.common.model.po.Staff;
|
|
|
import com.tzld.piaoquan.growth.common.service.MessageAttachmentService;
|
|
@@ -52,6 +54,8 @@ public class WeComSendMsgJob {
|
|
|
private Integer duplicateDays;
|
|
|
@Value("${send.room.msg.video.num:2}")
|
|
|
private Integer videoNum;
|
|
|
+ @ApolloJsonValue("${send.room.msg.test.roomList:[\"10724205295120197\"]}")
|
|
|
+ private List<String> testRoomList;
|
|
|
|
|
|
private final static ExecutorService pool = new ThreadPoolExecutor(5, 5, 0L, TimeUnit.SECONDS,
|
|
|
new LinkedBlockingQueue<>(1000),
|
|
@@ -75,7 +79,7 @@ public class WeComSendMsgJob {
|
|
|
List<CgiReplyBucketData> cgiReplyBucketDataList = getCgiReplyBucketData(room.getThirdRoomId(), staff);
|
|
|
for (CgiReplyBucketData cgiReplyBucketData : cgiReplyBucketDataList) {
|
|
|
// build发送体
|
|
|
- SendAppMsgRequest request = buildSendAppMsgRequest(cgiReplyBucketData, staff, room.getThirdRoomId());
|
|
|
+ SendAppMsgRequest request = buildSendAppMsgRequest(cgiReplyBucketData, staff, room);
|
|
|
// 发送消息
|
|
|
weComThirdPartyService.sendAppMsg(request);
|
|
|
// 存储消息
|
|
@@ -90,7 +94,8 @@ public class WeComSendMsgJob {
|
|
|
|
|
|
private SendAppMsgRequest buildSendAppMsgRequest(CgiReplyBucketData cgiReplyBucketData,
|
|
|
ThirdPartWeComStaff staff,
|
|
|
- String thirdRoomId) {
|
|
|
+ ThirdPartWeComRoom room) {
|
|
|
+ String thirdRoomId = room.getThirdRoomId();
|
|
|
SendAppMsgRequest request = new SendAppMsgRequest();
|
|
|
request.setUuid(staff.getThirdUuid());
|
|
|
request.setSend_userid(Long.valueOf(thirdRoomId));
|
|
@@ -101,11 +106,16 @@ public class WeComSendMsgJob {
|
|
|
request.setTitle("票圈 l 3亿人喜欢的视频平台");
|
|
|
request.setWeappIconUrl("http://rescdn.yishihui.com/temp/1755515422185_%E7%A5%A8%E5%9C%88Vlog_logo.jpg");
|
|
|
// 填充视频信息
|
|
|
+ String coverUrl = cgiReplyBucketData.getCoverUrl();
|
|
|
+ // 实验 封面添加播放按钮水印
|
|
|
+ if (testRoomList.contains(thirdRoomId)) {
|
|
|
+ coverUrl = addPlayWatermark(cgiReplyBucketData.getCoverUrl());
|
|
|
+ }
|
|
|
request.setDesc(cgiReplyBucketData.getTitle());
|
|
|
request.setPagepath(cgiReplyBucketData.getMiniPagePath());
|
|
|
CdnUploadImgLinkRequest cdnUploadImgLinkRequest = new CdnUploadImgLinkRequest();
|
|
|
cdnUploadImgLinkRequest.setUuid(staff.getThirdUuid());
|
|
|
- cdnUploadImgLinkRequest.setUrl(cgiReplyBucketData.getCoverUrl());
|
|
|
+ cdnUploadImgLinkRequest.setUrl(coverUrl);
|
|
|
CdnUploadImgLinkResponse uploadResponse = weComThirdPartyService.cdnUploadImgLink(cdnUploadImgLinkRequest);
|
|
|
request.setCdnkey(uploadResponse.getCdn_key());
|
|
|
request.setMd5(uploadResponse.getMd5());
|
|
@@ -114,6 +124,15 @@ public class WeComSendMsgJob {
|
|
|
return request;
|
|
|
}
|
|
|
|
|
|
+ private String addPlayWatermark(String coverUrl) {
|
|
|
+ if (!coverUrl.startsWith(CdnUtil.VIDEO_CDN_URL_HOST)) {
|
|
|
+ return coverUrl;
|
|
|
+ }
|
|
|
+ String waterMark = "?x-oss-process=image/resize,m_fill,w_600,h_480,limit_0/format,jpg/watermark,image_eXNoL3BpYy93YXRlcm1hcmtlci9pY29uX3BsYXlfd2hpdGUucG5nP3gtb3NzLXByb2Nlc3M9aW1hZ2UvcmVzaXplLHdfMTQ0,g_center";
|
|
|
+ coverUrl = coverUrl.substring(0, coverUrl.indexOf("?"));
|
|
|
+ return coverUrl + waterMark;
|
|
|
+ }
|
|
|
+
|
|
|
private List<CgiReplyBucketData> getCgiReplyBucketData(String roomId, ThirdPartWeComStaff thirdPartWeComStaff) {
|
|
|
String dt = planMapperExt.getVideoMaxDt();
|
|
|
String datastatDt = planMapperExt.getVideoDatastatMaxDt();
|
|
@@ -134,7 +153,7 @@ public class WeComSendMsgJob {
|
|
|
Staff staff = new Staff();
|
|
|
staff.setCarrierId(String.valueOf(thirdPartWeComStaff.getThirdStaffId()));
|
|
|
staff.setRemark(thirdPartWeComStaff.getName());
|
|
|
- String page = messageAttachmentService.getPage(staff, video.getVideoId(), "企微", "社群");
|
|
|
+ String page = messageAttachmentService.getPageNoCache(staff, video.getVideoId(), "企微", "社群");
|
|
|
|
|
|
CgiReplyBucketData cgiReplyBucketData = new CgiReplyBucketData();
|
|
|
cgiReplyBucketData.setMiniVideoId(video.getVideoId());
|