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);
}
......@@ -35,6 +35,7 @@ import com.pcloud.book.consumer.analysisengine.BrowseRecordConsr;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.combinedmarketing.MemberActivityConsr;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.erp.ErpConsr;
import com.pcloud.book.consumer.function.FunctionConsr;
import com.pcloud.book.consumer.raystask.AdviserTaskConsr;
......@@ -104,6 +105,7 @@ import com.pcloud.book.group.vo.CrmContactQrcodeVO;
import com.pcloud.book.group.vo.RecommendServeVO;
import com.pcloud.book.group.vo.ResourceColumnAndServeVO;
import com.pcloud.book.group.vo.ResourcePageBookstoreVO;
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;
......@@ -148,6 +150,7 @@ import com.pcloud.common.utils.UUIDUitl;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.json.JSONUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.facade.shareimage.dto.HtmlDto;
import com.pcloud.facade.wxwork.contact.vo.WxContactWayVO;
import com.pcloud.function.douluo.dto.AppTaskDTO;
......@@ -156,6 +159,7 @@ import com.pcloud.readercenter.common.enums.YesOrNoNumEnum;
import com.pcloud.readercenter.userlabel.dto.UserGradeLabelIdDTO;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductLabelDto;
import com.pcloud.resourcecenter.store.dto.SinglePageInfoDTO;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.wechatgroup.wxwork.dto.WxworkGroupQrcodeBaseDTO;
......@@ -302,6 +306,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
private FunctionConsr functionConsr;
@Autowired
private ResourcePageModelDao resourcePageModelDao;
@Autowired
private ResourceConsr resourceConsr;
@Value("${book.share.defaultTitle}")
......@@ -1126,26 +1132,9 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
itemVOList.addAll(itemAppAndProductVOList);
}
itemVOList.sort(Comparator.comparing(ResourcePageItemVO::getId));
Map<Long, List<ResourcePageItemVO>> columnMap = itemVOList.stream().collect(Collectors.groupingBy(ResourcePageItemVO::getResourcePageColumnId));
List<ResourceColumnAndServeVO> removeColumns = new ArrayList<>();
for (ResourceColumnAndServeVO columnAndServeVO : serveVOS) {
List<ResourcePageItemVO> itemVOS = columnMap.get(columnAndServeVO.getResourcePageColumnId());
if (ListUtils.isEmpty(itemVOS)) {
removeColumns.add(columnAndServeVO);
continue;
}
columnAndServeVO.setItemVOList(itemVOS);
String serveType = itemVOS.get(0).getServeType();
if (ResourcePageConstants.ServeTypeEnum.APP.getValue().equals(serveType) ||
(ResourcePageConstants.ServeTypeEnum.PRODUCT.getValue().equals(serveType))) {
serveType = "APP/PRODUCT";
}
columnAndServeVO.setServeType(serveType);
//图片位
if (ResourcePageConstants.ColumnTypeEnum.PICTURE.getCode().equals(columnAndServeVO.getColumnType())) {
columnAndServeVO.setLogoUrl(itemVOS.get(0).getLogoUrl());
}
}
List<ResourceColumnAndServeVO> removeColumns = setPageColumnOther(serveVOS, itemVOList);
if (!ListUtils.isEmpty(removeColumns)) {
serveVOS.removeAll(removeColumns);
}
......@@ -1257,6 +1246,96 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
fillWxworkGroup(itemVOS);
} else if (ResourcePageConstants.ServeTypeEnum.MEMBER_ACTIVITY.getValue().equals(serveType)) {
fillMemberActivity(itemVOS);
} else if (ServeTypeEnum.SHOP.getValue().equals(serveType)) {
fillChannelShop(itemVOS);
} else if (ServeTypeEnum.RESOURCE.getValue().equals(serveType)) {
fillFileResource(itemVOS, wechatUserId);
}
}
@ParamLog("填充文件素材")
private void fillFileResource(List<ResourcePageItemVO> itemVOS, Long wechatUserId) {
log.info("填充文件素材");
if (ListUtils.isEmpty(itemVOS)) {
return;
}
List<Long> serveIds = itemVOS.stream().filter(s->ServeTypeEnum.RESOURCE.getValue().equals(s.getServeType())).map(ResourcePageItemVO::getServeId).distinct().collect(Collectors.toList());
Map<Long, ResourceDTO> resourceDTOMap = resourceConsr.mapResourceByIds(serveIds, false, false);
if (MapUtils.isEmpty(resourceDTOMap)) {
return;
}
Long channelId = null;
if (null != itemVOS.get(0).getResourcePageId()) {
ResourcePage resourcePage = resourcePageDao.getById(itemVOS.get(0).getResourcePageId());
channelId = resourcePage.getChannelId();
}
if (null == channelId) {
channelId = getChannelIdFromUrl(itemVOS.get(0).getLinkUrl());
}
if (null == channelId){
channelId = adviserConsr.getDefaultChannel(itemVOS.get(0).getCreateUser());
}
AccountSettingDto accountSettingDto = new AccountSettingDto();
if (null != wechatUserId) {
accountSettingDto = qrcodeSceneConsr.getWechatInfo(channelId);
}
for (ResourcePageItemVO itemVO : itemVOS) {
if (!ServeTypeEnum.RESOURCE.getValue().equals(itemVO.getServeType())) {
continue;
}
ResourceDTO resourceDTO = resourceDTOMap.get(itemVO.getServeId());
itemVO.setTypeName("素材");
if (null != resourceDTO) {
itemVO.setServeName(resourceDTO.getResourceName());
}
itemVO.setChannelId(channelId);
setFileResourceDefaultPic(itemVO);
if (null != wechatUserId) {
String resultLinkUrl = itemVO.getLinkUrl();
if (!itemVO.getLinkUrl().startsWith("http")) {
resultLinkUrl = SendWeixinRequestTools.splitUrl(accountSettingDto, itemVO.getLinkUrl());
}
itemVO.setResultUrl(resultLinkUrl);
}
}
}
private void setFileResourceDefaultPic(ResourcePageItemVO itemVO) {
if (null == itemVO || null == itemVO.getTypeCode()) {
return;
}
if ("AUDIO".equals(itemVO.getTypeCode())) {
itemVO.setServePic("https://oss.5rs.me/oss/uploadfe/png/bf415da05f8ba18c15fb750bea77e307.png");
itemVO.setTransverseImg("https://oss.5rs.me/oss/uploadfe/png/db6407cdb660b9f082da8155ae2e0599.png");
} else if ("VIDEO".equals(itemVO.getTypeCode())) {
itemVO.setServePic("https://oss.5rs.me/oss/uploadfe/png/b957f4c0b3901fff7a698a8b9af7793d.png");
itemVO.setTransverseImg("https://oss.5rs.me/oss/uploadfe/png/5e05173b3e0605d225f0b2b7482143d4.png");
} else {
itemVO.setServePic("https://oss.5rs.me/oss/uploadfe/png/b4cf9c2aadf4b851bc96db5a30e85b13.png");
itemVO.setTransverseImg("https://oss.5rs.me/oss/uploadfe/png/bab7de5ca544b0dede6c8b3ea150e97b.png");
}
}
@ParamLog("填充运营商城")
private void fillChannelShop(List<ResourcePageItemVO> itemVOS) {
log.info("填充运营商城");
if (ListUtils.isEmpty(itemVOS)) {
return;
}
List<Long> serveIds = itemVOS.stream().map(ResourcePageItemVO::getServeId).distinct().collect(Collectors.toList());
Map<Long, SinglePageInfoDTO> singlePageDTOMap = productConsr.mapSinglePageByIds(serveIds);
if (MapUtils.isEmpty(singlePageDTOMap)) {
return;
}
for (ResourcePageItemVO itemVO : itemVOS) {
SinglePageInfoDTO singlePageDTO = singlePageDTOMap.get(itemVO.getServeId());
itemVO.setTypeName("运营商城");
if (null != singlePageDTO) {
itemVO.setServeName(singlePageDTO.getSinglePageName());
itemVO.setServePic(singlePageDTO.getHeadUrl());
itemVO.setTransverseImg(singlePageDTO.getImgUrl());
}
itemVO.setResultUrl(itemVO.getLinkUrl());
}
}
......@@ -2362,7 +2441,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
}
@Override
public ResourcePageOneServe hasOneResource(Long bookGroupId, Long sceneId, Long wechatUserId) {
public ResourcePageOneServe hasOneResource(Long bookGroupId, Long sceneId, Long wechatUserId, Boolean ignoreRays) {
ResourcePageOneServe pageOneServe = new ResourcePageOneServe();
pageOneServe.setBookGroupId(bookGroupId);
pageOneServe.setSceneId(sceneId);
......@@ -2383,10 +2462,14 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
pageOneServe.setResourcePageId(resourcePageId);
pageOneServe.setAdviserId(resourcePage.getCreateUser());
//只配置了1个应用作品,且不开启小睿
ResourcePageItemVO itemVO = resourcePageItemDao.checkOneServeItemByPageId(resourcePageId);
ResourcePageItemVO itemVO = resourcePageItemDao.checkOneServeItemByPageId(resourcePageId, ignoreRays);
if (null != itemVO) {
pageOneServe.setOneServe(true);
if (itemVO.getServeType().equals(ServeTypeEnum.RESOURCE.getValue())) {
fillFileResource(Arrays.asList(itemVO), wechatUserId);
} else {
fillAppProductServe(Arrays.asList(itemVO), wechatUserId);
}
pageOneServe.setServeId(itemVO.getServeId());
pageOneServe.setServeType(itemVO.getServeType());
pageOneServe.setLinkUrl(itemVO.getLinkUrl());
......@@ -2419,9 +2502,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
itemVO.setLinkUrl(s.getServeUrl());
itemVO.setTypeCode(s.getTypeCode());
itemVO.setSceneId(s.getSceneId());
itemVO.setResourcePageId(s.getResourcePageId());
itemVOS.add(itemVO);
});
fillAppProductServe(itemVOS, null);
fillFileResource(itemVOS,null);
List<BookGroupServeDTO> serveDTOS = new ArrayList<>();
for (ResourcePageItemVO itemVO: itemVOS) {
BookGroupServeDTO serveDTO = new BookGroupServeDTO();
......@@ -3950,26 +4035,9 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
itemVOList.addAll(itemAppAndProductVOList);
}
itemVOList.sort(Comparator.comparing(ResourcePageItemVO::getId));
Map<Long, List<ResourcePageItemVO>> columnMap = itemVOList.stream().collect(Collectors.groupingBy(ResourcePageItemVO::getResourcePageColumnId));
List<ResourceColumnAndServeVO> removeColumns = new ArrayList<>();
for (ResourceColumnAndServeVO columnAndServeVO : serveVOS) {
List<ResourcePageItemVO> itemVOS = columnMap.get(columnAndServeVO.getResourcePageColumnId());
if (ListUtils.isEmpty(itemVOS)) {
removeColumns.add(columnAndServeVO);
continue;
}
columnAndServeVO.setItemVOList(itemVOS);
String serveType = itemVOS.get(0).getServeType();
if (ResourcePageConstants.ServeTypeEnum.APP.getValue().equals(serveType) ||
(ResourcePageConstants.ServeTypeEnum.PRODUCT.getValue().equals(serveType))) {
serveType = "APP/PRODUCT";
}
columnAndServeVO.setServeType(serveType);
//图片位
if (ResourcePageConstants.ColumnTypeEnum.PICTURE.getCode().equals(columnAndServeVO.getColumnType())) {
columnAndServeVO.setLogoUrl(itemVOS.get(0).getLogoUrl());
}
}
List<ResourceColumnAndServeVO> removeColumns = setPageColumnOther(serveVOS, itemVOList);
if (!ListUtils.isEmpty(removeColumns)) {
serveVOS.removeAll(removeColumns);
}
......@@ -4000,6 +4068,37 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
return serveVOS;
}
/**
* @Description 设置栏目其他信息
* @Author zhuyajie
* @Date 13:13 2022/3/17
**/
private List<ResourceColumnAndServeVO> setPageColumnOther(List<ResourceColumnAndServeVO> serveVOS,List<ResourcePageItemVO> itemVOList) {
List<ResourceColumnAndServeVO> removeColumns = new ArrayList<>();
Map<Long, List<ResourcePageItemVO>> columnMap = itemVOList.stream().collect(Collectors.groupingBy(ResourcePageItemVO::getResourcePageColumnId));
for (ResourceColumnAndServeVO columnAndServeVO : serveVOS) {
List<ResourcePageItemVO> itemVOS = columnMap.get(columnAndServeVO.getResourcePageColumnId());
//去掉没内容的栏目
if (ListUtils.isEmpty(itemVOS)) {
removeColumns.add(columnAndServeVO);
continue;
}
columnAndServeVO.setItemVOList(itemVOS);
String serveType = itemVOS.get(0).getServeType();
if (ResourcePageConstants.ServeTypeEnum.APP.getValue().equals(serveType) ||
ResourcePageConstants.ServeTypeEnum.PRODUCT.getValue().equals(serveType) ||
ServeTypeEnum.RESOURCE.getValue().equals(serveType)) {
serveType = "APP/PRODUCT";
}
columnAndServeVO.setServeType(serveType);
//图片位
if (ResourcePageConstants.ColumnTypeEnum.PICTURE.getCode().equals(columnAndServeVO.getColumnType())) {
columnAndServeVO.setLogoUrl(itemVOS.get(0).getLogoUrl());
}
}
return removeColumns;
}
@Override
public Integer saveShareConfig(ResourcePageShareParam param) {
checkShareParam(param);
......@@ -4135,4 +4234,52 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
});
}
@Override
public List<ResourcePageItemResourceVO> listQrOneResourceByBook(Long sceneId, Long wechatUserId) {
if (null == sceneId) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数缺失");
}
ResourcePage resourcePage = resourcePageDao.getBySceneId(sceneId);
if (null == resourcePage || null == resourcePage.getBookId() || null == resourcePage.getCreateUser()) {
return new ArrayList<>();
}
List<ResourcePageItemResourceVO> list = resourcePageItemDao.listQrOneResourceByBook(resourcePage.getBookId(), resourcePage.getCreateUser());
if (ListUtils.isEmpty(list)) {
return new ArrayList<>();
}
List<Long> resourceIds = list.stream().map(ResourcePageItemResourceVO::getServeId).distinct().collect(Collectors.toList());
Map<Long, ResourceDTO> resourceDTOMap = resourceConsr.mapResourceByIds(resourceIds, true, true);
if (MapUtils.isEmpty(resourceDTOMap)) {
return new ArrayList<>();
}
List<ResourcePageItemResourceVO> resourceVOS = new ArrayList<>();
for (ResourcePageItemResourceVO vo:list) {
ResourceDTO dto = resourceDTOMap.get(vo.getServeId());
if (null == dto) {
continue;
}
vo.setTypeName(dto.getTypeName());
vo.setResourceName(dto.getResourceName());
vo.setFileId(dto.getFileId());
vo.setFileCategory(dto.getFileCategory());
vo.setDuration(dto.getDuration());
vo.setFileSize(dto.getFileSize());
vo.setFileType(dto.getFileType());
vo.setFileUrl(dto.getFileUrl());
vo.setConvertState(dto.getConvertState());
vo.setResourceOfficeItemDTOs(dto.getResourceOfficeItemDTOs());
vo.setResourcePdfItems(dto.getResourcePdfItems());
resourceVOS.add(vo);
}
return resourceVOS;
}
@Override
public Map<Long, BookGroupServeCountDTO> mapQrServeCount(List<Long> sceneIds) {
if (ListUtils.isEmpty(sceneIds)) {
return new HashMap<>();
}
return resourcePageItemDao.mapQrServeCount(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}
<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