Commit 49f5b9be by 郑勇

feat: [1006848] 优化接口 /book/v1.0/resourcePage/getColumnAndServeListByPageId4WechatV2

parent 5653d8cf
...@@ -1315,7 +1315,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1315,7 +1315,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
itemVO.setResultUrl(itemVO.getLinkUrl()); itemVO.setResultUrl(itemVO.getLinkUrl());
//原始二维码 //原始二维码
if(ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value.equals(itemVO.getQrcodeSource())){ if(ResourcePageConstants.QrcodeSourceEnum.OFFICIAL_ACCOUNT.value.equals(itemVO.getQrcodeSource())){
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(itemVO.getServeId()); QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getOnlySceneInfoById(itemVO.getServeId());
itemVO.setLinkUrl(qrcodeSceneDto.getQrcodeUrl()); itemVO.setLinkUrl(qrcodeSceneDto.getQrcodeUrl());
} }
} else { } else {
...@@ -3751,13 +3751,43 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -3751,13 +3751,43 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if(null!= columnType && columnType!=0) { if(null!= columnType && columnType!=0) {
serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId, navigationId, columnType); serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId, navigationId, columnType);
if (CollUtil.isNotEmpty(serveVOS)) { if (CollUtil.isNotEmpty(serveVOS)) {
List<Long> pageColumnIds = serveVOS.stream().filter(a -> null != a.getResourcePageColumnId()).map(a -> a.getResourcePageColumnId()).collect(Collectors.toList());
if(CollUtil.isEmpty(pageColumnIds)){
return new ArrayList<>();
}
List<ResourcePageItemVO> itemVOList; List<ResourcePageItemVO> itemVOList;
if (null != wechatUserId) { if (null != wechatUserId) {
itemVOList = resourcePageItemDao.getResourcePageItemByPageId(resourcePageId, true); itemVOList = resourcePageItemDao.getResourcePageItemByPageColumnId(resourcePageId, pageColumnIds,true);
} else { } else {
itemVOList = resourcePageItemDao.getResourcePageItemByPageId(resourcePageId, null); itemVOList = resourcePageItemDao.getResourcePageItemByPageColumnId(resourcePageId, pageColumnIds,null);
} }
if (CollUtil.isNotEmpty(itemVOList)) { if (CollUtil.isNotEmpty(itemVOList)) {
Map<Long, List<ResourcePageItemVO>> columnResourceMap = itemVOList.stream().collect(Collectors.groupingBy(ResourcePageItemVO::getResourcePageColumnId));
if(CollUtil.isEmpty(columnResourceMap)){
return new ArrayList<>();
}
//这儿优化。如果应用作品很多。然后有显示更多。则只取显示的数量
List<ResourcePageItemVO> itemList=new ArrayList<>();
try {
for (ResourceColumnAndServeVO serveVO : serveVOS) {
if(CollUtil.isNotEmpty(columnResourceMap) && columnResourceMap.containsKey(serveVO.getResourcePageColumnId())){
List<ResourcePageItemVO> resourcePageItemVOS = columnResourceMap.get(serveVO.getResourcePageColumnId());
if(CollUtil.isNotEmpty(resourcePageItemVOS)) {
if (null != serveVO.getShowMore() && YesOrNoEnums.YES.getValue().equals(serveVO.getShowMore())) {
if (null != serveVO.getShowCount() && serveVO.getShowCount() > 0) {
itemList.addAll(resourcePageItemVOS.subList(0, serveVO.getShowCount()));
}
} else {
itemList.addAll(resourcePageItemVOS);
}
}
}
}
} catch (Exception e) {
log.warn("应用作品填充显示更多错误"+e.getMessage());
itemList=itemVOList;
}
itemVOList=itemList;
//二维码类型 //二维码类型
fillQrcodeType(resourcePageId, itemVOList); fillQrcodeType(resourcePageId, itemVOList);
Map<String, List<ResourcePageItemVO>> listMap = itemVOList.stream().collect(Collectors.groupingBy(ResourcePageItemVO::getServeType)); Map<String, List<ResourcePageItemVO>> listMap = itemVOList.stream().collect(Collectors.groupingBy(ResourcePageItemVO::getServeType));
......
...@@ -44,6 +44,8 @@ public interface ResourcePageItemDao extends BaseDao<ResourcePageItem>{ ...@@ -44,6 +44,8 @@ public interface ResourcePageItemDao extends BaseDao<ResourcePageItem>{
*/ */
List<ResourcePageItemVO> getResourcePageItemByPageId(Long resourcePageId, Boolean isShow); List<ResourcePageItemVO> getResourcePageItemByPageId(Long resourcePageId, Boolean isShow);
List<ResourcePageItemVO> getResourcePageItemByPageColumnId(Long resourcePageId,List<Long> pageColumnIds, Boolean isShow);
/** /**
* 查资源数 * 查资源数
* @author:zhuyajie * @author:zhuyajie
......
...@@ -47,6 +47,15 @@ public class ResourcePageItemDaoImpl extends BaseDaoImpl<ResourcePageItem> imple ...@@ -47,6 +47,15 @@ public class ResourcePageItemDaoImpl extends BaseDaoImpl<ResourcePageItem> imple
} }
@Override @Override
public List<ResourcePageItemVO> getResourcePageItemByPageColumnId(Long resourcePageId, List<Long> pageColumnIds, Boolean isShow) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("resourcePageId", resourcePageId);
paramMap.put("pageColumnIds", pageColumnIds);
paramMap.put("isShow", isShow);
return getSessionTemplate().selectList(getStatement("getResourcePageItemByPageColumnId"), paramMap);
}
@Override
public Integer getResourceCounts(Long resourcePageId) { public Integer getResourceCounts(Long resourcePageId) {
return getSessionTemplate().selectOne(getStatement("getResourceCounts"), resourcePageId); return getSessionTemplate().selectOne(getStatement("getResourceCounts"), resourcePageId);
} }
......
...@@ -19,6 +19,7 @@ import lombok.Data; ...@@ -19,6 +19,7 @@ import lombok.Data;
public class ResourcePageItemVO extends BaseDto{ public class ResourcePageItemVO extends BaseDto{
private Long id; private Long id;
private Long resourcePageId;
private Long resourcePageColumnId; private Long resourcePageColumnId;
/** /**
......
...@@ -152,6 +152,41 @@ ...@@ -152,6 +152,41 @@
ORDER BY seq_num asc, id asc ORDER BY seq_num asc, id asc
</select> </select>
<select id="getResourcePageItemByPageColumnId" resultType="com.pcloud.book.group.vo.ResourcePageItemVO" parameterType="map">
SELECT
id,
serve_id serveId,
serve_type serveType,
link_url linkUrl,
resource_page_column_id resourcePageColumnId,
type_code typeCode,
logo_url logoUrl,
guide_content guideContent,
qrcode_source qrcodeSource,
create_user createUser,
seq_num seqNum,
qrcode_show_type qrcodeShowType,
account_setting_id accountSettingId,
self_big_pic selfBigPic,
self_small_pic selfSmallPic,
self_serve_name selfServeName,
resource_page_id resourcePageId
FROM
resource_page_item
WHERE
resource_page_id = #{resourcePageId}
<if test="pageColumnIds !=null and pageColumnIds.size()>0">
and resource_page_column_id in
<foreach collection="pageColumnIds" index="index" separator="," open="(" close=")" item="item">
#{item}
</foreach>
</if>
<if test="isShow != null">
and is_show = #{isShow}
</if>
ORDER BY seq_num asc, id asc
</select>
<select id="getResourceCounts" parameterType="long" resultType="integer"> <select id="getResourceCounts" parameterType="long" resultType="integer">
SELECT COUNT(1) SELECT COUNT(1)
FROM FROM
......
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