Commit df59b9f6 by 田超

Merge branch 'feature/1005240' into 'master'

feat:[1005240]本书服务页加导航

See merge request rays/pcloud-book!1388
parents 9bf22f1b c155cd38
...@@ -5,10 +5,12 @@ import com.pcloud.book.group.dto.AddBookGroupServeDTO; ...@@ -5,10 +5,12 @@ 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.NavigationParamDTO;
import com.pcloud.book.group.dto.ResourcePageCourseDTO; import com.pcloud.book.group.dto.ResourcePageCourseDTO;
import com.pcloud.book.group.entity.BookGroupServe; import com.pcloud.book.group.entity.BookGroupServe;
import com.pcloud.book.group.entity.ResourcePage; import com.pcloud.book.group.entity.ResourcePage;
import com.pcloud.book.group.entity.ResourcePageCollect; import com.pcloud.book.group.entity.ResourcePageCollect;
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.ResourceRecomManage; import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.book.group.vo.ResourceColumnAndServeVO; import com.pcloud.book.group.vo.ResourceColumnAndServeVO;
...@@ -63,7 +65,7 @@ public interface ResourcePageBiz { ...@@ -63,7 +65,7 @@ public interface ResourcePageBiz {
* @date:2021/3/29 11:49 * @date:2021/3/29 11:49
* * @param null * * @param null
*/ */
List<ResourceColumnAndServeVO> getColumnAndServeListByPageId(Long resourcePageId, Boolean isWechat, Long bookId, Long adviserId, Long channelId, Integer enableAdverting); List<ResourceColumnAndServeVO> getColumnAndServeListByPageId(Long resourcePageId, Boolean isWechat, Long bookId, Long adviserId, Long channelId, Integer enableAdverting, Long navigationId);
/** /**
* 根据书刊查资源页基本配置 * 根据书刊查资源页基本配置
* @author:zhuyajie * @author:zhuyajie
...@@ -401,4 +403,41 @@ public interface ResourcePageBiz { ...@@ -401,4 +403,41 @@ public interface ResourcePageBiz {
* * @param null * * @param null
*/ */
List<BookServeDTO> getBookAllServeIdsIncludeUrl(Long adviserId, Long bookId, Long channelId); List<BookServeDTO> getBookAllServeIdsIncludeUrl(Long adviserId, Long bookId, Long channelId);
/**
* 处理旧数据导航
* @author:zhuyajie
* @date:2021/8/16 10:51
* * @param null
*/
void dealOldNavigation();
/**
* 保存导航
* @author:zhuyajie
* @date:2021/8/17 16:42
* * @param null
*/
void saveNavigation(NavigationParamDTO navigationParamDTO);
/**
* 添加导航图片到图片库
* @author:zhuyajie
* @date:2021/8/24 14:46
* * @param null
*/
void addNavigationPic(ResourcePagePic resourcePagePic);
/**
* 删除导航图片库图片
* @author:zhuyajie
* @date:2021/8/24 14:50
* * @param null
*/
void deleteNavigationPic(Long id);
/**
* 查询导航图片库图片
* @author:zhuyajie
* @date:2021/8/24 14:51
* * @param null
*/
PageBeanNew<ResourcePagePic> listNavigationPic(Long adviserId, Integer currentPage, Integer numPerPage);
} }
...@@ -24,7 +24,6 @@ import com.pcloud.book.consumer.advsertising.AdvertisingConsr; ...@@ -24,7 +24,6 @@ import com.pcloud.book.consumer.advsertising.AdvertisingConsr;
import com.pcloud.book.consumer.analysisengine.BrowseRecordConsr; import com.pcloud.book.consumer.analysisengine.BrowseRecordConsr;
import com.pcloud.book.consumer.app.AppConsr; import com.pcloud.book.consumer.app.AppConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr; import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.label.LabelConsr;
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;
...@@ -45,6 +44,8 @@ import com.pcloud.book.group.dao.ResourcePageColumnDao; ...@@ -45,6 +44,8 @@ import com.pcloud.book.group.dao.ResourcePageColumnDao;
import com.pcloud.book.group.dao.ResourcePageCourseDao; import com.pcloud.book.group.dao.ResourcePageCourseDao;
import com.pcloud.book.group.dao.ResourcePageDao; import com.pcloud.book.group.dao.ResourcePageDao;
import com.pcloud.book.group.dao.ResourcePageItemDao; import com.pcloud.book.group.dao.ResourcePageItemDao;
import com.pcloud.book.group.dao.ResourcePageNavigationDao;
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.ResourceRecomManageDao; import com.pcloud.book.group.dao.ResourceRecomManageDao;
import com.pcloud.book.group.dto.AddBookGroupServeDTO; import com.pcloud.book.group.dto.AddBookGroupServeDTO;
...@@ -52,6 +53,7 @@ import com.pcloud.book.group.dto.BookGroupDTO; ...@@ -52,6 +53,7 @@ import com.pcloud.book.group.dto.BookGroupDTO;
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.NavigationParamDTO;
import com.pcloud.book.group.dto.ResourcePageCourseDTO; import com.pcloud.book.group.dto.ResourcePageCourseDTO;
import com.pcloud.book.group.dto.ResourcePageUrlDTO; import com.pcloud.book.group.dto.ResourcePageUrlDTO;
import com.pcloud.book.group.entity.BookAppletScene; import com.pcloud.book.group.entity.BookAppletScene;
...@@ -63,6 +65,8 @@ import com.pcloud.book.group.entity.ResourcePageCollect; ...@@ -63,6 +65,8 @@ import com.pcloud.book.group.entity.ResourcePageCollect;
import com.pcloud.book.group.entity.ResourcePageColumn; import com.pcloud.book.group.entity.ResourcePageColumn;
import com.pcloud.book.group.entity.ResourcePageCourse; import com.pcloud.book.group.entity.ResourcePageCourse;
import com.pcloud.book.group.entity.ResourcePageItem; import com.pcloud.book.group.entity.ResourcePageItem;
import com.pcloud.book.group.entity.ResourcePageNavigation;
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.ResourceRecomManage; import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.book.group.tools.SendWeixinRequestTools; import com.pcloud.book.group.tools.SendWeixinRequestTools;
...@@ -207,6 +211,10 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -207,6 +211,10 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
private ResourceRecomManageDao resourceRecomManageDao; private ResourceRecomManageDao resourceRecomManageDao;
@Autowired @Autowired
private ResourcePageBookstoreBiz resourcePageBookstoreBiz; private ResourcePageBookstoreBiz resourcePageBookstoreBiz;
@Autowired
private ResourcePageNavigationDao resourcePageNavigationDao;
@Autowired
private ResourcePagePicDao resourcePagePicDao;
@Override @Override
public Long updateResourcePage(UpdateResourcePageVO updateResourcePageVO) { public Long updateResourcePage(UpdateResourcePageVO updateResourcePageVO) {
...@@ -277,7 +285,13 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -277,7 +285,13 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
//同一本书其他码下关闭小睿流程 //同一本书其他码下关闭小睿流程
resourcePageDao.setOtherPageRaysClose(resourcePage.getBookId(), resourcePage.getChannelId(), resourcePage.getCreateUser(), sceneId, null); resourcePageDao.setOtherPageRaysClose(resourcePage.getBookId(), resourcePage.getChannelId(), resourcePage.getCreateUser(), sceneId, null);
//添加书友社区导航
this.addDefaultAppletQANavigation(resourcePage.getId());
} else {
//删除书友社区导航
resourcePageNavigationDao.deleteNavigation(resourcePage.getId(), ResourcePageConstants.NavigationTypeEnum.APPLET_QA.getCode());
//导航重新排序
this.updateNavigationSeq4Batch(resourcePage.getId());
} }
esBookAndAdviserBiz.updateBookAndAdviserToES(Collections.singletonList(resourcePage.getBookId())); esBookAndAdviserBiz.updateBookAndAdviserToES(Collections.singletonList(resourcePage.getBookId()));
return resourcePage.getId(); return resourcePage.getId();
...@@ -336,6 +350,13 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -336,6 +350,13 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
//同一本书其他码下关闭小睿流程 //同一本书其他码下关闭小睿流程
resourcePageDao.setOtherPageRaysClose(resourcePage.getBookId(), resourcePage.getChannelId(), resourcePage.getCreateUser(), null, bookGroupId); resourcePageDao.setOtherPageRaysClose(resourcePage.getBookId(), resourcePage.getChannelId(), resourcePage.getCreateUser(), null, bookGroupId);
//添加书友社区导航
this.addDefaultAppletQANavigation(resourcePage.getId());
} else {
//删除书友社区导航
resourcePageNavigationDao.deleteNavigation(resourcePage.getId(), ResourcePageConstants.NavigationTypeEnum.APPLET_QA.getCode());
//导航重新排序
this.updateNavigationSeq4Batch(resourcePage.getId());
} }
esBookAndAdviserBiz.updateBookAndAdviserToES(Collections.singletonList(resourcePage.getBookId())); esBookAndAdviserBiz.updateBookAndAdviserToES(Collections.singletonList(resourcePage.getBookId()));
return resourcePage.getId(); return resourcePage.getId();
...@@ -365,6 +386,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -365,6 +386,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePage.setChannelId(null == qrcodeSceneDto?null:qrcodeSceneDto.getChannelPartyId()); resourcePage.setChannelId(null == qrcodeSceneDto?null:qrcodeSceneDto.getChannelPartyId());
} }
resourcePageDao.insert(resourcePage); resourcePageDao.insert(resourcePage);
//添加默认导航
this.addDefaultBookServeNavigation(resourcePage.getId());
if (openRays == 1) {
this.addDefaultAppletQANavigation(resourcePage.getId());
}
return resourcePage; return resourcePage;
} }
...@@ -454,7 +480,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -454,7 +480,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
BeanUtils.copyProperties(updateResourceColumnVO, resourcePageColumn); BeanUtils.copyProperties(updateResourceColumnVO, resourcePageColumn);
if (null == updateResourceColumnVO.getResourcePageColumnId()) { if (null == updateResourceColumnVO.getResourcePageColumnId()) {
if (null == resourcePageColumn.getColumnSeq()) { if (null == resourcePageColumn.getColumnSeq()) {
Integer maxSeq = resourcePageColumnDao.getMaxSeq(updateResourceColumnVO.getResourcePageId()); Integer maxSeq = resourcePageColumnDao.getMaxSeq(updateResourceColumnVO.getResourcePageId(), updateResourceColumnVO.getNavigationId());
resourcePageColumn.setColumnSeq(maxSeq + 1); resourcePageColumn.setColumnSeq(maxSeq + 1);
} }
resourcePageColumnDao.insert(resourcePageColumn); resourcePageColumnDao.insert(resourcePageColumn);
...@@ -625,6 +651,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -625,6 +651,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
// 加载实体书购买 // 加载实体书购买
this.fillBookStore(resourcePageVO); this.fillBookStore(resourcePageVO);
List<ResourcePageNavigation> navigations = resourcePageNavigationDao.getByPageId(resourcePageVO.getId());
resourcePageVO.setNavigationList(navigations);
return resourcePageVO; return resourcePageVO;
} }
...@@ -640,8 +668,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -640,8 +668,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
@Override @Override
public List<ResourceColumnAndServeVO> getColumnAndServeListByPageId(Long resourcePageId, Boolean isWechat, Long bookId, Long adviserId, Long channelId, Integer enableAdverting) { public List<ResourceColumnAndServeVO> getColumnAndServeListByPageId(Long resourcePageId, Boolean isWechat, Long bookId, Long adviserId, Long channelId, Integer enableAdverting, Long navigationId) {
List<ResourceColumnAndServeVO> serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId); List<ResourceColumnAndServeVO> serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId, navigationId);
if (CollUtil.isNotEmpty(serveVOS)) { if (CollUtil.isNotEmpty(serveVOS)) {
List<ResourcePageItemVO> itemVOList; List<ResourcePageItemVO> itemVOList;
if (isWechat) { if (isWechat) {
...@@ -1174,7 +1202,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1174,7 +1202,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
//删除栏目 //删除栏目
resourcePageColumnDao.deleteById(resourcePageColumnId); resourcePageColumnDao.deleteById(resourcePageColumnId);
//栏目重新排序 //栏目重新排序
this.updateSeq4Batch(column.getResourcePageId()); this.updateSeq4Batch(column.getResourcePageId(), column.getNavigationId());
//同步RAYS码资源配置 //同步RAYS码资源配置
ThreadPoolUtils.OTHER_POOL.execute(()->{ ThreadPoolUtils.OTHER_POOL.execute(()->{
ResourcePage resourcePage = resourcePageDao.getPageByColumnId(resourcePageColumnId); ResourcePage resourcePage = resourcePageDao.getPageByColumnId(resourcePageColumnId);
...@@ -1260,6 +1288,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1260,6 +1288,8 @@ 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);
return resourcePageVO; return resourcePageVO;
} }
...@@ -1295,6 +1325,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1295,6 +1325,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePageVO.setId(resourcePage.getId()); resourcePageVO.setId(resourcePage.getId());
resourcePageVO.setBookCover(resourcePage.getBookCover()); resourcePageVO.setBookCover(resourcePage.getBookCover());
resourcePageVO.setBackgroundImg(resourcePage.getBackgroundImg()); resourcePageVO.setBackgroundImg(resourcePage.getBackgroundImg());
resourcePageVO.setNavigationColor(resourcePage.getNavigationColor());
resourcePageVO.setNavigationFormat(resourcePage.getNavigationFormat());
} }
return resourcePageVO; return resourcePageVO;
} }
...@@ -1334,6 +1366,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1334,6 +1366,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePageVO.setId(resourcePage.getId()); resourcePageVO.setId(resourcePage.getId());
resourcePageVO.setBookCover(resourcePage.getBookCover()); resourcePageVO.setBookCover(resourcePage.getBookCover());
resourcePageVO.setBackgroundImg(resourcePage.getBackgroundImg()); resourcePageVO.setBackgroundImg(resourcePage.getBackgroundImg());
resourcePageVO.setNavigationColor(resourcePage.getNavigationColor());
resourcePageVO.setNavigationFormat(resourcePage.getNavigationFormat());
} }
return resourcePageVO; return resourcePageVO;
} }
...@@ -1344,8 +1378,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -1344,8 +1378,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
* @date:2021/4/14 10:37 * @date:2021/4/14 10:37
* * @param null * * @param null
*/ */
private void updateSeq4Batch(Long resourcePageId) { private void updateSeq4Batch(Long resourcePageId, Long navigationId) {
List<ResourceColumnAndServeVO> serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId); List<ResourceColumnAndServeVO> serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId, navigationId);
if (ListUtils.isEmpty(serveVOS)) { if (ListUtils.isEmpty(serveVOS)) {
return; return;
} }
...@@ -2094,4 +2128,233 @@ public class ResourcePageBizImpl implements ResourcePageBiz { ...@@ -2094,4 +2128,233 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
} }
} }
} }
@Override
public void dealOldNavigation() {
List<Long> resourcePageIds = resourcePageNavigationDao.getNoNavigationPages(null);
if (!ListUtils.isEmpty(resourcePageIds)) {
for (Long resourcePageId : resourcePageIds) {
Long navigationId = this.addDefaultBookServeNavigation(resourcePageId);
if (null != navigationId) {
resourcePageColumnDao.updateNavigationId(navigationId, resourcePageId);
}
}
}
List<Long> openRaysPageIds = resourcePageNavigationDao.getNoNavigationPages(1);
if (!ListUtils.isEmpty(openRaysPageIds)) {
for (Long resourcePageId : openRaysPageIds) {
this.addDefaultAppletQANavigation(resourcePageId);
}
}
}
/**
* 添加书友社区导航
* @author:zhuyajie
* @date:2021/8/16 14:39
* * @param null
*/
private void addDefaultAppletQANavigation(Long resourcePageId) {
ResourcePageNavigation resourcePageNavigation = resourcePageNavigationDao.getByType(resourcePageId,ResourcePageConstants.NavigationTypeEnum.APPLET_QA.getCode());
if (null != resourcePageNavigation) {
return;
}
ResourcePage resourcePage = resourcePageDao.getById(resourcePageId);
if (null == resourcePage) {
return;
}
Integer maxSeq = resourcePageNavigationDao.getMaxSeq(resourcePageId);
ResourcePageNavigation navigation = new ResourcePageNavigation();
navigation.setCreateUser(resourcePage.getCreateUser());
navigation.setNavigationName(ResourcePageConstants.NavigationTypeEnum.APPLET_QA.getName());
navigation.setNavigationSeq(maxSeq+1);
navigation.setNavigationType(ResourcePageConstants.NavigationTypeEnum.APPLET_QA.getCode());
navigation.setResourcePageId(resourcePageId);
resourcePageNavigationDao.insert(navigation);
}
/**
* 添加本书配套导航
* @author:zhuyajie
* @date:2021/8/16 14:40
* * @param null
*/
private Long addDefaultBookServeNavigation(Long resourcePageId) {
ResourcePageNavigation resourcePageNavigation = resourcePageNavigationDao.getByType(resourcePageId,ResourcePageConstants.NavigationTypeEnum.BOOK_SERVE.getCode());
if (null != resourcePageNavigation) {
return null;
}
ResourcePage resourcePage = resourcePageDao.getById(resourcePageId);
if (null == resourcePage) {
return null;
}
ResourcePageNavigation navigation = new ResourcePageNavigation();
navigation.setCreateUser(resourcePage.getCreateUser());
navigation.setNavigationName(ResourcePageConstants.NavigationTypeEnum.BOOK_SERVE.getName());
navigation.setNavigationSeq(1);
navigation.setNavigationType(ResourcePageConstants.NavigationTypeEnum.BOOK_SERVE.getCode());
navigation.setResourcePageId(resourcePageId);
resourcePageNavigationDao.insert(navigation);
return navigation.getId();
}
/**
* 删除导航
* @author:zhuyajie
* @date:2021/8/17 17:15
* * @param null
*/
private void deleteNavigation(Long navigationId) {
ResourcePageNavigation resourcePageNavigation = resourcePageNavigationDao.getById(navigationId);
if (null == resourcePageNavigation) {
return;
}
List<Integer> types = Arrays.asList(ResourcePageConstants.NavigationTypeEnum.BOOK_SERVE.getCode(),ResourcePageConstants.NavigationTypeEnum.APPLET_QA.getCode());
if (types.contains(resourcePageNavigation.getNavigationType())) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"该导航不能删除");
}
resourcePageNavigationDao.deleteById(navigationId);
//栏目
List<ResourcePageColumn> resourcePageColumns = resourcePageColumnDao.getByNavigation(navigationId);
if (!ListUtils.isEmpty(resourcePageColumns)) {
for (ResourcePageColumn resourcePageColumn:resourcePageColumns) {
//删除资源配置
resourcePageItemDao.deleteByPageColumnId(resourcePageColumn.getId());
//删除栏目
resourcePageColumnDao.deleteById(resourcePageColumn.getId());
}
}
}
/**
* 导航重新排序
* @author:zhuyajie
* @date:2021/8/16 17:54
* * @param null
*/
private void updateNavigationSeq4Batch(Long resourcePageId) {
List<ResourcePageNavigation> navigations = resourcePageNavigationDao.getByPageId(resourcePageId);
if (ListUtils.isEmpty(navigations)) {
return;
}
for (ResourcePageNavigation navigation : navigations) {
navigation.setNavigationSeq(navigations.indexOf(navigation) + 1);
}
resourcePageNavigationDao.updateSeq4Batch(navigations);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void saveNavigation(NavigationParamDTO navigationParamDTO) {
//参数校验
this.checkNavigationList(navigationParamDTO);
List<ResourcePageNavigation> originNavigationList = resourcePageNavigationDao.getByPageId(navigationParamDTO.getResourcePageId());
//待删除导航
List<Long> ids4Remove = ListUtils.isEmpty(originNavigationList) ? new ArrayList<>() : originNavigationList.stream().map(ResourcePageNavigation::getId).collect(Collectors.toList());
for (ResourcePageNavigation navigation : navigationParamDTO.getNavigationList()) {
if (null != navigation.getId()) {
//修改
resourcePageNavigationDao.update(navigation);
if (!ListUtils.isEmpty(ids4Remove)) {
ids4Remove.remove(navigation.getId());
}
} else {
//新增
resourcePageNavigationDao.insert(navigation);
}
}
//需要删除的导航
if (!ListUtils.isEmpty(ids4Remove)) {
for (Long navigationId : ids4Remove) {
this.deleteNavigation(navigationId);
}
//同步RAYS码资源配置
ThreadPoolUtils.OTHER_POOL.execute(() -> {
ResourcePage resourcePage = resourcePageDao.getById(navigationParamDTO.getResourcePageId());
this.updateOwnMessage4Qr(null == resourcePage ? null : resourcePage.getSceneId());
});
}
//修改导航样式,版式
resourcePageDao.updateNavigationFormat(navigationParamDTO.getResourcePageId(), navigationParamDTO.getNavigationColor(),navigationParamDTO.getNavigationFormat());
}
private void checkNavigationList(NavigationParamDTO navigationParamDTO) {
if (null == navigationParamDTO) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数缺失");
}
if (null == navigationParamDTO.getResourcePageId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少resourcePageId");
}
if (ListUtils.isEmpty(navigationParamDTO.getNavigationList())) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少导航");
}
List<String> names = new ArrayList<>();
for (ResourcePageNavigation navigation:navigationParamDTO.getNavigationList()){
navigation.setCreateUser(navigationParamDTO.getCreateUser());
navigation.setResourcePageId(navigationParamDTO.getResourcePageId());
this.checkNavigation(navigation);
names.add(navigation.getNavigationName().trim());
}
if (names.size()<navigationParamDTO.getNavigationList().size()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"导航名称重复");
}
}
private void checkNavigation(ResourcePageNavigation navigation) {
if (null == navigation) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数缺失");
}
if (StringUtil.isEmpty(navigation.getNavigationName().trim())) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少导航名称");
}
if (null == navigation.getResourcePageId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少resourcePageId");
}
if (null == navigation.getNavigationSeq()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少排序值");
}
if (null == navigation.getNavigationType()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少导航类型");
}
List<Integer> types = Arrays.asList(ResourcePageConstants.NavigationTypeEnum.BOOK_SERVE.getCode(),ResourcePageConstants.NavigationTypeEnum.APPLET_QA.getCode());
if (types.contains(navigation.getNavigationType()) && null == navigation.getId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少导航id");
}
}
@Override
public void addNavigationPic(ResourcePagePic resourcePagePic) {
if (StringUtil.isEmpty(resourcePagePic.getPicUrl())) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少图片");
}
if (null == resourcePagePic.getAdviserId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少编辑id");
}
resourcePagePic.setIsDefault(0);
resourcePagePic.setType(1);
resourcePagePicDao.insert(resourcePagePic);
}
@Override
public void deleteNavigationPic(Long id) {
ResourcePagePic resourcePagePic = resourcePagePicDao.getById(id);
if (null == resourcePagePic) {
return;
}
if (1 == resourcePagePic.getIsDefault()) {
throw new BookBizException(BookBizException.ERROR,"默认图片不能删除");
}
resourcePagePicDao.deleteById(id);
}
@Override
public PageBeanNew<ResourcePagePic> listNavigationPic(Long adviserId, Integer currentPage, Integer numPerPage) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("adviserId", adviserId);
paramMap.put("type", 1);
return resourcePagePicDao.listPageNew(new PageParam(currentPage,numPerPage), paramMap,"getByType");
}
} }
...@@ -329,4 +329,38 @@ public class ResourcePageConstants { ...@@ -329,4 +329,38 @@ public class ResourcePageConstants {
} }
} }
/**
* 导航类型
* @author:zhuyajie
* @date:2021/8/16 11:59
* * @param null
*/
public enum NavigationTypeEnum{
BOOK_SERVE(1,"本书配套"),
APPLET_QA(2,"书友社区"),
CUSTOM(3,"自定义");
private Integer code;
private String name;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
NavigationTypeEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
}
} }
...@@ -21,7 +21,7 @@ public interface ResourcePageColumnDao extends BaseDao<ResourcePageColumn> { ...@@ -21,7 +21,7 @@ public interface ResourcePageColumnDao extends BaseDao<ResourcePageColumn> {
* @date:2021/3/29 13:45 * @date:2021/3/29 13:45
* * @param null * * @param null
*/ */
Integer getMaxSeq(Long resourcePageId); Integer getMaxSeq(Long resourcePageId, Long navigationId);
/** /**
*栏目和资源列表 *栏目和资源列表
...@@ -29,7 +29,7 @@ public interface ResourcePageColumnDao extends BaseDao<ResourcePageColumn> { ...@@ -29,7 +29,7 @@ public interface ResourcePageColumnDao extends BaseDao<ResourcePageColumn> {
* @date:2021/3/29 13:45 * @date:2021/3/29 13:45
* * @param null * * @param null
*/ */
List<ResourceColumnAndServeVO> getColumnListByPageId(Long resourcePageId); List<ResourceColumnAndServeVO> getColumnListByPageId(Long resourcePageId, Long navigationId);
/** /**
* 根据类型查询 * 根据类型查询
...@@ -63,4 +63,8 @@ public interface ResourcePageColumnDao extends BaseDao<ResourcePageColumn> { ...@@ -63,4 +63,8 @@ public interface ResourcePageColumnDao extends BaseDao<ResourcePageColumn> {
void updateSeq4Batch(List<ResourceColumnAndServeVO> list); void updateSeq4Batch(List<ResourceColumnAndServeVO> list);
void deleteByPageId(Long resourcePageId); void deleteByPageId(Long resourcePageId);
void updateNavigationId(Long navigationId, Long resourcePageId);
List<ResourcePageColumn> getByNavigation(Long navigationId);
} }
\ No newline at end of file
...@@ -113,4 +113,12 @@ public interface ResourcePageDao extends BaseDao<ResourcePage>{ ...@@ -113,4 +113,12 @@ public interface ResourcePageDao extends BaseDao<ResourcePage>{
List<ResourcePageVO> getAllBook4OpenFood(); List<ResourcePageVO> getAllBook4OpenFood();
void updateBookIdBySceneId(Long bookId, Long sceneId); void updateBookIdBySceneId(Long bookId, Long sceneId);
/**
* 修改导航样式
* @author:zhuyajie
* @date:2021/8/18 16:46
* * @param null
*/
void updateNavigationFormat(Long resourcePageId, Integer navigationColor, Integer navigationFormat);
} }
package com.pcloud.book.group.dao;
import com.pcloud.book.group.entity.ResourcePageNavigation;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* 自有码H5页面导航(ResourcePageNavigation)表数据库访问层
*
* @author makejava
* @since 2021-08-16 10:43:21
*/
public interface ResourcePageNavigationDao extends BaseDao<ResourcePageNavigation>{
List<ResourcePageNavigation> getByPageId(Long resourcePageId);
List<Long> getNoNavigationPages(Integer openRays);
ResourcePageNavigation getByType(Long resourcePageId, Integer type);
Integer getMaxSeq(Long resourcePageId);
void deleteNavigation(Long resourcePageId, Integer type);
ResourcePageNavigation getByName(Long resourcePageId, String navigationName);
void updateSeq4Batch(List<ResourcePageNavigation> navigations);
ResourcePageNavigation getNavigationByMoveType(String moveType, Long resourcePageId, Integer navigationSeq);
void updateNavigationSeqNum(Long navigationId, Integer navigationSeq);
}
\ No newline at end of file
package com.pcloud.book.group.dao;
import com.pcloud.book.group.entity.ResourcePagePic;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* 资源页图片库(ResourcePagePic)表数据库访问层
*
* @author makejava
* @since 2021-08-24 14:36:56
*/
public interface ResourcePagePicDao extends BaseDao<ResourcePagePic>{
List<ResourcePagePic> getByType(Integer type, Long adviserId);
}
\ No newline at end of file
...@@ -21,13 +21,19 @@ import java.util.Map; ...@@ -21,13 +21,19 @@ import java.util.Map;
@Component @Component
public class ResourcePageColumnDaoImpl extends BaseDaoImpl<ResourcePageColumn> implements ResourcePageColumnDao { public class ResourcePageColumnDaoImpl extends BaseDaoImpl<ResourcePageColumn> implements ResourcePageColumnDao {
@Override @Override
public Integer getMaxSeq(Long resourcePageId) { public Integer getMaxSeq(Long resourcePageId, Long navigationId) {
return getSessionTemplate().selectOne(getStatement("getMaxSeq"),resourcePageId); Map<String, Object> map = new HashMap<>();
map.put("navigationId", navigationId);
map.put("resourcePageId", resourcePageId);
return getSessionTemplate().selectOne(getStatement("getMaxSeq"), map);
} }
@Override @Override
public List<ResourceColumnAndServeVO> getColumnListByPageId(Long resourcePageId) { public List<ResourceColumnAndServeVO> getColumnListByPageId(Long resourcePageId, Long navigationId) {
return getSessionTemplate().selectList(getStatement("getColumnListByPageId"), resourcePageId); Map<String, Object> map = new HashMap<>();
map.put("navigationId", navigationId);
map.put("resourcePageId", resourcePageId);
return getSessionTemplate().selectList(getStatement("getColumnListByPageId"), map);
} }
@Override @Override
...@@ -64,4 +70,17 @@ public class ResourcePageColumnDaoImpl extends BaseDaoImpl<ResourcePageColumn> i ...@@ -64,4 +70,17 @@ public class ResourcePageColumnDaoImpl extends BaseDaoImpl<ResourcePageColumn> i
public void deleteByPageId(Long resourcePageId) { public void deleteByPageId(Long resourcePageId) {
getSessionTemplate().delete(getStatement("deleteByPageId"), resourcePageId); getSessionTemplate().delete(getStatement("deleteByPageId"), resourcePageId);
} }
@Override
public void updateNavigationId(Long navigationId, Long resourcePageId) {
Map<String, Object> map = new HashMap<>();
map.put("navigationId", navigationId);
map.put("resourcePageId", resourcePageId);
getSessionTemplate().update(getStatement("updateNavigationId"), map);
}
@Override
public List<ResourcePageColumn> getByNavigation(Long navigationId) {
return getSessionTemplate().selectList(getStatement("getByNavigation"), navigationId);
}
} }
...@@ -138,4 +138,13 @@ public class ResourcePageDaoImpl extends BaseDaoImpl<ResourcePage> implements Re ...@@ -138,4 +138,13 @@ public class ResourcePageDaoImpl extends BaseDaoImpl<ResourcePage> implements Re
map.put("sceneId", sceneId); map.put("sceneId", sceneId);
getSessionTemplate().update(getStatement("updateBookIdBySceneId"), map); getSessionTemplate().update(getStatement("updateBookIdBySceneId"), map);
} }
@Override
public void updateNavigationFormat(Long resourcePageId, Integer navigationColor, Integer navigationFormat) {
Map<String, Object> map = new HashMap<>();
map.put("id", resourcePageId);
map.put("navigationColor", navigationColor);
map.put("navigationFormat", navigationFormat);
getSessionTemplate().update(getStatement("updateNavigationFormat"), map);
}
} }
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.ResourcePageNavigationDao;
import com.pcloud.book.group.entity.ResourcePageNavigation;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName com.pcloud.book.group.dao.impl.ResourcePageNavigationDaoImpl
* @Author zhuyajie
* @Description 资源页导航
* @Date 2021/8/16 10:45
* @Version 1.0
**/
@Component
public class ResourcePageNavigationDaoImpl extends BaseDaoImpl<ResourcePageNavigation> implements ResourcePageNavigationDao {
@Override
public List<ResourcePageNavigation> getByPageId(Long resourcePageId) {
return getSessionTemplate().selectList(getStatement("getByPageId"), resourcePageId);
}
@Override
public List<Long> getNoNavigationPages(Integer openRays) {
Map<String, Object> map = new HashMap<>();
map.put("openRays", openRays);
return getSessionTemplate().selectList(getStatement("getNoNavigationPages"), map);
}
@Override
public ResourcePageNavigation getByType(Long resourcePageId, Integer type) {
Map<String, Object> map = new HashMap<>();
map.put("resourcePageId", resourcePageId);
map.put("navigationType", type);
return getSessionTemplate().selectOne(getStatement("getByType"), map);
}
@Override
public Integer getMaxSeq(Long resourcePageId) {
return getSessionTemplate().selectOne(getStatement("getMaxSeq"), resourcePageId);
}
@Override
public void deleteNavigation(Long resourcePageId, Integer type) {
Map<String, Object> map = new HashMap<>();
map.put("resourcePageId", resourcePageId);
map.put("navigationType", type);
getSessionTemplate().delete(getStatement("deleteNavigation"), map);
}
@Override
public ResourcePageNavigation getByName(Long resourcePageId, String navigationName) {
Map<String, Object> map = new HashMap<>();
map.put("resourcePageId", resourcePageId);
map.put("navigationName", navigationName.trim());
return getSessionTemplate().selectOne(getStatement("getByName"), map);
}
@Override
public void updateSeq4Batch(List<ResourcePageNavigation> list) {
getSessionTemplate().update(getStatement("updateSeq4Batch"), list);
}
@Override
public ResourcePageNavigation getNavigationByMoveType(String moveType, Long resourcePageId, Integer navigationSeq) {
Map<String, Object> map = new HashMap<>();
map.put("resourcePageId", resourcePageId);
map.put("moveType", moveType);
map.put("navigationSeq", navigationSeq);
return getSessionTemplate().selectOne(getStatement("getNavigationByMoveType"), map);
}
@Override
public void updateNavigationSeqNum(Long navigationId, Integer navigationSeq) {
Map<String, Object> map = new HashMap<>();
map.put("id", navigationId);
map.put("navigationSeq", navigationSeq);
getSessionTemplate().update(getStatement("updateNavigationSeqNum"), map);
}
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.ResourcePagePicDao;
import com.pcloud.book.group.entity.ResourcePagePic;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName com.pcloud.book.group.dao.impl.ResourcePagePicDaoImpl
* @Author zhuyajie
* @Description 图片库
* @Date 2021/8/24 14:39
* @Version 1.0
**/
@Component
public class ResourcePagePicDaoImpl extends BaseDaoImpl<ResourcePagePic> implements ResourcePagePicDao {
@Override
public List<ResourcePagePic> getByType(Integer type, Long adviserId) {
Map<String, Object> map = new HashMap<>();
map.put("type", type);
map.put("adviserId", adviserId);
return getSessionTemplate().selectList(getStatement("getByType"), map);
}
}
package com.pcloud.book.group.dto;
import com.pcloud.book.group.entity.ResourcePageNavigation;
import java.util.List;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.dto.NavigationParamDTO
* @Author zhuyajie
* @Description H5导航参数
* @Date 2021/8/17 16:39
* @Version 1.0
**/
@Data
public class NavigationParamDTO {
/**
* 资源页id
*/
private Long resourcePageId;
/**
* 导航列表
*/
private List<ResourcePageNavigation> navigationList;
/**
* 创建人
*/
private Long createUser;
/**
* 导航颜色样式
*/
private Integer navigationColor;
/**
* 导航版式
*/
private Integer navigationFormat;
}
...@@ -66,4 +66,12 @@ public class ResourcePage extends BaseEntity { ...@@ -66,4 +66,12 @@ public class ResourcePage extends BaseEntity {
* 背景图 * 背景图
*/ */
private String backgroundImg; private String backgroundImg;
/**
* 导航颜色样式
*/
private Integer navigationColor;
/**
* 导航版式
*/
private Integer navigationFormat;
} }
...@@ -52,4 +52,8 @@ public class ResourcePageColumn extends BaseEntity { ...@@ -52,4 +52,8 @@ public class ResourcePageColumn extends BaseEntity {
* 标签图标 * 标签图标
*/ */
private String labelIcon; private String labelIcon;
/**
* 导航id
*/
private Long navigationId;
} }
\ No newline at end of file
package com.pcloud.book.group.entity;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import lombok.Data;
/**
* 自有码H5页面导航(ResourcePageNavigation)实体类
*
* @author makejava
* @since 2021-08-16 10:43:21
*/
@Data
public class ResourcePageNavigation extends BaseEntity {
private static final long serialVersionUID = 211236647765087489L;
/**
* 资源页id
*/
private Long resourcePageId;
/**
* 类型(1本书配套2书友社区3自定义)
*/
private Integer navigationType;
/**
* 导航名称
*/
private String navigationName;
/**
* 图标
*/
private String navigationIcon;
/**
* 排序值
*/
private Integer navigationSeq;
/**
* 创建人
*/
private Long createUser;
}
\ No newline at end of file
package com.pcloud.book.group.entity;
import com.pcloud.common.entity.BaseEntity;
import lombok.Data;
/**
* 资源页图片库(ResourcePagePic)实体类
*
* @author makejava
* @since 2021-08-24 14:36:56
*/
@Data
public class ResourcePagePic extends BaseEntity {
private static final long serialVersionUID = -64480926548650160L;
/**
* 图片地址
*/
private String picUrl;
/**
* 是否默认图片
*/
private Integer isDefault;
/**
* 图片类型(1导航标签)
*/
private Integer type;
/**
* 编辑id
*/
private Long adviserId;
}
\ No newline at end of file
package com.pcloud.book.group.facade.impl; package com.pcloud.book.group.facade.impl;
import com.pcloud.book.group.biz.ResourcePageBiz; import com.pcloud.book.group.biz.ResourcePageBiz;
import com.pcloud.book.group.dto.NavigationParamDTO;
import com.pcloud.book.group.entity.ResourcePageCollect; import com.pcloud.book.group.entity.ResourcePageCollect;
import com.pcloud.book.group.entity.ResourcePagePic;
import com.pcloud.book.group.entity.ResourceRecomManage; 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;
...@@ -70,9 +72,10 @@ public class ResourcePageFacade { ...@@ -70,9 +72,10 @@ public class ResourcePageFacade {
@ApiOperation("编辑端-根据页面id查资源页栏目及资源") @ApiOperation("编辑端-根据页面id查资源页栏目及资源")
@GetMapping("getColumnAndServeListByPageId") @GetMapping("getColumnAndServeListByPageId")
public ResponseDto<?> getColumnAndServeListByPageId(@RequestHeader("token") String token, public ResponseDto<?> getColumnAndServeListByPageId(@RequestHeader("token") String token,
@RequestParam("resourcePageId") Long resourcePageId){ @RequestParam("resourcePageId") Long resourcePageId,
@RequestParam(value = "navigationId", required = false) Long navigationId){
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID); SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(resourcePageBiz.getColumnAndServeListByPageId(resourcePageId, false, null, null, null, null)); return new ResponseDto<>(resourcePageBiz.getColumnAndServeListByPageId(resourcePageId, false, null, null, null, null, navigationId));
} }
@ApiOperation("客户端-根据书刊查资源页基本配置") @ApiOperation("客户端-根据书刊查资源页基本配置")
...@@ -92,9 +95,10 @@ public class ResourcePageFacade { ...@@ -92,9 +95,10 @@ public class ResourcePageFacade {
@RequestParam(value = "bookId", required = false) Long bookId, @RequestParam(value = "bookId", required = false) Long bookId,
@RequestParam(value = "adviserId", required = false) Long adviserId, @RequestParam(value = "adviserId", required = false) Long adviserId,
@RequestParam(value = "channelId", required = false) Long channelId, @RequestParam(value = "channelId", required = false) Long channelId,
@RequestParam(value = "enableAdverting", required = false) Integer enableAdverting){ @RequestParam(value = "enableAdverting", required = false) Integer enableAdverting,
@RequestParam(value = "navigationId", required = false) Long navigationId){
Cookie.getId(userInfo,Cookie._WECHAT_USER_ID); Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
return new ResponseDto<>(resourcePageBiz.getColumnAndServeListByPageId(resourcePageId, true, bookId, adviserId, channelId, enableAdverting)); return new ResponseDto<>(resourcePageBiz.getColumnAndServeListByPageId(resourcePageId, true, bookId, adviserId, channelId, enableAdverting, navigationId));
} }
@ApiOperation("客户端分页查栏目资源") @ApiOperation("客户端分页查栏目资源")
...@@ -278,4 +282,49 @@ public class ResourcePageFacade { ...@@ -278,4 +282,49 @@ public class ResourcePageFacade {
resourcePageBiz.updateRecommendResource4Pcloud(resourceRecomManage); resourcePageBiz.updateRecommendResource4Pcloud(resourceRecomManage);
return new ResponseDto<>(); return new ResponseDto<>();
} }
@ApiOperation("处理旧数据导航")
@GetMapping("dealOldNavigation")
public ResponseDto<?> dealOldNavigation() {
resourcePageBiz.dealOldNavigation();
return new ResponseDto<>();
}
@ApiOperation("保存导航")
@PostMapping("saveNavigation")
public ResponseDto<?> saveNavigation(@RequestHeader("token") String token,
@RequestBody NavigationParamDTO navigationParamDTO) {
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
navigationParamDTO.setCreateUser(partyId);
resourcePageBiz.saveNavigation(navigationParamDTO);
return new ResponseDto<>();
}
@ApiOperation("添加导航图片到图片库")
@PostMapping("addNavigationPic")
public ResponseDto<?> addNavigationPic(@RequestHeader("token") String token,
@RequestBody ResourcePagePic resourcePagePic) {
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
resourcePagePic.setAdviserId(partyId);
resourcePageBiz.addNavigationPic(resourcePagePic);
return new ResponseDto<>();
}
@ApiOperation("删除导航图片库图片")
@GetMapping("deleteNavigationPic")
public ResponseDto<?> deleteNavigationPic(@RequestHeader("token") String token,
@RequestParam("id") Long id) {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
resourcePageBiz.deleteNavigationPic(id);
return new ResponseDto<>();
}
@ApiOperation("查询导航图片库图片")
@GetMapping("listNavigationPic")
public ResponseDto<?> listNavigationPic(@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage) {
Long partyId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
return new ResponseDto<>(resourcePageBiz.listNavigationPic(partyId, currentPage, numPerPage));
}
} }
...@@ -92,4 +92,9 @@ public class ResourceColumnAndServeVO extends BaseDto{ ...@@ -92,4 +92,9 @@ public class ResourceColumnAndServeVO extends BaseDto{
@ApiModelProperty("广告配置项信息") @ApiModelProperty("广告配置项信息")
private List<AdvertisingSpaceItemDTO> advertisingItemList; private List<AdvertisingSpaceItemDTO> advertisingItemList;
/**
* 导航id
*/
private Long navigationId;
} }
package com.pcloud.book.group.vo; package com.pcloud.book.group.vo;
import com.pcloud.book.group.entity.ResourcePageNavigation;
import com.pcloud.common.dto.BaseDto; import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List; import java.util.List;
import lombok.Data;
/** /**
* 自有码H5页面(ResourcePage)实体类 * 自有码H5页面(ResourcePage)实体类
* *
...@@ -94,4 +95,16 @@ public class ResourcePageVO extends BaseDto { ...@@ -94,4 +95,16 @@ public class ResourcePageVO extends BaseDto {
@ApiModelProperty("实体书购买") @ApiModelProperty("实体书购买")
private List<ResourcePageBookstoreVO> resourcePageBookstoreList; private List<ResourcePageBookstoreVO> resourcePageBookstoreList;
/**
* 导航
*/
private List<ResourcePageNavigation> navigationList;
/**
* 导航颜色样式
*/
private Integer navigationColor;
/**
* 导航版式
*/
private Integer navigationFormat;
} }
...@@ -66,4 +66,8 @@ public class UpdateResourceColumnVO { ...@@ -66,4 +66,8 @@ public class UpdateResourceColumnVO {
* 标签图标 * 标签图标
*/ */
private String labelIcon; private String labelIcon;
/**
* 导航id
*/
private Long navigationId;
} }
...@@ -1201,7 +1201,7 @@ public class RightsSettingBizImpl implements RightsSettingBiz { ...@@ -1201,7 +1201,7 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
if (null == resourcePageVO || null == resourcePageVO.getId()) { if (null == resourcePageVO || null == resourcePageVO.getId()) {
return; return;
} }
List<ResourceColumnAndServeVO> serveVOList = resourcePageBiz.getColumnAndServeListByPageId(resourcePageVO.getId(), false, null, null, null, null); List<ResourceColumnAndServeVO> serveVOList = resourcePageBiz.getColumnAndServeListByPageId(resourcePageVO.getId(), false, null, null, null, null, null);
UpdateResourceColumnVO columnVO = new UpdateResourceColumnVO(); UpdateResourceColumnVO columnVO = new UpdateResourceColumnVO();
columnVO.setColumnFormat(3); columnVO.setColumnFormat(3);
columnVO.setColumnName("精品资讯"); columnVO.setColumnName("精品资讯");
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="INTEGER"/> <result property="createUser" column="create_user" jdbcType="INTEGER"/>
<result property="labelIcon" column="label_icon" jdbcType="VARCHAR"/> <result property="labelIcon" column="label_icon" jdbcType="VARCHAR"/>
<result property="navigationId" column="navigation_id" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<resultMap id="ResourceColumnAndServe" type="com.pcloud.book.group.vo.ResourceColumnAndServeVO"> <resultMap id="ResourceColumnAndServe" type="com.pcloud.book.group.vo.ResourceColumnAndServeVO">
...@@ -27,12 +28,13 @@ ...@@ -27,12 +28,13 @@
<result property="showCount" column="show_count" jdbcType="INTEGER"/> <result property="showCount" column="show_count" jdbcType="INTEGER"/>
<result property="showMore" column="show_more" jdbcType="BOOLEAN"/> <result property="showMore" column="show_more" jdbcType="BOOLEAN"/>
<result property="labelIcon" column="label_icon" jdbcType="VARCHAR"/> <result property="labelIcon" column="label_icon" jdbcType="VARCHAR"/>
<result property="navigationId" column="navigation_id" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<!--查询单个--> <!--查询单个-->
<select id="getById" resultMap="ResourcePageColumnMap"> <select id="getById" resultMap="ResourcePageColumnMap">
select select
id, resource_page_id, column_type, column_name, column_format, column_seq, show_more,show_count, create_time, label_icon id, resource_page_id, column_type, column_name, column_format, column_seq, show_more,show_count, create_time, label_icon, navigation_id
from book.resource_page_column from book.resource_page_column
where id = #{id} where id = #{id}
</select> </select>
...@@ -40,9 +42,9 @@ ...@@ -40,9 +42,9 @@
<!--新增所有列--> <!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true"> <insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.resource_page_column(resource_page_id, column_type, column_name, column_format, column_seq, insert into book.resource_page_column(resource_page_id, column_type, column_name, column_format, column_seq,
show_more, show_count, create_time, update_time, create_user, label_icon) show_more, show_count, create_time, update_time, create_user, label_icon, navigation_id)
values (#{resourcePageId}, #{columnType}, #{columnName}, #{columnFormat}, #{columnSeq}, values (#{resourcePageId}, #{columnType}, #{columnName}, #{columnFormat}, #{columnSeq},
#{showMore}, #{showCount}, now(), now(), #{createUser}, #{labelIcon}) #{showMore}, #{showCount}, now(), now(), #{createUser}, #{labelIcon}, #{navigationId})
</insert> </insert>
<!--通过主键修改数据--> <!--通过主键修改数据-->
...@@ -69,6 +71,9 @@ ...@@ -69,6 +71,9 @@
</if> </if>
label_icon = #{labelIcon}, label_icon = #{labelIcon},
update_time = now(), update_time = now(),
<if test="navigationId != null">
navigation_id = #{navigationId},
</if>
</set> </set>
where id = #{id} where id = #{id}
</update> </update>
...@@ -78,15 +83,18 @@ ...@@ -78,15 +83,18 @@
delete from book.resource_page_column where id = #{id} delete from book.resource_page_column where id = #{id}
</delete> </delete>
<select id="getMaxSeq" parameterType="long" resultType="integer"> <select id="getMaxSeq" parameterType="map" resultType="integer">
SELECT SELECT
IFNULL(MAX(column_seq), 0) IFNULL(MAX(column_seq), 0)
FROM FROM
book.resource_page_column book.resource_page_column
where resource_page_id = #{resourcePageId} where resource_page_id = #{resourcePageId}
<if test="navigationId != null">
and navigation_id = #{navigationId}
</if>
</select> </select>
<select id="getColumnListByPageId" resultMap="ResourceColumnAndServe" parameterType="long"> <select id="getColumnListByPageId" resultMap="ResourceColumnAndServe" parameterType="map">
SELECT SELECT
resource_page_id, resource_page_id,
id, id,
...@@ -96,11 +104,15 @@ ...@@ -96,11 +104,15 @@
column_seq, column_seq,
show_count, show_count,
show_more, show_more,
label_icon label_icon,
navigation_id
FROM FROM
resource_page_column resource_page_column
WHERE WHERE
resource_page_id = #{resourcePageId} resource_page_id = #{resourcePageId}
<if test="navigationId != null">
and navigation_id = #{navigationId}
</if>
ORDER BY ORDER BY
column_seq ASC, column_seq ASC,
id ASC id ASC
...@@ -108,7 +120,7 @@ ...@@ -108,7 +120,7 @@
<select id="getByColumnTypeAndPage" parameterType="map" resultMap="ResourcePageColumnMap"> <select id="getByColumnTypeAndPage" parameterType="map" resultMap="ResourcePageColumnMap">
select select
id, resource_page_id, column_type, column_name, column_format, column_seq, show_more, show_count, create_time id, resource_page_id, column_type, column_name, column_format, column_seq, show_more, show_count, create_time, navigation_id
from book.resource_page_column from book.resource_page_column
where resource_page_id = #{resourcePageId} where resource_page_id = #{resourcePageId}
and column_type = #{columnType} and column_type = #{columnType}
...@@ -123,7 +135,7 @@ ...@@ -123,7 +135,7 @@
<select id="getColumByMoveType" parameterType="map" resultMap="ResourcePageColumnMap"> <select id="getColumByMoveType" parameterType="map" resultMap="ResourcePageColumnMap">
SELECT SELECT
id, resource_page_id, column_type, column_name, column_format, column_seq, show_more, show_count, create_time id, resource_page_id, column_type, column_name, column_format, column_seq, show_more, show_count, create_time, navigation_id
FROM FROM
book.resource_page_column book.resource_page_column
WHERE WHERE
...@@ -157,4 +169,18 @@ ...@@ -157,4 +169,18 @@
<delete id="deleteByPageId" parameterType="long"> <delete id="deleteByPageId" parameterType="long">
delete from book.resource_page_column where resource_page_id = #{resourcePageId} delete from book.resource_page_column where resource_page_id = #{resourcePageId}
</delete> </delete>
<update id="updateNavigationId" parameterType="map">
update book.resource_page_column
set navigation_id = #{navigationId}
where resource_page_id = #{resourcePageId}
</update>
<select id="getByNavigation" resultMap="ResourcePageColumnMap" parameterType="long">
select
id, resource_page_id, column_type, column_name, column_format, column_seq, show_more,show_count, create_time, label_icon, navigation_id
from book.resource_page_column
where navigation_id = #{navigationId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -19,11 +19,13 @@ ...@@ -19,11 +19,13 @@
<result property="bookId" column="book_id" jdbcType="INTEGER"/> <result property="bookId" column="book_id" jdbcType="INTEGER"/>
<result property="channelId" column="channel_id" jdbcType="INTEGER"/> <result property="channelId" column="channel_id" jdbcType="INTEGER"/>
<result property="backgroundImg" column="background_img" jdbcType="VARCHAR"/> <result property="backgroundImg" column="background_img" jdbcType="VARCHAR"/>
<result property="navigationColor" column="navigation_color" jdbcType="INTEGER"/>
<result property="navigationFormat" column="navigation_format" 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 book_cover, book_id, channel_id, background_img, navigation_color, navigation_format
</sql> </sql>
<!--查询单个--> <!--查询单个-->
...@@ -88,8 +90,7 @@ ...@@ -88,8 +90,7 @@
<select id="getByBookGroupId" parameterType="long" resultMap="ResourcePageMap"> <select id="getByBookGroupId" parameterType="long" resultMap="ResourcePageMap">
select select
id, book_group_id, style, show_book, open_rays, open_food, qrcode_url, official_scene_id, book_cover, book_id, channel_id, create_user, <include refid="Base_Column_List"/>
background_img
from book.resource_page from book.resource_page
where book_group_id = #{bookGroupId} where book_group_id = #{bookGroupId}
limit 1 limit 1
...@@ -134,8 +135,7 @@ ...@@ -134,8 +135,7 @@
<select id="getBySceneId" parameterType="long" resultMap="ResourcePageMap"> <select id="getBySceneId" parameterType="long" resultMap="ResourcePageMap">
select select
id, book_group_id, style, show_book, open_rays, open_food, qrcode_url, scene_id, official_scene_id, book_cover,book_id, channel_id, create_user, <include refid="Base_Column_List"/>
background_img
from book.resource_page from book.resource_page
where scene_id = #{sceneId} where scene_id = #{sceneId}
limit 1 limit 1
...@@ -281,4 +281,18 @@ ...@@ -281,4 +281,18 @@
scene_id = #{sceneId} scene_id = #{sceneId}
</update> </update>
<select id="updateNavigationFormat" parameterType="map">
UPDATE resource_page
<set>
<if test="navigationColor != null">
navigation_color = #{navigationColor},
</if>
<if test="navigationFormat != null">
navigation_format = #{navigationFormat},
</if>
update_time = NOW(),
</set>
where id = #{id}
</select>
</mapper> </mapper>
...@@ -186,6 +186,7 @@ ...@@ -186,6 +186,7 @@
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
LEFT JOIN resource_page_column c ON i.resource_page_column_id = c.id LEFT JOIN resource_page_column c ON i.resource_page_column_id = c.id
LEFT JOIN resource_page_navigation n ON c.navigation_id = n.id
WHERE WHERE
p.scene_id IN p.scene_id IN
<foreach collection="list" index="index" separator="," open="(" close=")" item="item"> <foreach collection="list" index="index" separator="," open="(" close=")" item="item">
...@@ -193,7 +194,7 @@ ...@@ -193,7 +194,7 @@
</foreach> </foreach>
AND i.serve_type IN ('APP', 'PRODUCT') AND i.serve_type IN ('APP', 'PRODUCT')
ORDER BY ORDER BY
c.column_seq ASC, i.seq_num ASC, i.id ASC n.navigation_seq ASC, c.column_seq ASC, i.seq_num ASC, i.id ASC
</select> </select>
<!--只配置了1个应用作品,且不开启小睿--> <!--只配置了1个应用作品,且不开启小睿-->
......
<?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.ResourcePageNavigationDaoImpl">
<resultMap type="com.pcloud.book.group.entity.ResourcePageNavigation" id="ResourcePageNavigationMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="resourcePageId" column="resource_page_id" jdbcType="INTEGER"/>
<result property="navigationType" column="navigation_type" jdbcType="INTEGER"/>
<result property="navigationName" column="navigation_name" jdbcType="VARCHAR"/>
<result property="navigationIcon" column="navigation_icon" jdbcType="VARCHAR"/>
<result property="navigationSeq" column="navigation_seq" jdbcType="INTEGER"/>
<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_Column_List">
id, resource_page_id, navigation_type, navigation_name, navigation_icon, navigation_seq
</sql>
<!--查询单个-->
<select id="getById" resultMap="ResourcePageNavigationMap">
select
<include refid="Base_Column_List"/>
from book.resource_page_navigation
where id = #{id}
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.resource_page_navigation(resource_page_id, navigation_type, navigation_name, navigation_icon, navigation_seq, create_user, create_time, update_time)
values (#{resourcePageId}, #{navigationType}, #{navigationName}, #{navigationIcon}, #{navigationSeq}, #{createUser}, now(), now())
</insert>
<insert id="batchInsert" keyProperty="id" useGeneratedKeys="true">
insert into book.resource_page_navigation(resource_page_id, navigation_type, navigation_name, navigation_icon, navigation_seq, create_user, create_time, update_time)
values
<foreach collection="list" item="item" separator=",">
(#{item.resourcePageId}, #{item.navigationType}, #{item.navigationName}, #{item.navigationIcon}, #{item.navigationSeq}, #{item.createUser}, now(), now())
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
update book.resource_page_navigation
<set>
<if test="navigationName != null and navigationName != ''">
navigation_name = #{navigationName},
</if>
navigation_icon = #{navigationIcon},
<if test="navigationSeq != null">
navigation_seq = #{navigationSeq},
</if>
update_time = now(),
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from book.resource_page_navigation where id = #{id}
</delete>
<select id="getByPageId" parameterType="long" resultMap="ResourcePageNavigationMap">
select
<include refid="Base_Column_List"/>
from book.resource_page_navigation
where resource_page_id = #{resourcePageId}
order by navigation_seq asc, id asc
</select>
<select id="getNoNavigationPages" resultType="long" parameterType="map">
SELECT
r.id
FROM
resource_page r
LEFT JOIN resource_page_navigation n ON r.id = n.resource_page_id
<if test="openRays != null and openRays == 1">
AND n.navigation_type = 2
</if>
WHERE
n.id IS NULL
<if test="openRays != null and openRays == 1">
AND r.open_rays = #{openRays}
</if>
</select>
<select id="getByType" parameterType="map" resultMap="ResourcePageNavigationMap">
select
<include refid="Base_Column_List"/>
from book.resource_page_navigation
where resource_page_id = #{resourcePageId}
and navigation_type = #{navigationType}
limit 1
</select>
<select id="getMaxSeq" parameterType="long" resultType="integer">
SELECT
IFNULL(MAX(navigation_seq), 0)
FROM
book.resource_page_navigation
where resource_page_id = #{resourcePageId}
</select>
<delete id="deleteNavigation" parameterType="map">
DELETE
from book.resource_page_navigation
where resource_page_id = #{resourcePageId}
and navigation_type = #{navigationType}
</delete>
<select id="getByName" parameterType="map" resultMap="ResourcePageNavigationMap">
select
<include refid="Base_Column_List"/>
from book.resource_page_navigation
where resource_page_id = #{resourcePageId}
and navigation_name = #{navigationName}
limit 1
</select>
<update id="updateSeq4Batch" parameterType="list">
update book.resource_page_navigation set navigation_seq =
<foreach collection="list" open="CASE" separator=" " close="END" item="item">
WHEN id = #{item.id} THEN #{item.navigationSeq}
</foreach>
where id IN
<foreach collection="list" item="item" close=")" separator="," open="(">
${item.id}
</foreach>
</update>
<select id="getNavigationByMoveType" parameterType="map" resultMap="ResourcePageNavigationMap">
SELECT
<include refid="Base_Column_List"/>
FROM
book.resource_page_navigation
WHERE
resource_page_id = #{resourcePageId}
<choose>
<when test="moveType == 'UP'">
AND navigation_seq &lt; #{navigationSeq}
ORDER BY
navigation_seq DESC
</when>
<otherwise>
AND navigation_seq > #{navigationSeq}
ORDER BY
navigation_seq ASC
</otherwise>
</choose>
LIMIT 1
</select>
<update id="updateNavigationSeqNum" parameterType="map">
update resource_page_navigation
set navigation_seq = #{navigationSeq},
update_time = now()
where id = #{id}
</update>
</mapper>
\ No newline at end of file
<?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.ResourcePagePicDaoImpl">
<resultMap type="com.pcloud.book.group.entity.ResourcePagePic" id="ResourcePagePicMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="picUrl" column="pic_url" jdbcType="VARCHAR"/>
<result property="isDefault" column="is_default" jdbcType="INTEGER"/>
<result property="type" column="type" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="adviserId" column="adviser_id" jdbcType="INTEGER"/>
</resultMap>
<!--查询单个-->
<select id="getById" resultMap="ResourcePagePicMap">
select
id, pic_url, is_default, type, create_time, adviser_id
from resource_page_pic
where id = #{id}
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into resource_page_pic(pic_url, is_default, type, create_time, adviser_id)
values (#{picUrl}, #{isDefault}, #{type}, now(), #{adviserId})
</insert>
<!--通过主键修改数据-->
<update id="update">
update resource_page_pic
<set>
<if test="picUrl != null and picUrl != ''">
pic_url = #{picUrl},
</if>
<if test="isDefault != null">
is_default = #{isDefault},
</if>
<if test="type != null">
type = #{type},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="adviserId != null">
adviser_id = #{adviserId},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from resource_page_pic where id = #{id}
</delete>
<select id="getByType" parameterType="map" resultMap="ResourcePagePicMap">
select
id, pic_url, is_default, type, create_time
from resource_page_pic
WHERE (adviser_id = #{adviserId} OR is_default=1)
<if test="type != null">
AND type = #{type}
</if>
ORDER BY is_default ASC, id DESC
</select>
</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