Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐少华
midjourney-proxy
Commits
f9a9a15b
Commit
f9a9a15b
authored
Oct 22, 2020
by
田超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/1003702' into 'master'
feat: [1003702] 平台端出版社项目数据一览 See merge request rays/pcloud-book!1004
parents
5c319c0e
8410ff4e
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1485 additions
and
84 deletions
+1485
-84
BookVarietyStatsDto.java
...in/java/com/pcloud/book/book/dto/BookVarietyStatsDto.java
+126
-0
BookVarietyStatsRequestDto.java
.../com/pcloud/book/book/dto/BookVarietyStatsRequestDto.java
+29
-0
ERPPublishNumDTO.java
.../main/java/com/pcloud/book/book/dto/ERPPublishNumDTO.java
+26
-0
ErpBookInfoDTO.java
...rc/main/java/com/pcloud/book/book/dto/ErpBookInfoDTO.java
+45
-0
BookAdviserService.java
...java/com/pcloud/book/book/service/BookAdviserService.java
+21
-2
BookAdviserBiz.java
...rc/main/java/com/pcloud/book/book/biz/BookAdviserBiz.java
+23
-1
BookAdviserBizImpl.java
...ava/com/pcloud/book/book/biz/impl/BookAdviserBizImpl.java
+607
-54
BookAdviserDao.java
...rc/main/java/com/pcloud/book/book/dao/BookAdviserDao.java
+9
-0
BookAdviserDaoImpl.java
...ava/com/pcloud/book/book/dao/impl/BookAdviserDaoImpl.java
+36
-1
BookAdviserFacade.java
...n/java/com/pcloud/book/book/facade/BookAdviserFacade.java
+38
-2
BookAdviserFacadeImpl.java
...m/pcloud/book/book/facade/impl/BookAdviserFacadeImpl.java
+61
-16
BookAdviserServiceImpl.java
...pcloud/book/book/service/impl/BookAdviserServiceImpl.java
+24
-2
AgentBookStatsDetailVO.java
.../java/com/pcloud/book/book/vo/AgentBookStatsDetailVO.java
+148
-0
QrcodeInfoDto.java
.../src/main/java/com/pcloud/book/book/vo/QrcodeInfoDto.java
+36
-0
BrowseRecordConsr.java
...cloud/book/consumer/analysisengine/BrowseRecordConsr.java
+17
-1
ErpConsr.java
.../src/main/java/com/pcloud/book/consumer/erp/ErpConsr.java
+76
-0
TradeConsr.java
.../main/java/com/pcloud/book/consumer/trade/TradeConsr.java
+15
-1
ChannelConsr.java
...main/java/com/pcloud/book/consumer/user/ChannelConsr.java
+14
-0
WechatGroupConsr.java
...om/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
+28
-4
BookAdviser.Mapper.xml
...ook/src/main/resources/mapper/book/BookAdviser.Mapper.xml
+106
-0
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/book/dto/BookVarietyStatsDto.java
0 → 100644
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
book
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* 编辑做书品种统计信息
*
* @author guiq
* @version 1.0
* @since 2020年9月24日
*/
@Data
@ApiModel
(
"编辑做书品种统计信息"
)
public
class
BookVarietyStatsDto
implements
Serializable
{
/**
* 累计做书品种数
*/
@ApiModelProperty
(
"累计做书品种数"
)
private
Integer
varietyTotal
;
/**
* 上季度做书品种数
*/
@ApiModelProperty
(
"上季度做书品种数"
)
private
Integer
varietyLastQuarter
;
/**
* 本季度做书品种数
*/
@ApiModelProperty
(
"本季度做书品种数"
)
private
Integer
varietyThisQuarter
;
/**
* 累计印册量
*/
@ApiModelProperty
(
"累计印册量"
)
private
Integer
printTotal
;
/**
* 上季度印册量
*/
@ApiModelProperty
(
"上季度印册量"
)
private
Integer
printLastQuarter
;
/**
* 本季度印册量
*/
@ApiModelProperty
(
"本季度印册量"
)
private
Integer
printThisQuarter
;
/**
* 累计扫码人数
*/
@ApiModelProperty
(
"累计扫码人数"
)
private
Integer
scanUserTotal
;
/**
* 上季度扫码人数
*/
@ApiModelProperty
(
"上季度扫码人数"
)
private
Integer
scanUserLastQuarter
;
/**
* 本季度扫码人数
*/
@ApiModelProperty
(
"本季度扫码人数"
)
private
Integer
scanUserThisQuarter
;
/**
* 累计浏览人数
*/
@ApiModelProperty
(
"累计浏览人数"
)
private
Integer
browseUserTotal
;
/**
* 上季度浏览人数
*/
@ApiModelProperty
(
"上季度浏览人数"
)
private
Integer
browseUserLastQuarter
;
/**
* 本季度浏览人数
*/
@ApiModelProperty
(
"本季度浏览人数"
)
private
Integer
browseUserThisQuarter
;
/**
* 累计扫码量
*/
@ApiModelProperty
(
"累计扫码量"
)
private
Integer
scanTotal
;
/**
* 上季度扫码量
*/
@ApiModelProperty
(
"上季度扫码量"
)
private
Integer
scanLastQuarter
;
/**
* 本季度扫码量
*/
@ApiModelProperty
(
"本季度扫码量"
)
private
Integer
scanThisQuarter
;
/**
* 累计浏览量
*/
@ApiModelProperty
(
"累计浏览量"
)
private
Integer
browseTotal
;
/**
* 上季度浏览量
*/
@ApiModelProperty
(
"上季度浏览量"
)
private
Integer
browseLastQuarter
;
/**
* 本季度浏览量
*/
@ApiModelProperty
(
"本季度浏览量"
)
private
Integer
browseThisQuarter
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/book/dto/BookVarietyStatsRequestDto.java
0 → 100644
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
book
.
dto
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 编辑做书品种统计信息 请求参数
*
* @author guiq
* @version 1.0
* @since 2020年9月24日
*/
@Data
@ApiModel
(
"编辑做书品种统计信息 请求参数"
)
public
class
BookVarietyStatsRequestDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1377926071522171617L
;
@ApiModelProperty
(
"出版社ID"
)
private
Long
agentId
;
@ApiModelProperty
(
"出版社编辑ID列表"
)
private
List
<
Long
>
adviserIds
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/book/dto/ERPPublishNumDTO.java
0 → 100644
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
book
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* ERP 图书印册量
*/
@Data
@ApiModel
(
"ERP 图书印册量"
)
public
class
ERPPublishNumDTO
{
@ApiModelProperty
(
"编辑ID"
)
private
Long
adviserId
;
@ApiModelProperty
(
"渠道ID"
)
private
Long
channelId
;
@ApiModelProperty
(
"图书ID"
)
private
Long
bookId
;
@ApiModelProperty
(
"印册量"
)
private
Long
expectPublishNum
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createDate
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/book/dto/ErpBookInfoDTO.java
0 → 100644
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
book
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
@Data
@ApiModel
(
"ERP图书信息"
)
public
class
ErpBookInfoDTO
{
@ApiModelProperty
(
"项目编号"
)
private
String
projectNumber
;
@ApiModelProperty
(
"erp编号"
)
private
String
erpNumber
;
@ApiModelProperty
(
"出版物名称"
)
private
String
bookName
;
@ApiModelProperty
(
"RAYS编辑ID"
)
private
Integer
raysAdviserId
;
@ApiModelProperty
(
"关联RAYS书刊ID"
)
private
Integer
raysBookId
;
@ApiModelProperty
(
"关联RAYS渠道ID"
)
private
Integer
raysChannelId
;
@ApiModelProperty
(
"编辑id"
)
private
Long
adviserId
;
@ApiModelProperty
(
"ISBN"
)
private
String
isbn
;
@ApiModelProperty
(
"印册量"
)
private
Long
publishNum
;
@ApiModelProperty
(
"立项时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
buildTime
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/book/service/BookAdviserService.java
View file @
f9a9a15b
...
@@ -3,7 +3,17 @@
...
@@ -3,7 +3,17 @@
*/
*/
package
com
.
pcloud
.
book
.
book
.
service
;
package
com
.
pcloud
.
book
.
book
.
service
;
import
com.pcloud.book.book.dto.*
;
import
com.pcloud.book.book.dto.AdviserBookInfoDTO
;
import
com.pcloud.book.book.dto.AviserBookInfoParam
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookCountAndAdviserIdDTO
;
import
com.pcloud.book.book.dto.BookCountByAdvisersDto
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookResourceStatisticsDTO
;
import
com.pcloud.book.book.dto.BookRightsSettingDTO
;
import
com.pcloud.book.book.dto.BookVarietyStatsDto
;
import
com.pcloud.book.book.dto.BookVarietyStatsRequestDto
;
import
com.pcloud.book.book.dto.MapResourceTotalCountDTO
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
...
@@ -13,7 +23,12 @@ import io.swagger.annotations.ApiImplicitParams;
...
@@ -13,7 +23,12 @@ import io.swagger.annotations.ApiImplicitParams;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
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.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -140,4 +155,8 @@ public interface BookAdviserService {
...
@@ -140,4 +155,8 @@ public interface BookAdviserService {
@ApiOperation
(
"获取书下资源总数(包括现代纸书、1V1、小睿、社群码)"
)
@ApiOperation
(
"获取书下资源总数(包括现代纸书、1V1、小睿、社群码)"
)
@GetMapping
(
"mapResourceTotalCount"
)
@GetMapping
(
"mapResourceTotalCount"
)
ResponseEntity
<
ResponseDto
<
Map
<
String
,
BookResourceStatisticsDTO
>>>
mapResourceTotalCount
(
@RequestBody
MapResourceTotalCountDTO
mapResourceTotalCountDTO
);
ResponseEntity
<
ResponseDto
<
Map
<
String
,
BookResourceStatisticsDTO
>>>
mapResourceTotalCount
(
@RequestBody
MapResourceTotalCountDTO
mapResourceTotalCountDTO
);
@ApiOperation
(
value
=
"获取编辑做书品种数统计信息"
,
httpMethod
=
"POST"
)
@PostMapping
(
"/getAdviserBookVarietyStats"
)
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
BookVarietyStatsDto
>>>
getAdviserBookVarietyStats
(
@RequestBody
List
<
BookVarietyStatsRequestDto
>
requestDtos
)
throws
BizException
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/BookAdviserBiz.java
View file @
f9a9a15b
...
@@ -4,15 +4,31 @@
...
@@ -4,15 +4,31 @@
package
com
.
pcloud
.
book
.
book
.
biz
;
package
com
.
pcloud
.
book
.
book
.
biz
;
import
com.pcloud.book.base.dto.CountDto
;
import
com.pcloud.book.base.dto.CountDto
;
import
com.pcloud.book.book.dto.*
;
import
com.pcloud.book.book.dto.AdviserBookInfoDTO
;
import
com.pcloud.book.book.dto.AdviserManageDto
;
import
com.pcloud.book.book.dto.AviserBookInfoParam
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookCountAndAdviserIdDTO
;
import
com.pcloud.book.book.dto.BookCountByAdvisersDto
;
import
com.pcloud.book.book.dto.BookCountDto
;
import
com.pcloud.book.book.dto.BookDataStatisticsDTO
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookQrcodeStatisticsDTO
;
import
com.pcloud.book.book.dto.BookResourceStatisticsDTO
;
import
com.pcloud.book.book.dto.BookRightsSettingDTO
;
import
com.pcloud.book.book.dto.BookVarietyStatsDto
;
import
com.pcloud.book.book.dto.BookVarietyStatsRequestDto
;
import
com.pcloud.book.book.dto.QrcodeStatisticsDTO
;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.book.book.vo.ErpAdviserBookVO
;
import
com.pcloud.book.book.vo.ErpAdviserBookVO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.QrCodeVO
;
import
com.pcloud.book.book.vo.QrCodeVO
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -268,4 +284,10 @@ public interface BookAdviserBiz {
...
@@ -268,4 +284,10 @@ public interface BookAdviserBiz {
Map
<
String
,
BookAdviserDto
>
getBookInfoByBookIds
(
List
<
Long
>
bookIds
,
List
<
Long
>
adviserIds
,
List
<
Long
>
channelIds
);
Map
<
String
,
BookAdviserDto
>
getBookInfoByBookIds
(
List
<
Long
>
bookIds
,
List
<
Long
>
adviserIds
,
List
<
Long
>
channelIds
);
BookAdviserDto
getBookByBookIdAdviserId
(
Long
bookId
,
Long
adviserId
);
BookAdviserDto
getBookByBookIdAdviserId
(
Long
bookId
,
Long
adviserId
);
Map
<
Long
,
BookVarietyStatsDto
>
getAdviserBookVarietyStats
(
List
<
BookVarietyStatsRequestDto
>
requestDtos
);
PageBeanNew
<
AgentBookStatsDetailVO
>
getAgentBookStatsDetail
(
Long
agentId
,
String
name
,
Date
startDate
,
Date
endDate
,
Integer
isRay
,
Integer
currentPage
,
Integer
numPerPage
);
void
exportAgentBookStatsDetail
(
Long
agentId
,
String
name
,
Date
startDate
,
Date
endDate
,
Integer
isRay
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookAdviserBizImpl.java
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
book
.
biz
.
impl
;
package
com
.
pcloud
.
book
.
book
.
biz
.
impl
;
import
java.math.BigDecimal
;
import
cn.hutool.core.collection.CollUtil
;
import
java.util.ArrayList
;
import
cn.hutool.core.date.DateUtil
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.Future
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeoutException
;
import
java.util.stream.Collectors
;
import
cn.hutool.core.util.StrUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto
;
import
com.alibaba.fastjson.JSONObject
;
import
com.pcloud.book.book.biz.BookFundBiz
;
import
com.alibaba.fastjson.TypeReference
;
import
com.pcloud.book.book.dto.BookDataStatisticsDTO
;
import
com.pcloud.book.book.dto.BookQrcodeStatisticsDTO
;
import
com.pcloud.book.book.dto.BookResourceStatisticsDTO
;
import
com.pcloud.book.book.dto.BookRightsSettingDTO
;
import
com.pcloud.book.book.dto.QrcodeStatisticsDTO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.QrCodeVO
;
import
com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto
;
import
com.pcloud.book.consumer.analysisengine.BrowseRecordConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.group.dto.BookGroupDTO
;
import
com.pcloud.book.group.dto.BookGroupServeCountDTO
;
import
com.pcloud.book.group.enums.JoinGroupTypeEnum
;
import
com.pcloud.book.rightsSetting.biz.RightsSettingBiz
;
import
com.pcloud.book.rightsSetting.dao.RightsSettingDAO
;
import
com.pcloud.book.rightsSetting.dto.RightsSettingDto
;
import
com.pcloud.book.es.biz.ESBookAndAdviserBiz
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.channelcenter.base.exceptions.ChannelBizException
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeMessageDTO
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto
;
import
com.pcloud.common.utils.NumberUtil
;
import
com.pcloud.wechatgroup.group.dto.GroupUserCountDTO
;
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.dao.DataIntegrityViolationException
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.pcloud.analysisengine.browse.dto.BookBrowseAndScanStatsDTO
;
import
com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto
;
import
com.pcloud.book.base.dto.CountDto
;
import
com.pcloud.book.base.dto.CountDto
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.book.book.biz.BookFundBiz
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.book.dao.BookAdviserDao
;
import
com.pcloud.book.book.dao.BookAdviserDao
;
import
com.pcloud.book.book.dto.AdviserBookInfoDTO
;
import
com.pcloud.book.book.dto.AdviserBookInfoDTO
;
...
@@ -69,20 +23,55 @@ import com.pcloud.book.book.dto.BookAdviserDto;
...
@@ -69,20 +23,55 @@ import com.pcloud.book.book.dto.BookAdviserDto;
import
com.pcloud.book.book.dto.BookCountAndAdviserIdDTO
;
import
com.pcloud.book.book.dto.BookCountAndAdviserIdDTO
;
import
com.pcloud.book.book.dto.BookCountByAdvisersDto
;
import
com.pcloud.book.book.dto.BookCountByAdvisersDto
;
import
com.pcloud.book.book.dto.BookCountDto
;
import
com.pcloud.book.book.dto.BookCountDto
;
import
com.pcloud.book.book.dto.BookDataStatisticsDTO
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookQrcodeStatisticsDTO
;
import
com.pcloud.book.book.dto.BookResourceStatisticsDTO
;
import
com.pcloud.book.book.dto.BookRightsSettingDTO
;
import
com.pcloud.book.book.dto.BookVarietyStatsDto
;
import
com.pcloud.book.book.dto.BookVarietyStatsRequestDto
;
import
com.pcloud.book.book.dto.ERPPublishNumDTO
;
import
com.pcloud.book.book.dto.ErpBookInfoDTO
;
import
com.pcloud.book.book.dto.QrcodeStatisticsDTO
;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.set.BookSet
;
import
com.pcloud.book.book.set.BookSet
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.book.book.vo.ErpAdviserBookVO
;
import
com.pcloud.book.book.vo.ErpAdviserBookVO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.QrCodeVO
;
import
com.pcloud.book.book.vo.QrcodeInfoDto
;
import
com.pcloud.book.book.vo.request.UpdateBookRobotProcessDto
;
import
com.pcloud.book.consumer.analysisengine.BrowseRecordConsr
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.common.ExportConsr
;
import
com.pcloud.book.consumer.erp.ErpConsr
;
import
com.pcloud.book.consumer.message.MessageConsr
;
import
com.pcloud.book.consumer.message.TemplateConsr
;
import
com.pcloud.book.consumer.message.TemplateConsr
;
import
com.pcloud.book.consumer.raystask.MainLineConsr
;
import
com.pcloud.book.consumer.raystask.MainLineConsr
;
import
com.pcloud.book.consumer.settlement.BookConsr
;
import
com.pcloud.book.consumer.settlement.BookConsr
;
import
com.pcloud.book.consumer.trade.TradeConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.user.AgentConsr
;
import
com.pcloud.book.consumer.user.BookcaseConsr
;
import
com.pcloud.book.consumer.user.BookcaseConsr
;
import
com.pcloud.book.consumer.user.ChannelConsr
;
import
com.pcloud.book.consumer.user.ChannelConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.es.biz.ESBookAndAdviserBiz
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
import
com.pcloud.book.group.dto.BookGroupDTO
;
import
com.pcloud.book.group.dto.BookGroupServeCountDTO
;
import
com.pcloud.book.group.enums.JoinGroupTypeEnum
;
import
com.pcloud.book.rightsSetting.biz.RightsSettingBiz
;
import
com.pcloud.book.rightsSetting.dao.RightsSettingDAO
;
import
com.pcloud.book.rightsSetting.dto.RightsSettingDto
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.channelcenter.base.exceptions.ChannelBizException
;
import
com.pcloud.channelcenter.qrcode.dto.AdviserQrcodeSceneDTO
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeMessageDTO
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto
;
import
com.pcloud.common.constant.CacheConstant
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.constant.SceneCode
;
import
com.pcloud.common.core.constant.SceneCode
;
import
com.pcloud.common.core.constant.SendType
;
import
com.pcloud.common.core.constant.SendType
;
...
@@ -92,10 +81,42 @@ import com.pcloud.common.page.PageBeanNew;
...
@@ -92,10 +81,42 @@ import com.pcloud.common.page.PageBeanNew;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.NumberUtil
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.facade.tradecenter.dto.Amount4BookAdviserDto
;
import
com.pcloud.raystask.entity.AdviserDefault
;
import
com.pcloud.raystask.entity.AdviserDefault
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
com.pcloud.usercenter.user.entity.UserLogin
;
import
com.pcloud.usercenter.user.entity.UserLogin
;
import
com.pcloud.wechatgroup.group.dto.GroupScanUserStatsDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserCountDTO
;
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.dao.DataIntegrityViolationException
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.concurrent.ExecutionException
;
import
java.util.concurrent.Future
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeoutException
;
import
java.util.stream.Collectors
;
/**
/**
* @描述:编辑管理书籍逻辑层接口实现类
* @描述:编辑管理书籍逻辑层接口实现类
...
@@ -159,7 +180,16 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
...
@@ -159,7 +180,16 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
private
WechatGroupConsr
wechatGroupConsr
;
private
WechatGroupConsr
wechatGroupConsr
;
@Autowired
@Autowired
private
BrowseRecordConsr
browseRecordConsr
;
private
BrowseRecordConsr
browseRecordConsr
;
@Autowired
private
ErpConsr
erpConsr
;
@Autowired
private
TradeConsr
tradeConsr
;
@Autowired
private
ExportConsr
exportConsr
;
@Autowired
private
AgentConsr
agentConsr
;
@Autowired
private
MessageConsr
messageConsr
;
@Override
@Override
public
List
<
BookDto
>
listByAdviserId
(
Long
adviserId
)
{
public
List
<
BookDto
>
listByAdviserId
(
Long
adviserId
)
{
...
@@ -1417,4 +1447,527 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
...
@@ -1417,4 +1447,527 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
return
bookAdviserDao
.
getBookByBookIdAdviserId
(
bookId
,
adviserId
);
return
bookAdviserDao
.
getBookByBookIdAdviserId
(
bookId
,
adviserId
);
}
}
@Override
public
Map
<
Long
,
BookVarietyStatsDto
>
getAdviserBookVarietyStats
(
List
<
BookVarietyStatsRequestDto
>
requestDtos
)
{
Map
<
Long
,
BookVarietyStatsDto
>
result
=
new
HashMap
<>();
if
(
CollUtil
.
isEmpty
(
requestDtos
))
{
return
result
;
}
// agent -> adviser 映射 默认使用merge实现而不是put,如果出现key重复会调用mergeFunction方法,(key1, key2) -> key1
Map
<
Long
,
List
<
Long
>>
map
=
requestDtos
.
stream
().
collect
(
Collectors
.
toMap
(
BookVarietyStatsRequestDto:
:
getAgentId
,
BookVarietyStatsRequestDto:
:
getAdviserIds
,
(
key1
,
key2
)
->
key1
));
// adviser 集合
List
<
Long
>
adviserIds
=
map
.
values
().
stream
().
flatMap
(
Collection:
:
stream
).
distinct
().
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isEmpty
(
adviserIds
)){
return
result
;
}
// 查询 bookAdviser
List
<
BookAdviserDto
>
bookAdviserDtos
=
bookAdviserDao
.
getAdviserBookVarietyStats
(
adviserIds
);
// 统计扫码量(人)及浏览量(人)
List
<
BookBrowseAndScanStatsDTO
>
dtos
=
new
ArrayList
<>();
bookAdviserDtos
.
forEach
(
dto
->
{
if
(
Objects
.
nonNull
(
dto
))
{
BookBrowseAndScanStatsDTO
statsDTO
=
new
BookBrowseAndScanStatsDTO
();
statsDTO
.
setAdviserId
(
dto
.
getAdviserId
());
statsDTO
.
setChannelId
(
dto
.
getChannelId
());
statsDTO
.
setBookId
(
dto
.
getBookId
());
dtos
.
add
(
statsDTO
);
}
});
// 分析引擎获取非社群书统计结果
List
<
BookBrowseAndScanStatsDTO
>
browseAndScanStats
=
browseRecordConsr
.
getBookBrowseAndScanStats
(
dtos
);
// 微信群获取社群书统计结果
List
<
GroupScanUserStatsDTO
>
bookGroupScanStats
=
wechatGroupConsr
.
getBookGroupScanStats
(
adviserIds
);
// 查询印册量
List
<
ERPPublishNumDTO
>
finalPublishNumDto
=
new
ArrayList
<>();
List
<
ERPPublishNumDTO
>
dataFromDB
=
bookAdviserDao
.
getErpPublishNumQueryParams
(
adviserIds
);
if
(
CollUtil
.
isNotEmpty
(
dataFromDB
))
{
List
<
ERPPublishNumDTO
>
dataFromErp
=
erpConsr
.
getBookExpectPublishNum
(
dataFromDB
);
// 根据ERP填充数据
finalPublishNumDto
=
dataFromErp
.
stream
().
map
(
// 匹配 adviserId channelId bookId
erpData
->
dataFromDB
.
stream
().
filter
(
dbData
->
Objects
.
equals
(
dbData
.
getAdviserId
(),
erpData
.
getAdviserId
())
&&
Objects
.
equals
(
dbData
.
getBookId
(),
erpData
.
getBookId
())
&&
Objects
.
equals
(
dbData
.
getChannelId
(),
erpData
.
getChannelId
())
).
findFirst
().
map
(
// 填充印册量
dbData
->
{
dbData
.
setExpectPublishNum
(
erpData
.
getExpectPublishNum
());
return
dbData
;
}
).
orElse
(
null
)
).
collect
(
Collectors
.
toList
());
}
// 组装数据
Set
<
Long
>
agentIds
=
map
.
keySet
();
for
(
Long
agentId
:
agentIds
)
{
BookVarietyStatsDto
varietyStatsDto
=
null
;
if
(
CollUtil
.
isNotEmpty
(
bookAdviserDtos
))
{
varietyStatsDto
=
new
BookVarietyStatsDto
();
// 统计做书品种
List
<
BookAdviserDto
>
collect
=
bookAdviserDtos
.
stream
().
filter
(
x
->
map
.
get
(
agentId
).
contains
(
x
.
getAdviserId
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
collect
))
{
// 累计做书品种数
varietyStatsDto
.
setVarietyTotal
((
int
)
collect
.
stream
().
map
(
BookAdviserDto:
:
getBookId
).
distinct
().
count
());
// 本季度做书品种数
varietyStatsDto
.
setVarietyThisQuarter
((
int
)
collect
.
stream
().
filter
(
x
->
getAgentQuarterDigital
(
x
.
getCreatedDate
())
==
getAgentQuarterDigital
(
new
Date
())).
map
(
BookAdviserDto:
:
getBookId
).
distinct
().
count
());
// 上季度做书品种数
varietyStatsDto
.
setVarietyLastQuarter
((
int
)
collect
.
stream
().
filter
(
x
->
getAgentQuarterDigital
(
x
.
getCreatedDate
())
==
getAgentLastQuarterDigital
(
new
Date
())).
map
(
BookAdviserDto:
:
getBookId
).
distinct
().
count
());
}
if
(
CollUtil
.
isNotEmpty
(
browseAndScanStats
)){
List
<
BookBrowseAndScanStatsDTO
>
scanStatsDTOS
=
browseAndScanStats
.
stream
().
filter
(
x
->
map
.
get
(
agentId
).
contains
(
x
.
getAdviserId
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
scanStatsDTOS
))
{
// 累计扫码量
varietyStatsDto
.
setScanTotal
(
scanStatsDTOS
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getBookScanTotal
())).
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookScanTotal
).
sum
());
// 累计扫码人数
varietyStatsDto
.
setScanUserTotal
(
scanStatsDTOS
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getBookScanUserTotal
())).
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookScanUserTotal
).
sum
());
// 累计浏览量
varietyStatsDto
.
setBrowseTotal
(
scanStatsDTOS
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getBookBrowseTotal
())).
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookBrowseTotal
).
sum
());
// 累计浏览人数
varietyStatsDto
.
setBrowseUserTotal
(
scanStatsDTOS
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getBookBrowseUserTotal
())).
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookBrowseUserTotal
).
sum
());
// 筛选本季度数据
List
<
BookBrowseAndScanStatsDTO
>
thisQuarterCollect
=
scanStatsDTOS
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getBookScanTotal
())
&&
StrUtil
.
isNotBlank
(
x
.
getDateStr
())
&&
getAgentQuarterDigital
(
DateUtil
.
parse
(
x
.
getDateStr
(),
"yyyyMM"
).
toJdkDate
())
==
getAgentQuarterDigital
(
new
Date
())
).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
thisQuarterCollect
)){
// 本季度扫码量
varietyStatsDto
.
setScanThisQuarter
(
thisQuarterCollect
.
stream
().
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookScanTotal
).
sum
());
// 本季度扫码人数
varietyStatsDto
.
setScanUserThisQuarter
(
thisQuarterCollect
.
stream
().
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookScanUserTotal
).
sum
());
// 本季度浏览量
varietyStatsDto
.
setBrowseThisQuarter
(
thisQuarterCollect
.
stream
().
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookBrowseTotal
).
sum
());
// 本季度浏览人数
varietyStatsDto
.
setBrowseUserThisQuarter
(
thisQuarterCollect
.
stream
().
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookBrowseUserTotal
).
sum
());
}
// 筛选上季度数据
List
<
BookBrowseAndScanStatsDTO
>
lastQuarterCollect
=
scanStatsDTOS
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getBookScanTotal
())
&&
StrUtil
.
isNotBlank
(
x
.
getDateStr
())
&&
getAgentQuarterDigital
(
DateUtil
.
parse
(
x
.
getDateStr
(),
"yyyyMM"
).
toJdkDate
())
==
getAgentLastQuarterDigital
(
new
Date
())
).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
lastQuarterCollect
)){
// 上季度扫码量
varietyStatsDto
.
setScanLastQuarter
(
lastQuarterCollect
.
stream
().
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookScanTotal
).
sum
());
// 上季度扫码人数
varietyStatsDto
.
setScanUserLastQuarter
(
lastQuarterCollect
.
stream
().
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookScanUserTotal
).
sum
());
// 上季度浏览量
varietyStatsDto
.
setBrowseLastQuarter
(
lastQuarterCollect
.
stream
().
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookBrowseTotal
).
sum
());
// 上季度浏览人数
varietyStatsDto
.
setBrowseUserLastQuarter
(
lastQuarterCollect
.
stream
().
mapToInt
(
BookBrowseAndScanStatsDTO:
:
getBookBrowseUserTotal
).
sum
());
}
}
}
if
(
CollUtil
.
isNotEmpty
(
bookGroupScanStats
))
{
List
<
GroupScanUserStatsDTO
>
statsDTOS
=
bookGroupScanStats
.
stream
().
filter
(
x
->
map
.
get
(
agentId
).
contains
(
x
.
getAdviserId
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
statsDTOS
))
{
// 扫码人数
long
scanUser
=
statsDTOS
.
stream
().
map
(
GroupScanUserStatsDTO:
:
getWxUserId
).
distinct
().
count
();
// 扫码量
int
scan
=
statsDTOS
.
size
();
// 补充累计扫码量(社群书部分)
varietyStatsDto
.
setScanTotal
(
varietyStatsDto
.
getScanTotal
()
==
null
?
scan
:
varietyStatsDto
.
getScanTotal
()
+
scan
);
// 补充累计扫码人数(社群书部分)
varietyStatsDto
.
setScanUserTotal
(
Math
.
toIntExact
(
varietyStatsDto
.
getScanUserTotal
()
==
null
?
scanUser
:
varietyStatsDto
.
getScanUserTotal
()
+
scanUser
));
// 补充累计浏览量(社群书部分)
varietyStatsDto
.
setBrowseTotal
(
varietyStatsDto
.
getBrowseTotal
()
==
null
?
scan
:
varietyStatsDto
.
getBrowseTotal
()
+
scan
);
// 补充累计浏览量(社群书部分)
varietyStatsDto
.
setBrowseUserTotal
(
varietyStatsDto
.
getBrowseUserTotal
()
==
null
?
(
int
)
scanUser
:
(
int
)
(
varietyStatsDto
.
getBrowseUserTotal
()
+
scanUser
));
// 筛选本季度
List
<
GroupScanUserStatsDTO
>
thisQuarterCollect
=
statsDTOS
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getCreateDay
())
&&
getAgentQuarterDigital
(
x
.
getCreateDay
())
==
getAgentQuarterDigital
(
new
Date
())
).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
thisQuarterCollect
))
{
scan
=
thisQuarterCollect
.
size
();
scanUser
=
thisQuarterCollect
.
stream
().
map
(
GroupScanUserStatsDTO:
:
getWxUserId
).
distinct
().
count
();
// 补充本季度扫码量(社群书部分)
varietyStatsDto
.
setScanThisQuarter
(
varietyStatsDto
.
getScanThisQuarter
()
==
null
?
scan
:
varietyStatsDto
.
getScanThisQuarter
()
+
scan
);
// 补充本季度扫码人数(社群书部分)
varietyStatsDto
.
setScanUserThisQuarter
(
Math
.
toIntExact
(
varietyStatsDto
.
getScanUserThisQuarter
()
==
null
?
scanUser
:
varietyStatsDto
.
getScanUserThisQuarter
()
+
scanUser
));
// 补充本季度浏览量(社群书部分)
varietyStatsDto
.
setBrowseThisQuarter
(
varietyStatsDto
.
getBrowseThisQuarter
()
==
null
?
scan
:
varietyStatsDto
.
getBrowseThisQuarter
()
+
scan
);
// 补充本季度浏览量(社群书部分)
varietyStatsDto
.
setBrowseUserThisQuarter
(
varietyStatsDto
.
getBrowseUserThisQuarter
()
==
null
?
(
int
)
scanUser
:
(
int
)
(
varietyStatsDto
.
getBrowseUserThisQuarter
()
+
scanUser
));
}
// 筛选上季度
List
<
GroupScanUserStatsDTO
>
lastQuarterCollect
=
statsDTOS
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getCreateDay
())
&&
getAgentQuarterDigital
(
x
.
getCreateDay
())
==
getAgentLastQuarterDigital
(
new
Date
())
).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
thisQuarterCollect
))
{
scan
=
lastQuarterCollect
.
size
();
scanUser
=
lastQuarterCollect
.
stream
().
map
(
GroupScanUserStatsDTO:
:
getWxUserId
).
distinct
().
count
();
// 补充上季度扫码量(社群书部分)
varietyStatsDto
.
setScanLastQuarter
(
varietyStatsDto
.
getScanLastQuarter
()
==
null
?
scan
:
varietyStatsDto
.
getScanLastQuarter
()
+
scan
);
// 补充上季度扫码人数(社群书部分)
varietyStatsDto
.
setScanUserLastQuarter
(
Math
.
toIntExact
(
varietyStatsDto
.
getScanLastQuarter
()
==
null
?
scanUser
:
varietyStatsDto
.
getScanLastQuarter
()
+
scanUser
));
// 补充上季度浏览量(社群书部分)
varietyStatsDto
.
setBrowseLastQuarter
(
varietyStatsDto
.
getBrowseLastQuarter
()
==
null
?
scan
:
varietyStatsDto
.
getBrowseLastQuarter
()
+
scan
);
// 补充上季度浏览量(社群书部分)
varietyStatsDto
.
setBrowseUserLastQuarter
(
varietyStatsDto
.
getBrowseUserLastQuarter
()
==
null
?
(
int
)
scanUser
:
(
int
)
(
varietyStatsDto
.
getBrowseUserLastQuarter
()
+
scanUser
));
}
}
}
}
// 统计印册量
if
(
CollUtil
.
isNotEmpty
(
finalPublishNumDto
))
{
if
(
Objects
.
isNull
(
varietyStatsDto
))
{
varietyStatsDto
=
new
BookVarietyStatsDto
();
}
List
<
ERPPublishNumDTO
>
collect
=
finalPublishNumDto
.
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getExpectPublishNum
())
&&
map
.
get
(
agentId
).
contains
(
x
.
getAdviserId
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
collect
))
{
// 累计印刷量
varietyStatsDto
.
setPrintTotal
((
int
)
collect
.
stream
().
mapToLong
(
ERPPublishNumDTO:
:
getExpectPublishNum
).
sum
());
// 本季度印刷量
varietyStatsDto
.
setPrintThisQuarter
((
int
)
collect
.
stream
().
filter
(
x
->
getAgentQuarterDigital
(
x
.
getCreateDate
())
==
getAgentQuarterDigital
(
new
Date
())).
mapToLong
(
ERPPublishNumDTO:
:
getExpectPublishNum
).
sum
());
// 上季度印刷量
varietyStatsDto
.
setPrintLastQuarter
((
int
)
collect
.
stream
().
filter
(
x
->
getAgentQuarterDigital
(
x
.
getCreateDate
())
==
getAgentLastQuarterDigital
(
new
Date
())).
mapToLong
(
ERPPublishNumDTO:
:
getExpectPublishNum
).
sum
());
}
}
if
(
Objects
.
nonNull
(
varietyStatsDto
))
{
result
.
put
(
agentId
,
varietyStatsDto
);
}
}
return
result
;
}
@Override
public
PageBeanNew
<
AgentBookStatsDetailVO
>
getAgentBookStatsDetail
(
Long
agentId
,
String
name
,
Date
startDate
,
Date
endDate
,
Integer
isRay
,
Integer
currentPage
,
Integer
numPerPage
)
{
String
cacheKey
=
String
.
format
(
"%s_AGENT_BOOK_STATS_DETAIL_%s:%s:%s:%s:%s:%s:%s"
,
CacheConstant
.
BOOK
,
agentId
,
name
,
startDate
,
endDate
,
isRay
,
currentPage
,
numPerPage
);
String
cache
=
JedisClusterUtils
.
get
(
cacheKey
);
if
(
StrUtil
.
isNotBlank
(
cache
)){
PageBeanNew
<
AgentBookStatsDetailVO
>
pageBeanNew
=
JSONObject
.
parseObject
(
cache
,
new
TypeReference
<
PageBeanNew
<
AgentBookStatsDetailVO
>>()
{});
if
(
Objects
.
nonNull
(
pageBeanNew
)){
return
pageBeanNew
;
}
}
if
(
Objects
.
isNull
(
agentId
)){
return
new
PageBeanNew
<>();
}
// 获取出版社下的编辑集合
List
<
Long
>
advisers
=
adviserConsr
.
getByAgentId
(
agentId
);
if
(
CollUtil
.
isEmpty
(
advisers
)){
return
new
PageBeanNew
<>();
}
// 编辑姓名集合
Map
<
Long
,
String
>
adviserNames
=
adviserConsr
.
getNames
(
advisers
);
// 根据ERP编号 项目编号查询图书信息
List
<
ErpBookInfoDTO
>
raysBookIds
=
new
ArrayList
<>();
if
(
Objects
.
nonNull
(
endDate
)
&&
CollUtil
.
isEmpty
(
raysBookIds
)){
raysBookIds
=
erpConsr
.
searchBookInfo
(
name
,
advisers
,
startDate
,
endDate
);
if
(
CollUtil
.
isEmpty
(
raysBookIds
)){
return
new
PageBeanNew
<>();
}
}
// 分页查询图书
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"isRay"
,
isRay
);
map
.
put
(
"raysBookIds"
,
CollUtil
.
isEmpty
(
raysBookIds
)
?
null
:
raysBookIds
);
map
.
put
(
"name"
,
name
);
map
.
put
(
"advisers"
,
advisers
);
PageBeanNew
<
AgentBookStatsDetailVO
>
pageBeanNew
=
bookAdviserDao
.
listPageNew
(
new
PageParam
(
currentPage
,
numPerPage
),
map
,
"getAgentBookStatsDetail"
);
if
(
CollUtil
.
isEmpty
(
pageBeanNew
.
getRecordList
())){
return
pageBeanNew
;
}
// 统计扫码量(人)及浏览量(人)
List
<
AdviserQrcodeSceneDTO
>
sceneRequestDTOS
=
new
ArrayList
<>();
List
<
Amount4BookAdviserDto
>
amountRequestDtos
=
new
ArrayList
<>();
List
<
BookBrowseAndScanStatsDTO
>
requestDtos
=
new
ArrayList
<>();
List
<
ErpBookInfoDTO
>
finalRaysBookIds
=
new
ArrayList
<>();
pageBeanNew
.
getRecordList
().
forEach
(
dto
->
{
if
(
Objects
.
nonNull
(
dto
)
&&
(
Objects
.
nonNull
(
dto
.
getAdviserId
())
||
Objects
.
nonNull
(
dto
.
getChannelId
())
||
Objects
.
nonNull
(
dto
.
getBookId
())))
{
BookBrowseAndScanStatsDTO
statsDTO
=
new
BookBrowseAndScanStatsDTO
();
statsDTO
.
setAdviserId
(
dto
.
getAdviserId
());
statsDTO
.
setChannelId
(
dto
.
getChannelId
());
statsDTO
.
setBookId
(
dto
.
getBookId
());
requestDtos
.
add
(
statsDTO
);
Amount4BookAdviserDto
amount4BookAdviserDto
=
new
Amount4BookAdviserDto
();
amount4BookAdviserDto
.
setAdviserId
(
dto
.
getAdviserId
());
amount4BookAdviserDto
.
setChannelId
(
dto
.
getChannelId
());
amount4BookAdviserDto
.
setBookId
(
dto
.
getBookId
());
amountRequestDtos
.
add
(
amount4BookAdviserDto
);
AdviserQrcodeSceneDTO
adviserQrcodeSceneDTO
=
new
AdviserQrcodeSceneDTO
();
adviserQrcodeSceneDTO
.
setAdviserId
(
dto
.
getAdviserId
());
adviserQrcodeSceneDTO
.
setChannelId
(
dto
.
getChannelId
());
adviserQrcodeSceneDTO
.
setBookId
(
dto
.
getBookId
());
sceneRequestDTOS
.
add
(
adviserQrcodeSceneDTO
);
ErpBookInfoDTO
erpBookInfoDTO
=
new
ErpBookInfoDTO
();
erpBookInfoDTO
.
setAdviserId
(
dto
.
getAdviserId
());
erpBookInfoDTO
.
setRaysBookId
(
Math
.
toIntExact
(
dto
.
getBookId
()));
erpBookInfoDTO
.
setRaysChannelId
(
Math
.
toIntExact
(
dto
.
getChannelId
()));
finalRaysBookIds
.
add
(
erpBookInfoDTO
);
}
});
// 分析引擎获取非社群书统计结果
List
<
BookBrowseAndScanStatsDTO
>
browseAndScanStats
=
browseRecordConsr
.
getBookBrowseAndScanStats
(
requestDtos
);
// 微信群获取社群书统计结果
List
<
Long
>
bookGroupIds
=
pageBeanNew
.
getRecordList
().
stream
().
filter
(
x
->
Objects
.
nonNull
(
x
.
getBookGroupId
())).
map
(
AgentBookStatsDetailVO:
:
getBookGroupId
).
distinct
().
collect
(
Collectors
.
toList
());
List
<
GroupScanUserStatsDTO
>
bookGroupScanStats
=
wechatGroupConsr
.
getAdviserBookGroupScanStats
(
bookGroupIds
);
// 查询交易信息
List
<
Amount4BookAdviserDto
>
amount4BookAdviser
=
tradeConsr
.
getAmount4BookAdviser
(
amountRequestDtos
);
// 查询二维码信息
List
<
AdviserQrcodeSceneDTO
>
sceneDTOS
=
channelConsr
.
listQrcodeSceneByBookAdviserIds
(
sceneRequestDTOS
);
List
<
Long
>
bookGroupIdList
=
pageBeanNew
.
getRecordList
().
stream
().
filter
(
Objects:
:
nonNull
).
map
(
AgentBookStatsDetailVO:
:
getBookGroupId
).
distinct
().
filter
(
Objects:
:
nonNull
).
collect
(
Collectors
.
toList
());
List
<
BookGroupDTO
>
dtoByBookGroupIds
=
new
ArrayList
<>();
if
(
CollUtil
.
isNotEmpty
(
bookGroupIdList
)){
// 查询社群码信息
dtoByBookGroupIds
=
bookGroupDao
.
getDTOByIds
(
bookGroupIdList
);
}
Map
<
Long
,
BookGroupDTO
>
bookGroupDTOMap
=
new
HashMap
<>();
if
(
CollUtil
.
isNotEmpty
(
dtoByBookGroupIds
)){
bookGroupDTOMap
=
dtoByBookGroupIds
.
stream
().
collect
(
Collectors
.
toMap
(
BookGroupDTO:
:
getId
,
x
->
x
,
(
key1
,
key2
)
->
key2
));
}
// ERP再次查询图书信息
raysBookIds
=
erpConsr
.
searchRaysBookId
(
finalRaysBookIds
);
// 组装信息
for
(
AgentBookStatsDetailVO
detailVO
:
pageBeanNew
.
getRecordList
())
{
// 填充ERP信息
if
(
Objects
.
nonNull
(
detailVO
)
&&
Objects
.
nonNull
(
detailVO
.
getBookAdviserId
()))
{
// 填充二维码信息
if
(
CollUtil
.
isNotEmpty
(
sceneDTOS
))
{
List
<
AdviserQrcodeSceneDTO
>
qrcodeSceneDTOS
=
sceneDTOS
.
stream
().
filter
(
sceneDTO
->
Objects
.
equals
(
sceneDTO
.
getBookId
(),
detailVO
.
getBookId
())
&&
Objects
.
equals
(
sceneDTO
.
getAdviserId
(),
detailVO
.
getAdviserId
())
&&
Objects
.
equals
(
sceneDTO
.
getChannelId
(),
detailVO
.
getChannelId
())
).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
qrcodeSceneDTOS
))
{
List
<
QrcodeInfoDto
>
qrcodeList
=
new
ArrayList
<>();
for
(
AdviserQrcodeSceneDTO
qrcodeSceneDTO
:
qrcodeSceneDTOS
)
{
QrcodeInfoDto
qrcodeInfoDto
=
new
QrcodeInfoDto
();
qrcodeInfoDto
.
setLocationName
(
StrUtil
.
isNotBlank
(
qrcodeSceneDTO
.
getLocationName
())
?
qrcodeSceneDTO
.
getLocationName
()
:
"二维码"
);
qrcodeInfoDto
.
setQrcodeUrl
(
qrcodeSceneDTO
.
getQrcodeUrl
());
qrcodeList
.
add
(
qrcodeInfoDto
);
}
detailVO
.
setQrcodeList
(
qrcodeList
);
}
}
// 填充社群码
if
(
CollUtil
.
isNotEmpty
(
bookGroupDTOMap
)
&&
Objects
.
nonNull
(
detailVO
.
getBookGroupId
())
&&
Objects
.
nonNull
(
bookGroupDTOMap
.
get
(
detailVO
.
getBookGroupId
()))
&&
StrUtil
.
isNotBlank
(
bookGroupDTOMap
.
get
(
detailVO
.
getBookGroupId
()).
getGroupQrcodeUrl
())){
QrcodeInfoDto
qrcodeInfoDto
=
new
QrcodeInfoDto
();
qrcodeInfoDto
.
setLocationName
(
"二维码"
);
qrcodeInfoDto
.
setQrcodeUrl
(
bookGroupDTOMap
.
get
(
detailVO
.
getBookGroupId
()).
getGroupQrcodeUrl
());
List
<
QrcodeInfoDto
>
qrcodeInfoDtos
=
CollUtil
.
isEmpty
(
detailVO
.
getQrcodeList
())?
new
ArrayList
<>():
detailVO
.
getQrcodeList
();
qrcodeInfoDtos
.
add
(
qrcodeInfoDto
);
detailVO
.
setQrcodeList
(
qrcodeInfoDtos
);
}
if
(
CollUtil
.
isNotEmpty
(
raysBookIds
))
{
raysBookIds
.
stream
().
filter
(
erpBookInfoDTO
->
Objects
.
equals
(
erpBookInfoDTO
.
getRaysBookId
(),
Objects
.
isNull
(
detailVO
.
getBookId
())?
null
:
detailVO
.
getBookId
().
intValue
())
&&
Objects
.
equals
(
erpBookInfoDTO
.
getAdviserId
(),
detailVO
.
getAdviserId
())
&&
Objects
.
equals
(
erpBookInfoDTO
.
getRaysChannelId
(),
Objects
.
isNull
(
detailVO
.
getChannelId
())?
null
:
detailVO
.
getChannelId
().
intValue
())
).
findAny
().
ifPresent
(
dto
->{
detailVO
.
setProjectNumber
(
dto
.
getProjectNumber
());
detailVO
.
setErpNumber
(
dto
.
getErpNumber
());
detailVO
.
setExpectPublishNum
(
Objects
.
isNull
(
dto
.
getPublishNum
())?
null
:
Math
.
toIntExact
(
dto
.
getPublishNum
()));
detailVO
.
setToProjectTime
(
dto
.
getBuildTime
());
}
);
}
}
// 填充编辑信息
if
(
Objects
.
nonNull
(
detailVO
)
&&
Objects
.
nonNull
(
detailVO
.
getAdviserId
()))
{
if
(
CollUtil
.
isNotEmpty
(
adviserNames
))
{
detailVO
.
setAdviserName
(
adviserNames
.
get
(
detailVO
.
getAdviserId
()));
}
}
// 填充浏览、扫码信息
if
(
Objects
.
nonNull
(
detailVO
)
&&
CollUtil
.
isNotEmpty
(
browseAndScanStats
)){
browseAndScanStats
.
stream
().
filter
(
bookBrowseAndScanStatsDTO
->
Objects
.
equals
(
bookBrowseAndScanStatsDTO
.
getBookId
(),
detailVO
.
getBookId
())
&&
Objects
.
equals
(
bookBrowseAndScanStatsDTO
.
getAdviserId
(),
detailVO
.
getAdviserId
())
&&
Objects
.
equals
(
bookBrowseAndScanStatsDTO
.
getChannelId
(),
detailVO
.
getChannelId
())
).
findFirst
().
ifPresent
(
item
->{
detailVO
.
setBrowseTotal
(
item
.
getBookBrowseTotal
());
detailVO
.
setBrowseUserTotal
(
item
.
getBookBrowseUserTotal
());
detailVO
.
setScanTotal
(
item
.
getBookScanTotal
());
detailVO
.
setScanUserTotal
(
item
.
getBookScanUserTotal
());
});
}
// 补充社群书信息
if
(
Objects
.
nonNull
(
detailVO
)
&&
CollUtil
.
isNotEmpty
(
bookGroupScanStats
)
&&
Objects
.
nonNull
(
detailVO
.
getBookGroupId
())){
List
<
GroupScanUserStatsDTO
>
collect
=
bookGroupScanStats
.
stream
().
filter
(
x
->
Objects
.
equals
(
x
.
getBookGroupId
(),
detailVO
.
getBookGroupId
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
collect
)){
// 浏览量 扫码量
int
total
=
(
int
)
collect
.
stream
().
mapToLong
(
GroupScanUserStatsDTO:
:
getScanTotal
).
sum
();
// 浏览人数 扫码人数
int
user
=
(
int
)
collect
.
stream
().
map
(
GroupScanUserStatsDTO:
:
getWxUserId
).
distinct
().
count
();
detailVO
.
setScanTotal
(
Objects
.
nonNull
(
detailVO
.
getScanTotal
())
?
detailVO
.
getScanTotal
()
+
total
:
total
);
detailVO
.
setBrowseTotal
(
Objects
.
nonNull
(
detailVO
.
getBrowseTotal
())
?
detailVO
.
getBrowseTotal
()
+
total
:
total
);
detailVO
.
setScanUserTotal
(
Objects
.
nonNull
(
detailVO
.
getScanUserTotal
())
?
detailVO
.
getScanUserTotal
()
+
user
:
user
);
detailVO
.
setBrowseUserTotal
(
Objects
.
nonNull
(
detailVO
.
getBrowseUserTotal
())
?
detailVO
.
getBrowseUserTotal
()
+
user
:
user
);
}
}
// 填充交易信息
if
(
Objects
.
nonNull
(
detailVO
)
&&
CollUtil
.
isNotEmpty
(
amount4BookAdviser
)){
amount4BookAdviser
.
stream
().
filter
(
amount4BookAdviserDto
->
Objects
.
equals
(
amount4BookAdviserDto
.
getBookId
(),
detailVO
.
getBookId
())
&&
Objects
.
equals
(
amount4BookAdviserDto
.
getAdviserId
(),
detailVO
.
getAdviserId
())
&&
Objects
.
equals
(
amount4BookAdviserDto
.
getChannelId
(),
detailVO
.
getChannelId
())
).
findFirst
().
ifPresent
(
dto
->{
detailVO
.
setAmountTotal
(
dto
.
getAmountTotal
());
}
);
}
}
JedisClusterUtils
.
set
(
cacheKey
,
JSONObject
.
toJSONString
(
pageBeanNew
),
60
*
60
*
24
);
return
pageBeanNew
;
}
@Override
public
void
exportAgentBookStatsDetail
(
Long
agentId
,
String
name
,
Date
startDate
,
Date
endDate
,
Integer
isRay
)
{
// 开线程导出数据
ThreadPoolUtils
.
EXPORT_THREAD_POOL
.
execute
(()
->
{
String
agentName
=
agentConsr
.
getNameById
(
agentId
);
// 标题
String
excelTitle
=
String
.
format
(
"%s做书明细导出-%s"
,
agentName
,
DateUtil
.
format
(
new
Date
(),
"yyyyMMdd"
));
// 列名称
String
[]
rowsName
=
{
"书刊ID"
,
"书刊名称"
,
"ISBN"
,
"ERP编号"
,
"项目编号"
,
"二维码信息"
,
"编辑ID"
,
"编辑名称"
,
"是否小睿书"
,
"立项时间"
,
"印册量"
,
"总浏览量"
,
"总浏览人数"
,
"总扫码量"
,
"总扫码人数"
,
"成交金额"
};
// 数据列
List
<
Object
[]>
dataList
=
new
ArrayList
<>();
// 分页查询,每次查询1000条
PageBeanNew
<
AgentBookStatsDetailVO
>
pageBeanNew
=
getAgentBookStatsDetail
(
agentId
,
name
,
startDate
,
endDate
,
isRay
,
0
,
1000
);
while
(
Objects
.
nonNull
(
pageBeanNew
)
&&
pageBeanNew
.
getCurrentPage
()
<
pageBeanNew
.
getPageCount
())
{
List
<
AgentBookStatsDetailVO
>
detailVOS
=
pageBeanNew
.
getRecordList
();
for
(
AgentBookStatsDetailVO
detailVO
:
detailVOS
)
{
if
(
Objects
.
nonNull
(
detailVO
))
{
List
<
QrcodeInfoDto
>
qrcodeList
=
detailVO
.
getQrcodeList
();
String
qrcodeInfo
=
""
;
if
(
CollUtil
.
isNotEmpty
(
qrcodeList
)){
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
QrcodeInfoDto
qrcodeInfoDto
:
qrcodeList
)
{
if
(
StrUtil
.
isNotEmpty
(
qrcodeInfoDto
.
getQrcodeUrl
()))
{
continue
;
}
if
(
StrUtil
.
isNotEmpty
(
qrcodeInfoDto
.
getLocationName
()))
{
stringBuilder
.
append
(
"印码位置:"
).
append
(
qrcodeInfoDto
.
getLocationName
()).
append
(
" "
);
}
stringBuilder
.
append
(
"二维码地址:"
).
append
(
qrcodeInfoDto
.
getQrcodeUrl
()).
append
(
"\n"
);
}
qrcodeInfo
=
stringBuilder
.
toString
().
trim
();
}
Object
[]
objects
=
new
Object
[]{
Objects
.
nonNull
(
detailVO
.
getBookId
())
?
detailVO
.
getBookId
()
:
"--"
,
Objects
.
nonNull
(
detailVO
.
getBookName
())
?
detailVO
.
getBookName
()
:
"--"
,
Objects
.
nonNull
(
detailVO
.
getIsbn
())
?
detailVO
.
getIsbn
()
:
"--"
,
Objects
.
nonNull
(
detailVO
.
getErpNumber
())
?
detailVO
.
getErpNumber
()
:
"--"
,
Objects
.
nonNull
(
detailVO
.
getProjectNumber
())
?
detailVO
.
getProjectNumber
()
:
"--"
,
StrUtil
.
isBlank
(
qrcodeInfo
)
?
"--"
:
qrcodeInfo
,
Objects
.
nonNull
(
detailVO
.
getAdviserId
())
?
String
.
valueOf
(
detailVO
.
getAdviserId
())
:
"--"
,
Objects
.
nonNull
(
detailVO
.
getAdviserName
())
?
detailVO
.
getAdviserName
()
:
"--"
,
Objects
.
equals
(
detailVO
.
getIsRay
(),
1
)
?
"是"
:
"否"
,
Objects
.
nonNull
(
detailVO
.
getToProjectTime
())
?
DateUtil
.
format
(
detailVO
.
getToProjectTime
(),
"yyyy/MM/dd"
)
:
"--"
,
Objects
.
nonNull
(
detailVO
.
getExpectPublishNum
())
?
String
.
valueOf
(
detailVO
.
getExpectPublishNum
())
:
"0"
,
Objects
.
nonNull
(
detailVO
.
getBrowseTotal
())
?
String
.
valueOf
(
detailVO
.
getBrowseTotal
())
:
"0"
,
Objects
.
nonNull
(
detailVO
.
getBrowseUserTotal
())
?
String
.
valueOf
(
detailVO
.
getBrowseUserTotal
())
:
"0"
,
Objects
.
nonNull
(
detailVO
.
getScanTotal
())
?
String
.
valueOf
(
detailVO
.
getScanTotal
())
:
"0"
,
Objects
.
nonNull
(
detailVO
.
getScanUserTotal
())
?
String
.
valueOf
(
detailVO
.
getScanUserTotal
())
:
"0"
,
Objects
.
nonNull
(
detailVO
.
getAmountTotal
())
?
detailVO
.
getAmountTotal
().
toString
()
:
"0"
,
};
dataList
.
add
(
objects
);
}
}
pageBeanNew
=
getAgentBookStatsDetail
(
agentId
,
name
,
startDate
,
endDate
,
isRay
,
pageBeanNew
.
getCurrentPage
()
+
1
,
1000
);
}
String
url
=
exportConsr
.
exportExcel
(
excelTitle
,
rowsName
,
dataList
);
sendMsg4ExportAgentBookStatsDetail
(
agentName
,-
1
,
url
,
new
Date
());
});
}
public
void
sendMsg4ExportAgentBookStatsDetail
(
String
agentName
,
long
data
,
String
url
,
Date
sendDate
)
{
LOGGER
.
info
(
"发送出版社做书明细导出Excel完成站内信【Start】data="
+
data
+
"url="
+
url
);
String
letterType
=
"pcloud_book_download"
;
String
content
=
String
.
format
(
"{\"commitTime\":\"%s\",\"type\":\""
+
agentName
+
"做书明细导出\"}"
,
DateUtils
.
formatDate
(
sendDate
));
String
fileName
=
DateUtils
.
today
();
messageConsr
.
sendLetter
(
data
,
0L
,
content
,
SystemCode
.
pcloud
.
code
,
letterType
,
url
,
fileName
);
LOGGER
.
info
(
"发送出版社做书明细导出Excel完成站内信【END】"
);
}
/**
* 根据日期获取出版社季度表示
* 第一季度:12 1 2</p>
* 第二季度:3 4 5</p>
* 第三季度:6 7 8</p>
* 第四季度:9 10 11</p>
* @return 202001
*/
private
int
getAgentQuarterDigital
(
Date
date
)
{
if
(
Objects
.
isNull
(
date
))
{
date
=
new
Date
();
}
int
month
=
DateUtil
.
month
(
date
)
+
1
;
int
year
=
DateUtil
.
year
(
date
);
if
(
month
<
3
)
{
year
--;
month
=
12
;
}
return
year
*
100
+
(
month
/
3
);
}
/**
* 获取上一个季度
*/
private
int
getAgentLastQuarterDigital
(
Date
date
){
if
(
Objects
.
isNull
(
date
)){
date
=
new
Date
();
}
return
getAgentQuarterDigital
(
DateUtil
.
offsetMonth
(
date
,-
3
));
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/BookAdviserDao.java
View file @
f9a9a15b
...
@@ -10,7 +10,10 @@ import com.pcloud.book.book.dto.BookAdviserDto;
...
@@ -10,7 +10,10 @@ import com.pcloud.book.book.dto.BookAdviserDto;
import
com.pcloud.book.book.dto.BookCountAndAdviserIdDTO
;
import
com.pcloud.book.book.dto.BookCountAndAdviserIdDTO
;
import
com.pcloud.book.book.dto.BookCountByAdvisersDto
;
import
com.pcloud.book.book.dto.BookCountByAdvisersDto
;
import
com.pcloud.book.book.dto.BookCountDto
;
import
com.pcloud.book.book.dto.BookCountDto
;
import
com.pcloud.book.book.dto.ERPPublishNumDTO
;
import
com.pcloud.book.book.dto.ErpBookInfoDTO
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.common.core.dao.BaseDao
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
import
java.util.List
;
...
@@ -289,4 +292,10 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
...
@@ -289,4 +292,10 @@ public interface BookAdviserDao extends BaseDao<BookAdviser> {
List
<
BookAdviserDto
>
getBookInfoByBookIds
(
List
<
Long
>
bookIds
,
List
<
Long
>
adviserIds
,
List
<
Long
>
channelIds
);
List
<
BookAdviserDto
>
getBookInfoByBookIds
(
List
<
Long
>
bookIds
,
List
<
Long
>
adviserIds
,
List
<
Long
>
channelIds
);
BookAdviserDto
getBookByBookIdAdviserId
(
Long
bookId
,
Long
adviserId
);
BookAdviserDto
getBookByBookIdAdviserId
(
Long
bookId
,
Long
adviserId
);
List
<
BookAdviserDto
>
getAdviserBookVarietyStats
(
List
<
Long
>
adviserIds
);
List
<
ERPPublishNumDTO
>
getErpPublishNumQueryParams
(
List
<
Long
>
adviserIds
);
List
<
AgentBookStatsDetailVO
>
getAgentBookStatsDetail
(
List
<
ErpBookInfoDTO
>
raysBookIds
,
Integer
isRay
,
String
name
,
List
<
Long
>
advisers
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/impl/BookAdviserDaoImpl.java
View file @
f9a9a15b
...
@@ -3,10 +3,22 @@
...
@@ -3,10 +3,22 @@
*/
*/
package
com
.
pcloud
.
book
.
book
.
dao
.
impl
;
package
com
.
pcloud
.
book
.
book
.
dao
.
impl
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.map.MapUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.pcloud.book.book.dao.BookAdviserDao
;
import
com.pcloud.book.book.dao.BookAdviserDao
;
import
com.pcloud.book.book.dto.*
;
import
com.pcloud.book.book.dto.AdviserBookInfoDTO
;
import
com.pcloud.book.book.dto.AdviserManageDto
;
import
com.pcloud.book.book.dto.AviserBookInfoParam
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookCountAndAdviserIdDTO
;
import
com.pcloud.book.book.dto.BookCountByAdvisersDto
;
import
com.pcloud.book.book.dto.BookCountDto
;
import
com.pcloud.book.book.dto.ERPPublishNumDTO
;
import
com.pcloud.book.book.dto.ErpBookInfoDTO
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -316,4 +328,27 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
...
@@ -316,4 +328,27 @@ public class BookAdviserDaoImpl extends BaseDaoImpl<BookAdviser> implements Book
paramMap
.
put
(
"adviserId"
,
adviserId
);
paramMap
.
put
(
"adviserId"
,
adviserId
);
return
super
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getBookByBookIdAdviserId"
),
paramMap
);
return
super
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getBookByBookIdAdviserId"
),
paramMap
);
}
}
@Override
public
List
<
BookAdviserDto
>
getAdviserBookVarietyStats
(
List
<
Long
>
adviserIds
)
{
return
super
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getAdviserBookVarietyStats"
),
MapUtil
.
of
(
"adviserIds"
,
adviserIds
));
}
@Override
public
List
<
ERPPublishNumDTO
>
getErpPublishNumQueryParams
(
List
<
Long
>
adviserIds
)
{
return
super
.
getSqlSession
().
selectList
(
getStatement
(
"getErpPublishNumQueryParams"
),
MapUtil
.
of
(
"adviserIds"
,
adviserIds
));
}
@Override
public
List
<
AgentBookStatsDetailVO
>
getAgentBookStatsDetail
(
List
<
ErpBookInfoDTO
>
raysBookIds
,
Integer
isRay
,
String
name
,
List
<
Long
>
advisers
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(
StrUtil
.
isNotBlank
(
name
)
&&
name
.
startsWith
(
"BK"
)){
map
.
put
(
"bookNo"
,
name
.
substring
(
2
));
}
map
.
put
(
"raysBookIds"
,
CollUtil
.
isEmpty
(
raysBookIds
)
?
null
:
raysBookIds
);
map
.
put
(
"isRay"
,
isRay
);
map
.
put
(
"name"
,
name
);
map
.
put
(
"advisers"
,
advisers
);
return
super
.
getSqlSession
().
selectList
(
getStatement
(
"getAgentBookStatsDetail"
),
map
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/facade/BookAdviserFacade.java
View file @
f9a9a15b
...
@@ -11,16 +11,28 @@ import com.pcloud.book.book.dto.BookQrcodeStatisticsDTO;
...
@@ -11,16 +11,28 @@ import com.pcloud.book.book.dto.BookQrcodeStatisticsDTO;
import
com.pcloud.book.book.dto.BookResourceStatisticsDTO
;
import
com.pcloud.book.book.dto.BookResourceStatisticsDTO
;
import
com.pcloud.book.book.dto.MapResourceTotalCountDTO
;
import
com.pcloud.book.book.dto.MapResourceTotalCountDTO
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.permission.PermissionException
;
import
io.swagger.annotations.*
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
import
org.codehaus.jackson.JsonParseException
;
import
org.codehaus.jackson.JsonParseException
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -252,4 +264,28 @@ public interface BookAdviserFacade {
...
@@ -252,4 +264,28 @@ public interface BookAdviserFacade {
@PostMapping
(
"getBookInfoByBookIds"
)
@PostMapping
(
"getBookInfoByBookIds"
)
ResponseDto
<?>
getBookInfoByBookIds
(
@RequestBody
MapResourceTotalCountDTO
mapResourceTotalCountDTO
);
ResponseDto
<?>
getBookInfoByBookIds
(
@RequestBody
MapResourceTotalCountDTO
mapResourceTotalCountDTO
);
@ApiOperation
(
"出版社作书数据列表明细"
)
@RequestMapping
(
value
=
"/getAgentBookStatsDetail"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<
PageBeanNew
<
AgentBookStatsDetailVO
>>
getAgentBookStatsDetail
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"agentId"
)
Long
agentId
,
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
,
@RequestParam
(
value
=
"startDate"
,
required
=
false
)
String
startDate
,
@RequestParam
(
value
=
"endDate"
,
required
=
false
)
String
endDate
,
@RequestParam
(
value
=
"isRay"
,
required
=
false
)
Integer
isRay
,
@RequestParam
(
value
=
"currentPage"
)
Integer
currentPage
,
@RequestParam
(
value
=
"numPerPage"
)
Integer
numPerPage
)
throws
BizException
;
@ApiOperation
(
"出版社作书数据列表明细导出"
)
@RequestMapping
(
value
=
"/exportAgentBookStatsDetail"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<?>
exportAgentBookStatsDetail
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"agentId"
)
Long
agentId
,
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
,
@RequestParam
(
value
=
"startDate"
,
required
=
false
)
String
startDate
,
@RequestParam
(
value
=
"endDate"
,
required
=
false
)
String
endDate
,
@RequestParam
(
value
=
"isRay"
,
required
=
false
)
Integer
isRay
)
throws
BizException
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/facade/impl/BookAdviserFacadeImpl.java
View file @
f9a9a15b
...
@@ -3,19 +3,29 @@
...
@@ -3,19 +3,29 @@
*/
*/
package
com
.
pcloud
.
book
.
book
.
facade
.
impl
;
package
com
.
pcloud
.
book
.
book
.
facade
.
impl
;
import
java.util.ArrayList
;
import
cn.hutool.core.date.DateTime
;
import
java.util.List
;
import
cn.hutool.core.date.DateUtil
;
import
java.util.Map
;
import
com.pcloud.book.base.dto.CountDto
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.dto.AdviserManageDto
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookCountDto
;
import
com.pcloud.book.book.dto.BookDataStatisticsDTO
;
import
com.pcloud.book.book.dto.BookDataStatisticsDTO
;
import
com.pcloud.book.book.dto.BookQrcodeStatisticsDTO
;
import
com.pcloud.book.book.dto.BookQrcodeStatisticsDTO
;
import
com.pcloud.book.book.dto.BookResourceStatisticsDTO
;
import
com.pcloud.book.book.dto.BookResourceStatisticsDTO
;
import
com.pcloud.book.book.dto.MapResourceTotalCountDTO
;
import
com.pcloud.book.book.dto.MapResourceTotalCountDTO
;
import
com.pcloud.book.book.dto.QrcodeStatisticsDTO
;
import
com.pcloud.book.book.dto.QrcodeStatisticsDTO
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.facade.BookAdviserFacade
;
import
com.pcloud.book.book.vo.AgentBookStatsDetailVO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.PcloudAdviserBookVO
;
import
com.pcloud.book.book.vo.QrCodeVO
;
import
com.pcloud.book.book.vo.QrCodeVO
;
import
com.pcloud.channelcenter.qrcode.entity.QrcodeScene
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.ParamChecker
;
import
com.pcloud.common.utils.SessionUtil
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
org.codehaus.jackson.JsonParseException
;
import
org.codehaus.jackson.JsonParseException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -27,17 +37,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -27,17 +37,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.pcloud.book.base.dto.CountDto
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
java.util.ArrayList
;
import
com.pcloud.book.book.dto.AdviserManageDto
;
import
java.util.Date
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
java.util.List
;
import
com.pcloud.book.book.dto.BookCountDto
;
import
java.util.Map
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
java.util.Objects
;
import
com.pcloud.book.book.facade.BookAdviserFacade
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
/**
/**
* @描述:顾问书籍管理接口实现类
* @描述:顾问书籍管理接口实现类
...
@@ -266,4 +271,44 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade {
...
@@ -266,4 +271,44 @@ public class BookAdviserFacadeImpl implements BookAdviserFacade {
public
ResponseDto
<?>
getBookInfoByBookIds
(
@RequestBody
MapResourceTotalCountDTO
mapResourceTotalCountDTO
)
{
public
ResponseDto
<?>
getBookInfoByBookIds
(
@RequestBody
MapResourceTotalCountDTO
mapResourceTotalCountDTO
)
{
return
new
ResponseDto
<>(
bookAdviserBiz
.
getBookInfoByBookIds
(
mapResourceTotalCountDTO
.
getBookIds
(),
mapResourceTotalCountDTO
.
getAdviserIds
(),
mapResourceTotalCountDTO
.
getChannelIds
()));
return
new
ResponseDto
<>(
bookAdviserBiz
.
getBookInfoByBookIds
(
mapResourceTotalCountDTO
.
getBookIds
(),
mapResourceTotalCountDTO
.
getAdviserIds
(),
mapResourceTotalCountDTO
.
getChannelIds
()));
}
}
@Override
@RequestMapping
(
value
=
"/getAgentBookStatsDetail"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<
PageBeanNew
<
AgentBookStatsDetailVO
>>
getAgentBookStatsDetail
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"agentId"
)
Long
agentId
,
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
,
@RequestParam
(
value
=
"startDate"
,
required
=
false
)
String
startDate
,
@RequestParam
(
value
=
"endDate"
,
required
=
false
)
String
endDate
,
@RequestParam
(
value
=
"isRay"
,
required
=
false
)
Integer
isRay
,
@RequestParam
(
value
=
"currentPage"
)
Integer
currentPage
,
@RequestParam
(
value
=
"numPerPage"
)
Integer
numPerPage
)
throws
BizException
{
SessionUtil
.
getToken4Redis
(
token
);
ParamChecker
.
checkPageParamIsAbsent
(
currentPage
,
numPerPage
,
"分页参数错误"
);
DateTime
start
=
Objects
.
isNull
(
DateUtil
.
parse
(
startDate
))?
null
:
DateUtil
.
beginOfDay
(
DateUtil
.
parse
(
startDate
));
DateTime
end
=
Objects
.
isNull
(
DateUtil
.
parse
(
endDate
))?
null
:
DateUtil
.
beginOfDay
(
DateUtil
.
parse
(
endDate
));
// 开始结束同一天 则结束时间后延一天
if
(
Objects
.
nonNull
(
start
)
&&
Objects
.
equals
(
start
,
end
)){
end
=
DateUtil
.
offsetDay
(
end
.
toJdkDate
(),
1
);
}
return
new
ResponseDto
<>(
bookAdviserBiz
.
getAgentBookStatsDetail
(
agentId
,
name
,
start
,
end
,
isRay
,
currentPage
,
numPerPage
));
}
@Override
@RequestMapping
(
value
=
"/exportAgentBookStatsDetail"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
exportAgentBookStatsDetail
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"agentId"
)
Long
agentId
,
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
,
@RequestParam
(
value
=
"startDate"
,
required
=
false
)
String
startDate
,
@RequestParam
(
value
=
"endDate"
,
required
=
false
)
String
endDate
,
@RequestParam
(
value
=
"isRay"
,
required
=
false
)
Integer
isRay
)
throws
BizException
{
SessionUtil
.
getToken4Redis
(
token
);
DateTime
start
=
Objects
.
isNull
(
DateUtil
.
parse
(
startDate
))?
null
:
DateUtil
.
beginOfDay
(
DateUtil
.
parse
(
startDate
));
DateTime
end
=
Objects
.
isNull
(
DateUtil
.
parse
(
endDate
))?
null
:
DateUtil
.
beginOfDay
(
DateUtil
.
parse
(
endDate
));
bookAdviserBiz
.
exportAgentBookStatsDetail
(
agentId
,
name
,
start
,
end
,
isRay
);
return
new
ResponseDto
<>();
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/service/impl/BookAdviserServiceImpl.java
View file @
f9a9a15b
...
@@ -5,7 +5,17 @@ package com.pcloud.book.book.service.impl;
...
@@ -5,7 +5,17 @@ package com.pcloud.book.book.service.impl;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.biz.BookRaysClassifyBiz
;
import
com.pcloud.book.book.biz.BookRaysClassifyBiz
;
import
com.pcloud.book.book.dto.*
;
import
com.pcloud.book.book.dto.AdviserBookInfoDTO
;
import
com.pcloud.book.book.dto.AviserBookInfoParam
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookCountAndAdviserIdDTO
;
import
com.pcloud.book.book.dto.BookCountByAdvisersDto
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookResourceStatisticsDTO
;
import
com.pcloud.book.book.dto.BookRightsSettingDTO
;
import
com.pcloud.book.book.dto.BookVarietyStatsDto
;
import
com.pcloud.book.book.dto.BookVarietyStatsRequestDto
;
import
com.pcloud.book.book.dto.MapResourceTotalCountDTO
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.service.BookAdviserService
;
import
com.pcloud.book.book.service.BookAdviserService
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
...
@@ -13,7 +23,13 @@ import com.pcloud.common.exceptions.BizException;
...
@@ -13,7 +23,13 @@ import com.pcloud.common.exceptions.BizException;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
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.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -149,4 +165,10 @@ public class BookAdviserServiceImpl implements BookAdviserService {
...
@@ -149,4 +165,10 @@ public class BookAdviserServiceImpl implements BookAdviserService {
public
ResponseEntity
<
ResponseDto
<
Map
<
String
,
BookResourceStatisticsDTO
>>>
mapResourceTotalCount
(
@RequestBody
MapResourceTotalCountDTO
mapResourceTotalCountDTO
)
{
public
ResponseEntity
<
ResponseDto
<
Map
<
String
,
BookResourceStatisticsDTO
>>>
mapResourceTotalCount
(
@RequestBody
MapResourceTotalCountDTO
mapResourceTotalCountDTO
)
{
return
ResponseHandleUtil
.
toResponse
(
bookAdviserBiz
.
mapResourceTotalCount
(
mapResourceTotalCountDTO
.
getAdviserIds
(),
mapResourceTotalCountDTO
.
getBookIds
(),
mapResourceTotalCountDTO
.
getChannelIds
()));
return
ResponseHandleUtil
.
toResponse
(
bookAdviserBiz
.
mapResourceTotalCount
(
mapResourceTotalCountDTO
.
getAdviserIds
(),
mapResourceTotalCountDTO
.
getBookIds
(),
mapResourceTotalCountDTO
.
getChannelIds
()));
}
}
@Override
@PostMapping
(
"/getAdviserBookVarietyStats"
)
public
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
BookVarietyStatsDto
>>>
getAdviserBookVarietyStats
(
@RequestBody
List
<
BookVarietyStatsRequestDto
>
requestDtos
)
throws
BizException
{
return
ResponseHandleUtil
.
toResponse
(
bookAdviserBiz
.
getAdviserBookVarietyStats
(
requestDtos
));
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/vo/AgentBookStatsDetailVO.java
0 → 100644
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
book
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* 出版社做书数据列表明细
*
* @author guiq
* @version 1.0
* @since 2020年9月24日
*/
@Data
@ApiModel
(
"出版社做书数据列表明细"
)
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
AgentBookStatsDetailVO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
9125134175050870278L
;
/**
* 书名
*/
@ApiModelProperty
(
"书名"
)
private
String
bookName
;
/**
* ISBN
*/
@ApiModelProperty
(
"ISBN"
)
private
String
isbn
;
/**
* 序号
*/
@ApiModelProperty
(
"序号"
)
private
String
serialNumber
;
/**
* ERP编号
*/
@ApiModelProperty
(
"ERP编号"
)
private
String
erpNumber
;
/**
* 项目编号
*/
@ApiModelProperty
(
"项目编号"
)
private
String
projectNumber
;
/**
* 图书ID
*/
@ApiModelProperty
(
"图书ID"
)
private
Long
bookId
;
/**
* 二维码列表
*/
@ApiModelProperty
(
"二维码列表"
)
private
List
<
QrcodeInfoDto
>
qrcodeList
;
/**
* 编辑名称
*/
@ApiModelProperty
(
"编辑名称"
)
private
String
adviserName
;
/**
* 编辑ID
*/
@ApiModelProperty
(
"编辑ID"
)
private
Long
adviserId
;
/**
* 是否小睿书
*/
@ApiModelProperty
(
"是否小睿书"
)
private
Integer
isRay
;
/**
* 立项时间
*/
@ApiModelProperty
(
"立项时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
toProjectTime
;
/**
* 印册量
*/
@ApiModelProperty
(
"印册量"
)
private
Integer
expectPublishNum
;
/**
* 总浏览量
*/
@ApiModelProperty
(
"总浏览量"
)
private
Integer
browseTotal
;
/**
* 总浏览人数
*/
@ApiModelProperty
(
"总浏览人数"
)
private
Integer
browseUserTotal
;
/**
* 总扫码量
*/
@ApiModelProperty
(
"总扫码量"
)
private
Integer
scanTotal
;
/**
* 总扫码人数
*/
@ApiModelProperty
(
"总扫码人数"
)
private
Integer
scanUserTotal
;
/**
* 总成交金额
*/
@ApiModelProperty
(
"总成交金额"
)
private
BigDecimal
amountTotal
;
/**
* bookAdviserId
*/
@ApiModelProperty
(
"bookAdviserId"
)
private
Long
bookAdviserId
;
/**
* channelId
*/
@ApiModelProperty
(
"channelId"
)
private
Long
channelId
;
/**
* bookGroupId
*/
@ApiModelProperty
(
"bookGroupId"
)
private
Long
bookGroupId
;
}
pcloud-service-book/src/main/java/com/pcloud/book/book/vo/QrcodeInfoDto.java
0 → 100644
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
book
.
vo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* 出版社作书数据列表-二维码信息
*
* @author guiq
* @version 1.0
* @since 2020年9月24日
*/
@Data
@ApiModel
(
"出版社作书数据列表-二维码信息"
)
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
QrcodeInfoDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
3951537842280735854L
;
/**
* 印码位置
*/
@ApiModelProperty
(
"印码位置"
)
private
String
locationName
;
/**
* 二维码地址
*/
@ApiModelProperty
(
"二维码地址"
)
private
String
qrcodeUrl
;
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/analysisengine/BrowseRecordConsr.java
View file @
f9a9a15b
...
@@ -3,6 +3,8 @@
...
@@ -3,6 +3,8 @@
*/
*/
package
com
.
pcloud
.
book
.
consumer
.
analysisengine
;
package
com
.
pcloud
.
book
.
consumer
.
analysisengine
;
import
cn.hutool.core.collection.CollUtil
;
import
com.pcloud.analysisengine.browse.dto.BookBrowseAndScanStatsDTO
;
import
com.pcloud.analysisengine.browse.dto.BookServeBrowseCountParameterDTO
;
import
com.pcloud.analysisengine.browse.dto.BookServeBrowseCountParameterDTO
;
import
com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto
;
import
com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto
;
import
com.pcloud.analysisengine.browse.dto.GroupBrowseStatisticVO
;
import
com.pcloud.analysisengine.browse.dto.GroupBrowseStatisticVO
;
...
@@ -12,12 +14,12 @@ import com.pcloud.common.core.aspect.ParamLog;
...
@@ -12,12 +14,12 @@ import com.pcloud.common.core.aspect.ParamLog;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -181,4 +183,18 @@ public class BrowseRecordConsr {
...
@@ -181,4 +183,18 @@ public class BrowseRecordConsr {
return
map
;
return
map
;
}
}
@ParamLog
(
"获取图书扫码量,浏览量"
)
public
List
<
BookBrowseAndScanStatsDTO
>
getBookBrowseAndScanStats
(
List
<
BookBrowseAndScanStatsDTO
>
dtos
)
{
if
(
CollUtil
.
isEmpty
(
dtos
)){
return
new
ArrayList
<>();
}
List
<
BookBrowseAndScanStatsDTO
>
bookBrowseAndScanStatsDTOS
=
new
ArrayList
<>();
try
{
bookBrowseAndScanStatsDTOS
=
ResponseHandleUtil
.
parseList
(
browseRecordService
.
getBookBrowseAndScanStats
(
dtos
),
BookBrowseAndScanStatsDTO
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"获取图书扫码量,浏览量失败,err:{}"
,
e
.
getMessage
(),
e
);
}
return
bookBrowseAndScanStatsDTOS
;
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/erp/ErpConsr.java
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
consumer
.
erp
;
package
com
.
pcloud
.
book
.
consumer
.
erp
;
import
cn.hutool.core.collection.CollUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.TypeReference
;
import
com.alibaba.fastjson.TypeReference
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.book.dto.CreateBookResultVO
;
import
com.pcloud.book.book.dto.CreateBookResultVO
;
import
com.pcloud.book.book.dto.ERPPublishNumDTO
;
import
com.pcloud.book.book.dto.ErpBookInfoDTO
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
...
@@ -18,6 +21,8 @@ import org.slf4j.LoggerFactory;
...
@@ -18,6 +21,8 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -161,4 +166,75 @@ public class ErpConsr {
...
@@ -161,4 +166,75 @@ public class ErpConsr {
throw
new
BookBizException
(
BookBizException
.
INVOKE_CONTENT_ERROR
,
"创建书刊之后同步去更新erp信息~!"
);
throw
new
BookBizException
(
BookBizException
.
INVOKE_CONTENT_ERROR
,
"创建书刊之后同步去更新erp信息~!"
);
}
}
}
}
@ParamLog
(
"获取图书印册量"
)
public
List
<
ERPPublishNumDTO
>
getBookExpectPublishNum
(
List
<
ERPPublishNumDTO
>
dtos
)
{
if
(
CollUtil
.
isEmpty
(
dtos
))
{
return
new
ArrayList
<>();
}
Map
<
String
,
String
>
headers
=
new
HashMap
<>();
headers
.
put
(
"Content-Type"
,
"application/json"
);
try
{
HttpResponse
response
=
HttpUtils
.
doPost
(
domain
,
"/erp/project4Third/getBookExpectPublishNum"
,
"POST"
,
headers
,
new
HashMap
<>(),
JSONObject
.
toJSONString
(
dtos
));
String
entityString
=
EntityUtils
.
toString
(
response
.
getEntity
());
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
entityString
);
if
(
jsonObject
.
getInteger
(
"errCode"
)
!=
0
)
{
throw
new
BizException
(
jsonObject
.
getString
(
"message"
));
}
return
JSONObject
.
parseArray
(
jsonObject
.
getJSONArray
(
"data"
).
toJSONString
(),
ERPPublishNumDTO
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"获取图书印册量失败 [projectService.getBookExpectPublishNum]:"
+
e
.
getMessage
(),
e
);
throw
new
BookBizException
(
BookBizException
.
INVOKE_CONTENT_ERROR
,
"获取图书印册量失败!"
);
}
}
@ParamLog
(
"模糊查询图书信息"
)
public
List
<
ErpBookInfoDTO
>
searchBookInfo
(
String
name
,
List
<
Long
>
advisers
,
Date
startTime
,
Date
endTime
)
{
if
(
CollUtil
.
isEmpty
(
advisers
))
{
return
new
ArrayList
<>();
}
Map
<
String
,
String
>
headers
=
new
HashMap
<>();
headers
.
put
(
"Content-Type"
,
"application/json"
);
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"name"
,
name
);
params
.
put
(
"advisers"
,
advisers
);
params
.
put
(
"startTime"
,
startTime
);
params
.
put
(
"endTime"
,
endTime
);
try
{
HttpResponse
response
=
HttpUtils
.
doPost
(
domain
,
"/erp/project4Third/searchBookInfo"
,
"GET"
,
headers
,
new
HashMap
<>(),
JSONObject
.
toJSONString
(
params
));
String
entityString
=
EntityUtils
.
toString
(
response
.
getEntity
());
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
entityString
);
if
(
jsonObject
.
getInteger
(
"errCode"
)
!=
0
)
{
throw
new
BizException
(
jsonObject
.
getString
(
"message"
));
}
return
JSONObject
.
parseArray
(
jsonObject
.
getJSONArray
(
"data"
).
toJSONString
(),
ErpBookInfoDTO
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"模糊查询图书信息 [projectService.searchBookInfo]:"
+
e
.
getMessage
(),
e
);
throw
new
BookBizException
(
BookBizException
.
INVOKE_CONTENT_ERROR
,
"模糊查询图书信息失败!"
);
}
}
@ParamLog
(
"模糊查询erp图书ID"
)
public
List
<
ErpBookInfoDTO
>
searchRaysBookId
(
List
<
ErpBookInfoDTO
>
erpBookInfoDTOS
)
{
if
(
CollUtil
.
isEmpty
(
erpBookInfoDTOS
))
{
return
new
ArrayList
<>();
}
Map
<
String
,
String
>
headers
=
new
HashMap
<>();
headers
.
put
(
"Content-Type"
,
"application/json"
);
try
{
HttpResponse
response
=
HttpUtils
.
doPost
(
domain
,
"/erp/project4Third/searchRaysBookId"
,
"GET"
,
headers
,
new
HashMap
<>(),
JSONObject
.
toJSONString
(
erpBookInfoDTOS
));
String
entityString
=
EntityUtils
.
toString
(
response
.
getEntity
());
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
entityString
);
if
(
jsonObject
.
getInteger
(
"errCode"
)
!=
0
)
{
throw
new
BizException
(
jsonObject
.
getString
(
"message"
));
}
return
JSONObject
.
parseArray
(
jsonObject
.
getJSONArray
(
"data"
).
toJSONString
(),
ErpBookInfoDTO
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"模糊查询图书信息 [projectService.searchBookInfo]:"
+
e
.
getMessage
(),
e
);
throw
new
BookBizException
(
BookBizException
.
INVOKE_CONTENT_ERROR
,
"模糊查询erp图书ID失败!"
);
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/trade/TradeConsr.java
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
consumer
.
trade
;
package
com
.
pcloud
.
book
.
consumer
.
trade
;
import
com.pcloud.book.base.exception.BookBizException
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.facade.tradecenter.dto.Amount4BookAdviserDto
;
import
com.pcloud.facade.tradecenter.dto.BookGroupSaleSearchDto
;
import
com.pcloud.facade.tradecenter.dto.BookGroupSaleSearchDto
;
import
com.pcloud.facade.tradecenter.dto.BookIncomeQueryVo
;
import
com.pcloud.facade.tradecenter.dto.BookIncomeQueryVo
;
import
com.pcloud.facade.tradecenter.dto.ClassifyPayDetailDto
;
import
com.pcloud.facade.tradecenter.dto.ClassifyPayDetailDto
;
...
@@ -264,4 +265,17 @@ public class TradeConsr {
...
@@ -264,4 +265,17 @@ public class TradeConsr {
}
}
return
map
;
return
map
;
}
}
public
List
<
Amount4BookAdviserDto
>
getAmount4BookAdviser
(
List
<
Amount4BookAdviserDto
>
requestDtos
)
{
if
(
CollUtil
.
isEmpty
(
requestDtos
))
{
return
new
ArrayList
<>();
}
try
{
return
ResponseHandleUtil
.
parseList
(
orderFormService
.
getAmount4BookAdviser
(
requestDtos
),
Amount4BookAdviserDto
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"查询编辑图书交易额失败.[getAmount4BookAdviser]:{}"
,
e
.
getMessage
(),
e
);
}
return
new
ArrayList
<>();
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/user/ChannelConsr.java
View file @
f9a9a15b
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
package
com
.
pcloud
.
book
.
consumer
.
user
;
package
com
.
pcloud
.
book
.
consumer
.
user
;
import
com.pcloud.channelcenter.base.exceptions.ChannelBizException
;
import
com.pcloud.channelcenter.base.exceptions.ChannelBizException
;
import
com.pcloud.channelcenter.qrcode.dto.AdviserQrcodeSceneDTO
;
import
com.pcloud.channelcenter.qrcode.dto.MapResourceCountDTO
;
import
com.pcloud.channelcenter.qrcode.dto.MapResourceCountDTO
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeMessageDTO
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeMessageDTO
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto
;
...
@@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -23,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -249,4 +251,16 @@ public class ChannelConsr {
...
@@ -249,4 +251,16 @@ public class ChannelConsr {
throw
new
ChannelBizException
(
ChannelBizException
.
PARAM_IS_NULL
,
"获取二维码位置失败"
);
throw
new
ChannelBizException
(
ChannelBizException
.
PARAM_IS_NULL
,
"获取二维码位置失败"
);
}
}
}
}
public
List
<
AdviserQrcodeSceneDTO
>
listQrcodeSceneByBookAdviserIds
(
List
<
AdviserQrcodeSceneDTO
>
bookAdviserIds
)
{
if
(
CollectionUtils
.
isEmpty
(
bookAdviserIds
))
{
return
new
ArrayList
<>();
}
try
{
return
ResponseHandleUtil
.
parseList
(
qrcodeSceneService
.
listQrcodeSceneByBookAdviserIds
(
bookAdviserIds
),
AdviserQrcodeSceneDTO
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"批量获取二维码及其印码位置 失败:{} "
,
e
.
getMessage
(),
e
);
}
return
new
ArrayList
<>();
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
View file @
f9a9a15b
package
com
.
pcloud
.
book
.
consumer
.
wechatgroup
;
package
com
.
pcloud
.
book
.
consumer
.
wechatgroup
;
import
cn.hutool.core.collection.CollUtil
;
import
com.dcg.coolq.sdk.CoolQSDK
;
import
com.dcg.coolq.sdk.CoolQSDK
;
import
com.dcg.coolq.sdk.message.vos.send.PrivateMsgSendVO
;
import
com.dcg.coolq.sdk.message.vos.send.PrivateMsgSendVO
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.pcloud.book.applet.dto.SpecialBookDTO
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
...
@@ -14,6 +14,7 @@ import com.pcloud.common.utils.json.JSONUtils;
...
@@ -14,6 +14,7 @@ import com.pcloud.common.utils.json.JSONUtils;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupScanUserStatsDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserCountDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserCountDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserDTO
;
import
com.pcloud.wechatgroup.group.dto.RobotReplyDTO
;
import
com.pcloud.wechatgroup.group.dto.RobotReplyDTO
;
...
@@ -37,7 +38,7 @@ import com.pcloud.wechatgroup.selfrobot.dto.SelfRobotDTO;
...
@@ -37,7 +38,7 @@ import com.pcloud.wechatgroup.selfrobot.dto.SelfRobotDTO;
import
com.pcloud.wechatgroup.selfrobot.dto.SendMessageDTO
;
import
com.pcloud.wechatgroup.selfrobot.dto.SendMessageDTO
;
import
com.pcloud.wechatgroup.selfrobot.dto.UserRobotDTO
;
import
com.pcloud.wechatgroup.selfrobot.dto.UserRobotDTO
;
import
com.pcloud.wechatgroup.selfrobot.service.SelfRobotService
;
import
com.pcloud.wechatgroup.selfrobot.service.SelfRobotService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -50,8 +51,6 @@ import java.util.HashMap;
...
@@ -50,8 +51,6 @@ import java.util.HashMap;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
lombok.extern.slf4j.Slf4j
;
@Slf4j
@Slf4j
@Component
(
"wechatGroupConsr"
)
@Component
(
"wechatGroupConsr"
)
public
class
WechatGroupConsr
{
public
class
WechatGroupConsr
{
...
@@ -792,4 +791,29 @@ public class WechatGroupConsr {
...
@@ -792,4 +791,29 @@ public class WechatGroupConsr {
}
}
return
map
;
return
map
;
}
}
@ParamLog
(
"根据编辑列表获取社群书扫码统计信息"
)
public
List
<
GroupScanUserStatsDTO
>
getBookGroupScanStats
(
List
<
Long
>
adviserIds
){
List
<
GroupScanUserStatsDTO
>
list
=
new
ArrayList
<>();
try
{
list
=
ResponseHandleUtil
.
parseList
(
groupMemberService
.
getBookGroupScanStats
(
adviserIds
),
GroupScanUserStatsDTO
.
class
);
}
catch
(
Exception
e
){
log
.
error
(
"根据编辑列表获取社群书扫码统计信息.[getBookGroupScanStats]失败, err:{}"
,
e
.
getMessage
(),
e
);
}
return
list
;
}
@ParamLog
(
"根据bookGroupIds获取社群书扫码统计信息"
)
public
List
<
GroupScanUserStatsDTO
>
getAdviserBookGroupScanStats
(
List
<
Long
>
bookAdviserIds
){
if
(
CollUtil
.
isEmpty
(
bookAdviserIds
)){
return
new
ArrayList
<>();
}
List
<
GroupScanUserStatsDTO
>
list
=
new
ArrayList
<>();
try
{
list
=
ResponseHandleUtil
.
parseList
(
groupMemberService
.
getAdviserBookGroupScanStats
(
bookAdviserIds
),
GroupScanUserStatsDTO
.
class
);
}
catch
(
Exception
e
){
log
.
error
(
"根据bookGroupIds获取社群书扫码统计信息.[getAdviserBookGroupScanStats]失败, err:{}"
,
e
.
getMessage
(),
e
);
}
return
list
;
}
}
}
pcloud-service-book/src/main/resources/mapper/book/BookAdviser.Mapper.xml
View file @
f9a9a15b
...
@@ -869,4 +869,110 @@
...
@@ -869,4 +869,110 @@
ORDER BY IS_MAIN_EDITOR DESC,IS_DELETE ASC
ORDER BY IS_MAIN_EDITOR DESC,IS_DELETE ASC
LIMIT 1
LIMIT 1
</select>
</select>
<select
id=
"getAdviserBookVarietyStats"
parameterType=
"map"
resultType=
"com.pcloud.book.book.dto.BookAdviserDto"
>
SELECT
BOOK_ID AS bookId,
ADVISER_ID adviserId,
CREATED_DATE createdDate
FROM
book_adviser
WHERE
IS_DELETE = 0
<if
test=
"null != adviserIds and adviserIds.size > 0"
>
AND ADVISER_ID IN
<foreach
collection=
"adviserIds"
open=
"("
item=
"item"
close=
")"
separator=
","
>
#{item}
</foreach>
</if>
</select>
<select
id=
"getErpPublishNumQueryParams"
parameterType=
"map"
resultType=
"com.pcloud.book.book.dto.ERPPublishNumDTO"
>
SELECT
ADVISER_ID AS adviserId,
CHANNEL_ID AS channelId,
BOOK_ID AS bookId,
CREATED_DATE AS createDate
FROM
book_adviser
WHERE
IS_DELETE = 0 AND ADVISER_ID IN
<foreach
collection=
"adviserIds"
item=
"item"
close=
")"
open=
"("
separator=
","
>
#{item}
</foreach>
GROUP BY
ADVISER_ID,
CHANNEL_ID,
BOOK_ID
</select>
<select
id=
"getAgentBookStatsDetail"
parameterType=
"map"
resultType=
"com.pcloud.book.book.vo.AgentBookStatsDetailVO"
>
SELECT
tb.bookAdviserId,
tb.channelId,
tb.bookName,
tb.isbn,
tb.bookId,
tb.adviserId,
tb.isRay,
tb.serialNumber,
tb.bookGroupId
FROM (
SELECT
ba.BOOK_ADVISER_ID AS bookAdviserId,
ba.CHANNEL_ID AS channelId,
b.BOOK_NAME AS bookName,
b.ISBN AS isbn,
b.BOOK_ID AS bookId,
ba.ADVISER_ID AS adviserId,
IF(ba.is_open_robot_process OR bg.join_group_type = 4, 1, 0) AS isRay,
b.SERIAL_NUMBER AS serialNumber,
bg.id AS bookGroupId
FROM
book_adviser ba
LEFT JOIN book b ON ba.BOOK_ID = b.BOOK_ID
LEFT JOIN book_group bg on ba.BOOK_ID = bg.book_id AND ba.CHANNEL_ID = bg.channel_id AND ba.ADVISER_ID = bg.create_user
<where>
ba.ADVISER_ID IN
<foreach
collection=
"advisers"
separator=
","
close=
")"
item=
"it"
open=
"("
>
${it}
</foreach>
<if
test=
"raysBookIds != null and raysBookIds.size > 0 or name != null"
>
AND (
<if
test=
"raysBookIds != null and raysBookIds.size > 0"
>
<foreach
collection=
"raysBookIds"
open=
"("
item=
"item"
close=
")"
separator=
"OR"
>
( 1=1
<if
test=
"item.adviserId != null"
>
AND ba.ADVISER_ID =${item.adviserId}
</if>
<if
test=
"item.raysChannelId != null"
>
AND ba.CHANNEL_ID=${item.raysChannelId}
</if>
<if
test=
"item.raysBookId != null"
>
AND ba.BOOK_ID=${item.raysBookId}
</if>
)
</foreach>
<if
test=
"name != null"
>
OR
</if>
</if>
<if
test=
"name != null"
>
(
b.BOOK_NAME LIKE CONCAT('%',#{name},'%') OR b.ISBN LIKE CONCAT('%',#{name},'%')
<if
test=
"bookNo != null"
>
OR b.BOOK_ID LIKE CONCAT('%',#{bookNo},'%')
</if>
)
</if>
)
</if>
</where>
) tb
<if
test=
"isRay != null"
>
where tb.isRay = #{isRay}
</if>
ORDER BY tb.bookAdviserId DESC
</select>
</mapper>
</mapper>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment