Commit ad9bea68 by 朱亚洁

feat:[1006809]书码流程

parent f11bbe78
......@@ -1055,11 +1055,13 @@ public class BookBizImpl implements BookBiz {
// 设置二维码相关信息
bookSet.setQrInfo(pageBean.getRecordList());
//社群书相关信息
bookSet.setBookGroupInfo(pageBean.getRecordList());
// bookSet.setBookGroupInfo(pageBean.getRecordList());
//设置书刊资源目录按钮展示
bookSet.setBookCatalogInfo(pageBean.getRecordList(), adviserId);
//设置书刊是否是小睿书(开启小睿流程)
bookSet.setOpenRobotProcess(pageBean.getRecordList());
//设置Rays码资源数量
bookSet.setQrcodeMessage(pageBean.getRecordList());
return pageBean;
}
......
......@@ -61,8 +61,10 @@ import com.pcloud.book.group.biz.ResourcePageBiz;
import com.pcloud.book.group.dao.BookGroupClassifyDao;
import com.pcloud.book.group.dao.BookGroupDao;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.constants.ChannelConstants;
import com.pcloud.channelcenter.base.constants.MessageFromTypeEnum;
import com.pcloud.channelcenter.qrcode.dto.Book4CatalogDTO;
import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO;
......@@ -2138,4 +2140,25 @@ public class BookSet {
}
this.setProDepPurLabelNames(bookDtos);
}
public void setQrcodeMessage(List<Object> recordList) {
if (ListUtils.isEmpty(recordList)) {
return;
}
List<Long> sceneIds = new ArrayList<>();
for (Object obj : recordList) {
BookDto bookDto = (BookDto) obj;
if (null != bookDto.getSceneId() && ChannelConstants.QrCodeType.OWN.getName().equalsIgnoreCase(bookDto.getQrcodeType())) {
sceneIds.add(bookDto.getSceneId());
}
}
Map<Long, BookGroupServeCountDTO> serveCountDTOMap=resourcePageBiz.mapQrServeCount(sceneIds);
for (Object obj : recordList) {
BookDto bookDto = (BookDto) obj;
if (!MapUtils.isEmpty(serveCountDTOMap) &&null != bookDto.getSceneId() && serveCountDTOMap.containsKey(bookDto.getSceneId())) {
BookGroupServeCountDTO dto = serveCountDTOMap.get(bookDto.getSceneId());
bookDto.setMessageCount(dto.getServeCount());
}
}
}
}
......@@ -95,4 +95,23 @@ public class ResourceConsr {
}
return list;
}
/**
* 获取资源基本信息
*/
public Map<Long,ResourceDTO> mapResourceByIds(List<Long> resourceIds,boolean isFileInfo, boolean isPdfImage) throws BizException {
LOGGER.info("获取资源基本信息[resourceService.mapByIds],参数列表[resourceIds]:" + resourceIds);
Map<Long, ResourceDTO> resourceDtos = new HashMap<>();
if (ListUtils.isEmpty(resourceIds)) {
return resourceDtos;
}
try {
resourceDtos = ResponseHandleUtil.parseMapResponse(resourceService.mapByIds(resourceIds, isFileInfo, isPdfImage), Long.class, ResourceDTO.class);
LOGGER.info("获取资源基本信息【END】");
} catch (Exception e) {
LOGGER.error("获取资源基本信息[resourceService.mapByIds]:" + e.getMessage(), e);
throw new BookBizException(BookBizException.INVOKE_CONTENT_ERROR, "获取资源基本信息失败~!");
}
return resourceDtos;
}
}
......@@ -7,11 +7,8 @@ import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.exceptions.ChannelBizException;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.utils.BeanUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.ThreadUtil;
import com.pcloud.resourcecenter.product.dto.ProDto;
import com.pcloud.resourcecenter.product.dto.Product4BookDTO;
import com.pcloud.resourcecenter.product.dto.ProductDto;
......@@ -21,6 +18,8 @@ import com.pcloud.resourcecenter.product.dto.UpdateAppProductParamDTO;
import com.pcloud.resourcecenter.product.entity.Article;
import com.pcloud.resourcecenter.product.entity.Product;
import com.pcloud.resourcecenter.product.service.ProductService;
import com.pcloud.resourcecenter.store.dto.SinglePageInfoDTO;
import com.pcloud.resourcecenter.store.service.StoreService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -54,6 +53,8 @@ public class ProductConsr {
@Autowired
private ProductService productService;
@Autowired
private StoreService storeService;
/**
* 微信端,资源中心拉取商品信息
......@@ -526,4 +527,21 @@ public class ProductConsr {
}
return result;
}
/**
* @Description 运营商城单页面信息
* @Author zhuyajie
* @Date 17:21 2022/3/14
**/
public Map<Long, SinglePageInfoDTO> mapSinglePageByIds(List<Long> singlePageIds) {
if (ListUtils.isEmpty(singlePageIds)) {
return new HashMap<>();
}
try {
return ResponseHandleUtil.parseMapResponse(storeService.mapSinglePageByIds(singlePageIds),Long.class,SinglePageInfoDTO.class);
} catch (Exception e) {
LOGGER.error("调用storeService.mapSinglePageByIds失败"+e.getMessage(),e);
}
return new HashMap<>();
}
}
......@@ -17,6 +17,7 @@ import com.pcloud.book.group.entity.ResourcePageTool;
import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.book.group.vo.RecommendServeVO;
import com.pcloud.book.group.vo.ResourceColumnAndServeVO;
import com.pcloud.book.group.vo.ResourcePageItemResourceVO;
import com.pcloud.book.group.vo.ResourcePageItemVO;
import com.pcloud.book.group.vo.ResourcePageOneServe;
import com.pcloud.book.group.vo.ResourcePageShareParam;
......@@ -184,7 +185,7 @@ public interface ResourcePageBiz {
* @date:2021/4/21 15:09
* * @param null
*/
ResourcePageOneServe hasOneResource(Long bookGroupId, Long sceneId, Long wechatUserId);
ResourcePageOneServe hasOneResource(Long bookGroupId, Long sceneId, Long wechatUserId, Boolean ignoreRays);
/**
* 自有码配置的资源列表
......@@ -572,4 +573,12 @@ public interface ResourcePageBiz {
* @return
*/
List<ResourcePageItemVO> getServerList4Wechat(Long wechatUserId, Long sceneId);
/**
* @Description 一码一资源,素材列表
* @Author zhuyajie
* @Date 13:39 2022/3/16
**/
List<ResourcePageItemResourceVO> listQrOneResourceByBook(Long sceneId, Long wechatUserId);
Map<Long, BookGroupServeCountDTO> mapQrServeCount(List<Long> sceneIds);
}
......@@ -23,7 +23,8 @@ public class ResourcePageConstants {
*/
public enum ColumnTypeEnum {
APP_PRODUCT(1, "应用作品", new String[]{ServeTypeEnum.APP.getValue(), ServeTypeEnum.PRODUCT.getValue()}),
APP_PRODUCT(1, "应用作品", new String[]{ServeTypeEnum.APP.getValue(), ServeTypeEnum.PRODUCT.getValue(),
ServeTypeEnum.RESOURCE.getValue()}),
OFFICIAL_ACCOUNT(2, "公众号", new String[]{ServeTypeEnum.OFFICIAL_ACCOUNT.getValue()}),
BOOKLIST(3, "书单", new String[]{ServeTypeEnum.BOOKLIST.getValue(),ServeTypeEnum.ADVISER_BOOK.getValue()}),
GROUP(4, "社群", new String[]{ServeTypeEnum.GROUP_ACTIVITY.getValue(), ServeTypeEnum.WXWORK_GROUP.getValue()}),
......@@ -31,7 +32,8 @@ public class ResourcePageConstants {
PICTURE(6, "图片位", new String[]{ServeTypeEnum.APP.getValue(), ServeTypeEnum.PRODUCT.getValue(),
ServeTypeEnum.GROUP_ACTIVITY.getValue(), ServeTypeEnum.THIRD_RESOURCE.getValue(), ServeTypeEnum.NO_SERVE.value}),
RAYS_TOOL(7,"RAYS工具",new String[]{ServeTypeEnum.APP.getValue()}),
MEMBER_ACTIVITY(8,"平台会员活动", new String[]{ServeTypeEnum.MEMBER_ACTIVITY.getValue()});
MEMBER_ACTIVITY(8,"平台会员活动", new String[]{ServeTypeEnum.MEMBER_ACTIVITY.getValue()}),
CHANNEL_SHOP(9,"运营商城", new String[]{ServeTypeEnum.SHOP.getValue()});
private Integer code;
private String name;
......@@ -85,7 +87,9 @@ public class ResourcePageConstants {
THIRD_RESOURCE("THIRD_RESOURCE", "第三方资源"),
WXWORK_GROUP("WXWORK_GROUP","企业微信群"),
MEMBER_ACTIVITY("MEMBER_ACTIVITY","平台会员活动"),
NO_SERVE("NO_SERVE","无服务");
NO_SERVE("NO_SERVE","无服务"),
SHOP("SHOP","运营商城"),
RESOURCE("RESOURCE","素材");
private String value;
......
......@@ -6,6 +6,7 @@ import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.dto.ResourcePageUrlDTO;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.ResourcePageItem;
import com.pcloud.book.group.vo.ResourcePageItemResourceVO;
import com.pcloud.book.group.vo.ResourcePageItemVO;
import com.pcloud.common.core.dao.BaseDao;
import com.pcloud.common.page.PageBeanNew;
......@@ -80,7 +81,7 @@ public interface ResourcePageItemDao extends BaseDao<ResourcePageItem>{
* @date:2021/4/21 15:29
* * @param null
*/
ResourcePageItemVO checkOneServeItemByPageId(Long resourcePageId);
ResourcePageItemVO checkOneServeItemByPageId(Long resourcePageId, Boolean ignoreRays);
void deleteByServeId(Long resourceId);
......@@ -158,4 +159,6 @@ public interface ResourcePageItemDao extends BaseDao<ResourcePageItem>{
List<ResourceOnBookDTO> listResourceOnBook(Map<String,Object> paramMap);
List<BookGroupServe> getResourcePageList4Erp(List<Long> sceneIds);
List<ResourcePageItemResourceVO> listQrOneResourceByBook(Long bookId, Long adviserId);
}
......@@ -7,6 +7,7 @@ import com.pcloud.book.group.dto.ResourcePageUrlDTO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.ResourcePageItem;
import com.pcloud.book.group.vo.ResourcePageItemResourceVO;
import com.pcloud.book.group.vo.ResourcePageItemVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
......@@ -81,8 +82,11 @@ public class ResourcePageItemDaoImpl extends BaseDaoImpl<ResourcePageItem> imple
}
@Override
public ResourcePageItemVO checkOneServeItemByPageId(Long resourcePageId) {
return getSessionTemplate().selectOne(getStatement("checkOneServeItemByPageId"), resourcePageId);
public ResourcePageItemVO checkOneServeItemByPageId(Long resourcePageId, Boolean ignoreRays) {
Map<String,Object> map = new HashMap<>();
map.put("ignoreRays", ignoreRays);
map.put("resourcePageId", resourcePageId);
return getSessionTemplate().selectOne(getStatement("checkOneServeItemByPageId"), map);
}
@Override
......@@ -157,4 +161,12 @@ public class ResourcePageItemDaoImpl extends BaseDaoImpl<ResourcePageItem> imple
public List<BookGroupServe> getResourcePageList4Erp(List<Long> sceneIds) {
return getSessionTemplate().selectList(getStatement("getResourcePageList4Erp"), sceneIds);
}
@Override
public List<ResourcePageItemResourceVO> listQrOneResourceByBook(Long bookId, Long adviserId) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("bookId", bookId);
paramMap.put("adviserId", adviserId);
return getSessionTemplate().selectList(getStatement("listQrOneResourceByBook"), paramMap);
}
}
......@@ -73,4 +73,7 @@ public class BookGroupServe extends BaseEntity {
private Long merchantId;
private Long sceneId;
private Long resourcePageId;
}
......@@ -215,9 +215,10 @@ public class ResourcePageFacade {
@GetMapping("hasOneResource")
public ResponseDto<?> hasOneResource(@CookieValue("userInfo") String userInfo,
@RequestParam(value = "bookGroupId", required = false) Long bookGroupId,
@RequestParam(value = "sceneId", required = false) Long sceneId) {
@RequestParam(value = "sceneId", required = false) Long sceneId,
@RequestParam(value = "ignoreRays",required = false) Boolean ignoreRays) {
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(resourcePageBiz.hasOneResource(bookGroupId, sceneId, wechatUserId));
return new ResponseDto<>(resourcePageBiz.hasOneResource(bookGroupId, sceneId, wechatUserId,ignoreRays));
}
@ApiOperation("添加收藏记录")
......@@ -477,4 +478,12 @@ public class ResourcePageFacade {
}
@ApiOperation("一码一资源,素材列表")
@GetMapping("listQrOneResourceByBook")
public ResponseDto<?> listQrOneResourceByBook(@CookieValue("userInfo") String userInfo,
@RequestParam("sceneId") Long sceneId) {
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(resourcePageBiz.listQrOneResourceByBook(sceneId,wechatUserId));
}
}
package com.pcloud.book.group.vo;
import com.pcloud.common.dto.BaseDto;
import com.pcloud.contentcenter.resource.dto.ResourceOfficeItemDTO;
import com.pcloud.contentcenter.resource.dto.ResourcePdfItemDTO;
import java.math.BigDecimal;
import java.util.List;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.vo.ResourcePageItemResourceVO
* @Author zhuyajie
* @Description
* @Date 2022/3/16 13:33
**/
@Data
public class ResourcePageItemResourceVO extends BaseDto {
private Long id;
private Long resourcePageId;
private Long resourcePageColumnId;
/**
* 资源id
*/
private Long serveId;
/**
* 资源类型
*/
private String serveType;
/**
* 链接url
*/
private String linkUrl;
/**
* 资源类型
*/
private String typeCode;
private String typeName;
private String resourceName;
private String fileUrl;
private Long fileSize;
private String fileType;
private String fileCategory;
private String fileId;
private BigDecimal duration;
private Integer convertState;
private List<ResourcePdfItemDTO> resourcePdfItems;
private List<ResourceOfficeItemDTO> resourceOfficeItemDTOs;
}
......@@ -141,7 +141,8 @@
account_setting_id accountSettingId,
self_big_pic selfBigPic,
self_small_pic selfSmallPic,
self_serve_name selfServeName
self_serve_name selfServeName,
resource_page_id resourcePageId
FROM
resource_page_item
WHERE
......@@ -247,7 +248,8 @@
i.link_url serveUrl,
p.create_user createUser,
i.type_code typeCode,
p.scene_id sceneId
p.scene_id sceneId,
i.resource_page_id resourcePageId
FROM
resource_page_item i
LEFT JOIN resource_page p ON i.resource_page_id = p.id
......@@ -258,7 +260,7 @@
<foreach collection="list" index="index" separator="," open="(" close=")" item="item">
#{item}
</foreach>
AND i.serve_type IN ('APP', 'PRODUCT')
AND i.serve_type IN ('APP', 'PRODUCT','RESOURCE')
ORDER BY
n.navigation_seq ASC, c.column_seq ASC, i.seq_num ASC, i.id ASC
</select>
......@@ -270,16 +272,19 @@
i.serve_type serveType,
i.link_url linkUrl,
i.type_code typeCode,
i.create_user createUser
i.create_user createUser,
i.resource_page_id resourcePageId
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
<if test="ignoreRays == null or ignoreRays == false">
AND p.open_rays = 0
</if>
HAVING
COUNT(i.id) = 1
AND i.serve_type IN ("APP", "PRODUCT")
AND i.serve_type IN ("APP", "PRODUCT", "RESOURCE")
</select>
<delete id="deleteByServeId" parameterType="long">
......@@ -438,7 +443,7 @@
LEFT JOIN resource_page_navigation n ON c.navigation_id = n.id
WHERE
p.scene_id = #{sceneId}
AND i.serve_type IN ('APP', 'PRODUCT','MEMBER_ACTIVITY')
AND i.serve_type IN ('APP', 'PRODUCT','MEMBER_ACTIVITY','RESOURCE')
GROUP BY i.serve_id
ORDER BY
n.navigation_seq ASC, c.column_seq ASC, i.id ASC
......@@ -483,4 +488,30 @@
</foreach>
AND i.serve_type IN ('APP', 'PRODUCT')
</select>
<!--一码一素材,素材列表-->
<select id="listQrOneResourceByBook" resultType="com.pcloud.book.group.vo.ResourcePageItemResourceVO" parameterType="map">
SELECT
i.id,
i.resource_page_id resourcePageId,
i.resource_page_column_id resourcePageColumnId,
i.serve_id serveId,
i.serve_type serveType,
i.link_url linkUrl,
i.type_code typeCode
FROM
resource_page_item i
LEFT JOIN resource_page p ON i.resource_page_id = p.id
WHERE
p.book_id = #{bookId}
AND p.create_user = #{adviserId}
GROUP BY
i.resource_page_id
HAVING
COUNT(i.id) = 1
AND i.serve_type = 'RESOURCE'
ORDER BY
i.create_time desc,i.resource_page_id desc
</select>
</mapper>
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