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
e9e43340
Commit
e9e43340
authored
Aug 12, 2019
by
daixing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1000884编辑端首页、收益管理,加上微信群相关
parent
2af562d2
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
637 additions
and
19 deletions
+637
-19
BookConsr.java
...n/java/com/pcloud/book/consumer/settlement/BookConsr.java
+1
-1
SettlementConsr.java
.../com/pcloud/book/consumer/settlement/SettlementConsr.java
+17
-0
BookGroupBiz.java
...src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
+1
-1
BookGroupBizImpl.java
...java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
+113
-4
AppClickRecordDaoImpl.java
...com/pcloud/book/group/dao/impl/AppClickRecordDaoImpl.java
+1
-1
StatisticsIncomeDto.java
...n/java/com/pcloud/book/group/dto/StatisticsIncomeDto.java
+171
-0
BookGroupFacade.java
...in/java/com/pcloud/book/group/facade/BookGroupFacade.java
+2
-4
BookGroupFacadeImpl.java
...om/pcloud/book/group/facade/impl/BookGroupFacadeImpl.java
+4
-4
template_bookGroupStatistics.ftl
.../main/resources/template/template_bookGroupStatistics.ftl
+321
-0
pom.xml
pom.xml
+6
-4
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/consumer/settlement/BookConsr.java
View file @
e9e43340
...
...
@@ -129,7 +129,7 @@ public class BookConsr {
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"批量获取社群码下资源的总收益.[getRescourceTotalIncome]:"
+
e
.
getMessage
(),
e
);
}
return
rescourceTotalIncome
;
return
rescourceTotalIncome
==
null
?
BigDecimal
.
ZERO
:
rescourceTotalIncome
;
}
@ParamLog
(
value
=
"批量获取社群码分类的收益"
,
isBefore
=
false
,
isAfterReturn
=
false
)
...
...
pcloud-service-book/src/main/java/com/pcloud/book/consumer/settlement/SettlementConsr.java
View file @
e9e43340
...
...
@@ -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
;
...
...
@@ -26,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
{
...
...
@@ -66,4 +71,16 @@ public class SettlementConsr {
}
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/group/biz/BookGroupBiz.java
View file @
e9e43340
...
...
@@ -280,7 +280,7 @@ public interface BookGroupBiz {
/**
* 资源数据导出
*/
void
exportRescourceIncomeData
(
Long
bookGroupId
,
Long
adviserId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
);
Map
<
String
,
String
>
exportRescourceIncomeData
(
Long
bookGroupId
,
Long
adviserId
);
/**
* 获取资源浏览数据
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
View file @
e9e43340
...
...
@@ -51,6 +51,7 @@ 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.*
;
...
...
@@ -65,6 +66,7 @@ import com.pcloud.resourcecenter.product.dto.UpdateAppProductParamDTO;
import
com.pcloud.resourcecenter.product.entity.Product
;
import
com.pcloud.resourcecenter.product.service.ProductService
;
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
;
...
...
@@ -88,6 +90,8 @@ import java.util.List;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
static
com
.
sun
.
tools
.
doclets
.
formats
.
html
.
markup
.
HtmlStyle
.
title
;
/**
* Description 社群书群二维码业务逻辑层接口实现类
* Created by PENG on 2019/4/17.
...
...
@@ -1293,7 +1297,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
TotalRescourceDataVO
totalRescourceDataVO
=
new
TotalRescourceDataVO
();
List
<
Long
>
rescourceIds
=
appClickRecordDao
.
getRescourceIds
(
bookGroupId
,
classifyId
,
qrcodeId
,
type
);
Long
rescourceTotalClick
=
appClickRecordDao
.
getRescourceTotalClick
(
bookGroupId
,
classifyId
,
qrcodeId
,
type
);
totalRescourceDataVO
.
setClickCount
(
rescourceTotalClick
);
totalRescourceDataVO
.
setClickCount
(
rescourceTotalClick
==
null
?
0L
:
rescourceTotalClick
);
GroupRescourceIncomeParamDTO
groupRescourceIncomeParamDTO
=
new
GroupRescourceIncomeParamDTO
();
groupRescourceIncomeParamDTO
.
setBookGroupId
(
bookGroupId
);
groupRescourceIncomeParamDTO
.
setClassifyId
(
classifyId
);
...
...
@@ -1308,11 +1312,116 @@ public class BookGroupBizImpl implements BookGroupBiz {
}
@Override
public
void
exportRescourceIncomeData
(
Long
bookGroupId
,
Long
adviserId
,
Long
classifyId
,
Long
qrcodeId
,
String
type
)
{
List
<
ResourcesStatisticVO
>
clickStatistics
=
appClickRecordDao
.
getClickStatistics
(
bookGroupId
,
classifyId
,
qrcodeId
,
type
);
setInfo
(
clickStatistics
,
bookGroupId
,
classifyId
,
qrcodeId
,
type
);
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"
);
//获取挂在应用下的商品信息
ProductStaticUnderAppMapDTO
productStaticUnderAppMapDTO
=
new
ProductStaticUnderAppMapDTO
();
productStaticUnderAppMapDTO
.
setBookGroupId
(
bookGroupId
);
productStaticUnderAppMapDTO
.
setAppIds
(
appClickStatistics
.
stream
().
map
(
ResourcesStatisticVO:
:
getRescourceId
).
collect
(
Collectors
.
toList
()));
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"
);
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
().
intValue
());
statisticsIncomeDto
.
setSaleMoney
(
e
.
getTotalSale
());
statisticsIncomeDto
.
setScanCounts
(
e
.
getBrowseCount
().
intValue
());
productStatisticsIncomeDtos
.
add
(
statisticsIncomeDto
);
});
productStaticUnderAppMap
.
put
(
k
,
productStatisticsIncomeDtos
);
});
return
productStaticUnderAppMap
;
}
@Override
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/AppClickRecordDaoImpl.java
View file @
e9e43340
...
...
@@ -47,7 +47,7 @@ public class AppClickRecordDaoImpl extends BaseDaoImpl<AppClickRecord> implement
@Override
public
Map
<
Long
,
ResourceClickVO
>
getResourceClick
(
Map
<
String
,
Object
>
map
)
{
return
this
.
getSqlSession
().
selectMap
(
this
.
getStatement
(
"getResourceClick"
),
map
,
"resourceId"
);
return
this
.
getSqlSession
().
selectMap
(
this
.
getStatement
(
"getResourceClick"
),
map
,
"res
c
ourceId"
);
}
@Override
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/StatisticsIncomeDto.java
0 → 100644
View file @
e9e43340
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/BookGroupFacade.java
View file @
e9e43340
...
...
@@ -314,10 +314,8 @@ public interface BookGroupFacade {
@ApiImplicitParam
(
name
=
"type"
,
value
=
"type"
,
required
=
true
,
dataType
=
"String"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"exportRescourceIncomeData"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
exportRescourceIncomeData
(
@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
;
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/impl/BookGroupFacadeImpl.java
View file @
e9e43340
...
...
@@ -433,12 +433,12 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
@Override
@RequestMapping
(
value
=
"exportRescourceIncomeData"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
exportRescourceIncomeData
(
@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
{
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
);
bookGroupBiz
.
exportRescourceIncomeData
(
bookGroupId
,
adviserId
,
classifyId
,
qrcodeId
,
type
);
bookGroupBiz
.
exportRescourceIncomeData
(
bookGroupId
,
adviserId
);
return
new
ResponseDto
<>();
}
}
pcloud-service-book/src/main/resources/template/template_bookGroupStatistics.ftl
0 → 100644
View file @
e9e43340
<?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 @
e9e43340
...
...
@@ -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>
<!-- 压测环境 -->
...
...
@@ -113,7 +115,7 @@
<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.0
.0-SNAPSHOT
</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>
...
...
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