Commit c655b088 by 郑永强

加入判断规则

parent a1995685
......@@ -26,6 +26,7 @@ import com.pcloud.book.adnews.enums.AdContentFromEnum;
import com.pcloud.book.adnews.enums.AdNewsBanEnum;
import com.pcloud.book.adnews.dto.AdNewsListParam;
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.AdNewsMessageStatisticVO;
import com.pcloud.book.base.exception.BookBizException;
......@@ -427,35 +428,47 @@ public class AdNewsBizImpl implements AdNewsBiz {
groupQrcodeFoAdDTO.setAdNewsList(adNewsList.stream().collect(Collectors.toList()));
}
List<AdNews> _adNewsList = new ArrayList<>();
// 如果自有公众号的数据条数少于要发送的条数,则用系统推荐公众号的补齐剩余的条数
if(adNewsList.size() < adNewsSet.getSendCount()){
// 根据群批量查找社群码的标签
setGroupLabelName(groupQrcodeFoAdDTOS);
// 标签去重进行匹配新闻
List<Long> bookGroupIds = groupQrcodeFoAdDTOS.stream().map(x -> x.getBookGroupId()).distinct().collect(Collectors.toList());
// 三天前
String beginTime = DateUtils.formatDate(DateUtils.subDays(3), DateUtils.DATE_FORMAT_DATEONLY);
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);
}
List<AdNews> _adNewsList = new ArrayList<>();
if(AdNewsSendRuleEnum.MATCH_LABEL.key == adNewsSet.getSendRule()){
// 根据群批量查找社群码的标签
setGroupLabelName(groupQrcodeFoAdDTOS);
// 标签去重进行匹配新闻
List<Long> bookGroupIds = groupQrcodeFoAdDTOS.stream().map(x -> x.getBookGroupId()).distinct().collect(Collectors.toList());
// 如果筛选新闻条数还不够,继续再公众号匹配
if(groupQrcodeFoAdDTO.getAdNewsList().size() < adNewsSet.getSendCount()) {
_adNewsList = adNewsDao.getNews4WechatByLabelName(adNewsSet.getId(), adNewsSet.getCreateUser(), beginTime, groupQrcodeFoAdDTO.getProLabelName(),groupQrcodeFoAdDTO.getDepLabelName(),groupQrcodeFoAdDTO.getPurLabelName(),adNewsSet.getSendCount() - groupQrcodeFoAdDTO.getAdNewsList().size());
// 三天前
String beginTime = DateUtils.formatDate(DateUtils.subDays(3), DateUtils.DATE_FORMAT_DATEONLY);
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()) {
_adNewsList = adNewsDao.getNewsToSendBySetIdAndAdviser(adNewsSet.getId(), adNewsSet.getCreateUser(), adNewsSet.getSendCount() - groupQrcodeFoAdDTO.getAdNewsList().size());
if (!ListUtils.isEmpty(_adNewsList)) {
// 如果筛选新闻条数还不够,继续再公众号匹配
if(groupQrcodeFoAdDTO.getAdNewsList().size() < adNewsSet.getSendCount()) {
_adNewsList = adNewsDao.getNews4WechatByLabelName(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()) {
_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);
}
}
......
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