Commit 7871cb51 by 朱亚洁

feat:[1003648]答案弹窗、答案订阅优化为按名称判断

parent 3fc7e0b8
package com.pcloud.book.applet.biz.impl;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.applet.biz.AnswerSubscribeBiz;
import com.pcloud.book.applet.contants.AppletConstants;
import com.pcloud.book.applet.dao.AnswerSubscribeDao;
......@@ -26,6 +25,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
......@@ -53,8 +53,6 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
private BookGroupBiz bookGroupBiz;
@Autowired
private BookBiz bookBiz;
@Autowired
private AppConsr appConsr;
@Override
public void answerSubscribe(AnswerSubscribeDTO answerSubscribeDTO) {
......@@ -96,7 +94,13 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
//默认有答案
Boolean hasAnswer = true;
List<BookServeDTO> bookServeVOS = bookGroupBiz.getBookAndBookGroupServeIds(adviserId, bookId, channelId);
List<BookServeDTO> answerList = bookServeVOS.stream().filter(s -> AppTypeEnum.ANSWER.value.equals(s.getFromType())).collect(Collectors.toList());
bookGroupBiz.fillBookServe(bookServeVOS);
bookGroupBiz.removeCanNotBuy(bookServeVOS);
List<BookServeDTO> answerList = new ArrayList<>();
if (!ListUtils.isEmpty(bookServeVOS)){
answerList = bookServeVOS.stream().
filter(s -> AppTypeEnum.ANSWER.value.equals(s.getFromType()) || s.getServeName().contains("答案")).collect(Collectors.toList());
}
if (ListUtils.isEmpty(answerList)) {
if ("pro".equals(BookProps.getSystemEnv()) && AppletConstants.NO_ANSWER_BOOK.contains(bookId)) {
hasAnswer = false;
......@@ -133,18 +137,19 @@ public class AnswerSubscribeBizImpl implements AnswerSubscribeBiz {
continue;
}
List<BookServeDTO> bookServeVOS = bookGroupBiz.getBookAndBookGroupServeIds(answerSubscribeBook.getAdviserId(), answerSubscribeBook.getBookId(), answerSubscribeBook.getChannelId());
List<BookServeDTO> answerList = bookServeVOS.stream().filter(s -> AppTypeEnum.ANSWER.value.equals(s.getFromType())).collect(Collectors.toList());
if (ListUtils.isEmpty(answerList)) {
bookGroupBiz.fillBookServe(bookServeVOS);
bookGroupBiz.removeCanNotBuy(bookServeVOS);
if (ListUtils.isEmpty(bookServeVOS)){
continue;
}
Long appId = answerList.get(0).getServeId();
AppDto appDto = appConsr.getBaseById(appId);
if (null == appDto){
List<BookServeDTO> answerList = bookServeVOS.stream().
filter(s -> AppTypeEnum.ANSWER.value.equals(s.getFromType()) || s.getServeName().contains("答案")).collect(Collectors.toList());
if (ListUtils.isEmpty(answerList)) {
continue;
}
for (AnswerSubscribe answerSubscribeUser : userList) {
sendAppletTemplateMsg(answerSubscribeUser.getWechatUserId(), answerSubscribeUser.getAccountSettingId(),
bookDto.getBookName(), appDto.getTitle());
bookDto.getBookName(), answerList.get(0).getServeName());
//更新发送状态
answerSubscribeUser.setSendState(AnswerSendStateEnum.has_send.code);
answerSubscribeDao.updateSendState(answerSubscribeUser);
......
......@@ -843,6 +843,8 @@ public interface BookGroupBiz {
BookAppletSceneDTO getBookAppletBySceneId(Long sceneId);
public void fillBookServe(List<BookServeDTO> serveDTOList);
/**
* 获取图书信息-首页
* @param adviserId
......
......@@ -5131,12 +5131,20 @@ public class BookGroupBizImpl implements BookGroupBiz {
return dto;
}
private void fillBookServe( List<BookServeDTO> serveDTOList ) {
@Override
public void fillBookServe(List<BookServeDTO> serveDTOList) {
if (ListUtils.isEmpty(serveDTOList)) {
return;
}
List<Long> appIds = serveDTOList.stream().filter(s -> s.getServeType().equals(AppAndProductTypeEnum.APP.value)).map(BookServeDTO::getServeId).collect(Collectors.toList());
List<Long> productIds = serveDTOList.stream().filter(s -> s.getServeType().equals(AppAndProductTypeEnum.PRODUCT.value)).map(BookServeDTO::getServeId).collect(Collectors.toList());
List<Long> appIds = new ArrayList<>();
List<Long> productIds = new ArrayList<>();
for (BookServeDTO bookServeDTO : serveDTOList){
if (bookServeDTO.getServeType().equals(AppAndProductTypeEnum.APP.value) && !appIds.contains(bookServeDTO.getServeId())){
appIds.add(bookServeDTO.getServeId());
} else if (bookServeDTO.getServeType().equals(AppAndProductTypeEnum.PRODUCT.value) && !productIds.contains(bookServeDTO.getServeId())){
productIds.add(bookServeDTO.getServeId());
}
}
Map<Long, ProductDto> productDtoMap = new HashMap<>();
Map<Long, AppDto> appDtoMap = new HashMap<>();
if (!ListUtils.isEmpty(productIds)) {
......
......@@ -3018,19 +3018,23 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
}
answerList = new ArrayList<>();
List<BookServeDTO> bookServeVOS = bookGroupBiz.getBookAndBookGroupServeIds(adviserId, bookId, channelId);
List<RightsNowItem> itemList = new ArrayList<>();
if (!ListUtils.isEmpty(bookServeVOS)) {
for (BookServeDTO vo : bookServeVOS) {
if (AppTypeEnum.ANSWER.value.equals(vo.getFromType())){
RightsNowItem item = new RightsNowItem();
item.setType(RightsNowItemTypeNew.SERVES.value);
item.setServeId(vo.getServeId());
item.setServeType(vo.getTypeCode());
item.setLinkUrl(vo.getUrl());
answerList.add(item);
}
RightsNowItem item = new RightsNowItem();
item.setType(RightsNowItemTypeNew.SERVES.value);
item.setServeId(vo.getServeId());
item.setServeType(vo.getTypeCode());
item.setLinkUrl(vo.getUrl());
itemList.add(item);
}
}
fillProductAndApp(answerList);
fillProductAndApp(itemList);
removeCanNotBuy(itemList);
if (!ListUtils.isEmpty(itemList)){
answerList = itemList.stream().
filter(s->s.getServeName().contains("答案") || s.getServeTypeCode().equals(AppTypeEnum.ANSWER.value)).collect(Collectors.toList());
}
if (!ListUtils.isEmpty(answerList) && answerList.size() > 2) {
//最多取两个
answerList = answerList.subList(0, 2);
......
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