Commit 31ef5afc by zhuyajie

1002666小程序首页

parent 8d9b72d2
package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.AppletBannerDTO;
import com.pcloud.book.applet.entity.AppletBanner;
import com.pcloud.common.page.PageBeanNew;
/**
* 小程序banner
*/
public interface AppletBannerBiz {
/**
* 新增banner
* @param appletBanner
* @return
*/
Long addBanner(AppletBanner appletBanner);
/**
* 修改banner
* @param appletBanner
*/
void updateBanner(AppletBanner appletBanner);
/**
* 删除banner
* @param id
*/
void deleteBanner(Long id);
/**
* 根据id查banner
* @param id
* @return
*/
AppletBannerDTO getBannerById(Long id);
/**
* banner列表
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<AppletBannerDTO> listBanner(Integer currentPage, Integer numPerPage, Boolean showState);
}
package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.AddBookParamDTO;
import com.pcloud.book.applet.dto.AppletBooklistClassifyDTO;
import com.pcloud.book.applet.dto.AppletBooklistDTO;
import com.pcloud.book.applet.dto.BookDTO4Booklist;
import com.pcloud.book.applet.entity.AppletBooklist;
import com.pcloud.book.applet.entity.AppletBooklistClassify;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/**
* 小程序书单
*/
public interface AppletBooklistBiz {
/**
* 新增书单栏目
* @param appletBooklistClassify
*/
Long addBooklistClassify(AppletBooklistClassify appletBooklistClassify);
/**
* 删除书单栏目
* @param id
*/
void deleteBooklistClassifyById(Long id);
/**
* 修改书单栏目
* @param appletBooklistClassify
*/
void updateBooklistClassify(AppletBooklistClassify appletBooklistClassify);
/**
* 书单栏目列表
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<AppletBooklistClassifyDTO> listBooklistClassify(Integer currentPage, Integer numPerPage, String name);
/**
* 新增书单
* @param appletBooklist
* @return
*/
Long addBooklist(AppletBooklist appletBooklist);
/**
* 删除书单
* @param id
*/
void deleteBooklistById(Long id);
/**
* 修改书单
* @param appletBooklist
*/
void updateBooklist(AppletBooklist appletBooklist);
/**
* 根据id查书单
*/
AppletBooklistDTO getBooklistById(Long id);
/**
* 书单管理列表
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<AppletBooklistDTO> listBooklist(Integer currentPage, Integer numPerPage, String name);
/**
* 书单添加图书
* @param addBookParamDTO
*/
void addBookToBooklist(AddBookParamDTO addBookParamDTO);
/**
*获取书单下书籍列表
* @param booklistId
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<BookDTO4Booklist> listPageBook4AppletBooklist(Long booklistId, Integer currentPage, Integer numPerPage);
/**
* 更新书籍排序
* @param configId
* @param seq
*/
void updateBookSeq(Long configId, Integer seq);
/**
* 获取所有书单栏目
* @return
*/
List<AppletBooklistClassifyDTO> getAllBooklistClassify(Boolean showState);
/**
* 客户端获取书单列表
* @param classifyId
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<AppletBooklistDTO> listBooklist4Wechat(Long classifyId, Integer currentPage, Integer numPerPage);
/**
* 客户端根据id获取书单
* @param booklistId
* @return
*/
AppletBooklistDTO getBooklistById4Wechat(Long booklistId);
/**
* 图书详情-出版作者分类书名
* @param adviserId
* @param channelId
* @param bookId
* @return
*/
BookDTO4Booklist getByBookIdAdviserChannel(Long adviserId, Long channelId, Long bookId);
}
package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.AppletNewsClassifyDTO;
import com.pcloud.book.applet.dto.AppletNewsCommentDTO;
import com.pcloud.book.applet.dto.AppletNewsDTO;
import com.pcloud.book.applet.entity.AppletNews;
import com.pcloud.book.applet.entity.AppletNewsClassify;
import com.pcloud.book.applet.entity.AppletNewsComment;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/**
* 小程序资讯
*/
public interface AppletNewsBiz {
/**
* 新增资讯分类
* @param appletNewsClassify
* @return
*/
Long addAppletNewsClassify(AppletNewsClassify appletNewsClassify);
/**
* 修改资讯分类
* @param appletNewsClassify
*/
void updateAppletNewsClassify(AppletNewsClassify appletNewsClassify);
/**
* 删除资讯分类
* @param id
*/
void deleteNewsClassifyById(Long id);
/**
* 资讯栏目列表
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<AppletNewsClassifyDTO> listNewsClassify(Integer currentPage, Integer numPerPage, String name);
/**
* 添加资讯
* @param appletNews
* @return
*/
Long addAppletNews(AppletNews appletNews);
/**
* 修改资讯
* @param appletNews
*/
void updateAppletNews(AppletNews appletNews);
/**
* 删除资讯
* @param id
*/
void deleteAppletNewsById(Long id);
/**
* 资讯列表
* @param currentPage
* @param numPerPage
* @param name
* @return
*/
PageBeanNew<AppletNewsDTO> listAppletNews(Integer currentPage, Integer numPerPage, String name);
/**
* 获取所有资讯栏目
* @return
*/
List<AppletNewsClassifyDTO> getAllNewsClassify(Boolean showState);
/**
* 客户端资讯列表
* @param currentPage
* @param numPerPage
* @param newsClassifyId
* @return
*/
PageBeanNew<AppletNewsDTO> listAppletNews4Wechat(Integer currentPage, Integer numPerPage, Long newsClassifyId);
/**
* 添加资讯评论
* @param appletNewsComment
*/
void addAppletNewsComment(AppletNewsComment appletNewsComment, Long wechatUserId);
/**
* 查询资讯评论
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<AppletNewsCommentDTO> listNewsCommentByNewsId(Integer currentPage, Integer numPerPage, Long newsId);
/**
* 根据id查资讯详情
* @param id
* @return
*/
AppletNewsDTO getNewsById(Long id);
/**
* 更新上架状态
* @param appletNews
*/
void updateNewsShowState(AppletNews appletNews);
}
package com.pcloud.book.applet.biz;
import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
import com.pcloud.book.applet.entity.AppletUserBookcase;
import com.pcloud.book.applet.entity.AppletUserClickRecord;
import com.pcloud.common.page.PageBeanNew;
import java.util.Map;
/**
* 小程序用户书架
*/
public interface AppletUserBookcaseBiz {
/**
* 添加图书到书架
* @param appletUserBookcase
*/
void addUserBook(AppletUserBookcase appletUserBookcase);
/**
* 查用户书架列表
* @param wechatUserId
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<AppletUserBookcaseDTO> listByWechatUserId(Long wechatUserId, Integer currentPage, Integer numPerPage);
/**
* 新增用户资源点击记录
* @param appletUserClickRecord
*/
void addUserClickRecord(AppletUserClickRecord appletUserClickRecord);
/**
* 用户图书资源点击统计
* @param wechatUserId
* @param bookId
* @return
*/
Map<String,Object> getUserClickStatistic(Long wechatUserId, Long bookId, Long channelId, Long adviserId);
}
package com.pcloud.book.applet.biz.impl;
import com.pcloud.book.applet.biz.AppletBannerBiz;
import com.pcloud.book.applet.dao.AppletBannerDao;
import com.pcloud.book.applet.dto.AppletBannerDTO;
import com.pcloud.book.applet.entity.AppletBanner;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* 小程序banner
*/
@Component
public class AppletBannerBizImpl implements AppletBannerBiz {
@Autowired
private AppletBannerDao appletBannerDao;
@Override
public Long addBanner(AppletBanner appletBanner) {
Integer seq = appletBannerDao.getMaxSeq();
appletBanner.setSeq(seq+1);
appletBanner.setShowState(false);
appletBannerDao.insert(appletBanner);
return appletBanner.getId();
}
@Override
public void updateBanner(AppletBanner appletBanner) {
if (null==appletBanner.getId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少id");
}
appletBannerDao.update(appletBanner);
}
@Override
public void deleteBanner(Long id) {
appletBannerDao.deleteById(id);
}
@Override
public AppletBannerDTO getBannerById(Long id) {
AppletBanner appletBanner = appletBannerDao.getById(id);
AppletBannerDTO appletBannerDTO = new AppletBannerDTO();
if (null != appletBanner){
BeanUtils.copyProperties(appletBanner,appletBannerDTO);
}
return appletBannerDTO;
}
@Override
public PageBeanNew<AppletBannerDTO> listBanner(Integer currentPage, Integer numPerPage, Boolean showState) {
Map<String,Object> map = new HashMap<>();
map.put("showState", showState);
PageBeanNew<AppletBannerDTO> pageBeanNew = appletBannerDao.listPageNew(
new PageParam(currentPage,numPerPage), map, "listBanner");
return pageBeanNew;
}
}
package com.pcloud.book.applet.biz.impl;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
import com.pcloud.book.applet.biz.AppletBooklistBiz;
import com.pcloud.book.applet.dao.AppletBooklistClassifyDao;
import com.pcloud.book.applet.dao.AppletBooklistDao;
import com.pcloud.book.applet.dto.AddBookParamDTO;
import com.pcloud.book.applet.dto.AppletBooklistClassifyDTO;
import com.pcloud.book.applet.dto.AppletBooklistDTO;
import com.pcloud.book.applet.dto.BookDTO4Booklist;
import com.pcloud.book.applet.entity.AppletBooklist;
import com.pcloud.book.applet.entity.AppletBooklistClassify;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.consumer.app.AssistTempletConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* 小程序书单
*/
@Component
public class AppletBooklistBizImpl implements AppletBooklistBiz {
@Autowired
private AppletBooklistClassifyDao appletBooklistClassifyDao;
@Autowired
private AppletBooklistDao appletBooklistDao;
@Autowired
private AdviserConsr adviserConsr;
@Autowired
private AssistTempletConsr assistTempletConsr;
@Autowired
private BookBiz bookBiz;
@Override
public Long addBooklistClassify(AppletBooklistClassify appletBooklistClassify) {
Integer seq = appletBooklistClassifyDao.getMaxSeq();
appletBooklistClassify.setSeq(seq+1);
appletBooklistClassify.setShowState(false);
appletBooklistClassifyDao.insert(appletBooklistClassify);
return appletBooklistClassify.getId();
}
@Override
public void deleteBooklistClassifyById(Long id) {
List<AppletBooklist> booklists = appletBooklistDao.getByClassifyId(id);
if (!ListUtils.isEmpty(booklists)){
throw new BookBizException(BookBizException.ERROR,"请先删除关联书单");
}
appletBooklistClassifyDao.deleteById(id);
}
@Override
public void updateBooklistClassify(AppletBooklistClassify appletBooklistClassify) {
if (null==appletBooklistClassify.getId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少id");
}
appletBooklistClassifyDao.update(appletBooklistClassify);
}
@Override
public PageBeanNew<AppletBooklistClassifyDTO> listBooklistClassify(Integer currentPage, Integer numPerPage, String name) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("name", name);
PageBeanNew<AppletBooklistClassifyDTO> pageBeanNew = appletBooklistClassifyDao.listPageNew(
new PageParam(currentPage,numPerPage) ,paramMap,"listBooklistClassify");
return pageBeanNew;
}
@Override
public Long addBooklist(AppletBooklist appletBooklist) {
appletBooklistDao.insert(appletBooklist);
return appletBooklist.getId();
}
@Override
public void deleteBooklistById(Long id) {
appletBooklistDao.deleteById(id);
appletBooklistDao.deleteConfigByBooklistId(id);
//删除客户端缓存
JedisClusterUtils.del("BOOK:APPLET:listBooklist4Wechat_"+id);
}
@Override
public void updateBooklist(AppletBooklist appletBooklist) {
if (null==appletBooklist.getId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少id");
}
appletBooklistDao.update(appletBooklist);
}
@Override
public AppletBooklistDTO getBooklistById(Long id) {
AppletBooklist appletBooklist = appletBooklistDao.getById(id);
AppletBooklistDTO dto = new AppletBooklistDTO();
if (null != appletBooklist){
BeanUtils.copyProperties(appletBooklist,dto);
}
return dto;
}
@Override
public PageBeanNew<AppletBooklistDTO> listBooklist(Integer currentPage, Integer numPerPage, String name) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("name", name);
PageBeanNew<AppletBooklistDTO> pageBeanNew = appletBooklistDao.listPageNew(
new PageParam(currentPage,numPerPage), paramMap,"listBooklist");
if(null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
}
List<Long> booklistIds = pageBeanNew.getRecordList().stream().filter(s->s!=null).map(AppletBooklistDTO::getId).collect(Collectors.toList());
List<BookDTO4Booklist> booklists = appletBooklistDao.getConfigByBooklistIds(booklistIds);
Map<Long,List<BookDTO4Booklist>> map = new HashMap<>();
if (!ListUtils.isEmpty(booklists)){
map = booklists.stream().collect(Collectors.groupingBy(BookDTO4Booklist::getBooklistId));
}
for (AppletBooklistDTO booklistDTO: pageBeanNew.getRecordList()){
if (!MapUtils.isEmpty(map) && map.containsKey(booklistDTO.getId())){
List<BookDTO4Booklist> bookDTO4Booklists = map.get(booklistDTO.getId());
booklistDTO.setBookDTO4Booklists(bookDTO4Booklists);
}
}
return pageBeanNew;
}
@Override
public void addBookToBooklist(AddBookParamDTO addBookParamDTO) {
Long booklistId = addBookParamDTO.getBooklistId();
List<BookDTO4Booklist> configDTOS = addBookParamDTO.getBookDTO4Booklists();
for(BookDTO4Booklist bookDTO4Booklist:configDTOS){
bookDTO4Booklist.setBooklistId(booklistId);
bookDTO4Booklist.setSeq(configDTOS.indexOf(bookDTO4Booklist));
}
appletBooklistDao.deleteConfigByBooklistId(booklistId);
appletBooklistDao.addBooklistConfig(configDTOS);
//删除客户端缓存
JedisClusterUtils.del("BOOK:APPLET:listBooklist4Wechat_"+booklistId);
}
@Override
public PageBeanNew<BookDTO4Booklist> listPageBook4AppletBooklist(Long booklistId, Integer currentPage, Integer numPerPage) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("booklistId", booklistId);
PageBeanNew<BookDTO4Booklist> pageBeanNew = appletBooklistDao.listPageNew(
new PageParam(currentPage,numPerPage), paramMap, "listPageBook4AppletBooklist");
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
}
fillAgentTempletName(pageBeanNew.getRecordList());
return pageBeanNew;
}
private void fillAgentTempletName(List<BookDTO4Booklist> list) {
List<Long> adviserIds=list.stream().filter(s->s.getAdviserId()!=null).map(BookDTO4Booklist::getAdviserId).distinct().collect(Collectors.toList());
Map<Long, AdviserBaseInfoDto> infoDtoMap = adviserConsr.getAdviserId2AdviserInfoDtoMap(adviserIds);
List<Long> templetIds = new ArrayList<>();
list.forEach(dto4Booklist -> {
if (Objects.nonNull(dto4Booklist.getTempletId())) {
templetIds.add(dto4Booklist.getTempletId());
}
if (Objects.nonNull(dto4Booklist.getSecondTempletId())) {
templetIds.add(dto4Booklist.getSecondTempletId());
}
});
Map<Long, AssistTempletDTO> assistTempletDTOMap = assistTempletConsr.mapByIds(templetIds);
list.forEach(dto4Booklist -> {
Long secondTempletId = dto4Booklist.getSecondTempletId();
Long templetId = dto4Booklist.getTempletId();
if (secondTempletId!=null&&assistTempletDTOMap!=null) {
AssistTempletDTO templetDTO = assistTempletDTOMap.get(secondTempletId);
dto4Booklist.setSecondTempletName(Optional.ofNullable(templetDTO).map(AssistTempletDTO::getTempletName).orElse(null));
}
if (templetId!=null && assistTempletDTOMap!=null) {
AssistTempletDTO templetDTO = assistTempletDTOMap.get(templetId);
dto4Booklist.setTempletName(Optional.ofNullable(templetDTO).map(AssistTempletDTO::getTempletName).orElse(null));
}
Long adviserId=dto4Booklist.getAdviserId();
if (!MapUtils.isEmpty(infoDtoMap)){
AdviserBaseInfoDto infoDto = infoDtoMap.get(adviserId);
if (infoDto!=null){
dto4Booklist.setAgentName(infoDto.getAgentName());
}
}
});
}
@Override
public void updateBookSeq(Long configId, Integer seq) {
appletBooklistDao.updateBookSeq(configId, seq);
}
@Override
public List<AppletBooklistClassifyDTO> getAllBooklistClassify(Boolean showState){
return appletBooklistClassifyDao.getAllBooklistClassify(showState);
}
@Override
public PageBeanNew<AppletBooklistDTO> listBooklist4Wechat(Long classifyId, Integer currentPage, Integer numPerPage){
if (null == classifyId){//没有栏目id取第一个
List<AppletBooklistClassifyDTO> classifyDTOS = getAllBooklistClassify(true);
if (ListUtils.isEmpty(classifyDTOS)){
throw new BookBizException(BookBizException.ERROR,"没有书单栏目");
}
classifyId = classifyDTOS.get(0).getId();
}
Map<String,Object> map = new HashMap<>();
map.put("classifyId", classifyId);
PageBeanNew<AppletBooklistDTO> pageBeanNew = appletBooklistDao.listPageNew(
new PageParam(currentPage, numPerPage), map, "listBooklist4Wechat");
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
}
for (AppletBooklistDTO booklistDTO : pageBeanNew.getRecordList()){
Long booklistId = booklistDTO.getId();
String key = "BOOK:APPLET:listBooklist4Wechat_"+booklistId;
List<BookDTO4Booklist> bookList = JedisClusterUtils.getJsonList(key,BookDTO4Booklist.class);
if (ListUtils.isEmpty(bookList)){
bookList=appletBooklistDao.getBookBaseByBooklistId(booklistId, 0,3);
JedisClusterUtils.setJson(key,bookList);
}
booklistDTO.setBookDTO4Booklists(bookList);
}
return pageBeanNew;
}
@Override
public AppletBooklistDTO getBooklistById4Wechat(Long booklistId){
AppletBooklistDTO booklistDTO = getBooklistById(booklistId);
if (null==booklistDTO){
return new AppletBooklistDTO();
}
List<BookDTO4Booklist> bookList = appletBooklistDao.listPageBook4AppletBooklist(booklistId);
if (!ListUtils.isEmpty(bookList)){
fillAgentTempletName(bookList);
booklistDTO.setBookDTO4Booklists(bookList);
booklistDTO.setBookCounts(bookList.size());
}
return booklistDTO;
}
@Override
public BookDTO4Booklist getByBookIdAdviserChannel(Long adviserId, Long channelId, Long bookId) {
BookDTO4Booklist bookDTO4Booklist = appletBooklistDao.getByBookIdAdviserChannel(adviserId,channelId,bookId);
if (null!=bookDTO4Booklist){
fillAgentTempletName(Arrays.asList(bookDTO4Booklist));
}
return bookDTO4Booklist;
}
}
package com.pcloud.book.applet.biz.impl;
import com.pcloud.book.applet.biz.AppletNewsBiz;
import com.pcloud.book.applet.dao.AppletNewsClassifyDao;
import com.pcloud.book.applet.dao.AppletNewsCommentDao;
import com.pcloud.book.applet.dao.AppletNewsDao;
import com.pcloud.book.applet.dto.AppletBooklistClassifyDTO;
import com.pcloud.book.applet.dto.AppletNewsClassifyDTO;
import com.pcloud.book.applet.dto.AppletNewsCommentDTO;
import com.pcloud.book.applet.dto.AppletNewsDTO;
import com.pcloud.book.applet.entity.AppletNews;
import com.pcloud.book.applet.entity.AppletNewsClassify;
import com.pcloud.book.applet.entity.AppletNewsComment;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.consumer.label.LabelConsr;
import com.pcloud.book.consumer.reader.ReaderConsr;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.readercenter.wechat.entity.WechatUser;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 小程序资讯
*/
@Component
public class AppletNewsBizImpl implements AppletNewsBiz {
@Autowired
private AppletNewsClassifyDao appletNewsClassifyDao;
@Autowired
private AppletNewsDao appletNewsDao;
@Autowired
private LabelConsr labelConsr;
@Autowired
private AppletNewsCommentDao appletNewsCommentDao;
@Autowired
private ReaderConsr readerConsr;
@Override
public Long addAppletNewsClassify(AppletNewsClassify appletNewsClassify) {
Integer seq = appletNewsClassifyDao.getMaxSeq();
appletNewsClassify.setSeq(seq+1);
appletNewsClassify.setShowState(false);
appletNewsClassifyDao.insert(appletNewsClassify);
return appletNewsClassify.getId();
}
@Override
public void updateAppletNewsClassify(AppletNewsClassify appletNewsClassify) {
if (null == appletNewsClassify.getId()){
throw new BookBizException(BookBizException.ERROR,"id为空");
}
appletNewsClassifyDao.update(appletNewsClassify);
}
@Override
public void deleteNewsClassifyById(Long id) {
List<AppletNews> newsList = appletNewsDao.getByNewsClassifyId(id);
if (!ListUtils.isEmpty(newsList)){
throw new BookBizException(BookBizException.ERROR,"请先清空资讯");
}
appletNewsClassifyDao.deleteById(id);
}
@Override
public PageBeanNew<AppletNewsClassifyDTO> listNewsClassify(Integer currentPage, Integer numPerPage, String name) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("name", name);
PageBeanNew<AppletNewsClassifyDTO> pageBeanNew = appletNewsClassifyDao.listPageNew(
new PageParam(currentPage,numPerPage) ,paramMap,"listNewsClassify");
return pageBeanNew;
}
@Override
public Long addAppletNews(AppletNews appletNews) {
appletNews.setShowState(false);
appletNewsDao.insert(appletNews);
return appletNews.getId();
}
@Override
public void updateAppletNews(AppletNews appletNews) {
if (null == appletNews.getId()){
throw new BookBizException(BookBizException.ERROR,"id为空");
}
appletNewsDao.update(appletNews);
}
@Override
public void deleteAppletNewsById(Long id) {
appletNewsDao.deleteById(id);
}
@Override
public PageBeanNew<AppletNewsDTO> listAppletNews(Integer currentPage, Integer numPerPage, String name) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("name", name);
PageBeanNew<AppletNewsDTO> pageBeanNew = appletNewsDao.listPageNew(
new PageParam(currentPage,numPerPage) ,paramMap,"listAppletNews");
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
}
fillLabel(pageBeanNew.getRecordList());
return pageBeanNew;
}
private void fillLabel(List<AppletNewsDTO> recordList) {
if (ListUtils.isEmpty(recordList)){
return;
}
List<Long> labelIds = new ArrayList<>();
for(AppletNewsDTO appletNewsDTO : recordList){
if (null != appletNewsDTO.getProLabelId()) {
labelIds.add(appletNewsDTO.getProLabelId());
}
if (null != appletNewsDTO.getDepLabelId()) {
labelIds.add(appletNewsDTO.getDepLabelId());
}
if (null != appletNewsDTO.getPurLabelId()) {
labelIds.add(appletNewsDTO.getPurLabelId());
}
}
if (!ListUtils.isEmpty(labelIds)){
Map<Long, String> labelMap = labelConsr.getLabelName(labelIds);
if (!MapUtils.isEmpty(labelMap)) {
for(AppletNewsDTO appletNewsDTO : recordList){
if (null != appletNewsDTO.getProLabelId() && labelMap.containsKey(appletNewsDTO.getProLabelId())) {
appletNewsDTO.setProLabelName(labelMap.get(appletNewsDTO.getProLabelId()));
}
if (null != appletNewsDTO.getDepLabelId() && labelMap.containsKey(appletNewsDTO.getDepLabelId())) {
appletNewsDTO.setDepLabelName(labelMap.get(appletNewsDTO.getDepLabelId()));
}
if (null != appletNewsDTO.getPurLabelId() && labelMap.containsKey(appletNewsDTO.getPurLabelId())) {
appletNewsDTO.setPurLabelName(labelMap.get(appletNewsDTO.getPurLabelId()));
}
}
}
}
}
@Override
public List<AppletNewsClassifyDTO> getAllNewsClassify(Boolean showState) {
return appletNewsClassifyDao.getAllNewsClassify(showState);
}
@Override
public PageBeanNew<AppletNewsDTO> listAppletNews4Wechat(Integer currentPage, Integer numPerPage, Long newsClassifyId) {
if (null == newsClassifyId){//没有栏目id取第一个
List<AppletNewsClassifyDTO> classifyDTOS = getAllNewsClassify(true);
if (ListUtils.isEmpty(classifyDTOS)){
throw new BookBizException(BookBizException.ERROR,"没有资讯栏目");
}
newsClassifyId = classifyDTOS.get(0).getId();
}
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("newsClassifyId", newsClassifyId);
paramMap.put("showState",true);
PageBeanNew<AppletNewsDTO> pageBeanNew = appletNewsDao.listPageNew(
new PageParam(currentPage,numPerPage) ,paramMap,"listAppletNews");
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
}
fillLabel(pageBeanNew.getRecordList());
return pageBeanNew;
}
@Override
public void addAppletNewsComment(AppletNewsComment appletNewsComment, Long wechatUserId) {
appletNewsComment.setWechatUserId(wechatUserId);
appletNewsCommentDao.insert(appletNewsComment);
}
@Override
public PageBeanNew<AppletNewsCommentDTO> listNewsCommentByNewsId(Integer currentPage, Integer numPerPage, Long newsId) {
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("newsId", newsId);
PageBeanNew<AppletNewsCommentDTO> pageBeanNew = appletNewsCommentDao.listPageNew(
new PageParam(currentPage,numPerPage),paramMap,"listNewsCommentByNewsId");
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
}
//用户信息
List<Long> wechatUserIds = pageBeanNew.getRecordList().stream().filter(s->s.getWechatUserId()!=null).
map(AppletNewsCommentDTO::getWechatUserId).distinct().collect(Collectors.toList());
if (!ListUtils.isEmpty(wechatUserIds)){
Map<Long, WechatUser> wechatUserMap = readerConsr.getUserList(wechatUserIds);
for (AppletNewsCommentDTO commentDTO:pageBeanNew.getRecordList()){
Long wechatUserId = commentDTO.getWechatUserId();
if (!MapUtils.isEmpty(wechatUserMap) && null != wechatUserId && wechatUserMap.containsKey(wechatUserId)){
WechatUser wechatUser = wechatUserMap.get(wechatUserId);
commentDTO.setNickName(null==wechatUser?"":wechatUser.getWechatUserNickname());
commentDTO.setHeadPic(null==wechatUser?"":wechatUser.getWechatUserHeadurl());
}
}
}
return pageBeanNew;
}
@Override
public AppletNewsDTO getNewsById(Long id) {
AppletNews appletNews = appletNewsDao.getById(id);
AppletNewsDTO appletNewsDTO = new AppletNewsDTO();
if (null!=appletNews){
BeanUtils.copyProperties(appletNews,appletNewsDTO);
}
fillLabel(Arrays.asList(appletNewsDTO));
return appletNewsDTO;
}
@Override
public void updateNewsShowState(AppletNews appletNews) {
appletNewsDao.updateNewsShowState(appletNews);
}
}
package com.pcloud.book.applet.biz.impl;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
import com.pcloud.book.applet.biz.AppletUserBookcaseBiz;
import com.pcloud.book.applet.dao.AppletUserBookcaseDao;
import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
import com.pcloud.book.applet.entity.AppletUserBookcase;
import com.pcloud.book.applet.entity.AppletUserClickRecord;
import com.pcloud.book.consumer.app.AssistTempletConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.channelcenter.wechat.dto.BookServeParamVO;
import com.pcloud.channelcenter.wechat.vo.BookServeVO;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* 小程序用户书架
*/
@Component
public class AppletUserBookcaseBizImpl implements AppletUserBookcaseBiz {
@Autowired
private AppletUserBookcaseDao appletUserBookcaseDao;
@Autowired
private AdviserConsr adviserConsr;
@Autowired
private AssistTempletConsr assistTempletConsr;
@Autowired
private QrcodeSceneConsr qrcodeSceneConsr;
@Override
public void addUserBook(AppletUserBookcase appletUserBookcase) {
appletUserBookcaseDao.insert(appletUserBookcase);
}
@Override
public PageBeanNew<AppletUserBookcaseDTO> listByWechatUserId(Long wechatUserId, Integer currentPage, Integer numPerPage) {
Map<String,Object> map = new HashMap<>();
map.put("wechatUserId",wechatUserId);
PageBeanNew<AppletUserBookcaseDTO> pageBeanNew = appletUserBookcaseDao.listPageNew(
new PageParam(currentPage,numPerPage),map,"listByWechatUserId");
if (null == pageBeanNew || ListUtils.isEmpty(pageBeanNew.getRecordList())){
return new PageBeanNew<>(currentPage,numPerPage,0,new ArrayList<>());
}
fillTempletNameAgentName(pageBeanNew.getRecordList());
return pageBeanNew;
}
@Override
public void addUserClickRecord(AppletUserClickRecord appletUserClickRecord) {
appletUserBookcaseDao.insertClickRecord(appletUserClickRecord);
}
@Override
public Map<String, Object> getUserClickStatistic(Long wechatUserId, Long bookId, Long channelId, Long adviserId) {
//书刊下所有资源
BookServeParamVO serveParamVO = new BookServeParamVO();
serveParamVO.setBookId(bookId);
serveParamVO.setAdviserId(adviserId);
serveParamVO.setChannelId(channelId);
List<BookServeVO> serveVOList = qrcodeSceneConsr.listBookServeIds(serveParamVO);
if (ListUtils.isEmpty(serveVOList)){
return new HashMap<>();
}
Integer clickCount = 0;
String startDate = DateUtils.formatDate(new Date(), DateUtils.DATE_FORMAT_DATEONLY);
List<Long> appIds = serveVOList.stream().filter(s->s.getTypeCode().equalsIgnoreCase("APP")).
map(BookServeVO::getServeId).distinct().collect(Collectors.toList());
List<Long> productIds = serveVOList.stream().filter(s->s.getTypeCode().equalsIgnoreCase("PRODUCT")).
map(BookServeVO::getServeId).distinct().collect(Collectors.toList());
if (!ListUtils.isEmpty(appIds)){
Integer appCount = appletUserBookcaseDao.getUserClickServerCount(wechatUserId,bookId,channelId,adviserId,appIds,"APP");
if (appCount>0){
clickCount = clickCount+appCount;
startDate = appletUserBookcaseDao.getMinClickTime(wechatUserId,bookId,channelId,adviserId,appIds,"APP");
}
}
if (!ListUtils.isEmpty(productIds)){
Integer productCount = appletUserBookcaseDao.getUserClickServerCount(wechatUserId,bookId,channelId,adviserId,productIds,"PRODUCT");
if (productCount>0){
clickCount = clickCount+productCount;
String dateStr = appletUserBookcaseDao.getMinClickTime(wechatUserId,bookId,channelId,adviserId,productIds,"PRODUCT");
if (!StringUtil.isEmpty(dateStr) && DateUtils.getDateByStr(dateStr).before(DateUtils.getDateByStr(startDate))){
startDate = dateStr;
}
}
}
Map<String,Object> map = new HashMap<>();
map.put("startDate", startDate);
map.put("clickCount", clickCount);
return map;
}
private void fillTempletNameAgentName(List<AppletUserBookcaseDTO> recordList) {
List<Long> adviserIds=recordList.stream().filter(s->s.getAdviserId()!=null).map(AppletUserBookcaseDTO::getAdviserId).distinct().collect(Collectors.toList());
Map<Long, AdviserBaseInfoDto> infoDtoMap = adviserConsr.getAdviserId2AdviserInfoDtoMap(adviserIds);
List<Long> templetIds = new ArrayList<>();
recordList.forEach(dto -> {
if (Objects.nonNull(dto.getTempletId())) {
templetIds.add(dto.getTempletId());
}
if (Objects.nonNull(dto.getSecondTempletId())) {
templetIds.add(dto.getSecondTempletId());
}
});
Map<Long, AssistTempletDTO> assistTempletDTOMap = assistTempletConsr.mapByIds(templetIds);
for (AppletUserBookcaseDTO bookcaseDTO:recordList){
Long secondTempletId = bookcaseDTO.getSecondTempletId();
Long templetId = bookcaseDTO.getTempletId();
if (secondTempletId!=null&&assistTempletDTOMap!=null) {
AssistTempletDTO templetDTO = assistTempletDTOMap.get(secondTempletId);
bookcaseDTO.setSecondTempletName(Optional.ofNullable(templetDTO).map(AssistTempletDTO::getTempletName).orElse(null));
}
if (templetId!=null && assistTempletDTOMap!=null) {
AssistTempletDTO templetDTO = assistTempletDTOMap.get(templetId);
bookcaseDTO.setTempletName(Optional.ofNullable(templetDTO).map(AssistTempletDTO::getTempletName).orElse(null));
}
Long adviserId=bookcaseDTO.getAdviserId();
if (!MapUtils.isEmpty(infoDtoMap) && infoDtoMap.containsKey(adviserId)){
AdviserBaseInfoDto infoDto = infoDtoMap.get(adviserId);
if (infoDto!=null){
bookcaseDTO.setAgentName(infoDto.getAgentName());
}
}
}
}
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.entity.AppletBanner;
import com.pcloud.common.core.dao.BaseDao;
public interface AppletBannerDao extends BaseDao<AppletBanner> {
/**
* 获取最大排序值
* @return
*/
Integer getMaxSeq();
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.AppletBooklistClassifyDTO;
import com.pcloud.book.applet.entity.AppletBooklistClassify;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface AppletBooklistClassifyDao extends BaseDao<AppletBooklistClassify> {
/**
* 获取最大排序值
* @return
*/
Integer getMaxSeq();
/**
* 获取所有书单栏目
* @return
*/
List<AppletBooklistClassifyDTO> getAllBooklistClassify(Boolean showState);
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.BookDTO4Booklist;
import com.pcloud.book.applet.entity.AppletBooklist;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface AppletBooklistDao extends BaseDao<AppletBooklist> {
/**
* 删除书单配置
*
* @param booklistId
*/
void deleteConfigByBooklistId(Long booklistId);
/**
* 添加书单配置
*
* @param bookDTO4Booklists
*/
void addBooklistConfig(List<BookDTO4Booklist> bookDTO4Booklists);
/**
* 根据栏目id查询
* @param classifyId
* @return
*/
List<AppletBooklist> getByClassifyId(Long classifyId);
/**
* 更新书籍排序
* @param configId
* @param seq
*/
void updateBookSeq(Long configId, Integer seq);
/**
* 查配置书籍(书名、封面)
* @param booklistId
* @return
*/
List<BookDTO4Booklist> getBookBaseByBooklistId(Long booklistId, Integer currentPage, Integer numPerPage);
/**
* 查配置书籍(包含书籍分类)
* @param booklistId
* @return
*/
List<BookDTO4Booklist> listPageBook4AppletBooklist(Long booklistId);
/**
* 基本配置(adviserid bookid channelid)
* @param booklistIds
* @return
*/
List<BookDTO4Booklist> getConfigByBooklistIds(List<Long> booklistIds);
/**
* 图书详情-出版作者分类书名
* @param adviserId
* @param channelId
* @param bookId
* @return
*/
BookDTO4Booklist getByBookIdAdviserChannel(Long adviserId, Long channelId, Long bookId);
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.AppletNewsClassifyDTO;
import com.pcloud.book.applet.entity.AppletNewsClassify;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
public interface AppletNewsClassifyDao extends BaseDao<AppletNewsClassify> {
/**
* 获取最大排序值
* @return
*/
Integer getMaxSeq();
/**
* 获取所有书单栏目
* @return
*/
List<AppletNewsClassifyDTO> getAllNewsClassify(Boolean showState);
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.entity.AppletNewsComment;
import com.pcloud.common.core.dao.BaseDao;
/**
* 资讯评论
*/
public interface AppletNewsCommentDao extends BaseDao<AppletNewsComment> {
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.entity.AppletNews;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* 小程序资讯
*/
public interface AppletNewsDao extends BaseDao<AppletNews> {
/**
* 根据分类查询
* @param newsClassifyId
* @return
*/
List<AppletNews> getByNewsClassifyId(Long newsClassifyId);
/**
* 更新上架状态
* @param appletNews
*/
void updateNewsShowState(AppletNews appletNews);
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
import com.pcloud.book.applet.entity.AppletUserBookcase;
import com.pcloud.book.applet.entity.AppletUserClickRecord;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* 小程序用户书架
*/
public interface AppletUserBookcaseDao extends BaseDao<AppletUserBookcase> {
/**
* 新增用户资源点击记录
* @param appletUserClickRecord
*/
void insertClickRecord(AppletUserClickRecord appletUserClickRecord);
/**
* 用户点击的服务id
* @param wechatUserId
* @param bookId
* @param channelId
* @param adviserId
* @return
*/
Integer getUserClickServerCount(Long wechatUserId, Long bookId, Long channelId, Long adviserId, List<Long> serveIds, String fromType);
/**
* 最早资源点击日期
* @param wechatUserId
* @param bookId
* @param channelId
* @param adviserId
* @return
*/
String getMinClickTime (Long wechatUserId, Long bookId, Long channelId, Long adviserId, List<Long> serveIds, String fromType);
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletBannerDao;
import com.pcloud.book.applet.entity.AppletBanner;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
@Component
public class AppletBannerDaoImpl extends BaseDaoImpl<AppletBanner> implements AppletBannerDao {
@Override
public Integer getMaxSeq() {
return getSessionTemplate().selectOne(getStatement("getMaxSeq"));
}
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletBooklistClassifyDao;
import com.pcloud.book.applet.dto.AppletBooklistClassifyDTO;
import com.pcloud.book.applet.entity.AppletBooklistClassify;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class AppletBooklistClassifyDaoImpl extends BaseDaoImpl<AppletBooklistClassify> implements AppletBooklistClassifyDao {
@Override
public Integer getMaxSeq() {
return getSessionTemplate().selectOne(getStatement("getMaxSeq"));
}
@Override
public List<AppletBooklistClassifyDTO> getAllBooklistClassify(Boolean showState) {
Map<String,Object>map=new HashMap<>();
map.put("showState", showState);
return getSessionTemplate().selectList(getStatement("getAllBooklistClassify"), map);
}
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletBooklistDao;
import com.pcloud.book.applet.dto.BookDTO4Booklist;
import com.pcloud.book.applet.entity.AppletBooklist;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component("appletBooklistDao")
public class AppletBooklistDaoImpl extends BaseDaoImpl<AppletBooklist> implements AppletBooklistDao {
@Override
public void deleteConfigByBooklistId(Long booklistId) {
getSessionTemplate().delete(getStatement("deleteConfigByBooklistId"), booklistId);
}
@Override
public void addBooklistConfig(List<BookDTO4Booklist> bookDTO4Booklists) {
getSessionTemplate().insert(getStatement("addBooklistConfig"), bookDTO4Booklists);
}
@Override
public List<AppletBooklist> getByClassifyId(Long classifyId) {
return getSessionTemplate().selectList(getStatement("getByClassifyId"), classifyId);
}
@Override
public void updateBookSeq(Long configId, Integer seq) {
Map<String, Object> map = new HashMap<>();
map.put("id", configId);
map.put("seq", seq);
getSessionTemplate().update(getStatement("updateBookSeq"), map);
}
@Override
public List<BookDTO4Booklist> getBookBaseByBooklistId(Long booklistId, Integer currentPage, Integer numPerPage) {
Map<String, Object> map = new HashMap<>();
map.put("booklistId", booklistId);
if (currentPage>=0 && numPerPage>0){
map.put("pageNum", currentPage * numPerPage);
map.put("numPerPage", numPerPage);
}
return getSessionTemplate().selectList(getStatement("getBookBaseByBooklistId"),map);
}
@Override
public List<BookDTO4Booklist> listPageBook4AppletBooklist(Long booklistId) {
Map<String, Object> map = new HashMap<>();
map.put("booklistId", booklistId);
return getSessionTemplate().selectList(getStatement("listPageBook4AppletBooklist"), map);
}
@Override
public List<BookDTO4Booklist> getConfigByBooklistIds(List<Long> booklistIds) {
Map<String, Object> map = new HashMap<>();
map.put("list", booklistIds);
return getSessionTemplate().selectList(getStatement("getConfigByBooklistIds"),map);
}
@Override
public BookDTO4Booklist getByBookIdAdviserChannel(Long adviserId, Long channelId, Long bookId) {
Map<String, Object> map = new HashMap<>();
map.put("adviserId", adviserId);
map.put("channelId", channelId);
map.put("bookId", bookId);
return getSessionTemplate().selectOne(getStatement("getByBookIdAdviserChannel"),map);
}
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletNewsClassifyDao;
import com.pcloud.book.applet.dto.AppletNewsClassifyDTO;
import com.pcloud.book.applet.entity.AppletNewsClassify;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class AppletNewsClassifyDaoImpl extends BaseDaoImpl<AppletNewsClassify> implements AppletNewsClassifyDao {
@Override
public Integer getMaxSeq() {
return getSessionTemplate().selectOne(getStatement("getMaxSeq"));
}
@Override
public List<AppletNewsClassifyDTO> getAllNewsClassify(Boolean showState) {
Map<String,Object> map=new HashMap<>();
map.put("showState", showState);
return getSessionTemplate().selectList(getStatement("getAllNewsClassify"), map);
}
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletNewsCommentDao;
import com.pcloud.book.applet.entity.AppletNewsComment;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
/**
* 资讯评论
*/
@Component
public class AppletNewsCommentDaoImpl extends BaseDaoImpl<AppletNewsComment> implements AppletNewsCommentDao {
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletNewsDao;
import com.pcloud.book.applet.entity.AppletNews;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 小程序资讯
*/
@Component
public class AppletNewsDaoImpl extends BaseDaoImpl<AppletNews> implements AppletNewsDao {
@Override
public List<AppletNews> getByNewsClassifyId(Long newsClassifyId) {
return getSessionTemplate().selectList(getStatement("getByNewsClassifyId"), newsClassifyId);
}
@Override
public void updateNewsShowState(AppletNews appletNews) {
getSessionTemplate().update(getStatement("updateNewsShowState"),appletNews);
}
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletUserBookcaseDao;
import com.pcloud.book.applet.entity.AppletUserBookcase;
import com.pcloud.book.applet.entity.AppletUserClickRecord;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 小程序用户书架
*/
@Component
public class AppletUserBookcaseDaoImpl extends BaseDaoImpl<AppletUserBookcase> implements AppletUserBookcaseDao {
@Override
public void insertClickRecord(AppletUserClickRecord appletUserClickRecord) {
getSessionTemplate().insert(getStatement("insertClickRecord"),appletUserClickRecord);
}
@Override
public Integer getUserClickServerCount(Long wechatUserId, Long bookId, Long channelId, Long adviserId,List<Long> serveIds, String fromType) {
Map<String,Object> map = new HashMap<>();
map.put("wechatUserId", wechatUserId);
map.put("bookId", bookId);
map.put("channelId", channelId);
map.put("adviserId", adviserId);
map.put("list",serveIds);
map.put("fromType", fromType);
return getSessionTemplate().selectOne(getStatement("getUserClickServerCount"), map);
}
@Override
public String getMinClickTime(Long wechatUserId, Long bookId, Long channelId, Long adviserId,List<Long> serveIds, String fromType) {
Map<String,Object> map = new HashMap<>();
map.put("wechatUserId", wechatUserId);
map.put("bookId", bookId);
map.put("channelId", channelId);
map.put("adviserId", adviserId);
map.put("list",serveIds);
map.put("fromType", fromType);
return getSessionTemplate().selectOne(getStatement("getMinClickTime"),map);
}
}
package com.pcloud.book.applet.dto;
import lombok.Data;
import java.util.List;
/**
* 书单添加书刊
*/
@Data
public class AddBookParamDTO {
/**
* 书单id
*/
private Long booklistId;
/**
* 图书基本信息
*/
private List<BookDTO4Booklist> bookDTO4Booklists;
}
package com.pcloud.book.applet.dto;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序banner")
public class AppletBannerDTO extends BaseDto {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("banner图")
private String bannerPic;
@ApiModelProperty("跳转类型(1指定页面2web页面)")
private Integer jumpType;
@ApiModelProperty("跳转地址")
private String jumpUrl;
@ApiModelProperty("排序值")
private Integer seq;
@ApiModelProperty("是否展示")
private Boolean showState;
}
package com.pcloud.book.applet.dto;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序书单栏目")
public class AppletBooklistClassifyDTO extends BaseDto {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("分类名称")
private String classifyName;
@ApiModelProperty("排序值")
private Integer seq;
@ApiModelProperty("书单数量")
private Integer booklistCount;
@ApiModelProperty("是否展示")
private Boolean showState;
}
package com.pcloud.book.applet.dto;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("小程序书单")
public class AppletBooklistDTO extends BaseDto {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("书单主题名称")
private String booklistName;
@ApiModelProperty("创建者名称")
private String userName;
@ApiModelProperty("摘要")
private String digest;
@ApiModelProperty("展示图")
private String displayPic;
@ApiModelProperty("推荐介绍类型(1编辑介绍2外部链接)")
private Integer introduceType;
@ApiModelProperty("推荐介绍内容")
private String introduceContent;
@ApiModelProperty("推荐介绍-外部链接")
private String introduceUrl;
@ApiModelProperty("书籍数量")
private Integer bookCounts;
@ApiModelProperty("分类id")
private Long classifyId;
@ApiModelProperty("分类名称")
private String classifyName;
@ApiModelProperty("图书信息")
private List<BookDTO4Booklist> bookDTO4Booklists;
}
package com.pcloud.book.applet.dto;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序资讯栏目")
public class AppletNewsClassifyDTO extends BaseDto {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("分类名称")
private String newsClassify;
@ApiModelProperty("排序值")
private Integer seq;
@ApiModelProperty("是否展示")
private Boolean showState;
@ApiModelProperty("资讯数量")
private Integer newsCount;
}
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("小程序资讯评论")
public class AppletNewsCommentDTO extends BaseDto {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("资讯id")
private Long newsId;
@ApiModelProperty("评论")
private String comment;
@ApiModelProperty("用户")
private Long wechatUserId;
@ApiModelProperty("昵称")
private String nickName;
@ApiModelProperty("头像")
private String headPic;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
protected Date createTime;
}
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("小程序资讯")
public class AppletNewsDTO extends BaseDto {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("资讯")
private String newsName;
@ApiModelProperty("来源")
private String source;
@ApiModelProperty("栏目id")
private Long newsClassifyId;
@ApiModelProperty("专业标签ID")
private Long proLabelId;
@ApiModelProperty("深度标签ID")
private Long depLabelId;
@ApiModelProperty("目的标签ID")
private Long purLabelId;
@ApiModelProperty("专业标签")
private String proLabelName;
@ApiModelProperty("深度标签")
private String depLabelName;
@ApiModelProperty("目的标签")
private String purLabelName;
@ApiModelProperty("文章版式(1多图文2单图文3纯图片4纯文本)")
private Integer type;
@ApiModelProperty("内容摘要")
private String digest;
@ApiModelProperty("预览图片1")
private String pic1;
@ApiModelProperty("预览图片2")
private String pic2;
@ApiModelProperty("预览图片3")
private String pic3;
@ApiModelProperty("文章内容")
private String content;
@ApiModelProperty("是否展示")
private Boolean showState;
@ApiModelProperty("分类名称")
private String newsClassify;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
protected Date createTime;
}
package com.pcloud.book.applet.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("小程序用户书架栏目")
public class AppletUserBookcaseDTO extends BaseDto {
@ApiModelProperty("图书id")
private Long bookId;
@ApiModelProperty("运营id")
private Long channelId;
@ApiModelProperty("编辑id")
private Long adviserId;
@ApiModelProperty("书名")
private String bookName;
@ApiModelProperty("封面")
private String coverImg;
@ApiModelProperty("出版名称")
private String agentName;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
protected Date createTime;
@ApiModelProperty("作者")
private String author;
@ApiModelProperty("出版社")
private String publish;
@ApiModelProperty("一级分类id")
private Long templetId;
@ApiModelProperty("一级分类名称")
private String templetName;
@ApiModelProperty("二级分类id")
private Long secondTempletId;
@ApiModelProperty("二级分类名")
private String secondTempletName;
}
package com.pcloud.book.applet.dto;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("书单配置的书籍")
public class BookDTO4Booklist extends BaseDto {
@ApiModelProperty("配置id")
private Long id;
@ApiModelProperty("书单id")
private Long booklistId;
@ApiModelProperty("书单名称")
private String booklistName;
@ApiModelProperty("图书id")
private Long bookId;
@ApiModelProperty("编辑id")
private Long adviserId;
@ApiModelProperty("运营id")
private Long channelId;
@ApiModelProperty("书名")
private String bookName;
@ApiModelProperty("封面")
private String coverImg;
@ApiModelProperty("出版名称")
private String agentName;
@ApiModelProperty("作者")
private String author;
@ApiModelProperty("出版社")
private String publish;
@ApiModelProperty("一级分类id")
private Long templetId;
@ApiModelProperty("一级分类名称")
private String templetName;
@ApiModelProperty("二级分类id")
private Long secondTempletId;
@ApiModelProperty("二级分类名")
private String secondTempletName;
@ApiModelProperty("排序值")
private Integer seq;
@ApiModelProperty("isbn")
private String isbn;
@ApiModelProperty("唯一编号")
private String uniqueNumber;
}
package com.pcloud.book.applet.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序banner")
public class AppletBanner extends BaseEntity {
@ApiModelProperty("banner图")
private String bannerPic;
@ApiModelProperty("跳转类型(1指定页面2web页面)")
private Integer jumpType;
@ApiModelProperty("跳转地址")
private String jumpUrl;
@ApiModelProperty("排序值")
private Integer seq;
@ApiModelProperty("是否展示")
private Boolean showState;
}
package com.pcloud.book.applet.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序书单")
public class AppletBooklist extends BaseEntity {
@ApiModelProperty("书单主题名称")
private String booklistName;
@ApiModelProperty("创建者名称")
private String userName;
@ApiModelProperty("摘要")
private String digest;
@ApiModelProperty("展示图")
private String displayPic;
@ApiModelProperty("推荐介绍类型(1编辑介绍2外部链接)")
private Integer introduceType;
@ApiModelProperty("推荐介绍内容")
private String introduceContent;
@ApiModelProperty("推荐介绍-外部链接")
private String introduceUrl;
@ApiModelProperty("栏目id")
private Long classifyId;
}
package com.pcloud.book.applet.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序书单栏目")
public class AppletBooklistClassify extends BaseEntity {
@ApiModelProperty("分类名称")
private String classifyName;
@ApiModelProperty("排序值")
private Integer seq;
@ApiModelProperty("是否展示")
private Boolean showState;
}
package com.pcloud.book.applet.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序资讯")
public class AppletNews extends BaseEntity {
@ApiModelProperty("资讯")
private String newsName;
@ApiModelProperty("来源")
private String source;
@ApiModelProperty("栏目id")
private Long newsClassifyId;
@ApiModelProperty("专业标签ID")
private Long proLabelId;
@ApiModelProperty("深度标签ID")
private Long depLabelId;
@ApiModelProperty("目的标签ID")
private Long purLabelId;
@ApiModelProperty("文章版式(1多图文2单图文3纯图片4纯文本)")
private Integer type;
@ApiModelProperty("内容摘要")
private String digest;
@ApiModelProperty("预览图片1")
private String pic1;
@ApiModelProperty("预览图片2")
private String pic2;
@ApiModelProperty("预览图片3")
private String pic3;
@ApiModelProperty("文章内容")
private String content;
@ApiModelProperty("是否展示")
private Boolean showState;
}
package com.pcloud.book.applet.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序资讯栏目")
public class AppletNewsClassify extends BaseEntity {
@ApiModelProperty("分类名称")
private String newsClassify;
@ApiModelProperty("排序值")
private Integer seq;
@ApiModelProperty("是否展示")
private Boolean showState;
}
package com.pcloud.book.applet.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序资讯评论")
public class AppletNewsComment extends BaseEntity {
@ApiModelProperty("资讯id")
private Long newsId;
@ApiModelProperty("评论")
private String comment;
@ApiModelProperty("用户")
private Long wechatUserId;
}
package com.pcloud.book.applet.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序用户书架栏目")
public class AppletUserBookcase extends BaseEntity {
@ApiModelProperty("用户id")
private Long wechatUserId;
@ApiModelProperty("图书id")
private Long bookId;
@ApiModelProperty("运营id")
private Long channelId;
@ApiModelProperty("编辑id")
private Long adviserId;
}
package com.pcloud.book.applet.entity;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("小程序用户资源点击记录")
public class AppletUserClickRecord extends BaseEntity {
@ApiModelProperty("用户id")
private Long wechatUserId;
@ApiModelProperty("图书id")
private Long bookId;
@ApiModelProperty("运营id")
private Long fromId;
@ApiModelProperty("编辑id")
private String fromType;
@ApiModelProperty("运营id")
private Long channelId;
@ApiModelProperty("编辑id")
private Long adviserId;
}
package com.pcloud.book.applet.enums;
/**
* banner跳转类型
*/
public enum BannerJumpTypeEnum {
/**
* 指定页面
*/
appoint(1),
/**
* web链接
*/
web_link(2);
public Integer code;
BannerJumpTypeEnum(Integer code) {
this.code = code;
}
}
package com.pcloud.book.applet.enums;
/**
* 书单介绍类型
*/
public enum IntroduceTypeEnum {
/**
* 编辑介绍
*/
edit_introduct(1),
/**
* 使用外部链接
*/
web_introduct(2);
public Integer code;
IntroduceTypeEnum(Integer code) {
this.code = code;
}
}
package com.pcloud.book.applet.facade;
import com.pcloud.book.applet.biz.AppletBannerBiz;
import com.pcloud.book.applet.biz.AppletBooklistBiz;
import com.pcloud.book.applet.biz.AppletNewsBiz;
import com.pcloud.book.applet.biz.AppletUserBookcaseBiz;
import com.pcloud.book.applet.dto.AddBookParamDTO;
import com.pcloud.book.applet.dto.AppletBannerDTO;
import com.pcloud.book.applet.dto.AppletBooklistClassifyDTO;
import com.pcloud.book.applet.dto.AppletBooklistDTO;
import com.pcloud.book.applet.dto.AppletNewsClassifyDTO;
import com.pcloud.book.applet.dto.AppletNewsCommentDTO;
import com.pcloud.book.applet.dto.AppletNewsDTO;
import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
import com.pcloud.book.applet.dto.BookDTO4Booklist;
import com.pcloud.book.applet.entity.AppletBanner;
import com.pcloud.book.applet.entity.AppletBooklist;
import com.pcloud.book.applet.entity.AppletBooklistClassify;
import com.pcloud.book.applet.entity.AppletNews;
import com.pcloud.book.applet.entity.AppletNewsClassify;
import com.pcloud.book.applet.entity.AppletNewsComment;
import com.pcloud.book.applet.entity.AppletUserBookcase;
import com.pcloud.book.applet.entity.AppletUserClickRecord;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
import com.pcloud.common.utils.string.StringUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@Api("小睿小程序首页")
@RestController("appletHomeFacade")
@RequestMapping("appletHome")
public class AppletHomeFacade {
@Autowired
private AppletBooklistBiz appletBooklistBiz;
@Autowired
private AppletBannerBiz appletBannerBiz;
@Autowired
private AppletNewsBiz appletNewsBiz;
@Autowired
private AppletUserBookcaseBiz appletUserBookcaseBiz;
@ApiOperation("新增书单栏目")
@PostMapping("addBooklistClassify")
public ResponseDto<Long> addBooklistClassify(
@RequestHeader("token") String token,
@RequestBody @ApiParam("书单栏目") AppletBooklistClassify appletBooklistClassify) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletBooklistClassify || StringUtil.isEmpty(appletBooklistClassify.getClassifyName())){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少栏目名称");
}
Long id = appletBooklistBiz.addBooklistClassify(appletBooklistClassify);
return new ResponseDto<>(id);
}
@ApiOperation("删除书单栏目")
@GetMapping("deleteBooklistClassifyById")
public ResponseDto<?> deleteBooklistClassifyById(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("书刊栏目id") Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==id){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少栏目id");
}
appletBooklistBiz.deleteBooklistClassifyById(id);
return new ResponseDto<>();
}
@ApiOperation("修改书单栏目")
@PostMapping("updateBooklistClassify")
public ResponseDto<?> updateBooklistClassify(
@RequestHeader("token") String token,
@RequestBody @ApiParam("书单栏目")AppletBooklistClassify appletBooklistClassify) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null ==appletBooklistClassify || null==appletBooklistClassify.getId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletBooklistBiz.updateBooklistClassify(appletBooklistClassify);
return new ResponseDto<>();
}
@ApiOperation("书单栏目列表")
@GetMapping("listBooklistClassify")
public ResponseDto<PageBeanNew<AppletBooklistClassifyDTO>> listBooklistClassify(
@RequestHeader("token") String token,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage,
@RequestParam(value = "name", required = false) @ApiParam("名称查询") String name) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletBooklistBiz.listBooklistClassify(currentPage, numPerPage, name));
}
@ApiOperation("新增书单")
@PostMapping("addBooklist")
public ResponseDto<Long> addBooklist(
@RequestHeader("token") String token,
@RequestBody @ApiParam("书单") AppletBooklist appletBooklist) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletBooklist){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
Long id = appletBooklistBiz.addBooklist(appletBooklist);
return new ResponseDto<>(id);
}
@ApiOperation("删除书单")
@GetMapping("deleteBooklistById")
public ResponseDto<?> deleteBooklistById(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("书刊id")Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==id){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少书刊id");
}
appletBooklistBiz.deleteBooklistById(id);
return new ResponseDto<>();
}
@ApiOperation("修改书单")
@PostMapping("updateBooklist")
public ResponseDto<?> updateBooklist(
@RequestHeader("token") String token,
@RequestBody @ApiParam("书单") AppletBooklist appletBooklist) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletBooklist || null == appletBooklist.getId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletBooklistBiz.updateBooklist(appletBooklist);
return new ResponseDto<>();
}
@ApiOperation("根据id查书单")
@GetMapping("getBooklistById")
public ResponseDto<AppletBooklistDTO> getBooklistById(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("书刊id")Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==id){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少书刊id");
}
return new ResponseDto<>(appletBooklistBiz.getBooklistById(id));
}
@ApiOperation("书单管理列表")
@GetMapping("listBooklist")
public ResponseDto<PageBeanNew<AppletBooklistDTO>> listBooklist(
@RequestHeader("token") String token,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage,
@RequestParam(value = "name", required = false) @ApiParam("名称查询") String name) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletBooklistBiz.listBooklist(currentPage, numPerPage, name));
}
@ApiOperation("书单添加图书")
@PostMapping("addBookToBooklist")
public ResponseDto<?> addBookToBooklist(
@RequestHeader("token") String token,
@RequestBody @ApiParam("添加图书参数") AddBookParamDTO addBookParamDTO) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == addBookParamDTO || null == addBookParamDTO.getBooklistId() || ListUtils.isEmpty(addBookParamDTO.getBookDTO4Booklists())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
for (BookDTO4Booklist bookDTO : addBookParamDTO.getBookDTO4Booklists()){
if (null==bookDTO.getBookId() || null==bookDTO.getAdviserId() ||null == bookDTO.getChannelId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少bookId/adviserId/channelId");
}
}
appletBooklistBiz.addBookToBooklist(addBookParamDTO);
return new ResponseDto<>();
}
@ApiOperation("新增banner")
@PostMapping("addBanner")
public ResponseDto<Long> addBanner(
@RequestHeader("token") String token,
@RequestBody @ApiParam("banner") AppletBanner appletBanner) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletBanner){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
Long id = appletBannerBiz.addBanner(appletBanner);
return new ResponseDto<>(id);
}
@ApiOperation("修改banner")
@PostMapping("updateBanner")
public ResponseDto<?> updateBanner(
@RequestHeader("token") String token,
@RequestBody @ApiParam("banner") AppletBanner appletBanner) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletBanner || null == appletBanner.getId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletBannerBiz.updateBanner(appletBanner);
return new ResponseDto<>();
}
@ApiOperation("删除banner")
@GetMapping("deleteBanner")
public ResponseDto<?> deleteBanner(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("bannerId")Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==id){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少bannerId");
}
appletBannerBiz.deleteBanner(id);
return new ResponseDto<>();
}
@ApiOperation("根据id查banner")
@GetMapping("getBannerById")
public ResponseDto<AppletBannerDTO> getBannerById(
@RequestHeader("token") String token,
@RequestParam("bannerId") @ApiParam("bannerId")Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==id){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少bannerId");
}
return new ResponseDto<>(appletBannerBiz.getBannerById(id));
}
@ApiOperation("banner列表")
@GetMapping("listBanner")
public ResponseDto<PageBeanNew<AppletBannerDTO>> listBanner(
@RequestHeader("token") String token,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletBannerBiz.listBanner(currentPage, numPerPage,null));
}
@ApiOperation("客户端banner列表")
@GetMapping("listBanner4Wechat")
public ResponseDto<PageBeanNew<AppletBannerDTO>> listBanner4Wechat(
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage) {
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletBannerBiz.listBanner(currentPage, numPerPage, true));
}
@ApiOperation("获取书单下书籍列表")
@GetMapping("listPageBook4AppletBooklist")
public ResponseDto<PageBeanNew<BookDTO4Booklist>> listPageBook4AppletBooklist(
@RequestHeader("token") String token,
@RequestParam("booklistId") @ApiParam("书单id") Long booklistId,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==booklistId){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少书单id");
}
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletBooklistBiz.listPageBook4AppletBooklist(booklistId,currentPage,numPerPage));
}
@ApiOperation("更新书籍排序")
@GetMapping("updateBookSeq")
public ResponseDto<?> updateBookSeq(
@RequestHeader("token") String token,
@RequestParam("configId") @ApiParam("配置id") Long configId,
@RequestParam("seq") @ApiParam("排序值")Integer seq) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==configId || null == seq){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少参数");
}
appletBooklistBiz.updateBookSeq(configId, seq);
return new ResponseDto<>();
}
@ApiOperation("获取所有书单栏目")
@GetMapping("getAllBooklistClassify")
public ResponseDto<List<AppletBooklistClassifyDTO>> getAllBooklistClassify(
@RequestParam(value = "showState", required = false) @ApiParam("是否展示") Boolean showState){
return new ResponseDto<>(appletBooklistBiz.getAllBooklistClassify(showState));
}
@ApiOperation("客户端获取书单列表")
@GetMapping("listBooklist4Wechat")
public ResponseDto<PageBeanNew<AppletBooklistDTO>> listBooklist4Wechat(
@RequestParam(value = "classifyId", required = false) @ApiParam("书单栏目id") Long classifyId,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage){
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletBooklistBiz.listBooklist4Wechat(classifyId,currentPage,numPerPage));
}
@ApiOperation("客户端根据id获取书单")
@GetMapping("getBooklistById4Wechat")
public ResponseDto<AppletBooklistDTO> getBooklistById4Wechat(
@RequestParam("booklistId") @ApiParam("书单id")Long booklistId){
if (null==booklistId){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
return new ResponseDto<>(appletBooklistBiz.getBooklistById4Wechat(booklistId));
}
@ApiOperation("新增资讯栏目")
@PostMapping("addAppletNewsClassify")
public ResponseDto<Long> addAppletNewsClassify(
@RequestHeader("token") String token,
@RequestBody @ApiParam("资讯栏目") AppletNewsClassify appletNewsClassify) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletNewsClassify){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
return new ResponseDto<>(appletNewsBiz.addAppletNewsClassify(appletNewsClassify));
}
@ApiOperation("修改资讯栏目")
@PostMapping("updateAppletNewsClassify")
public ResponseDto<?> updateAppletNewsClassify(
@RequestHeader("token") String token,
@RequestBody @ApiParam("资讯栏目")AppletNewsClassify appletNewsClassify) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletNewsClassify || null == appletNewsClassify.getId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletNewsBiz.updateAppletNewsClassify(appletNewsClassify);
return new ResponseDto<>();
}
@ApiOperation("删除资讯栏目")
@GetMapping("deleteNewsClassifyById")
public ResponseDto<?> deleteNewsClassifyById(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("资讯栏目")Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == id){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletNewsBiz.deleteNewsClassifyById(id);
return new ResponseDto<>();
}
@ApiOperation("资讯栏目列表")
@GetMapping("listNewsClassify")
public ResponseDto<PageBeanNew<AppletNewsClassifyDTO>> listNewsClassify(
@RequestHeader("token") String token,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage,
@RequestParam(value = "name", required = false) @ApiParam("名称查询") String name) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletNewsBiz.listNewsClassify(currentPage, numPerPage, name));
}
@ApiOperation("获取所有资讯栏目")
@GetMapping("getAllNewsClassify")
public ResponseDto<List<AppletNewsClassifyDTO>> getAllNewsClassify(
@RequestParam(value = "showState", required = false) @ApiParam("是否展示") Boolean showState){
return new ResponseDto<>(appletNewsBiz.getAllNewsClassify(showState));
}
@ApiOperation("添加资讯")
@PostMapping("addAppletNews")
public ResponseDto<Long> addAppletNews(
@RequestHeader("token") String token,
@RequestBody @ApiParam("资讯") AppletNews appletNews) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletNews){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
return new ResponseDto<>(appletNewsBiz.addAppletNews(appletNews));
}
@ApiOperation("修改资讯")
@PostMapping("updateAppletNews")
public ResponseDto<?> updateAppletNews(
@RequestHeader("token") String token,
@RequestBody @ApiParam("资讯") AppletNews appletNews) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletNews || null == appletNews.getId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletNewsBiz.updateAppletNews(appletNews);
return new ResponseDto<>();
}
@ApiOperation("删除资讯")
@GetMapping("deleteAppletNewsById")
public ResponseDto<?> deleteAppletNewsById(
@RequestHeader("token") String token,
@RequestParam("id") @ApiParam("资讯id") Long id) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == id){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletNewsBiz.deleteAppletNewsById(id);
return new ResponseDto<>();
}
@ApiOperation("资讯列表")
@GetMapping("listAppletNews")
public ResponseDto<PageBeanNew<AppletNewsDTO>> listAppletNews(
@RequestHeader("token") String token,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage,
@RequestParam(value = "name", required = false) @ApiParam("名称查询") String name) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletNewsBiz.listAppletNews(currentPage, numPerPage, name));
}
@ApiOperation("客户端资讯列表")
@GetMapping("listAppletNews4Wechat")
public ResponseDto<PageBeanNew<AppletNewsDTO>> listAppletNews4Wechat(
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage,
@RequestParam(value = "newsClassifyId", required = false) @ApiParam("资讯栏目id") Long newsClassifyId) {
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletNewsBiz.listAppletNews4Wechat(currentPage, numPerPage, newsClassifyId));
}
@ApiOperation("添加资讯评论")
@PostMapping("addAppletNewsComment")
public ResponseDto<?> addAppletNewsComment(
@CookieValue("userInfo") String userInfo,
@RequestBody @ApiParam("资讯评论") AppletNewsComment appletNewsComment){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
if (null==appletNewsComment || null == appletNewsComment.getNewsId() || StringUtil.isEmpty(appletNewsComment.getComment())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletNewsBiz.addAppletNewsComment(appletNewsComment,wechatUserId);
return new ResponseDto<>();
}
@ApiOperation("查询资讯评论列表")
@GetMapping("listNewsCommentByNewsId")
public ResponseDto<PageBeanNew<AppletNewsCommentDTO>> listNewsCommentByNewsId(
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage,
@RequestParam("newsId") @ApiParam("资讯id") Long newsId){
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
if (null == newsId){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少资讯id");
}
return new ResponseDto<>(appletNewsBiz.listNewsCommentByNewsId(currentPage, numPerPage, newsId));
}
@ApiOperation("添加图书到书架")
@PostMapping("addUserBook")
public ResponseDto<?> addUserBook(
@CookieValue("userInfo") String userInfo,
@RequestBody @ApiParam("图书") AppletUserBookcase appletUserBookcase){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
if (null == appletUserBookcase || null == appletUserBookcase.getBookId() || null == appletUserBookcase.getAdviserId()
|| null == appletUserBookcase.getChannelId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletUserBookcase.setWechatUserId(wechatUserId);
appletUserBookcaseBiz.addUserBook(appletUserBookcase);
return new ResponseDto<>();
}
@ApiOperation("查用户书架列表")
@GetMapping("listUserBookcaseByWechatUserId")
public ResponseDto<PageBeanNew<AppletUserBookcaseDTO>> listUserBookcaseByWechatUserId(
@CookieValue("userInfo") String userInfo,
@RequestParam("currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam("numPerPage") @ApiParam("每页数量") Integer numPerPage){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
if (null==currentPage || null == numPerPage){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少分页参数");
}
return new ResponseDto<>(appletUserBookcaseBiz.listByWechatUserId(wechatUserId,currentPage,numPerPage));
}
@ApiOperation("新增用户资源点击记录")
@PostMapping("addUserClickRecord")
public ResponseDto<?> addUserClickRecord(
@CookieValue("userInfo") String userInfo,
@RequestBody @ApiParam("资源点击记录") AppletUserClickRecord appletUserClickRecord){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
if (null == appletUserClickRecord || null == appletUserClickRecord.getBookId()
|| null == appletUserClickRecord.getFromId() ||StringUtil.isEmpty(appletUserClickRecord.getFromType())){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletUserClickRecord.setWechatUserId(wechatUserId);
appletUserBookcaseBiz.addUserClickRecord(appletUserClickRecord);
return new ResponseDto<>();
}
@ApiOperation("用户图书资源点击统计")
@GetMapping("getUserClickStatistic")
public ResponseDto<Map<String,Object>> getUserClickStatistic(
@CookieValue("userInfo") String userInfo,
@RequestParam("bookId") @ApiParam("图书id")Long bookId,
@RequestParam("channelId") @ApiParam("运营id")Long channelId,
@RequestParam("adviserId") @ApiParam("编辑id")Long adviserId){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
if (null == bookId || null== channelId || null == adviserId){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
return new ResponseDto<>(appletUserBookcaseBiz.getUserClickStatistic(wechatUserId,bookId,channelId,adviserId));
}
@ApiOperation("根据ID查资讯详情")
@GetMapping("getAppletNewsById")
public ResponseDto<AppletNewsDTO> getAppletNewsById(
@RequestParam("newsId") @ApiParam("资讯id")Long newsId){
if (null == newsId){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
return new ResponseDto<>(appletNewsBiz.getNewsById(newsId));
}
@ApiOperation("查图书详情-出版作者分类书名")
@GetMapping("getByBookIdAdviserChannel")
public ResponseDto<BookDTO4Booklist> getByBookIdAdviserChannel(
@RequestParam("adviserId") @ApiParam("编辑id")Long adviserId,
@RequestParam("channelId") @ApiParam("运营id")Long channelId,
@RequestParam("bookId") @ApiParam("图书id")Long bookId){
if (null == bookId || null== channelId || null == adviserId){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
return new ResponseDto<>(appletBooklistBiz.getByBookIdAdviserChannel(adviserId, channelId, bookId));
}
@ApiOperation("更新资讯上架状态")
@PostMapping("updateNewsShowState")
public ResponseDto<?> updateNewsShowState(
@RequestHeader("token") String token,
@RequestBody @ApiParam("资讯") AppletNews appletNews) throws PermissionException {
SessionUtil.getInfoToken4Redis(token);
if (null == appletNews || null == appletNews.getId() || null == appletNews.getShowState()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"缺少参数");
}
appletNewsBiz.updateNewsShowState(appletNews);
return new ResponseDto<>();
}
}
...@@ -342,7 +342,7 @@ public class QrcodeSceneConsr { ...@@ -342,7 +342,7 @@ public class QrcodeSceneConsr {
} }
} }
@ParamLog("获取书刊下所有服务") @ParamLog("获取书刊下所有服务-书刊特配资源")
public List<BookServeVO> listBookServe(BookServeParamVO bookServeParamVO){ public List<BookServeVO> listBookServe(BookServeParamVO bookServeParamVO){
List<BookServeVO> list = new ArrayList<>(); List<BookServeVO> list = new ArrayList<>();
try { try {
...@@ -353,4 +353,16 @@ public class QrcodeSceneConsr { ...@@ -353,4 +353,16 @@ public class QrcodeSceneConsr {
} }
return list; return list;
} }
@ParamLog("获取书刊下所有服务id")
public List<BookServeVO> listBookServeIds(BookServeParamVO bookServeParamVO){
List<BookServeVO> list = new ArrayList<>();
try {
list = ResponseHandleUtil.parseList(messageService.listBookServeIds(bookServeParamVO),BookServeVO.class);
}catch (Exception e){
LOGGER.error("调用messageService.listBookServeIds失败" + e.getMessage(), e);
}
return list;
}
} }
<?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.applet.dao.impl.AppletBannerDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.AppletBanner" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="banner_pic" property="bannerPic" jdbcType="VARCHAR" />
<result column="jump_type" property="jumpType" jdbcType="INTEGER" />
<result column="jump_url" property="jumpUrl" jdbcType="VARCHAR" />
<result column="seq" property="seq" jdbcType="INTEGER" />
<result column="show_state" property="showState" jdbcType="BOOLEAN" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, banner_pic, jump_type, jump_url, seq, show_state, create_time, update_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.applet.entity.AppletBanner" useGeneratedKeys="true" keyProperty="id">
insert into applet_banner(
banner_pic, jump_type, jump_url, seq, show_state, create_time, update_time
)
values (
#{bannerPic}, #{jumpType}, #{jumpUrl}, #{seq}, #{showState}, NOW(), NOW()
)
</insert>
<update id="update" parameterType="com.pcloud.book.applet.entity.AppletBanner">
update applet_banner
<set>
<if test="bannerPic != null">
banner_pic = #{bannerPic},
</if>
<if test="jumpType != null">
jump_type = #{jumpType,jdbcType=INTEGER},
</if>
<if test="jumpUrl != null">
jump_url = #{jumpUrl},
</if>
<if test="seq != null">
seq = #{seq,jdbcType=INTEGER},
</if>
<if test="showState != null">
show_state = #{showState,jdbcType=BOOLEAN},
</if>
update_time=NOW()
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from applet_banner
where id=#{id}
</select>
<delete id="deleteById" parameterType="long">
delete from applet_banner
where id=#{id}
</delete>
<select id="listBanner" resultType="com.pcloud.book.applet.dto.AppletBannerDTO" parameterType="map">
SELECT
id id,
banner_pic bannerPic,
seq seq,
show_state showState,
jump_type jumpType,
jump_url jumpUrl
FROM applet_banner
where 1=1
<if test="showState != null">
and show_state = #{showState}
</if>
ORDER BY seq ASC
</select>
<select id="getMaxSeq" resultType="Integer">
SELECT IFNULL(MAX(seq),0) FROM applet_banner
</select>
</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.applet.dao.impl.AppletBooklistDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.AppletBooklist" >
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="booklist_name" property="booklistName" jdbcType="VARCHAR" />
<result column="user_name" property="userName" jdbcType="VARCHAR" />
<result column="digest" property="digest" jdbcType="VARCHAR" />
<result column="display_pic" property="displayPic" jdbcType="VARCHAR" />
<result column="introduce_type" property="introduceType" jdbcType="INTEGER" />
<result column="introduce_content" property="introduceContent" jdbcType="VARCHAR" />
<result column="introduce_url" property="introduceUrl" jdbcType="VARCHAR" />
<result column="classify_id" property="classifyId" jdbcType="BIGINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, booklist_name, user_name, digest, display_pic, introduce_type, introduce_content, introduce_url,
classify_id, create_time, update_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.applet.entity.AppletBooklist" useGeneratedKeys="true" keyProperty="id">
insert into applet_booklist (
booklist_name, user_name, digest, display_pic, introduce_type, introduce_content, introduce_url,
classify_id, create_time, update_time
)
values (
#{booklistName}, #{userName}, #{digest}, #{displayPic}, #{introduceType}, #{introduceContent}, #{introduceUrl},
#{classifyId}, NOW(), NOW()
)
</insert>
<update id="update" parameterType="com.pcloud.book.applet.entity.AppletBooklist">
update applet_booklist
<set>
<if test="booklistName != null">
booklist_name = #{booklistName},
</if>
<if test="userName != null">
user_name = #{userName},
</if>
<if test="digest != null">
digest = #{digest},
</if>
<if test="displayPic != null">
display_pic = #{displayPic},
</if>
<if test="introduceType != null">
introduce_type = #{introduceType},
</if>
<if test="introduceContent != null">
introduce_content = #{introduceContent},
</if>
<if test="introduceUrl != null">
introduce_url = #{introduceUrl},
</if>
<if test="classifyId != null">
classify_id = #{classifyId},
</if>
update_time=NOW()
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from applet_booklist
where id=#{id}
</select>
<delete id="deleteById" parameterType="long">
delete from applet_booklist
where id=#{id}
</delete>
<delete id="deleteConfigByBooklistId" parameterType="long">
delete from applet_booklist_config WHERE booklist_id = #{booklistId}
</delete>
<insert id="addBooklistConfig" parameterType="list" useGeneratedKeys="true" keyProperty="id">
insert into applet_booklist_config (
booklist_id, book_id, adviser_id, channel_id,seq, create_time)
values
<foreach collection="list" item="item" index="index" separator=",">
( #{item.booklistId}, #{item.bookId}, #{item.adviserId}, #{item.channelId}, #{item.seq}, NOW() )
</foreach>
</insert>
<select id="listBooklist" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletBooklistDTO">
SELECT
b.id id,
b.booklist_name booklistName,
b.user_name userName,
b.display_pic displayPic,
COUNT(c.id) bookCounts,
a.id classifyId,
a.classify_name classifyName
FROM applet_booklist b
LEFT JOIN applet_booklist_config c ON b.id=c.booklist_id
LEFT JOIN applet_booklist_classify a ON b.classify_id=a.id
WHERE 1=1
<if test="name != null">
AND b.booklist_name LIKE CONCAT("%", #{name} ,"%")
</if>
GROUP BY b.id
order by b.create_time desc
</select>
<select id="getByClassifyId" parameterType="long" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List"/> FROM applet_booklist WHERE classify_id=#{classifyId}
</select>
<update id="updateBookSeq" parameterType="map">
update applet_booklist_config
set seq = #{seq}
where id = #{id}
</update>
<select id="listPageBook4AppletBooklist" parameterType="map" resultType="com.pcloud.book.applet.dto.BookDTO4Booklist">
SELECT
c.id id,
c.booklist_id booklistId,
ap.booklist_name booklistName,
A.BOOK_ID bookId,
A.CHANNEL_ID channelId,
A.ADVISER_ID adviserId,
B.BOOK_NAME bookName,
B.AUTHOR author,
B.PUBLISH publish,
B.COVER_IMG coverImg,
A.TEMPLET_ID templetId,
A.SECOND_TEMPLET_ID secondTempletId,
c.seq seq,
B.ISBN isbn,
CONCAT('BK',A.BOOK_ID) uniqueNumber
FROM
applet_booklist_config c
LEFT JOIN applet_booklist ap ON c.booklist_id=ap.id
LEFT JOIN BOOK_ADVISER A ON c.book_id=a.BOOK_ID AND c.adviser_id=a.ADVISER_ID AND c.channel_id=a.CHANNEL_ID
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND A.IS_DELETE = 0 AND B.IS_DELETE = 0
WHERE
c.booklist_id=#{booklistId}
ORDER BY c.seq ASC
</select>
<select id="listBooklist4Wechat" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletBooklistDTO">
SELECT
b.id id,
b.booklist_name booklistName,
b.user_name userName,
COUNT(c.id) bookCounts
FROM applet_booklist b
LEFT JOIN applet_booklist_config c ON b.id=c.booklist_id
WHERE 1=1
AND b.classify_id= #{classifyId}
GROUP BY b.id
HAVING COUNT(c.id)>0
order by b.create_time desc
</select>
<select id="getBookBaseByBooklistId" parameterType="map" resultType="com.pcloud.book.applet.dto.BookDTO4Booklist">
SELECT
c.book_id bookId,
c.channel_id channelId,
c.adviser_id adviserId,
b.BOOK_NAME bookName,
b.COVER_IMG coverImg
FROM applet_booklist_config c
INNER JOIN book b ON c.book_id=b.BOOK_ID
WHERE c.booklist_id=#{booklistId}
ORDER BY c.seq ASC
<if test="pageNum>=0 and numPerPage>0">
limit #{pageNum}, #{numPerPage}
</if>
</select>
<select id="getConfigByBooklistIds" parameterType="map" resultType="com.pcloud.book.applet.dto.BookDTO4Booklist">
SELECT
booklist_id booklistId,
book_id bookId,
adviser_id adviserId,
channel_id channelId
FROM applet_booklist_config
WHERE booklist_id in
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</select>
<select id="getByBookIdAdviserChannel" parameterType="map" resultType="com.pcloud.book.applet.dto.BookDTO4Booklist">
SELECT
A.BOOK_ID bookId,
A.CHANNEL_ID channelId,
A.ADVISER_ID adviserId,
B.BOOK_NAME bookName,
B.AUTHOR author,
B.PUBLISH publish,
B.COVER_IMG coverImg,
A.TEMPLET_ID templetId,
A.SECOND_TEMPLET_ID secondTempletId,
B.ISBN isbn,
CONCAT('BK',A.BOOK_ID) uniqueNumber
FROM
BOOK_ADVISER A
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND A.IS_DELETE = 0 AND B.IS_DELETE = 0
WHERE
A.BOOK_ID=#{bookId}
AND A.ADVISER_ID=#{adviserId}
AND A.CHANNEL_ID=#{channelId}
</select>
</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.applet.dao.impl.AppletBooklistClassifyDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.AppletBooklistClassify" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="classify_name" property="classifyName" jdbcType="VARCHAR" />
<result column="seq" property="seq" jdbcType="INTEGER" />
<result column="show_state" property="showState" jdbcType="BOOLEAN" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, classify_name, seq, show_state, create_time,update_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.applet.entity.AppletBooklistClassify" useGeneratedKeys="true" keyProperty="id">
insert into applet_booklist_classify (
classify_name, seq, show_state, create_time, update_time
)
values (
#{classifyName}, #{seq}, #{showState}, NOW(), NOW()
)
</insert>
<update id="update" parameterType="com.pcloud.book.applet.entity.AppletBooklistClassify">
update applet_booklist_classify
<set>
<if test="classifyName != null">
classify_name = #{classifyName,jdbcType=BIGINT},
</if>
<if test="seq != null">
seq = #{seq},
</if>
<if test="showState != null">
show_state = #{showState},
</if>
update_time=NOW()
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from applet_booklist_classify
where id=#{id}
</select>
<delete id="deleteById" parameterType="long">
delete from applet_booklist_classify
where id=#{id}
</delete>
<select id="listBooklistClassify" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletBooklistClassifyDTO">
SELECT
b.id id,
b.classify_name classifyName,
b.seq seq,
COUNT(c.id) booklistCount,
b.show_state showState
FROM applet_booklist_classify b
LEFT JOIN applet_booklist c ON b.id=c.classify_id
WHERE 1=1
<if test="name != null">
AND b.classify_name LIKE CONCAT("%",#{name},"%")
</if>
GROUP BY b.id
order by b.seq asc
</select>
<select id="getMaxSeq" resultType="Integer">
SELECT IFNULL(MAX(seq),0) FROM applet_booklist_classify
</select>
<select id="getAllBooklistClassify" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletBooklistClassifyDTO">
SELECT
id, classify_name classifyName, seq, show_state showState
FROM applet_booklist_classify
where 1=1
<if test="showState != null">
AND show_state = #{showState}
</if>
ORDER BY seq ASC
</select>
</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.applet.dao.impl.AppletNewsDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.AppletNews" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="news_name" property="newsName" jdbcType="VARCHAR" />
<result column="source" property="source" jdbcType="VARCHAR" />
<result column="news_classify_id" property="newsClassifyId" jdbcType="BIGINT" />
<result column="pro_label_id" property="proLabelId" jdbcType="BIGINT" />
<result column="dep_label_id" property="depLabelId" jdbcType="BIGINT" />
<result column="pur_label_id" property="purLabelId" jdbcType="BIGINT" />
<result column="type" property="type" jdbcType="INTEGER" />
<result column="digest" property="digest" jdbcType="VARCHAR" />
<result column="pic1" property="pic1" jdbcType="VARCHAR" />
<result column="pic2" property="pic2" jdbcType="VARCHAR" />
<result column="pic3" property="pic3" jdbcType="VARCHAR" />
<result column="content" property="content" jdbcType="VARCHAR" />
<result column="show_state" property="showState" jdbcType="BOOLEAN" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, news_name, source, news_classify_id, pro_label_id, dep_label_id, pur_label_id, type, digest,
pic1, pic2, pic3, content, show_state, create_time, update_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.applet.entity.AppletNews" useGeneratedKeys="true" keyProperty="id">
insert into applet_news(
news_name, source, news_classify_id, pro_label_id, dep_label_id, pur_label_id, type, digest,
pic1, pic2, pic3, content, show_state, create_time, update_time
)
values (
#{newsName}, #{source}, #{newsClassifyId}, #{proLabelId}, #{depLabelId}, #{purLabelId}, #{type}, #{digest},
#{pic1}, #{pic2}, #{pic3}, #{content}, #{showState}, NOW(), NOW()
)
</insert>
<update id="update" parameterType="com.pcloud.book.applet.entity.AppletNews">
update applet_news
<set>
<if test="newsName != null">
news_name = #{newsName},
</if>
<if test="source != null">
source = #{source},
</if>
<if test="newsClassifyId != null">
news_classify_id = #{newsClassifyId},
</if>
<if test="proLabelId != null">
pro_label_id = #{proLabelId},
</if>
<if test="depLabelId != null">
dep_label_id = #{depLabelId},
</if>
<if test="purLabelId != null">
pur_label_id = #{purLabelId},
</if>
<if test="type != null">
type = #{type},
</if>
<if test="source != null">
source = #{source},
</if>
digest = #{digest},
pic1 = #{pic1},
pic2 = #{pic2},
pic3 = #{pic3},
<if test="content != null">
content = #{content},
</if>
<if test="showState != null">
show_state = #{showState,jdbcType=BOOLEAN},
</if>
update_time=NOW()
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateNewsShowState" parameterType="com.pcloud.book.applet.entity.AppletNews">
update applet_news
set show_state = #{showState,jdbcType=BOOLEAN}
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from applet_news
where id=#{id}
</select>
<delete id="deleteById" parameterType="long">
delete from applet_news
where id=#{id}
</delete>
<select id="listAppletNews" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletNewsDTO">
SELECT
n.id,
n.news_name newsName,
n.source,
n.news_classify_id newsClassifyId,
n.pro_label_id proLabelId,
n.dep_label_id depLabelId,
n.pur_label_id purLabelId,
n.type,
n.digest,
n.pic1,
n.pic2,
n.pic3,
n.content,
n.show_state showState,
c.news_classify newsClassify,
n.create_time createTime
FROM applet_news n LEFT JOIN applet_news_classify c ON
n.news_classify_id=c.id
WHERE 1=1
<if test="name != null">
AND n.news_name LIKE CONCAT("%",#{name},"%")
</if>
<if test="newsClassifyId >0">
AND n.news_classify_id = #{newsClassifyId}
</if>
<if test="showState != null">
AND n.show_state = #{showState}
</if>
ORDER BY n.create_time DESC
</select>
<select id="getByNewsClassifyId" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from applet_news
where news_classify_id=#{newsClassifyId}
</select>
</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.applet.dao.impl.AppletNewsClassifyDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.AppletNewsClassify" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="news_classify" property="newsClassify" jdbcType="VARCHAR" />
<result column="seq" property="seq" jdbcType="INTEGER" />
<result column="show_state" property="showState" jdbcType="BOOLEAN" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, news_classify, seq, show_state, create_time,update_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.applet.entity.AppletNewsClassify" useGeneratedKeys="true" keyProperty="id">
insert into applet_news_classify (
news_classify, seq, show_state, create_time, update_time
)
values (
#{newsClassify}, #{seq}, #{showState}, NOW(), NOW()
)
</insert>
<update id="update" parameterType="com.pcloud.book.applet.entity.AppletNewsClassify">
update applet_news_classify
<set>
<if test="newsClassify != null">
news_classify = #{newsClassify,jdbcType=BIGINT},
</if>
<if test="seq != null">
seq = #{seq},
</if>
<if test="showState != null">
show_state = #{showState},
</if>
update_time=NOW()
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<select id="getById" parameterType="long" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from applet_news_classify
where id=#{id}
</select>
<delete id="deleteById" parameterType="long">
delete from applet_news_classify
where id=#{id}
</delete>
<select id="listNewsClassify" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletNewsClassifyDTO">
SELECT
b.id id,
b.news_classify newsClassify,
b.seq seq,
COUNT(c.id) newsCount,
b.show_state showState
FROM applet_news_classify b
LEFT JOIN applet_news c ON b.id=c.news_classify_id
WHERE 1=1
<if test="name != null">
AND b.news_classify LIKE CONCAT("%",#{name},"%")
</if>
GROUP BY b.id
order by b.seq asc
</select>
<select id="getMaxSeq" resultType="Integer">
SELECT IFNULL(MAX(seq),0) FROM applet_news_classify
</select>
<select id="getAllNewsClassify" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletNewsClassifyDTO">
SELECT
id, news_classify newsClassify, seq, show_state showState
FROM applet_news_classify
where 1=1
<if test="showState != null">
AND show_state = #{showState}
</if>
ORDER BY seq ASC
</select>
</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.applet.dao.impl.AppletNewsCommentDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.AppletNewsComment" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="news_id" property="newsId" jdbcType="BIGINT" />
<result column="comment" property="comment" jdbcType="VARCHAR" />
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, news_id, comment, wechat_user_id, create_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.applet.entity.AppletNewsComment" useGeneratedKeys="true" keyProperty="id">
insert into applet_news_comment (
news_id, comment, wechat_user_id, create_time
)
values (
#{newsId}, #{comment}, #{wechatUserId}, NOW()
)
</insert>
<select id="listNewsCommentByNewsId" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletNewsCommentDTO">
SELECT
id, news_id newsId, comment, wechat_user_id wechatUserId, create_time createTime
FROM applet_news_comment
where
news_id = #{newsId}
ORDER BY create_time desc
</select>
</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.applet.dao.impl.AppletUserBookcaseDaoImpl" >
<resultMap id="BaseResultMap" type="com.pcloud.book.applet.entity.AppletUserBookcase" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="wechat_user_id" property="wechatUserId" jdbcType="BIGINT" />
<result column="book_id" property="bookId" jdbcType="BIGINT" />
<result column="channel_id" property="channelId" jdbcType="BIGINT" />
<result column="adviser_id" property="adviserId" jdbcType="BIGINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, wechat_user_id, book_id, channel_id, adviser_id, create_time
</sql>
<insert id="insert" parameterType="com.pcloud.book.applet.entity.AppletUserBookcase" useGeneratedKeys="true" keyProperty="id">
insert into applet_user_bookcase (
wechat_user_id, book_id, channel_id, adviser_id, create_time
)
values (
#{wechatUserId}, #{bookId}, #{channelId}, #{adviserId}, NOW()
)
</insert>
<select id="listByWechatUserId" parameterType="long" resultType="com.pcloud.book.applet.dto.AppletUserBookcaseDTO">
SELECT
c.book_id bookId,
c.channel_id channelId,
c.adviser_id adviserId,
b.BOOK_NAME bookName,
b.COVER_IMG coverImg,
c.create_time createTime,
b.AUTHOR author,
b.PUBLISH publish,
a.SECOND_TEMPLET_ID secondTempletId,
a.TEMPLET_ID templetId
FROM applet_user_bookcase c
LEFT JOIN BOOK_ADVISER a ON c.book_id=a.BOOK_ID AND c.adviser_id=a.ADVISER_ID AND c.channel_id=a.CHANNEL_ID
INNER JOIN BOOK b ON c.BOOK_ID = b.BOOK_ID AND a.IS_DELETE = 0 AND b.IS_DELETE = 0
WHERE c.wechat_user_id=#{wechatUserId}
GROUP BY c.book_id,c.adviser_id,c.channel_id
ORDER BY c.create_time DESC
</select>
<insert id="insertClickRecord" parameterType="com.pcloud.book.applet.entity.AppletUserClickRecord">
insert into applet_user_click_record (
id,wechat_user_id, book_id, from_id, from_type, channel_id, adviser_id, create_time
)
values (
#{id}, #{wechatUserId}, #{bookId}, #{fromId}, #{fromType}, #{channelId}, #{adviserId}, NOW()
)
</insert>
<select id="getUserClickServerCount" parameterType="map" resultType="Integer">
SELECT COUNT(DISTINCT from_id)
FROM applet_user_click_record
WHERE wechat_user_id=#{wechatUserId}
AND book_id = #{bookId}
AND channel_id=#{channelId}
AND adviser_id=#{adviserId}
AND from_id in
<foreach collection="list" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
AND from_type = #{fromType}
</select>
<select id="getMinClickTime" resultType="string" parameterType="map">
SELECT
DATE_FORMAT(MIN(create_time),'%Y-%m-%d')
FROM applet_user_click_record
WHERE wechat_user_id=#{wechatUserId}
AND book_id = #{bookId}
AND channel_id=#{channelId}
AND adviser_id=#{adviserId}
AND from_id in
<foreach collection="list" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
AND from_type = #{fromType}
</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