Commit 8f29ba32 by 朱亚洁

feat:[1006170]新增添加企微落地页

parent 7692e9c9
package com.pcloud.book.group.dto;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.dto.CreateDefaultResourcePageDTO
* @Author zhuyajie
* @Description
* @Date 2021/12/1 16:38
**/
@Data
public class CreateDefaultResourcePageDTO {
private Long bookGroupId;
private Long sceneId;
private Long adviserId;
private Integer landingPageType;
}
...@@ -10,5 +10,4 @@ public class CreateGroupDTO { ...@@ -10,5 +10,4 @@ public class CreateGroupDTO {
private Integer joinGroupType; private Integer joinGroupType;
private Integer jumpType; private Integer jumpType;
private String jumpUrl; private String jumpUrl;
} }
...@@ -2,6 +2,7 @@ package com.pcloud.book.group.dto; ...@@ -2,6 +2,7 @@ package com.pcloud.book.group.dto;
import com.pcloud.common.dto.BaseDto; import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
...@@ -70,4 +71,7 @@ public class ResourcePageDTO extends BaseDto { ...@@ -70,4 +71,7 @@ public class ResourcePageDTO extends BaseDto {
* 二维码图片解析后的地址 * 二维码图片解析后的地址
*/ */
private String url; private String url;
@ApiModelProperty("RAYS码落地页类型1本书服务2企微")
private Integer landingPageType;
} }
package com.pcloud.book.group.enums;
/**
* PageLandingPageType
*
* @Author zhuyajie
* @Date 2021/12/1 13:23
*/
public enum PageLandingPageTypeEnum {
/**
* RAYS码落地页类型1本书服务2企微
**/
RESOURCE(1), WXWORK(2);
private Integer code;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
PageLandingPageTypeEnum(Integer code) {
this.code = code;
}
}
...@@ -4,6 +4,7 @@ package com.pcloud.book.group.service; ...@@ -4,6 +4,7 @@ package com.pcloud.book.group.service;
import com.pcloud.book.group.dto.AddBookGroupServeDTO; import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServiceDTO; import com.pcloud.book.group.dto.BookGroupServiceDTO;
import com.pcloud.book.group.dto.CreateDefaultResourcePageDTO;
import com.pcloud.book.group.dto.CreateGroupDTO; import com.pcloud.book.group.dto.CreateGroupDTO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
...@@ -29,4 +30,8 @@ public interface BookGroupDataService { ...@@ -29,4 +30,8 @@ public interface BookGroupDataService {
@ApiOperation("批量更新bookgroup对应的sceneId") @ApiOperation("批量更新bookgroup对应的sceneId")
@PostMapping("batchUpdateSceneIdByBookGroup") @PostMapping("batchUpdateSceneIdByBookGroup")
void batchUpdateSceneIdByBookGroup(@RequestBody List<AddBookGroupServeDTO> list); void batchUpdateSceneIdByBookGroup(@RequestBody List<AddBookGroupServeDTO> list);
@ApiOperation("RAYS码创建默认资源页")
@PostMapping("createDefaultResourcePage")
void createDefaultResourcePage(@RequestBody CreateDefaultResourcePageDTO createDefaultResourcePageDTO);
} }
...@@ -297,4 +297,10 @@ public interface BookGroupService { ...@@ -297,4 +297,10 @@ public interface BookGroupService {
ResponseEntity<ResponseDto<Boolean>> checkBookChildGrade(@RequestParam("bookId") Long bookId, ResponseEntity<ResponseDto<Boolean>> checkBookChildGrade(@RequestParam("bookId") Long bookId,
@RequestParam("adviserId") Long adviserId, @RequestParam("adviserId") Long adviserId,
@RequestParam("channelId") Long channelId); @RequestParam("channelId") Long channelId);
@ApiOperation("资源页配置信息")
@GetMapping("getResourcePageByQrcode")
ResponseEntity<ResponseDto<ResourcePageDTO>> getResourcePageByQrcode(@RequestParam(value = "sceneId", required = false) Long sceneId,
@RequestParam(value = "bookGroupId", required = false) Long bookGroupId);
} }
...@@ -235,6 +235,12 @@ ...@@ -235,6 +235,12 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-wxwork</artifactId>
<version>${pcloud-facade3.version}</version>
</dependency>
<dependency>
<groupId>fakepath</groupId> <groupId>fakepath</groupId>
<artifactId>jbarcode</artifactId> <artifactId>jbarcode</artifactId>
<version>0.2.8</version> <version>0.2.8</version>
......
...@@ -704,4 +704,13 @@ public class QrcodeSceneConsr { ...@@ -704,4 +704,13 @@ public class QrcodeSceneConsr {
} }
return result; return result;
} }
@ParamLog("更新落地页类型")
public void updateLandingPageType(Long sceneId, Integer landingPageType) {
try {
qrcodeSceneService.updateLandingPageType(sceneId, landingPageType);
}catch (Exception e) {
LOGGER.error("调用qrcodeSceneService.updateLandingPageType失败"+e.getMessage(),e);
}
}
} }
package com.pcloud.book.consumer.shareimage; package com.pcloud.book.consumer.shareimage;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.facade.shareimage.dto.HtmlDto;
import com.pcloud.facade.shareimage.facade.Htm2ImgService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Repository("shareImageConsr") @Repository("shareImageConsr")
public class ShareImageConsr { public class ShareImageConsr {
private static final Logger LOGGER = LoggerFactory.getLogger(ShareImageConsr.class);
/*
@Autowired @Autowired
private Html2PdfService html2PdfService; private Htm2ImgService htm2ImgService;
*/
/**
* html转pdf
* @param htmlDto
*//*
@ParamLog(value = "html转pdf", isBefore = false) @ParamLog("html转图片")
public String htmlToPdf(HtmlDto htmlDto) { public String toJPGByChrome(HtmlDto htmlDto){
String pdfUrl = ""; String img = null;
try { try {
//pdfUrl = ResponseHandleUtil.parseResponse(html2PdfService.htmlToPdf(htmlDto), String.class); img = ResponseHandleUtil.parseResponse(htm2ImgService.toJPGByChrome(htmlDto),String.class);
} catch (Exception e) { }catch (Exception e){
LOGGER.error("html2PdfService.htmlToPdf" + e.getMessage(), e); log.error("调用htm2ImgService.toJPGByChrome失败"+e.getMessage(),e);
} }
return pdfUrl; return img;
} }
*/
} }
package com.pcloud.book.consumer.wodapp; package com.pcloud.book.consumer.wordapp;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
......
package com.pcloud.book.consumer.wxwork;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.facade.wxwork.contact.service.WxContactService;
import com.pcloud.facade.wxwork.contact.vo.WxContactWayVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import lombok.extern.slf4j.Slf4j;
/**
* @ClassName com.pcloud.book.consumer.wxwork.WxworkConsr
* @Author zhuyajie
* @Description 企业微信
* @Date 2021/12/2 18:42
**/
@Slf4j
@Component
public class WxworkConsr {
@Autowired
private WxContactService wxContactService;
@ParamLog("查个人活码")
public WxContactWayVO getContactWayById(Long partyId, String systemCode, Long contactId) {
try {
return ResponseHandleUtil.parseResponse(wxContactService.getContactWayById(partyId, systemCode, contactId),WxContactWayVO.class);
} catch (Exception e) {
log.error("调用wxContactService.getContactWayById失败"+e.getMessage(),e);
}
return null;
}
}
...@@ -21,6 +21,8 @@ import com.pcloud.book.group.vo.ResourcePageOneServe; ...@@ -21,6 +21,8 @@ import com.pcloud.book.group.vo.ResourcePageOneServe;
import com.pcloud.book.group.vo.ResourcePageVO; import com.pcloud.book.group.vo.ResourcePageVO;
import com.pcloud.book.group.vo.UpdateResourceColumnVO; import com.pcloud.book.group.vo.UpdateResourceColumnVO;
import com.pcloud.book.group.vo.UpdateResourcePageVO; import com.pcloud.book.group.vo.UpdateResourcePageVO;
import com.pcloud.book.group.vo.WxworkPageCreateVO;
import com.pcloud.book.group.vo.WxworkPageVO;
import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO; import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
...@@ -46,6 +48,12 @@ public interface ResourcePageBiz { ...@@ -46,6 +48,12 @@ public interface ResourcePageBiz {
*/ */
Long updateResourcePage(UpdateResourcePageVO updateResourcePageVO); Long updateResourcePage(UpdateResourcePageVO updateResourcePageVO);
/** /**
* @Description 创建默认资源页
* @Author zhuyajie
* @Date 13:38 2021/12/1
**/
ResourcePage createDefaultResourcePage(Long bookGroupId, Long adviserId, Long sceneId, Integer openRays, Integer landingPageType);
/**
* 更新资源栏目设置 * 更新资源栏目设置
* @author:zhuyajie * @author:zhuyajie
* @date:2021/3/26 17:27 * @date:2021/3/26 17:27
...@@ -483,4 +491,33 @@ public interface ResourcePageBiz { ...@@ -483,4 +491,33 @@ public interface ResourcePageBiz {
* 客户端-查询应用或作品推荐资源 * 客户端-查询应用或作品推荐资源
*/ */
List<RecommendServeVO> getAppRecommendServe(Long wechatUserId, Long bookId, Long adviserId, Long channelId, Long serveId, String serveType,Long sceneId); List<RecommendServeVO> getAppRecommendServe(Long wechatUserId, Long bookId, Long adviserId, Long channelId, Long serveId, String serveType,Long sceneId);
/**
* @Description 更新落地页类型
* @Author zhuyajie
* @Date 13:53 2021/12/1
**/
void updateLandingPageType(Long sceneId, Integer landingPageType);
/**
* @Description 企微落地页配置
* @Author zhuyajie
* @Date 14:46 2021/12/2
**/
void createWxworkPage(WxworkPageCreateVO wxworkPageCreateVO);
/**
* @Description 查企微落地页配置
* @Author zhuyajie
* @Date 15:01 2021/12/2
**/
WxworkPageVO getWxworkPageByPageId(Long resourcePageId, Boolean isWechat);
/**
* @Description 资源页配置
* @Author zhuyajie
* @Date 10:44 2021/12/3
**/
ResourcePageDTO getResourcePageByQrcode(Long sceneId, Long bookGroupId);
} }
...@@ -54,7 +54,7 @@ import com.pcloud.book.consumer.user.AgentConsr; ...@@ -54,7 +54,7 @@ import com.pcloud.book.consumer.user.AgentConsr;
import com.pcloud.book.consumer.user.ChannelConsr; import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.book.consumer.wechat.WechatConsr; import com.pcloud.book.consumer.wechat.WechatConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.consumer.wodapp.WordappConsr; import com.pcloud.book.consumer.wordapp.WordappConsr;
import com.pcloud.book.group.biz.BookGroupAppBiz; import com.pcloud.book.group.biz.BookGroupAppBiz;
import com.pcloud.book.group.biz.BookGroupBiz; import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.BookGroupClassifyBiz; import com.pcloud.book.group.biz.BookGroupClassifyBiz;
......
...@@ -35,12 +35,14 @@ import com.pcloud.book.consumer.combinedmarketing.MemberActivityConsr; ...@@ -35,12 +35,14 @@ import com.pcloud.book.consumer.combinedmarketing.MemberActivityConsr;
import com.pcloud.book.consumer.raystask.AdviserTaskConsr; import com.pcloud.book.consumer.raystask.AdviserTaskConsr;
import com.pcloud.book.consumer.reader.ReaderConsr; import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.book.consumer.resource.ProductConsr; import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.shareimage.ShareImageConsr;
import com.pcloud.book.consumer.trade.TradeConsr; import com.pcloud.book.consumer.trade.TradeConsr;
import com.pcloud.book.consumer.user.AdviserConsr; import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.user.AgentConsr; import com.pcloud.book.consumer.user.AgentConsr;
import com.pcloud.book.consumer.user.ChannelConsr; import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.book.consumer.user.MerchantConsr; import com.pcloud.book.consumer.user.MerchantConsr;
import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr; import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.consumer.wxwork.WxworkConsr;
import com.pcloud.book.es.biz.ESBookAndAdviserBiz; import com.pcloud.book.es.biz.ESBookAndAdviserBiz;
import com.pcloud.book.group.biz.BookGroupBiz; import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.ResourcePageBiz; import com.pcloud.book.group.biz.ResourcePageBiz;
...@@ -56,6 +58,7 @@ import com.pcloud.book.group.dao.ResourcePageItemDao; ...@@ -56,6 +58,7 @@ import com.pcloud.book.group.dao.ResourcePageItemDao;
import com.pcloud.book.group.dao.ResourcePageNavigationDao; import com.pcloud.book.group.dao.ResourcePageNavigationDao;
import com.pcloud.book.group.dao.ResourcePagePicDao; import com.pcloud.book.group.dao.ResourcePagePicDao;
import com.pcloud.book.group.dao.ResourcePageToolDao; import com.pcloud.book.group.dao.ResourcePageToolDao;
import com.pcloud.book.group.dao.ResourcePageWxworkDao;
import com.pcloud.book.group.dao.ResourceRecomManageDao; import com.pcloud.book.group.dao.ResourceRecomManageDao;
import com.pcloud.book.group.dto.AddBookGroupServeDTO; import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
...@@ -67,6 +70,7 @@ import com.pcloud.book.group.dto.NavigationParamDTO; ...@@ -67,6 +70,7 @@ import com.pcloud.book.group.dto.NavigationParamDTO;
import com.pcloud.book.group.dto.ResourcePageCourseDTO; import com.pcloud.book.group.dto.ResourcePageCourseDTO;
import com.pcloud.book.group.dto.ResourcePageDTO; import com.pcloud.book.group.dto.ResourcePageDTO;
import com.pcloud.book.group.dto.ResourcePageUrlDTO; import com.pcloud.book.group.dto.ResourcePageUrlDTO;
import com.pcloud.book.group.dto.WxworkPageFixedDTO;
import com.pcloud.book.group.entity.BookAppletScene; import com.pcloud.book.group.entity.BookAppletScene;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
...@@ -79,7 +83,9 @@ import com.pcloud.book.group.entity.ResourcePageItem; ...@@ -79,7 +83,9 @@ import com.pcloud.book.group.entity.ResourcePageItem;
import com.pcloud.book.group.entity.ResourcePageNavigation; import com.pcloud.book.group.entity.ResourcePageNavigation;
import com.pcloud.book.group.entity.ResourcePagePic; import com.pcloud.book.group.entity.ResourcePagePic;
import com.pcloud.book.group.entity.ResourcePageTool; import com.pcloud.book.group.entity.ResourcePageTool;
import com.pcloud.book.group.entity.ResourcePageWxwork;
import com.pcloud.book.group.entity.ResourceRecomManage; import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.book.group.enums.PageLandingPageTypeEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools; import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.RecommendServeVO; import com.pcloud.book.group.vo.RecommendServeVO;
import com.pcloud.book.group.vo.ResourceColumnAndServeVO; import com.pcloud.book.group.vo.ResourceColumnAndServeVO;
...@@ -89,6 +95,8 @@ import com.pcloud.book.group.vo.ResourcePageOneServe; ...@@ -89,6 +95,8 @@ import com.pcloud.book.group.vo.ResourcePageOneServe;
import com.pcloud.book.group.vo.ResourcePageVO; import com.pcloud.book.group.vo.ResourcePageVO;
import com.pcloud.book.group.vo.UpdateResourceColumnVO; import com.pcloud.book.group.vo.UpdateResourceColumnVO;
import com.pcloud.book.group.vo.UpdateResourcePageVO; import com.pcloud.book.group.vo.UpdateResourcePageVO;
import com.pcloud.book.group.vo.WxworkPageCreateVO;
import com.pcloud.book.group.vo.WxworkPageVO;
import com.pcloud.book.recommend.biz.BookRecommendBiz; import com.pcloud.book.recommend.biz.BookRecommendBiz;
import com.pcloud.book.recommend.dto.RecommendServeDto; import com.pcloud.book.recommend.dto.RecommendServeDto;
import com.pcloud.book.rightsSetting.biz.RightsSettingBiz; import com.pcloud.book.rightsSetting.biz.RightsSettingBiz;
...@@ -110,6 +118,7 @@ import com.pcloud.common.core.aspect.ParamLog; ...@@ -110,6 +118,7 @@ import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.AdviserTaskConstants; import com.pcloud.common.core.constant.AdviserTaskConstants;
import com.pcloud.common.core.constant.MQTopicProducer; import com.pcloud.common.core.constant.MQTopicProducer;
import com.pcloud.common.core.constant.ProductTypeConstant; import com.pcloud.common.core.constant.ProductTypeConstant;
import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
...@@ -121,7 +130,10 @@ import com.pcloud.common.utils.QrcodeUtils; ...@@ -121,7 +130,10 @@ import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.ServeLinkUtils; import com.pcloud.common.utils.ServeLinkUtils;
import com.pcloud.common.utils.UUIDUitl; import com.pcloud.common.utils.UUIDUitl;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils; 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.common.utils.string.StringUtil;
import com.pcloud.facade.shareimage.dto.HtmlDto;
import com.pcloud.facade.wxwork.contact.vo.WxContactWayVO;
import com.pcloud.message.common.enums.YesNoEnums; import com.pcloud.message.common.enums.YesNoEnums;
import com.pcloud.readercenter.common.enums.YesOrNoNumEnum; import com.pcloud.readercenter.common.enums.YesOrNoNumEnum;
import com.pcloud.readercenter.userlabel.dto.UserGradeLabelIdDTO; import com.pcloud.readercenter.userlabel.dto.UserGradeLabelIdDTO;
...@@ -129,6 +141,7 @@ import com.pcloud.resourcecenter.product.dto.ProductDto; ...@@ -129,6 +141,7 @@ import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductLabelDto; import com.pcloud.resourcecenter.product.dto.ProductLabelDto;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto; import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.wechatgroup.wxwork.dto.WxworkGroupQrcodeBaseDTO; import com.pcloud.wechatgroup.wxwork.dto.WxworkGroupQrcodeBaseDTO;
import com.pcloud.wechatgroup.wxwork.dto.WxworkQrcodeBaseDTO;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
...@@ -253,6 +266,12 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -253,6 +266,12 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
private BookAdviserBiz bookAdviserBiz; private BookAdviserBiz bookAdviserBiz;
@Autowired @Autowired
private BookRecommendBiz bookRecommendBiz; private BookRecommendBiz bookRecommendBiz;
@Autowired
private ResourcePageWxworkDao resourcePageWxworkDao;
@Autowired
private ShareImageConsr shareImageConsr;
@Autowired
private WxworkConsr wxworkConsr;
@Value("${nft.book}") @Value("${nft.book}")
private List<Long> nftBookId; private List<Long> nftBookId;
...@@ -320,7 +339,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -320,7 +339,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePage.setQrcodeUrl(null == qrcodeSceneDto?null:qrcodeSceneDto.getQrcodeUrl()); resourcePage.setQrcodeUrl(null == qrcodeSceneDto?null:qrcodeSceneDto.getQrcodeUrl());
//同步bookGroupId //同步bookGroupId
if (null == resourcePage.getBookGroupId()) { if (null == resourcePage.getBookGroupId()) {
resourcePage.setBookGroupId(getBookGroupIdBySceneId(sceneId)); resourcePage.setBookGroupId(getBookGroupIdBySceneId(qrcodeSceneDto));
} }
resourcePage.setBookId(null == qrcodeSceneDto?null:qrcodeSceneDto.getAdviserBookId()); resourcePage.setBookId(null == qrcodeSceneDto?null:qrcodeSceneDto.getAdviserBookId());
resourcePage.setChannelId(null == qrcodeSceneDto?null:qrcodeSceneDto.getChannelPartyId()); resourcePage.setChannelId(null == qrcodeSceneDto?null:qrcodeSceneDto.getChannelPartyId());
...@@ -337,7 +356,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -337,7 +356,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePage.setChannelId(null == qrcodeSceneDto?null:qrcodeSceneDto.getChannelPartyId()); resourcePage.setChannelId(null == qrcodeSceneDto?null:qrcodeSceneDto.getChannelPartyId());
//同步bookGroupId //同步bookGroupId
if (null == resourcePage.getBookGroupId()) { if (null == resourcePage.getBookGroupId()) {
resourcePage.setBookGroupId(getBookGroupIdBySceneId(sceneId)); resourcePage.setBookGroupId(getBookGroupIdBySceneId(qrcodeSceneDto));
} }
//校验能否开启小睿 //校验能否开启小睿
this.checkOpenRays(resourcePage.getBookId(), updateResourcePageVO.getOpenRays()); this.checkOpenRays(resourcePage.getBookId(), updateResourcePageVO.getOpenRays());
...@@ -373,8 +392,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -373,8 +392,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
return resourcePage.getId(); return resourcePage.getId();
} }
private Long getBookGroupIdBySceneId(Long sceneId) { private Long getBookGroupIdBySceneId(QrcodeSceneDto qrcodeSceneDto) {
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId);
if (null == qrcodeSceneDto || StringUtil.isEmpty(qrcodeSceneDto.getQrcodeType()) if (null == qrcodeSceneDto || StringUtil.isEmpty(qrcodeSceneDto.getQrcodeType())
|| StringUtil.isEmpty(qrcodeSceneDto.getSceneCode())) { || StringUtil.isEmpty(qrcodeSceneDto.getSceneCode())) {
return null; return null;
...@@ -445,7 +463,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -445,7 +463,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
private ResourcePage createDefaultResourcePage(Long bookGroupId, Long adviserId, Long sceneId, Integer openRays) { @Override
public ResourcePage createDefaultResourcePage(Long bookGroupId, Long adviserId, Long sceneId, Integer openRays, Integer landingPageType) {
ResourcePage resourcePage = new ResourcePage(); ResourcePage resourcePage = new ResourcePage();
resourcePage.setBookGroupId(bookGroupId); resourcePage.setBookGroupId(bookGroupId);
resourcePage.setStyle(1); resourcePage.setStyle(1);
...@@ -453,6 +472,9 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -453,6 +472,9 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePage.setShowBook(1); resourcePage.setShowBook(1);
resourcePage.setCreateUser(adviserId); resourcePage.setCreateUser(adviserId);
resourcePage.setSceneId(sceneId); resourcePage.setSceneId(sceneId);
//落地页类型,默认本书服务页
landingPageType = null == landingPageType? PageLandingPageTypeEnum.RESOURCE.getCode():landingPageType;
resourcePage.setLandingPageType(landingPageType);
//预览二维码,取原有二维码 //预览二维码,取原有二维码
if (null != bookGroupId) { if (null != bookGroupId) {
BookGroupDTO dto = bookGroupDao.getDTOById(bookGroupId); BookGroupDTO dto = bookGroupDao.getDTOById(bookGroupId);
...@@ -463,15 +485,17 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -463,15 +485,17 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId); QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId);
resourcePage.setQrcodeUrl(null == qrcodeSceneDto?null:qrcodeSceneDto.getQrcodeUrl()); resourcePage.setQrcodeUrl(null == qrcodeSceneDto?null:qrcodeSceneDto.getQrcodeUrl());
//同步bookGroupId //同步bookGroupId
resourcePage.setBookGroupId(getBookGroupIdBySceneId(sceneId)); resourcePage.setBookGroupId(getBookGroupIdBySceneId(qrcodeSceneDto));
resourcePage.setBookId(null == qrcodeSceneDto?null:qrcodeSceneDto.getAdviserBookId()); resourcePage.setBookId(null == qrcodeSceneDto?null:qrcodeSceneDto.getAdviserBookId());
resourcePage.setChannelId(null == qrcodeSceneDto?null:qrcodeSceneDto.getChannelPartyId()); resourcePage.setChannelId(null == qrcodeSceneDto?null:qrcodeSceneDto.getChannelPartyId());
} }
resourcePageDao.insert(resourcePage); resourcePageDao.insert(resourcePage);
//添加默认导航 if (PageLandingPageTypeEnum.RESOURCE.getCode().equals(landingPageType)) {
this.addDefaultBookServeNavigation(resourcePage.getId()); //本书服务页添加默认导航
if (openRays == 1) { this.addDefaultBookServeNavigation(resourcePage.getId());
this.addDefaultAppletNavigation(resourcePage.getId()); if (openRays == 1) {
this.addDefaultAppletNavigation(resourcePage.getId());
}
} }
return resourcePage; return resourcePage;
} }
...@@ -776,7 +800,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -776,7 +800,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (null != bookGroupId) { if (null != bookGroupId) {
ResourcePage resourcePage = resourcePageDao.getByBookGroupId(bookGroupId); ResourcePage resourcePage = resourcePageDao.getByBookGroupId(bookGroupId);
if (null == resourcePage) { if (null == resourcePage) {
resourcePage = this.createDefaultResourcePage(bookGroupId, adviserId, null, 0); resourcePage = this.createDefaultResourcePage(bookGroupId, adviserId, null, 0, null);
} }
BeanUtils.copyProperties(resourcePage, resourcePageVO); BeanUtils.copyProperties(resourcePage, resourcePageVO);
BookGroupDTO bookGroupDTO = bookGroupBiz.getBookInfo(bookGroupId); BookGroupDTO bookGroupDTO = bookGroupBiz.getBookInfo(bookGroupId);
...@@ -797,7 +821,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -797,7 +821,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} else { } else {
ResourcePage resourcePage = resourcePageDao.getBySceneId(sceneId); ResourcePage resourcePage = resourcePageDao.getBySceneId(sceneId);
if (null == resourcePage) { if (null == resourcePage) {
resourcePage = this.createDefaultResourcePage(null, adviserId, sceneId, 0); resourcePage = this.createDefaultResourcePage(null, adviserId, sceneId, 0, null);
} }
BeanUtils.copyProperties(resourcePage, resourcePageVO); BeanUtils.copyProperties(resourcePage, resourcePageVO);
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId); QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId);
...@@ -817,12 +841,31 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -817,12 +841,31 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
// 加载实体书购买 // 加载实体书购买
this.fillBookStore(resourcePageVO); this.fillBookStore(resourcePageVO);
List<ResourcePageNavigation> navigations = resourcePageNavigationDao.getByPageId(resourcePageVO.getId()); //加载导航
resourcePageVO.setNavigationList(navigations); this.fillNavigation(resourcePageVO);
return resourcePageVO; return resourcePageVO;
} }
/** /**
* 加载导航
*/
private void fillNavigation(ResourcePageVO resourcePageVO) {
if(resourcePageVO == null || resourcePageVO.getId() == null){
return;
}
Long resourcePageId = resourcePageVO.getId();
//进本书服务页 查导航
if (PageLandingPageTypeEnum.RESOURCE.getCode().equals(resourcePageVO.getLandingPageType())) {
List<ResourcePageNavigation> navigations = resourcePageNavigationDao.getByPageId(resourcePageId);
if (ListUtils.isEmpty(navigations)) {
this.addDefaultBookServeNavigation(resourcePageId);
navigations = resourcePageNavigationDao.getByPageId(resourcePageId);
}
resourcePageVO.setNavigationList(navigations);
}
}
/**
* 加载实体书购买 * 加载实体书购买
*/ */
private void fillBookStore(ResourcePageVO resourcePageVO) { private void fillBookStore(ResourcePageVO resourcePageVO) {
...@@ -1661,11 +1704,24 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1661,11 +1704,24 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (null != resourcePageVO.getAdviserId()) { if (null != resourcePageVO.getAdviserId()) {
resourcePageVO.setPushTextOpenStatus(qrcodeSceneConsr.getPushTextOpenStatus(resourcePageVO.getAdviserId())); resourcePageVO.setPushTextOpenStatus(qrcodeSceneConsr.getPushTextOpenStatus(resourcePageVO.getAdviserId()));
} }
List<ResourcePageNavigation> navigations = resourcePageNavigationDao.getByPageId(resourcePageVO.getId()); //加载导航
resourcePageVO.setNavigationList(navigations); this.fillNavigation(resourcePageVO);
//加载企业微信落地页信息
this.fillWxworkPage(resourcePageVO);
return resourcePageVO; return resourcePageVO;
} }
@ParamLog("加载企业微信落地页信息")
private void fillWxworkPage(ResourcePageVO resourcePageVO) {
if(resourcePageVO == null || resourcePageVO.getId() == null){
return;
}
Long resourcePageId = resourcePageVO.getId();
if (PageLandingPageTypeEnum.WXWORK.getCode().equals(resourcePageVO.getLandingPageType())) {
resourcePageVO.setWxworkPageVO(getWxworkPageByPageId(resourcePageId, true));
}
}
@ParamLog("根据bookGroupId查资源页信息") @ParamLog("根据bookGroupId查资源页信息")
private ResourcePageVO getResourcePageByBookGroupId4Wechat(Long bookGroupId, Long wechatUserId) { private ResourcePageVO getResourcePageByBookGroupId4Wechat(Long bookGroupId, Long wechatUserId) {
ResourcePageVO resourcePageVO = new ResourcePageVO(); ResourcePageVO resourcePageVO = new ResourcePageVO();
...@@ -1701,6 +1757,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1701,6 +1757,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePageVO.setFontColor(resourcePage.getFontColor()); resourcePageVO.setFontColor(resourcePage.getFontColor());
resourcePageVO.setWatermark(resourcePage.getWatermark()); resourcePageVO.setWatermark(resourcePage.getWatermark());
resourcePageVO.setWatermarkStyle(resourcePage.getWatermarkStyle()); resourcePageVO.setWatermarkStyle(resourcePage.getWatermarkStyle());
resourcePageVO.setLandingPageType(resourcePage.getLandingPageType());
} }
return resourcePageVO; return resourcePageVO;
} }
...@@ -1753,6 +1810,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1753,6 +1810,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePageVO.setFontColor(resourcePage.getFontColor()); resourcePageVO.setFontColor(resourcePage.getFontColor());
resourcePageVO.setWatermark(resourcePage.getWatermark()); resourcePageVO.setWatermark(resourcePage.getWatermark());
resourcePageVO.setWatermarkStyle(resourcePage.getWatermarkStyle()); resourcePageVO.setWatermarkStyle(resourcePage.getWatermarkStyle());
resourcePageVO.setLandingPageType(resourcePage.getLandingPageType());
} }
return resourcePageVO; return resourcePageVO;
} }
...@@ -2039,7 +2097,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -2039,7 +2097,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
Long sceneId = addBookGroupServeDTO.getSceneId(); Long sceneId = addBookGroupServeDTO.getSceneId();
ResourcePage resourcePage = resourcePageDao.getBySceneId(sceneId); ResourcePage resourcePage = resourcePageDao.getBySceneId(sceneId);
if (null == resourcePage) { if (null == resourcePage) {
resourcePage = this.createDefaultResourcePage(null, adviserId, sceneId, 0); resourcePage = this.createDefaultResourcePage(null, adviserId, sceneId, 0, null);
} }
Long resourcePageId = resourcePage.getId(); Long resourcePageId = resourcePage.getId();
// 配置资源支持指定栏目 // 配置资源支持指定栏目
...@@ -2408,7 +2466,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -2408,7 +2466,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (null != resourcePage) { if (null != resourcePage) {
resourcePageDao.updateBookIdBySceneId(bookId, sceneId); resourcePageDao.updateBookIdBySceneId(bookId, sceneId);
} }
Long bookGroupId = this.getBookGroupIdBySceneId(sceneId); QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId);
Long bookGroupId = this.getBookGroupIdBySceneId(qrcodeSceneDto);
if (null != bookGroupId) { if (null != bookGroupId) {
bookGroupDao.updateBookIdById(bookGroupId, bookId); bookGroupDao.updateBookIdById(bookGroupId, bookId);
} }
...@@ -3049,4 +3108,157 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -3049,4 +3108,157 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
return result; return result;
} }
@Override
public void updateLandingPageType(Long sceneId, Integer landingPageType) {
ResourcePage resourcePage = resourcePageDao.getBySceneId(sceneId);
if (null == resourcePage || null == landingPageType) {
return;
}
if (null != resourcePage.getLandingPageType() && resourcePage.getLandingPageType().equals(landingPageType)) {
return;
}
resourcePage.setLandingPageType(landingPageType);
resourcePage.setOpenRays(0);
resourcePage.setOpenFood(0);
resourcePageDao.update(resourcePage);
ThreadPoolUtils.RESOURCE_POOL.execute(()->{
//同步到chanelcenter
qrcodeSceneConsr.updateLandingPageType(sceneId, landingPageType);
//清空之前的配置资源
if (PageLandingPageTypeEnum.WXWORK.getCode().equals(landingPageType)) {
List<ResourcePageNavigation> navigations = resourcePageNavigationDao.getByPageId(resourcePage.getId());
List<Long> navigationIds = navigations.stream().filter(s->!s.getNavigationType().equals(ResourcePageConstants.NavigationTypeEnum.BOOK_SERVE.getCode())).map(ResourcePageNavigation::getId).collect(Collectors.toList());
if (!ListUtils.isEmpty(navigationIds)) {
for (Long id:navigationIds) {
this.deleteNavigation(id);
}
}
resourcePageBookstoreBiz.deleteByResourcePageId(resourcePage.getId());
}
});
}
@Override
public void createWxworkPage(WxworkPageCreateVO wxworkPageCreateVO) {
this.checkWxworkPageCreate(wxworkPageCreateVO);
Long resourcePageId = wxworkPageCreateVO.getResourcePageId();
Integer templateType = wxworkPageCreateVO.getTemplateType();
ResourcePageWxwork resourcePageWxwork = new ResourcePageWxwork();
BeanUtils.copyProperties(wxworkPageCreateVO,resourcePageWxwork);
//自定义存下高度
if (ResourcePageConstants.WxworkPageTemplateTypeEnum.CUSTOM.getCode().equals(templateType)) {
WxworkPageFixedDTO fixedDTO = new WxworkPageFixedDTO();
fixedDTO.setHeight(wxworkPageCreateVO.getHeight());
wxworkPageCreateVO.setFixedDTO(fixedDTO);
}
//资源模板参数json存放
if (null != wxworkPageCreateVO.getFixedDTO()) {
resourcePageWxwork.setFixedSet(JSONUtils.toJsonString(wxworkPageCreateVO.getFixedDTO()));
}
ResourcePageWxwork pageWxwork = resourcePageWxworkDao.getByPageId(resourcePageId);
if (null != pageWxwork) {
resourcePageWxwork.setId(pageWxwork.getId());
resourcePageWxworkDao.update(resourcePageWxwork);
} else {
resourcePageWxworkDao.insert(resourcePageWxwork);
}
if (ResourcePageConstants.WxworkPageTemplateTypeEnum.CUSTOM.getCode().equals(templateType)) {
//生成图片更新到数据库
HtmlDto htmlDto = new HtmlDto();
htmlDto.setHeight(wxworkPageCreateVO.getHeight());
htmlDto.setWidth(750);
htmlDto.setHtmlCode(wxworkPageCreateVO.getHtml());
htmlDto.setSnapshot(new Long(System.currentTimeMillis()).toString());
ThreadPoolUtils.RESOURCE_POOL.execute(()->{
String url = shareImageConsr.toJPGByChrome(htmlDto);
if (!StringUtil.isEmpty(url)) {
resourcePageWxwork.setHtmlPic(url);
resourcePageWxworkDao.update(resourcePageWxwork);
}
});
}
}
private void checkWxworkPageCreate(WxworkPageCreateVO wxworkPageCreateVO) {
if (null == wxworkPageCreateVO.getResourcePageId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少资源页id");
}
if (null == wxworkPageCreateVO.getTemplateType()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少模板类型");
}
if (null == wxworkPageCreateVO.getQrcodeType() || null == wxworkPageCreateVO.getQrcodeId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"请选择二维码");
}
Integer templateType = wxworkPageCreateVO.getTemplateType();
if (ResourcePageConstants.WxworkPageTemplateTypeEnum.FIXED_NORMAL.getCode().equals(templateType)) {
if (null == wxworkPageCreateVO.getGuide()|| null == wxworkPageCreateVO.getDisplayBook()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
} else if (ResourcePageConstants.WxworkPageTemplateTypeEnum.CUSTOM.getCode().equals(templateType)) {
if (StringUtil.isEmpty(wxworkPageCreateVO.getBasePic()) || StringUtil.isEmpty(wxworkPageCreateVO.getHtml())
|| null == wxworkPageCreateVO.getTopSpace() || null == wxworkPageCreateVO.getLeftSpace()
|| null == wxworkPageCreateVO.getHeight()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
} else if (null == wxworkPageCreateVO.getFixedDTO()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
}
@Override
public WxworkPageVO getWxworkPageByPageId(Long resourcePageId, Boolean isWechat) {
WxworkPageVO wxworkPageVO = new WxworkPageVO();
wxworkPageVO.setResourcePageId(resourcePageId);
ResourcePageWxwork pageWxwork = resourcePageWxworkDao.getByPageId(resourcePageId);
if (null == pageWxwork) {
return wxworkPageVO;
}
BeanUtils.copyProperties(pageWxwork, wxworkPageVO);
if(!StringUtil.isEmpty(pageWxwork.getFixedSet())) {
wxworkPageVO.setFixedDTO(JSONUtils.jsonToBean(pageWxwork.getFixedSet(), WxworkPageFixedDTO.class));
}
if (ResourcePageConstants.WxworkPageTemplateTypeEnum.CUSTOM.getCode().equals(pageWxwork.getTemplateType())) {
wxworkPageVO.setHeight(wxworkPageVO.getFixedDTO().getHeight());
}
Integer qrcodeType = pageWxwork.getQrcodeType();
Long qrcodeId = pageWxwork.getQrcodeId();
if (!isWechat && null != qrcodeId) {
String qrcodeName = "";
if (ResourcePageConstants.WxworkPageQrcodeTypeEnum.SOP_QRCODE.getCode().equals(qrcodeType)) {
WxworkQrcodeBaseDTO wxworkQrcodeBaseDTO = wechatGroupConsr.getWxworkQrcodeBaseById(qrcodeId);
qrcodeName = null == wxworkQrcodeBaseDTO ? null : wxworkQrcodeBaseDTO.getQrcodeName();
} else if (ResourcePageConstants.WxworkPageQrcodeTypeEnum.SOP_GROUP_QRCODE.getCode().equals(qrcodeType)) {
WxworkGroupQrcodeBaseDTO groupQrcodeBaseDTO = wechatGroupConsr.getWxworkGroupQrcodeBaseById(qrcodeId);
qrcodeName = null == groupQrcodeBaseDTO?null:groupQrcodeBaseDTO.getGroupQrcodeName();
} else if (ResourcePageConstants.WxworkPageQrcodeTypeEnum.WXWORK_QRCODE.getCode().equals(qrcodeType)) {
WxContactWayVO wxContactWayVO = wxworkConsr.getContactWayById(pageWxwork.getCreateUser(), SystemCode.adviser.getCode(),qrcodeId);
qrcodeName = null == wxContactWayVO?null:wxContactWayVO.getRemark();
}
wxworkPageVO.setQrcodeName(qrcodeName);
}
return wxworkPageVO;
}
@Override
public ResourcePageDTO getResourcePageByQrcode(Long sceneId, Long bookGroupId) {
ResourcePage resourcePage = null;
if (null != sceneId) {
resourcePage = resourcePageDao.getBySceneId(sceneId);
} else if (null != bookGroupId) {
resourcePage = resourcePageDao.getByBookGroupId(bookGroupId);
}
ResourcePageDTO dto = new ResourcePageDTO();
if (null == resourcePage) {
dto.setOpenRays(0);
dto.setOpenFood(0);
dto.setLandingPageType(1);
} else {
BeanUtils.copyProperties(resourcePage, dto);
}
return dto;
}
} }
...@@ -406,4 +406,60 @@ public class ResourcePageConstants { ...@@ -406,4 +406,60 @@ public class ResourcePageConstants {
} }
} }
/**
* @Description 企业微信落地页模板
* @Author zhuyajie
* @Date 15:03 2021/12/2
**/
public enum WxworkPageTemplateTypeEnum{
FIXED_NORMAL(1,"固定-标准版"),
CUSTOM(2,"自定义"),
FIXED_FILE1(3,"固定-少资料"),
FIXED_FILE2(4,"固定-多资料");
private Integer code;
private String name;
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
WxworkPageTemplateTypeEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
}
/**
* @Description 企业微信落地页二维码类型
* @Author zhuyajie
* @Date 18:01 2021/12/2
**/
public enum WxworkPageQrcodeTypeEnum{
/**
* 1sop个人活码
*/
SOP_QRCODE(1),
/**
* 2sop群活码
*/
SOP_GROUP_QRCODE(2),
/**
* 企微个人码
*/
WXWORK_QRCODE(3);
private Integer code;
public Integer getCode() {
return code;
}
WxworkPageQrcodeTypeEnum(Integer code) {
this.code = code;
}
}
} }
package com.pcloud.book.group.dao;
import com.pcloud.book.group.entity.ResourcePageWxwork;
import com.pcloud.common.core.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 企业微信落地页(ResourcePageWxwork)表数据库访问层
*
* @author
* @since 2021-12-02 14:30:15
*/
public interface ResourcePageWxworkDao extends BaseDao<ResourcePageWxwork> {
ResourcePageWxwork getByPageId(Long resourcePageId);
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.ResourcePageWxworkDao;
import com.pcloud.book.group.entity.ResourcePageWxwork;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
/**
* @ClassName com.pcloud.book.group.dao.impl.ResourcePageWxworkDaoImpl
* @Author zhuyajie
* @Description 企业微信落地页
* @Date 2021/12/2 14:32
**/
@Component
public class ResourcePageWxworkDaoImpl extends BaseDaoImpl<ResourcePageWxwork> implements ResourcePageWxworkDao {
@Override
public ResourcePageWxwork getByPageId(Long resourcePageId) {
return getSessionTemplate().selectOne(getStatement("getByPageId"), resourcePageId);
}
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.dto.WxworkPageZipDTO
* @Author zhuyajie
* @Description 企业微信落地页资料图片
* @Date 2021/12/2 14:40
**/
@Data
public class WxworkPageFileDTO implements Serializable {
@ApiModelProperty("资料名称")
private String fileName;
@ApiModelProperty("资料图片")
private String filePic;
}
package com.pcloud.book.group.dto;
import java.io.Serializable;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.dto.WxworkPageFixedDTO
* @Author zhuyajie
* @Description 企业微信固定模板参数
* @Date 2021/12/2 14:42
**/
@Data
public class WxworkPageFixedDTO implements Serializable {
@ApiModelProperty("落地页标题")
private String pageTitle;
@ApiModelProperty("开始时间")
private String startTime;
@ApiModelProperty("结束时间")
private String endTime;
@ApiModelProperty("资料图片")
private List<WxworkPageFileDTO> fileDTOS;
@ApiModelProperty("限制数量")
private Integer limitNum;
@ApiModelProperty("资料logo图")
private String logoImg;
@ApiModelProperty("免费领取")
private String receiveMode;
@ApiModelProperty("扫码关注")
private String followMode;
@ApiModelProperty("扫码添加老师")
private String bottomTips;
/**
* 图片高度
*/
private Integer height;
}
...@@ -2,6 +2,7 @@ package com.pcloud.book.group.entity; ...@@ -2,6 +2,7 @@ package com.pcloud.book.group.entity;
import com.pcloud.common.entity.BaseEntity; import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
...@@ -87,4 +88,7 @@ public class ResourcePage extends BaseEntity { ...@@ -87,4 +88,7 @@ public class ResourcePage extends BaseEntity {
* 图书印章样式 * 图书印章样式
*/ */
private Integer watermarkStyle; private Integer watermarkStyle;
@ApiModelProperty("RAYS码落地页类型1本书服务2企微")
private Integer landingPageType;
} }
package com.pcloud.book.group.entity;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import lombok.Data;
/**
* 企业微信落地页(ResourcePageWxwork)实体类
*
* @author
* @since 2021-12-02 14:30:15
*/
@Data
public class ResourcePageWxwork extends BaseEntity {
private static final long serialVersionUID = -95982243193843516L;
/**
* 主键
*/
private Long id;
/**
* 资源页id
*/
private Long resourcePageId;
/**
* 模板类型1自定义2固定3模板其他
*/
private Integer templateType;
/**
* 是否展示图书信息1是0否
*/
private Integer displayBook;
/**
* 引导语
*/
private String guide;
/**
* 二维码类型(1企微个人码2企微群码3crm个人码4crm群码)
*/
private Integer qrcodeType;
/**
* 二维码id
*/
private Long qrcodeId;
/**
* 二维码url
*/
private String qrcodeUrl;
/**
* 自定义背景图
*/
private String basePic;
/**
* 自定义:二维码位置上方间距百分比
*/
private Integer topSpace;
/**
* 自定义:二维码位置左边间距百分比
*/
private Integer leftSpace;
/**
* html生成图
*/
private String htmlPic;
/**
* 其他模板参数
*/
private String fixedSet;
/**
* 创建人
*/
private Long createUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改时间
*/
private Date updateTime;
}
...@@ -8,6 +8,8 @@ import com.pcloud.book.group.entity.ResourceRecomManage; ...@@ -8,6 +8,8 @@ import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.book.group.vo.ResourcePageVO; import com.pcloud.book.group.vo.ResourcePageVO;
import com.pcloud.book.group.vo.UpdateResourceColumnVO; import com.pcloud.book.group.vo.UpdateResourceColumnVO;
import com.pcloud.book.group.vo.UpdateResourcePageVO; import com.pcloud.book.group.vo.UpdateResourcePageVO;
import com.pcloud.book.group.vo.WxworkPageCreateVO;
import com.pcloud.book.group.vo.WxworkPageVO;
import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO; import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.SessionUtil; import com.pcloud.common.utils.SessionUtil;
...@@ -371,4 +373,32 @@ public class ResourcePageFacade { ...@@ -371,4 +373,32 @@ public class ResourcePageFacade {
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID); Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(resourcePageBiz.getAppRecommendServe(wechatUserId, bookId, adviserId, channelId,serveId, serveType,sceneId)); return new ResponseDto<>(resourcePageBiz.getAppRecommendServe(wechatUserId, bookId, adviserId, channelId,serveId, serveType,sceneId));
} }
@ApiOperation(("更新落地页类型"))
@GetMapping("updateLandingPageType")
public ResponseDto<?> updateLandingPageType(@RequestHeader("token") String token,
@RequestParam("sceneId") Long sceneId,
@RequestParam("landingPageType") Integer landingPageType) {
SessionUtil.getInfoToken4Redis(token);
resourcePageBiz.updateLandingPageType(sceneId, landingPageType);
return new ResponseDto<>();
}
@ApiOperation("企微落地页配置")
@PostMapping("createWxworkPage")
public ResponseDto<?> createWxworkPage(@RequestHeader("token") String token, @RequestBody WxworkPageCreateVO wxworkPageCreateVO) {
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
wxworkPageCreateVO.setCreateUser(partyId);
resourcePageBiz.createWxworkPage(wxworkPageCreateVO);
return new ResponseDto<>();
}
@ApiOperation("编辑端查企微落地页配置")
@GetMapping("getWxworkPageByPageIdByAdviser")
public ResponseDto<?> getWxworkPageByPageIdByAdviser(@RequestHeader("token") String token, @RequestParam("resourcePageId") Long resourcePageId){
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(resourcePageBiz.getWxworkPageByPageId(resourcePageId,false));
}
} }
...@@ -7,6 +7,7 @@ import com.pcloud.book.group.biz.ResourcePageBiz; ...@@ -7,6 +7,7 @@ import com.pcloud.book.group.biz.ResourcePageBiz;
import com.pcloud.book.group.dto.AddBookGroupServeDTO; import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.dto.BookGroupDTO; import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServiceDTO; import com.pcloud.book.group.dto.BookGroupServiceDTO;
import com.pcloud.book.group.dto.CreateDefaultResourcePageDTO;
import com.pcloud.book.group.dto.CreateGroupDTO; import com.pcloud.book.group.dto.CreateGroupDTO;
import com.pcloud.book.group.entity.BookGroup; import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.enums.JoinGroupTypeEnum; import com.pcloud.book.group.enums.JoinGroupTypeEnum;
...@@ -68,4 +69,17 @@ public class BookGroupDataServiceImpl implements BookGroupDataService { ...@@ -68,4 +69,17 @@ public class BookGroupDataServiceImpl implements BookGroupDataService {
public void batchUpdateSceneIdByBookGroup(@RequestBody List<AddBookGroupServeDTO> list){ public void batchUpdateSceneIdByBookGroup(@RequestBody List<AddBookGroupServeDTO> list){
resourcePageBiz.batchUpdateSceneIdByBookGroup(list); resourcePageBiz.batchUpdateSceneIdByBookGroup(list);
} }
@Override
@PostMapping("createDefaultResourcePage")
public void createDefaultResourcePage(@RequestBody CreateDefaultResourcePageDTO dto) {
if (null == dto || null == dto.getAdviserId()) {
return;
}
if (null == dto.getBookGroupId() && null == dto.getSceneId()) {
return;
}
//创建默认resourcePage
resourcePageBiz.createDefaultResourcePage(dto.getBookGroupId(),dto.getAdviserId(),dto.getSceneId(),0,dto.getLandingPageType());
}
} }
...@@ -504,4 +504,12 @@ public class BookGroupServiceImpl implements BookGroupService { ...@@ -504,4 +504,12 @@ public class BookGroupServiceImpl implements BookGroupService {
@RequestParam("channelId") Long channelId) { @RequestParam("channelId") Long channelId) {
return ResponseHandleUtil.toResponse(resourcePageBiz.checkBookChildGrade(bookId, adviserId, channelId)); return ResponseHandleUtil.toResponse(resourcePageBiz.checkBookChildGrade(bookId, adviserId, channelId));
} }
@Override
@GetMapping("getResourcePageByQrcode")
public ResponseEntity<ResponseDto<ResourcePageDTO>> getResourcePageByQrcode(
@RequestParam(value = "sceneId", required = false) Long sceneId,
@RequestParam(value = "bookGroupId", required = false) Long bookGroupId){
return ResponseHandleUtil.toResponse(resourcePageBiz.getResourcePageByQrcode(sceneId,bookGroupId));
}
} }
...@@ -120,4 +120,8 @@ public class ResourcePageVO extends BaseDto { ...@@ -120,4 +120,8 @@ public class ResourcePageVO extends BaseDto {
* 图书印章样式 * 图书印章样式
*/ */
private Integer watermarkStyle; private Integer watermarkStyle;
@ApiModelProperty("RAYS码落地页类型1本书服务2企微")
private Integer landingPageType;
@ApiModelProperty("企业微信落地页信息")
private WxworkPageVO wxworkPageVO;
} }
...@@ -77,4 +77,7 @@ public class UpdateResourcePageVO { ...@@ -77,4 +77,7 @@ public class UpdateResourcePageVO {
* 图书印章样式 * 图书印章样式
*/ */
private Integer watermarkStyle; private Integer watermarkStyle;
@ApiModelProperty("RAYS码落地页类型1本书服务2企微")
private Integer landingPageType;
} }
package com.pcloud.book.group.vo;
import com.pcloud.book.group.dto.WxworkPageFixedDTO;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.vo.WxworkPageCreateVO
* @Author zhuyajie
* @Description 企业微信落地页配置
* @Date 2021/12/2 14:37
**/
@Data
public class WxworkPageCreateVO {
/**
* 资源页id
*/
private Long resourcePageId;
/**
* 模板类型1固定2自定义3模板其他
*/
private Integer templateType;
/**
* 是否展示图书信息1是0否
*/
private Integer displayBook;
/**
* 引导语
*/
private String guide;
/**
* 二维码类型(1企微个人码2企微群码3crm个人码4crm群码)
*/
private Integer qrcodeType;
/**
* 二维码id
*/
private Long qrcodeId;
/**
* 二维码url
*/
private String qrcodeUrl;
/**
* 自定义背景图
*/
private String basePic;
/**
* 自定义:二维码位置上方间距百分比
*/
private Integer topSpace;
/**
* 自定义:二维码位置左边间距百分比
*/
private Integer leftSpace;
/**
* html
*/
private String html;
/**
* 其他模板参数
*/
private WxworkPageFixedDTO fixedDTO;
/**
* 创建人
*/
private Long createUser;
/**
* 图片高度
*/
private Integer height;
}
package com.pcloud.book.group.vo;
import com.pcloud.book.group.dto.WxworkPageFixedDTO;
import com.pcloud.common.dto.BaseDto;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.vo.WxworkPageVO
* @Author zhuyajie
* @Description 企业微信落地页
* @Date 2021/12/2 14:37
**/
@Data
public class WxworkPageVO extends BaseDto {
/**
* 资源页id
*/
private Long resourcePageId;
/**
* 模板类型1自定义2固定3模板其他
*/
private Integer templateType;
/**
* 是否展示图书信息1是0否
*/
private Integer displayBook;
/**
* 引导语
*/
private String guide;
/**
* 二维码类型(1企微个人码2企微群码3crm个人码4crm群码)
*/
private Integer qrcodeType;
/**
* 二维码id
*/
private Long qrcodeId;
/**
* 二维码名称
*/
private String qrcodeName;
/**
* 二维码url
*/
private String qrcodeUrl;
/**
* 自定义背景图
*/
private String basePic;
/**
* 自定义:二维码位置上方间距百分比
*/
private Integer topSpace;
/**
* 自定义:二维码位置左边间距百分比
*/
private Integer leftSpace;
/**
* html生成图
*/
private String htmlPic;
/**
* 其他模板参数
*/
private WxworkPageFixedDTO fixedDTO;
/**
* 创建人
*/
private Long createUser;
/**
* 图片高度
*/
private Integer height;
}
...@@ -24,11 +24,12 @@ ...@@ -24,11 +24,12 @@
<result property="fontColor" column="font_color" jdbcType="VARCHAR"/> <result property="fontColor" column="font_color" jdbcType="VARCHAR"/>
<result property="watermark" column="watermark" jdbcType="VARCHAR"/> <result property="watermark" column="watermark" jdbcType="VARCHAR"/>
<result property="watermarkStyle" column="watermark_style" jdbcType="TINYINT"/> <result property="watermarkStyle" column="watermark_style" jdbcType="TINYINT"/>
<result property="landingPageType" column="landing_page_type" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, book_group_id, style, show_book, open_rays, open_food, create_time, update_time, create_user, qrcode_url, scene_id, official_scene_id, id, book_group_id, style, show_book, open_rays, open_food, create_time, update_time, create_user, qrcode_url, scene_id, official_scene_id,
book_cover, book_id, channel_id, background_img, navigation_color, navigation_format, font_color,watermark, watermark_style book_cover, book_id, channel_id, background_img, navigation_color, navigation_format, font_color,watermark, watermark_style, landing_page_type
</sql> </sql>
<!--查询单个--> <!--查询单个-->
...@@ -43,9 +44,9 @@ ...@@ -43,9 +44,9 @@
<!--新增所有列--> <!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true"> <insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.resource_page(book_group_id, style, show_book, open_rays, open_food, create_time, update_time, create_user, insert into book.resource_page(book_group_id, style, show_book, open_rays, open_food, create_time, update_time, create_user,
qrcode_url, scene_id, book_cover, book_id, channel_id, background_img, font_color, watermark, watermark_style) qrcode_url, scene_id, book_cover, book_id, channel_id, background_img, font_color, watermark, watermark_style, landing_page_type)
values (#{bookGroupId}, #{style}, #{showBook}, #{openRays}, IFNULL(#{openFood},0), now(), now(), #{createUser}, #{qrcodeUrl}, #{sceneId}, #{bookCover}, values (#{bookGroupId}, #{style}, #{showBook}, #{openRays}, IFNULL(#{openFood},0), now(), now(), #{createUser}, #{qrcodeUrl}, #{sceneId}, #{bookCover},
#{bookId}, #{channelId}, #{backgroundImg}, #{fontColor}, #{watermark}, #{watermarkStyle}) #{bookId}, #{channelId}, #{backgroundImg}, #{fontColor}, #{watermark}, #{watermarkStyle}, IFNULL(#{landingPageType},1))
</insert> </insert>
<!--通过主键修改数据--> <!--通过主键修改数据-->
...@@ -84,7 +85,10 @@ ...@@ -84,7 +85,10 @@
background_img = #{backgroundImg}, background_img = #{backgroundImg},
font_color = #{fontColor}, font_color = #{fontColor},
watermark = #{watermark}, watermark = #{watermark},
watermark_style = #{watermarkStyle} watermark_style = #{watermarkStyle},
<if test="landingPageType != null">
landing_page_type = #{landingPageType},
</if>
</set> </set>
where id = #{id} where id = #{id}
</update> </update>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcloud.book.group.dao.impl.ResourcePageWxworkDaoImpl">
<resultMap type="com.pcloud.book.group.entity.ResourcePageWxwork" id="ResourcePageWxworkMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="resourcePageId" column="resource_page_id" jdbcType="INTEGER"/>
<result property="templateType" column="template_type" jdbcType="INTEGER"/>
<result property="displayBook" column="display_book" jdbcType="INTEGER"/>
<result property="guide" column="guide" jdbcType="VARCHAR"/>
<result property="qrcodeType" column="qrcode_type" jdbcType="INTEGER"/>
<result property="qrcodeId" column="qrcode_id" jdbcType="INTEGER"/>
<result property="qrcodeUrl" column="qrcode_url" jdbcType="VARCHAR"/>
<result property="basePic" column="base_pic" jdbcType="VARCHAR"/>
<result property="topSpace" column="top_space" jdbcType="INTEGER"/>
<result property="leftSpace" column="left_space" jdbcType="INTEGER"/>
<result property="htmlPic" column="html_pic" jdbcType="VARCHAR"/>
<result property="fixedSet" column="fixed_set" jdbcType="VARCHAR"/>
<result property="createUser" column="create_user" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_columns">
id, resource_page_id, template_type, display_book, guide, qrcode_type, qrcode_id, qrcode_url, base_pic, top_space, left_space, html_pic, fixed_set, create_user, create_time, update_time
</sql>
<!--查询单个-->
<select id="getById" resultMap="ResourcePageWxworkMap">
select
<include refid="Base_columns"/>
from resource_page_wxwork
where id = #{id}
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into resource_page_wxwork(resource_page_id, template_type, display_book, guide, qrcode_type, qrcode_id, qrcode_url, base_pic, top_space, left_space, html_pic, fixed_set, create_user, create_time, update_time)
values (#{resourcePageId}, #{templateType}, #{displayBook}, #{guide}, #{qrcodeType}, #{qrcodeId}, #{qrcodeUrl}, #{basePic}, #{topSpace}, #{leftSpace}, #{htmlPic}, #{fixedSet}, #{createUser}, now(), now())
</insert>
<!--通过主键修改数据-->
<update id="update">
update resource_page_wxwork
<set>
<if test="templateType != null">
template_type = #{templateType},
</if>
<if test="displayBook != null">
display_book = #{displayBook},
</if>
guide = #{guide},
<if test="qrcodeType != null">
qrcode_type = #{qrcodeType},
</if>
<if test="qrcodeId != null">
qrcode_id = #{qrcodeId},
</if>
<if test="qrcodeUrl != null and qrcodeUrl != ''">
qrcode_url = #{qrcodeUrl},
</if>
base_pic = #{basePic},
top_space = #{topSpace},
left_space = #{leftSpace},
html_pic = #{htmlPic},
fixed_set = #{fixedSet},
update_time = now(),
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from resource_page_wxwork where id = #{id}
</delete>
<select id="getByPageId" resultMap="ResourcePageWxworkMap" parameterType="long">
select <include refid="Base_columns"/>
from resource_page_wxwork
where resource_page_id = #{resourcePageId}
limit 1
</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