Commit ca234a3c by 田超

Merge branch 'qrcode' into 'master'

feat: [1004553] 书码流程二维码统一

See merge request rays/pcloud-book!1292
parents 2f22b1c6 50353bd6
......@@ -832,6 +832,16 @@ public class BookDto extends BaseDto {
this.isOpenCatalog = isOpenCatalog;
}
private String qrcodeType;
public String getQrcodeType() {
return qrcodeType;
}
public void setQrcodeType(String qrcodeType) {
this.qrcodeType = qrcodeType;
}
public BigDecimal getBookGmv() {
return bookGmv;
}
......@@ -2431,6 +2441,7 @@ public class BookDto extends BaseDto {
", isOpenCatalog=" + isOpenCatalog +
", seq=" + seq +
", openCatalogPermission=" + openCatalogPermission +
", qrcodeType='" + qrcodeType + '\'' +
", bookAdviserDto=" + bookAdviserDto +
'}';
}
......
package com.pcloud.book.group.dto;
import lombok.Data;
@Data
public class AddBookGroupServeDTO {
private Long bookGroupId;
private Long serveId;
private String serveType;
private String serveUrl;
private Long sceneId;
private String servePic;
private String serveName;
private String typeCode;
}
......@@ -155,12 +155,21 @@ public class BookGroupDTO implements Serializable {
private Integer groupQrcodePageNum;
private Integer groupQrcodeLocationId;
/**private String groupQrcodeRemark;
/**
* H5落地页是否开启小睿流程
*/
private Integer resourcePageOpenRays;
private String groupQrcodeRemark;
private String groupQrcodeLink;
public String getGroupQrcodeLink() {
return groupQrcodeLink;
}
public void setGroupQrcodeLink(String groupQrcodeLink) {
this.groupQrcodeLink = groupQrcodeLink;
}
public Integer getResourcePageOpenRays() {
return resourcePageOpenRays;
......@@ -472,6 +481,7 @@ public class BookGroupDTO implements Serializable {
", groupQrcodeLocationId=" + groupQrcodeLocationId +
", groupQrcodeRemark='" + groupQrcodeRemark + '\'' +
", resourcePageOpenRays=" + resourcePageOpenRays +
", groupQrcodeLink='" + groupQrcodeLink + '\'' +
'}';
}
}
\ No newline at end of file
package com.pcloud.book.group.dto;
import lombok.Data;
@Data
public class BookGroupServiceDTO {
private Long serveId;
private String serveType;
private String serveUrl;
private String shortUrl;
private Long bookGroupId;
private Long createUser;
private String serveName;
private String fromType;
private Boolean isSuper;
private Double retailPrice;
private Double dealPrice;
private Integer browseCount;
private Integer browserCount;
private Long avgbrowseTimes;
private Integer saleCount;
private String picUrl;
private String description;
private String typeCode;
private Long bookId;
private Long merchantId;
}
package com.pcloud.book.group.dto;
import lombok.Data;
@Data
public class CreateGroupDTO {
private Long bookId;
private Long channelId;
private Long adviserId;
private Integer joinGroupType;
private Integer jumpType;
private String jumpUrl;
}
package com.pcloud.book.group.service;
import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServiceDTO;
import com.pcloud.book.group.dto.CreateGroupDTO;
import com.pcloud.common.dto.ResponseDto;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
import io.swagger.annotations.ApiOperation;
@FeignClient(value = "pcloud-service-book", qualifier = "BookGroupDataCloud", path = "book/v1.0/bookGroupDataService")
public interface BookGroupDataService {
@RequestMapping(value = "/getBookGroupService", method = RequestMethod.POST)
ResponseEntity<ResponseDto<Map<Long, List<BookGroupServiceDTO>>>> getBookGroupService(@RequestBody List<Long> bookGroupIds);
@RequestMapping(value = "/createBookGroup", method = RequestMethod.POST)
ResponseEntity<ResponseDto<BookGroupDTO>> createBookGroup(@RequestBody CreateGroupDTO createGroupDTO);
@RequestMapping(value = "/AddBookGroupServe", method = RequestMethod.POST)
void AddBookGroupServe(@RequestBody List<AddBookGroupServeDTO> list, @RequestParam("partyId")Long partyId);
@ApiOperation("批量更新bookgroup对应的sceneId")
@PostMapping("batchUpdateSceneIdByBookGroup")
void batchUpdateSceneIdByBookGroup(@RequestBody List<AddBookGroupServeDTO> list);
}
......@@ -917,6 +917,8 @@ public class BookBizImpl implements BookBiz {
bookSet.setBookGroupInfo(pageBean.getRecordList());
//设置书刊资源目录按钮展示
bookSet.setBookCatalogInfo(pageBean.getRecordList(), adviserId);
//设置书刊是否是小睿书(开启小睿流程)
bookSet.setOpenRobotProcess(pageBean.getRecordList());
return pageBean;
}
......
......@@ -3,11 +3,9 @@
*/
package com.pcloud.book.book.set;
import cn.hutool.core.collection.CollUtil;
import com.google.common.collect.Lists;
import com.alibaba.fastjson.JSONObject;
import com.mchange.v2.lang.ThreadUtils;
import com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
......@@ -54,6 +52,7 @@ import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.book.consumer.user.PartyConsr;
import com.pcloud.book.consumer.voicemessage.MerchantVideoConsr;
import com.pcloud.book.group.biz.BookGroupClassifyBiz;
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;
......@@ -61,8 +60,8 @@ import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.channelcenter.base.constants.MessageFromTypeEnum;
import com.pcloud.channelcenter.qrcode.dto.Book4CatalogDTO;
import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeLocationDto;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrVO;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
......@@ -83,7 +82,6 @@ import com.pcloud.labelcenter.label.service.LabelService;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
import com.pcloud.resourcecenter.product.dto.SpecificationDto;
import com.pcloud.settlementcenter.pay.constants.PayConstant;
import com.pcloud.settlementcenter.record.dto.AgentBookIncomeDTO;
import com.pcloud.settlementcenter.record.dto.AgentBookIncomeParamDTO;
import com.pcloud.settlementcenter.record.dto.AgentBookIncomeParamListDTO;
......@@ -121,6 +119,8 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollUtil;
/**
* @描述:图书信息填充
* @作者:songx
......@@ -191,6 +191,9 @@ public class BookSet {
@Autowired
private BookLabelDao bookLabelDao;
private List<Object> bookCatalogInfo;
private List<Object> openRobotProcess;
@Autowired
private ResourcePageBiz resourcePageBiz;
/**
* 检验书号是否合法,包括ISSN,ISBN,CSSN
......@@ -1447,6 +1450,7 @@ public class BookSet {
bookDto.setLocation(localtion);
bookDto.setSceneName(bookAssocLastQrVO.getSceneName());
bookDto.setSceneId(bookAssocLastQrVO.getSceneId());
bookDto.setQrcodeType(bookAssocLastQrVO.getQrcodeType());
bookDto.setTypeCodeNames(bookAssocLastQrVO.getTypes());
}
}
......@@ -2004,7 +2008,7 @@ public class BookSet {
BookDto bookDto = (BookDto) obj;
Boolean openCatalogPermission = false;
if (null != bookDto) {
String key = bookDto.getBookId()+"-"+bookDto.getChannelId()+"-"+bookDto.getAdviserId();
String key = bookDto.getBookId() + "-" + bookDto.getChannelId() + "-" + bookDto.getAdviserId();
if (!MapUtils.isEmpty(catalogDTOMap) && catalogDTOMap.containsKey(key)) {
openCatalogPermission = true;
}
......@@ -2013,4 +2017,47 @@ public class BookSet {
}
LOGGER.info("设置书刊资源目录按钮展示【END】");
}
/**
* 设置书刊是否是小睿书(开启小睿流程)
*/
public void setOpenRobotProcess(List<Object> recordList) {
if (ListUtils.isEmpty(recordList)) {
return;
}
List<BookSceneIdListDTO> bookSceneIdListDTOS = new ArrayList<>();
for (Object obj : recordList) {
BookDto bookDto = (BookDto) obj;
BookSceneIdListDTO dto = new BookSceneIdListDTO();
dto.setAdviserId(bookDto.getAdviserId());
dto.setBookId(bookDto.getBookId());
dto.setChannelId(bookDto.getChannelId());
bookSceneIdListDTOS.add(dto);
}
List<BookSceneIdListDTO> sceneIdListDTOS = qrcodeSceneConsr.listSceneIds4Book(bookSceneIdListDTOS);
Map<String, List<Long>> bookSceneIdMap = new HashMap<>();
if (!ListUtils.isEmpty(sceneIdListDTOS)) {
for (BookSceneIdListDTO dto : sceneIdListDTOS) {
if (!ListUtils.isEmpty(dto.getSceneIds())) {
String key = dto.getBookId() + "-" + dto.getAdviserId() + "-" + dto.getChannelId();
bookSceneIdMap.put(key, dto.getSceneIds());
}
}
}
for (Object obj : recordList) {
BookDto bookDto = (BookDto) obj;
Integer isOpenRobotProcess = 0;
String key = bookDto.getBookId() + "-" + bookDto.getAdviserId() + "-" + bookDto.getChannelId();
if (!MapUtils.isEmpty(bookSceneIdMap) && bookSceneIdMap.containsKey(key)) {
List<Long> sceneIdList = bookSceneIdMap.get(key);
//开启小睿的二维码
List<Long> openRaysSceneIds = resourcePageBiz.getOpenRaysSceneIds(sceneIdList);
if (!ListUtils.isEmpty(openRaysSceneIds)) {
isOpenRobotProcess = 1;
}
}
bookDto.setIsOpenRobotProcess(isOpenRobotProcess);
}
}
}
......@@ -7,7 +7,9 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.channelcenter.qrcode.dto.BookDto;
import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO;
import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
import com.pcloud.channelcenter.qrcode.dto.OwnMessageDTO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.entity.QrcodeScene;
import com.pcloud.channelcenter.qrcode.service.QrcodeLocationAssocService;
......@@ -549,4 +551,38 @@ public class QrcodeSceneConsr {
}
return null;
}
@ParamLog("同步二维码资源到渠道中心")
public void updateOwnMessage4Qr(OwnMessageDTO ownMessageDTO) {
try {
qrcodeSceneService.updateOwnMessage4Qr(ownMessageDTO);
} catch (Exception e) {
LOGGER.error("调用qrcodeSceneService.updateOwnMessage4Qr失败"+e.getMessage(), e);
}
}
@ParamLog("获取图书下配置的二维码ID集合")
public List<BookSceneIdListDTO> listSceneIds4Book(List<BookSceneIdListDTO> requestDto) {
List<BookSceneIdListDTO> listDTOS = new ArrayList<>();
if (ListUtils.isEmpty(requestDto)) {
return listDTOS;
}
try {
listDTOS = ResponseHandleUtil.parseList(qrcodeSceneService.listSceneIds4Book(requestDto),BookSceneIdListDTO.class);
} catch (Exception e) {
LOGGER.error("获取图书下配置的二维码ID集合[qrcodeSceneService.listSceneIds4Book]失败"+e.getMessage(), e);
}
return listDTOS;
}
@ParamLog("根据二维码查同一本书下的Rays码")
public List<Long> getBookRaysSceneIds(Long sceneId) {
try {
return ResponseHandleUtil.parseList(qrcodeSceneService.getBookRaysSceneIds(sceneId), Long.class);
} catch (Exception e) {
LOGGER.error("根据二维码查同一本书下的Rays码[qrcodeSceneService.getBookRaysSceneIds]调用失败"+e, e);
}
return new ArrayList<>();
}
}
package com.pcloud.book.group.biz;
import com.pcloud.book.book.vo.BookResourceNumDTO;
import com.pcloud.book.group.dto.*;
import com.pcloud.book.group.entity.BookGroupApp;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.vo.BookGroupServeCountVO;
import java.util.List;
import java.util.Map;
/**
*
*适配接口
*/
public interface BookGroupDataBiz {
Map<Long, List<BookGroupServiceDTO>> getBookGroupService(List<Long> bookGroupIds);
}
package com.pcloud.book.group.biz;
import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.ResourcePage;
......@@ -194,4 +195,27 @@ public interface ResourcePageBiz {
* * @param null
*/
void addCollectRecord(ResourcePageCollect resourcePageCollect);
/**
* 同步渠道资源到H5资源页
* @author:zhuyajie
* @date:2021/4/30 10:28
* * @param null
*/
void batchAddResource(List<AddBookGroupServeDTO> list, Long adviserId);
/**
* 筛选开启小睿的码
* @author:zhuyajie
* @date:2021/4/30 14:26
* * @param null
*/
List<Long> getOpenRaysSceneIds(List<Long> sceneIds);
/**
* 批量更新bookgroup对应的sceneId
* @author:zhuyajie
* @date:2021/4/30 19:52
* * @param null
*/
void batchUpdateSceneIdByBookGroup(List<AddBookGroupServeDTO> list);
}
\ No newline at end of file
......@@ -645,6 +645,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
group.setJoinGroupType(joinGroupType);
}
bookGroupDao.update(group);
bookGroup.setGroupQrcodeLink(group.getGroupQrcodeLink());
} else {
//小睿码创建公众号二维码
Boolean bookGroupAccountsQrcode = JoinGroupTypeEnum.XIAORUI.getCode().equals(joinGroupType) && QrcodeJumpType.H5_OFFICIAL_ACCOUNTS.getCode().equals(jumpType);
......@@ -667,6 +668,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
}
bookGroupDao.update(group);
bookGroup.setGroupQrcodeUrl(groupQrcodeUrl);
bookGroup.setGroupQrcodeLink(groupQrcodeLink);
}
if (null != bookId && !bookId.equals(0L)) {
mainLineConsr.sendAddBookGroupTask(bookId, adviserId);
......
package com.pcloud.book.group.biz.impl;
import com.pcloud.book.group.biz.BookGroupDataBiz;
import com.pcloud.book.group.dao.ResourcePageItemDao;
import com.pcloud.book.group.dto.BookGroupServiceDTO;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.common.utils.BeanUtils;
import com.pcloud.common.utils.ListUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
*/
@Component("bookGroupDataBiz")
public class BookGroupDataBizImpl implements BookGroupDataBiz {
@Autowired
private ResourcePageItemDao resourcePageItemDao;
@Override
public Map<Long, List<BookGroupServiceDTO>> getBookGroupService(List<Long> bookGroupIds) {
Map<Long, List<BookGroupServiceDTO>> resultMap = new HashMap<>();
if (ListUtils.isEmpty(bookGroupIds)) {
return resultMap;
}
List<BookGroupServe> resultList = resourcePageItemDao.getServeListByBookGroupIds(bookGroupIds);
if (ListUtils.isEmpty(resultList)) {
return new HashMap<>();
}
for (BookGroupServe bookGroupServe : resultList) {
Long bookGroupId = bookGroupServe.getBookGroupId();
List<BookGroupServiceDTO> bookGroupServiceDTOS = resultMap.get(bookGroupId);
if(bookGroupServiceDTOS==null){
bookGroupServiceDTOS = new ArrayList<>();
}
BookGroupServiceDTO dto =new BookGroupServiceDTO();
BeanUtils.copyProperties(bookGroupServe,dto);
bookGroupServiceDTOS.add(dto);
resultMap.put(bookGroupId,bookGroupServiceDTOS);
}
return resultMap;
}
}
\ No newline at end of file
......@@ -28,6 +28,7 @@ import com.pcloud.book.group.dao.ResourcePageCollectDao;
import com.pcloud.book.group.dao.ResourcePageColumnDao;
import com.pcloud.book.group.dao.ResourcePageDao;
import com.pcloud.book.group.dao.ResourcePageItemDao;
import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServeDTO;
import com.pcloud.book.group.entity.BookAppletScene;
......@@ -58,9 +59,11 @@ import com.pcloud.book.skill.biz.PcloudGroupActivityBiz;
import com.pcloud.book.util.common.ThreadPoolUtils;
import com.pcloud.book.util.properties.BookProps;
import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
import com.pcloud.channelcenter.qrcode.dto.OwnMessageDTO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.channelcenter.wechat.dto.MessageDto;
import com.pcloud.channelcenter.wechat.entity.Message;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.AdviserTaskConstants;
import com.pcloud.common.core.constant.ProductTypeConstant;
......@@ -186,6 +189,14 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
bookAppletScene.setAccountSettingId(BookProps.getMiniOfficialAccountsId());
bookAppletSceneDao.insert(bookAppletScene);
}
//同一本书其他码下关闭小睿流程
List<Long> sceneIds = qrcodeSceneConsr.getBookRaysSceneIds(sceneId);
if (!ListUtils.isEmpty(sceneIds)) {
sceneIds.remove(sceneId);
if (!ListUtils.isEmpty(sceneIds)) {
resourcePageDao.setRaysCloseBySceneIds(sceneIds);
}
}
}
return resourcePage.getId();
}
......@@ -1155,6 +1166,10 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
adviserTaskConsr.sendAdviserTaskQueue(updateResourcePageVO.getCreateUser(), AdviserTaskConstants.TargetTypeEnum.QRCODE.getValue(),
page.getBookGroupId() == null ? page.getSceneId() : page.getBookGroupId(),
AdviserTaskConstants.OperateTypeEnum.CONFIGURE_RESOURCE.getValue());
//同步RAYS码资源配置
ThreadPoolUtils.OTHER_POOL.execute(()->{
this.updateOwnMessage4Qr(updateResourcePageVO.getSceneId());
});
return resourcePageId;
}
......@@ -1488,4 +1503,109 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePageCollectDao.insert(resourcePageCollect);
}
/**
* 同步RAYS码资源配置
* @author:zhuyajie
* @date:2021/4/28 10:42
* * @param null
*/
private void updateOwnMessage4Qr(Long sceneId) {
log.info("同步RAYS码资源配置,sceneId=" + sceneId);
if (null == sceneId) {
return;
}
QrcodeSceneDto qrcodeSceneDto = qrcodeSceneConsr.getById(sceneId);
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);
//配置的资源
Map<Long, List<BookGroupServeDTO>> serveList = this.mapSceneServeList(Arrays.asList(sceneId));
List<Message> messages = new ArrayList<>();
if (!MapUtils.isEmpty(serveList)) {
for (BookGroupServeDTO serveDTO : serveList.get(sceneId)) {
Message message = new Message();
message.setFromId(serveDTO.getServeId());
message.setFromType(serveDTO.getTypeCode());
message.setUrl(serveDTO.getServeUrl());
message.setCoverImg(serveDTO.getPicUrl());
message.setPosterPicUrl(serveDTO.getTransverseImg());
message.setTitle(serveDTO.getServeName());
message.setShortTitle(serveDTO.getTypeName());
message.setTypeCode(serveDTO.getServeType());
messages.add(message);
}
}
ownMessageDTO.setMessages(messages);
qrcodeSceneConsr.updateOwnMessage4Qr(ownMessageDTO);
}
@Override
public void batchAddResource(List<AddBookGroupServeDTO> list, Long adviserId) {
if (ListUtils.isEmpty(list) || null == adviserId) {
return;
}
for (AddBookGroupServeDTO bookGroupServeDTO : list) {
this.addResource(bookGroupServeDTO, adviserId);
}
}
private void addResource(AddBookGroupServeDTO addBookGroupServeDTO, Long adviserId) {
if (null == addBookGroupServeDTO || null == addBookGroupServeDTO.getSceneId()) {
return;
}
Long sceneId = addBookGroupServeDTO.getSceneId();
ResourcePage resourcePage = resourcePageDao.getBySceneId(sceneId);
if (null == resourcePage) {
resourcePage = this.createDefaultResourcePage(null, adviserId, sceneId, 0);
}
Long resourcePageId = resourcePage.getId();
//是否有应用栏目
List<ResourcePageColumn> columns = resourcePageColumnDao.getByColumnTypeAndPage(resourcePageId, ResourcePageConstants.ColumnTypeEnum.APP_PRODUCT.getCode());
ResourcePageColumn column = null;
List<ResourcePageItemVO> itemVOS = new ArrayList<>();
if (!ListUtils.isEmpty(columns)) {
column = columns.get(0);
itemVOS = resourcePageItemDao.getResourcePageItemByColumnId(column.getId());
}
//资源
ResourcePageItemVO vo = new ResourcePageItemVO();
BeanUtils.copyProperties(addBookGroupServeDTO, vo);
vo.setLinkUrl(addBookGroupServeDTO.getServeUrl());
vo.setSeqNum(itemVOS.size() + 1);
itemVOS.add(vo);
//更新栏目
UpdateResourceColumnVO columnVO = new UpdateResourceColumnVO();
columnVO.setColumnFormat(null == column ? 1 : column.getColumnFormat());
columnVO.setColumnType(ResourcePageConstants.ColumnTypeEnum.APP_PRODUCT.getCode());
columnVO.setCreateUser(adviserId);
columnVO.setColumnName(null == column ? "本书配套资源服务" : column.getColumnName());
columnVO.setResourcePageColumnId(null == column ? null : column.getId());
columnVO.setItemVOList(itemVOS);
columnVO.setResourcePageId(resourcePageId);
columnVO.setShowMore(null == column ? false : column.getShowMore());
columnVO.setShowCount(null == column ? null : column.getShowCount());
this.updateResourceColumn(columnVO);
}
@Override
public List<Long> getOpenRaysSceneIds(List<Long> sceneIds) {
if (ListUtils.isEmpty(sceneIds)) {
return new ArrayList<>();
}
return resourcePageDao.getOpenRaysSceneIds(sceneIds);
}
@Override
public void batchUpdateSceneIdByBookGroup(List<AddBookGroupServeDTO> list) {
if(ListUtils.isEmpty(list)) {
return;
}
resourcePageDao.batchUpdateSceneIdByBookGroup(list);
}
}
......@@ -4,6 +4,7 @@ import com.pcloud.book.book.vo.BookResourceNumDTO;
import com.pcloud.book.group.dto.BookGroup4CatalogDTO;
import com.pcloud.book.group.dto.BookGroupCountDTO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.dto.BookGroupServiceDTO;
import com.pcloud.book.group.entity.BookGroupApp;
import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.vo.BookGroupServeCountVO;
......@@ -128,4 +129,6 @@ public interface BookGroupServeDao extends BaseDao<BookGroupServe> {
* * @param null
*/
List<BookGroup4CatalogDTO> listBookGroup4BookCatalog(Long bookId, Long adviserId, Long channelId, String name, Integer rank);
List<BookGroupServe> getServersById(List<Long> bookGroupIds);
}
package com.pcloud.book.group.dao;
import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.entity.ResourcePage;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
import java.util.Map;
......@@ -62,4 +64,27 @@ public interface ResourcePageDao extends BaseDao<ResourcePage>{
* * @param null
*/
ResourcePage getPageByOfficialScene(Long officialSceneId);
/**
* 查开启小睿的二维码
* @author:zhuyajie
* @date:2021/4/30 14:32
* * @param null
*/
List<Long> getOpenRaysSceneIds(List<Long> sceneIds);
/**
* 批量关闭小睿流程
* @author:zhuyajie
* @date:2021/4/30 14:47
* * @param null
*/
void setRaysCloseBySceneIds(List<Long> sceneIds);
/**
* 批量更新sceneId
* @author:zhuyajie
* @date:2021/4/30 19:58
* * @param null
*/
void batchUpdateSceneIdByBookGroup(List<AddBookGroupServeDTO> list);
}
\ No newline at end of file
......@@ -243,4 +243,11 @@ public class BookGroupServeDaoImpl extends BaseDaoImpl<BookGroupServe> implement
map.put("rank", rank);
return getSessionTemplate().selectList(getStatement("listBookGroup4BookCatalog"), map);
}
@Override
public List<BookGroupServe> getServersById(List<Long> bookGroupIds) {
Map<String,Object> map = new HashMap<>();
map.put("list", bookGroupIds);
return getSessionTemplate().selectList(getStatement("getServersById"), map);
}
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.ResourcePageDao;
import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.entity.ResourcePage;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
......@@ -51,4 +53,19 @@ public class ResourcePageDaoImpl extends BaseDaoImpl<ResourcePage> implements Re
public ResourcePage getPageByOfficialScene(Long officialSceneId) {
return getSessionTemplate().selectOne(getStatement("getPageByOfficialScene"), officialSceneId);
}
@Override
public List<Long> getOpenRaysSceneIds(List<Long> sceneIds) {
return getSessionTemplate().selectList(getStatement("getOpenRaysSceneIds"), sceneIds);
}
@Override
public void setRaysCloseBySceneIds(List<Long> sceneIds) {
getSessionTemplate().update(getStatement("setRaysCloseBySceneIds"), sceneIds);
}
@Override
public void batchUpdateSceneIdByBookGroup(List<AddBookGroupServeDTO> list) {
getSessionTemplate().update(getStatement("batchUpdateSceneIdByBookGroup"), list);
}
}
package com.pcloud.book.group.dto;
import com.pcloud.book.group.entity.BookGroup;
import javax.validation.constraints.NotNull;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @ClassName com.pcloud.book.group.dto.BookGroupCreateDTO
* @Author zhuyajie
......
package com.pcloud.book.group.service.impl;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.BookGroupDataBiz;
import com.pcloud.book.group.biz.ResourcePageBiz;
import com.pcloud.book.group.dto.AddBookGroupServeDTO;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServiceDTO;
import com.pcloud.book.group.dto.CreateGroupDTO;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.service.BookGroupDataService;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.utils.BeanUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RequestMapping("bookGroupDataService")
@RestController
public class BookGroupDataServiceImpl implements BookGroupDataService {
@Autowired
private BookGroupDataBiz bookGroupDataBiz;
@Autowired
private BookGroupBiz bookGroupBiz;
@Autowired
private ResourcePageBiz resourcePageBiz;
@Override
@RequestMapping(value = "/getBookGroupService", method = RequestMethod.POST)
public ResponseEntity<ResponseDto<Map<Long, List<BookGroupServiceDTO>>>> getBookGroupService(@RequestBody List<Long> bookGroupIds) {
if(bookGroupIds==null ||bookGroupIds.size()>500){
return null;
}
Map<Long, List<BookGroupServiceDTO>> map = bookGroupDataBiz.getBookGroupService(bookGroupIds);
return ResponseHandleUtil.toResponse(map);
}
@Override
@RequestMapping(value = "/createBookGroup", method = RequestMethod.POST)
public ResponseEntity<ResponseDto<BookGroupDTO>> createBookGroup(@RequestBody CreateGroupDTO createGroupDTO) {
Long bookId = createGroupDTO.getBookId();
Long channelId = createGroupDTO.getChannelId();
Long adviserId = createGroupDTO.getAdviserId();
Integer joinGroupType = createGroupDTO.getJoinGroupType();
Integer jumpType = createGroupDTO.getJumpType();
if (JoinGroupTypeEnum.XIAORUI.getCode().equals(joinGroupType) && null == jumpType){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少跳转类型");
}
BookGroup bookGroup = bookGroupBiz.createBookGroupAfterCreateBook(bookId,channelId,adviserId,null, null,joinGroupType,jumpType,createGroupDTO.getJumpUrl());
BookGroupDTO bookGroupDTO = new BookGroupDTO();
BeanUtils.copyProperties(bookGroup, bookGroupDTO);
return ResponseHandleUtil.toResponse(bookGroupDTO);
}
@Override
@RequestMapping(value = "/AddBookGroupServe", method = RequestMethod.POST)
public void AddBookGroupServe(@RequestBody List<AddBookGroupServeDTO> list,@RequestParam("partyId") Long partyId) {
resourcePageBiz.batchAddResource(list, partyId);
}
@Override
@PostMapping("batchUpdateSceneIdByBookGroup")
public void batchUpdateSceneIdByBookGroup(@RequestBody List<AddBookGroupServeDTO> list){
resourcePageBiz.batchUpdateSceneIdByBookGroup(list);
}
}
......@@ -527,10 +527,10 @@
SELECT
A.BOOK_ID, A.CHANNEL_ID, A.ADVISER_ID, A.IS_MAIN_EDITOR, T.TYPE_CODE, T.TYPE_NAME, B.ISBN, B.BOOK_NAME, B.REMARK,
B.AUTHOR, B.PUBLISH, B.PUBLISH_DATE, B.COVER_IMG, B.ORIGIN_NAME, B.BOOK_PRICE, B.ISSN, B.BOOK_NUM, B.SERIAL_NUMBER,
IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,A.TEMPLET_ID, if(G.ID IS NULL, A.LAST_MODIFIED_DATE, G.UPDATE_TIME) LAST_MODIFIED_DATE,
IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,A.TEMPLET_ID, A.LAST_MODIFIED_DATE,
A.BOOK_ADVISER_ID,I.BOOK_STATUS, CONCAT('BK',A.BOOK_ID) uniqueNumber, if(G.ID IS NULL, 0, 1) isBookGroup, A.IS_PRINT isPrint,
G.id BOOK_GROUP_ID, G.group_qrcode_url groupQrcodeUrl,G.group_qrcode_name groupQrcodeName,A.is_approval isApproval,
G.join_group_type,a.is_open_robot_process,G.single_group singleGroup, G.related_book_group_id relatedBookGroupId,
G.join_group_type,G.single_group singleGroup, G.related_book_group_id relatedBookGroupId,
IF(ISNULL(s.id),0,1) minimumSupport, A.is_open_catalog
FROM
BOOK_ADVISER A
......
......@@ -357,6 +357,28 @@
s.id
</select>
<select id="getServersById" parameterType="map" resultMap="BaseResultMap">
SELECT
s.id,
s.serve_id,
s.serve_type,
s.serve_url,
s.short_url,
s.book_group_id,
s.create_user,
s.create_time,
s.type_code
FROM
book_group_serve s
WHERE
s.book_group_id IN
<foreach collection="list" open="(" close=")" item="item" index="index" separator=",">
#{item}
</foreach>
</select>
<select id="listResourceNum4AdviserBook" parameterType="map" resultType="com.pcloud.book.book.vo.BookResourceNumDTO">
SELECT count(concat(s.serve_id, s.serve_type)) resourceNum,
g.book_id bookId,
......
......@@ -133,4 +133,38 @@
limit 1
</select>
<select id="getOpenRaysSceneIds" resultType="long" parameterType="list">
SELECT
scene_id
FROM
resource_page
WHERE
open_rays = 1
AND scene_id IN
<foreach collection="list" item="item" open="(" close=")" separator="," index="index">
#{item}
</foreach>
</select>
<update id="setRaysCloseBySceneIds" parameterType="list">
UPDATE
resource_page
SET open_rays = 0
WHERE scene_id IN
<foreach collection="list" item="item" open="(" close=")" separator="," index="index">
#{item}
</foreach>
</update>
<update id="batchUpdateSceneIdByBookGroup" parameterType="list">
update book.resource_page set scene_id =
<foreach collection="list" open="CASE" separator=" " close="END" item="item">
WHEN book_group_id = #{item.bookGroupId} THEN #{item.sceneId}
</foreach>
where book_group_id IN
<foreach collection="list" item="item" close=")" separator="," open="(">
${item.bookGroupId}
</foreach>
</update>
</mapper>
\ 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