Commit 23290a6b by 朱亚洁

feat:[1004264]H5落地页改版旧数据处理

parent 8e42307c
......@@ -67,4 +67,12 @@ public class BookGroupServeDTO extends BaseDto {
@ApiModelProperty("类型")
private String typeCode;
@ApiModelProperty("大图")
private String transverseImg;
@ApiModelProperty("应用类型名称")
private String typeName;
private Long sceneId;
}
......@@ -268,4 +268,8 @@ public interface BookGroupService {
@RequestParam("bookId") Long bookId, @RequestParam("adviserId") Long adviserId,
@RequestParam("channelId") Long channelId, @RequestParam(value = "name", required = false) String name,
@RequestParam(value = "rank", required = false) Integer rank);
@ApiOperation("自有码配置的资源列表")
@PostMapping("mapSceneServeList")
ResponseEntity<ResponseDto<Map<Long, List<BookGroupServeDTO>>>> mapSceneServeList(@RequestBody List<Long> sceneIds);
}
package com.pcloud.book.group.biz;
import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.ResourcePage;
import com.pcloud.book.group.vo.ResourceColumnAndServeVO;
import com.pcloud.book.group.vo.ResourcePageItemVO;
import com.pcloud.book.group.vo.ResourcePageOneServe;
import com.pcloud.book.group.vo.ResourcePageVO;
import com.pcloud.book.group.vo.UpdateResourceColumnVO;
import com.pcloud.book.group.vo.UpdateResourcePageVO;
......@@ -152,4 +154,27 @@ public interface ResourcePageBiz {
* @return
*/
ResourcePageVO getResourcePageByBookIdAndChannelId(Long adviserBookId, Long channelId);
/**
* 查资源配置
* @author:zhuyajie
* @date:2021/4/21 14:42
* * @param null
*/
List<BookGroupServe> getServeListByBookGroupAndSceneIds(List<Long> bookGroupIds, List<Long> sceneIds);
/**
* 是否只配了一个应用/作品
* @author:zhuyajie
* @date:2021/4/21 15:09
* * @param null
*/
ResourcePageOneServe hasOneResource(Long bookGroupId, Long sceneId);
/**
* 自有码配置的资源列表
* @author:zhuyajie
* @date:2021/4/21 17:52
* * @param null
*/
Map<Long, List<BookGroupServeDTO>> mapSceneServeList(List<Long> sceneIds);
}
\ No newline at end of file
......@@ -27,6 +27,7 @@ import com.pcloud.book.group.dao.ResourcePageColumnDao;
import com.pcloud.book.group.dao.ResourcePageDao;
import com.pcloud.book.group.dao.ResourcePageItemDao;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.entity.BookAppletScene;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupServe;
......@@ -37,6 +38,7 @@ import com.pcloud.book.group.enums.QrcodeJumpType;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.ResourceColumnAndServeVO;
import com.pcloud.book.group.vo.ResourcePageItemVO;
import com.pcloud.book.group.vo.ResourcePageOneServe;
import com.pcloud.book.group.vo.ResourcePageVO;
import com.pcloud.book.group.vo.UpdateResourceColumnVO;
import com.pcloud.book.group.vo.UpdateResourcePageVO;
......@@ -1352,6 +1354,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
return resourcePageVO;
}
private String getDefaultBigPic(String productTypeCode) {
if (StringUtil.isEmpty(productTypeCode)) {
return null;
......@@ -1368,4 +1371,94 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
return null;
}
@Override
public List<BookGroupServe> getServeListByBookGroupAndSceneIds(List<Long> bookGroupIds, List<Long> sceneIds) {
List<BookGroupServe> list = new ArrayList<>();
List<BookGroupServe> bookGroupServeList = new ArrayList<>();
if (!ListUtils.isEmpty(bookGroupIds)) {
bookGroupServeList = resourcePageItemDao.getServeListByBookGroupIds(bookGroupIds);
}
List<BookGroupServe> sceneServeList = new ArrayList<>();
if (!ListUtils.isEmpty(sceneIds)) {
sceneServeList = resourcePageItemDao.getServeListBySceneIds(sceneIds);
}
list.addAll(ListUtils.isEmpty(bookGroupServeList) ? new ArrayList<>() : bookGroupServeList);
list.addAll(ListUtils.isEmpty(sceneServeList) ? new ArrayList<>() : sceneServeList);
return list;
}
@Override
public ResourcePageOneServe hasOneResource(Long bookGroupId, Long sceneId) {
ResourcePageOneServe pageOneServe = new ResourcePageOneServe();
pageOneServe.setBookGroupId(bookGroupId);
pageOneServe.setSceneId(sceneId);
pageOneServe.setOneServe(false);
ResourcePage resourcePage = null;
if (null != bookGroupId) {
resourcePage = resourcePageDao.getByBookGroupId(bookGroupId);
BookGroupDTO bookGroupDTO = bookGroupDao.getDTOById(bookGroupId);
pageOneServe.setJumpType(null == bookGroupDTO? null:bookGroupDTO.getJumpType());
} else if (null != sceneId) {
resourcePage = resourcePageDao.getBySceneId(sceneId);
}
if (null != resourcePage) {
Long resourcePageId = resourcePage.getId();
pageOneServe.setResourcePageId(resourcePageId);
//只配置了1个应用作品,且不开启小睿
ResourcePageItemVO itemVO = resourcePageItemDao.checkOneServeItemByPageId(resourcePageId);
if (null != itemVO) {
pageOneServe.setOneServe(true);
fillAppProductServe(Arrays.asList(itemVO), true);
pageOneServe.setServeId(itemVO.getServeId());
pageOneServe.setServeType(itemVO.getServeType());
pageOneServe.setLinkUrl(itemVO.getLinkUrl());
pageOneServe.setTypeCode(itemVO.getTypeCode());
pageOneServe.setResultUrl(itemVO.getResultUrl());
pageOneServe.setHasThirdLink(itemVO.getHasThirdLink());
pageOneServe.setServeName(itemVO.getServeName());
pageOneServe.setPrice(itemVO.getPrice());
}
}
return pageOneServe;
}
@Override
public Map<Long, List<BookGroupServeDTO>> mapSceneServeList(List<Long> sceneIds) {
Map<Long, List<BookGroupServeDTO>> map = new HashMap<>();
if (ListUtils.isEmpty(sceneIds)) {
return map;
}
List<BookGroupServe> sceneServeList = resourcePageItemDao.getServeListBySceneIds(sceneIds);
if (ListUtils.isEmpty(sceneServeList)) {
return map;
}
List<ResourcePageItemVO> itemVOS = new ArrayList<>();
sceneServeList.stream().forEach(s->{
ResourcePageItemVO itemVO = new ResourcePageItemVO();
itemVO.setServeId(s.getServeId());
itemVO.setServeType(s.getServeType());
itemVO.setLinkUrl(s.getServeUrl());
itemVO.setTypeCode(s.getTypeCode());
itemVO.setSceneId(s.getSceneId());
itemVOS.add(itemVO);
});
fillAppProductServe(itemVOS, false);
List<BookGroupServeDTO> serveDTOS = new ArrayList<>();
for (ResourcePageItemVO itemVO: itemVOS) {
BookGroupServeDTO serveDTO = new BookGroupServeDTO();
serveDTO.setServeId(itemVO.getServeId());
serveDTO.setServeType(itemVO.getServeType());
serveDTO.setServeUrl(itemVO.getLinkUrl());
serveDTO.setTypeCode(itemVO.getTypeCode());
serveDTO.setServeName(itemVO.getServeName());
serveDTO.setPicUrl(itemVO.getServePic());
serveDTO.setTransverseImg(itemVO.getTransverseImg());
serveDTO.setTypeName(itemVO.getTypeName());
serveDTO.setSceneId(itemVO.getSceneId());
serveDTOS.add(serveDTO);
}
map = serveDTOS.stream().collect(Collectors.groupingBy(BookGroupServeDTO::getSceneId));
return map;
}
}
package com.pcloud.book.group.dao;
import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.ResourcePageItem;
import com.pcloud.book.group.vo.ResourcePageItemVO;
......@@ -57,4 +58,20 @@ public interface ResourcePageItemDao extends BaseDao<ResourcePageItem>{
void deleteByPageId(Long resourcePageId);
List<BookGroupServe> getServeListByBookGroupIds(List<Long> bookGroupIds);
/**
* 查应用作品资源
* @author:zhuyajie
* @date:2021/4/21 10:11
* * @param null
*/
List<BookGroupServe> getServeListBySceneIds(List<Long> sceneIds);
/**
* 检查是否只有一个应用/作品
* @author:zhuyajie
* @date:2021/4/21 15:29
* * @param null
*/
ResourcePageItemVO checkOneServeItemByPageId(Long resourcePageId);
}
\ No newline at end of file
......@@ -61,4 +61,14 @@ public class ResourcePageItemDaoImpl extends BaseDaoImpl<ResourcePageItem> imple
public List<BookGroupServe> getServeListByBookGroupIds(List<Long> bookGroupIds) {
return getSessionTemplate().selectList(getStatement("getServeListByBookGroupIds"), bookGroupIds);
}
@Override
public List<BookGroupServe> getServeListBySceneIds(List<Long> sceneIds) {
return getSessionTemplate().selectList(getStatement("getServeListBySceneIds"), sceneIds);
}
@Override
public ResourcePageItemVO checkOneServeItemByPageId(Long resourcePageId) {
return getSessionTemplate().selectOne(getStatement("checkOneServeItemByPageId"), resourcePageId);
}
}
......@@ -71,4 +71,6 @@ public class BookGroupServe extends BaseEntity {
@ApiModelProperty("作者id")
private Long merchantId;
private Long sceneId;
}
......@@ -159,4 +159,11 @@ public class ResourcePageFacade {
resourcePageBiz.batchUpdateResourceQrcode(qrcodeIdList, qrcodeType);
return new ResponseDto<>();
}
@ApiOperation("是否只有一个资源")
@GetMapping("hasOneResource")
public ResponseDto<?> hasOneResource(@RequestParam(value = "bookGroupId", required = false) Long bookGroupId,
@RequestParam(value = "sceneId", required = false) Long sceneId) {
return new ResponseDto<>(resourcePageBiz.hasOneResource(bookGroupId, sceneId));
}
}
......@@ -2,6 +2,7 @@ package com.pcloud.book.group.service.impl;
import com.pcloud.book.group.biz.BookGroupAppBiz;
import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.ResourcePageBiz;
import com.pcloud.book.group.dto.AltAndCountDTO;
import com.pcloud.book.group.dto.BookAppletSceneDTO;
import com.pcloud.book.group.dto.BookGroup4CatalogDTO;
......@@ -68,6 +69,8 @@ public class BookGroupServiceImpl implements BookGroupService {
private BookGroupBiz bookGroupBiz;
@Autowired
private BookGroupAppBiz bookGroupAppBiz;
@Autowired
private ResourcePageBiz resourcePageBiz;
/**
* 获取社群书基本信息
......@@ -462,4 +465,10 @@ public class BookGroupServiceImpl implements BookGroupService {
@RequestParam(value = "rank", required = false) Integer rank) {
return ResponseHandleUtil.toResponse(bookGroupBiz.listBookGroup4BookCatalog(bookId, adviserId, channelId, name, rank));
}
@Override
@PostMapping("mapSceneServeList")
public ResponseEntity<ResponseDto<Map<Long, List<BookGroupServeDTO>>>> mapSceneServeList(@RequestBody List<Long> sceneIds) {
return ResponseHandleUtil.toResponse(resourcePageBiz.mapSceneServeList(sceneIds));
}
}
......@@ -86,4 +86,7 @@ public class ResourcePageItemVO extends BaseDto{
private GroupActivity4AppletDTO activity4AppletDTO;
@ApiModelProperty("第三方资源")
private AppletThirdResources appletThirdResources;
private Long sceneId;
}
package com.pcloud.book.group.vo;
import com.pcloud.common.dto.BaseDto;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.vo.ResourcePageOneServe
* @Author zhuyajie
* @Description 只有一个资源
* @Date 2021/4/21 15:06
* @Version 1.0
**/
@Data
public class ResourcePageOneServe extends BaseDto {
private Long bookGroupId;
private Long sceneId;
private Long resourcePageId;
/**
* 资源id
*/
private Long serveId;
/**
* 资源类型
*/
private String serveType;
/**
* 链接url
*/
private String linkUrl;
/**
* 资源类型
*/
private String typeCode;
/**
* 跳转结果链接
*/
private String resultUrl;
/**
* 是否只有一个资源
*/
private Boolean oneServe;
private Boolean hasThirdLink;
private String serveName;
private Double price;
private Integer jumpType;
}
......@@ -142,7 +142,7 @@
p.book_group_id = #{bookGroupId}
AND i.serve_type IN ('APP', 'PRODUCT')
ORDER BY
c.column_seq ASC
c.column_seq ASC, i.seq_num ASC, i.id ASC
</select>
<delete id="deleteByPageId" parameterType="long">
......@@ -167,7 +167,47 @@
</foreach>
AND i.serve_type IN ('APP', 'PRODUCT')
ORDER BY
c.column_seq ASC
c.column_seq ASC, i.seq_num ASC, i.id ASC
</select>
<select id="getServeListBySceneIds" parameterType="list" resultType="com.pcloud.book.group.entity.BookGroupServe">
SELECT
i.serve_id serveId,
i.serve_type serveType,
i.link_url serveUrl,
p.create_user createUser,
i.type_code typeCode,
p.scene_id sceneId
FROM
resource_page_item i
LEFT JOIN resource_page p ON i.resource_page_id = p.id
LEFT JOIN resource_page_column c ON i.resource_page_column_id = c.id
WHERE
p.scene_id IN
<foreach collection="list" index="index" separator="," open="(" close=")" item="item">
#{item}
</foreach>
AND i.serve_type IN ('APP', 'PRODUCT')
ORDER BY
c.column_seq ASC, i.seq_num ASC, i.id ASC
</select>
<!--只配置了1个应用作品,且不开启小睿-->
<select id="checkOneServeItemByPageId" resultType="com.pcloud.book.group.vo.ResourcePageItemVO" parameterType="map">
SELECT
i.serve_id serveId,
i.serve_type serveType,
i.link_url linkUrl,
i.type_code typeCode,
i.create_user createUser
FROM
resource_page p
LEFT JOIN resource_page_item i ON i.resource_page_id = p.id
WHERE
resource_page_id = #{resourcePageId}
AND p.open_rays = 0
HAVING
COUNT(i.id) = 1
AND i.serve_type IN ("APP", "PRODUCT")
</select>
</mapper>
\ No newline at end of file
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