Commit 40dda3c0 by Administrator

Merge branch 'feature/1003648' into 'master'

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

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