Commit 902f5720 by 朱亚洁

feat:[1003399]外链引流书单推荐

parent c04f41ad
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 java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 书单推荐书籍(AppletOuterBook)实体类
*
* @author makejava
* @since 2020-08-11 11:51:24
*/
@Data
public class AppletOuterBookDTO extends BaseDto {
private static final long serialVersionUID = 283162706407945358L;
private Long id;
private Long configId;
/**
* 封面
*/
private String coverImg;
/**
* 书籍名称
*/
private String bookName;
/**
* 出版社
*/
private String publish;
/**
* 作者
*/
private String author;
/**
* isbn
*/
private String isbn;
/**
* 简介
*/
private String remark;
/**
* 价格
*/
private BigDecimal price;
/**
* 链接来源1当当2京东3拼多多
*/
private Integer linkType;
/**
* 跳转链接
*/
private String linkUrl;
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.pcloud.book.applet.service;
import com.pcloud.book.applet.dto.AppletNewsVO;
import com.pcloud.book.applet.dto.AppletOuterBookDTO;
import com.pcloud.book.applet.dto.PcloudGroupActivityDTO;
import com.pcloud.common.dto.ResponseDto;
......@@ -27,4 +28,8 @@ public interface AppletService {
@GetMapping("getGroupActivityById")
public ResponseEntity<ResponseDto<PcloudGroupActivityDTO>> getGroupActivityById(@RequestParam("id") Long id);
@ApiOperation("根据id查外部书刊")
@GetMapping("getOuterBookById")
public ResponseEntity<ResponseDto<AppletOuterBookDTO>> getOuterBookById(@RequestParam("outerBookId") Long outerBookId);
}
......@@ -3,12 +3,15 @@ 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.AppletOuterBookDTO;
import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
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;
import java.util.Map;
/**
* 小程序书单
......@@ -146,4 +149,110 @@ public interface AppletBooklistBiz {
* * @param null
*/
List<AppletBooklistClassifyDTO> getBooklistClassifyByUser(Long wechatUserId);
/**
* 添加外部书刊
* @author:zhuyajie
* @date:2020/8/11 11:57
* * @param null
*/
Long addOuterBook(AppletOuterBookDTO appletOuterBookDTO);
/**
* 根据id查外部书刊
* @author:zhuyajie
* @date:2020/8/11 12:00
* * @param null
*/
AppletOuterBookDTO getOuterBookById(Long outerBookId);
/**
* 外部书刊分页查询
* @author:zhuyajie
* @date:2020/8/11 12:02
* * @param null
*/
PageBeanNew<AppletOuterBookDTO> listPageOuterBook(Integer currentPage, Integer numPerPage, String publish,
String name);
/**
* 外部书刊出版社列表
* @author:zhuyajie
* @date:2020/8/11 13:53
* * @param null
*/
List<String> getOuterBookPublish();
/**
* 删除外部书刊
* @author:zhuyajie
* @date:2020/8/11 13:53
* * @param null
*/
void deleteOuterBookById(Long id);
/**
* 创建外部书单
* @author:zhuyajie
* @date:2020/8/11 14:48
* * @param null
*/
Long addOuterBooklist(AppletOuterBooklistDTO appletOuterBooklistDTO);
/**
* 外部书单查询
* @author:zhuyajie
* @date:2020/8/11 15:15
* * @param null
*/
AppletOuterBooklistDTO getOuterBooklistById(Long booklistId);
/**
* 外部书单列表
* @author:zhuyajie
* @date:2020/8/11 15:15
* * @param null
*/
PageBeanNew<AppletOuterBooklistDTO> listPageOuterBooklist(Integer currentPage, Integer numPerPage, String publish,
String name);
/**
* 外部书单出版社列表
* @author:zhuyajie
* @date:2020/8/11 15:16
* * @param null
*/
List<String> getOuterBooklistPublish();
/**
* 删除外部书单
* @author:zhuyajie
* @date:2020/8/11 15:17
* * @param null
*/
void deleteOuterBooklistById(Long id);
/**
* 客户端查询外部书单
* @author:zhuyajie
* @date:2020/8/11 16:33
* * @param null
*/
AppletOuterBooklistDTO getOutBooklistById4Wechat(Long booklistId);
/**
* 批量查外部书单
* @author:zhuyajie
* @date:2020/8/11 17:07
* * @param null
*/
Map<Long,AppletOuterBooklistDTO> getByIds(List<Long> booklistIds);
/**
* 批量从外部书单中移出书刊
* @author:zhuyajie
* @date:2020/8/12 17:28
* * @param null
*/
void batchDeleteOuterBookFromBooklist(List<Long> configIds);
/**
* 根据书单id查外部书刊分页查询
* @author:zhuyajie
* @date:2020/8/12 17:28
* * @param null
*/
PageBeanNew<AppletOuterBookDTO> listPageOuterBookByBooklistId(Integer currentPage, Integer numPerPage, Long booklistId);
}
......@@ -44,4 +44,8 @@ public class AppletConstants {
* 书刊资源数量
*/
public static final String BOOK_RESOURCE_COUNT = CacheConstant.BOOK+"APPLET:book_resource_count";
/**
* 推荐书单-外部书单列表中的书
*/
public static final String OUTER_BOOKLIST_BOOK = CacheConstant.BOOK+"APPLET:RightSettingBooklist4Wechat";
}
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.AppletOuterBookDTO;
import com.pcloud.book.applet.entity.AppletOuterBook;
import com.pcloud.common.core.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 书单推荐书籍(AppletOuterBook)表数据库访问层
*
* @author makejava
* @since 2020-08-11 11:51:24
*/
public interface AppletOuterBookDao extends BaseDao<AppletOuterBook>{
List<String> getAllPublish();
List<AppletOuterBookDTO> listPageOuterBookByBooklistId(Long booklistId, Integer limit);
}
\ No newline at end of file
package com.pcloud.book.applet.dao;
import com.pcloud.book.applet.dto.AppletOuterBookDTO;
import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
import com.pcloud.book.applet.dto.OuterBooklistAddDTO;
import com.pcloud.book.applet.entity.AppletOuterBooklist;
import com.pcloud.common.core.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* 外部书单(AppletOuterBooklist)表数据库访问层
*
* @author makejava
* @since 2020-08-11 14:13:04
*/
public interface AppletOuterBooklistDao extends BaseDao<AppletOuterBooklist>{
/**
* 批量添加书刊
* @author:zhuyajie
* @date:2020/8/11 14:29
* * @param null
*/
void addOuterBooklistConfig(List<OuterBooklistAddDTO> addDTOS);
/**
* 删除配置
* @author:zhuyajie
* @date:2020/8/11 14:30
* * @param null
*/
void deleteConfigByOuterBooklistId(Long booklistId);
/**
* 根据书单id查书刊
* @author:zhuyajie
* @date:2020/8/11 16:04
* * @param null
*/
List<Long> getBookIdsByBooklistId(Long booklistId);
/**
* 根据书刊id查书单数量
* @author:zhuyajie
* @date:2020/8/11 16:04
* * @param null
*/
Integer getBooklistCountsByBookId(Long outerBookId);
/**
* 出版社列表
* @author:zhuyajie
* @date:2020/8/11 16:13
* * @param null
*/
List<String> getOuterBooklistPublish();
/**
* 根据书单id查询图书
* @author:zhuyajie
* @date:2020/8/11 16:37
* * @param null
*/
List<AppletOuterBookDTO> getBookListByBooklistId(Long booklistId);
/**
* 批量查书单
* @author:zhuyajie
* @date:2020/8/11 17:08
* * @param null
*/
Map<Long,AppletOuterBooklistDTO> getByIds(List<Long> booklistIds);
/**
* 书单中删除书
* @author:zhuyajie
* @date:2020/8/12 17:26
* * @param null
*/
void batchDeleteOuterBookFromBooklist(List<Long> configIds);
}
\ No newline at end of file
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletOuterBookDao;
import com.pcloud.book.applet.dto.AppletOuterBookDTO;
import com.pcloud.book.applet.entity.AppletOuterBook;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @ClassName com.pcloud.book.applet.dao.impl.AppletOuterBookDaoImpl
* @Author zhuyajie
* @Description
* @Date 2020/8/11 11:53
* @Version 1.0
**/
@Component
public class AppletOuterBookDaoImpl extends BaseDaoImpl<AppletOuterBook> implements AppletOuterBookDao {
@Override
public List<String> getAllPublish() {
return getSessionTemplate().selectList(getStatement("getAllPublish"));
}
@Override
public List<AppletOuterBookDTO> listPageOuterBookByBooklistId(Long booklistId, Integer limit) {
Map<String, Object> map = new HashMap<>();
map.put("booklistId", booklistId);
map.put("limit", limit);
return getSessionTemplate().selectList(getStatement("listPageOuterBookByBooklistId"), map);
}
}
package com.pcloud.book.applet.dao.impl;
import com.pcloud.book.applet.dao.AppletOuterBooklistDao;
import com.pcloud.book.applet.dto.AppletOuterBookDTO;
import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
import com.pcloud.book.applet.dto.OuterBooklistAddDTO;
import com.pcloud.book.applet.entity.AppletOuterBooklist;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* @ClassName com.pcloud.book.applet.dao.impl.AppletOuterBooklistDaoImpl
* @Author zhuyajie
* @Description
* @Date 2020/8/11 14:15
* @Version 1.0
**/
@Component
public class AppletOuterBooklistDaoImpl extends BaseDaoImpl<AppletOuterBooklist> implements AppletOuterBooklistDao {
@Override
public void addOuterBooklistConfig(List<OuterBooklistAddDTO> addDTOS) {
getSessionTemplate().insert(getStatement("addOuterBooklistConfig"), addDTOS);
}
@Override
public void deleteConfigByOuterBooklistId(Long booklistId) {
getSessionTemplate().delete(getStatement("deleteConfigByOuterBooklistId"), booklistId);
}
@Override
public List<Long> getBookIdsByBooklistId(Long booklistId) {
return getSessionTemplate().selectList(getStatement("getBookIdsByBooklistId"), booklistId);
}
@Override
public Integer getBooklistCountsByBookId(Long outerBookId) {
return getSessionTemplate().selectOne(getStatement("getBooklistCountsByBookId"), outerBookId);
}
@Override
public List<String> getOuterBooklistPublish() {
return getSessionTemplate().selectList(getStatement("getOuterBooklistPublish"));
}
@Override
public List<AppletOuterBookDTO> getBookListByBooklistId(Long booklistId) {
return getSessionTemplate().selectList(getStatement("getBookListByBooklistId"), booklistId);
}
@Override
public Map<Long, AppletOuterBooklistDTO> getByIds(List<Long> booklistIds) {
return getSessionTemplate().selectMap(getStatement("getByIds"), booklistIds, "id");
}
@Override
public void batchDeleteOuterBookFromBooklist(List<Long> configIds) {
getSessionTemplate().delete(getStatement("batchDeleteOuterBookFromBooklist"), configIds);
}
}
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 java.util.Date;
import java.util.List;
import lombok.Data;
/**
* 外部书单(AppletOuterBooklist)实体类
*
* @author makejava
* @since 2020-08-11 14:13:04
*/
@Data
public class AppletOuterBooklistDTO extends BaseDto {
private static final long serialVersionUID = 799578639173080859L;
private Long id;
/**
* 书单主题名称
*/
private String booklistName;
/**
* 创建者名称
*/
private String userName;
/**
* 摘要
*/
private String digest;
/**
* 展示图
*/
private String displayPic;
/**
* 出版社
*/
private String publish;
/**
* 创建时间
*/
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
/**
* 外部书刊id
*/
private List<Long> outerBookIdList;
private Integer bookCounts;
/**
* 外部书刊列表
*/
private List<AppletOuterBookDTO> outerBookDTOS;
}
\ No newline at end of file
package com.pcloud.book.applet.dto;
import lombok.Data;
/**
* @ClassName com.pcloud.book.applet.dto.OuterBooklistAddDTO
* @Author zhuyajie
* @Description
* @Date 2020/8/11 14:27
* @Version 1.0
**/
@Data
public class OuterBooklistAddDTO {
private Long id;
private Long booklistId;
private Long outerBookId;
private Integer seq;
}
package com.pcloud.book.applet.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.math.BigDecimal;
import java.util.Date;
import java.io.Serializable;
import lombok.Data;
/**
* 书单推荐书籍(AppletOuterBook)实体类
*
* @author makejava
* @since 2020-08-11 11:51:24
*/
@Data
public class AppletOuterBook extends BaseEntity {
private static final long serialVersionUID = 283162706407945358L;
private Long id;
/**
* 封面
*/
private String coverImg;
/**
* 书籍名称
*/
private String bookName;
/**
* 出版社
*/
private String publish;
/**
* 作者
*/
private String author;
/**
* isbn
*/
private String isbn;
/**
* 简介
*/
private String remark;
/**
* 价格
*/
private BigDecimal price;
/**
* 链接来源1当当2京东3拼多多
*/
private Integer linkType;
/**
* 跳转链接
*/
private String linkUrl;
/**
* 创建时间
*/
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
}
\ No newline at end of file
package com.pcloud.book.applet.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import java.util.Date;
import java.io.Serializable;
import lombok.Data;
/**
* 外部书单(AppletOuterBooklist)实体类
*
* @author makejava
* @since 2020-08-11 14:13:04
*/
@Data
public class AppletOuterBooklist extends BaseEntity {
private static final long serialVersionUID = 799578639173080859L;
private Long id;
/**
* 书单主题名称
*/
private String booklistName;
/**
* 创建者名称
*/
private String userName;
/**
* 摘要
*/
private String digest;
/**
* 展示图
*/
private String displayPic;
/**
* 出版社
*/
private String publish;
/**
* 创建时间
*/
@JsonFormat(
pattern = "yyyy-MM-dd HH:mm:ss",
timezone = "GMT+8"
)
private Date createTime;
}
\ No newline at end of file
......@@ -25,9 +25,13 @@ public enum DataTypeEnum {
rays_group(3),
/**
*
*第三方群
*/
third_group(4);
third_group(4),
/**
*外部书单中的书刊
*/
booklist(5);
public final Integer code;
......
......@@ -12,6 +12,8 @@ import com.pcloud.book.applet.dto.AppletNewsClassifyDTO;
import com.pcloud.book.applet.dto.AppletNewsCommentDTO;
import com.pcloud.book.applet.dto.AppletNewsCustomTagDTO;
import com.pcloud.book.applet.dto.AppletNewsDTO;
import com.pcloud.book.applet.dto.AppletOuterBookDTO;
import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
import com.pcloud.book.applet.dto.AppletUserBookcaseDTO;
import com.pcloud.book.applet.dto.BookDTO4Booklist;
import com.pcloud.book.applet.entity.AppletBanner;
......@@ -28,7 +30,6 @@ import com.pcloud.book.applet.vo.AppletNewsClassifyVO;
import com.pcloud.book.applet.vo.AppletNewsShowStateVO;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.skill.biz.PcloudGroupActivityBiz;
import com.pcloud.book.skill.facade.response.QueryGroupActivityResponseVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.permission.PermissionException;
......@@ -37,9 +38,7 @@ import com.pcloud.common.utils.NumberUtil;
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.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue;
......@@ -53,7 +52,10 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@Api(description = "小睿小程序首页")
@RestController("appletHomeFacade")
......@@ -921,6 +923,110 @@ public class AppletHomeFacade {
public ResponseDto<?> getNewsIdListByCustomTagId(@RequestParam("customTagId") Long customTagId) {
return new ResponseDto<>(appletNewsBiz.getNewsIdListByCustomTagId(customTagId));
}
@ApiOperation("添加/修改外部书刊")
@PostMapping("addOuterBook")
public ResponseDto<?> addOuterBook(@RequestHeader("token") String token, @RequestBody AppletOuterBookDTO appletOuterBookDTO) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(appletBooklistBiz.addOuterBook(appletOuterBookDTO));
}
@ApiOperation("根据id查外部书刊")
@GetMapping("getOuterBookById")
public ResponseDto<?> getByOuterBookId(@RequestHeader("token") String token, @RequestParam("outerBookId") Long outerBookId) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(appletBooklistBiz.getOuterBookById(outerBookId));
}
@ApiOperation("外部书刊分页查询")
@GetMapping("listPageOuterBook")
public ResponseDto<?> listPageOuterBook(@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage,
@RequestParam(value = "publish", required = false) String publish,
@RequestParam(value = "name", required = false) String name) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(appletBooklistBiz.listPageOuterBook(currentPage, numPerPage, publish, name));
}
@ApiOperation("外部书刊出版社列表")
@GetMapping("getOuterBookPublish")
public ResponseDto<?> getAllPublish(@RequestHeader("token") String token) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(appletBooklistBiz.getOuterBookPublish());
}
@ApiOperation("删除外部书刊")
@GetMapping("deleteOuterBookById")
public ResponseDto<?> deleteOuterBookById(@RequestHeader("token") String token, @RequestParam("outerBookId") Long outerBookId) {
SessionUtil.getToken4Redis(token);
appletBooklistBiz.deleteOuterBookById(outerBookId);
return new ResponseDto<>();
}
@ApiOperation("创建外部书单")
@PostMapping("addOuterBooklist")
public ResponseDto<?> addOuterBooklist(@RequestHeader("token") String token, @RequestBody AppletOuterBooklistDTO appletOuterBooklistDTO) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(appletBooklistBiz.addOuterBooklist(appletOuterBooklistDTO));
}
@ApiOperation("外部书单查询")
@GetMapping("getOuterBooklistById")
public ResponseDto<?> getOuterBooklistById(@RequestHeader("token") String token, @RequestParam("booklistId") Long booklistId) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(appletBooklistBiz.getOuterBooklistById(booklistId));
}
@ApiOperation("外部书单列表")
@GetMapping("listPageOuterBooklist")
public ResponseDto<?> listPageOuterBooklist(@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage,
@RequestParam(value = "publish", required = false) String publish,
@RequestParam(value = "name", required = false) String name) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(appletBooklistBiz.listPageOuterBooklist(currentPage, numPerPage, publish, name));
}
@ApiOperation("外部书单出版社列表")
@GetMapping("getOuterBooklistPublish")
public ResponseDto<?> getOuterBooklistPublish(@RequestHeader("token") String token) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(appletBooklistBiz.getOuterBooklistPublish());
}
@ApiOperation("删除外部书单")
@GetMapping("deleteOuterBooklistById")
public ResponseDto<?> deleteOuterBooklistById(@RequestHeader("token") String token, @RequestParam("booklistId") Long booklistId) {
SessionUtil.getToken4Redis(token);
appletBooklistBiz.deleteOuterBooklistById(booklistId);
return new ResponseDto<>();
}
@ApiOperation("客户端-查外部书单及书刊列表")
@GetMapping("getOutBooklistById4Wechat")
public ResponseDto<?> getOutBooklistById4Wechat(@RequestParam("booklistId") Long booklistId){
return new ResponseDto<>(appletBooklistBiz.getOutBooklistById4Wechat(booklistId));
}
@ApiOperation("批量从外部书单中移出书刊")
@PostMapping("batchDeleteOuterBookFromBooklist")
public ResponseDto<?>batchDeleteOuterBookFromBooklist(@RequestHeader("token")String token, @RequestBody List<Long> configIds){
SessionUtil.getToken4Redis(token);
appletBooklistBiz.batchDeleteOuterBookFromBooklist(configIds);
return new ResponseDto<>();
}
@ApiOperation("根据书单id查外部书刊分页查询")
@GetMapping("listPageOuterBookByBooklistId")
public ResponseDto<?> listPageOuterBookByBooklistId(@RequestHeader("token") String token,
@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage,
@RequestParam("booklistId") Long booklistId) {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(appletBooklistBiz.listPageOuterBookByBooklistId(currentPage, numPerPage, booklistId));
}
}
......
package com.pcloud.book.applet.service.impl;
import com.pcloud.book.applet.biz.AppletBooklistBiz;
import com.pcloud.book.applet.biz.AppletNewsBiz;
import com.pcloud.book.applet.dto.AppletNewsVO;
import com.pcloud.book.applet.dto.AppletOuterBookDTO;
import com.pcloud.book.applet.dto.PcloudGroupActivityDTO;
import com.pcloud.book.applet.service.AppletService;
import com.pcloud.book.skill.biz.PcloudGroupActivityBiz;
......@@ -33,6 +35,8 @@ public class AppletServiceImpl implements AppletService {
@Autowired
private PcloudGroupActivityBiz pcloudGroupActivityBiz;
@Autowired
private AppletBooklistBiz appletBooklistBiz;
@Override
......@@ -49,4 +53,10 @@ public class AppletServiceImpl implements AppletService {
BeanUtils.copyProperties(pcloudGroupActivity,newData);
return ResponseHandleUtil.toResponse(newData);
}
@Override
@GetMapping("getOuterBookById")
public ResponseEntity<ResponseDto<AppletOuterBookDTO>> getOuterBookById(@RequestParam("outerBookId") Long outerBookId){
return ResponseHandleUtil.toResponse(appletBooklistBiz.getOuterBookById(outerBookId));
}
}
......@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
import com.google.common.collect.Lists;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
import com.pcloud.book.applet.biz.AppletBooklistBiz;
import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz;
import com.pcloud.book.applet.biz.AppletNewsBiz;
import com.pcloud.book.applet.biz.AppletUserBookcaseBiz;
......@@ -13,6 +14,7 @@ import com.pcloud.book.applet.dao.AppletUserBookcaseDao;
import com.pcloud.book.applet.dto.AppletGroupStatementDTO;
import com.pcloud.book.applet.dto.AppletNewsDTO;
import com.pcloud.book.applet.dto.AppletNewsServeDTO;
import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
import com.pcloud.book.applet.entity.AppletNews;
import com.pcloud.book.applet.entity.AppletUserBookcase;
import com.pcloud.book.applet.enums.AppletNewsServeTypeEnum;
......@@ -198,6 +200,8 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
private RightsSettingBiz rightsSettingBiz;
@Autowired
private PersonalAppletsDao personalAppletsDao;
@Autowired
private AppletBooklistBiz appletBooklistBiz;
@Override
@ParamLog("新增权益设置")
......@@ -499,11 +503,13 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
List<GroupActivity4AppletDTO> groupActivity4AppletList;
List<AppletNewsDTO> appletNewsDTOS;
List<CustomPlan> customPlanList;
List<AppletOuterBooklistDTO> outerBooklistDTOS;
// 处理资讯、社群等子项列表数据
for (RightsSettingItem rightsItem : rightsSettingItemList) {
groupActivity4AppletList = rightsItem.getGroupActivity4AppletList();
appletNewsDTOS = rightsItem.getAppletNewsDTOS();
customPlanList = rightsItem.getCustomPlanList();
outerBooklistDTOS = rightsItem.getOuterBooklistDTOS();
Long rightsSettingItemId = mapRightsSettingItem.get(rightsItem.getUuid());
if (!NumberUtil.isNumber(rightsSettingItemId)) {
......@@ -545,6 +551,17 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
rightsSettingItemDetail.setServeId(plan.getId().longValue());
rightsSettingItemDetailList.add(rightsSettingItemDetail);
}
} else if (RightsServeTypeEnum.BOOKLIST.name().equalsIgnoreCase(rightsItem.getServeType())){
if (ListUtils.isEmpty(outerBooklistDTOS)){
continue;
}
for (AppletOuterBooklistDTO booklistDTO :outerBooklistDTOS){
rightsSettingItemDetail = new RightsSettingItemDetail();
rightsSettingItemDetail.setRightsSettingItemId(rightsSettingItemId);
rightsSettingItemDetail.setServeType(RightsServeTypeEnum.BOOKLIST.name());
rightsSettingItemDetail.setServeId(booklistDTO.getId());
rightsSettingItemDetailList.add(rightsSettingItemDetail);
}
}
}
}
......@@ -907,6 +924,7 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
List<Long> groupIds = new ArrayList<>();
List<Long> appletNewsId = new ArrayList<>();
List<Long> planIds = new ArrayList<>();
List<Long> booklistIds = new ArrayList<>();
for (RightsSettingItemDetail item : allItemDetailList) {
if (item.getServeId() != null && RightsServeTypeEnum.GROUP.name().equals(item.getServeType()) && !groupIds
.contains(item.getServeId())) {
......@@ -916,15 +934,20 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
.contains(item.getServeId())) {
appletNewsId.add(item.getServeId());
}
if (item.getServeId() != null && RightsServeTypeEnum.PLAN.name().equals(item.getServeType()) && !appletNewsId
if (item.getServeId() != null && RightsServeTypeEnum.PLAN.name().equals(item.getServeType()) && !planIds
.contains(item.getServeId())) {
planIds.add(item.getServeId());
}
if (item.getServeId() != null && RightsServeTypeEnum.BOOKLIST.name().equals(item.getServeType()) && !booklistIds
.contains(item.getServeId())){
booklistIds.add(item.getServeId());
}
}
Map<Long, GroupActivity4AppletDTO> groupDtoMap = new HashMap<>();
Map<Long, AppletNewsDTO> newsDtoMap = new HashMap<>();
Map<Long, CustomPlan> planDtoMap = new HashMap<>();
Map<Long, AppletOuterBooklistDTO> outerBooklistDTOMap = new HashMap<>();
if (!ListUtils.isEmpty(groupIds)) {
groupDtoMap = pcloudGroupActivityBiz.getByIds(groupIds);
}
......@@ -934,16 +957,21 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
if (!ListUtils.isEmpty(planIds)) {
planDtoMap = customPlanBiz.getByIds(planIds);
}
if (!ListUtils.isEmpty(booklistIds)){
outerBooklistDTOMap = appletBooklistBiz.getByIds(booklistIds);
}
List<RightsSettingItemDetail> itemDetailList;
GroupActivity4AppletDTO groupActivity4AppletDTO;
AppletNewsDTO appletNewsDTO;
CustomPlan plan;
AppletOuterBooklistDTO outerBooklistDTO;
for (RightsSettingItem rightsSettingItem : rightsSettingItemList) {
// 默认值
rightsSettingItem.setGroupActivity4AppletList(Lists.newArrayList());
rightsSettingItem.setAppletNewsDTOS(Lists.newArrayList());
rightsSettingItem.setCustomPlanList(Lists.newArrayList());
rightsSettingItem.setOuterBooklistDTOS(Lists.newArrayList());
itemDetailList = itemDetailMap.get(rightsSettingItem.getId());
if (!ListUtils.isEmpty(itemDetailList) && RightsServeTypeEnum.GROUP.name()
......@@ -976,6 +1004,15 @@ public class RightsSettingBizImpl implements RightsSettingBiz {
}
rightsSettingItem.getCustomPlanList().add(plan);
}
} else if (!ListUtils.isEmpty(itemDetailList) && RightsServeTypeEnum.BOOKLIST.name()
.equalsIgnoreCase(itemDetailList.get(0).getServeType())){
for (RightsSettingItemDetail itemDetail : itemDetailList) {
outerBooklistDTO = outerBooklistDTOMap.get(itemDetail.getServeId());
if (null == outerBooklistDTO){
continue;
}
rightsSettingItem.getOuterBooklistDTOS().add(outerBooklistDTO);
}
}
}
}
......
......@@ -60,7 +60,7 @@ public class RightsSettingCheck {
checkRightItemGroups(rightsSetting);
} else if (RightsTypeEnum.WEEK.code.equals(rightsSetting.getStepType())){
checkRightItem(rightsSetting.getRightsSettingWeekItems());
} else if (RightsTypeEnum.WEEK.code.equals(rightsSetting.getStepType())){
} else if (RightsTypeEnum.LONG_TERM.code.equals(rightsSetting.getStepType())){
checkRightItem(rightsSetting.getRightsSettingLongTermItems());
}
}
......
......@@ -2,6 +2,7 @@ package com.pcloud.book.rightsSetting.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.book.applet.dto.AppletNewsDTO;
import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
import com.pcloud.book.custom.entity.CustomPlan;
import com.pcloud.book.skill.dto.GroupActivity4AppletDTO;
import com.pcloud.common.entity.BaseEntity;
......@@ -83,7 +84,7 @@ public class RightsSettingItem extends BaseEntity {
@ApiModelProperty("社群")
private List<GroupActivity4AppletDTO> groupActivity4AppletList;
@ApiModelProperty("服务类型;GROUP、NEWS、PLAN")
@ApiModelProperty("服务类型;GROUP、NEWS、PLAN、BOOKLIST")
private String serveType;
/**
* 轻松阅读
......@@ -106,4 +107,7 @@ public class RightsSettingItem extends BaseEntity {
* 拼群开关 0 不拼 1 拼
*/
private Integer collageState;
@ApiModelProperty("外部书单列表")
private List<AppletOuterBooklistDTO> outerBooklistDTOS;
}
\ No newline at end of file
......@@ -12,7 +12,11 @@ public enum RightsServeTypeEnum {
/**
* 方案
*/
PLAN(3);
PLAN(3),
/**
* 外部书单
*/
BOOKLIST(4);
public final Integer value;
......
<?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.AppletOuterBookDaoImpl">
<resultMap type="com.pcloud.book.applet.entity.AppletOuterBook" id="AppletOuterBookMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="coverImg" column="cover_img" jdbcType="VARCHAR"/>
<result property="bookName" column="book_name" jdbcType="VARCHAR"/>
<result property="publish" column="publish" jdbcType="VARCHAR"/>
<result property="author" column="author" jdbcType="VARCHAR"/>
<result property="isbn" column="isbn" jdbcType="VARCHAR"/>
<result property="remark" column="remark" jdbcType="VARCHAR"/>
<result column="price" property="price" jdbcType="DECIMAL" />
<result property="linkType" column="link_type" jdbcType="INTEGER"/>
<result property="linkUrl" column="link_url" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, cover_img, book_name, publish, author, isbn, remark, price, link_type, link_url, create_time, update_time
</sql>
<!--查询单个-->
<select id="getById" resultMap="AppletOuterBookMap">
select
<include refid="Base_Column_List"/>
from book.applet_outer_book
where id = #{id}
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.applet_outer_book(cover_img, book_name, publish, author, isbn, remark, price, link_type, link_url, create_time, update_time)
values (#{coverImg}, #{bookName}, #{publish}, #{author}, #{isbn}, #{remark}, #{price}, #{linkType}, #{linkUrl}, now(), now())
</insert>
<!--通过主键修改数据-->
<update id="update">
update book.applet_outer_book
<set>
<if test="coverImg != null and coverImg != ''">
cover_img = #{coverImg},
</if>
<if test="bookName != null and bookName != ''">
book_name = #{bookName},
</if>
<if test="publish != null and publish != ''">
publish = #{publish},
</if>
author = #{author},
isbn = #{isbn},
remark = #{remark},
<if test="price != null">
price = #{price},
</if>
<if test="linkType != null">
link_type = #{linkType},
</if>
<if test="linkUrl != null and linkUrl != ''">
link_url = #{linkUrl},
</if>
update_time = now(),
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from book.applet_outer_book where id = #{id}
</delete>
<select id="listPageOuterBook" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletOuterBookDTO">
SELECT
id, cover_img coverImg, book_name bookName, publish, author, isbn, remark, price,
link_type linkType, link_url linkUrl, create_time createTime
FROM
book.applet_outer_book
WHERE 1=1
<if test="publish != null">
AND publish = #{publish}
</if>
<if test="name != null">
AND (
book_name like concat("%",#{name},"%") or isbn like concat("%",#{name},"%")
)
</if>
order by create_time desc
</select>
<select id="getAllPublish" resultType="string">
SELECT DISTINCT publish
FROM book.applet_outer_book
WHERE
publish IS NOT NULL
</select>
<select id="listPageOuterBookByBooklistId" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletOuterBookDTO">
SELECT
a.id,
c.id configId,
a.cover_img coverImg,
a.book_name bookName,
a.publish,
a.author,
a.isbn,
a.remark,
a.price,
a.link_type linkType,
a.link_url linkUrl,
c.create_time createTime
FROM
applet_outer_book a
LEFT JOIN applet_outer_booklist_config c ON a.id = c.outer_book_id
WHERE
c.booklist_id = #{booklistId}
ORDER BY
c.create_time DESC,
c.id DESC
<if test="limit != null">
limit #{limit}
</if>
</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.AppletOuterBooklistDaoImpl">
<resultMap type="com.pcloud.book.applet.entity.AppletOuterBooklist" id="AppletOuterBooklistMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="booklistName" column="booklist_name" jdbcType="VARCHAR"/>
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="digest" column="digest" jdbcType="VARCHAR"/>
<result property="displayPic" column="display_pic" jdbcType="VARCHAR"/>
<result property="publish" column="publish" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, booklist_name, user_name, digest, display_pic, publish, create_time, update_time
</sql>
<!--查询单个-->
<select id="getById" resultMap="AppletOuterBooklistMap">
select
<include refid="Base_Column_List"/>
from book.applet_outer_booklist
where id = #{id}
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into book.applet_outer_booklist(booklist_name, user_name, digest, display_pic, publish, create_time, update_time)
values (#{booklistName}, #{userName}, #{digest}, #{displayPic}, #{publish}, now(), now())
</insert>
<!--通过主键修改数据-->
<update id="update">
update book.applet_outer_booklist
<set>
<if test="booklistName != null and booklistName != ''">
booklist_name = #{booklistName},
</if>
<if test="userName != null and userName != ''">
user_name = #{userName},
</if>
digest = #{digest},
<if test="displayPic != null and displayPic != ''">
display_pic = #{displayPic},
</if>
<if test="publish != null and publish != ''">
publish = #{publish},
</if>
update_time = now(),
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from book.applet_outer_booklist where id = #{id}
</delete>
<delete id="deleteConfigByOuterBooklistId" parameterType="long">
delete from applet_outer_booklist_config WHERE booklist_id = #{booklistId}
</delete>
<insert id="addOuterBooklistConfig" parameterType="list" useGeneratedKeys="true" keyProperty="id">
insert into applet_outer_booklist_config (
booklist_id, outer_book_id,seq, create_time)
values
<foreach collection="list" item="item" index="index" separator=",">
( #{item.booklistId}, #{item.outerBookId}, #{item.seq}, NOW() )
</foreach>
</insert>
<select id="listPageOuterBooklist" parameterType="map" resultType="com.pcloud.book.applet.dto.AppletOuterBooklistDTO">
SELECT
b.id,
b.booklist_name booklistName,
b.user_name userName,
b.display_pic displayPic,
COUNT(c.id) bookCounts,
b.digest,
b.publish,
b.create_time createTime
FROM
applet_outer_booklist b
LEFT JOIN applet_outer_booklist_config c ON b.id = c.booklist_id
WHERE 1=1
<if test="publish != null">
AND b.publish = #{publish}
</if>
<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="getBookIdsByBooklistId" resultType="long" parameterType="long">
SELECT outer_book_id from applet_outer_booklist_config WHERE booklist_id=#{booklistId}
</select>
<select id="getBooklistCountsByBookId" parameterType="long" resultType="integer">
SELECT COUNT(1) from applet_outer_booklist_config WHERE outer_book_id=#{outerBookId}
</select>
<select id="getOuterBooklistPublish" resultType="string">
SELECT DISTINCT publish
FROM applet_outer_booklist
WHERE
publish IS NOT NULL
</select>
<select id="getBookListByBooklistId" parameterType="long" resultType="com.pcloud.book.applet.dto.AppletOuterBookDTO">
SELECT
b.id,
b.cover_img coverImg,
b.book_name bookName,
b.publish,
b.author,
b.isbn,
b.remark,
b.price,
b.link_type linkType,
b.link_url linkUrl,
b.create_time createTime
FROM
applet_outer_book b
LEFT JOIN applet_outer_booklist_config c ON b.id = c.outer_book_id
WHERE
c.booklist_id = #{booklistId}
</select>
<select id="getByIds" parameterType="list" resultType="com.pcloud.book.applet.dto.AppletOuterBooklistDTO">
SELECT
b.id id,
b.booklist_name booklistName,
b.user_name userName,
b.display_pic displayPic,
COUNT(c.id) bookCounts,
b.digest,
b.publish,
b.create_time createTime
FROM
applet_outer_booklist b
LEFT JOIN applet_outer_booklist_config c ON b.id = c.booklist_id
WHERE
b.id IN
<foreach collection="list" item="item" separator="," open="(" close=")" >
${item}
</foreach>
GROUP BY b.id
</select>
<delete id="batchDeleteOuterBookFromBooklist" parameterType="list">
DELETE FROM applet_outer_booklist_config
WHERE id IN
<foreach collection="list" item="item" separator="," open="(" close=")" >
${item}
</foreach>
</delete>
</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