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
89d4b009
Commit
89d4b009
authored
Aug 26, 2019
by
daixing
Browse files
Options
Browse Files
Download
Plain Diff
收益管理
parents
496af94c
32ff305e
Hide whitespace changes
Inline
Side-by-side
Showing
52 changed files
with
2777 additions
and
52 deletions
+2777
-52
BookClassifyDTO.java
.../main/java/com/pcloud/book/group/dto/BookClassifyDTO.java
+54
-0
BookGroupStatisticsDTO.java
...ava/com/pcloud/book/group/dto/BookGroupStatisticsDTO.java
+93
-0
ResourceBrowseParamDto.java
...ava/com/pcloud/book/group/dto/ResourceBrowseParamDto.java
+75
-0
BookGroupClassifyService.java
...m/pcloud/book/group/service/BookGroupClassifyService.java
+7
-4
BookGroupService.java
.../java/com/pcloud/book/group/service/BookGroupService.java
+9
-0
WeixinQrcodeService.java
...va/com/pcloud/book/group/service/WeixinQrcodeService.java
+4
-0
BookConsr.java
...n/java/com/pcloud/book/consumer/settlement/BookConsr.java
+55
-0
SettlementConsr.java
.../com/pcloud/book/consumer/settlement/SettlementConsr.java
+31
-3
TradeConsr.java
.../main/java/com/pcloud/book/consumer/trade/TradeConsr.java
+45
-4
WechatGroupConsr.java
...om/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
+13
-0
BookGroupBiz.java
...src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
+49
-0
BookGroupClassifyBiz.java
.../java/com/pcloud/book/group/biz/BookGroupClassifyBiz.java
+12
-7
GroupQrcodeBiz.java
...c/main/java/com/pcloud/book/group/biz/GroupQrcodeBiz.java
+7
-0
BookGroupBizImpl.java
...java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
+455
-5
BookGroupClassifyBizImpl.java
.../pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
+28
-14
GroupQrcodeBizImpl.java
...va/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
+9
-0
AppClickRecordDao.java
...ain/java/com/pcloud/book/group/dao/AppClickRecordDao.java
+30
-0
AppTouchRecordDao.java
...ain/java/com/pcloud/book/group/dao/AppTouchRecordDao.java
+2
-0
BookGroupClassifyDao.java
.../java/com/pcloud/book/group/dao/BookGroupClassifyDao.java
+10
-0
GroupQrcodeDao.java
...c/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
+6
-0
AppClickRecordDaoImpl.java
...com/pcloud/book/group/dao/impl/AppClickRecordDaoImpl.java
+44
-0
AppTouchRecordDaoImpl.java
...com/pcloud/book/group/dao/impl/AppTouchRecordDaoImpl.java
+12
-0
BookGroupClassifyDaoImpl.java
.../pcloud/book/group/dao/impl/BookGroupClassifyDaoImpl.java
+26
-0
GroupQrcodeDaoImpl.java
...va/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
+6
-0
BookGroupDTO.java
...src/main/java/com/pcloud/book/group/dto/BookGroupDTO.java
+18
-0
ClickClassifyDTO.java
...main/java/com/pcloud/book/group/dto/ClickClassifyDTO.java
+58
-0
StatisticsIncomeDto.java
...n/java/com/pcloud/book/group/dto/StatisticsIncomeDto.java
+171
-0
BookGroupClassifyFacade.java
...com/pcloud/book/group/facade/BookGroupClassifyFacade.java
+17
-0
BookGroupFacade.java
...in/java/com/pcloud/book/group/facade/BookGroupFacade.java
+71
-0
GroupQrcodeFacade.java
.../java/com/pcloud/book/group/facade/GroupQrcodeFacade.java
+9
-0
BookGroupClassifyFacadeImpl.java
...d/book/group/facade/impl/BookGroupClassifyFacadeImpl.java
+20
-0
BookGroupFacadeImpl.java
...om/pcloud/book/group/facade/impl/BookGroupFacadeImpl.java
+73
-1
GroupQrcodeFacadeImpl.java
.../pcloud/book/group/facade/impl/GroupQrcodeFacadeImpl.java
+10
-0
BookGroupClassifyServiceImpl.java
...book/group/service/impl/BookGroupClassifyServiceImpl.java
+7
-0
BookGroupServiceImpl.java
.../pcloud/book/group/service/impl/BookGroupServiceImpl.java
+15
-1
WeixinQrcodeServiceImpl.java
...loud/book/group/service/impl/WeixinQrcodeServiceImpl.java
+16
-0
ClassifyQrcodeVO.java
.../main/java/com/pcloud/book/group/vo/ClassifyQrcodeVO.java
+23
-1
GroupIncomeStaticParamVO.java
...va/com/pcloud/book/group/vo/GroupIncomeStaticParamVO.java
+88
-0
GroupScanTrendParamVO.java
.../java/com/pcloud/book/group/vo/GroupScanTrendParamVO.java
+106
-0
GroupScanTrendVO.java
.../main/java/com/pcloud/book/group/vo/GroupScanTrendVO.java
+65
-0
GroupStatisticVO.java
.../main/java/com/pcloud/book/group/vo/GroupStatisticVO.java
+139
-0
ListClassifyVO.java
...rc/main/java/com/pcloud/book/group/vo/ListClassifyVO.java
+23
-1
ResourceClickVO.java
...c/main/java/com/pcloud/book/group/vo/ResourceClickVO.java
+40
-0
ResourcesStatisticVO.java
...n/java/com/pcloud/book/group/vo/ResourcesStatisticVO.java
+100
-0
TotalRescourceDataVO.java
...n/java/com/pcloud/book/group/vo/TotalRescourceDataVO.java
+52
-0
WxGroupStatisticVO.java
...ain/java/com/pcloud/book/group/vo/WxGroupStatisticVO.java
+96
-0
AppClickRecord.xml
...e-book/src/main/resources/mapper/group/AppClickRecord.xml
+90
-0
AppTouchRecord.xml
...e-book/src/main/resources/mapper/group/AppTouchRecord.xml
+5
-0
BookGroupClassify.Mapper.xml
.../main/resources/mapper/group/BookGroupClassify.Mapper.xml
+42
-2
GroupQrcode.Mapper.xml
...ok/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
+10
-1
template_bookGroupStatistics.ftl
.../main/resources/template/template_bookGroupStatistics.ftl
+321
-0
pom.xml
pom.xml
+10
-8
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/group/dto/BookClassifyDTO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
dto
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
java.io.Serializable
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/25 16:07
*/
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
BookClassifyDTO
implements
Serializable
{
private
Long
bookId
;
private
Long
bookGroupId
;
private
Long
classifyCount
;
public
Long
getBookId
()
{
return
bookId
;
}
public
void
setBookId
(
Long
bookId
)
{
this
.
bookId
=
bookId
;
}
public
Long
getClassifyCount
()
{
return
classifyCount
;
}
public
void
setClassifyCount
(
Long
classifyCount
)
{
this
.
classifyCount
=
classifyCount
;
}
public
Long
getBookGroupId
()
{
return
bookGroupId
;
}
public
void
setBookGroupId
(
Long
bookGroupId
)
{
this
.
bookGroupId
=
bookGroupId
;
}
@Override
public
String
toString
()
{
return
"BookClassifyDTO{"
+
"bookId="
+
bookId
+
", bookGroupId="
+
bookGroupId
+
", classifyCount="
+
classifyCount
+
'}'
;
}
}
\ No newline at end of file
pcloud-facade-book/src/main/java/com/pcloud/book/group/dto/BookGroupStatisticsDTO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
dto
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
java.io.Serializable
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/25 16:29
*/
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
BookGroupStatisticsDTO
implements
Serializable
{
/**
* 群分类数
*/
private
Long
classifyCount
;
/**
* 微信群数
*/
private
Long
wxGroupCount
;
/**
* 当前群人数
*/
private
Long
groupPersonNum
;
/**
* 推广应用次数
*/
private
Long
promAppCount
;
/**
* 推广作品次数
*/
private
Long
promProductCount
;
public
Long
getClassifyCount
()
{
return
classifyCount
;
}
public
void
setClassifyCount
(
Long
classifyCount
)
{
this
.
classifyCount
=
classifyCount
;
}
public
Long
getWxGroupCount
()
{
return
wxGroupCount
;
}
public
void
setWxGroupCount
(
Long
wxGroupCount
)
{
this
.
wxGroupCount
=
wxGroupCount
;
}
public
Long
getGroupPersonNum
()
{
return
groupPersonNum
;
}
public
void
setGroupPersonNum
(
Long
groupPersonNum
)
{
this
.
groupPersonNum
=
groupPersonNum
;
}
public
Long
getPromAppCount
()
{
return
promAppCount
;
}
public
void
setPromAppCount
(
Long
promAppCount
)
{
this
.
promAppCount
=
promAppCount
;
}
public
Long
getPromProductCount
()
{
return
promProductCount
;
}
public
void
setPromProductCount
(
Long
promProductCount
)
{
this
.
promProductCount
=
promProductCount
;
}
@Override
public
String
toString
()
{
return
"BookGroupStatisticsDTO{"
+
"classifyCount="
+
classifyCount
+
", wxGroupCount="
+
wxGroupCount
+
", groupPersonNum="
+
groupPersonNum
+
", promAppCount="
+
promAppCount
+
", promProductCount="
+
promProductCount
+
'}'
;
}
}
\ No newline at end of file
pcloud-facade-book/src/main/java/com/pcloud/book/group/dto/ResourceBrowseParamDto.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
dto
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @author 戴兴
* @description TODO
* @date 2019/8/8 20:37
*/
public
class
ResourceBrowseParamDto
implements
Serializable
{
private
Long
bookGroupId
;
private
Long
classifyId
;
private
Long
qrcodeId
;
private
String
typeCode
;
private
List
<
Long
>
Ids
;
public
Long
getBookGroupId
()
{
return
bookGroupId
;
}
public
void
setBookGroupId
(
Long
bookGroupId
)
{
this
.
bookGroupId
=
bookGroupId
;
}
public
Long
getClassifyId
()
{
return
classifyId
;
}
public
void
setClassifyId
(
Long
classifyId
)
{
this
.
classifyId
=
classifyId
;
}
public
Long
getQrcodeId
()
{
return
qrcodeId
;
}
public
void
setQrcodeId
(
Long
qrcodeId
)
{
this
.
qrcodeId
=
qrcodeId
;
}
public
String
getTypeCode
()
{
return
typeCode
;
}
public
void
setTypeCode
(
String
typeCode
)
{
this
.
typeCode
=
typeCode
;
}
public
List
<
Long
>
getIds
()
{
return
Ids
;
}
public
void
setIds
(
List
<
Long
>
ids
)
{
Ids
=
ids
;
}
@Override
public
String
toString
()
{
return
"ResourceBrowseParamDto{"
+
"bookGroupId="
+
bookGroupId
+
", classifyId="
+
classifyId
+
", qrcodeId="
+
qrcodeId
+
", typeCode='"
+
typeCode
+
'\''
+
", Ids="
+
Ids
+
'}'
;
}
}
\ No newline at end of file
pcloud-facade-book/src/main/java/com/pcloud/book/group/service/BookGroupClassifyService.java
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
service
;
import
com.pcloud.book.group.dto.GroupClassifyQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeBaseDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising
;
import
com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.common.dto.ResponseDto
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
...
...
@@ -56,7 +53,13 @@ public interface BookGroupClassifyService {
@PostMapping
(
"filterDeleteId"
)
ResponseEntity
<
ResponseDto
<
List
<
Long
>>>
filterDeleteId
(
@RequestBody
List
<
String
>
wxGroupIdList
);
@ApiOperation
(
"获取用户支付金额"
)
@GetMapping
(
"getPayPrice"
)
ResponseEntity
<
ResponseDto
<
BigDecimal
>>
getPayPrice
(
@RequestParam
(
"qrcodeId"
)
Long
qrcodeId
,
@RequestParam
(
"wxUserId"
)
String
wxUserId
);
@ApiOperation
(
"获取群分类个数"
)
@PostMapping
(
"getGroupClassifyCount"
)
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
BookClassifyDTO
>>>
getGroupClassifyCount
(
@RequestBody
List
<
Long
>
bookIds
);
}
pcloud-facade-book/src/main/java/com/pcloud/book/group/service/BookGroupService.java
View file @
89d4b009
...
...
@@ -3,9 +3,12 @@ package com.pcloud.book.group.service;
import
java.util.List
;
import
java.util.Map
;
import
com.pcloud.book.group.dto.PersonalQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupCipherDTO
;
import
com.pcloud.book.group.dto.GroupUseDTO
;
import
com.pcloud.book.group.dto.ResourceBrowseParamDto
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -52,6 +55,7 @@ public interface BookGroupService {
@RequestMapping
(
value
=
"getBaseInfoBySceneId"
,
method
=
RequestMethod
.
GET
)
ResponseEntity
<
ResponseDto
<
BookGroupDTO
>>
getBaseInfoBySceneId
(
@RequestParam
(
"sceneId"
)
Long
sceneId
)
throws
BizException
;
@ApiOperation
(
"更新个人二维码"
)
@RequestMapping
(
value
=
"updatePersonQrcode"
,
method
=
RequestMethod
.
POST
)
void
updatePersonQrcode
(
@RequestBody
PersonalQrcodeDTO
personalQrcodeDTO
)
throws
BizException
;
...
...
@@ -72,4 +76,9 @@ public interface BookGroupService {
@GetMapping
(
"/getJoinGroupCipher"
)
ResponseEntity
<
ResponseDto
<
GroupCipherDTO
>>
getJoinGroupCipher
(
@RequestParam
(
"cipher"
)
String
cipher
)
throws
BizException
;
@ApiOperation
(
"获取资源浏览数据"
)
@PostMapping
(
"getResourcesBrowseCount"
)
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
Long
>>>
getResourcesBrowseCount
(
@RequestBody
ResourceBrowseParamDto
resourceBrowseParamDto
);
}
pcloud-facade-book/src/main/java/com/pcloud/book/group/service/WeixinQrcodeService.java
View file @
89d4b009
...
...
@@ -83,6 +83,10 @@ public interface WeixinQrcodeService {
@RequestMapping
(
value
=
"getGroupVersionIp"
,
method
=
RequestMethod
.
POST
)
ResponseEntity
<
ResponseDto
<
Map
<
String
,
BookWxQrcodeDTO
>>>
getGroupVersionIp
(
@RequestBody
List
<
String
>
wxGroupIds
);
@ApiOperation
(
value
=
"通过群分类id获取微信群id"
,
httpMethod
=
"GET"
)
@RequestMapping
(
value
=
"getWxGroupId"
,
method
=
RequestMethod
.
GET
)
ResponseEntity
<
ResponseDto
<
String
>>
getWxGroupId
(
@RequestParam
(
"classifyId"
)
Long
classifyId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/settlement/BookConsr.java
View file @
89d4b009
package
com
.
pcloud
.
book
.
consumer
.
settlement
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.settlementcenter.record.dto.GetGroupClassifyIncomeDTO
;
import
com.pcloud.settlementcenter.record.dto.GetGroupQrcodeIncomeDTO
;
import
com.pcloud.settlementcenter.record.dto.GroupRescourceIncomeParamDTO
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Component
;
import
com.pcloud.book.base.exception.BookBizException
;
...
...
@@ -102,4 +109,52 @@ public class BookConsr {
LOGGER
.
info
(
"【书刊-结算(消)】批量获取书刊总收益,<END>"
);
return
resultMap
;
}
@ParamLog
(
value
=
"批量获取社群码下资源的收益"
,
isBefore
=
false
,
isAfterReturn
=
false
)
public
Map
<
Long
,
BigDecimal
>
getRescourceIncome
(
GroupRescourceIncomeParamDTO
groupRescourceIncomeParamDTO
)
throws
BizException
{
Map
<
Long
,
BigDecimal
>
rescourceIncome
=
new
HashMap
<>();
try
{
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
BigDecimal
>>>
responseEntityP
=
bookService
.
getGroupRescourceIncome
(
groupRescourceIncomeParamDTO
);
rescourceIncome
=
ResponseHandleUtil
.
parseMap
(
responseEntityP
,
Long
.
class
,
BigDecimal
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"批量获取社群码下资源的收益.[getRescourceIncome]:"
+
e
.
getMessage
(),
e
);
}
return
rescourceIncome
;
}
@ParamLog
(
value
=
"批量获取社群码下资源的总收益"
,
isBefore
=
false
,
isAfterReturn
=
false
)
public
BigDecimal
getRescourceTotalIncome
(
GroupRescourceIncomeParamDTO
groupRescourceIncomeParamDTO
)
throws
BizException
{
BigDecimal
rescourceTotalIncome
=
new
BigDecimal
(
0
);
try
{
ResponseEntity
<
ResponseDto
<
BigDecimal
>>
responseEntityP
=
bookService
.
getGroupRescourceTotalIncome
(
groupRescourceIncomeParamDTO
);
rescourceTotalIncome
=
ResponseHandleUtil
.
parseResponse
(
responseEntityP
,
BigDecimal
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"批量获取社群码下资源的总收益.[getRescourceTotalIncome]:"
+
e
.
getMessage
(),
e
);
}
return
rescourceTotalIncome
==
null
?
BigDecimal
.
ZERO
:
rescourceTotalIncome
;
}
@ParamLog
(
value
=
"批量获取社群码分类的收益"
,
isBefore
=
false
,
isAfterReturn
=
false
)
public
Map
<
Long
,
BigDecimal
>
getClassifyIncome
(
GetGroupClassifyIncomeDTO
getGroupClassifyIncomeDTO
)
throws
BizException
{
Map
<
Long
,
BigDecimal
>
classifyIncome
=
new
HashMap
<>();
try
{
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
BigDecimal
>>>
responseEntityP
=
bookService
.
getGroupClassifyIncome
(
getGroupClassifyIncomeDTO
);
classifyIncome
=
ResponseHandleUtil
.
parseMap
(
responseEntityP
,
Long
.
class
,
BigDecimal
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"批量获取社群码分类的收益.[getClassifyIncome]:"
+
e
.
getMessage
(),
e
);
}
return
classifyIncome
;
}
@ParamLog
(
value
=
"批量获取社群码分类下的微信群收益"
,
isBefore
=
false
,
isAfterReturn
=
false
)
public
Map
<
Long
,
BigDecimal
>
getQrcodeIncome
(
GetGroupQrcodeIncomeDTO
getGroupQrcodeIncomeDTO
)
throws
BizException
{
Map
<
Long
,
BigDecimal
>
qrcodeIncome
=
new
HashMap
<>();
try
{
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
BigDecimal
>>>
responseEntityP
=
bookService
.
getGroupQrcodeIncome
(
getGroupQrcodeIncomeDTO
);
qrcodeIncome
=
ResponseHandleUtil
.
parseMap
(
responseEntityP
,
Long
.
class
,
BigDecimal
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"批量获取社群码分类下的微信群收益.[getQrcodeIncome]:"
+
e
.
getMessage
(),
e
);
}
return
qrcodeIncome
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/settlement/SettlementConsr.java
View file @
89d4b009
...
...
@@ -5,6 +5,9 @@ import com.pcloud.common.dto.ResponseDto;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.settlementcenter.record.dto.ProductStaticUnderAppMapDTO
;
import
com.pcloud.settlementcenter.record.dto.ResourcesStatisticVO
;
import
com.pcloud.settlementcenter.record.service.BookService
;
import
com.pcloud.settlementcenter.record.service.SettlementService
;
import
org.slf4j.Logger
;
...
...
@@ -14,9 +17,8 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
@Component
(
"settlementConsr"
)
public
class
SettlementConsr
{
...
...
@@ -27,6 +29,8 @@ public class SettlementConsr {
@Autowired
private
SettlementService
settlementService
;
@Autowired
private
BookService
bookService
;
@ParamLog
(
value
=
"获取收益"
,
isBefore
=
false
,
isAfterReturn
=
false
)
public
Map
<
Long
,
BigDecimal
>
getWXGroupQrcodeIncomeByAdviser
(
List
<
Long
>
groupQrcodeIds
,
Long
adviserId
)
throws
BizException
{
...
...
@@ -55,4 +59,28 @@ public class SettlementConsr {
}
return
map
;
}
@ParamLog
(
value
=
"获取日期列表"
,
isBefore
=
false
,
isAfterReturn
=
false
)
public
List
<
Date
>
getDateList
(
Integer
dayNum
,
Date
startDate
,
Date
endDate
)
throws
BizException
{
List
<
Date
>
dateList
=
new
ArrayList
<>();
try
{
ResponseEntity
<
ResponseDto
<
List
<
Date
>>>
responseEntityP
=
settlementService
.
getDateList
(
dayNum
,
startDate
,
endDate
);
dateList
=
ResponseHandleUtil
.
parseList
(
responseEntityP
,
Date
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"获取日期列表.[getDateList]:"
+
e
.
getMessage
(),
e
);
}
return
dateList
;
}
@ParamLog
(
value
=
"社群码应用下商品的收益"
,
isBefore
=
false
,
isAfterReturn
=
false
)
public
Map
<
Long
,
List
<
ResourcesStatisticVO
>>
getProductStaticUnderApp
(
ProductStaticUnderAppMapDTO
productStaticUnderAppMapDTO
)
throws
BizException
{
Map
<
Long
,
List
<
ResourcesStatisticVO
>>
resourcesStatisticVOS
=
new
HashMap
<>();
try
{
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
List
<
ResourcesStatisticVO
>>>>
responseEntityP
=
bookService
.
getProductStaticUnderAppMap
(
productStaticUnderAppMapDTO
);
resourcesStatisticVOS
=
ResponseHandleUtil
.
parseMapList
(
responseEntityP
,
Long
.
class
,
ResourcesStatisticVO
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"社群码应用下商品的收益.[getProductStaticUnderApp]:"
+
e
.
getMessage
(),
e
);
}
return
resourcesStatisticVOS
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/trade/TradeConsr.java
View file @
89d4b009
...
...
@@ -7,6 +7,7 @@ import com.pcloud.common.utils.ListUtils;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.facade.tradecenter.dto.*
;
import
com.pcloud.facade.tradecenter.service.OrderFormService
;
import
org.apache.commons.collections.MapUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -14,10 +15,7 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
/**
* @Author:lili
...
...
@@ -126,6 +124,7 @@ public class TradeConsr {
return
amount
;
}
@ParamLog
(
"获取用户购买或者参与过的社群码ID"
)
public
List
<
Long
>
getBuyBookGroupIdList
(
Long
channelId
,
Long
wechatUserId
)
throws
BizException
{
List
<
Long
>
results
=
new
ArrayList
<>();
...
...
@@ -138,4 +137,46 @@ public class TradeConsr {
return
results
;
}
@ParamLog
(
"获取社群码下的应用作品购买量"
)
public
List
<
ClassifyPayDetailDto
>
getGroupBuyCount
(
Long
bookGroupId
,
Long
classifyId
,
Long
qrcodeId
,
Date
startDate
,
Date
endDate
)
throws
BizException
{
List
<
ClassifyPayDetailDto
>
classifyPayDetailDtos
=
new
ArrayList
<>();
try
{
ResponseEntity
<
ResponseDto
<
List
<
ClassifyPayDetailDto
>>>
responseEntity
=
orderFormService
.
getSaleVolume
(
startDate
,
endDate
,
bookGroupId
,
classifyId
,
qrcodeId
);
classifyPayDetailDtos
=
ResponseHandleUtil
.
parseListResponse
(
responseEntity
,
ClassifyPayDetailDto
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"获取社群码下的应用作品购买量:"
+
e
.
getMessage
(),
e
);
}
if
(
ListUtils
.
isEmpty
(
classifyPayDetailDtos
))
{
classifyPayDetailDtos
=
new
ArrayList
<>();
}
return
classifyPayDetailDtos
;
}
@ParamLog
(
"查询社区码下购买应用详情"
)
public
Map
<
Long
,
GroupMoneyDto
>
getSaleDetail4Group
(
GroupIncomeSearchDto
groupIncomeSearchDto
)
throws
BizException
{
Map
<
Long
,
GroupMoneyDto
>
groupMoneyDtoMap
=
new
HashMap
<>();
try
{
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
GroupMoneyDto
>>>
responseEntity
=
orderFormService
.
getSaleDetail4Group
(
groupIncomeSearchDto
);
groupMoneyDtoMap
=
ResponseHandleUtil
.
parseMap
(
responseEntity
,
Long
.
class
,
GroupMoneyDto
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"查询社区码下购买应用详情:"
+
e
.
getMessage
(),
e
);
}
if
(
MapUtils
.
isEmpty
(
groupMoneyDtoMap
))
{
groupMoneyDtoMap
=
new
HashMap
<>();
}
return
groupMoneyDtoMap
;
}
@ParamLog
(
"查询社群码下购买应用或作品的总销售额"
)
public
BigDecimal
getTotalSale
(
Long
bookGroupId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
)
throws
BizException
{
BigDecimal
totalSale
=
BigDecimal
.
ZERO
;
try
{
ResponseEntity
<
ResponseDto
<
BigDecimal
>>
responseEntity
=
orderFormService
.
getSaleAmount4Group
(
bookGroupId
,
classifyId
,
qrcodeId
,
type
);
totalSale
=
ResponseHandleUtil
.
parseResponse
(
responseEntity
,
BigDecimal
.
class
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"查询社区码下购买应用详情:"
+
e
.
getMessage
(),
e
);
}
return
totalSale
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
View file @
89d4b009
...
...
@@ -178,6 +178,19 @@ public class WechatGroupConsr {
return
null
;
}
@ParamLog
(
value
=
"群分类累计进群人数与今日进群人数"
,
isBefore
=
false
,
isAfterReturn
=
false
)
public
Map
<
Long
,
Long
>
getclassifyMemberCount
(
List
<
Long
>
classifyIds
)
throws
BizException
{
if
(
ListUtils
.
isEmpty
(
classifyIds
))
{
return
null
;
}
try
{
return
ResponseHandleUtil
.
parseMapResponse
(
groupMemberService
.
mapGroupClassifyStatisInfo
(
classifyIds
),
Long
.
class
,
Long
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"群分类累计进群人数与今日进群人数.[getclassifyMemberCount]:"
+
e
.
getMessage
(),
e
);
}
return
null
;
}
@ParamLog
(
value
=
"活跃人数与总发言数"
,
isBefore
=
false
,
isAfterReturn
=
false
)
public
Map
<
Long
,
GroupChatCountDTO
>
getChatCountByGroup
(
List
<
Long
>
groupQrcodeIds
,
Long
bookGroupId
)
throws
BizException
{
if
(
ListUtils
.
isEmpty
(
groupQrcodeIds
))
{
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
View file @
89d4b009
...
...
@@ -2,6 +2,7 @@ package com.pcloud.book.group.biz;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.dto.AppStatisticsDTO
;
import
com.pcloud.book.group.dto.BookGroupDTO
;
import
com.pcloud.book.group.dto.ClassifyKeywordDTO
;
...
...
@@ -9,6 +10,11 @@ import com.pcloud.book.group.dto.GroupStoreMyPayDto;
import
com.pcloud.book.group.dto.QrcodeNameAndProIdDTO
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.vo.*
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.vo.*
;
import
com.pcloud.book.group.vo.StatisticVO
;
import
com.pcloud.common.dto.StoreFlowInfoDto
;
import
com.pcloud.common.exceptions.BizException
;
...
...
@@ -322,4 +328,47 @@ public interface BookGroupBiz {
* 获取用户购买或者参与过的社群书信息
*/
PageBeanNew
<
GroupStoreMyPayDto
>
getUserBrowseGroup4KnowLedgeMall
(
Long
channelId
,
Long
wechatUserId
,
Integer
currentPage
,
Integer
numPerPage
);
/**
* 获取社群码相关数据
*/
BookGroupStatisticsDTO
getBookGroupStatisByBookGroupId
(
Long
bookGroupId
);
/**
* 收益统计
*/
PageBeanNew
<
ResourcesStatisticVO
>
getGroupIncomeStatic
(
GroupIncomeStaticParamVO
groupIncomeStaticParamVO
,
Long
adviserId
);
/**
* 社群码浏览趋势图
*/
List
<
GroupScanTrendVO
>
getGroupScanTrend
(
GroupScanTrendParamVO
groupScanTrendParamVO
,
Long
adviserId
);
/**
* 社群码分类统计
*/
PageBeanNew
<
GroupStatisticVO
>
getClassifyStatistic
(
Long
bookGroupId
,
Long
adviserId
,
Integer
currentPage
,
Integer
numPerPage
);
/**
* 社群码分类的微信群统计
*/
List
<
WxGroupStatisticVO
>
getQrcodeStatistic
(
Long
bookGroupId
,
Long
classifyId
,
Long
adviserId
);
/**
* 资源数据统计
*/
TotalRescourceDataVO
getTotalRescourceData
(
Long
bookGroupId
,
Long
adviserId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
);
/**
* 资源数据导出
*/
Map
<
String
,
String
>
exportRescourceIncomeData
(
Long
bookGroupId
,
Long
adviserId
);
/**
* 获取资源浏览数据
*/
Map
<
Long
,
Long
>
getResourcesBrowseCount
(
ResourceBrowseParamDto
resourceBrowseParamDto
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/BookGroupClassifyBiz.java
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
biz
;
import
com.pcloud.book.group.dto.BookGroupStatisticDTO
;
import
com.pcloud.book.group.dto.ClassifyDTO
;
import
com.pcloud.book.group.dto.ClassifyLearningReportDto
;
import
com.pcloud.book.group.dto.GroupClassifyQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeBaseDTO
;
import
com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.entity.BookGroupClassify
;
import
com.pcloud.book.group.vo.AddClassifyVO
;
import
com.pcloud.book.group.vo.AdviserClassifyParam
;
...
...
@@ -202,6 +196,9 @@ public interface BookGroupClassifyBiz {
PageBeanNew
<
ClassifyDTO
>
listSimpleBookGroupClassify4Adviser
(
Long
adviserId
,
BookGroupClassify
bookGroupClassify
,
PageParam
pageParam
);
PageBeanNew
<
AdviserClassifyVO
>
listAdviserClassify
(
Long
adviserId
,
AdviserClassifyParam
adviserClassifyParam
);
Map
<
Long
,
BookClassifyDTO
>
getGroupClassifyCount
(
List
<
Long
>
bookIds
);
/**
* 更新是否开启微学习报告
*/
...
...
@@ -224,4 +221,12 @@ public interface BookGroupClassifyBiz {
* 拖动排序
*/
void
dragSortClassify
(
List
<
Long
>
classifyIds
);
/**
* 埋点记录点击群分类次数
*/
void
clickClassify
(
Long
wechatUserId
,
Long
bookGroupId
,
Long
classifyId
);
List
<
ListClassifyVO
>
getClassifyIngoreDelete
(
Long
bookGroupId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/GroupQrcodeBiz.java
View file @
89d4b009
...
...
@@ -65,6 +65,13 @@ public interface GroupQrcodeBiz {
PageBeanNew
<
ClassifyQrcodeVO
>
listQrcodeByClassify
(
ListQrcodeByClassifyParamVO
listQrcodeByClassifyParamVO
);
/**
* @description 获取社群码类别下的群---不分页
* @author 戴兴
* @date 2019/7/28 15:59
*/
List
<
ClassifyQrcodeVO
>
getQrcodeByClassify
(
Long
bookGroupId
,
Long
classifyId
);
/**
* @Author:lili
* @Desr:修改微信群名称
* @Date:2019/4/1 11:22
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
View file @
89d4b009
...
...
@@ -17,12 +17,14 @@ import com.pcloud.book.consumer.app.AppConsr;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.raystask.MainLineConsr
;
import
com.pcloud.book.consumer.resource.ProductConsr
;
import
com.pcloud.book.consumer.settlement.BookConsr
;
import
com.pcloud.book.consumer.settlement.SettlementConsr
;
import
com.pcloud.book.consumer.trade.TradeConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.group.biz.BookGroupClassifyBiz
;
import
com.pcloud.book.group.dao.*
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.entity.BookGroup
;
...
...
@@ -30,11 +32,19 @@ import com.pcloud.book.group.entity.JoinGroupCipher;
import
com.pcloud.book.group.entity.TempletRelevance
;
import
com.pcloud.book.group.enums.LargTempletEnum
;
import
com.pcloud.book.group.vo.StatisticVO
;
import
com.pcloud.book.group.biz.GroupQrcodeBiz
;
import
com.pcloud.book.group.dao.AppClickRecordDao
;
import
com.pcloud.book.group.dao.AppTouchRecordDao
;
import
com.pcloud.book.group.dao.BookGroupClassifyDao
;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.book.group.vo.ClassifyAndGroupCountVO
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.vo.*
;
import
com.pcloud.book.keywords.dao.BookKeywordDao
;
import
com.pcloud.book.keywords.enums.ReplyTypeEnum
;
...
...
@@ -56,11 +66,14 @@ import com.pcloud.common.page.PageBean;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.*
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.QrcodeUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.export.excel.ExcelExportor
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.zip.CompressUtils
;
import
com.pcloud.facade.tradecenter.dto.GroupMoneyDto
;
import
com.pcloud.facade.tradecenter.dto.SpeWechatGroupDto
;
import
com.pcloud.facade.tradecenter.dto.WechatGroupDto
;
import
com.pcloud.facade.tradecenter.dto.*
;
import
com.pcloud.labelcenter.label.service.LabelService
;
import
com.pcloud.liveapp.live.dto.ProductIdSearchDto
;
import
com.pcloud.liveapp.live.service.TimeTableService
;
...
...
@@ -72,8 +85,14 @@ import com.pcloud.resourcecenter.product.dto.UpdateAppProductParamDTO;
import
com.pcloud.resourcecenter.product.entity.Product
;
import
com.pcloud.resourcecenter.product.service.ProductService
;
import
com.pcloud.resourcecenter.store.constants.StoreCons
;
import
com.pcloud.settlementcenter.record.dto.GetGroupClassifyIncomeDTO
;
import
com.pcloud.settlementcenter.record.dto.GetGroupQrcodeIncomeDTO
;
import
com.pcloud.settlementcenter.record.dto.GroupRescourceIncomeParamDTO
;
import
com.pcloud.settlementcenter.record.dto.ProductStaticUnderAppMapDTO
;
import
com.pcloud.settlementcenter.record.service.SettlementService
;
import
com.pcloud.videolesson.schedule.service.ScheduleService
;
import
com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO
;
import
com.pcloud.wechatgroup.group.service.GroupMemberService
;
import
com.pcloud.wechatgroup.selfrobot.dto.SelfRobotDTO
;
...
...
@@ -94,10 +113,10 @@ import java.util.Date;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
static
com
.
sun
.
tools
.
doclets
.
formats
.
html
.
markup
.
HtmlStyle
.
title
;
/**
* Description 社群书群二维码业务逻辑层接口实现类
* Created by PENG on 2019/4/17.
...
...
@@ -169,6 +188,11 @@ public class BookGroupBizImpl implements BookGroupBiz {
private
WechatGroupConsr
wechatGroupConsr
;
@Autowired
private
WeixinQrcodeDao
weixinQrcodeDao
;
@Autowired
private
BookConsr
bookConsr
;
@Autowired
private
GroupQrcodeBiz
groupQrcodeBiz
;
@Override
...
...
@@ -268,9 +292,18 @@ public class BookGroupBizImpl implements BookGroupBiz {
return
null
;
}
List
<
BookGroupDTO
>
list
=
bookGroupDao
.
getDTOByIds
(
bookGroupIds
);
List
<
Long
>
bookIds
=
list
.
stream
().
map
(
BookGroupDTO:
:
getBookId
).
collect
(
Collectors
.
toList
());
Map
<
Long
,
BookDto
>
mapByIds
=
bookDao
.
getMapByIds
(
bookIds
);
if
(
ListUtils
.
isEmpty
(
list
))
{
return
null
;
}
list
.
forEach
(
e
->{
if
(!
MapUtils
.
isEmpty
(
mapByIds
)
&&
mapByIds
.
get
(
e
.
getBookId
())
!=
null
){
e
.
setBookName
(
mapByIds
.
get
(
e
.
getBookId
()).
getBookName
());
e
.
setIsbn
(
mapByIds
.
get
(
e
.
getBookId
()).
getIsbn
());
e
.
setBookNumber
(
"BK"
+
e
.
getBookId
());
}
});
return
list
.
stream
().
collect
(
Collectors
.
toMap
(
BookGroupDTO:
:
getId
,
dto
->
dto
));
}
...
...
@@ -1142,6 +1175,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
return
bookGroupDao
.
getIsShowBookName
(
partyId
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@ParamLog
(
"删除社群码"
)
@Override
...
...
@@ -1444,4 +1478,420 @@ public class BookGroupBizImpl implements BookGroupBiz {
}
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
resultInfos
.
getTotalCount
(),
results
);
}
@Override
public
BookGroupStatisticsDTO
getBookGroupStatisByBookGroupId
(
Long
bookGroupId
)
{
Map
<
Long
,
BookGroupStatisticDTO
>
bookGroupStatisticMap
=
bookGroupClassifyBiz
.
getBookGroupStatistic
(
Arrays
.
asList
(
bookGroupId
));
BookGroupStatisticsDTO
bookGroupStatisticsDTO
=
new
BookGroupStatisticsDTO
();
Long
appCount
=
appTouchRecordDao
.
getCountByBokkGroupId
(
bookGroupId
,
"APP"
);
Long
productCount
=
appTouchRecordDao
.
getCountByBokkGroupId
(
bookGroupId
,
"PRODUCT"
);
if
(
MapUtils
.
isEmpty
(
bookGroupStatisticMap
)){
bookGroupStatisticsDTO
.
setClassifyCount
(
0L
);
bookGroupStatisticsDTO
.
setGroupPersonNum
(
0L
);
bookGroupStatisticsDTO
.
setWxGroupCount
(
0L
);
bookGroupStatisticsDTO
.
setPromAppCount
(
appCount
);
bookGroupStatisticsDTO
.
setPromProductCount
(
productCount
);
return
bookGroupStatisticsDTO
;
}
bookGroupStatisticsDTO
.
setClassifyCount
(
bookGroupStatisticMap
.
get
(
bookGroupId
).
getClassifyCount
().
longValue
());
bookGroupStatisticsDTO
.
setGroupPersonNum
(
bookGroupStatisticMap
.
get
(
bookGroupId
).
getUserNumber
().
longValue
());
bookGroupStatisticsDTO
.
setWxGroupCount
(
bookGroupStatisticMap
.
get
(
bookGroupId
).
getGroupNumber
().
longValue
());
bookGroupStatisticsDTO
.
setPromAppCount
(
appCount
);
bookGroupStatisticsDTO
.
setPromProductCount
(
productCount
);
return
bookGroupStatisticsDTO
;
}
@Override
public
PageBeanNew
<
ResourcesStatisticVO
>
getGroupIncomeStatic
(
GroupIncomeStaticParamVO
groupIncomeStaticParamVO
,
Long
adviserId
)
{
Long
bookGroupId
=
groupIncomeStaticParamVO
.
getBookGroupId
();
Integer
currentPage
=
groupIncomeStaticParamVO
.
getCurrentPage
();
Integer
numPerPage
=
groupIncomeStaticParamVO
.
getNumPerPage
();
String
type
=
groupIncomeStaticParamVO
.
getType
();
Long
classifyId
=
groupIncomeStaticParamVO
.
getClassifyId
();
Long
wxGroupId
=
groupIncomeStaticParamVO
.
getWxGroupId
();
if
(
currentPage
==
null
||
currentPage
<
0
||
numPerPage
==
null
||
numPerPage
<=
0
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"分页参数错误!"
);
}
if
(
bookGroupId
==
null
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"社群码id不能为空!"
);
}
if
(
type
==
null
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"类型不能为空"
);
}
PageParam
pageParam
=
new
PageParam
(
currentPage
,
numPerPage
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"bookGroupId"
,
bookGroupId
);
map
.
put
(
"type"
,
type
);
if
(
null
!=
classifyId
){
map
.
put
(
"classifyId"
,
classifyId
);
}
if
(
null
!=
wxGroupId
){
map
.
put
(
"qrcodeId"
,
wxGroupId
);
}
PageBeanNew
<
ResourcesStatisticVO
>
pageBeanNew
=
appClickRecordDao
.
listPageNew
(
pageParam
,
map
,
"getClickStatistics"
);
List
<
ResourcesStatisticVO
>
recordList
=
pageBeanNew
.
getRecordList
();
if
(
ListUtils
.
isEmpty
(
recordList
)){
return
pageBeanNew
;
}
//填充数据
setInfo
(
recordList
,
bookGroupId
,
classifyId
,
wxGroupId
,
type
,
adviserId
);
return
pageBeanNew
;
}
void
setInfo
(
List
<
ResourcesStatisticVO
>
recordList
,
Long
bookGroupId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
,
Long
partyId
){
List
<
Long
>
rescourceIds
=
recordList
.
stream
().
map
(
ResourcesStatisticVO:
:
getRescourceId
).
collect
(
Collectors
.
toList
());
// map.put("rescourceIds",rescourceIds);
GroupRescourceIncomeParamDTO
groupRescourceIncomeParamDTO
=
new
GroupRescourceIncomeParamDTO
();
groupRescourceIncomeParamDTO
.
setBookGroupId
(
bookGroupId
);
groupRescourceIncomeParamDTO
.
setClassifyId
(
classifyId
);
groupRescourceIncomeParamDTO
.
setQrcodeId
(
qrcodeId
);
groupRescourceIncomeParamDTO
.
setType
(
type
);
groupRescourceIncomeParamDTO
.
setRescourceIds
(
rescourceIds
);
groupRescourceIncomeParamDTO
.
setRoleId
(
5L
);
groupRescourceIncomeParamDTO
.
setPartyId
(
partyId
);
Map
<
Long
,
BigDecimal
>
rescourceIncome
=
bookConsr
.
getRescourceIncome
(
groupRescourceIncomeParamDTO
);
GroupIncomeSearchDto
groupIncomeSearchDto
=
new
GroupIncomeSearchDto
();
groupIncomeSearchDto
.
setBookGroupId
(
bookGroupId
);
groupIncomeSearchDto
.
setClassifyId
(
classifyId
);
groupIncomeSearchDto
.
setIds
(
rescourceIds
);
groupIncomeSearchDto
.
setQrcodeId
(
qrcodeId
);
groupIncomeSearchDto
.
setTypeCode
(
type
);
Map
<
Long
,
GroupMoneyDto
>
saleDetail4Group
=
tradeConsr
.
getSaleDetail4Group
(
groupIncomeSearchDto
);
Map
<
Long
,
AppDto
>
appDtoMap
;
Map
<
Long
,
ProductDto
>
productDtoMap
;
if
(
"APP"
.
equals
(
type
)){
appDtoMap
=
appConsr
.
mapByIds
(
rescourceIds
);
recordList
.
forEach
(
e
->{
if
(!
MapUtils
.
isEmpty
(
appDtoMap
)
&&
null
!=
appDtoMap
.
get
(
e
.
getRescourceId
())){
e
.
setRescourceName
(
appDtoMap
.
get
(
e
.
getRescourceId
()).
getTitle
());
}
if
(!
MapUtils
.
isEmpty
(
saleDetail4Group
)
&&
null
!=
saleDetail4Group
.
get
(
e
.
getRescourceId
())){
e
.
setSaleCount
(
saleDetail4Group
.
get
(
e
.
getRescourceId
()).
getSaleCount
());
e
.
setTotalSale
(
new
BigDecimal
(
saleDetail4Group
.
get
(
e
.
getRescourceId
()).
getSaleMoney
()));
}
else
{
e
.
setSaleCount
(
0L
);
e
.
setTotalSale
(
BigDecimal
.
ZERO
);
}
e
.
setType
(
"APP"
);
if
(
null
==
rescourceIncome
.
get
(
e
.
getRescourceId
())){
e
.
setTotalIncome
(
BigDecimal
.
ZERO
);
}
else
{
e
.
setTotalIncome
(
rescourceIncome
.
get
(
e
.
getRescourceId
()));
}
});
}
else
{
productDtoMap
=
productConsr
.
getProBasesByIds
(
rescourceIds
);
recordList
.
forEach
(
e
->{
if
(!
MapUtils
.
isEmpty
(
productDtoMap
)
&&
null
!=
productDtoMap
.
get
(
e
.
getRescourceId
())){
e
.
setRescourceName
(
productDtoMap
.
get
(
e
.
getRescourceId
()).
getProductName
());
}
e
.
setType
(
"PRODUCT"
);
if
(
null
==
rescourceIncome
.
get
(
e
.
getRescourceId
())){
e
.
setTotalIncome
(
BigDecimal
.
ZERO
);
}
else
{
e
.
setTotalIncome
(
rescourceIncome
.
get
(
e
.
getRescourceId
()));
}
if
(!
MapUtils
.
isEmpty
(
saleDetail4Group
)
&&
null
!=
saleDetail4Group
.
get
(
e
.
getRescourceId
())){
e
.
setSaleCount
(
saleDetail4Group
.
get
(
e
.
getRescourceId
()).
getSaleCount
());
e
.
setTotalSale
(
new
BigDecimal
(
saleDetail4Group
.
get
(
e
.
getRescourceId
()).
getSaleMoney
()));
}
else
{
e
.
setSaleCount
(
0L
);
e
.
setTotalSale
(
BigDecimal
.
ZERO
);
}
});
}
}
@Override
public
List
<
GroupScanTrendVO
>
getGroupScanTrend
(
GroupScanTrendParamVO
groupScanTrendParamVO
,
Long
adviserId
)
{
Integer
dayNum
=
groupScanTrendParamVO
.
getDayNum
();
if
(
dayNum
==
null
)
{
groupScanTrendParamVO
.
setDayNum
(
30
);
dayNum
=
30
;
}
Date
startDate
=
groupScanTrendParamVO
.
getStartDate
();
Date
endDate
=
groupScanTrendParamVO
.
getEndDate
();
Long
bookGroupId
=
groupScanTrendParamVO
.
getBookGroupId
();
Long
classifyId
=
groupScanTrendParamVO
.
getClassifyId
();
Long
wxGroupId
=
groupScanTrendParamVO
.
getWxGroupId
();
List
<
Date
>
dateList
=
settlementConsr
.
getDateList
(
dayNum
,
startDate
,
endDate
);
List
<
GroupScanTrendVO
>
groupScanTrendVOS
=
appClickRecordDao
.
getClickTrend
(
groupScanTrendParamVO
);
List
<
Date
>
collect
=
groupScanTrendVOS
.
stream
().
map
(
GroupScanTrendVO:
:
getDate
).
collect
(
Collectors
.
toList
());
List
<
ClassifyPayDetailDto
>
groupBuyCount
=
tradeConsr
.
getGroupBuyCount
(
bookGroupId
,
classifyId
,
wxGroupId
,
startDate
,
endDate
);
List
<
String
>
tradeDate
=
groupBuyCount
.
stream
().
map
(
ClassifyPayDetailDto:
:
getDivideDate
).
collect
(
Collectors
.
toList
());
if
(
dateList
.
size
()
>
groupScanTrendVOS
.
size
())
{
dateList
.
forEach
(
e
->
{
if
(!
collect
.
contains
(
e
))
{
GroupScanTrendVO
groupScanTrendVO
=
new
GroupScanTrendVO
();
groupScanTrendVO
.
setDate
(
e
);
groupScanTrendVO
.
setScanCount
(
0L
);
groupScanTrendVOS
.
add
(
groupScanTrendVO
);
}
});
}
if
(
ListUtils
.
isEmpty
(
groupBuyCount
)){
groupScanTrendVOS
.
forEach
(
e
->
e
.
setBuyCount
(
0L
));
}
else
{
groupScanTrendVOS
.
forEach
(
e
->
{
for
(
ClassifyPayDetailDto
classifyPayDetailDto
:
groupBuyCount
)
{
if
(
DateUtils
.
formatDate
(
e
.
getDate
()).
equals
(
classifyPayDetailDto
.
getDivideDate
()))
{
e
.
setBuyCount
(
classifyPayDetailDto
.
getBuyCount
());
}
else
{
e
.
setBuyCount
(
0L
);
}
}
});
}
return
groupScanTrendVOS
;
}
@Override
public
PageBeanNew
<
GroupStatisticVO
>
getClassifyStatistic
(
Long
bookGroupId
,
Long
adviserId
,
Integer
currentPage
,
Integer
numPerPage
)
{
PageParam
pageParam
=
new
PageParam
(
currentPage
,
numPerPage
);
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"bookGroupId"
,
bookGroupId
);
PageBeanNew
<
GroupStatisticVO
>
pageClassify
=
bookGroupClassifyDao
.
listPageNew
(
pageParam
,
paramMap
,
"pageClassify"
);
List
<
GroupStatisticVO
>
recordList
=
pageClassify
.
getRecordList
();
if
(
ListUtils
.
isEmpty
(
recordList
)){
return
new
PageBeanNew
<>();
}
List
<
Long
>
classifyIds
=
recordList
.
stream
().
map
(
GroupStatisticVO:
:
getClassifyId
).
collect
(
Collectors
.
toList
());
if
(
ListUtils
.
isEmpty
(
classifyIds
)){
return
new
PageBeanNew
<>();
}
Map
<
Long
,
ClickClassifyDTO
>
longClickClassifyDTOMap
=
bookGroupClassifyDao
.
mapClickClassify
(
classifyIds
);
GetGroupClassifyIncomeDTO
getGroupClassifyIncomeDTO
=
new
GetGroupClassifyIncomeDTO
();
getGroupClassifyIncomeDTO
.
setClassifyIds
(
classifyIds
);
getGroupClassifyIncomeDTO
.
setPartyId
(
adviserId
);
getGroupClassifyIncomeDTO
.
setRoleId
(
5L
);
Map
<
Long
,
BigDecimal
>
classifyIncome
=
bookConsr
.
getClassifyIncome
(
getGroupClassifyIncomeDTO
);
Map
<
Long
,
Long
>
mapMemberCount
=
wechatGroupConsr
.
getclassifyMemberCount
(
classifyIds
);
recordList
.
forEach
(
e
->{
if
(
longClickClassifyDTOMap
.
get
(
e
.
getClassifyId
())
!=
null
){
Long
count
=
longClickClassifyDTOMap
.
get
(
e
.
getClassifyId
()).
getCount
()==
null
?
0L
:
longClickClassifyDTOMap
.
get
(
e
.
getClassifyId
()).
getCount
();
e
.
setClickCount
(
count
);
}
if
(
BigDecimal
.
ZERO
.
compareTo
(
e
.
getPrice
())
==
0
){
e
.
setIsFree
(
1
);
}
else
{
e
.
setIsFree
(
0
);
}
if
(!
MapUtils
.
isEmpty
(
classifyIncome
)){
e
.
setIncome
(
classifyIncome
.
get
(
e
.
getClassifyId
()));
}
else
{
e
.
setIncome
(
BigDecimal
.
ZERO
);
}
if
(!
MapUtils
.
isEmpty
(
mapMemberCount
)){
e
.
setInGroupPersonCount
(
mapMemberCount
.
get
(
e
.
getClassifyId
()));
}
else
{
e
.
setInGroupPersonCount
(
0L
);
}
});
return
pageClassify
;
}
@Override
public
List
<
WxGroupStatisticVO
>
getQrcodeStatistic
(
Long
bookGroupId
,
Long
classifyId
,
Long
adviserId
)
{
List
<
ClassifyQrcodeVO
>
qrcodeByClassify
=
groupQrcodeBiz
.
getQrcodeByClassify
(
bookGroupId
,
classifyId
);
if
(
ListUtils
.
isEmpty
(
qrcodeByClassify
)){
return
new
ArrayList
<>();
}
List
<
Long
>
qrcodeIds
=
qrcodeByClassify
.
stream
().
map
(
ClassifyQrcodeVO:
:
getId
).
collect
(
Collectors
.
toList
());
List
<
String
>
wxGroupIds
=
qrcodeByClassify
.
stream
().
map
(
ClassifyQrcodeVO:
:
getWeixinGroupId
).
collect
(
Collectors
.
toList
());
GetGroupQrcodeIncomeDTO
getGroupQrcodeIncomeDTO
=
new
GetGroupQrcodeIncomeDTO
();
getGroupQrcodeIncomeDTO
.
setRoleId
(
5L
);
getGroupQrcodeIncomeDTO
.
setQrcodeIds
(
qrcodeIds
);
getGroupQrcodeIncomeDTO
.
setPartyId
(
adviserId
);
Map
<
Long
,
BigDecimal
>
qrcodeIncome
=
bookConsr
.
getQrcodeIncome
(
getGroupQrcodeIncomeDTO
);
Map
<
String
,
GroupMemberStatisDTO
>
groupMemberStatisDTOMap
=
wechatGroupConsr
.
listGroupMemberStatisInfo
(
wxGroupIds
);
List
<
WxGroupStatisticVO
>
wxGroupStatisticVOS
=
new
ArrayList
<>();
qrcodeByClassify
.
forEach
(
e
->{
WxGroupStatisticVO
wxGroupStatisticVO
=
new
WxGroupStatisticVO
();
wxGroupStatisticVO
.
setCreatedTime
(
e
.
getCreatedTime
());
wxGroupStatisticVO
.
setGroupPersonCount
(
e
.
getUserNumber
().
longValue
());
if
(
MapUtils
.
isEmpty
(
qrcodeIncome
)){
wxGroupStatisticVO
.
setIncome
(
BigDecimal
.
ZERO
);
}
else
{
wxGroupStatisticVO
.
setIncome
(
qrcodeIncome
.
get
(
e
.
getId
()));
}
if
(
MapUtils
.
isEmpty
(
groupMemberStatisDTOMap
)){
wxGroupStatisticVO
.
setInGroupPersonCount
(
0L
);
}
else
{
wxGroupStatisticVO
.
setInGroupPersonCount
(
groupMemberStatisDTOMap
.
get
(
e
.
getWeixinGroupId
()).
getJoinCount
().
longValue
());
}
wxGroupStatisticVO
.
setQrcodeId
(
e
.
getId
());
wxGroupStatisticVO
.
setWxGroupName
(
e
.
getGroupName
());
wxGroupStatisticVOS
.
add
(
wxGroupStatisticVO
);
});
return
wxGroupStatisticVOS
;
}
@Override
public
TotalRescourceDataVO
getTotalRescourceData
(
Long
bookGroupId
,
Long
adviserId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
)
{
TotalRescourceDataVO
totalRescourceDataVO
=
new
TotalRescourceDataVO
();
List
<
Long
>
rescourceIds
=
appClickRecordDao
.
getRescourceIds
(
bookGroupId
,
classifyId
,
qrcodeId
,
type
);
Long
rescourceTotalClick
=
appClickRecordDao
.
getRescourceTotalClick
(
bookGroupId
,
classifyId
,
qrcodeId
,
type
);
totalRescourceDataVO
.
setClickCount
(
rescourceTotalClick
==
null
?
0L
:
rescourceTotalClick
);
GroupRescourceIncomeParamDTO
groupRescourceIncomeParamDTO
=
new
GroupRescourceIncomeParamDTO
();
groupRescourceIncomeParamDTO
.
setBookGroupId
(
bookGroupId
);
groupRescourceIncomeParamDTO
.
setClassifyId
(
classifyId
);
groupRescourceIncomeParamDTO
.
setQrcodeId
(
qrcodeId
);
groupRescourceIncomeParamDTO
.
setType
(
type
);
groupRescourceIncomeParamDTO
.
setRescourceIds
(
rescourceIds
);
groupRescourceIncomeParamDTO
.
setPartyId
(
adviserId
);
groupRescourceIncomeParamDTO
.
setRoleId
(
5L
);
BigDecimal
rescourceTotalIncome
=
bookConsr
.
getRescourceTotalIncome
(
groupRescourceIncomeParamDTO
);
totalRescourceDataVO
.
setTotalIncome
(
rescourceTotalIncome
==
null
?
BigDecimal
.
ZERO
:
rescourceTotalIncome
);
BigDecimal
totalSale
=
tradeConsr
.
getTotalSale
(
bookGroupId
,
classifyId
,
qrcodeId
,
type
);
totalRescourceDataVO
.
setTotalSale
(
totalSale
);
return
totalRescourceDataVO
;
}
@Override
public
Map
<
String
,
String
>
exportRescourceIncomeData
(
Long
bookGroupId
,
Long
adviserId
)
{
List
<
StatisticsIncomeDto
>
appStatisticsIncomeDtos
=
new
ArrayList
<>();
List
<
StatisticsIncomeDto
>
productStatisticsIncomeDtos
=
new
ArrayList
<>();
List
<
ResourcesStatisticVO
>
appClickStatistics
=
appClickRecordDao
.
getClickStatistics
(
bookGroupId
,
null
,
null
,
"APP"
);
List
<
ResourcesStatisticVO
>
productClickStatistics
=
appClickRecordDao
.
getClickStatistics
(
bookGroupId
,
null
,
null
,
"PRODUCT"
);
if
(!
ListUtils
.
isEmpty
(
appClickStatistics
)){
setInfo
(
appClickStatistics
,
bookGroupId
,
null
,
null
,
"APP"
,
adviserId
);
//获取挂在应用下的商品信息
ProductStaticUnderAppMapDTO
productStaticUnderAppMapDTO
=
new
ProductStaticUnderAppMapDTO
();
productStaticUnderAppMapDTO
.
setBookGroupId
(
bookGroupId
);
productStaticUnderAppMapDTO
.
setAppIds
(
appClickStatistics
.
stream
().
map
(
ResourcesStatisticVO:
:
getRescourceId
).
collect
(
Collectors
.
toList
()));
productStaticUnderAppMapDTO
.
setPartyId
(
adviserId
);
productStaticUnderAppMapDTO
.
setRoleId
(
5L
);
// Map<Long, List<com.pcloud.settlementcenter.record.dto.ResourcesStatisticVO>> productStaticUnderApp = settlementConsr.getProductStaticUnderApp(productStaticUnderAppMapDTO);
// Map<Long, List<StatisticsIncomeDto>> productStaticUnderAppMap = copy(productStaticUnderApp,bookGroupId);
appClickStatistics
.
forEach
(
e
->{
StatisticsIncomeDto
statisticsIncomeDto
=
new
StatisticsIncomeDto
();
statisticsIncomeDto
.
setAppId
(
e
.
getRescourceId
());
statisticsIncomeDto
.
setBookGroupId
(
bookGroupId
);
statisticsIncomeDto
.
setIncome
(
e
.
getTotalIncome
());
statisticsIncomeDto
.
setAppName
(
e
.
getRescourceName
());
statisticsIncomeDto
.
setSaleCounts
(
e
.
getSaleCount
().
intValue
());
statisticsIncomeDto
.
setSaleMoney
(
e
.
getTotalSale
());
statisticsIncomeDto
.
setScanCounts
(
e
.
getBrowseCount
().
intValue
());
// statisticsIncomeDto.setItemList(productStaticUnderAppMap.get(e.getRescourceId()));
appStatisticsIncomeDtos
.
add
(
statisticsIncomeDto
);
});
}
if
(!
ListUtils
.
isEmpty
(
productClickStatistics
)){
setInfo
(
productClickStatistics
,
bookGroupId
,
null
,
null
,
"PRODUCT"
,
adviserId
);
productClickStatistics
.
forEach
(
e
->{
StatisticsIncomeDto
statisticsIncomeDto
=
new
StatisticsIncomeDto
();
statisticsIncomeDto
.
setProductId
(
e
.
getRescourceId
());
statisticsIncomeDto
.
setBookGroupId
(
bookGroupId
);
statisticsIncomeDto
.
setIncome
(
e
.
getTotalIncome
());
statisticsIncomeDto
.
setProductName
(
e
.
getRescourceName
());
statisticsIncomeDto
.
setSaleCounts
(
e
.
getSaleCount
().
intValue
());
statisticsIncomeDto
.
setSaleMoney
(
e
.
getTotalSale
());
statisticsIncomeDto
.
setScanCounts
(
e
.
getBrowseCount
().
intValue
());
productStatisticsIncomeDtos
.
add
(
statisticsIncomeDto
);
});
}
TotalRescourceDataVO
appTotalRescourceData
=
getTotalRescourceData
(
bookGroupId
,
null
,
null
,
null
,
"APP"
);
StatisticsIncomeDto
appSumStatistics
=
setResourceSumStatistics
(
appTotalRescourceData
);
TotalRescourceDataVO
productTotalRescourceData
=
getTotalRescourceData
(
bookGroupId
,
null
,
null
,
null
,
"PRODUCT"
);
StatisticsIncomeDto
productSumStatistics
=
setResourceSumStatistics
(
productTotalRescourceData
);
Map
<
String
,
Object
>
dataMap
=
new
HashMap
<>();
BookGroupDTO
bookGroupDTO
=
bookGroupDao
.
getDTOById
(
bookGroupId
);
if
(
bookGroupDTO
==
null
){
bookGroupDTO
=
new
BookGroupDTO
();
}
String
groupQrcodeName
=
bookGroupDTO
.
getGroupQrcodeName
()==
null
?
" "
:
bookGroupDTO
.
getGroupQrcodeName
();
String
title
=
"社群码"
+
groupQrcodeName
+
"的收益列表"
;
dataMap
.
put
(
"appIncomeList"
,
appStatisticsIncomeDtos
);
dataMap
.
put
(
"productIncomeList"
,
productStatisticsIncomeDtos
);
dataMap
.
put
(
"title"
,
title
);
dataMap
.
put
(
"appSumStatistics"
,
appSumStatistics
);
dataMap
.
put
(
"productSumStatistics"
,
productSumStatistics
);
String
today
=
DateUtils
.
formatDate
(
DateUtils
.
nowTimeStamp
(),
DateUtils
.
DATE_FORMAT_DATEONLY
);
String
fileName
=
title
+
"-"
+
today
;
String
filePath
=
""
;
try
{
LOGGER
.
info
(
"生成Excel【START】"
);
filePath
=
ExcelExportor
.
uploadExcel
(
this
.
getClass
(),
dataMap
,
"template_bookGroupStatistics.ftl"
);
LOGGER
.
info
(
"生成Excel【END】"
+
filePath
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"生成Excel异常+++"
+
e
.
getMessage
(),
e
);
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"导出失败,请联系管理员"
);
}
Map
<
String
,
String
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"fileName"
,
fileName
);
resultMap
.
put
(
"fileUrl"
,
filePath
);
return
resultMap
;
}
private
StatisticsIncomeDto
setResourceSumStatistics
(
TotalRescourceDataVO
totalRescourceDataVO
){
if
(
totalRescourceDataVO
==
null
){
return
new
StatisticsIncomeDto
();
}
Long
clickCount
=
totalRescourceDataVO
.
getClickCount
();
BigDecimal
totalIncome
=
totalRescourceDataVO
.
getTotalIncome
();
BigDecimal
totalSale
=
totalRescourceDataVO
.
getTotalSale
();
StatisticsIncomeDto
statisticsIncomeDto
=
new
StatisticsIncomeDto
();
statisticsIncomeDto
.
setScanCounts
(
clickCount
.
intValue
());
statisticsIncomeDto
.
setIncome
(
totalIncome
);
statisticsIncomeDto
.
setSaleMoney
(
totalSale
);
return
statisticsIncomeDto
;
}
private
Map
<
Long
,
List
<
StatisticsIncomeDto
>>
copy
(
Map
<
Long
,
List
<
com
.
pcloud
.
settlementcenter
.
record
.
dto
.
ResourcesStatisticVO
>>
productStaticUnderApp
,
Long
bookGroupId
){
Map
<
Long
,
List
<
StatisticsIncomeDto
>>
productStaticUnderAppMap
=
new
HashMap
<>();
if
(
MapUtils
.
isEmpty
(
productStaticUnderApp
)){
return
productStaticUnderAppMap
;
}
List
<
StatisticsIncomeDto
>
productStatisticsIncomeDtos
=
new
ArrayList
<>();
productStaticUnderApp
.
forEach
((
k
,
v
)
->{
v
.
forEach
(
e
->{
StatisticsIncomeDto
statisticsIncomeDto
=
new
StatisticsIncomeDto
();
statisticsIncomeDto
.
setProductId
(
e
.
getRescourceId
());
statisticsIncomeDto
.
setIncome
(
e
.
getTotalIncome
());
statisticsIncomeDto
.
setProductName
(
e
.
getRescourceName
());
statisticsIncomeDto
.
setSaleCounts
(
e
.
getSaleCount
()
==
null
?
0
:
e
.
getSaleCount
().
intValue
());
statisticsIncomeDto
.
setSaleMoney
(
e
.
getTotalSale
());
statisticsIncomeDto
.
setScanCounts
(
e
.
getBrowseCount
()
==
null
?
0
:
e
.
getBrowseCount
().
intValue
());
productStatisticsIncomeDtos
.
add
(
statisticsIncomeDto
);
});
productStaticUnderAppMap
.
put
(
k
,
productStatisticsIncomeDtos
);
});
return
productStaticUnderAppMap
;
}
@Override
public
Map
<
Long
,
Long
>
getResourcesBrowseCount
(
ResourceBrowseParamDto
resourceBrowseParamDto
)
{
Map
<
Long
,
Long
>
resultMap
=
new
HashMap
<>();
Long
bookGroupId
=
resourceBrowseParamDto
.
getBookGroupId
();
Long
classifyId
=
resourceBrowseParamDto
.
getClassifyId
();
Long
qrcodeId
=
resourceBrowseParamDto
.
getQrcodeId
();
String
typeCode
=
resourceBrowseParamDto
.
getTypeCode
();
List
<
Long
>
ids
=
resourceBrowseParamDto
.
getIds
();
if
(
ListUtils
.
isEmpty
(
ids
)){
return
resultMap
;
}
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"bookGroupId"
,
bookGroupId
);
map
.
put
(
"classifyId"
,
classifyId
);
map
.
put
(
"qrcodeId"
,
qrcodeId
);
map
.
put
(
"type"
,
typeCode
);
map
.
put
(
"rescourceIds"
,
ids
);
Map
<
Long
,
ResourceClickVO
>
resourceClick
=
appClickRecordDao
.
getResourceClick
(
map
);
if
(
MapUtils
.
isEmpty
(
resourceClick
)){
return
resultMap
;
}
resourceClick
.
forEach
((
k
,
v
)
->{
resultMap
.
put
(
k
,
v
.
getClickCount
());
});
return
resultMap
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
View file @
89d4b009
...
...
@@ -21,20 +21,7 @@ import com.pcloud.book.group.dao.BookQrcodeUserDao;
import
com.pcloud.book.group.dao.JoinGroupCipherDao
;
import
com.pcloud.book.group.dao.LearningReportBrowseRecordDao
;
import
com.pcloud.book.group.dao.LearningReportTouchRecordDao
;
import
com.pcloud.book.group.dto.BookGroupDTO
;
import
com.pcloud.book.group.dto.BookGroupStatisticDTO
;
import
com.pcloud.book.group.dto.BookWxQrcodeDTO
;
import
com.pcloud.book.group.dto.ClassifyDTO
;
import
com.pcloud.book.group.dto.ClassifyLearningCountDto
;
import
com.pcloud.book.group.dto.ClassifyLearningReportDto
;
import
com.pcloud.book.group.dto.GroupAndUserNumberDTO
;
import
com.pcloud.book.group.dto.GroupClassifyQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupNameAndMaxSeqDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeBaseDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeInfoDTO
;
import
com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO
;
import
com.pcloud.book.group.dto.QrcodeNameAndProIdDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeDTO
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.entity.BookGroupClassify
;
import
com.pcloud.book.group.entity.BookQrcodeUser
;
import
com.pcloud.book.group.entity.GroupQrcode
;
...
...
@@ -194,10 +181,12 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
log
.
info
(
"[新增分类] : 可用微信群数量:{}个"
,
wechatGroupNum
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"群二维码数量不足,您可以明天再创建群。"
);
}
}
Integer
generation
=
null
;
if
(
new
Integer
(
2
).
equals
(
qrcodeNameAndProId
.
getJoinGroupType
()))
{
generation
=
3
;
}
WeixinQrcodeDTO
oneQrcode
=
weixinQrcodeBiz
.
getOneQrcode
(
generation
);
if
(
oneQrcode
==
null
)
{
...
...
@@ -957,6 +946,15 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
return
pageBeanNew
;
}
@Override
public
Map
<
Long
,
BookClassifyDTO
>
getGroupClassifyCount
(
List
<
Long
>
bookIds
)
{
if
(!
ListUtils
.
isEmpty
(
bookIds
)){
return
bookGroupClassifyDao
.
getGroupClassifyCount
(
bookIds
);
}
else
{
return
new
HashMap
<>();
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@ParamLog
(
"更新是否开启微学习报告"
)
@Override
...
...
@@ -1054,4 +1052,20 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
bookGroupClassifyDao
.
dragSortClassify
(
classifyIds
);
}
@Override
public
void
clickClassify
(
Long
wechatUserId
,
Long
bookGroupId
,
Long
classifyId
)
{
bookGroupClassifyDao
.
addClickClassify
(
wechatUserId
,
bookGroupId
,
classifyId
);
}
@Override
public
List
<
ListClassifyVO
>
getClassifyIngoreDelete
(
Long
bookGroupId
)
{
List
<
ListClassifyVO
>
classifyVOS
=
bookGroupClassifyDao
.
getClassifyIngoreDelete
(
bookGroupId
);
if
(
ListUtils
.
isEmpty
(
classifyVOS
)){
return
new
ArrayList
<>();
}
return
classifyVOS
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
View file @
89d4b009
...
...
@@ -243,6 +243,15 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
return
pageBeanNew
;
}
@Override
public
List
<
ClassifyQrcodeVO
>
getQrcodeByClassify
(
Long
bookGroupId
,
Long
classifyId
)
{
List
<
ClassifyQrcodeVO
>
qrcodeByClassify
=
groupQrcodeDao
.
getQrcodeByClassify
(
classifyId
);
if
(
ListUtils
.
isEmpty
(
qrcodeByClassify
)){
return
new
ArrayList
<>();
}
return
qrcodeByClassify
;
}
@ParamLog
(
value
=
"设置关键词次数"
,
isBefore
=
false
)
private
void
setKeywordCount
(
List
<
ClassifyQrcodeVO
>
classifyQrcodeVOS
)
{
if
(
ListUtils
.
isEmpty
(
classifyQrcodeVOS
))
{
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/AppClickRecordDao.java
View file @
89d4b009
...
...
@@ -3,9 +3,14 @@ package com.pcloud.book.group.dao;
import
com.pcloud.book.group.dto.AppClickDTO
;
import
com.pcloud.book.group.dto.AppStatisticsDTO
;
import
com.pcloud.book.group.entity.AppClickRecord
;
import
com.pcloud.book.group.vo.GroupScanTrendParamVO
;
import
com.pcloud.book.group.vo.GroupScanTrendVO
;
import
com.pcloud.book.group.vo.ResourceClickVO
;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
import
java.util.Map
;
public
interface
AppClickRecordDao
extends
BaseDao
<
AppClickRecord
>
{
/**
...
...
@@ -17,4 +22,29 @@ public interface AppClickRecordDao extends BaseDao<AppClickRecord> {
* 获取最近点击
*/
List
<
AppClickDTO
>
getRecentlyClick
(
Long
wechatUserId
,
Long
qrcodeId
,
Integer
top
);
/**
* 获取资源点击趋势
*/
List
<
GroupScanTrendVO
>
getClickTrend
(
GroupScanTrendParamVO
groupScanTrendParamVO
);
/**
* 获取资源点击次数
*/
Map
<
Long
,
ResourceClickVO
>
getResourceClick
(
Map
<
String
,
Object
>
map
);
/**
* 获取资源点击总数
*/
Long
getRescourceTotalClick
(
Long
bookGroupId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
);
/**
* 获取资源id
*/
List
<
Long
>
getRescourceIds
(
Long
bookGroupId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
);
/**
* 获取资源点击数
*/
List
<
ResourcesStatisticVO
>
getClickStatistics
(
Long
bookGroupId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/AppTouchRecordDao.java
View file @
89d4b009
...
...
@@ -4,4 +4,6 @@ import com.pcloud.book.group.entity.AppTouchRecord;
import
com.pcloud.common.core.dao.BaseDao
;
public
interface
AppTouchRecordDao
extends
BaseDao
<
AppTouchRecord
>
{
Long
getCountByBokkGroupId
(
Long
bookGroupId
,
String
type
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/BookGroupClassifyDao.java
View file @
89d4b009
...
...
@@ -233,6 +233,8 @@ public interface BookGroupClassifyDao extends BaseDao<BookGroupClassify> {
* @return
*/
List
<
ClassifyKeywordDTO
>
getClassifyStatistics
(
Long
bookId
);
Map
<
Long
,
BookClassifyDTO
>
getGroupClassifyCount
(
List
<
Long
>
bookIds
);
GroupClassifyQrcodeDTO
getClassifyQrcodeInfoByName
(
String
weixinGroupName
);
...
...
@@ -241,8 +243,16 @@ public interface BookGroupClassifyDao extends BaseDao<BookGroupClassify> {
*/
void
updateHasOpenLearningReport
(
Long
classifyId
,
Boolean
hasOpenLearningReport
,
Long
partyId
);
/**
* 拖动排序
*/
void
dragSortClassify
(
List
<
Long
>
classifyIds
);
void
addClickClassify
(
Long
wechatUserId
,
Long
bookGroupId
,
Long
classifyId
);
Map
<
Long
,
ClickClassifyDTO
>
mapClickClassify
(
List
<
Long
>
classifyIds
);
List
<
ListClassifyVO
>
getClassifyIngoreDelete
(
Long
bookGroupId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
View file @
89d4b009
...
...
@@ -3,6 +3,7 @@ package com.pcloud.book.group.dao;
import
com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.entity.GroupQrcode
;
import
com.pcloud.book.group.vo.ClassifyQrcodeVO
;
import
com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO
;
import
com.pcloud.book.group.vo.ListGroupQrcodeResponseVO
;
import
com.pcloud.common.core.dao.BaseDao
;
...
...
@@ -204,4 +205,9 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
*/
void
updateRiddleOpenStatus
(
Long
qrcodeId
,
Boolean
status
);
/**
* 根据分类id获取分类下的群---不分页
*/
List
<
ClassifyQrcodeVO
>
getQrcodeByClassify
(
Long
classifyId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/AppClickRecordDaoImpl.java
View file @
89d4b009
...
...
@@ -4,6 +4,10 @@ import com.pcloud.book.group.dao.AppClickRecordDao;
import
com.pcloud.book.group.dto.AppClickDTO
;
import
com.pcloud.book.group.dto.AppStatisticsDTO
;
import
com.pcloud.book.group.entity.AppClickRecord
;
import
com.pcloud.book.group.vo.GroupScanTrendParamVO
;
import
com.pcloud.book.group.vo.GroupScanTrendVO
;
import
com.pcloud.book.group.vo.ResourceClickVO
;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
...
...
@@ -35,4 +39,44 @@ public class AppClickRecordDaoImpl extends BaseDaoImpl<AppClickRecord> implement
map
.
put
(
"top"
,
top
);
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getRecentlyClick"
),
map
);
}
@Override
public
List
<
GroupScanTrendVO
>
getClickTrend
(
GroupScanTrendParamVO
groupScanTrendParamVO
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getClickTrend"
),
groupScanTrendParamVO
);
}
@Override
public
Map
<
Long
,
ResourceClickVO
>
getResourceClick
(
Map
<
String
,
Object
>
map
)
{
return
this
.
getSqlSession
().
selectMap
(
this
.
getStatement
(
"getResourceClick"
),
map
,
"rescourceId"
);
}
@Override
public
Long
getRescourceTotalClick
(
Long
bookGroupId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"qrcodeId"
,
qrcodeId
);
map
.
put
(
"bookGroupId"
,
bookGroupId
);
map
.
put
(
"classifyId"
,
classifyId
);
map
.
put
(
"type"
,
type
);
return
this
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getRescourceTotalClick"
),
map
);
}
@Override
public
List
<
Long
>
getRescourceIds
(
Long
bookGroupId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"qrcodeId"
,
qrcodeId
);
map
.
put
(
"bookGroupId"
,
bookGroupId
);
map
.
put
(
"classifyId"
,
classifyId
);
map
.
put
(
"type"
,
type
);
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getRescourceIds"
),
map
);
}
@Override
public
List
<
ResourcesStatisticVO
>
getClickStatistics
(
Long
bookGroupId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"qrcodeId"
,
qrcodeId
);
map
.
put
(
"bookGroupId"
,
bookGroupId
);
map
.
put
(
"classifyId"
,
classifyId
);
map
.
put
(
"type"
,
type
);
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getClickStatistics"
),
map
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/AppTouchRecordDaoImpl.java
View file @
89d4b009
...
...
@@ -5,6 +5,9 @@ import com.pcloud.book.group.entity.AppTouchRecord;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @Description
* @Author ruansiyuan
...
...
@@ -12,4 +15,13 @@ import org.springframework.stereotype.Component;
**/
@Component
(
"appTouchRecordDao"
)
public
class
AppTouchRecordDaoImpl
extends
BaseDaoImpl
<
AppTouchRecord
>
implements
AppTouchRecordDao
{
@Override
public
Long
getCountByBokkGroupId
(
Long
bookGroupId
,
String
type
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"bookGroupId"
,
bookGroupId
);
map
.
put
(
"type"
,
type
);
return
this
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getCountByBokkGroupId"
),
map
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/BookGroupClassifyDaoImpl.java
View file @
89d4b009
...
...
@@ -197,6 +197,11 @@ public class BookGroupClassifyDaoImpl extends BaseDaoImpl<BookGroupClassify> imp
public
List
<
ClassifyKeywordDTO
>
getClassifyStatistics
(
Long
bookId
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getClassifyStatistics"
),
bookId
);
}
@Override
public
Map
<
Long
,
BookClassifyDTO
>
getGroupClassifyCount
(
List
<
Long
>
bookIds
)
{
return
this
.
getSessionTemplate
().
selectMap
(
getStatement
(
"getGroupClassifyCount"
),
bookIds
,
"bookId"
);
}
@Override
public
GroupClassifyQrcodeDTO
getClassifyQrcodeInfoByName
(
String
weixinGroupName
)
{
...
...
@@ -218,4 +223,25 @@ public class BookGroupClassifyDaoImpl extends BaseDaoImpl<BookGroupClassify> imp
paramMap
.
put
(
"classifyIds"
,
classifyIds
);
this
.
getSqlSession
().
update
(
this
.
getStatement
(
"dragSortClassify"
),
paramMap
);
}
@Override
public
void
addClickClassify
(
Long
wechatUserId
,
Long
bookGroupId
,
Long
classifyId
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
();
paramMap
.
put
(
"classifyId"
,
classifyId
);
paramMap
.
put
(
"wechatUserId"
,
wechatUserId
);
paramMap
.
put
(
"bookGroupId"
,
bookGroupId
);
this
.
getSqlSession
().
insert
(
this
.
getStatement
(
"addClickClassify"
),
paramMap
);
}
@Override
public
Map
<
Long
,
ClickClassifyDTO
>
mapClickClassify
(
List
<
Long
>
classifyIds
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
();
paramMap
.
put
(
"classifyIds"
,
classifyIds
);
return
this
.
getSqlSession
().
selectMap
(
this
.
getStatement
(
"mapClickClassify"
),
paramMap
,
"classifyId"
);
}
@Override
public
List
<
ListClassifyVO
>
getClassifyIngoreDelete
(
Long
bookGroupId
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getClassifyIngoreDelete"
),
bookGroupId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
View file @
89d4b009
...
...
@@ -6,6 +6,7 @@ import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.entity.GroupQrcode
;
import
com.pcloud.book.group.vo.ClassifyQrcodeVO
;
import
com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO
;
import
com.pcloud.book.group.vo.ListGroupQrcodeResponseVO
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
...
...
@@ -197,4 +198,9 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
getSessionTemplate
().
update
(
getStatement
(
"updateRiddleOpenStatus"
),
map
);
}
public
List
<
ClassifyQrcodeVO
>
getQrcodeByClassify
(
Long
classifyId
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getQrcodeByClassify"
),
classifyId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/BookGroupDTO.java
View file @
89d4b009
...
...
@@ -133,6 +133,11 @@ public class BookGroupDTO extends BaseDto {
private
String
bookName
;
/**
* 编号
*/
private
String
bookNumber
;
private
String
url
;
private
Long
bookClockInfoId
;
...
...
@@ -364,6 +369,7 @@ public class BookGroupDTO extends BaseDto {
this
.
isShowBookName
=
isShowBookName
;
}
public
Integer
getJoinGroupType
()
{
return
joinGroupType
;
}
...
...
@@ -372,6 +378,14 @@ public class BookGroupDTO extends BaseDto {
this
.
joinGroupType
=
joinGroupType
;
}
public
String
getBookNumber
()
{
return
bookNumber
;
}
public
void
setBookNumber
(
String
bookNumber
)
{
this
.
bookNumber
=
bookNumber
;
}
@Override
public
String
toString
()
{
return
"BookGroupDTO{"
+
...
...
@@ -399,10 +413,13 @@ public class BookGroupDTO extends BaseDto {
", bookImg='"
+
bookImg
+
'\''
+
", isbn='"
+
isbn
+
'\''
+
", bookName='"
+
bookName
+
'\''
+
", bookNumber='"
+
bookNumber
+
'\''
+
", url='"
+
url
+
'\''
+
", bookClockInfoId="
+
bookClockInfoId
+
", isShowBookName="
+
isShowBookName
+
", joinGroupType="
+
joinGroupType
+
"} "
+
super
.
toString
();
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/ClickClassifyDTO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
dto
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
/**
* @author 戴兴
* @description TODO
* @date 2019/8/22 21:49
*/
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
ClickClassifyDTO
implements
Serializable
{
@ApiModelProperty
(
"社群码标识"
)
private
Long
bookGroupId
;
@ApiModelProperty
(
"分类标识"
)
private
Long
classifyId
;
@ApiModelProperty
(
"点击次数"
)
private
Long
count
;
public
Long
getBookGroupId
()
{
return
bookGroupId
;
}
public
void
setBookGroupId
(
Long
bookGroupId
)
{
this
.
bookGroupId
=
bookGroupId
;
}
public
Long
getClassifyId
()
{
return
classifyId
;
}
public
void
setClassifyId
(
Long
classifyId
)
{
this
.
classifyId
=
classifyId
;
}
public
Long
getCount
()
{
return
count
;
}
public
void
setCount
(
Long
count
)
{
this
.
count
=
count
;
}
@Override
public
String
toString
()
{
return
"ClickClassifyDTO{"
+
"bookGroupId="
+
bookGroupId
+
", classifyId="
+
classifyId
+
", count="
+
count
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/StatisticsIncomeDto.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
dto
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* @author 戴兴
* @description TODO
* @date 2019/8/8 21:39
*/
public
class
StatisticsIncomeDto
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
4695716936925368521L
;
/**
* 应用标识
*/
private
Long
appId
;
/**
* 书刊标识
*/
private
Long
bookGroupId
;
/**
* 应用名称
*/
private
String
appName
;
/**
* 浏览量
*/
private
Integer
scanCounts
;
/**
* 销售量
*/
private
Integer
saleCounts
;
/**
* 销售额
*/
private
BigDecimal
saleMoney
;
/**
* 收益额
*/
private
BigDecimal
income
;
/**
* 商品标识
*/
private
Long
productId
;
/**
* 商品名称
*/
private
String
productName
;
/**
* 收益时间
*/
private
String
dateTime
;
/**
* 子项
*/
private
List
<
StatisticsIncomeDto
>
itemList
;
public
Long
getAppId
()
{
return
appId
;
}
public
void
setAppId
(
Long
appId
)
{
this
.
appId
=
appId
;
}
public
Long
getBookGroupId
()
{
return
bookGroupId
;
}
public
void
setBookGroupId
(
Long
bookGroupId
)
{
this
.
bookGroupId
=
bookGroupId
;
}
public
String
getAppName
()
{
return
appName
;
}
public
void
setAppName
(
String
appName
)
{
this
.
appName
=
appName
;
}
public
Integer
getScanCounts
()
{
return
scanCounts
;
}
public
void
setScanCounts
(
Integer
scanCounts
)
{
this
.
scanCounts
=
scanCounts
;
}
public
Integer
getSaleCounts
()
{
return
saleCounts
;
}
public
void
setSaleCounts
(
Integer
saleCounts
)
{
this
.
saleCounts
=
saleCounts
;
}
public
BigDecimal
getSaleMoney
()
{
return
saleMoney
;
}
public
void
setSaleMoney
(
BigDecimal
saleMoney
)
{
this
.
saleMoney
=
saleMoney
;
}
public
BigDecimal
getIncome
()
{
return
income
;
}
public
void
setIncome
(
BigDecimal
income
)
{
this
.
income
=
income
;
}
public
Long
getProductId
()
{
return
productId
;
}
public
void
setProductId
(
Long
productId
)
{
this
.
productId
=
productId
;
}
public
String
getProductName
()
{
return
productName
;
}
public
void
setProductName
(
String
productName
)
{
this
.
productName
=
productName
;
}
public
String
getDateTime
()
{
return
dateTime
;
}
public
void
setDateTime
(
String
dateTime
)
{
this
.
dateTime
=
dateTime
;
}
public
List
<
StatisticsIncomeDto
>
getItemList
()
{
return
itemList
;
}
public
void
setItemList
(
List
<
StatisticsIncomeDto
>
itemList
)
{
this
.
itemList
=
itemList
;
}
@Override
public
String
toString
()
{
return
"StatisticsIncomeDto{"
+
"appId="
+
appId
+
", bookGroupId="
+
bookGroupId
+
", appName='"
+
appName
+
'\''
+
", scanCounts="
+
scanCounts
+
", saleCounts="
+
saleCounts
+
", saleMoney="
+
saleMoney
+
", income="
+
income
+
", productId="
+
productId
+
", productName='"
+
productName
+
'\''
+
", dateTime='"
+
dateTime
+
'\''
+
", itemList="
+
itemList
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/BookGroupClassifyFacade.java
View file @
89d4b009
...
...
@@ -172,6 +172,7 @@ public interface BookGroupClassifyFacade {
@RequestParam
(
value
=
"keyword"
,
required
=
false
)
@ApiParam
(
"关键词"
)
String
keyword
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
"拖动排序"
)
@PostMapping
(
"dragSortClassify"
)
ResponseDto
<?>
dragSortClassify
(
...
...
@@ -179,4 +180,20 @@ public interface BookGroupClassifyFacade {
@RequestBody
List
<
Long
>
classifyIds
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
"埋点记录点击分类次数"
)
@GetMapping
(
"clickClassify"
)
ResponseDto
<?>
clickClassify
(
@CookieValue
(
"userinfo"
)
@ApiParam
(
"cookie信息"
)
String
userInfo
,
@RequestParam
(
"bookGroupId"
)
@ApiParam
(
"社群码id"
)
Long
bookGroupId
,
@RequestParam
(
"classifyId"
)
@ApiParam
(
"群分类id"
)
Long
classifyId
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
"获取所有群分类包括已删除的"
)
@GetMapping
(
"getClassifyIngoreDelete"
)
ResponseDto
<?>
getClassifyIngoreDelete
(
@RequestHeader
(
"token"
)
@ApiParam
(
"token信息"
)
String
token
,
@RequestParam
(
"bookGroupId"
)
@ApiParam
(
"社群码id"
)
Long
bookGroupId
)
throws
BizException
,
PermissionException
;
}
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/BookGroupFacade.java
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
facade
;
import
com.pcloud.book.group.entity.BookGroupClassify
;
import
com.pcloud.book.group.vo.*
;
import
com.pcloud.common.page.PageBeanNew
;
import
org.codehaus.jackson.JsonParseException
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -24,6 +26,8 @@ import io.swagger.annotations.ApiImplicitParam;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
java.util.List
;
/**
* Description 社群书群二维码接口
* Created by PENG on 2019/4/17.
...
...
@@ -276,6 +280,7 @@ public interface BookGroupFacade {
@RequestHeader
(
"token"
)
String
token
)
throws
BizException
,
PermissionException
,
JsonParseException
;
@ApiOperation
(
"删除社群码"
)
@GetMapping
(
"deleteBookGroup"
)
ResponseDto
<?>
deleteBookGroup
(
...
...
@@ -295,4 +300,70 @@ public interface BookGroupFacade {
ResponseDto
<?>
getAllLargeTemplet
(
@RequestHeader
(
"token"
)
String
token
)
throws
BizException
,
PermissionException
,
JsonParseException
;
@ApiOperation
(
"获取社群书数据"
)
@RequestMapping
(
value
=
"getBookGroupStatisByBookGroupId"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<?>
getBookGroupStatisByBookGroupId
(
@RequestParam
(
"bookGroupId"
)
Long
bookGroupId
)
throws
BizException
;
@ApiOperation
(
value
=
"收益统计--pc"
,
httpMethod
=
"POST"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"groupIncomeStaticParamVO"
,
value
=
"GroupIncomeStaticParamVO"
,
required
=
true
,
dataType
=
"GroupIncomeStaticParamVO"
,
paramType
=
"body"
)
})
@RequestMapping
(
value
=
"getGroupIncomeStatic"
,
method
=
RequestMethod
.
POST
)
public
ResponseDto
<
PageBeanNew
<
ResourcesStatisticVO
>>
getGroupIncomeStatic
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
GroupIncomeStaticParamVO
groupIncomeStaticParamVO
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
value
=
"社群码浏览趋势图--pc"
,
httpMethod
=
"POST"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"groupScanTrendParamVO"
,
value
=
"GroupScanTrendParamVO"
,
required
=
true
,
dataType
=
"GroupScanTrendParamVO"
,
paramType
=
"body"
)
})
@RequestMapping
(
value
=
"getGroupScanTrend"
,
method
=
RequestMethod
.
POST
)
public
ResponseDto
<
List
<
GroupScanTrendVO
>>
getGroupScanTrend
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
GroupScanTrendParamVO
groupScanTrendParamVO
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
value
=
"社群码分类统计--pc"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"bookGroupId"
,
value
=
"bookGroupId"
,
required
=
true
,
dataType
=
"Long"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"currentPage"
,
required
=
true
,
dataType
=
"Integer"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"numPerPage"
,
value
=
"numPerPage"
,
required
=
true
,
dataType
=
"Integer"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"getClassifyStatistic"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getClassifyStatistic
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
true
)
Long
bookGroupId
,
@RequestParam
(
value
=
"currentPage"
,
required
=
true
)
Integer
currentPage
,
@RequestParam
(
value
=
"numPerPage"
,
required
=
true
)
Integer
numPerPage
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
value
=
"社群码分类下的微信群统计--pc"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"bookGroupId"
,
value
=
"bookGroupId"
,
required
=
true
,
dataType
=
"Long"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"classifyId"
,
value
=
"classifyId"
,
required
=
true
,
dataType
=
"Long"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"getQrcodeStatistic"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getQrcodeStatistic
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
true
)
Long
bookGroupId
,
@RequestParam
(
"classifyId"
)
Long
classifyId
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
value
=
"资源数据统计--pc"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"bookGroupId"
,
value
=
"bookGroupId"
,
required
=
true
,
dataType
=
"Long"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"classifyId"
,
value
=
"classifyId"
,
required
=
false
,
dataType
=
"Long"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"qrcodeId"
,
value
=
"qrcodeId"
,
required
=
false
,
dataType
=
"Long"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"type"
,
value
=
"type"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"getTotalRescourceData"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getTotalRescourceData
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
true
)
Long
bookGroupId
,
@RequestParam
(
value
=
"classifyId"
,
required
=
false
)
Long
classifyId
,
@RequestParam
(
value
=
"qrcodeId"
,
required
=
false
)
Long
qrcodeId
,
@RequestParam
(
"type"
)
String
type
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
value
=
"社群码资源收益数据导出--pc"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"bookGroupId"
,
value
=
"bookGroupId"
,
required
=
true
,
dataType
=
"Long"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"exportRescourceIncomeData"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
exportRescourceIncomeData
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
true
)
Long
bookGroupId
)
throws
BizException
,
PermissionException
;
}
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/GroupQrcodeFacade.java
View file @
89d4b009
...
...
@@ -35,6 +35,15 @@ public interface GroupQrcodeFacade {
@RequestMapping
(
value
=
"listQrcodeByClassify"
,
method
=
RequestMethod
.
POST
)
ResponseDto
<
PageBeanNew
>
listQrcodeByClassify
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
ListQrcodeByClassifyParamVO
listQrcodeByClassifyParamVO
)
throws
PermissionException
;
@ApiOperation
(
value
=
"根据分类获取分类下二维码----不分页"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"token"
,
value
=
"token"
,
dataType
=
"String"
,
paramType
=
"header"
),
@ApiImplicitParam
(
name
=
"bookGroupId"
,
value
=
"bookGroupId"
,
dataType
=
"Long"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"classifyId"
,
value
=
"classifyId"
,
dataType
=
"Long"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"getQrcodeByClassify"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<?>
getQrcodeByClassify
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
"bookGroupId"
)
Long
bookGroupId
,
@RequestParam
(
"classifyId"
)
Long
classifyId
)
throws
PermissionException
;
@ApiOperation
(
value
=
"修改微信群名称"
,
httpMethod
=
"POST"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"token"
,
value
=
"token"
,
dataType
=
"String"
,
paramType
=
"header"
),
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/impl/BookGroupClassifyFacadeImpl.java
View file @
89d4b009
...
...
@@ -184,6 +184,7 @@ public class BookGroupClassifyFacadeImpl implements BookGroupClassifyFacade {
return
new
ResponseDto
<>(
bookGroupClassifyBiz
.
listClassifyForLearningReport
(
currentPage
,
numPerPage
,
keyword
,
partyId
));
}
@ApiOperation
(
"拖动排序"
)
@PostMapping
(
"dragSortClassify"
)
@Override
...
...
@@ -196,4 +197,23 @@ public class BookGroupClassifyFacadeImpl implements BookGroupClassifyFacade {
return
new
ResponseDto
<>();
}
@Override
@GetMapping
(
"clickClassify"
)
public
ResponseDto
<?>
clickClassify
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
"bookGroupId"
)
Long
bookGroupId
,
@RequestParam
(
"classifyId"
)
Long
classifyId
)
throws
BizException
,
PermissionException
{
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
bookGroupClassifyBiz
.
clickClassify
(
wechatUserId
,
bookGroupId
,
classifyId
);
return
new
ResponseDto
<>();
}
@Override
@GetMapping
(
"getClassifyIngoreDelete"
)
public
ResponseDto
<?>
getClassifyIngoreDelete
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
"bookGroupId"
)
Long
bookGroupId
)
throws
BizException
,
PermissionException
{
SessionUtil
.
getVlaue
(
token
,
SessionUtil
.
PARTY_ID
);
List
<
ListClassifyVO
>
classifyVOS
=
bookGroupClassifyBiz
.
getClassifyIngoreDelete
(
bookGroupId
);
return
new
ResponseDto
<>(
classifyVOS
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/impl/BookGroupFacadeImpl.java
View file @
89d4b009
...
...
@@ -17,7 +17,6 @@ import com.pcloud.common.permission.PermissionException;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
com.pcloud.common.utils.string.StringUtil
;
import
org.codehaus.jackson.JsonParseException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -32,6 +31,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -397,6 +397,7 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
return
new
ResponseDto
<>(
bookGroupBiz
.
getIsShowBookName
(
partyId
));
}
@ApiOperation
(
"删除社群码"
)
@GetMapping
(
"deleteBookGroup"
)
@Override
...
...
@@ -433,4 +434,75 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
return
new
ResponseDto
<>(
bookGroupBiz
.
getAllLargTemplet
());
}
@Override
@RequestMapping
(
value
=
"getBookGroupStatisByBookGroupId"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getBookGroupStatisByBookGroupId
(
@RequestParam
(
"bookGroupId"
)
Long
bookGroupId
)
throws
BizException
{
return
new
ResponseDto
<>(
bookGroupBiz
.
getBookGroupStatisByBookGroupId
(
bookGroupId
));
}
@Override
@RequestMapping
(
value
=
"getGroupIncomeStatic"
,
method
=
RequestMethod
.
POST
)
public
ResponseDto
<
PageBeanNew
<
ResourcesStatisticVO
>>
getGroupIncomeStatic
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
GroupIncomeStaticParamVO
groupIncomeStaticParamVO
)
throws
BizException
,
PermissionException
{
Map
<
String
,
Object
>
map
=
SessionUtil
.
getToken4Redis
(
token
);
Long
adviserId
=
(
Long
)
map
.
get
(
SessionUtil
.
PARTY_ID
);
PageBeanNew
<
ResourcesStatisticVO
>
groupIncomeStatic
=
bookGroupBiz
.
getGroupIncomeStatic
(
groupIncomeStaticParamVO
,
adviserId
);
return
new
ResponseDto
<>(
groupIncomeStatic
);
}
@Override
@RequestMapping
(
value
=
"getGroupScanTrend"
,
method
=
RequestMethod
.
POST
)
public
ResponseDto
<
List
<
GroupScanTrendVO
>>
getGroupScanTrend
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
GroupScanTrendParamVO
groupScanTrendParamVO
)
throws
BizException
,
PermissionException
{
Map
<
String
,
Object
>
map
=
SessionUtil
.
getToken4Redis
(
token
);
Long
adviserId
=
(
Long
)
map
.
get
(
SessionUtil
.
PARTY_ID
);
List
<
GroupScanTrendVO
>
groupScanTrend
=
bookGroupBiz
.
getGroupScanTrend
(
groupScanTrendParamVO
,
adviserId
);
return
new
ResponseDto
<>(
groupScanTrend
);
}
@Override
@RequestMapping
(
value
=
"getClassifyStatistic"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getClassifyStatistic
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
true
)
Long
bookGroupId
,
@RequestParam
(
value
=
"currentPage"
,
required
=
true
)
Integer
currentPage
,
@RequestParam
(
value
=
"numPerPage"
,
required
=
true
)
Integer
numPerPage
)
throws
BizException
,
PermissionException
{
Map
<
String
,
Object
>
map
=
SessionUtil
.
getToken4Redis
(
token
);
Long
adviserId
=
(
Long
)
map
.
get
(
SessionUtil
.
PARTY_ID
);
PageBeanNew
<
GroupStatisticVO
>
groupQrcodeStatistic
=
bookGroupBiz
.
getClassifyStatistic
(
bookGroupId
,
adviserId
,
currentPage
,
numPerPage
);
return
new
ResponseDto
<>(
groupQrcodeStatistic
);
}
@Override
@RequestMapping
(
value
=
"getQrcodeStatistic"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getQrcodeStatistic
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
true
)
Long
bookGroupId
,
@RequestParam
(
"classifyId"
)
Long
classifyId
)
throws
BizException
,
PermissionException
{
Map
<
String
,
Object
>
map
=
SessionUtil
.
getToken4Redis
(
token
);
Long
adviserId
=
(
Long
)
map
.
get
(
SessionUtil
.
PARTY_ID
);
List
<
WxGroupStatisticVO
>
qrcodeStatistic
=
bookGroupBiz
.
getQrcodeStatistic
(
bookGroupId
,
classifyId
,
adviserId
);
return
new
ResponseDto
<>(
qrcodeStatistic
);
}
@Override
@RequestMapping
(
value
=
"getTotalRescourceData"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getTotalRescourceData
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
true
)
Long
bookGroupId
,
@RequestParam
(
value
=
"classifyId"
,
required
=
false
)
Long
classifyId
,
@RequestParam
(
value
=
"qrcodeId"
,
required
=
false
)
Long
qrcodeId
,
@RequestParam
(
"type"
)
String
type
)
throws
BizException
,
PermissionException
{
Map
<
String
,
Object
>
map
=
SessionUtil
.
getToken4Redis
(
token
);
Long
adviserId
=
(
Long
)
map
.
get
(
SessionUtil
.
PARTY_ID
);
TotalRescourceDataVO
totalRescourceData
=
bookGroupBiz
.
getTotalRescourceData
(
bookGroupId
,
adviserId
,
classifyId
,
qrcodeId
,
type
);
return
new
ResponseDto
<>(
totalRescourceData
);
}
@Override
@RequestMapping
(
value
=
"exportRescourceIncomeData"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
exportRescourceIncomeData
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
true
)
Long
bookGroupId
)
throws
BizException
,
PermissionException
{
Map
<
String
,
Object
>
map
=
SessionUtil
.
getToken4Redis
(
token
);
Long
adviserId
=
(
Long
)
map
.
get
(
SessionUtil
.
PARTY_ID
);
Map
<
String
,
String
>
resultMap
=
bookGroupBiz
.
exportRescourceIncomeData
(
bookGroupId
,
adviserId
);
return
new
ResponseDto
<>(
resultMap
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/impl/GroupQrcodeFacadeImpl.java
View file @
89d4b009
...
...
@@ -36,6 +36,8 @@ import java.util.Optional;
import
io.swagger.annotations.ApiOperation
;
import
java.util.List
;
/**
* @author lily
* @date 2019/4/19 15:36
...
...
@@ -73,6 +75,14 @@ public class GroupQrcodeFacadeImpl implements GroupQrcodeFacade {
}
@Override
@RequestMapping
(
value
=
"getQrcodeByClassify"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getQrcodeByClassify
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
"bookGroupId"
)
Long
bookGroupId
,
@RequestParam
(
"classifyId"
)
Long
classifyId
)
throws
PermissionException
{
List
<
ClassifyQrcodeVO
>
qrcodeByClassify
=
groupQrcodeBiz
.
getQrcodeByClassify
(
bookGroupId
,
classifyId
);
return
new
ResponseDto
<>(
qrcodeByClassify
);
}
@Override
@PostMapping
(
"modifyWechatGroupName"
)
@ApiOperation
(
"修改微信群名称"
)
public
ResponseDto
<?>
modifyWechatGroupName
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
WechatGroupNameVO
wechatGroupNameVO
)
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/service/impl/BookGroupClassifyServiceImpl.java
View file @
89d4b009
...
...
@@ -96,4 +96,11 @@ public class BookGroupClassifyServiceImpl implements BookGroupClassifyService {
public
ResponseEntity
<
ResponseDto
<
BigDecimal
>>
getPayPrice
(
@RequestParam
(
"qrcodeId"
)
Long
qrcodeId
,
@RequestParam
(
"wxUserId"
)
String
wxUserId
)
{
return
ResponseHandleUtil
.
toResponse
(
bookGroupClassifyBiz
.
getPayPrice
(
qrcodeId
,
wxUserId
));
}
@Override
@PostMapping
(
"getGroupClassifyCount"
)
public
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
BookClassifyDTO
>>>
getGroupClassifyCount
(
@RequestBody
List
<
Long
>
bookIds
)
{
Map
<
Long
,
BookClassifyDTO
>
groupClassifyCount
=
bookGroupClassifyBiz
.
getGroupClassifyCount
(
bookIds
);
return
ResponseHandleUtil
.
toResponse
(
groupClassifyCount
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/service/impl/BookGroupServiceImpl.java
View file @
89d4b009
...
...
@@ -3,11 +3,12 @@ package com.pcloud.book.group.service.impl;
import
java.util.List
;
import
java.util.Map
;
import
com.pcloud.book.group.dto.PersonalQrcodeDTO
;
import
com.pcloud.book.group.dto.GroupCipherDTO
;
import
com.pcloud.book.group.dto.GroupUseDTO
;
import
io.swagger.annotations.ApiOperation
;
import
com.pcloud.book.group.dto.ResourceBrowseParamDto
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -88,6 +89,7 @@ public class BookGroupServiceImpl implements BookGroupService {
}
@Override
@RequestMapping
(
value
=
"updatePersonQrcode"
,
method
=
RequestMethod
.
POST
)
public
void
updatePersonQrcode
(
@RequestBody
PersonalQrcodeDTO
personalQrcodeDTO
)
throws
BizException
{
...
...
@@ -131,4 +133,16 @@ public class BookGroupServiceImpl implements BookGroupService {
return
ResponseHandleUtil
.
toResponse
(
bookGroupBiz
.
getJoinGroupCipher
(
cipher
));
}
/**
* @description 获取资源浏览数据
* @author 戴兴
* @date 2019/8/8 20:45
*/
@Override
@PostMapping
(
"getResourcesBrowseCount"
)
public
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
Long
>>>
getResourcesBrowseCount
(
@RequestBody
ResourceBrowseParamDto
resourceBrowseParamDto
)
{
return
ResponseHandleUtil
.
toResponse
(
bookGroupBiz
.
getResourcesBrowseCount
(
resourceBrowseParamDto
));
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/service/impl/WeixinQrcodeServiceImpl.java
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
service
.
impl
;
import
com.pcloud.book.group.biz.GroupQrcodeBiz
;
import
com.pcloud.book.group.biz.WeixinQrcodeBiz
;
import
com.pcloud.book.group.dto.BookWxQrcodeDTO
;
import
com.pcloud.book.group.dto.SyncWeixinGroupIdDTO
;
...
...
@@ -7,8 +8,10 @@ import com.pcloud.book.group.dto.UpdateQrDTO;
import
com.pcloud.book.group.dto.WeixinQrcodeCountDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeDTO
;
import
com.pcloud.book.group.service.WeixinQrcodeService
;
import
com.pcloud.book.group.vo.ClassifyQrcodeVO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -35,6 +38,8 @@ public class WeixinQrcodeServiceImpl implements WeixinQrcodeService {
@Autowired
private
WeixinQrcodeBiz
weixinQrcodeBiz
;
@Autowired
private
GroupQrcodeBiz
groupQrcodeBiz
;
@Override
@GetMapping
(
"tenQuartz"
)
...
...
@@ -117,4 +122,15 @@ public class WeixinQrcodeServiceImpl implements WeixinQrcodeService {
return
ResponseHandleUtil
.
toResponse
(
weixinQrcodeBiz
.
getGroupVersion
(
wxGroupIds
));
}
@Override
@RequestMapping
(
value
=
"getWxGroupId"
,
method
=
RequestMethod
.
GET
)
public
ResponseEntity
<
ResponseDto
<
String
>>
getWxGroupId
(
@RequestParam
(
"classifyId"
)
Long
classifyId
)
{
List
<
ClassifyQrcodeVO
>
qrcodeByClassify
=
groupQrcodeBiz
.
getQrcodeByClassify
(
null
,
classifyId
);
String
wxGroupId
=
null
;
if
(!
ListUtils
.
isEmpty
(
qrcodeByClassify
)){
wxGroupId
=
qrcodeByClassify
.
get
(
0
).
getWeixinGroupId
();
}
return
ResponseHandleUtil
.
toResponse
(
wxGroupId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/ClassifyQrcodeVO.java
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -44,6 +46,13 @@ public class ClassifyQrcodeVO implements Serializable {
@ApiModelProperty
(
"关键词识别次数"
)
private
Integer
keywordCount
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"关键词识别次数"
)
private
Date
createdTime
;
public
String
getWeixinGroupId
()
{
return
weixinGroupId
;
}
...
...
@@ -124,6 +133,18 @@ public class ClassifyQrcodeVO implements Serializable {
this
.
keywordCount
=
keywordCount
;
}
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
public
Date
getCreatedTime
()
{
return
createdTime
;
}
public
void
setCreatedTime
(
Date
createdTime
)
{
this
.
createdTime
=
createdTime
;
}
@Override
public
String
toString
()
{
return
"ClassifyQrcodeVO{"
+
...
...
@@ -136,7 +157,8 @@ public class ClassifyQrcodeVO implements Serializable {
", quitRate="
+
quitRate
+
", weixinQrcodeId="
+
weixinQrcodeId
+
", weixinGroupId='"
+
weixinGroupId
+
'\''
+
", keywordCount='"
+
keywordCount
+
'\''
+
", keywordCount="
+
keywordCount
+
", createdTime="
+
createdTime
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/GroupIncomeStaticParamVO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
io.swagger.annotations.ApiModel
;
import
java.io.Serializable
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/25 19:35
*/
@ApiModel
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
GroupIncomeStaticParamVO
implements
Serializable
{
private
Long
bookGroupId
;
private
Integer
currentPage
;
private
Integer
numPerPage
;
private
String
type
;
private
Long
classifyId
;
private
Long
wxGroupId
;
public
Long
getBookGroupId
()
{
return
bookGroupId
;
}
public
void
setBookGroupId
(
Long
bookGroupId
)
{
this
.
bookGroupId
=
bookGroupId
;
}
public
Integer
getCurrentPage
()
{
return
currentPage
;
}
public
void
setCurrentPage
(
Integer
currentPage
)
{
this
.
currentPage
=
currentPage
;
}
public
Integer
getNumPerPage
()
{
return
numPerPage
;
}
public
void
setNumPerPage
(
Integer
numPerPage
)
{
this
.
numPerPage
=
numPerPage
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
Long
getClassifyId
()
{
return
classifyId
;
}
public
void
setClassifyId
(
Long
classifyId
)
{
this
.
classifyId
=
classifyId
;
}
public
Long
getWxGroupId
()
{
return
wxGroupId
;
}
public
void
setWxGroupId
(
Long
wxGroupId
)
{
this
.
wxGroupId
=
wxGroupId
;
}
@Override
public
String
toString
()
{
return
"GroupIncomeStaticParamVO{"
+
"bookGroupId="
+
bookGroupId
+
", currentPage="
+
currentPage
+
", numPerPage="
+
numPerPage
+
", type="
+
type
+
", classifyId="
+
classifyId
+
", wxGroupId="
+
wxGroupId
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/GroupScanTrendParamVO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
io.swagger.annotations.ApiModel
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/25 19:57
*/
@ApiModel
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
GroupScanTrendParamVO
implements
Serializable
{
private
Long
bookGroupId
;
private
Long
classifyId
;
private
Long
wxGroupId
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
startDate
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
endDate
;
private
Integer
dayNum
;
public
Long
getBookGroupId
()
{
return
bookGroupId
;
}
public
void
setBookGroupId
(
Long
bookGroupId
)
{
this
.
bookGroupId
=
bookGroupId
;
}
public
Long
getClassifyId
()
{
return
classifyId
;
}
public
void
setClassifyId
(
Long
classifyId
)
{
this
.
classifyId
=
classifyId
;
}
public
Long
getWxGroupId
()
{
return
wxGroupId
;
}
public
void
setWxGroupId
(
Long
wxGroupId
)
{
this
.
wxGroupId
=
wxGroupId
;
}
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
public
Date
getStartDate
()
{
return
startDate
;
}
public
void
setStartDate
(
Date
startDate
)
{
this
.
startDate
=
startDate
;
}
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
public
Date
getEndDate
()
{
return
endDate
;
}
public
void
setEndDate
(
Date
endDate
)
{
this
.
endDate
=
endDate
;
}
public
Integer
getDayNum
()
{
return
dayNum
;
}
public
void
setDayNum
(
Integer
dayNum
)
{
this
.
dayNum
=
dayNum
;
}
@Override
public
String
toString
()
{
return
"GroupScanTrendParamVO{"
+
"bookGroupId="
+
bookGroupId
+
", classifyId="
+
classifyId
+
", wxGroupId="
+
wxGroupId
+
", startDate="
+
startDate
+
", endDate="
+
endDate
+
", dayNum="
+
dayNum
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/GroupScanTrendVO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
io.swagger.annotations.ApiModel
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/26 9:05
*/
@ApiModel
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
GroupScanTrendVO
implements
Serializable
{
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
date
;
private
Long
buyCount
;
private
Long
scanCount
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
public
Date
getDate
()
{
return
date
;
}
public
void
setDate
(
Date
date
)
{
this
.
date
=
date
;
}
public
Long
getBuyCount
()
{
return
buyCount
;
}
public
void
setBuyCount
(
Long
buyCount
)
{
this
.
buyCount
=
buyCount
;
}
public
Long
getScanCount
()
{
return
scanCount
;
}
public
void
setScanCount
(
Long
scanCount
)
{
this
.
scanCount
=
scanCount
;
}
@Override
public
String
toString
()
{
return
"GroupScanTrendVO{"
+
"date="
+
date
+
", buyCount="
+
buyCount
+
", scanCount="
+
scanCount
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/GroupStatisticVO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/28 15:45
*/
public
class
GroupStatisticVO
implements
Serializable
{
@ApiModelProperty
(
"分类唯一标识"
)
private
Long
classifyId
;
@ApiModelProperty
(
"分类名称"
)
private
String
classifyName
;
@ApiModelProperty
(
"是否免费,1-免费 0-收费"
)
private
Integer
isFree
;
@ApiModelProperty
(
"价格"
)
private
BigDecimal
price
;
@ApiModelProperty
(
"点击人数"
)
private
Long
clickCount
;
@ApiModelProperty
(
"累计进群人数"
)
private
Long
inGroupPersonCount
;
@ApiModelProperty
(
"当前群人数"
)
private
Long
groupPersonCount
;
@ApiModelProperty
(
"收益"
)
private
BigDecimal
income
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createdTime
;
public
Long
getClassifyId
()
{
return
classifyId
;
}
public
void
setClassifyId
(
Long
classifyId
)
{
this
.
classifyId
=
classifyId
;
}
public
String
getClassifyName
()
{
return
classifyName
;
}
public
void
setClassifyName
(
String
classifyName
)
{
this
.
classifyName
=
classifyName
;
}
public
Integer
getIsFree
()
{
return
isFree
;
}
public
void
setIsFree
(
Integer
isFree
)
{
this
.
isFree
=
isFree
;
}
public
Long
getClickCount
()
{
return
clickCount
;
}
public
void
setClickCount
(
Long
clickCount
)
{
this
.
clickCount
=
clickCount
;
}
public
Long
getInGroupPersonCount
()
{
return
inGroupPersonCount
;
}
public
void
setInGroupPersonCount
(
Long
inGroupPersonCount
)
{
this
.
inGroupPersonCount
=
inGroupPersonCount
;
}
public
Long
getGroupPersonCount
()
{
return
groupPersonCount
;
}
public
void
setGroupPersonCount
(
Long
groupPersonCount
)
{
this
.
groupPersonCount
=
groupPersonCount
;
}
public
BigDecimal
getIncome
()
{
return
income
;
}
public
void
setIncome
(
BigDecimal
income
)
{
this
.
income
=
income
;
}
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
public
Date
getCreatedTime
()
{
return
createdTime
;
}
public
void
setCreatedTime
(
Date
createdTime
)
{
this
.
createdTime
=
createdTime
;
}
public
BigDecimal
getPrice
()
{
return
price
;
}
public
void
setPrice
(
BigDecimal
price
)
{
this
.
price
=
price
;
}
@Override
public
String
toString
()
{
return
"GroupStatisticVO{"
+
"classifyId="
+
classifyId
+
", classifyName="
+
classifyName
+
", isFree="
+
isFree
+
", clickCount="
+
clickCount
+
", inGroupPersonCount="
+
inGroupPersonCount
+
", groupPersonCount="
+
groupPersonCount
+
", income="
+
income
+
", createdTime="
+
createdTime
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/ListClassifyVO.java
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -42,6 +44,13 @@ public class ListClassifyVO implements Serializable {
@ApiModelProperty
(
"排序"
)
private
Integer
rank
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createdTime
;
public
Integer
getRank
()
{
return
rank
;
}
...
...
@@ -114,9 +123,21 @@ public class ListClassifyVO implements Serializable {
this
.
qrcodeNumber
=
qrcodeNumber
;
}
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
public
Date
getCreatedTime
()
{
return
createdTime
;
}
public
void
setCreatedTime
(
Date
createdTime
)
{
this
.
createdTime
=
createdTime
;
}
@Override
public
String
toString
()
{
return
"
ClassifyName
VO{"
+
return
"
ListClassify
VO{"
+
"id="
+
id
+
", classify='"
+
classify
+
'\''
+
", classifyIntroduce='"
+
classifyIntroduce
+
'\''
+
...
...
@@ -125,6 +146,7 @@ public class ListClassifyVO implements Serializable {
", qrcodeNumber="
+
qrcodeNumber
+
", userNumberTotal="
+
userNumberTotal
+
", rank="
+
rank
+
", createdTime="
+
createdTime
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/ResourceClickVO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
java.io.Serializable
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/27 17:19
*/
public
class
ResourceClickVO
implements
Serializable
{
private
Long
rescourceId
;
private
Long
clickCount
;
public
Long
getRescourceId
()
{
return
rescourceId
;
}
public
void
setRescourceId
(
Long
rescourceId
)
{
this
.
rescourceId
=
rescourceId
;
}
public
Long
getClickCount
()
{
return
clickCount
;
}
public
void
setClickCount
(
Long
clickCount
)
{
this
.
clickCount
=
clickCount
;
}
@Override
public
String
toString
()
{
return
"ResourceClickVO{"
+
"rescourceId="
+
rescourceId
+
", clickCount="
+
clickCount
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/ResourcesStatisticVO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
io.swagger.annotations.ApiModel
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/25 19:01
*/
@ApiModel
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
ResourcesStatisticVO
implements
Serializable
{
private
Long
rescourceId
;
private
String
rescourceName
;
private
String
type
;
private
Long
browseCount
;
private
Long
saleCount
;
private
BigDecimal
totalSale
;
private
BigDecimal
totalIncome
;
public
Long
getRescourceId
()
{
return
rescourceId
;
}
public
void
setRescourceId
(
Long
rescourceId
)
{
this
.
rescourceId
=
rescourceId
;
}
public
String
getRescourceName
()
{
return
rescourceName
;
}
public
void
setRescourceName
(
String
rescourceName
)
{
this
.
rescourceName
=
rescourceName
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
Long
getBrowseCount
()
{
return
browseCount
;
}
public
void
setBrowseCount
(
Long
browseCount
)
{
this
.
browseCount
=
browseCount
;
}
public
Long
getSaleCount
()
{
return
saleCount
;
}
public
void
setSaleCount
(
Long
saleCount
)
{
this
.
saleCount
=
saleCount
;
}
public
BigDecimal
getTotalSale
()
{
return
totalSale
;
}
public
void
setTotalSale
(
BigDecimal
totalSale
)
{
this
.
totalSale
=
totalSale
;
}
public
BigDecimal
getTotalIncome
()
{
return
totalIncome
;
}
public
void
setTotalIncome
(
BigDecimal
totalIncome
)
{
this
.
totalIncome
=
totalIncome
;
}
@Override
public
String
toString
()
{
return
"ResourcesStatisticVO{"
+
"rescourceId='"
+
rescourceId
+
'\''
+
", rescourceName="
+
rescourceName
+
", type='"
+
type
+
'\''
+
", browseCount="
+
browseCount
+
", saleCount="
+
saleCount
+
", totalSale="
+
totalSale
+
", totalIncome="
+
totalIncome
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/TotalRescourceDataVO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/28 16:16
*/
public
class
TotalRescourceDataVO
implements
Serializable
{
private
Long
clickCount
;
private
BigDecimal
totalSale
;
private
BigDecimal
totalIncome
;
public
Long
getClickCount
()
{
return
clickCount
;
}
public
void
setClickCount
(
Long
clickCount
)
{
this
.
clickCount
=
clickCount
;
}
public
BigDecimal
getTotalSale
()
{
return
totalSale
;
}
public
void
setTotalSale
(
BigDecimal
totalSale
)
{
this
.
totalSale
=
totalSale
;
}
public
BigDecimal
getTotalIncome
()
{
return
totalIncome
;
}
public
void
setTotalIncome
(
BigDecimal
totalIncome
)
{
this
.
totalIncome
=
totalIncome
;
}
@Override
public
String
toString
()
{
return
"TotalRescourceDataVO{"
+
"clickCount="
+
clickCount
+
", totalSale="
+
totalSale
+
", totalIncome="
+
totalIncome
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/WxGroupStatisticVO.java
0 → 100644
View file @
89d4b009
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @author 戴兴
* @description TODO
* @date 2019/7/28 15:47
*/
public
class
WxGroupStatisticVO
implements
Serializable
{
private
Long
qrcodeId
;
private
String
wxGroupName
;
private
Long
inGroupPersonCount
;
private
Long
groupPersonCount
;
private
BigDecimal
income
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createdTime
;
public
Long
getQrcodeId
()
{
return
qrcodeId
;
}
public
void
setQrcodeId
(
Long
qrcodeId
)
{
this
.
qrcodeId
=
qrcodeId
;
}
public
String
getWxGroupName
()
{
return
wxGroupName
;
}
public
void
setWxGroupName
(
String
wxGroupName
)
{
this
.
wxGroupName
=
wxGroupName
;
}
public
Long
getInGroupPersonCount
()
{
return
inGroupPersonCount
;
}
public
void
setInGroupPersonCount
(
Long
inGroupPersonCount
)
{
this
.
inGroupPersonCount
=
inGroupPersonCount
;
}
public
Long
getGroupPersonCount
()
{
return
groupPersonCount
;
}
public
void
setGroupPersonCount
(
Long
groupPersonCount
)
{
this
.
groupPersonCount
=
groupPersonCount
;
}
public
BigDecimal
getIncome
()
{
return
income
;
}
public
void
setIncome
(
BigDecimal
income
)
{
this
.
income
=
income
;
}
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
public
Date
getCreatedTime
()
{
return
createdTime
;
}
public
void
setCreatedTime
(
Date
createdTime
)
{
this
.
createdTime
=
createdTime
;
}
@Override
public
String
toString
()
{
return
"WxGroupStatisticVO{"
+
"qrcodeId="
+
qrcodeId
+
", wxGroupName='"
+
wxGroupName
+
'\''
+
", inGroupPersonCount="
+
inGroupPersonCount
+
", groupPersonCount="
+
groupPersonCount
+
", income="
+
income
+
", createdTime="
+
createdTime
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/group/AppClickRecord.xml
View file @
89d4b009
...
...
@@ -65,6 +65,18 @@
t.serve_id
</select>
<select
id=
"getClickStatistics"
parameterType=
"map"
resultType=
"com.pcloud.book.group.vo.ResourcesStatisticVO"
>
select serve_id rescourceId, count(1) browseCount from app_click_record
where book_group_id = #{bookGroupId} and serve_type = #{type}
<if
test=
"classifyId != null"
>
and classify_id = #{classifyId}
</if>
<if
test=
"qrcodeId!=null"
>
AND qrcode_id = #{qrcodeId}
</if>
group by serve_id
</select>
<!--获取最近点击-->
<select
id=
"getRecentlyClick"
parameterType=
"map"
resultType=
"com.pcloud.book.group.dto.AppClickDTO"
>
select
...
...
@@ -81,4 +93,81 @@
order by create_time desc
limit #{top}
</select>
<select
id=
"getClickTrend"
parameterType=
"com.pcloud.book.group.vo.GroupScanTrendParamVO"
resultType=
"com.pcloud.book.group.vo.GroupScanTrendVO"
>
select DATE_FORMAT(create_time, '%Y-%m-%d') date, count(1) scanCount from app_click_record
where book_group_id = #{bookGroupId}
<if
test=
"classifyId != null"
>
and classify_id = #{classifyId}
</if>
<if
test=
"wxGroupId != null"
>
and qrcode_id = #{wxGroupId}
</if>
and create_time
>
=
<if
test=
"startDate == null"
>
DATE_FORMAT(SUBDATE(NOW(), INTERVAL #{dayNum} DAY),'%Y-%m-%d')
AND create_time
<
DATE_FORMAT(now(), '%Y-%m-%d')
</if>
<if
test=
"startDate != null"
>
DATE_FORMAT(#{startDate},'%Y-%m-%d')
AND create_time
<
= DATE_FORMAT(#{endDate}, '%Y-%m-%d')
</if>
GROUP BY date
order by date
</select>
<select
id=
"getResourceClick"
parameterType=
"map"
resultType=
"com.pcloud.book.group.vo.ResourceClickVO"
>
SELECT
t.serve_id rescourceId,
count(1) clickCount
FROM
app_click_record t
WHERE
t.serve_id IN
<foreach
collection=
"rescourceIds"
index=
"index"
item=
"item"
close=
")"
open=
"("
separator=
","
>
#{item}
</foreach>
<if
test=
"bookGroupId!=null"
>
AND t.book_group_id = #{bookGroupId}
</if>
<if
test=
"classifyId!=null"
>
AND t.classify_id = #{classifyId}
</if>
<if
test=
"qrcodeId!=null"
>
AND t.qrcode_id = #{qrcodeId}
</if>
<if
test=
"type!=null"
>
AND t.serve_type = #{type}
</if>
GROUP BY
t.serve_id
</select>
<select
id=
"getRescourceTotalClick"
parameterType=
"map"
resultType=
"long"
>
select count(1) FROM app_click_record t
WHERE t.book_group_id = #{bookGroupId}
<if
test=
"classifyId!=null"
>
AND t.classify_id = #{classifyId}
</if>
<if
test=
"qrcodeId!=null"
>
AND t.qrcode_id = #{qrcodeId}
</if>
<if
test=
"type!=null"
>
AND t.serve_type = #{type}
</if>
</select>
<select
id=
"getRescourceIds"
parameterType=
"map"
resultType=
"long"
>
select t.serve_id FROM app_click_record t
WHERE t.book_group_id = #{bookGroupId}
<if
test=
"classifyId!=null"
>
AND t.classify_id = #{classifyId}
</if>
<if
test=
"qrcodeId!=null"
>
AND t.qrcode_id = #{qrcodeId}
</if>
<if
test=
"type!=null"
>
AND t.serve_type = #{type}
</if>
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/group/AppTouchRecord.xml
View file @
89d4b009
...
...
@@ -62,4 +62,8 @@
t.serve_id
order by t.create_time desc
</select>
<select
id=
"getCountByBokkGroupId"
parameterType=
"map"
resultType=
"long"
>
select count(1) from app_touch_record where book_group_id =#{bookGroupId} and serve_type = #{type}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/group/BookGroupClassify.Mapper.xml
View file @
89d4b009
...
...
@@ -191,7 +191,8 @@
classify_introduce classifyIntroduce,
price,
change_number changeNumber,
rank
rank,
create_time createdTime
from
book_group_classify
where
...
...
@@ -207,7 +208,8 @@
change_number changeNumber,
rank,
count(1) qrcodeNumber,
SUM(user_number) userNumberTotal
SUM(user_number) userNumberTotal,
c.create_time createdTime
from
book_group_classify c join book_group_qrcode q on c.id = q.classify_id
where
...
...
@@ -854,6 +856,16 @@
book_group_classify c join book_group_qrcode q on c.id = q.classify_id
and q.group_name = #{_parameter} limit 1
</select>
<select
id=
"getGroupClassifyCount"
parameterType=
"list"
resultType=
"map"
>
select book_id bookId, count(1) classifyCount, book_group_id bookGroupId from book_group_classify
where is_delete = 0 and book_id in
<foreach
collection=
"list"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
group by book_id
</select>
<!--更新是否开启学习报告-->
<update
id=
"updateHasOpenLearningReport"
parameterType=
"map"
>
update book_group_classify set
...
...
@@ -863,6 +875,24 @@
where id=#{classifyId}
</update>
<insert
id=
"addClickClassify"
parameterType=
"map"
>
insert into book_group_classify_click(book_group_id, classify_id,create_user, create_time)
values(#{bookGroupId},#{classifyId},#{wechatUserId},now())
</insert>
<select
id=
"mapClickClassify"
parameterType=
"map"
resultType=
"com.pcloud.book.group.dto.ClickClassifyDTO"
>
select classify_id classifyId, count(1) count from book_group_classify_click
where classify_id in
<foreach
collection=
"classifyIds"
open=
"("
close=
")"
separator=
","
item=
"id"
>
#{id}
</foreach>
group by classify_id
</select>
<select
id=
"getClassifyIngoreDelete"
parameterType=
"long"
resultType=
"com.pcloud.book.group.vo.ListClassifyVO"
>
select id,classify from book_group_classify where book_group_id = #{bookGroupId}
</select>
<!--获取群分类学习报告相关列表-->
<select
id=
"listClassifyForLearningReport"
parameterType=
"map"
resultType=
"com.pcloud.book.group.dto.ClassifyLearningReportDto"
>
SELECT
...
...
@@ -894,6 +924,7 @@
order by c.id desc
</select>
<!--拖动排序-->
<update
id=
"dragSortClassify"
parameterType=
"map"
>
update book_group_classify
...
...
@@ -908,4 +939,12 @@
#{classifyId}
</foreach>
</update>
<select
id=
"pageClassify"
parameterType=
"map"
resultType=
"com.pcloud.book.group.vo.GroupStatisticVO"
>
select bgc.id classifyId, bgc.classify classifyName, bgc.price price,sum(user_number) groupPersonCount, bgc.create_time createdTime
from book_group_classify bgc left join book_group_qrcode bgq on bgc.id = bgq.classify_id
where book_group_id = #{bookGroupId}
group by bgc.id
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
View file @
89d4b009
...
...
@@ -88,7 +88,8 @@
<select
id=
"listQrcodeByClassify"
resultType=
"ClassifyQrcodeVO"
parameterType=
"map"
>
SELECT
id, weixin_qrcode_id weixinQrcodeId, weixin_group_id weixinGroupId, group_name groupName, classify_id classifyId, qrcode_url qrcodeUrl, user_number userNumber, ${changeNumber} changeNumber
id, weixin_qrcode_id weixinQrcodeId, weixin_group_id weixinGroupId, group_name groupName, classify_id classifyId,
qrcode_url qrcodeUrl, user_number userNumber, ${changeNumber} changeNumber, create_time createdTime
FROM
book_group_qrcode
WHERE
...
...
@@ -500,6 +501,7 @@
</foreach>
</select>
<select
id=
"listPageRiddle"
parameterType=
"map"
resultType=
"com.pcloud.book.riddle.dto.GroupRiddleDTO"
>
SELECT
q.group_name AS groupName,
...
...
@@ -541,4 +543,10 @@
id = #{qrcodeId}
</update>
<select
id=
"getQrcodeByClassify"
parameterType=
"long"
resultType=
"com.pcloud.book.group.vo.ClassifyQrcodeVO"
>
select id, classify_id classifyId, group_name groupName, user_number userNumber, weixin_group_id weixinGroupId, create_time createdTime
from book_group_qrcode where classify_id = #{classifyId}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/template/template_bookGroupStatistics.ftl
0 → 100644
View file @
89d4b009
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook
xmlns=
"urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o=
"urn:schemas-microsoft-com:office:office"
xmlns:x=
"urn:schemas-microsoft-com:office:excel"
xmlns:dt=
"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:ss=
"urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html=
"http://www.w3.org/TR/REC-html40"
>
<DocumentProperties
xmlns=
"urn:schemas-microsoft-com:office:office"
>
<Author>
蒙娇
</Author>
<LastAuthor>
林伟彬
</LastAuthor>
<Created>
2017-06-27T08:48:00Z
</Created>
<LastSaved>
2017-07-16T07:06:45Z
</LastSaved>
<Version>
15.00
</Version>
</DocumentProperties>
<CustomDocumentProperties
xmlns=
"urn:schemas-microsoft-com:office:office"
>
<KSOProductBuildVer
dt:dt=
"string"
>
2052-10.1.0.6489
</KSOProductBuildVer>
</CustomDocumentProperties>
<OfficeDocumentSettings
xmlns=
"urn:schemas-microsoft-com:office:office"
>
<AllowPNG/>
</OfficeDocumentSettings>
<ExcelWorkbook
xmlns=
"urn:schemas-microsoft-com:office:excel"
>
<WindowHeight>
11388
</WindowHeight>
<WindowWidth>
22944
</WindowWidth>
<WindowTopX>
0
</WindowTopX>
<WindowTopY>
0
</WindowTopY>
<ProtectStructure>
False
</ProtectStructure>
<ProtectWindows>
False
</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style
ss:ID=
"Default"
ss:Name=
"Normal"
>
<Alignment
ss:Vertical=
"Center"
/>
<Borders/>
<Font
ss:FontName=
"宋体"
x:CharSet=
"134"
ss:Size=
"11"
ss:Color=
"#000000"
/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style
ss:ID=
"m2113688147332"
>
<Alignment
ss:Horizontal=
"Center"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
</Borders>
<Font
ss:FontName=
"宋体"
x:CharSet=
"134"
ss:Size=
"14"
ss:Color=
"#000000"
ss:Bold=
"1"
/>
</Style>
<Style
ss:ID=
"m2113688147372"
>
<Alignment
ss:Horizontal=
"Left"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
</Borders>
<Font
ss:FontName=
"宋体"
x:CharSet=
"134"
ss:Size=
"11"
ss:Color=
"#000000"
/>
</Style>
<Style
ss:ID=
"m2113688147392"
>
<Alignment
ss:Horizontal=
"Left"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
</Borders>
<Font
ss:FontName=
"宋体"
x:CharSet=
"134"
ss:Size=
"11"
ss:Color=
"#000000"
/>
</Style>
<Style
ss:ID=
"s94"
>
<Alignment
ss:Horizontal=
"Center"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
</Borders>
<Interior
ss:Color=
"#AEAAAA"
ss:Pattern=
"Solid"
/>
</Style>
<Style
ss:ID=
"s95"
>
<Alignment
ss:Horizontal=
"Center"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
</Borders>
</Style>
<Style
ss:ID=
"s96"
>
<Alignment
ss:Horizontal=
"Right"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
</Borders>
</Style>
<Style
ss:ID=
"s97"
>
<Alignment
ss:Horizontal=
"Right"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
</Borders>
<NumberFormat
ss:Format=
"0%"
/>
</Style>
<Style
ss:ID=
"s99"
>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
</Borders>
</Style>
<Style
ss:ID=
"s100"
>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
</Borders>
<NumberFormat
ss:Format=
"0%"
/>
</Style>
<Style
ss:ID=
"s120"
>
<Alignment
ss:Horizontal=
"Left"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
</Borders>
<Font
ss:FontName=
"宋体"
x:CharSet=
"134"
ss:Size=
"11"
ss:Color=
"#000000"
ss:Bold=
"1"
/>
</Style>
<Style
ss:ID=
"s121"
>
<Alignment
ss:Horizontal=
"Center"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
</Borders>
<Interior
ss:Color=
"#AEAAAA"
ss:Pattern=
"Solid"
/>
</Style>
<Style
ss:ID=
"s122"
>
<Alignment
ss:Horizontal=
"Center"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
</Borders>
</Style>
<Style
ss:ID=
"s123"
>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
</Borders>
</Style>
<Style
ss:ID=
"s124"
>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
<Border
ss:Position=
"Top"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
/>
</Borders>
<NumberFormat
ss:Format=
"0%"
/>
</Style>
<Style
ss:ID=
"s126"
>
<Alignment
ss:Horizontal=
"Left"
ss:Vertical=
"Center"
/>
<Borders>
<Border
ss:Position=
"Bottom"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Left"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
<Border
ss:Position=
"Right"
ss:LineStyle=
"Continuous"
ss:Weight=
"1"
ss:Color=
"#000000"
/>
</Borders>
<Font
ss:FontName=
"宋体"
x:CharSet=
"134"
ss:Size=
"11"
ss:Color=
"#000000"
ss:Bold=
"1"
/>
</Style>
</Styles>
<Worksheet
ss:Name=
"Sheet1"
>
<Table
ss:ExpandedColumnCount=
"7"
ss:ExpandedRowCount=
"10000"
x:FullColumns=
"1"
x:FullRows=
"1"
ss:DefaultColumnWidth=
"48.6"
ss:DefaultRowHeight=
"19.950000000000003"
>
<Column
ss:AutoFitWidth=
"0"
ss:Width=
"169.20000000000002"
/>
<Column
ss:AutoFitWidth=
"0"
ss:Width=
"63.599999999999994"
/>
<Column
ss:AutoFitWidth=
"0"
ss:Width=
"64.8"
/>
<Column
ss:AutoFitWidth=
"0"
ss:Width=
"99.6"
/>
<Column
ss:AutoFitWidth=
"0"
ss:Width=
"76.8"
/>
<Column
ss:AutoFitWidth=
"0"
ss:Width=
"63.599999999999994"
/>
<Column
ss:AutoFitWidth=
"0"
ss:Width=
"59.4"
/>
<Row
ss:AutoFitHeight=
"0"
ss:Height=
"26.4"
>
<Cell
ss:MergeAcross=
"6"
ss:MergeDown=
"1"
ss:StyleID=
"m2113688147332"
><Data
ss:Type=
"String"
>
${title!}
</Data></Cell>
</Row>
<Row
ss:AutoFitHeight=
"0"
/>
<Row
ss:AutoFitHeight=
"0"
>
<Cell
ss:MergeAcross=
"6"
ss:StyleID=
"s126"
><Data
ss:Type=
"String"
>
应用统计 销售总额:¥${appSumStatistics.saleMoney!} 收益总额:¥${appSumStatistics.income!} 浏览总量:${appSumStatistics.scanCounts!}
</Data></Cell>
</Row>
<
#if appIncomeList??>
<
#list appIncomeList as app>
<Row
ss:AutoFitHeight=
"0"
>
<Cell
ss:MergeAcross=
"6"
ss:StyleID=
"m2113688147372"
><Data
ss:Type=
"String"
>
应用名称:${app.appName!} 销售额:¥${app.saleMoney!} 收益额:¥${app.income!} 浏览量:${app.scanCounts!}
</Data></Cell>
</Row>
<
#if app.itemList??>
<Row
ss:AutoFitHeight=
"0"
>
<Cell
ss:StyleID=
"s94"
><Data
ss:Type=
"String"
>
商品名称
</Data></Cell>
<Cell
ss:StyleID=
"s94"
><Data
ss:Type=
"String"
>
浏览量
</Data></Cell>
<Cell
ss:StyleID=
"s94"
><Data
ss:Type=
"String"
>
销售量
</Data></Cell>
<Cell
ss:StyleID=
"s94"
><Data
ss:Type=
"String"
>
销售总额(¥)
</Data></Cell>
<Cell
ss:StyleID=
"s94"
><Data
ss:Type=
"String"
>
收益额(¥)
</Data></Cell>
</Row>
<
#list app.itemList as appProduct>
<Row
ss:AutoFitHeight=
"0"
>
<Cell
ss:StyleID=
"s95"
><Data
ss:Type=
"String"
>
${appProduct.productName!}
</Data></Cell>
<Cell
ss:StyleID=
"s96"
><Data
ss:Type=
"Number"
>
${appProduct.scanCounts!}
</Data></Cell>
<Cell
ss:StyleID=
"s96"
><Data
ss:Type=
"Number"
>
${appProduct.saleCounts!}
</Data></Cell>
<Cell
ss:StyleID=
"s96"
><Data
ss:Type=
"Number"
>
${appProduct.saleMoney!}
</Data></Cell>
<Cell
ss:StyleID=
"s96"
><Data
ss:Type=
"Number"
>
${appProduct.income!}
</Data></Cell>
</Row>
<
/#list>
<
/#if>
<
/#list>
<
/#if>
<Row
ss:AutoFitHeight=
"0"
/>
<Row
ss:AutoFitHeight=
"0"
/>
<Row
ss:AutoFitHeight=
"0"
>
<Cell
ss:MergeAcross=
"6"
ss:StyleID=
"s120"
><Data
ss:Type=
"String"
>
商品统计 销售总额:¥${productSumStatistics.saleMoney!} 收益总额:¥${productSumStatistics.income!} 浏览总量:${productSumStatistics.scanCounts!}
</Data></Cell>
</Row>
<
#if productIncomeList??>
<Row
ss:AutoFitHeight=
"0"
>
<Cell
ss:StyleID=
"s121"
><Data
ss:Type=
"String"
>
商品名称
</Data></Cell>
<Cell
ss:StyleID=
"s121"
><Data
ss:Type=
"String"
>
浏览量
</Data></Cell>
<Cell
ss:StyleID=
"s121"
><Data
ss:Type=
"String"
>
销售量
</Data></Cell>
<Cell
ss:StyleID=
"s121"
><Data
ss:Type=
"String"
>
销售总额(¥)
</Data></Cell>
<Cell
ss:StyleID=
"s121"
><Data
ss:Type=
"String"
>
收益额(¥)
</Data></Cell>
</Row>
<
#list productIncomeList as product>
<Row
ss:AutoFitHeight=
"0"
>
<Cell
ss:StyleID=
"s122"
><Data
ss:Type=
"String"
>
${product.productName!}
</Data></Cell>
<Cell
ss:StyleID=
"s123"
><Data
ss:Type=
"Number"
>
${product.scanCounts!}
</Data></Cell>
<Cell
ss:StyleID=
"s123"
><Data
ss:Type=
"Number"
>
${product.saleCounts!}
</Data></Cell>
<Cell
ss:StyleID=
"s123"
><Data
ss:Type=
"Number"
>
${product.saleMoney!}
</Data></Cell>
<Cell
ss:StyleID=
"s123"
><Data
ss:Type=
"Number"
>
${product.income!}
</Data></Cell>
</Row>
<
/#list>
<
/#if>
</Table>
<WorksheetOptions
xmlns=
"urn:schemas-microsoft-com:office:excel"
>
<PageSetup>
<Header
x:Margin=
"0.3"
/>
<Footer
x:Margin=
"0.3"
/>
<PageMargins
x:Bottom=
"0.75"
x:Left=
"0.69930555555555596"
x:Right=
"0.69930555555555596"
x:Top=
"0.75"
/>
</PageSetup>
<Unsynced/>
<Print>
<ValidPrinterInfo/>
<PaperSizeIndex>
9
</PaperSizeIndex>
<HorizontalResolution>
600
</HorizontalResolution>
<VerticalResolution>
600
</VerticalResolution>
</Print>
<Selected/>
<Panes>
<Pane>
<Number>
3
</Number>
<ActiveRow>
12
</ActiveRow>
<ActiveCol>
16
</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>
False
</ProtectObjects>
<ProtectScenarios>
False
</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>
pom.xml
View file @
89d4b009
...
...
@@ -50,6 +50,10 @@
<pcloud-common-core.version>
2.1.0-SNAPSHOT
</pcloud-common-core.version>
<wxgroup-sdk.version>
1.0.0-SNAPSHOT
</wxgroup-sdk.version>
</properties>
<activation>
<activeByDefault>
true
</activeByDefault>
</activation>
</profile>
<!-- UAT -->
...
...
@@ -64,9 +68,7 @@
<wxgroup-sdk.version>
1.0.0-RELEASE
</wxgroup-sdk.version>
</properties>
<!-- 设置默认环境 -->
<activation>
<activeByDefault>
true
</activeByDefault>
</activation>
</profile>
<!-- 压测环境 -->
...
...
@@ -104,8 +106,8 @@
<spring-cloud.version>
Dalston.SR1
</spring-cloud.version>
<pcloud-common-web.version>
2.1.0-RELEASE
</pcloud-common-web.version>
<!-- book -->
<pcloud-facade-book.version>
2.1.0-
RELEASE
</pcloud-facade-book.version>
<pcloud-service-book.version>
2.1.0-
RELEASE
</pcloud-service-book.version>
<pcloud-facade-book.version>
2.1.0-
SNAPSHOT
</pcloud-facade-book.version>
<pcloud-service-book.version>
2.1.0-
SNAPSHOT
</pcloud-service-book.version>
<pcloud-facade-usercenter.version>
2.1.0-RELEASE
</pcloud-facade-usercenter.version>
<pcloud-facade-channelcenter.version>
2.1.0-RELEASE
</pcloud-facade-channelcenter.version>
...
...
@@ -113,17 +115,17 @@
<pcloud-facade-analysisengine.version>
2.1.0-RELEASE
</pcloud-facade-analysisengine.version>
<pcloud-facade-quartz.version>
2.1.0-RELEASE
</pcloud-facade-quartz.version>
<pcloud-facade-appcenter.version>
2.1.0-RELEASE
</pcloud-facade-appcenter.version>
<pcloud-facade-settlement.version>
2.1.0-RELEASE
</pcloud-facade-settlement.version>
<pcloud-facade-settlement.version>
2.1.0-SNAPSHOT
</pcloud-facade-settlement.version>
<pcloud-facade-message.version>
2.1.0-RELEASE
</pcloud-facade-message.version>
<pcloud-facade-commoncenter.version>
2.1.0-RELEASE
</pcloud-facade-commoncenter.version>
<pcloud-facade-comment.version>
2.1.0-RELEASE
</pcloud-facade-comment.version>
<pcloud-facade-voicemessage.version>
2.1.0-RELEASE
</pcloud-facade-voicemessage.version>
<pcloud-facade-raystask.version>
2.1.0-RELEASE
</pcloud-facade-raystask.version>
<pcloud-facade-contentcenter.version>
2.1.0-SNAPSHOT
</pcloud-facade-contentcenter.version>
<pcloud-facade-tradecenter.version>
2.1.0-
RELEASE
</pcloud-facade-tradecenter.version>
<pcloud-facade-tradecenter.version>
2.1.0-
SNAPSHOT
</pcloud-facade-tradecenter.version>
<pcloud-facade-readercenter.version>
2.1.0-RELEASE
</pcloud-facade-readercenter.version>
<pcloud-facade-labelcenter.version>
2.1.0-RELEASE
</pcloud-facade-labelcenter.version>
<pcloud-facade-wechatgroup.version>
2.1.0-
RELEASE
</pcloud-facade-wechatgroup.version>
<pcloud-facade-wechatgroup.version>
2.1.0-
SNAPSHOT
</pcloud-facade-wechatgroup.version>
<pcloud-facade-promotion.version>
2.1.0-RELEASE
</pcloud-facade-promotion.version>
<pcloud-facade-audioapp.version>
2.1.0-RELEASE
</pcloud-facade-audioapp.version>
<pcloud-facade-videolesson.version>
2.1.0-RELEASE
</pcloud-facade-videolesson.version>
...
...
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