Commit 1bbb2f20 by 裴大威

Merge branch 'fix-1022272' into 'master'

fixbug fill Resource

See merge request rays/pcloud-book!587
parents 99ab87f7 547c987e
...@@ -210,7 +210,6 @@ ...@@ -210,7 +210,6 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.pcloud.facade</groupId> <groupId>com.pcloud.facade</groupId>
<artifactId>pcloud-facade-erp</artifactId> <artifactId>pcloud-facade-erp</artifactId>
<version>${pcloud-facade.version}</version> <version>${pcloud-facade.version}</version>
......
package com.pcloud.book.custom.biz.impl; package com.pcloud.book.custom.biz.impl;
import com.google.common.collect.Lists;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.book.base.exception.BookBizException; import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.custom.biz.CustomTimeControlBiz; import com.pcloud.book.custom.biz.CustomTimeControlBiz;
import com.pcloud.book.custom.check.CustomCheck; import com.pcloud.book.custom.check.CustomCheck;
import com.pcloud.book.custom.dao.CustomTimeControlDao; import com.pcloud.book.custom.dao.CustomTimeControlDao;
...@@ -11,12 +15,16 @@ import com.pcloud.book.custom.entity.CustomTimeControlBook; ...@@ -11,12 +15,16 @@ import com.pcloud.book.custom.entity.CustomTimeControlBook;
import com.pcloud.book.custom.entity.CustomTimeControlReply; import com.pcloud.book.custom.entity.CustomTimeControlReply;
import com.pcloud.book.custom.mapper.CustomTimeControlBookMapper; import com.pcloud.book.custom.mapper.CustomTimeControlBookMapper;
import com.pcloud.book.custom.mapper.CustomTimeControlReplyMapper; import com.pcloud.book.custom.mapper.CustomTimeControlReplyMapper;
import com.pcloud.book.group.enums.AppAndProductTypeEnum;
import com.pcloud.book.keywords.enums.ReplyTypeEnum;
import com.pcloud.book.skill.entity.PcloudSubReply;
import com.pcloud.common.core.aspect.ParamLog; import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew; import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam; import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils; import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil; import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.string.StringUtilParent; import com.pcloud.common.utils.string.StringUtilParent;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.erp.project.dto.ProjectInfoDTO; import com.pcloud.erp.project.dto.ProjectInfoDTO;
import com.pcloud.erp.project.service.ProjectService; import com.pcloud.erp.project.service.ProjectService;
...@@ -47,6 +55,10 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz { ...@@ -47,6 +55,10 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz {
private CustomCheck customCheck; private CustomCheck customCheck;
@Autowired @Autowired
private ProjectService projectService; private ProjectService projectService;
@Autowired
private AppConsr appConsr;
@Autowired
private ResourceConsr resourceConsr;
@Override @Override
@Transactional @Transactional
...@@ -130,10 +142,15 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz { ...@@ -130,10 +142,15 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz {
} }
@Override @Override
@ParamLog(value = "通过id获取定制服务读书推送计划",isAfterReturn = false)
public CustomTimeControlDTO getCustomTimeControlById(Integer id) { public CustomTimeControlDTO getCustomTimeControlById(Integer id) {
CustomTimeControlDTO customTimeControlDTO = customTimeControlMapper.getCustomTimeControlById(id); CustomTimeControlDTO customTimeControlDTO = customTimeControlMapper.getCustomTimeControlById(id);
if (null == customTimeControlDTO){
throw new BookBizException(BookBizException.PARAM_IS_EXIST,"通过id获取定制服务读书推送计划为null");
}
List<CustomTimeControlBook> customTimeControlBooks = customTimeControlDTO.getRelatedBooks(); List<CustomTimeControlBook> customTimeControlBooks = customTimeControlDTO.getRelatedBooks();
if (null != customTimeControlDTO && !ListUtils.isEmpty(customTimeControlBooks)){ fillRelies(customTimeControlDTO.getReplyList4Subscribe(),customTimeControlDTO.getReplyList4Unsubscribe());
if (!ListUtils.isEmpty(customTimeControlBooks)){
List<String> bookIds = customTimeControlBooks.stream().map(e -> e.getBookId()).collect(Collectors.toList()); List<String> bookIds = customTimeControlBooks.stream().map(e -> e.getBookId()).collect(Collectors.toList());
Map<String, ProjectInfoDTO> projectMap = null; Map<String, ProjectInfoDTO> projectMap = null;
try { try {
...@@ -151,6 +168,71 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz { ...@@ -151,6 +168,71 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz {
return customTimeControlDTO; return customTimeControlDTO;
} }
private void fillRelies(List<CustomTimeControlReply> replyList4Subscribe, List<CustomTimeControlReply> replyList4Unsubscribe) {
log.info("填充资源");
List<CustomTimeControlReply> customTimeControlReplies = new ArrayList<>();
if (!ListUtils.isEmpty(replyList4Subscribe)){
customTimeControlReplies.addAll(replyList4Subscribe);
}
if (!ListUtils.isEmpty(replyList4Unsubscribe)){
customTimeControlReplies.addAll(replyList4Unsubscribe);
}
if (ListUtils.isEmpty(customTimeControlReplies)){
return;
}
List<Long> appIds=new ArrayList<>();
List<Long> resourceIds=new ArrayList<>();
for (CustomTimeControlReply reply:customTimeControlReplies){
Integer type=reply.getReplyType();
if (ReplyTypeEnum.APP.value.equals(type)){
if (AppAndProductTypeEnum.APP.value.equals(reply.getServeType())){
appIds.add(reply.getServeId());
}
}
if (ReplyTypeEnum.RESOURCE.value.equals(type)){
resourceIds.add(reply.getResourceId());
}
}
Map<Long, AppDto> appDtoMap=new HashMap<>();
Map<Long, ResourceDTO> resourceDTOMap=new HashMap<>();
if (!ListUtils.isEmpty(appIds)){
appDtoMap = appConsr.getBaseByIds(appIds);
}
if (!ListUtils.isEmpty(resourceIds)){
resourceDTOMap = resourceConsr.mapByIds(resourceIds);
}
for (CustomTimeControlReply reply:customTimeControlReplies){
Integer type=reply.getReplyType();
if (ReplyTypeEnum.APP.value.equals(type)){
Long serveId=reply.getServeId();
if (AppAndProductTypeEnum.APP.value.equals(reply.getServeType())){
AppDto appDto=appDtoMap.get(serveId);
if (appDto!=null){
reply.setServePic(appDto.getSquareImg());
reply.setServeName(appDto.getTitle());
reply.setServeTypeCode(appDto.getTypeCode());
reply.setServeTypeName(appDto.getTypeName());
}
}
}
if (ReplyTypeEnum.RESOURCE.value.equals(type)){
ResourceDTO resourceDTO = resourceDTOMap.get(reply.getResourceId());
if (resourceDTO!=null){
reply.setResourceName(resourceDTO.getResourceName());
reply.setResourceUrl(resourceDTO.getFileUrl());
reply.setResourceTypeCode(resourceDTO.getTypeCode());
reply.setResourceTypeName(resourceDTO.getTypeName());
reply.setFileType(resourceDTO.getFileType());
reply.setResourcePdfItems(resourceDTO.getResourcePdfItems());
reply.setResourceOfficeItemDTOs(resourceDTO.getResourceOfficeItemDTOs());
reply.setFileSize(resourceDTO.getFileSize());
}
}
}
}
@Override @Override
@Transactional @Transactional
public void deleteCustomTimeControlById(Integer id) { public void deleteCustomTimeControlById(Integer id) {
......
package com.pcloud.book.custom.entity; package com.pcloud.book.custom.entity;
import com.pcloud.contentcenter.resource.dto.ResourceOfficeItemDTO;
import com.pcloud.contentcenter.resource.dto.ResourcePdfItemDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
@Data
public class CustomTimeControlReply { public class CustomTimeControlReply {
private Integer id; private Integer id;
private Integer customTimeControlId; private Integer customTimeControlId;
@ApiModelProperty("订阅回复类型:1成功,2取消,3未订阅提醒 ")
private Integer subType; private Integer subType;
@ApiModelProperty("类型 1 文字 2 图片 3 链接 4应用 5素材")
private Integer replyType; private Integer replyType;
@ApiModelProperty("内容")
private String content; private String content;
@ApiModelProperty("描述")
private String description; private String description;
@ApiModelProperty("链接地址")
private String linkUrl; private String linkUrl;
@ApiModelProperty("图片地址")
private String picUrl; private String picUrl;
private Integer serveId; @ApiModelProperty("应用或作品id")
private Long serveId;
@ApiModelProperty("应用或作品类型")
private String serveType; private String serveType;
private Integer resourceId; @ApiModelProperty("资源id")
private Long resourceId;
private Date createTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getCustomTimeControlId() {
return customTimeControlId;
}
public void setCustomTimeControlId(Integer customTimeControlId) {
this.customTimeControlId = customTimeControlId;
}
public Integer getSubType() { @ApiModelProperty("创建人")
return subType; private Long createUser;
}
public void setSubType(Integer subType) { @ApiModelProperty("应用或作品图片")
this.subType = subType; private String servePic;
}
public Integer getReplyType() { @ApiModelProperty("应用或作品名称")
return replyType; private String serveName;
}
public void setReplyType(Integer replyType) { @ApiModelProperty("应用或作品类型名称")
this.replyType = replyType; private String serveTypeName;
}
public String getContent() { @ApiModelProperty("应用或作品类型编码")
return content; private String serveTypeCode;
}
public void setContent(String content) { @ApiModelProperty("资源链接")
this.content = content == null ? null : content.trim(); private String resourceUrl;
}
public String getDescription() { @ApiModelProperty("资源名称")
return description; private String resourceName;
}
public void setDescription(String description) { @ApiModelProperty("资源类型编码")
this.description = description == null ? null : description.trim(); private String resourceTypeCode;
}
public String getLinkUrl() { @ApiModelProperty("资源类型名称")
return linkUrl; private String resourceTypeName;
}
public void setLinkUrl(String linkUrl) { @ApiModelProperty("文件类型")
this.linkUrl = linkUrl == null ? null : linkUrl.trim(); private String fileType;
}
public String getPicUrl() { @ApiModelProperty("文件大小")
return picUrl; private Long fileSize;
}
public void setPicUrl(String picUrl) { @ApiModelProperty("pdf转码后的单张图片集合")
this.picUrl = picUrl == null ? null : picUrl.trim(); private List<ResourcePdfItemDTO> resourcePdfItems;
}
public Integer getServeId() { @ApiModelProperty("文件转码后的单张图片集合")
return serveId; private List<ResourceOfficeItemDTO> resourceOfficeItemDTOs;
}
public void setServeId(Integer serveId) { @ApiModelProperty("创建时间")
this.serveId = serveId; private Date createTime;
}
public String getServeType() {
return serveType;
}
public void setServeType(String serveType) {
this.serveType = serveType == null ? null : serveType.trim();
}
public Integer getResourceId() {
return resourceId;
}
public void setResourceId(Integer resourceId) {
this.resourceId = resourceId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment