Commit 7a5bb907 by lixue123

做书流程优化

parent 599f8d34
package com.pcloud.book.book.dto;
import java.io.Serializable;
import java.util.List;
public class BookAdviserUpdateTimeDTO implements Serializable {
private Long bookId;
private Long adviserId;
private Long channelId;
private List<Long> bookIds;
public Long getBookId() {
return bookId;
}
public void setBookId(Long bookId) {
this.bookId = bookId;
}
public Long getAdviserId() {
return adviserId;
}
public void setAdviserId(Long adviserId) {
this.adviserId = adviserId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public List<Long> getBookIds() {
return bookIds;
}
public void setBookIds(List<Long> bookIds) {
this.bookIds = bookIds;
}
@Override
public String toString() {
return "BookAdviserUpdateTimeDTO{" +
"bookId=" + bookId +
", adviserId=" + adviserId +
", channelId=" + channelId +
", bookIds=" + bookIds +
'}';
}
}
......@@ -369,16 +369,75 @@ public class BookDto extends BaseDto {
* 待审核数量
*/
private Long noAuditNum;
private String transferor;
// 二维码相关信息
private String qrcodeUrl;
/**
* 转让方
* 配置服务个数
*/
private String transferor;
private Integer messageCount;
/**
* 印码位置
*/
private String location;
/**
* 二维码名字
*/
private String sceneName;
/**
* 二维码导读字段
*/
private String qrRemark;
public String getQrRemark() {
return qrRemark;
}
public void setQrRemark(String qrRemark) {
this.qrRemark = qrRemark;
}
public String getSceneName() {
return sceneName;
}
public void setSceneName(String sceneName) {
this.sceneName = sceneName;
}
public String getQrcodeUrl() {
return qrcodeUrl;
}
public void setQrcodeUrl(String qrcodeUrl) {
this.qrcodeUrl = qrcodeUrl;
}
public Integer getMessageCount() {
return messageCount;
}
public void setMessageCount(Integer messageCount) {
this.messageCount = messageCount;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getTransferor() { return transferor; }
public void setTransferor(String transferor) { this.transferor = transferor; }
public Long getNoAuditNum() {
return noAuditNum;
}
......
......@@ -3,17 +3,6 @@
*/
package com.pcloud.book.book.facade;
import java.util.List;
import org.codehaus.jackson.JsonParseException;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.CookieValue;
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.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.pcloud.book.book.dto.BookAssocCount;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.Book;
......@@ -21,11 +10,15 @@ import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean;
import com.pcloud.common.permission.PermissionException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.codehaus.jackson.JsonParseException;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @描述:书籍接口
......@@ -271,6 +264,12 @@ public interface BookFacade {
@RequestParam(value = "templetId", required = false) Long templetId)
throws BizException, PermissionException, JsonParseException;
@ApiOperation(value = "首页获取正在做的图书",httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "num",value = "个数",dataType = "Integer",paramType = "query")})
@GetMapping("getList4Adviser")
ResponseDto<List<BookDto>> getList4Adviser(@RequestHeader("token") String token,@RequestParam(value = "num",required = true) Integer num)throws BizException, PermissionException, JsonParseException;
/**
* 获取书籍的详细信息(微信客户端)
*
......@@ -789,9 +788,9 @@ public interface BookFacade {
@ApiImplicitParam(name = "typeCode", value = "图书类型", dataType = "string", paramType = "query")})
@RequestMapping(value = "getByIsbnAndTypeCode", method = RequestMethod.GET)
public ResponseDto<BookDto> getByIsbnAndTypeCode(@RequestHeader("token") String token,
@RequestParam(value = "isbn", required = false) String isbn,
@RequestParam(value = "typeCode", required = false) String typeCode)
throws BizException, PermissionException, JsonParseException;
@RequestParam(value = "isbn") String isbn,
@RequestParam(value = "typeCode") String typeCode)
throws BizException, PermissionException, JsonParseException ;
/**
* 新增书籍(编辑)
......@@ -849,4 +848,15 @@ public interface BookFacade {
@RequestMapping(value = "checkISBN4App", method = RequestMethod.GET)
ResponseDto<Boolean> checkISBN4App(@RequestHeader("token") String token, @RequestParam String isbn) throws PermissionException;
@ApiOperation(value = "根据渠道ID分页获取图书列表",httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "String", paramType = "header"),
@ApiImplicitParam(name = "channelId", value = "渠道标识", dataType = "Long", paramType = "query"),
@ApiImplicitParam(name = "currentPage", value = "当前页数", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "numPerPage", value = "每页条数", dataType = "int", paramType = "query") })
@GetMapping("getBookListByChannelId4Adviser")
ResponseDto<PageBean> getBookListByChannelId4Adviser(@RequestHeader("token") String token, @RequestParam(value =
"currentPage", required = true) Integer currentPage, @RequestParam(value = "numPerPage", required = true)
Integer numPerPage, @RequestParam(value = "channelId", required = true) Long channelId) throws
PermissionException, JsonParseException, BizException;
}
......@@ -3,6 +3,7 @@
*/
package com.pcloud.book.book.service;
import com.pcloud.book.book.dto.BookAdviserUpdateTimeDTO;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
......@@ -178,5 +179,17 @@ public interface BookService {
@RequestParam(value = "adviserId") Long adviserId,
@RequestParam(value = "channelId") Long channelId,
@RequestParam(value = "bookId") Long bookId) throws BizException;
@ApiOperation(value = "修改图书时间", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "bookId", value = "图书标识", dataType = "long", paramType = "query")})
@RequestMapping(value = "/updateTimeById", method = RequestMethod.GET)
public void updateTimeById(@RequestParam(value = "bookId")Long bookId)throws BizException;
@ApiOperation(value = "修改图书时间--批量", httpMethod = "POST")
@ApiImplicitParams({
@ApiImplicitParam(name = "bookIds", value = "图书标识", dataType = "List<Long>", paramType = "body")})
@RequestMapping(value = "/updateTimeByIds", method = RequestMethod.POST)
public void updateTimeByIds(@RequestBody BookAdviserUpdateTimeDTO bookAdviserUpdateTimeDTO)throws BizException;
}
......@@ -7,6 +7,7 @@ import java.io.IOException;
import java.util.List;
import java.util.Map;
import com.pcloud.book.book.dto.BookAdviserUpdateTimeDTO;
import com.pcloud.book.book.dto.BookAssocCount;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.Book;
......@@ -176,6 +177,14 @@ public interface BookBiz {
PageBean getListPage4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException;
/**
* 首页展示正在做的图书
* @param adviserId
* @param num
* @return
* @throws BizException
*/
List<BookDto> getList4Adviser(Long adviserId,Integer num) throws BizException;
/**
* 微信端获取书籍列表(编辑)
*
* @param paramMap
......@@ -472,4 +481,26 @@ public interface BookBiz {
* @return
*/
Boolean checkISBN4App(String isbn);
/**
* @param partyId 编辑ID
* @param channelId 渠道ID
* @param pageParam 分页参数
* @return
* @throws BizException
*/
PageBean getBookBaseInfoListByChannelId4Adviser(Long partyId,Long channelId,PageParam pageParam) throws BizException;
/**
* 修改时间
* @param bookId
* @throws BizException
*/
void updateTimeById(Long bookId)throws BizException;
/**
* 根据ID批量修改时间
* @param bookAdviserUpdateTimeDTO
* @throws BizException
*/
void updateTimeByIds(BookAdviserUpdateTimeDTO bookAdviserUpdateTimeDTO)throws BizException;
}
......@@ -3,11 +3,12 @@
*/
package com.pcloud.book.book.biz;
import java.util.List;
import com.pcloud.book.book.dto.BookTypeDto;
import com.pcloud.common.exceptions.BizException;
import java.util.List;
import java.util.Map;
/**
* @描述:
*
......
......@@ -3,25 +3,6 @@
*/
package com.pcloud.book.book.biz.impl;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import com.pcloud.common.core.constant.AgentTypeEnum;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto;
......@@ -29,30 +10,23 @@ import com.pcloud.appcenter.base.exception.AppBizException;
import com.pcloud.book.base.enums.BookFreezeEnum;
import com.pcloud.book.base.enums.BookTypeEnum;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookAdviserBiz;
import com.pcloud.book.book.biz.BookAppBiz;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.biz.BookFreezeBiz;
import com.pcloud.book.book.biz.BookFundBiz;
import com.pcloud.book.book.biz.BookProductBiz;
import com.pcloud.book.book.biz.BookResourceBiz;
import com.pcloud.book.book.biz.*;
import com.pcloud.book.book.cache.BookCache;
import com.pcloud.book.book.constant.BookConstant;
import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dto.BookAssocCount;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.BookFreezeDto;
import com.pcloud.book.book.dto.BookFundDto;
import com.pcloud.book.book.dto.*;
import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.set.BookSet;
import com.pcloud.book.consumer.analysisengine.SceneRecordConsr;
import com.pcloud.book.consumer.app.AssistTempletConsr;
import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import com.pcloud.book.consumer.isbn.IsbnConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.user.AgentConsr;
import com.pcloud.book.consumer.user.ChannelConsr;
import com.pcloud.book.consumer.user.PartyConsr;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.core.constant.AgentTypeEnum;
import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.exceptions.BizException;
......@@ -62,6 +36,18 @@ 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 org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
/**
* @描述:书籍业务层接口实现类
......@@ -108,6 +94,8 @@ public class BookBizImpl implements BookBiz {
private PartyConsr partyConsr;
@Autowired
private BookFreezeBiz bookFreezeBiz;
@Autowired
private AssistTempletConsr assistTempletConsr;
/**
* 创建书籍,同时建立与编辑的推广关系
......@@ -479,6 +467,10 @@ public class BookBizImpl implements BookBiz {
bookSet.setFreezeStatus(bookDto);
// 设置父模板标识
bookSet.setTempleParentId(bookDto);
// 设置模板名字
bookSet.setTemplateName(bookDto);
// 设置二维码个数
bookDto.setQrcodeCount(qrcodeSceneConsr.getBookQRCountByMap(adviserId,channelId,bookId));
LOGGER.info("【书籍基础】获取单个书籍基础信息(包含统计信息),<END>");
return bookDto;
}
......@@ -555,7 +547,7 @@ public class BookBizImpl implements BookBiz {
Integer freezeStatus = BookFreezeEnum.WAIT_FREEZE.value;
Boolean isFundSupport = false;
BookFreezeDto bf = bookFreezeBiz.getById(bookDto.getBookId());
String transferor = bf == null ?null:bf.getTransferor();
String transferor = bf == null ? null : bf.getTransferor();
if (!ListUtils.isEmpty(bookFunds)) {
for (BookFundDto bookFundDto : bookFunds) {
if(StringUtil.isEmpty(transferor)){
......@@ -631,6 +623,13 @@ public class BookBizImpl implements BookBiz {
@Override
public PageBean getListPage4Adviser(Map<String, Object> paramMap, PageParam pageParam, Long adviserId) throws BizException {
LOGGER.info("【书籍应用】获取书籍列表,<START>.[paramMap]=" + paramMap.toString());
Long templeId = (Long) paramMap.get("templetId");
if(null != templeId){
List<Long> ids = assistTempletConsr.getChildIdListByParentId(templeId);
if(!ListUtils.isEmpty(ids)){
paramMap.put("templeIds",ids);
}
}
PageBean pageBean = bookDao.listPage(pageParam, paramMap, "getListPage4Adviser");
if (pageBean == null || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(0, 0, new ArrayList<>());
......@@ -646,10 +645,38 @@ public class BookBizImpl implements BookBiz {
bookSet.setIsRelationQrcodeAndCount(pageBean.getRecordList(),adviserId);
//设置图书收益
bookSet.setBookIncome(pageBean.getRecordList());
// 设置二维码相关信息
bookSet.setQrInfo(pageBean.getRecordList());
LOGGER.info("【书籍应用】获取书籍列表,<END>");
return pageBean;
}
@ParamLog(description = "首页展示正在做的图书")
@Override
public List<BookDto> getList4Adviser(Long adviserId, Integer num) throws BizException {
Map<String,Object> paramMap = Maps.newHashMap();
paramMap.put("adviserId",adviserId);
paramMap.put("num",num);
paramMap.put("isbns",BookConstant.DEFAULT_BOOK_ISBN);
List<BookDto> bookDtos = bookDao.getList4Adviser(paramMap);
if(!ListUtils.isEmpty(bookDtos)){
// 填充渠道基础信息
bookSet.setChannelInfoList(Lists.newArrayList(bookDtos));
bookSet.setBookSvUvPv4Object(Lists.newArrayList(bookDtos));
// 填充模板信息
bookSet.setTemplateName(Lists.newArrayList(bookDtos));
// 设置是否被冻结
bookSet.setFreezeStatus(Lists.newArrayList(bookDtos));
// 设置图书是否关联二维码
bookSet.setIsRelationQrcodeAndCount(Lists.newArrayList(bookDtos),adviserId);
//设置图书收益
bookSet.setBookIncome(Lists.newArrayList(bookDtos));
// 设置二维码相关信息
bookSet.setQrInfo(Lists.newArrayList(bookDtos));
}
return bookDtos;
}
/**
* 微信端获取书籍列表(编辑)
*/
......@@ -1263,6 +1290,8 @@ public class BookBizImpl implements BookBiz {
LOGGER.info("导出平台下所有书刊excel表(平台端)<END>");
}
/**
* 获取图书基本信息(编辑 - 运营 - 图书)
*/
......@@ -1292,12 +1321,11 @@ public class BookBizImpl implements BookBiz {
throw new AppBizException(AppBizException.PARAM_IS_NULL, "请选择书刊");
}
BookDto bookDto = bookDao.getByIsbn(isbn);
if (BookTypeEnum.BOOK.value.equals(typeCode) && bookDto == null) {
/* if (BookTypeEnum.BOOK.value.equals(typeCode) && bookDto == null) {
// 调用外部接口查询书籍信息
insertBook(isbn);
bookDto = bookDao.getByIsbn(isbn);
}
}*/
LOGGER.info("【书刊基础】根据ISBN获取书刊信息,<END>.[bookDto]=" + bookDto);
return bookDto;
}
......@@ -1377,9 +1405,58 @@ public class BookBizImpl implements BookBiz {
bookSet.checkISBNEx(BookTypeEnum.BOOK.value, isbn);
return true;
}
Long getAgentIdByType(){
Long checkAgentId = agentConsr.getAgentIdByType(AgentTypeEnum.AGENT_TYPE_WYS.getCode());
return checkAgentId;
}
/**
* 根据渠道ID分页获取图书列表
*/
@ParamLog(description = "根据渠道ID分页获取图书列表")
@Override
public PageBean getBookBaseInfoListByChannelId4Adviser(Long partyId,Long channelId, PageParam pageParam) throws BizException {
Map<String,Object> paramMap = Maps.newHashMap();
paramMap.put("adviserId",partyId);
paramMap.put("channelId",channelId);
/*paramMap.put("typeCode",BookTypeEnum.BOOK.value);*/
PageBean pageBean = bookDao.listPage(pageParam, paramMap, "getListPage4Adviser");
if (null == pageBean || ListUtils.isEmpty(pageBean.getRecordList())) {
return new PageBean(0, 0, Lists.newArrayList());
}else{
// 设置模板名字
bookSet.setTemplateName(pageBean.getRecordList());
}
return pageBean;
}
@Transactional(rollbackFor = Exception.class)
@ParamLog(description = "根据ID修改时间")
@Override
public void updateTimeById(Long bookId) throws BizException {
if(null == bookId){
return;
}
Map<String,Object> paramMap = Maps.newHashMap();
paramMap.put("bookId",bookId);
bookDao.updateTimeById(paramMap);
}
@Transactional(rollbackFor = Exception.class)
@ParamLog(description = "批量根据ID修改时间")
@Override
public void updateTimeByIds(BookAdviserUpdateTimeDTO bookAdviserUpdateTimeDTO) throws BizException {
if(ListUtils.isEmpty(bookAdviserUpdateTimeDTO.getBookIds()) && null == bookAdviserUpdateTimeDTO.getBookId() ){
return;
}
Map<String,Object> paramMap = Maps.newHashMap();
paramMap.put("adviserId",bookAdviserUpdateTimeDTO.getAdviserId());
paramMap.put("channelId",bookAdviserUpdateTimeDTO.getChannelId());
if(null != bookAdviserUpdateTimeDTO.getBookId()){
paramMap.put("bookId",bookAdviserUpdateTimeDTO.getBookId());
}else{
paramMap.put("bookIds",bookAdviserUpdateTimeDTO.getBookIds());
}
bookDao.updateTimeByIds(paramMap);
}
}
......@@ -244,4 +244,23 @@ public interface BookDao extends BaseDao<Book> {
*/
BookDto getByIsbnAndSnum(String isbn, String serialNumber);
/**
* 获取图书信息
* @param param
* @return
*/
List<BookDto> getList4Adviser(Map<String, Object> param);
/**
* 修改时间
* @param param
*/
void updateTimeById(Map<String, Object> param);
/**
* 批量修改时间
* @param param
*/
void updateTimeByIds(Map<String, Object> param);
}
......@@ -3,17 +3,16 @@
*/
package com.pcloud.book.book.dao.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import com.google.common.collect.Maps;
import com.pcloud.book.book.dao.BookDao;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.entity.Book;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @描述:书籍数据访问层实现类
......@@ -243,5 +242,19 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
paramMap.put("serialNumber", serialNumber);
return super.getSqlSession().selectOne(this.getStatement("getByIsbnAndSnum"), paramMap);
}
@Override
public List<BookDto> getList4Adviser(Map<String, Object> param) {
return super.getSqlSession().selectList(this.getStatement("getListPage4Adviser"),param);
}
@Override
public void updateTimeById(Map<String, Object> param) {
super.getSqlSession().update(super.getStatement("updateTimeById"),param);
}
@Override
public void updateTimeByIds(Map<String, Object> param) {
super.getSqlSession().update(super.getStatement("updateTimeByIds"),param);
}
}
......@@ -3,26 +3,8 @@
*/
package com.pcloud.book.book.facade.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CookieValue;
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.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.dubbo.rpc.protocol.rest.support.ContentType;
import com.google.common.collect.Lists;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.dto.BookAssocCount;
......@@ -37,8 +19,20 @@ import com.pcloud.common.page.PageParam;
import com.pcloud.common.permission.Permission;
import com.pcloud.common.permission.PermissionCode.ServerPermissionCode;
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 org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @描述:书籍接口实现类
......@@ -270,6 +264,14 @@ public class BookFacadeImpl implements BookFacade {
return new ResponseDto<>(pageBean);
}
@GetMapping("getList4Adviser")
@Override
public ResponseDto<List<BookDto>> getList4Adviser(@RequestHeader("token") String token,@RequestParam(value = "num",required = true) Integer num) throws BizException, PermissionException, JsonParseException {
Long adviserId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
List<BookDto> bookDtos = bookBiz.getList4Adviser(adviserId,num);
return new ResponseDto<>(ListUtils.isEmpty(bookDtos)? Lists.newArrayList():bookDtos);
}
/**
* 获取书籍详细信息
*/
......@@ -703,4 +705,18 @@ public class BookFacadeImpl implements BookFacade {
Boolean bool=bookBiz.checkISBN4App(isbn);
return new ResponseDto<>(bool);
}
/**
* 根据渠道ID分页获取图书列表
*/
@Override
@GetMapping("getBookListByChannelId4Adviser")
public ResponseDto<PageBean> getBookListByChannelId4Adviser(@RequestHeader("token") String token, @RequestParam(value =
"currentPage", required = true) Integer currentPage, @RequestParam(value = "numPerPage", required = true)
Integer numPerPage, @RequestParam(value = "channelId", required = true) Long channelId) throws
PermissionException, JsonParseException, BizException {
Long partyId = (Long) SessionUtil.getVlaue(token,SessionUtil.PARTY_ID);
PageParam pageParam = new PageParam(currentPage,numPerPage);
return new ResponseDto<PageBean>(bookBiz.getBookBaseInfoListByChannelId4Adviser(partyId,channelId,pageParam));
}
}
......@@ -28,11 +28,11 @@ public class BookFreezeServiceImpl implements BookFreezeService{
return ResponseHandleUtil.toResponse(isFreeze);
}
@GetMapping("getById")
@Override
public ResponseEntity<ResponseDto<BookFreezeDto>> getById(@RequestParam(value = "bookId", required = false) Long bookId) throws BizException {
BookFreezeDto byId = bookFreezeBiz.getById(bookId);
return ResponseHandleUtil.toResponse(byId == null? new BookFreezeDto():byId);
BookFreezeDto bfd = bookFreezeBiz.getById(bookId);
return ResponseHandleUtil.toResponse(bfd== null? new BookFreezeDto():bfd);
}
}
......@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.pcloud.book.book.biz.BookBiz;
import com.pcloud.book.book.dto.BookAdviserUpdateTimeDTO;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.service.BookService;
import com.pcloud.common.dto.ResponseDto;
......@@ -133,4 +134,16 @@ public class BookServiceImpl implements BookService {
return ResponseHandleUtil.toResponse(bookBiz.getBookById(adviserId, channelId, bookId));
}
@Override
@RequestMapping(value = "/updateTimeById", method = RequestMethod.GET)
public void updateTimeById(@RequestParam(value = "bookId")Long bookId) throws BizException {
bookBiz.updateTimeById(bookId);
}
@Override
@RequestMapping(value = "/updateTimeByIds", method = RequestMethod.POST)
public void updateTimeByIds(@RequestBody BookAdviserUpdateTimeDTO bookAdviserUpdateTimeDTO) throws BizException {
bookBiz.updateTimeByIds(bookAdviserUpdateTimeDTO);
}
}
......@@ -62,6 +62,9 @@ import com.pcloud.book.consumer.user.PartyConsr;
import com.pcloud.book.consumer.voicemessage.MerchantVideoConsr;
import com.pcloud.book.mq.config.MqConfig;
import com.pcloud.channelcenter.base.constants.MessageFromTypeEnum;
import com.pcloud.channelcenter.qrcode.dto.QrcodeLocationDto;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrVO;
import com.pcloud.comment.base.enums.SysCodeEnum;
import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.exceptions.BizException;
......@@ -69,6 +72,7 @@ import com.pcloud.common.utils.BookUtils;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.number.AmountUtil;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
......@@ -1012,6 +1016,7 @@ public class BookSet {
AssistTempletDTO assistTempletDTO = assistTempletIds.get(bookDto.getTempletId());
if (assistTempletDTO != null) {
bookDto.setTempletName(assistTempletDTO.getTempletName());
bookDto.setQrRemark(assistTempletDTO.getRemark());
}
}
}
......@@ -1305,6 +1310,49 @@ public class BookSet {
}
/**
* 设置二维码相关信息
* @param recordList
*/
public void setQrInfo(List<Object> recordList){
if (ListUtils.isEmpty(recordList)) {
return;
}
List<BookAssocLastQrAskVO> bookAssocLastQrAskVOS = Lists.newArrayList();
BookAssocLastQrAskVO bookAssocLastQrAskVO = null;
for(Object object:recordList){
BookDto bookDto = (BookDto) object;
bookAssocLastQrAskVO = new BookAssocLastQrAskVO();
bookAssocLastQrAskVO.setAdviserId(bookDto.getAdviserId());
bookAssocLastQrAskVO.setBookId(bookDto.getBookId());
bookAssocLastQrAskVO.setChannelId(bookDto.getChannelId());
bookAssocLastQrAskVOS.add(bookAssocLastQrAskVO);
}
if(ListUtils.isEmpty(bookAssocLastQrAskVOS)){
return;
}
Map<String,BookAssocLastQrVO> bookAssocLastQrVOMap = qrcodeSceneConsr.getLastQrInfoByBookIds(bookAssocLastQrAskVOS);
if(MapUtils.isEmpty(bookAssocLastQrVOMap)){
return;
}
for(Object object:recordList){
BookDto bookDto = (BookDto) object;
String key = bookDto.getBookId()+"_"+bookDto.getChannelId();
BookAssocLastQrVO bookAssocLastQrVO = bookAssocLastQrVOMap.get(key);
if(null != bookAssocLastQrVO){
bookDto.setQrcodeUrl(bookAssocLastQrVO.getQrcodeUrl());
bookDto.setMessageCount(bookAssocLastQrVO.getCount());
List<QrcodeLocationDto> qrcodeLocationDtos = bookAssocLastQrVO.getQrcodeLocations();
String localtion = null;
if(!ListUtils.isEmpty(qrcodeLocationDtos)){
localtion = StringUtil.isEmpty(qrcodeLocationDtos.get(0).getLocationName())?qrcodeLocationDtos.get(0).getLocationRemark():qrcodeLocationDtos.get(0).getLocationName();
}
bookDto.setLocation(localtion);
bookDto.setSceneName(bookAssocLastQrVO.getSceneName());
bookDto.setSceneId(bookAssocLastQrVO.getSceneId());
}
}
}
/**
* 设置图书收益
*
* @param recordList
......@@ -1476,4 +1524,25 @@ public class BookSet {
}
LOGGER.info("设置父模板标识.setTempleParentId.<END>.[bookDto]:"+bookDto);
}
/**
* 设置父模板标识
* @param bookDto
*/
public void setTempleParentIdAndTempletName(BookDto bookDto){
LOGGER.info("设置分类名称..<START>.[bookDto]:"+bookDto);
if(null != bookDto && null != bookDto.getTempletId()){
List<Long> assistTempletIds = Lists.newArrayList();
assistTempletIds.add(bookDto.getTempletId());
Map<Long, AssistTempletDTO> templeMap = assistTempletConsr.mapByIds(assistTempletIds);
if(!MapUtils.isEmpty(templeMap)){
AssistTempletDTO templetDTO = templeMap.get(bookDto.getTempletId());
if(null != templetDTO){
bookDto.setTempletName(templetDTO.getTempletName());
bookDto.setTempleParentId(templetDTO.getParentId());
}
}
}
LOGGER.info("设置父模板标识.setTempletName.<END>.[bookDto]:"+bookDto);
}
}
......@@ -4,6 +4,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.pcloud.common.core.aspect.ParamLog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -18,7 +19,7 @@ import com.pcloud.common.utils.ResponseHandleUtil;
/**
* 模板外部接口调用
*
*
* @author lili
* @date 创建时间:2017年11月10日 上午11:17:39
*/
......@@ -34,7 +35,7 @@ public class AssistTempletConsr {
/**
* 获取模板基本信息
*
*
* @param appIds
* @param object
* @return
......@@ -57,4 +58,19 @@ public class AssistTempletConsr {
}
return assistTempletDTOs;
}
@ParamLog(description = "根据父项获取子项模板ID集合")
public List<Long> getChildIdListByParentId(Long parentId){
if(null == parentId){
return null;
}
List<Long> ids = null;
try {
ids = ResponseHandleUtil.parseListResponse(assistTempletService.getChildIdBy(parentId),Long.class);
} catch (BizException e) {
LOGGER.error("获取模板基本信息[assistTempletService.mapByIds]:" + e.getMessage(), e);
}
return ids;
}
}
......@@ -16,10 +16,23 @@ import org.springframework.stereotype.Component;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.channelcenter.qrcode.dto.DefaultTempletQrcode;
import com.pcloud.channelcenter.qrcode.service.QrcodeSceneService;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrVO;
import com.pcloud.channelcenter.qrcode.vo.BookAssocQRcountRequestVO;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @描述:二维码中间件
......@@ -221,7 +234,7 @@ public class QrcodeSceneConsr {
}
LOGGER.info("【二维码-渠道(消)】 根据图书恢复二维码,<END>");
}
/**
* 获取图书待审核二维码
*/
......@@ -232,7 +245,7 @@ public class QrcodeSceneConsr {
}
Map<Long, Long> result = null;
try {
result = ResponseHandleUtil.parseMapResponse(qrcodeSceneService.getCountMapByBookIds(bookIds),Long.class,Long.class);
result = ResponseHandleUtil.parseMapResponse(qrcodeSceneService.getCountMapByBookIds(bookIds),Long.class,Long.class);
} catch (BizException e) {
LOGGER.warn("【二维码-渠道(消)】 获取图书待审核二维码[qrcodeSceneService.getCountMapByBookIds]失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
......@@ -245,4 +258,44 @@ public class QrcodeSceneConsr {
return result;
}
/**
* 获取图书最近关联二维码信息
*/
public Map<String, BookAssocLastQrVO> getLastQrInfoByBookIds(List<BookAssocLastQrAskVO> bookAssocLastQrAskVOs) throws BizException {
LOGGER.info("【二维码-渠道(消)】获取图书最近关联二维码信息,<START>.[bookAssocLastQrAskVOs]=" + bookAssocLastQrAskVOs);
if (ListUtils.isEmpty(bookAssocLastQrAskVOs)) {
return null;
}
Map<String, BookAssocLastQrVO> result = null;
try {
result = ResponseHandleUtil.parseMapResponse(qrcodeSceneService.getLastQrInfoByBookIds(bookAssocLastQrAskVOs),String.class,BookAssocLastQrVO.class);
} catch (BizException e) {
LOGGER.warn("【二维码-渠道(消)】 获取图书最近关联二维码信息[qrcodeSceneService.getLastQrInfoByBookIds]失败:" + e.getMessage(), e);
throw new BizException(e.getCode(), e.getMessage());
} catch (Exception e) {
LOGGER.error("【二维码-渠道(消)】 获取图书最近关联二维码信息[qrcodeSceneService.getLastQrInfoByBookIds],<ERROR>.[create]:" + e.getMessage(),
e);
throw new BookBizException(BookBizException.INVOKE_CHANNEL_ERROR, " 获取图书最近关联二维码信息失败~!");
}
LOGGER.info("【二维码-渠道(消)】 获取图书最近关联二维码信息,<END>");
return result;
}
@ParamLog(description = "获取图书关联二维码个数")
public Integer getBookQRCountByMap(Long adviserId,Long channelId,Long bookId)throws BizException{
Integer count = 0;
BookAssocQRcountRequestVO bookAssocQRcountRequestVO = new BookAssocQRcountRequestVO();
bookAssocQRcountRequestVO.setAdviserId(adviserId);
bookAssocQRcountRequestVO.setBookId(bookId);
bookAssocQRcountRequestVO.setChannelId(channelId);
try {
count = ResponseHandleUtil.parseResponse(qrcodeSceneService.getBookQRCountByMap(bookAssocQRcountRequestVO),Integer.class);
} catch (BizException e) {
LOGGER.error("【二维码-渠道(消)】 获取图书关联二维码个数[qrcodeSceneService.getBookQRCountByMap],<ERROR>.[create]:" + e.getMessage(),
e);
throw new BookBizException(BookBizException.INVOKE_CHANNEL_ERROR, " 获取图书关联二维码个数失败~!");
}
return count;
}
}
......@@ -411,6 +411,10 @@
AND
B.PUBLISH LIKE CONCAT('%', #{publish},'%')
</if>
<if test="fundName!=null">
AND
BF.FUND_NAME LIKE CONCAT('%', #{fundName},'%')
</if>
) a
</select>
......@@ -465,13 +469,23 @@
AND
BF.BOOK_FUND_ID IS NOT NULL
</if>
<if test="templetId!=null">
<if test="templeIds!=null">
AND
A.TEMPLET_ID = #{templetId}
A.TEMPLET_ID in
<foreach collection="templeIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
<if test="isbns != null">
AND
B.ISBN <![CDATA[ <> ]]> ${isbns}
</if>
GROUP BY A.BOOK_ID, A.CHANNEL_ID
ORDER BY
A.CREATED_DATE DESC
A.LAST_MODIFIED_DATE DESC
<if test="num != null">
LIMIT ${num}
</if>
</select>
<!-- 获取书籍列表(编辑) -->
......@@ -914,5 +928,26 @@
WHERE
BOOK_ID = #{bookId, jdbcType=BIGINT}
</update>
<update id="updateTimeById" parameterType="map">
UPDATE BOOK SET LAST_MODIFIED_DATE = NOW() WHERE BOOK_ID = #{bookId, jdbcType=BIGINT}
</update>
<update id="updateTimeByIds" parameterType="map">
UPDATE BOOK_ADVISER SET LAST_MODIFIED_DATE = NOW() WHERE
ADVISER_ID = #{adviserId}
<if test="channelId != null">
and CHANNEL_ID = #{channelId}
</if>
<if test="bookId != null">
AND BOOK_ID = #{bookId}
</if>
<if test="bookIds != null">
AND BOOK_ID in
<foreach collection="bookIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</update>
</mapper>
\ No newline at end of file
......@@ -382,6 +382,7 @@
<if test="templetId != null">
,TEMPLET_ID = #{templetId}
</if>
,LAST_MODIFIED_DATE = NOW()
WHERE
BOOK_ID = #{bookId, jdbcType=BIGINT}
<if test="adviserId != null">
......
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