|
@@ -1,19 +1,25 @@
|
|
|
package com.tzld.piaoquan.api.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
-import com.tzld.piaoquan.growth.common.common.enums.GhTypeEnum;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.tzld.piaoquan.api.common.enums.ExceptionEnum;
|
|
|
import com.tzld.piaoquan.api.common.enums.ReplyStrategyServiceEnum;
|
|
|
-import com.tzld.piaoquan.growth.common.dao.mapper.CgiReplyBucketDataMapper;
|
|
|
-import com.tzld.piaoquan.growth.common.dao.mapper.GhDetailMapper;
|
|
|
+import com.tzld.piaoquan.api.common.exception.CommonException;
|
|
|
import com.tzld.piaoquan.api.model.bo.BucketDataParam;
|
|
|
import com.tzld.piaoquan.api.model.bo.ReplyBucketData;
|
|
|
+import com.tzld.piaoquan.api.model.vo.VideoCharacteristicVO;
|
|
|
+import com.tzld.piaoquan.api.service.CgiReplyService;
|
|
|
+import com.tzld.piaoquan.api.service.GhDetailService;
|
|
|
+import com.tzld.piaoquan.api.service.strategy.ReplyStrategyService;
|
|
|
+import com.tzld.piaoquan.growth.common.common.enums.GhTypeEnum;
|
|
|
+import com.tzld.piaoquan.growth.common.dao.mapper.CgiReplyBucketDataMapper;
|
|
|
+import com.tzld.piaoquan.growth.common.dao.mapper.GhDetailMapper;
|
|
|
import com.tzld.piaoquan.growth.common.model.po.CgiReplyBucketData;
|
|
|
import com.tzld.piaoquan.growth.common.model.po.CgiReplyBucketDataExample;
|
|
|
import com.tzld.piaoquan.growth.common.model.po.GhDetail;
|
|
|
import com.tzld.piaoquan.growth.common.model.po.GhDetailExample;
|
|
|
-import com.tzld.piaoquan.api.service.CgiReplyService;
|
|
|
-import com.tzld.piaoquan.api.service.strategy.ReplyStrategyService;
|
|
|
import com.tzld.piaoquan.growth.common.utils.LarkRobotUtil;
|
|
|
+import com.tzld.piaoquan.growth.common.utils.RedisUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.ApplicationContext;
|
|
@@ -21,6 +27,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
@@ -39,6 +46,12 @@ public class CgiReplyServiceImpl implements CgiReplyService {
|
|
|
@Autowired
|
|
|
private CgiReplyBucketDataMapper cgiReplyBucketDataMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ GhDetailService ghDetailService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RedisUtils redisUtils;
|
|
|
+
|
|
|
@PostConstruct
|
|
|
public void init() {
|
|
|
strategyServiceMap = applicationContext.getBeansOfType(ReplyStrategyService.class);
|
|
@@ -114,4 +127,35 @@ public class CgiReplyServiceImpl implements CgiReplyService {
|
|
|
.andStrategyEqualTo(strategy).andIsDeleteEqualTo(0);
|
|
|
return cgiReplyBucketDataMapper.selectByExample(example);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<CgiReplyBucketData> getCgiReplyBucketDataListByRootSourceId(String rootSourceId) {
|
|
|
+ CgiReplyBucketDataExample example = new CgiReplyBucketDataExample();
|
|
|
+ example.createCriteria().andRootSourceIdEqualTo(rootSourceId).andIsDeleteEqualTo(0);
|
|
|
+ return cgiReplyBucketDataMapper.selectByExample(example);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public VideoCharacteristicVO getVideoCharacteristicByRootSourceId(String rootSourceId) {
|
|
|
+ String redisKey = "auto_reply_video_detail_" + rootSourceId;
|
|
|
+ String value = redisUtils.get(redisKey);
|
|
|
+ if (StringUtils.isNotEmpty(value)) {
|
|
|
+ return JSONObject.parseObject(value, VideoCharacteristicVO.class);
|
|
|
+ }
|
|
|
+ List<CgiReplyBucketData> list = getCgiReplyBucketDataListByRootSourceId(rootSourceId);
|
|
|
+ if (CollectionUtils.isEmpty(list)) {
|
|
|
+ throw new CommonException(ExceptionEnum.CGI_REPLY_BUCKET_DATA_NOT_FOUND);
|
|
|
+ }
|
|
|
+ list.sort(Comparator.comparing(CgiReplyBucketData::getCreateTime).reversed());
|
|
|
+ CgiReplyBucketData cgiReplyBucketData = list.get(0);
|
|
|
+ GhDetail ghDetail = ghDetailService.getGhDetailByGhId(cgiReplyBucketData.getGhId());
|
|
|
+ VideoCharacteristicVO vo = new VideoCharacteristicVO();
|
|
|
+ vo.setGhId(cgiReplyBucketData.getGhId());
|
|
|
+ vo.setName(ghDetail.getGhName());
|
|
|
+ vo.setVideoId(cgiReplyBucketData.getMiniVideoId());
|
|
|
+ vo.setTitle(cgiReplyBucketData.getTitle());
|
|
|
+ vo.setCover(cgiReplyBucketData.getCoverUrl());
|
|
|
+ redisUtils.set(redisKey, JSONObject.toJSONString(vo), 3L * 24 * 60 * 60);
|
|
|
+ return vo;
|
|
|
+ }
|
|
|
}
|