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;
import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.dto.BookGroupServeDTO;
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.entity.BookGroupServe;
import com.pcloud.book.group.entity.ResourcePage;
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.ResourceRecomManage;
import com.pcloud.book.group.vo.ResourceColumnAndServeVO;
......@@ -63,7 +65,7 @@ public interface ResourcePageBiz {
* @date:2021/3/29 11:49
* * @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
......@@ -401,4 +403,41 @@ public interface ResourcePageBiz {
* * @param null
*/
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;
import com.pcloud.book.consumer.analysisengine.BrowseRecordConsr;
import com.pcloud.book.consumer.app.AppConsr;
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.reader.ReaderConsr;
import com.pcloud.book.consumer.resource.ProductConsr;
......@@ -45,6 +44,8 @@ import com.pcloud.book.group.dao.ResourcePageColumnDao;
import com.pcloud.book.group.dao.ResourcePageCourseDao;
import com.pcloud.book.group.dao.ResourcePageDao;
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.ResourceRecomManageDao;
import com.pcloud.book.group.dto.AddBookGroupServeDTO;
......@@ -52,6 +53,7 @@ import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupServeCountDTO;
import com.pcloud.book.group.dto.BookGroupServeDTO;
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.ResourcePageUrlDTO;
import com.pcloud.book.group.entity.BookAppletScene;
......@@ -63,6 +65,8 @@ import com.pcloud.book.group.entity.ResourcePageCollect;
import com.pcloud.book.group.entity.ResourcePageColumn;
import com.pcloud.book.group.entity.ResourcePageCourse;
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.ResourceRecomManage;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
......@@ -207,6 +211,10 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
private ResourceRecomManageDao resourceRecomManageDao;
@Autowired
private ResourcePageBookstoreBiz resourcePageBookstoreBiz;
@Autowired
private ResourcePageNavigationDao resourcePageNavigationDao;
@Autowired
private ResourcePagePicDao resourcePagePicDao;
@Override
public Long updateResourcePage(UpdateResourcePageVO updateResourcePageVO) {
......@@ -277,7 +285,13 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
}
//同一本书其他码下关闭小睿流程
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()));
return resourcePage.getId();
......@@ -336,6 +350,13 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
}
//同一本书其他码下关闭小睿流程
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()));
return resourcePage.getId();
......@@ -365,6 +386,11 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePage.setChannelId(null == qrcodeSceneDto?null:qrcodeSceneDto.getChannelPartyId());
}
resourcePageDao.insert(resourcePage);
//添加默认导航
this.addDefaultBookServeNavigation(resourcePage.getId());
if (openRays == 1) {
this.addDefaultAppletQANavigation(resourcePage.getId());
}
return resourcePage;
}
......@@ -454,7 +480,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
BeanUtils.copyProperties(updateResourceColumnVO, resourcePageColumn);
if (null == updateResourceColumnVO.getResourcePageColumnId()) {
if (null == resourcePageColumn.getColumnSeq()) {
Integer maxSeq = resourcePageColumnDao.getMaxSeq(updateResourceColumnVO.getResourcePageId());
Integer maxSeq = resourcePageColumnDao.getMaxSeq(updateResourceColumnVO.getResourcePageId(), updateResourceColumnVO.getNavigationId());
resourcePageColumn.setColumnSeq(maxSeq + 1);
}
resourcePageColumnDao.insert(resourcePageColumn);
......@@ -625,6 +651,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
}
// 加载实体书购买
this.fillBookStore(resourcePageVO);
List<ResourcePageNavigation> navigations = resourcePageNavigationDao.getByPageId(resourcePageVO.getId());
resourcePageVO.setNavigationList(navigations);
return resourcePageVO;
}
......@@ -640,8 +668,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
}
@Override
public List<ResourceColumnAndServeVO> getColumnAndServeListByPageId(Long resourcePageId, Boolean isWechat, Long bookId, Long adviserId, Long channelId, Integer enableAdverting) {
List<ResourceColumnAndServeVO> serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId);
public List<ResourceColumnAndServeVO> getColumnAndServeListByPageId(Long resourcePageId, Boolean isWechat, Long bookId, Long adviserId, Long channelId, Integer enableAdverting, Long navigationId) {
List<ResourceColumnAndServeVO> serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId, navigationId);
if (CollUtil.isNotEmpty(serveVOS)) {
List<ResourcePageItemVO> itemVOList;
if (isWechat) {
......@@ -1174,7 +1202,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
//删除栏目
resourcePageColumnDao.deleteById(resourcePageColumnId);
//栏目重新排序
this.updateSeq4Batch(column.getResourcePageId());
this.updateSeq4Batch(column.getResourcePageId(), column.getNavigationId());
//同步RAYS码资源配置
ThreadPoolUtils.OTHER_POOL.execute(()->{
ResourcePage resourcePage = resourcePageDao.getPageByColumnId(resourcePageColumnId);
......@@ -1260,6 +1288,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (null != resourcePageVO.getAdviserId()) {
resourcePageVO.setPushTextOpenStatus(qrcodeSceneConsr.getPushTextOpenStatus(resourcePageVO.getAdviserId()));
}
List<ResourcePageNavigation> navigations = resourcePageNavigationDao.getByPageId(resourcePageVO.getId());
resourcePageVO.setNavigationList(navigations);
return resourcePageVO;
}
......@@ -1295,6 +1325,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePageVO.setId(resourcePage.getId());
resourcePageVO.setBookCover(resourcePage.getBookCover());
resourcePageVO.setBackgroundImg(resourcePage.getBackgroundImg());
resourcePageVO.setNavigationColor(resourcePage.getNavigationColor());
resourcePageVO.setNavigationFormat(resourcePage.getNavigationFormat());
}
return resourcePageVO;
}
......@@ -1334,6 +1366,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
resourcePageVO.setId(resourcePage.getId());
resourcePageVO.setBookCover(resourcePage.getBookCover());
resourcePageVO.setBackgroundImg(resourcePage.getBackgroundImg());
resourcePageVO.setNavigationColor(resourcePage.getNavigationColor());
resourcePageVO.setNavigationFormat(resourcePage.getNavigationFormat());
}
return resourcePageVO;
}
......@@ -1344,8 +1378,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
* @date:2021/4/14 10:37
* * @param null
*/
private void updateSeq4Batch(Long resourcePageId) {
List<ResourceColumnAndServeVO> serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId);
private void updateSeq4Batch(Long resourcePageId, Long navigationId) {
List<ResourceColumnAndServeVO> serveVOS = resourcePageColumnDao.getColumnListByPageId(resourcePageId, navigationId);
if (ListUtils.isEmpty(serveVOS)) {
return;
}
......@@ -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 {
}
}
/**
* 导航类型
* @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> {
* @date:2021/3/29 13:45
* * @param null
*/
Integer getMaxSeq(Long resourcePageId);
Integer getMaxSeq(Long resourcePageId, Long navigationId);
/**
*栏目和资源列表
......@@ -29,7 +29,7 @@ public interface ResourcePageColumnDao extends BaseDao<ResourcePageColumn> {
* @date:2021/3/29 13:45
* * @param null
*/
List<ResourceColumnAndServeVO> getColumnListByPageId(Long resourcePageId);
List<ResourceColumnAndServeVO> getColumnListByPageId(Long resourcePageId, Long navigationId);
/**
* 根据类型查询
......@@ -63,4 +63,8 @@ public interface ResourcePageColumnDao extends BaseDao<ResourcePageColumn> {
void updateSeq4Batch(List<ResourceColumnAndServeVO> list);
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>{
List<ResourcePageVO> getAllBook4OpenFood();
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;
@Component
public class ResourcePageColumnDaoImpl extends BaseDaoImpl<ResourcePageColumn> implements ResourcePageColumnDao {
@Override
public Integer getMaxSeq(Long resourcePageId) {
return getSessionTemplate().selectOne(getStatement("getMaxSeq"),resourcePageId);
public Integer getMaxSeq(Long resourcePageId, Long navigationId) {
Map<String, Object> map = new HashMap<>();
map.put("navigationId", navigationId);
map.put("resourcePageId", resourcePageId);
return getSessionTemplate().selectOne(getStatement("getMaxSeq"), map);
}
@Override
public List<ResourceColumnAndServeVO> getColumnListByPageId(Long resourcePageId) {
return getSessionTemplate().selectList(getStatement("getColumnListByPageId"), resourcePageId);
public List<ResourceColumnAndServeVO> getColumnListByPageId(Long resourcePageId, Long navigationId) {
Map<String, Object> map = new HashMap<>();
map.put("navigationId", navigationId);
map.put("resourcePageId", resourcePageId);
return getSessionTemplate().selectList(getStatement("getColumnListByPageId"), map);
}
@Override
......@@ -64,4 +70,17 @@ public class ResourcePageColumnDaoImpl extends BaseDaoImpl<ResourcePageColumn> i
public void deleteByPageId(Long 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
map.put("sceneId", sceneId);
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 {
* 背景图
*/
private String backgroundImg;
/**
* 导航颜色样式
*/
private Integer navigationColor;
/**
* 导航版式
*/
private Integer navigationFormat;
}
......@@ -52,4 +52,8 @@ public class ResourcePageColumn extends BaseEntity {
* 标签图标
*/
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;
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.ResourcePagePic;
import com.pcloud.book.group.entity.ResourceRecomManage;
import com.pcloud.book.group.vo.ResourcePageVO;
import com.pcloud.book.group.vo.UpdateResourceColumnVO;
......@@ -70,9 +72,10 @@ public class ResourcePageFacade {
@ApiOperation("编辑端-根据页面id查资源页栏目及资源")
@GetMapping("getColumnAndServeListByPageId")
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);
return new ResponseDto<>(resourcePageBiz.getColumnAndServeListByPageId(resourcePageId, false, null, null, null, null));
return new ResponseDto<>(resourcePageBiz.getColumnAndServeListByPageId(resourcePageId, false, null, null, null, null, navigationId));
}
@ApiOperation("客户端-根据书刊查资源页基本配置")
......@@ -92,9 +95,10 @@ public class ResourcePageFacade {
@RequestParam(value = "bookId", required = false) Long bookId,
@RequestParam(value = "adviserId", required = false) Long adviserId,
@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);
return new ResponseDto<>(resourcePageBiz.getColumnAndServeListByPageId(resourcePageId, true, bookId, adviserId, channelId, enableAdverting));
return new ResponseDto<>(resourcePageBiz.getColumnAndServeListByPageId(resourcePageId, true, bookId, adviserId, channelId, enableAdverting, navigationId));
}
@ApiOperation("客户端分页查栏目资源")
......@@ -278,4 +282,49 @@ public class ResourcePageFacade {
resourcePageBiz.updateRecommendResource4Pcloud(resourceRecomManage);
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{
@ApiModelProperty("广告配置项信息")
private List<AdvertisingSpaceItemDTO> advertisingItemList;
/**
* 导航id
*/
private Long navigationId;
}
package com.pcloud.book.group.vo;
import com.pcloud.book.group.entity.ResourcePageNavigation;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import lombok.Data;
/**
* 自有码H5页面(ResourcePage)实体类
*
......@@ -94,4 +95,16 @@ public class ResourcePageVO extends BaseDto {
@ApiModelProperty("实体书购买")
private List<ResourcePageBookstoreVO> resourcePageBookstoreList;
/**
* 导航
*/
private List<ResourcePageNavigation> navigationList;
/**
* 导航颜色样式
*/
private Integer navigationColor;
/**
* 导航版式
*/
private Integer navigationFormat;
}
......@@ -66,4 +66,8 @@ public class UpdateResourceColumnVO {
* 标签图标
*/
private String labelIcon;
/**
* 导航id
*/
private Long navigationId;
}
......@@ -1201,7 +1201,7 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
if (null == resourcePageVO || null == resourcePageVO.getId()) {
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();
columnVO.setColumnFormat(3);
columnVO.setColumnName("精品资讯");
......
......@@ -15,6 +15,7 @@
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="INTEGER"/>
<result property="labelIcon" column="label_icon" jdbcType="VARCHAR"/>
<result property="navigationId" column="navigation_id" jdbcType="INTEGER"/>
</resultMap>
<resultMap id="ResourceColumnAndServe" type="com.pcloud.book.group.vo.ResourceColumnAndServeVO">
......@@ -27,12 +28,13 @@
<result property="showCount" column="show_count" jdbcType="INTEGER"/>
<result property="showMore" column="show_more" jdbcType="BOOLEAN"/>
<result property="labelIcon" column="label_icon" jdbcType="VARCHAR"/>
<result property="navigationId" column="navigation_id" jdbcType="INTEGER"/>
</resultMap>
<!--查询单个-->
<select id="getById" resultMap="ResourcePageColumnMap">
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
where id = #{id}
</select>
......@@ -40,9 +42,9 @@
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
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},
#{showMore}, #{showCount}, now(), now(), #{createUser}, #{labelIcon})
#{showMore}, #{showCount}, now(), now(), #{createUser}, #{labelIcon}, #{navigationId})
</insert>
<!--通过主键修改数据-->
......@@ -69,6 +71,9 @@
</if>
label_icon = #{labelIcon},
update_time = now(),
<if test="navigationId != null">
navigation_id = #{navigationId},
</if>
</set>
where id = #{id}
</update>
......@@ -78,15 +83,18 @@
delete from book.resource_page_column where id = #{id}
</delete>
<select id="getMaxSeq" parameterType="long" resultType="integer">
<select id="getMaxSeq" parameterType="map" resultType="integer">
SELECT
IFNULL(MAX(column_seq), 0)
FROM
book.resource_page_column
where resource_page_id = #{resourcePageId}
<if test="navigationId != null">
and navigation_id = #{navigationId}
</if>
</select>
<select id="getColumnListByPageId" resultMap="ResourceColumnAndServe" parameterType="long">
<select id="getColumnListByPageId" resultMap="ResourceColumnAndServe" parameterType="map">
SELECT
resource_page_id,
id,
......@@ -96,11 +104,15 @@
column_seq,
show_count,
show_more,
label_icon
label_icon,
navigation_id
FROM
resource_page_column
WHERE
resource_page_id = #{resourcePageId}
<if test="navigationId != null">
and navigation_id = #{navigationId}
</if>
ORDER BY
column_seq ASC,
id ASC
......@@ -108,7 +120,7 @@
<select id="getByColumnTypeAndPage" parameterType="map" resultMap="ResourcePageColumnMap">
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
where resource_page_id = #{resourcePageId}
and column_type = #{columnType}
......@@ -123,7 +135,7 @@
<select id="getColumByMoveType" parameterType="map" resultMap="ResourcePageColumnMap">
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
WHERE
......@@ -157,4 +169,18 @@
<delete id="deleteByPageId" parameterType="long">
delete from book.resource_page_column where resource_page_id = #{resourcePageId}
</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>
\ No newline at end of file
......@@ -19,11 +19,13 @@
<result property="bookId" column="book_id" jdbcType="INTEGER"/>
<result property="channelId" column="channel_id" jdbcType="INTEGER"/>
<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>
<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,
book_cover, book_id, channel_id, background_img
book_cover, book_id, channel_id, background_img, navigation_color, navigation_format
</sql>
<!--查询单个-->
......@@ -88,8 +90,7 @@
<select id="getByBookGroupId" parameterType="long" resultMap="ResourcePageMap">
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,
background_img
<include refid="Base_Column_List"/>
from book.resource_page
where book_group_id = #{bookGroupId}
limit 1
......@@ -134,8 +135,7 @@
<select id="getBySceneId" parameterType="long" resultMap="ResourcePageMap">
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,
background_img
<include refid="Base_Column_List"/>
from book.resource_page
where scene_id = #{sceneId}
limit 1
......@@ -281,4 +281,18 @@
scene_id = #{sceneId}
</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>
......@@ -186,6 +186,7 @@
resource_page_item i
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_navigation n ON c.navigation_id = n.id
WHERE
p.scene_id IN
<foreach collection="list" index="index" separator="," open="(" close=")" item="item">
......@@ -193,7 +194,7 @@
</foreach>
AND i.serve_type IN ('APP', 'PRODUCT')
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>
<!--只配置了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