Commit 07f1e9cb by 李传峰

Merge branch 'feature/1006837' into 'master'

feat:[1006837]资源同步

See merge request rays/pcloud-book!1545
parents 539ecffd 5e6ea698
package com.pcloud.book.base.constants;
/**
* @ClassName com.pcloud.book.base.constants.MqConstants
* @Author zhuyajie
* @Description
* @Date 2022/3/22 16:39
**/
public class MqConstants {
public static final String OWN_MESSAGE_4QRCODE = "topic.ownMessage";
}
package com.pcloud.book.group.dto;
import com.pcloud.common.dto.BaseDto;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.dto.MessagServeDTO
* @Author zhuyajie
* @Description
* @Date 2022/3/22 16:32
**/
@Data
public class MessagServeDTO extends BaseDto {
/**
* 来源id
*/
private Long fromId;
/**
* 来源类型
*/
private String fromType;
/**
* 宣传图
*/
private String posterPicUrl;
/**
* 封面图
*/
private String coverImg;
/**
* url
*/
private String url;
/**
* 消息标题
*/
private String title;
/**
* 短标题
*/
private String shortTitle;
/**
* 消息表类型编码
*/
private String typeCode;
}
package com.pcloud.book.group.dto;
import com.pcloud.common.dto.BaseDto;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.dto.QrcodeMessageDTO
* @Author zhuyajie
* @Description 资源配置
* @Date 2022/3/22 16:26
**/
@Data
public class OwnQrcodeMessageDTO extends BaseDto {
private Long sceneId;
}
...@@ -6,6 +6,7 @@ import com.pcloud.book.group.dto.BookGroupDTO; ...@@ -6,6 +6,7 @@ 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.CreateDefaultResourcePageDTO;
import com.pcloud.book.group.dto.CreateGroupDTO; import com.pcloud.book.group.dto.CreateGroupDTO;
import com.pcloud.book.group.dto.MessagServeDTO;
import com.pcloud.common.dto.ResponseDto; import com.pcloud.common.dto.ResponseDto;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -34,4 +35,8 @@ public interface BookGroupDataService { ...@@ -34,4 +35,8 @@ public interface BookGroupDataService {
@ApiOperation("RAYS码创建默认资源页") @ApiOperation("RAYS码创建默认资源页")
@PostMapping("createDefaultResourcePage") @PostMapping("createDefaultResourcePage")
void createDefaultResourcePage(@RequestBody CreateDefaultResourcePageDTO createDefaultResourcePageDTO); void createDefaultResourcePage(@RequestBody CreateDefaultResourcePageDTO createDefaultResourcePageDTO);
@ApiOperation("二维码需要同步到channel的资源")
@GetMapping("getServeListBySceneId4QrUpdate")
ResponseEntity<ResponseDto<List<MessagServeDTO>>> getServeListBySceneId4QrUpdate(@RequestParam("sceneId") Long sceneId);
} }
...@@ -5,6 +5,7 @@ import com.pcloud.book.group.dto.AddBookGroupServeDTO; ...@@ -5,6 +5,7 @@ import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO; import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.dto.BookGroupServeDTO; import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.dto.BookServeDTO; import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.dto.MessagServeDTO;
import com.pcloud.book.group.dto.NavigationParamDTO; 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;
...@@ -581,4 +582,11 @@ public interface ResourcePageBiz { ...@@ -581,4 +582,11 @@ public interface ResourcePageBiz {
List<ResourcePageItemResourceVO> listQrOneResourceByBook(Long sceneId, Long wechatUserId); List<ResourcePageItemResourceVO> listQrOneResourceByBook(Long sceneId, Long wechatUserId);
Map<Long, BookGroupServeCountDTO> mapQrServeCount(List<Long> sceneIds); Map<Long, BookGroupServeCountDTO> mapQrServeCount(List<Long> sceneIds);
/**
* @Description 需要同步到channel的资源
* @Author zhuyajie
* @Date 15:59 2022/3/24
**/
List<MessagServeDTO> getServeListBySceneId4QrUpdate(Long sceneId);
} }
...@@ -16,6 +16,7 @@ import com.pcloud.book.applet.dto.AppletGroupStatementDTO; ...@@ -16,6 +16,7 @@ import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.applet.dto.AppletOuterBooklistDTO; import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
import com.pcloud.book.applet.dto.GroupActivity4AppletDTO; import com.pcloud.book.applet.dto.GroupActivity4AppletDTO;
import com.pcloud.book.applet.entity.AppletThirdResources; import com.pcloud.book.applet.entity.AppletThirdResources;
import com.pcloud.book.base.constants.MqConstants;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookAdviserBiz; import com.pcloud.book.book.biz.BookAdviserBiz;
import com.pcloud.book.book.biz.BookBiz; import com.pcloud.book.book.biz.BookBiz;
...@@ -73,7 +74,9 @@ import com.pcloud.book.group.dto.BookGroupServeCountDTO; ...@@ -73,7 +74,9 @@ import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.dto.BookGroupServeDTO; import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.dto.BookServeDTO; import com.pcloud.book.group.dto.BookServeDTO;
import com.pcloud.book.group.dto.MemberActivityBookSetDTO; import com.pcloud.book.group.dto.MemberActivityBookSetDTO;
import com.pcloud.book.group.dto.MessagServeDTO;
import com.pcloud.book.group.dto.NavigationParamDTO; import com.pcloud.book.group.dto.NavigationParamDTO;
import com.pcloud.book.group.dto.OwnQrcodeMessageDTO;
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.ResourcePageShareDto; import com.pcloud.book.group.dto.ResourcePageShareDto;
...@@ -1918,10 +1921,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1918,10 +1921,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
// 修改该单页面的更新时间 // 修改该单页面的更新时间
resourcePageDao.updatePageUpdateTime(resourcePageId); resourcePageDao.updatePageUpdateTime(resourcePageId);
//同步RAYS码资源配置 //同步RAYS码资源配置
ThreadPoolUtils.RESOURCE_POOL.execute(()->{ ResourcePage resourcePage = resourcePageDao.getById(resourcePageId);
ResourcePage resourcePage = resourcePageDao.getById(resourcePageId); this.updateOwnMessage4Qr(null == resourcePage? null : resourcePage.getSceneId());
this.updateOwnMessage4Qr(null == resourcePage? null : resourcePage.getSceneId());
});
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -1938,10 +1939,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1938,10 +1939,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
//栏目重新排序 //栏目重新排序
this.updateSeq4Batch(column.getResourcePageId(), column.getNavigationId()); this.updateSeq4Batch(column.getResourcePageId(), column.getNavigationId());
//同步RAYS码资源配置 //同步RAYS码资源配置
ThreadPoolUtils.RESOURCE_POOL.execute(()->{ ResourcePage resourcePage = resourcePageDao.getPageByColumnId(resourcePageColumnId);
ResourcePage resourcePage = resourcePageDao.getPageByColumnId(resourcePageColumnId); this.updateOwnMessage4Qr(null == resourcePage? null : resourcePage.getSceneId());
this.updateOwnMessage4Qr(null == resourcePage? null : resourcePage.getSceneId());
});
} }
@Override @Override
...@@ -2007,8 +2006,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -2007,8 +2006,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
page.getBookGroupId() == null ? page.getSceneId() : page.getBookGroupId(), page.getBookGroupId() == null ? page.getSceneId() : page.getBookGroupId(),
AdviserTaskConstants.OperateTypeEnum.CONFIGURE_RESOURCE.getValue()); AdviserTaskConstants.OperateTypeEnum.CONFIGURE_RESOURCE.getValue());
//同步RAYS码资源配置 //同步RAYS码资源配置
this.updateOwnMessage4Qr(updateResourcePageVO.getSceneId());
ThreadPoolUtils.RESOURCE_POOL.execute(()->{ ThreadPoolUtils.RESOURCE_POOL.execute(()->{
this.updateOwnMessage4Qr(updateResourcePageVO.getSceneId());
this.sendMemberActivityQueue(resourcePageId); this.sendMemberActivityQueue(resourcePageId);
}); });
//更新会员商品渠道 //更新会员商品渠道
...@@ -2556,20 +2555,10 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -2556,20 +2555,10 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (null == sceneId) { if (null == sceneId) {
return; return;
} }
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId); OwnQrcodeMessageDTO ownMessageDTO = new OwnQrcodeMessageDTO();
if (null == qrcodeSceneDto) {
log.error("二维码不存在,sceneId=" + sceneId);
return;
}
OwnMessageDTO ownMessageDTO = new OwnMessageDTO();
ownMessageDTO.setAdviserId(qrcodeSceneDto.getCreatedByUserLogin());
ownMessageDTO.setBookId(qrcodeSceneDto.getAdviserBookId());
ownMessageDTO.setChannelId(qrcodeSceneDto.getChannelPartyId());
ownMessageDTO.setSceneId(sceneId); ownMessageDTO.setSceneId(sceneId);
//配置的资源 //消息队列处理
List<Message> messages = this.getServeListBySceneId4QrUpdate(sceneId); amqpTemplate.convertAndSend(MQTopicProducer.EXCHAGE, MqConstants.OWN_MESSAGE_4QRCODE, ownMessageDTO);
ownMessageDTO.setMessages(messages);
qrcodeSceneConsr.updateOwnMessage4Qr(ownMessageDTO);
} }
/** /**
...@@ -2578,7 +2567,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -2578,7 +2567,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
* @date:2021/9/28 10:12 * @date:2021/9/28 10:12
* * @param null * * @param null
*/ */
private List<Message> getServeListBySceneId4QrUpdate(Long sceneId) { @Override
public List<MessagServeDTO> getServeListBySceneId4QrUpdate(Long sceneId) {
List<ResourcePageItemVO> itemVOS = resourcePageItemDao.getServeListBySceneId4QrUpdate(sceneId); List<ResourcePageItemVO> itemVOS = resourcePageItemDao.getServeListBySceneId4QrUpdate(sceneId);
if (ListUtils.isEmpty(itemVOS)) { if (ListUtils.isEmpty(itemVOS)) {
return new ArrayList<>(); return new ArrayList<>();
...@@ -2587,9 +2577,9 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -2587,9 +2577,9 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
for (Map.Entry<String, List<ResourcePageItemVO>> entry : listMap.entrySet()) { for (Map.Entry<String, List<ResourcePageItemVO>> entry : listMap.entrySet()) {
this.fillResourceByType(entry.getValue(), null, entry.getKey()); this.fillResourceByType(entry.getValue(), null, entry.getKey());
} }
List<Message> messages = new ArrayList<>(); List<MessagServeDTO> messages = new ArrayList<>();
for (ResourcePageItemVO itemVO: itemVOS) { for (ResourcePageItemVO itemVO: itemVOS) {
Message message = new Message(); MessagServeDTO message = new MessagServeDTO();
message.setFromId(itemVO.getServeId()); message.setFromId(itemVO.getServeId());
message.setFromType(itemVO.getTypeCode()); message.setFromType(itemVO.getTypeCode());
message.setUrl(itemVO.getLinkUrl()); message.setUrl(itemVO.getLinkUrl());
...@@ -3317,10 +3307,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -3317,10 +3307,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
this.deleteNavigation(navigationId); this.deleteNavigation(navigationId);
} }
//同步RAYS码资源配置 //同步RAYS码资源配置
ThreadPoolUtils.RESOURCE_POOL.execute(() -> { ResourcePage resourcePage = resourcePageDao.getById(navigationParamDTO.getResourcePageId());
ResourcePage resourcePage = resourcePageDao.getById(navigationParamDTO.getResourcePageId()); this.updateOwnMessage4Qr(null == resourcePage ? null : resourcePage.getSceneId());
this.updateOwnMessage4Qr(null == resourcePage ? null : resourcePage.getSceneId());
});
} }
//修改导航样式,版式,菜单跳转模式 //修改导航样式,版式,菜单跳转模式
resourcePageDao.updateNavigationFormat(navigationParamDTO.getResourcePageId(), navigationParamDTO.getNavigationColor(),navigationParamDTO.getNavigationFormat(), navigationParamDTO.getNavigationJumpType()); resourcePageDao.updateNavigationFormat(navigationParamDTO.getResourcePageId(), navigationParamDTO.getNavigationColor(),navigationParamDTO.getNavigationFormat(), navigationParamDTO.getNavigationJumpType());
......
...@@ -9,6 +9,7 @@ import com.pcloud.book.group.dto.BookGroupDTO; ...@@ -9,6 +9,7 @@ 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.CreateDefaultResourcePageDTO;
import com.pcloud.book.group.dto.CreateGroupDTO; import com.pcloud.book.group.dto.CreateGroupDTO;
import com.pcloud.book.group.dto.MessagServeDTO;
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;
import com.pcloud.book.group.service.BookGroupDataService; import com.pcloud.book.group.service.BookGroupDataService;
...@@ -82,4 +83,10 @@ public class BookGroupDataServiceImpl implements BookGroupDataService { ...@@ -82,4 +83,10 @@ public class BookGroupDataServiceImpl implements BookGroupDataService {
//创建默认resourcePage //创建默认resourcePage
resourcePageBiz.createDefaultResourcePage(dto.getBookGroupId(),dto.getAdviserId(),dto.getSceneId(),0,dto.getLandingPageType()); resourcePageBiz.createDefaultResourcePage(dto.getBookGroupId(),dto.getAdviserId(),dto.getSceneId(),0,dto.getLandingPageType());
} }
@GetMapping("getServeListBySceneId4QrUpdate")
@Override
public ResponseEntity<ResponseDto<List<MessagServeDTO>>> getServeListBySceneId4QrUpdate(@RequestParam("sceneId") Long sceneId) {
return ResponseHandleUtil.toResponse(resourcePageBiz.getServeListBySceneId4QrUpdate(sceneId));
}
} }
...@@ -435,7 +435,8 @@ ...@@ -435,7 +435,8 @@
i.link_url linkUrl, i.link_url linkUrl,
p.create_user createUser, p.create_user createUser,
i.type_code typeCode, i.type_code typeCode,
p.scene_id sceneId p.scene_id sceneId,
i.resource_page_id resourcePageId
FROM FROM
resource_page_item i resource_page_item i
LEFT JOIN resource_page p ON i.resource_page_id = p.id LEFT JOIN resource_page p ON i.resource_page_id = p.id
......
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