Commit c655b088 by 郑永强

加入判断规则

parent a1995685
...@@ -26,6 +26,7 @@ import com.pcloud.book.adnews.enums.AdContentFromEnum; ...@@ -26,6 +26,7 @@ import com.pcloud.book.adnews.enums.AdContentFromEnum;
import com.pcloud.book.adnews.enums.AdNewsBanEnum; import com.pcloud.book.adnews.enums.AdNewsBanEnum;
import com.pcloud.book.adnews.dto.AdNewsListParam; import com.pcloud.book.adnews.dto.AdNewsListParam;
import com.pcloud.book.adnews.enums.AdNewsContentTypeEnum; import com.pcloud.book.adnews.enums.AdNewsContentTypeEnum;
import com.pcloud.book.adnews.enums.AdNewsSendRuleEnum;
import com.pcloud.book.adnews.vo.AdNewsGroupRecordVO; import com.pcloud.book.adnews.vo.AdNewsGroupRecordVO;
import com.pcloud.book.adnews.vo.AdNewsMessageStatisticVO; import com.pcloud.book.adnews.vo.AdNewsMessageStatisticVO;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
...@@ -427,35 +428,47 @@ public class AdNewsBizImpl implements AdNewsBiz { ...@@ -427,35 +428,47 @@ public class AdNewsBizImpl implements AdNewsBiz {
groupQrcodeFoAdDTO.setAdNewsList(adNewsList.stream().collect(Collectors.toList())); groupQrcodeFoAdDTO.setAdNewsList(adNewsList.stream().collect(Collectors.toList()));
} }
List<AdNews> _adNewsList = new ArrayList<>();
// 如果自有公众号的数据条数少于要发送的条数,则用系统推荐公众号的补齐剩余的条数 // 如果自有公众号的数据条数少于要发送的条数,则用系统推荐公众号的补齐剩余的条数
if(adNewsList.size() < adNewsSet.getSendCount()){ if(adNewsList.size() < adNewsSet.getSendCount()){
// 根据群批量查找社群码的标签 List<AdNews> _adNewsList = new ArrayList<>();
setGroupLabelName(groupQrcodeFoAdDTOS);
// 标签去重进行匹配新闻 if(AdNewsSendRuleEnum.MATCH_LABEL.key == adNewsSet.getSendRule()){
List<Long> bookGroupIds = groupQrcodeFoAdDTOS.stream().map(x -> x.getBookGroupId()).distinct().collect(Collectors.toList()); // 根据群批量查找社群码的标签
setGroupLabelName(groupQrcodeFoAdDTOS);
// 三天前 // 标签去重进行匹配新闻
String beginTime = DateUtils.formatDate(DateUtils.subDays(3), DateUtils.DATE_FORMAT_DATEONLY); List<Long> bookGroupIds = groupQrcodeFoAdDTOS.stream().map(x -> x.getBookGroupId()).distinct().collect(Collectors.toList());
for (GroupQrcodeFoAdDTO groupQrcodeFoAdDTO : groupQrcodeFoAdDTOS){
_adNewsList = adNewsDao.getNewsByLabelName(adNewsSet.getId(), adNewsSet.getCreateUser(), beginTime, groupQrcodeFoAdDTO.getProLabelName(),groupQrcodeFoAdDTO.getDepLabelName(),groupQrcodeFoAdDTO.getPurLabelName(),adNewsSet.getSendCount() - groupQrcodeFoAdDTO.getAdNewsList().size());
if(!ListUtils.isEmpty(_adNewsList)){
groupQrcodeFoAdDTO.getAdNewsList().addAll(_adNewsList);
}
// 如果筛选新闻条数还不够,继续再公众号匹配 // 三天前
if(groupQrcodeFoAdDTO.getAdNewsList().size() < adNewsSet.getSendCount()) { String beginTime = DateUtils.formatDate(DateUtils.subDays(3), DateUtils.DATE_FORMAT_DATEONLY);
_adNewsList = adNewsDao.getNews4WechatByLabelName(adNewsSet.getId(), adNewsSet.getCreateUser(), beginTime, groupQrcodeFoAdDTO.getProLabelName(),groupQrcodeFoAdDTO.getDepLabelName(),groupQrcodeFoAdDTO.getPurLabelName(),adNewsSet.getSendCount() - groupQrcodeFoAdDTO.getAdNewsList().size());
for (GroupQrcodeFoAdDTO groupQrcodeFoAdDTO : groupQrcodeFoAdDTOS){
_adNewsList = adNewsDao.getNewsByLabelName(adNewsSet.getId(), adNewsSet.getCreateUser(), beginTime, groupQrcodeFoAdDTO.getProLabelName(),groupQrcodeFoAdDTO.getDepLabelName(),groupQrcodeFoAdDTO.getPurLabelName(),adNewsSet.getSendCount() - groupQrcodeFoAdDTO.getAdNewsList().size());
if(!ListUtils.isEmpty(_adNewsList)){ if(!ListUtils.isEmpty(_adNewsList)){
groupQrcodeFoAdDTO.getAdNewsList().addAll(_adNewsList); groupQrcodeFoAdDTO.getAdNewsList().addAll(_adNewsList);
} }
}
// 继续筛选新闻条数不够的群,根据时间排序补齐剩余 // 如果筛选新闻条数还不够,继续再公众号匹配
if(groupQrcodeFoAdDTO.getAdNewsList().size() < adNewsSet.getSendCount()) { if(groupQrcodeFoAdDTO.getAdNewsList().size() < adNewsSet.getSendCount()) {
_adNewsList = adNewsDao.getNewsToSendBySetIdAndAdviser(adNewsSet.getId(), adNewsSet.getCreateUser(), adNewsSet.getSendCount() - groupQrcodeFoAdDTO.getAdNewsList().size()); _adNewsList = adNewsDao.getNews4WechatByLabelName(adNewsSet.getId(), adNewsSet.getCreateUser(), beginTime, groupQrcodeFoAdDTO.getProLabelName(),groupQrcodeFoAdDTO.getDepLabelName(),groupQrcodeFoAdDTO.getPurLabelName(),adNewsSet.getSendCount() - groupQrcodeFoAdDTO.getAdNewsList().size());
if (!ListUtils.isEmpty(_adNewsList)) { if(!ListUtils.isEmpty(_adNewsList)){
groupQrcodeFoAdDTO.getAdNewsList().addAll(_adNewsList);
}
}
// 继续筛选新闻条数不够的群,根据时间排序补齐剩余
if(groupQrcodeFoAdDTO.getAdNewsList().size() < adNewsSet.getSendCount()) {
_adNewsList = adNewsDao.getNewsToSendBySetIdAndAdviser(adNewsSet.getId(), adNewsSet.getCreateUser(), adNewsSet.getSendCount() - groupQrcodeFoAdDTO.getAdNewsList().size());
if (!ListUtils.isEmpty(_adNewsList)) {
groupQrcodeFoAdDTO.getAdNewsList().addAll(_adNewsList);
}
}
}
}else {
// 直接用最新数据补齐剩余条数
_adNewsList = adNewsDao.getNewsToSendBySetIdAndAdviser(adNewsSet.getId(), adNewsSet.getCreateUser(), adNewsSet.getSendCount() - adNewsList.size());
if (!ListUtils.isEmpty(_adNewsList)) {
for (GroupQrcodeFoAdDTO groupQrcodeFoAdDTO : groupQrcodeFoAdDTOS)
{
groupQrcodeFoAdDTO.getAdNewsList().addAll(_adNewsList); groupQrcodeFoAdDTO.getAdNewsList().addAll(_adNewsList);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment