Commit 3ae4c87e by 刘群

1002168出版收益

parent 1fe6ae72
......@@ -603,6 +603,16 @@ public class BookDto extends BaseDto {
*/
private Long areaLabelId;
/**
* 出版社收益
*/
private BigDecimal agentIncome;
/**
* 编辑收益
*/
private BigDecimal adviserIncome;
public String getQrRemark() {
return qrRemark;
}
......@@ -1607,6 +1617,22 @@ public class BookDto extends BaseDto {
this.areaLabelId = areaLabelId;
}
public BigDecimal getAgentIncome() {
return agentIncome;
}
public void setAgentIncome(BigDecimal agentIncome) {
this.agentIncome = agentIncome;
}
public BigDecimal getAdviserIncome() {
return adviserIncome;
}
public void setAdviserIncome(BigDecimal adviserIncome) {
this.adviserIncome = adviserIncome;
}
@Override
public String toString() {
return "BookDto{" +
......@@ -1728,6 +1754,8 @@ public class BookDto extends BaseDto {
", subLabelId=" + subLabelId +
", verLabelId=" + verLabelId +
", areaLabelId=" + areaLabelId +
", agentIncome=" + agentIncome +
", adviserIncome=" + adviserIncome +
"} " + super.toString();
}
}
......@@ -13,6 +13,7 @@ import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.dto.BookInfoAndAuthStatusDTO;
import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.book.vo.BookSaleVO;
import com.pcloud.book.book.vo.ListNoAuthBookParam;
import com.pcloud.book.book.vo.ListNoAuthGroupBookParam;
import com.pcloud.common.exceptions.BizException;
......@@ -591,4 +592,14 @@ public interface BookBiz {
*/
Map<Integer,List<BookLabel>> getBookLabels();
/**
* 书刊收益列表-出版端
*/
PageBeanNew<BookSaleVO> listPageIncomeDetail(PageParam pageParam, Map<String, Object> paramMap, Long agentId);
/**
* 导出书刊收益--出版端
*/
void exportBookIncomeDetail(Map<String, Object> paramMap, Long agentId, Long partyId, String systemCode);
}
......@@ -41,12 +41,15 @@ import com.pcloud.book.book.entity.BookAdviser;
import com.pcloud.book.book.entity.BookLabel;
import com.pcloud.book.book.set.BookSet;
import com.pcloud.book.book.tools.BookTools;
import com.pcloud.book.book.vo.BookSaleVO;
import com.pcloud.book.book.vo.ListNoAuthBookParam;
import com.pcloud.book.book.vo.ListNoAuthGroupBookParam;
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.common.ExportConsr;
import com.pcloud.book.consumer.isbn.IsbnConsr;
import com.pcloud.book.consumer.message.MessageConsr;
import com.pcloud.book.consumer.raystask.MainLineConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.user.AgentConsr;
......@@ -62,20 +65,28 @@ import com.pcloud.book.util.common.ThreadPoolUtils;
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.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.exceptions.ExportException;
import com.pcloud.common.page.PageBean;
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.ResponseHandleUtil;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.commoncenter.export.dto.ExportDto;
import com.pcloud.commoncenter.export.service.ExportService;
import com.pcloud.settlementcenter.record.exceptions.RecordException;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
......@@ -152,6 +163,12 @@ public class BookBizImpl implements BookBiz {
@Autowired
private BookLabelDao bookLabelDao;
@Autowired
private ExportService exportService;
@Autowired
private ExportConsr exportConsr;
@Autowired
private MessageConsr messageConsr;
/**
* 创建书籍,同时建立与编辑的推广关系
......@@ -1798,4 +1815,79 @@ public class BookBizImpl implements BookBiz {
}
return map;
}
@ParamLog("书刊收益列表--出版端")
@Override
public PageBeanNew<BookSaleVO> listPageIncomeDetail(PageParam pageParam, Map<String, Object> paramMap, Long agentId) {
List<Long> adviserIds = adviserConsr.getIdsByNameAndAgentId(agentId, (String) paramMap.get("keyWord"));
List<Long> agent4AdviserIds = adviserConsr.getIdsByNameAndAgentId(agentId, null);
paramMap.put("adviserIds", adviserIds);
paramMap.put("agent4AdviserIds", agent4AdviserIds);
if (ListUtils.isEmpty(agent4AdviserIds)) {
return new PageBeanNew<>(0, 0, new ArrayList<>());
}
PageBeanNew<BookSaleVO> pageNew = bookDao.listPageNew(pageParam, paramMap, "listIncomePage4Agent");
//填充收益
bookSet.setAgentSalesInfo(pageNew.getRecordList(),agentId);
return pageNew;
}
@ParamLog("导出书刊收益导出--出版端")
@Override
public void exportBookIncomeDetail(Map<String, Object> paramMap, Long agentId, Long partyId, String systemCode) {
//导出数据
if (paramMap == null) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "参数错误!");
}
List<Long> adviserIds = adviserConsr.getIdsByNameAndAgentId(agentId, (String) paramMap.get("keyWord"));
List<Long> agent4AdviserIds = adviserConsr.getIdsByNameAndAgentId(agentId, null);
paramMap.put("adviserIds", adviserIds);
paramMap.put("agent4AdviserIds", agent4AdviserIds);
Long count = bookDao.countIncomePage4Agent(paramMap);
if(count>1500){
throw new ExportException(ExportException.OPERATE_ERROR, "数量超过限制,请添加条件再导出!");
}
ThreadPoolUtils.EXPORT_THREAD_POOL.execute(() -> {
try{
List<BookSaleVO> list = new ArrayList<>();
Integer cu = 100;
Integer p = (count.intValue() / cu) + 1;
for (int i = 0; i < p; i++) {
PageBeanNew<BookSaleVO> pageBeanNew=listPageIncomeDetail(new PageParam(i,cu), paramMap, agentId);
List<BookSaleVO> bookSaleVOS=pageBeanNew.getRecordList();
list.addAll(bookSaleVOS);
}
List<Object[]> dataList = new ArrayList<>();
for (int i = 0, size = list.size(); i < size; i++) {
BookSaleVO bookSaleVO = list.get(i);
Object[] obj = new Object[9];
obj[0] = i + 1;
obj[1] = bookSaleVO.getBookName();
obj[2] = bookSaleVO.getIsbn();
if (bookSaleVO.getIsFundSupport()==true){
obj[3] = "是";
}else{
obj[3] = "否";
}
obj[4] = bookSaleVO.getAdviserName();
obj[5] = bookSaleVO.getChannelName();
if (bookSaleVO.getAgentBookIncomeDTO()!=null){
obj[6] = bookSaleVO.getAgentBookIncomeDTO().getBookIncome();
obj[7] = bookSaleVO.getAgentBookIncomeDTO().getAdviserIncome();
obj[8] = bookSaleVO.getAgentBookIncomeDTO().getAgentIncome();
}
dataList.add(obj);
}
Date date = new Date();
String[] rowsName = {"序号", "书刊名称", "书刊号", "是否基金书", "主编辑", "运营平台", "销售总额", "编辑收益", "出版社收益"};
String fileName = "书刊收益统计--" + DateUtils.getStrFormTime("yyyyMMdd", date);
String fileUrl = exportConsr.exportExcel(fileName, rowsName, dataList);
String letterType = "book_download";
String content = String.format("{\"commitTime\":\"%s\",\"type\":\"%s\"}", DateUtils.formatDate(date), fileName);
messageConsr.sendLetter(partyId, partyId, content, systemCode, letterType, fileUrl, fileName);
}catch (Exception e) {
LOGGER.error("exportBookIncomeDetail+++paramMap=" + paramMap.toString() + "systemCode=" + systemCode + "partyId=" + partyId);
}
});
}
}
......@@ -9,6 +9,7 @@ import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.book.dto.BookInfo4AnlysicsDTO;
import com.pcloud.book.book.dto.BookInfoAnalysicsDTO;
import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.vo.BookSaleVO;
import com.pcloud.common.core.dao.BaseDao;
/**
......@@ -316,4 +317,7 @@ public interface BookDao extends BaseDao<Book> {
*/
Long listBookClassifyCount(Map<String,Object> paramMap);
List<BookSaleVO> listIncomePage4Agent(Map<String,Object> paramMap);
Long countIncomePage4Agent(Map<String, Object> paramMap);
}
......@@ -6,6 +6,10 @@ package com.pcloud.book.book.dao.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import com.google.common.collect.Lists;
import com.pcloud.book.book.vo.BookSaleVO;
import org.springframework.stereotype.Repository;
import com.google.common.collect.Maps;
import com.pcloud.book.book.dao.BookDao;
......@@ -300,4 +304,14 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
public Long listBookClassifyCount(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("listBookClassifyCount"), paramMap);
}
@Override
public List<BookSaleVO> listIncomePage4Agent(Map<String, Object> paramMap) {
return super.getSqlSession().selectList(super.getStatement("listIncomePage4Agent"), paramMap);
}
@Override
public Long countIncomePage4Agent(Map<String, Object> paramMap) {
return super.getSqlSession().selectOne(super.getStatement("countIncomePage4Agent"), paramMap);
}
}
......@@ -19,6 +19,7 @@ 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.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;
......@@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......@@ -605,4 +607,48 @@ public interface BookFacade {
ResponseDto<?> getBookLabels(
@RequestHeader("token") String token
) throws BizException, PermissionException;
/**
* 书刊收益列表-出版端
*/
@ApiOperation(value = "书刊收益列表-出版端", httpMethod = "GET")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "keyWord", value = "关键词", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "channelId", value = "渠道标识", dataType = "long", paramType = "query"),
@ApiImplicitParam(name = "typeCode", value = "书刊类型", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "currentPage", value = "当前页数", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "numPerPage", value = "每页条数", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "isFundSupport", value = "基金支持", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "templetId", value = "图书类型标识", dataType = "long", paramType = "query"),
@ApiImplicitParam(name = "secondTempletId", value = "图书类型二级标识", dataType = "long", paramType = "query")})
@RequestMapping(value = "listPageIncomeDetail", method = RequestMethod.GET)
ResponseDto<PageBeanNew> listPageIncomeDetail(@RequestHeader("token") String token,
@RequestParam(value = "keyWord", required = false) String keyWord,
@RequestParam(value = "channelId", required = false) Long channelId,
@RequestParam(value = "typeCode", required = false) String typeCode,
@RequestParam(value = "currentPage", required = false) Integer currentPage,
@RequestParam(value = "numPerPage", required = false) Integer numPerPage,
@RequestParam(value = "isFundSupport", required = false) Integer isFundSupport,
@RequestParam(value = "templetId", required = false) Long templetId,
@RequestParam(value = "secondTempletId", required = false) Long secondTempletId)
throws BizException, PermissionException, JsonParseException;
@ApiOperation("导出书刊收益")
@ApiImplicitParams({@ApiImplicitParam(name = "token", value = "token", dataType = "string", paramType = "header"),
@ApiImplicitParam(name = "keyWord", value = "关键词", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "channelId", value = "渠道标识", dataType = "long", paramType = "query"),
@ApiImplicitParam(name = "typeCode", value = "书刊类型", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "isFundSupport", value = "基金支持", dataType = "int", paramType = "query"),
@ApiImplicitParam(name = "templetId", value = "图书类型标识", dataType = "long", paramType = "query"),
@ApiImplicitParam(name = "secondTempletId", value = "图书类型二级标识", dataType = "long", paramType = "query")})
@GetMapping("exportBookIncomeDetail")
ResponseDto<?> exportBookIncomeDetail(
@RequestHeader("token") String token,
@RequestParam(value = "keyWord", required = false) String keyWord,
@RequestParam(value = "channelId", required = false) Long channelId,
@RequestParam(value = "typeCode", required = false) String typeCode,
@RequestParam(value = "isFundSupport", required = false) Integer isFundSupport,
@RequestParam(value = "templetId", required = false) Long templetId,
@RequestParam(value = "secondTempletId", required = false) Long secondTempletId)
throws PermissionException, BizException;
}
......@@ -13,6 +13,7 @@ import com.pcloud.book.book.entity.Book;
import com.pcloud.book.book.facade.BookFacade;
import com.pcloud.book.book.vo.ListNoAuthBookParam;
import com.pcloud.book.book.vo.ListNoAuthGroupBookParam;
import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean;
......@@ -26,9 +27,12 @@ import com.pcloud.common.utils.SessionUtil;
import com.pcloud.common.utils.cookie.Cookie;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.wechatgroup.message.enums.IsSystem;
import io.swagger.annotations.ApiOperation;
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;
......@@ -833,4 +837,67 @@ public class BookFacadeImpl implements BookFacade {
return new ResponseDto<>(bookBiz.getBookLabels());
}
/**
* 书刊收益列表-出版端
*/
@Override
@RequestMapping(value = "listPageIncomeDetail", method = RequestMethod.GET)
public ResponseDto<PageBeanNew> listPageIncomeDetail(@RequestHeader("token") String token,
@RequestParam(value = "keyWord", required = false) String keyWord,
@RequestParam(value = "channelId", required = false) Long channelId,
@RequestParam(value = "typeCode", required = false) String typeCode,
@RequestParam(value = "currentPage") Integer currentPage,
@RequestParam(value = "numPerPage") Integer numPerPage,
@RequestParam(value = "isFundSupport", required = false) Integer isFundSupport,
@RequestParam(value = "templetId", required = false) Long templetId,
@RequestParam(value = "secondTempletId", required = false) Long secondTempletId)
throws BizException, PermissionException {
Long agentId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage < 0) {
throw BookBizException.PAGE_PARAM_DELETION;
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("keyWord", keyWord != null && "".equals(keyWord.trim()) ? null : keyWord);
paramMap.put("channelId", channelId);
paramMap.put("typeCode", typeCode != null && "".equals(typeCode.trim()) ? null : typeCode);
paramMap.put("isFundSupport", isFundSupport);
paramMap.put("templetId", templetId);
paramMap.put("secondTempletId",secondTempletId);
paramMap.put("secondTempletIds",Optional.ofNullable(paramMap.get("secondTempletId")).map(Lists::newArrayList).orElse(Lists.newArrayList()));
return new ResponseDto<>(bookBiz.listPageIncomeDetail(new PageParam(currentPage, numPerPage), paramMap, agentId));
}
@ApiOperation("导出书刊收益")
@GetMapping("exportBookIncomeDetail")
public ResponseDto<?> exportBookIncomeDetail(
@RequestHeader("token") String token,
@RequestParam(value = "keyWord", required = false) String keyWord,
@RequestParam(value = "channelId", required = false) Long channelId,
@RequestParam(value = "typeCode", required = false) String typeCode,
@RequestParam(value = "isFundSupport", required = false) Integer isFundSupport,
@RequestParam(value = "templetId", required = false) Long templetId,
@RequestParam(value = "secondTempletId", required = false) Long secondTempletId) throws PermissionException {
Long agentId = (Long) SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
String systemCode = (String) SessionUtil.getVlaue(token, SessionUtil.SYSTEM_CODE);
if (!SystemCode.agent.code.equalsIgnoreCase(systemCode)) {
throw new PermissionException(PermissionException.PERMISSION_NOT_FOUND);
}
Map<String,Object> map = SessionUtil.getToken4Redis(token);
String isSystem = (String)map.get(SessionUtil.IS_SYSTEM);
Long partyId = (Long) map.get(SessionUtil.PARTY_ID);
if (IsSystem.NOT_SYSTEM.code.equals(isSystem)){
partyId = (Long) map.get(SessionUtil.MEMBER_ID);
}
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("keyWord", keyWord != null && "".equals(keyWord.trim()) ? null : keyWord);
paramMap.put("channelId", channelId);
paramMap.put("typeCode", typeCode != null && "".equals(typeCode.trim()) ? null : typeCode);
paramMap.put("isFundSupport", isFundSupport);
paramMap.put("templetId", templetId);
paramMap.put("secondTempletId",secondTempletId);
paramMap.put("secondTempletIds",Optional.ofNullable(paramMap.get("secondTempletId")).map(Lists::newArrayList).orElse(Lists.newArrayList()));
bookBiz.exportBookIncomeDetail(paramMap, agentId, partyId, systemCode);
return new ResponseDto<>();
}
}
\ No newline at end of file
......@@ -30,6 +30,7 @@ import com.pcloud.book.book.dto.BookResourceDto;
import com.pcloud.book.book.dto.BookTypeDto;
import com.pcloud.book.book.entity.BookDefendant;
import com.pcloud.book.book.tools.BookTools;
import com.pcloud.book.book.vo.BookSaleVO;
import com.pcloud.book.book.vo.NoAuthBookVO;
import com.pcloud.book.consumer.analysisengine.BookScanCountConsr;
import com.pcloud.book.consumer.analysisengine.BrowseRecordConsr;
......@@ -41,6 +42,7 @@ import com.pcloud.book.consumer.content.ResourceConsr;
import com.pcloud.book.consumer.message.MessageConsr;
import com.pcloud.book.consumer.resource.ProductConsr;
import com.pcloud.book.consumer.settlement.BookConsr;
import com.pcloud.book.consumer.settlement.SettlementConsr;
import com.pcloud.book.consumer.user.AdviserConsr;
import com.pcloud.book.consumer.user.AgentConsr;
import com.pcloud.book.consumer.user.BookcaseConsr;
......@@ -73,6 +75,9 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.resourcecenter.product.dto.ProductDto;
import com.pcloud.resourcecenter.product.dto.ProductTypeDto;
import com.pcloud.resourcecenter.product.dto.SpecificationDto;
import com.pcloud.settlementcenter.pay.constants.PayConstant;
import com.pcloud.settlementcenter.record.dto.AgentBookIncomeDTO;
import com.pcloud.settlementcenter.record.dto.AgentBookIncomeParamDTO;
import com.pcloud.settlementcenter.record.dto.BookIncomeDto;
import com.pcloud.usercenter.common.dto.BookCaseParamDto;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
......@@ -164,6 +169,8 @@ public class BookSet {
private BookGroupClassifyBiz bookGroupClassifyBiz;
@Autowired
private BookGroupClassifyDao bookGroupClassifyDao;
@Autowired
private SettlementConsr settlementConsr;
/**
* 检验书号是否合法,包括ISSN,ISBN,CSSN
......@@ -1642,4 +1649,34 @@ public class BookSet {
}
}
}
@ParamLog("填充书刊总销售额")
public void setAgentSalesInfo(List<BookSaleVO> bookSaleVOS, Long agentId) {
if (ListUtils.isEmpty(bookSaleVOS)) {
return;
}
List<Long> adviserIdList = new ArrayList<>();
List<Long> channelIdList = new ArrayList<>();
for (BookSaleVO bookSaleVO : bookSaleVOS) {
if (!adviserIdList.contains(bookSaleVO.getAdviserId())) {
adviserIdList.add(bookSaleVO.getAdviserId());
}
if (!channelIdList.contains(bookSaleVO.getChannelId())) {
channelIdList.add(bookSaleVO.getChannelId());
}
}
Map<Long, String> adviserNameMap = adviserConsr.getNames(adviserIdList);
Map<Long, String> channelNameMap = channelConsr.getNamesByIdList(channelIdList);
for (BookSaleVO bookSaleVO : bookSaleVOS) {
AgentBookIncomeParamDTO agentBookIncomeParamDTO = new AgentBookIncomeParamDTO();
agentBookIncomeParamDTO.setBookId(bookSaleVO.getBookId());
agentBookIncomeParamDTO.setAgentId(agentId);
agentBookIncomeParamDTO.setAdviserId(bookSaleVO.getAdviserId());
agentBookIncomeParamDTO.setChannelId(bookSaleVO.getChannelId());
AgentBookIncomeDTO agentBookIncomeDTO = settlementConsr.getAgentAndAdviserIncome(agentBookIncomeParamDTO);
bookSaleVO.setChannelName(channelNameMap.get(bookSaleVO.getChannelId()));
bookSaleVO.setAdviserName(adviserNameMap.get(bookSaleVO.getAdviserId()));
bookSaleVO.setAgentBookIncomeDTO(agentBookIncomeDTO);
}
}
}
package com.pcloud.book.book.vo;
import com.pcloud.settlementcenter.record.dto.AgentBookIncomeDTO;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@ApiModel("出版社书籍收益")
@Data
public class BookSaleVO {
private Long bookId;
private String bookName;
private Long channelId;
private String isbn;
private Long adviserId;
private Boolean isFundSupport;
private String channelName;
private String adviserName;
private AgentBookIncomeDTO agentBookIncomeDTO;
}
......@@ -6,6 +6,8 @@ import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.DateUtils;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.settlementcenter.record.dto.AgentBookIncomeDTO;
import com.pcloud.settlementcenter.record.dto.AgentBookIncomeParamDTO;
import com.pcloud.settlementcenter.record.dto.ProductStaticUnderAppMapDTO;
import com.pcloud.settlementcenter.record.dto.ResourcesStatisticVO;
import com.pcloud.settlementcenter.record.service.BookService;
......@@ -94,4 +96,18 @@ public class SettlementConsr {
}
return resourcesStatisticVOS;
}
@ParamLog(value = "获取书刊编辑收益和出版收益", isBefore = false, isAfterReturn = false)
public AgentBookIncomeDTO getAgentAndAdviserIncome(AgentBookIncomeParamDTO agentBookIncomeParamDTO) throws BizException {
AgentBookIncomeDTO agentBookIncomeDTO=new AgentBookIncomeDTO();
if (agentBookIncomeParamDTO==null) {
return agentBookIncomeDTO;
}
try {
agentBookIncomeDTO= ResponseHandleUtil.parseResponse(settlementService.getAgentAndAdviserIncome(agentBookIncomeParamDTO), AgentBookIncomeDTO.class);
} catch (Exception e) {
LOGGER.error("获取书刊编辑收益和出版收益.[getAgentAndAdviserIncome]:" + e.getMessage(), e);
}
return agentBookIncomeDTO;
}
}
......@@ -1841,4 +1841,137 @@
g.create_time DESC
</select>
<!-- 书刊列表-出版端 -->
<select id="listIncomePage4Agent" parameterType="map" resultType="com.pcloud.book.book.vo.BookSaleVO">
SELECT
A.BOOK_ID bookId,
B.BOOK_NAME bookName,
A.CHANNEL_ID channelId,
B.ISBN isbn,
A.ADVISER_ID adviserId,
IF(ISNULL(BF.BOOK_FUND_ID),0,1) isFundSupport
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
AND
A.ADVISER_ID IN
<foreach collection="agent4AdviserIds" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
AND A.IS_MAIN_EDITOR = 1
LEFT JOIN
BOOK_TYPE T
ON
B.TYPE_CODE = T.TYPE_CODE
LEFT JOIN
BOOK_FUND BF
ON
BF.BOOK_ID = A.BOOK_ID AND BF.END_TIME <![CDATA[ > ]]> NOW() AND BF.START_TIME <![CDATA[ < ]]> NOW()
WHERE
1=1
<if test="typeCode!=null">
AND
B.TYPE_CODE = #{typeCode}
</if>
<if test="channelId!=null">
AND
A.CHANNEL_ID = #{channelId}
</if>
<if test="keyWord!=null">
AND (B.BOOK_NAME LIKE CONCAT('%',#{keyWord},'%')
OR B.ISBN LIKE CONCAT(#{keyWord},'%')
<if test="adviserIds!=null and adviserIds.size()>0">
OR
A.ADVISER_ID in
<foreach collection="adviserIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
)
</if>
<if test="templetId!=null">
AND
A.TEMPLET_ID = #{templetId}
</if>
<if test="secondTempletIds!=null and secondTempletIds.size()>0">
AND
A.SECOND_TEMPLET_ID in
<foreach collection="secondTempletIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
<if test="isFundSupport != null">
AND
BF.BOOK_FUND_ID IS NOT NULL
</if>
GROUP BY A.BOOK_ID, A.CHANNEL_ID
ORDER BY
A.CREATED_DATE DESC
</select>
<!-- 书刊列表数量-出版端 -->
<select id="countIncomePage4Agent" parameterType="map" resultType="long">
SELECT
count(1)
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
AND
A.ADVISER_ID IN
<foreach collection="agent4AdviserIds" index="i" item="item" open="(" separator="," close=")">
${item}
</foreach>
AND A.IS_MAIN_EDITOR = 1
LEFT JOIN
BOOK_TYPE T
ON
B.TYPE_CODE = T.TYPE_CODE
LEFT JOIN
BOOK_FUND BF
ON
BF.BOOK_ID = A.BOOK_ID AND BF.END_TIME <![CDATA[ > ]]> NOW() AND BF.START_TIME <![CDATA[ < ]]> NOW()
WHERE
1=1
<if test="typeCode!=null">
AND
B.TYPE_CODE = #{typeCode}
</if>
<if test="channelId!=null">
AND
A.CHANNEL_ID = #{channelId}
</if>
<if test="keyWord!=null">
AND (B.BOOK_NAME LIKE CONCAT('%',#{keyWord},'%')
OR B.ISBN LIKE CONCAT(#{keyWord},'%')
<if test="adviserIds!=null and adviserIds.size()>0">
OR
A.ADVISER_ID in
<foreach collection="adviserIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
)
</if>
<if test="templetId!=null">
AND
A.TEMPLET_ID = #{templetId}
</if>
<if test="secondTempletIds!=null and secondTempletIds.size()>0">
AND
A.SECOND_TEMPLET_ID in
<foreach collection="secondTempletIds" item="item" open="(" separator="," close=")">
${item}
</foreach>
</if>
<if test="isFundSupport != null">
AND
BF.BOOK_FUND_ID IS NOT NULL
</if>
</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