|
@@ -22,11 +22,11 @@ import com.tzld.piaoquan.growth.common.utils.MessageUtil;
|
|
|
import com.xxl.job.core.biz.model.ReturnT;
|
|
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.concurrent.ExecutorService;
|
|
|
import java.util.concurrent.LinkedBlockingQueue;
|
|
@@ -54,6 +54,8 @@ public class WeComSendMsgJob {
|
|
|
private Double videoMinScore;
|
|
|
@Value("${send.room.msg.duplicate.days:7}")
|
|
|
private Integer duplicateDays;
|
|
|
+ @Value("${send.room.msg.video.num:2}")
|
|
|
+ private Integer videoNum;
|
|
|
|
|
|
private final static ExecutorService pool = new ThreadPoolExecutor(5, 5, 0L, TimeUnit.SECONDS,
|
|
|
new LinkedBlockingQueue<>(1000),
|
|
@@ -77,32 +79,35 @@ public class WeComSendMsgJob {
|
|
|
pool.execute(() -> {
|
|
|
List<String> timeList = roomConfig.getJSONArray(room.getName()).toJavaList(String.class);
|
|
|
if (timeList.contains(time)) {
|
|
|
- SendAppMsgRequest request = new SendAppMsgRequest();
|
|
|
- request.setUuid(staff.getThirdUuid());
|
|
|
- request.setSend_userid(Long.valueOf(room.getThirdRoomId()));
|
|
|
- request.setIsRoom(true);
|
|
|
- request.setAppid("wx89e7eb06478361d7");
|
|
|
- request.setUsername("gh_ecd1ea0b84cf@app");
|
|
|
- request.setAppName("票圈 l 3亿人喜欢的视频平台");
|
|
|
- request.setTitle("票圈 l 3亿人喜欢的视频平台");
|
|
|
- request.setWeappIconUrl("http://rescdn.yishihui.com/temp/1755515422185_%E7%A5%A8%E5%9C%88Vlog_logo.jpg");
|
|
|
// 选取视频
|
|
|
- CgiReplyBucketData cgiReplyBucketData = getCgiReplyBucketData(room.getThirdRoomId(), staff);
|
|
|
- // 填充视频信息
|
|
|
- request.setDesc(cgiReplyBucketData.getTitle());
|
|
|
- request.setPagepath(cgiReplyBucketData.getMiniPagePath());
|
|
|
- CdnUploadImgLinkRequest cdnUploadImgLinkRequest = new CdnUploadImgLinkRequest();
|
|
|
- cdnUploadImgLinkRequest.setUuid(staff.getThirdUuid());
|
|
|
- cdnUploadImgLinkRequest.setUrl(cgiReplyBucketData.getCoverUrl());
|
|
|
- CdnUploadImgLinkResponse uploadResponse = weComThirdPartyService.cdnUploadImgLink(cdnUploadImgLinkRequest);
|
|
|
- request.setCdnkey(uploadResponse.getCdn_key());
|
|
|
- request.setMd5(uploadResponse.getMd5());
|
|
|
- request.setAeskey(uploadResponse.getAes_key());
|
|
|
- request.setFileSize(uploadResponse.getSize().intValue());
|
|
|
- // 发送消息
|
|
|
- weComThirdPartyService.sendAppMsg(request);
|
|
|
- // 存储消息
|
|
|
- saveWeComMsg(staff.getId(), cgiReplyBucketData.getMiniVideoId(), request);
|
|
|
+ List<CgiReplyBucketData> cgiReplyBucketDataList = getCgiReplyBucketData(room.getThirdRoomId(), staff);
|
|
|
+ for (CgiReplyBucketData cgiReplyBucketData : cgiReplyBucketDataList) {
|
|
|
+ // build发送体
|
|
|
+ SendAppMsgRequest request = new SendAppMsgRequest();
|
|
|
+ request.setUuid(staff.getThirdUuid());
|
|
|
+ request.setSend_userid(Long.valueOf(room.getThirdRoomId()));
|
|
|
+ request.setIsRoom(true);
|
|
|
+ request.setAppid("wx89e7eb06478361d7");
|
|
|
+ request.setUsername("gh_ecd1ea0b84cf@app");
|
|
|
+ request.setAppName("票圈 l 3亿人喜欢的视频平台");
|
|
|
+ request.setTitle("票圈 l 3亿人喜欢的视频平台");
|
|
|
+ request.setWeappIconUrl("http://rescdn.yishihui.com/temp/1755515422185_%E7%A5%A8%E5%9C%88Vlog_logo.jpg");
|
|
|
+ // 填充视频信息
|
|
|
+ request.setDesc(cgiReplyBucketData.getTitle());
|
|
|
+ request.setPagepath(cgiReplyBucketData.getMiniPagePath());
|
|
|
+ CdnUploadImgLinkRequest cdnUploadImgLinkRequest = new CdnUploadImgLinkRequest();
|
|
|
+ cdnUploadImgLinkRequest.setUuid(staff.getThirdUuid());
|
|
|
+ cdnUploadImgLinkRequest.setUrl(cgiReplyBucketData.getCoverUrl());
|
|
|
+ CdnUploadImgLinkResponse uploadResponse = weComThirdPartyService.cdnUploadImgLink(cdnUploadImgLinkRequest);
|
|
|
+ request.setCdnkey(uploadResponse.getCdn_key());
|
|
|
+ request.setMd5(uploadResponse.getMd5());
|
|
|
+ request.setAeskey(uploadResponse.getAes_key());
|
|
|
+ request.setFileSize(uploadResponse.getSize().intValue());
|
|
|
+ // 发送消息
|
|
|
+ weComThirdPartyService.sendAppMsg(request);
|
|
|
+ // 存储消息
|
|
|
+ saveWeComMsg(staff.getId(), cgiReplyBucketData.getMiniVideoId(), request);
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -110,7 +115,7 @@ public class WeComSendMsgJob {
|
|
|
return ReturnT.SUCCESS;
|
|
|
}
|
|
|
|
|
|
- private CgiReplyBucketData getCgiReplyBucketData(String roomId, ThirdPartWeComStaff thirdPartWeComStaff) {
|
|
|
+ private List<CgiReplyBucketData> getCgiReplyBucketData(String roomId, ThirdPartWeComStaff thirdPartWeComStaff) {
|
|
|
String dt = planMapperExt.getVideoMaxDt();
|
|
|
String datastatDt = planMapperExt.getVideoDatastatMaxDt();
|
|
|
// 排除最近发送过的视频
|
|
@@ -121,23 +126,25 @@ public class WeComSendMsgJob {
|
|
|
String channel = "sum";
|
|
|
List<ContentPlatformVideo> videoList = planMapperExt.getVideoMinDatastatScoreList(dt, datastatDt,
|
|
|
type, channel, videoMinScore, sentVideoIds, 0, 100, sort);
|
|
|
- if (CollectionUtils.isEmpty(videoList)) {
|
|
|
- // 行业数量不足,按平台推荐top选取视频
|
|
|
- sort = "video.score desc";
|
|
|
- videoList = planMapperExt.getVideoMinScoreList(dt, videoMinScore, sentVideoIds, 0, 100, sort);
|
|
|
- }
|
|
|
- ContentPlatformVideo video = videoList.get(0);
|
|
|
- Staff staff = new Staff();
|
|
|
- staff.setCarrierId(String.valueOf(thirdPartWeComStaff.getThirdStaffId()));
|
|
|
- staff.setRemark(thirdPartWeComStaff.getName());
|
|
|
- String page = messageAttachmentService.getPage(staff, video.getVideoId());
|
|
|
+ // 行业数量不足,按平台推荐top选取视频
|
|
|
+ sort = "video.score desc";
|
|
|
+ videoList.addAll(planMapperExt.getVideoMinScoreList(dt, videoMinScore, sentVideoIds, 0, 100, sort));
|
|
|
+ List<CgiReplyBucketData> result = new ArrayList<>();
|
|
|
+ for (int i = 0; i < videoNum; i++) {
|
|
|
+ ContentPlatformVideo video = videoList.get(i);
|
|
|
+ Staff staff = new Staff();
|
|
|
+ staff.setCarrierId(String.valueOf(thirdPartWeComStaff.getThirdStaffId()));
|
|
|
+ staff.setRemark(thirdPartWeComStaff.getName());
|
|
|
+ String page = messageAttachmentService.getPage(staff, video.getVideoId());
|
|
|
|
|
|
- CgiReplyBucketData cgiReplyBucketData = new CgiReplyBucketData();
|
|
|
- cgiReplyBucketData.setMiniVideoId(video.getVideoId());
|
|
|
- cgiReplyBucketData.setTitle(video.getTitle());
|
|
|
- cgiReplyBucketData.setCoverUrl(video.getCover());
|
|
|
- cgiReplyBucketData.setMiniPagePath(page);
|
|
|
- return cgiReplyBucketData;
|
|
|
+ CgiReplyBucketData cgiReplyBucketData = new CgiReplyBucketData();
|
|
|
+ cgiReplyBucketData.setMiniVideoId(video.getVideoId());
|
|
|
+ cgiReplyBucketData.setTitle(video.getTitle());
|
|
|
+ cgiReplyBucketData.setCoverUrl(video.getCover());
|
|
|
+ cgiReplyBucketData.setMiniPagePath(page);
|
|
|
+ result.add(cgiReplyBucketData);
|
|
|
+ }
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
private List<Long> getSentVideoIds(Long roomId) {
|