Commit 2c56f0e8 by 郑勇

feat: [1003776] ERP与RAYS书刊关联相关优化

parent 0ec6851e
......@@ -16,6 +16,8 @@ public class BookDetialDTO implements Serializable {
private List<Long> bookIds;
@ApiModelProperty("渠道ID集合")
private List<Long> channelId;
@ApiModelProperty("编辑ID集合")
private List<Long> adviserIds;
public Long getAdviserId() {
return adviserId;
......@@ -41,6 +43,14 @@ public class BookDetialDTO implements Serializable {
this.channelId = channelId;
}
public List<Long> getAdviserIds() {
return adviserIds;
}
public void setAdviserIds(List<Long> adviserIds) {
this.adviserIds = adviserIds;
}
@Override
public String toString() {
return "BookDetialDTO{" +
......
......@@ -14,6 +14,7 @@ import com.pcloud.book.book.dto.BookInfoAndAuthStatusDTO;
import com.pcloud.book.book.dto.BookUniqueNumberDTO;
import com.pcloud.book.book.dto.CreateBookResultVO;
import com.pcloud.book.book.dto.CreateBookVO;
import com.pcloud.book.book.dto.MapResourceTotalCountDTO;
import com.pcloud.book.book.dto.QrcodeServeDto;
import com.pcloud.book.book.dto.RelateAdviserVO;
import com.pcloud.book.book.entity.Book;
......@@ -174,6 +175,14 @@ public interface BookBiz {
Map<Long, BookDto> listBaseByIds(List<Long> bookIds) throws BizException;
/**
* 批量获取书籍信息
* @param bookDetialDTO
* @return
* @throws BizException
*/
Map<String, BookDto> listBookGroupByBookIds(MapResourceTotalCountDTO bookDetailDTO) throws BizException;
/**
* 批量获取书籍信息(书名 分类ID)
* @param bookDetialDTO
* @return
......@@ -749,4 +758,6 @@ public interface BookBiz {
* * @param null
*/
void addSeriesBookRecord(SeriesBookRecord seriesBookRecord);
BookDto createBook4Erp(Book book);
}
......@@ -58,6 +58,7 @@ import com.pcloud.book.book.dto.BookUniqueNumberDTO;
import com.pcloud.book.book.dto.CreateBookResultVO;
import com.pcloud.book.book.dto.CreateBookVO;
import com.pcloud.book.book.dto.CreateQrcodeVO;
import com.pcloud.book.book.dto.MapResourceTotalCountDTO;
import com.pcloud.book.book.dto.QrcodeServeDto;
import com.pcloud.book.book.dto.RelateAdviserVO;
import com.pcloud.book.book.entity.Book;
......@@ -774,6 +775,24 @@ public class BookBizImpl implements BookBiz {
}
@Override
public Map<String, BookDto> listBookGroupByBookIds(MapResourceTotalCountDTO bookDetailDTO) throws BizException {
Map<String, BookDto> bookMap = Maps.newHashMap();
if (null != bookDetailDTO && !ListUtils.isEmpty(bookDetailDTO.getBookIds()) && !ListUtils.isEmpty(bookDetailDTO.getChannelIds()) && !ListUtils.isEmpty(bookDetailDTO.getAdviserIds())) {
Map<String, Object> paramMap = Maps.newHashMap();
paramMap.put("bookIds", bookDetailDTO.getBookIds());
paramMap.put("channelIds", bookDetailDTO.getChannelIds());
paramMap.put("adviserIds", bookDetailDTO.getAdviserIds());
List<BookDto> bookDtos = bookDao.listBookGroupByBookIds(paramMap);
if (!ListUtils.isEmpty(bookDtos)) {
for (BookDto bookDto : bookDtos) {
bookMap.put(bookDto.getBookId() + "_" + bookDto.getChannelId() + "_" + bookDto.getAdviserId(), bookDto);
}
}
}
return bookMap;
}
@Override
public Map<String, BookDto> listDetailByIds(BookDetialDTO bookDetialDTO) throws BizException {
Map<String, BookDto> bookMap = null;
if (null != bookDetialDTO && !(null == bookDetialDTO || ListUtils.isEmpty(bookDetialDTO.getBookIds()) || ListUtils.isEmpty(bookDetialDTO.getChannelId()))) {
......@@ -3571,13 +3590,34 @@ public class BookBizImpl implements BookBiz {
}
@Override
public void addSeriesBookRecord(SeriesBookRecord seriesBookRecord){
if (null == seriesBookRecord.getRecordType() || null == seriesBookRecord.getBookId()){
throw new BookBizException(BookBizException.PARAM_IS_NULL,"参数缺失");
public void addSeriesBookRecord(SeriesBookRecord seriesBookRecord) {
if (null == seriesBookRecord.getRecordType() || null == seriesBookRecord.getBookId()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "参数缺失");
}
//操作类型(1按钮曝光2按钮点击)
ThreadPoolUtils.OTHER_THREAD_POOL.execute(()->{
ThreadPoolUtils.OTHER_THREAD_POOL.execute(() -> {
seriesBookRecordDao.insert(seriesBookRecord);
});
}
@Override
@Transactional(rollbackFor = Exception.class)
public BookDto createBook4Erp(Book book) {
BookDto bookDto = this.create4Adviser(book);
if(book.getIsBookGroup() != null && book.getIsBookGroup()){
// 自动创建二维码
// 小睿二维码
BookGroupDTO bookGroupDTO = bookGroupBiz.getBookGroupInfoByBookId(book.getBookId(), book.getChannelId(), book.getCreatedUser(), null, null, 4);
BookGroup bookGroup = new BookGroup();
bookGroup.setId(bookGroupDTO.getId());
bookGroup.setAddFriendGuide("嗨,你好!我是您的专属学习助手。我会根据您的需求量身定制学习计划与学习内容,提高您的学习效率,提升您的语文学习能力");
bookGroup.setGroupQrcodeName(book.getBookName());
bookGroup.setGroupQrcodeLocationId(1);
bookGroup.setJoinGroupType(4);
bookGroupBiz.updateBookGroup(bookGroup);
}
return bookDto;
}
}
......@@ -90,6 +90,13 @@ public interface BookDao extends BaseDao<Book> {
Map<Long, BookDto> listBaseMapByIds(List<Long> bookIds);
/**
* 批量获取书籍信息
* @param paramMap
* @return
*/
List<BookDto> listBookGroupByBookIds(Map<String,Object> paramMap);
/**
* 获取详细信息
* @param paramMap
* @return
......
......@@ -94,6 +94,11 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
}
@Override
public List<BookDto> listBookGroupByBookIds(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("listBookGroupByBookIds"), paramMap);
}
@Override
public List<BookDto> listDetailByIds(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("listDetailByIds"), paramMap);
}
......
......@@ -5,8 +5,10 @@ package com.pcloud.book.book.facade;
import com.pcloud.book.book.dto.AdviserBookInfoDTO;
import com.pcloud.book.book.dto.BookAssocCount;
import com.pcloud.book.book.dto.BookDetialDTO;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.CreateBookVO;
import com.pcloud.book.book.dto.MapResourceTotalCountDTO;
import com.pcloud.book.book.dto.RelateAdviserVO;
import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.vo.ListNoAuthBookParam;
......@@ -769,6 +771,10 @@ public interface BookFacade {
public ResponseDto<Map<Long, BookDto>> listBaseByIds(@RequestBody(required = false) List<Long> bookIds)
throws BizException;
@ApiOperation("批量获取书籍信息")
@RequestMapping(value = "/listBookGroupByBookIds", method = RequestMethod.POST)
ResponseDto<Map<String, BookDto>> listBookGroupByBookIds(@RequestBody MapResourceTotalCountDTO bookDetailDTO) throws BizException;
@ApiOperation("获取书刊标签")
@RequestMapping(value = "/getLabelMapByIds", method = RequestMethod.POST)
public ResponseDto<Map<Long, String>> getLabelMapByIds(
......
......@@ -10,8 +10,10 @@ import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.biz.BookLabelBiz;
import com.pcloud.book.book.dto.AdviserBookInfoDTO;
import com.pcloud.book.book.dto.BookAssocCount;
import com.pcloud.book.book.dto.BookDetialDTO;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.CreateBookVO;
import com.pcloud.book.book.dto.MapResourceTotalCountDTO;
import com.pcloud.book.book.dto.RelateAdviserVO;
import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.SeriesBookRecord;
......@@ -1111,6 +1113,12 @@ public class BookFacadeImpl implements BookFacade {
}
@Override
@RequestMapping(value = "/listBookGroupByBookIds", method = RequestMethod.POST)
public ResponseDto<Map<String, BookDto>> listBookGroupByBookIds(@RequestBody MapResourceTotalCountDTO bookDetailDTO) throws BizException{
return new ResponseDto<>(bookBiz.listBookGroupByBookIds(bookDetailDTO));
}
@Override
@RequestMapping(value = "/getLabelMapByIds", method = RequestMethod.POST)
public ResponseDto<Map<Long, String>> getLabelMapByIds( @RequestBody List<Long> labelIds) throws BizException {
if(ListUtils.isEmpty(labelIds)){
......@@ -1220,10 +1228,20 @@ public class BookFacadeImpl implements BookFacade {
@ApiOperation("系列书查询记录埋点")
@PostMapping("addSeriesBookRecord")
public ResponseDto<?> addSeriesBookRecord(@CookieValue("userInfo") String userInfo, @RequestBody SeriesBookRecord seriesBookRecord){
Long wechatUserId = Cookie.getId(userInfo,Cookie._WECHAT_USER_ID);
public ResponseDto<?> addSeriesBookRecord(@CookieValue("userInfo") String userInfo, @RequestBody SeriesBookRecord seriesBookRecord) {
Long wechatUserId = Cookie.getId(userInfo, Cookie._WECHAT_USER_ID);
seriesBookRecord.setUserId(wechatUserId);
bookBiz.addSeriesBookRecord(seriesBookRecord);
return new ResponseDto<>();
}
/**
* 编辑新增书籍
*/
@ApiOperation("创建RAYS书刊(ERP)")
@PostMapping("createBook4Erp")
public ResponseDto<BookDto> createBook4Erp(@RequestBody Book book)
throws BizException, PermissionException {
return new ResponseDto<>(bookBiz.createBook4Erp(book));
}
}
......@@ -345,6 +345,38 @@
</foreach>
</select>
<select id="listBookGroupByBookIds" resultMap="bookMap" parameterType="list">
SELECT
b.BOOK_ID,
b.ISBN,
b.BOOK_NAME,
b.COVER_IMG,
b.SERIAL_NUMBER,
b.unique_number,
b.BOOK_NAME,
ba.adviser_id,
ba.channel_id,
bg.id BOOK_GROUP_ID,
IFNULL(bg.join_group_type, 0) join_group_type
FROM
book b
INNER JOIN book_adviser ba ON ba.BOOK_ID = b.BOOK_ID AND ba.IS_DELETE = 0
LEFT JOIN book_group bg ON bg.BOOK_ID = ba.BOOK_ID AND bg.create_user = ba.adviser_id AND bg.channel_id = ba.channel_id
WHERE
ba.BOOK_ID IN
<foreach collection="bookIds" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
AND ba.CHANNEL_ID IN
<foreach collection="channelIds" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
AND ba.ADVISER_ID IN
<foreach collection="adviserIds" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
</select>
<select id="listDetailByIds" resultMap="bookMap" parameterType="map">
SELECT
......
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