记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
董敬伟
liquidnet-bus-v1
Commits
489a6aae
Commit
489a6aae
authored
Sep 24, 2021
by
anjiabin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交演出数据统计admin模块
parent
1cb182fe
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1031 additions
and
0 deletions
+1031
-0
IReportPerformanceService.java
...dnet/service/kylin/service/IReportPerformanceService.java
+47
-0
ReportPerformanceController.java
...ontroller/zhengzai/kylin/ReportPerformanceController.java
+143
-0
performanceData.html
...rces/templates/zhengzai/kylin/report/performanceData.html
+525
-0
ReportPerformanceServiceImpl.java
...gzai/kylin/service/impl/ReportPerformanceServiceImpl.java
+48
-0
PerformanceAgeDataDto.java
...idnet/service/kylin/dao/report/PerformanceAgeDataDto.java
+31
-0
PerformanceCityDataDto.java
...dnet/service/kylin/dao/report/PerformanceCityDataDto.java
+31
-0
PerformanceProvinceDataDto.java
.../service/kylin/dao/report/PerformanceProvinceDataDto.java
+31
-0
PerformanceSexDataDto.java
...idnet/service/kylin/dao/report/PerformanceSexDataDto.java
+30
-0
ReportPerformanceMapper.java
...quidnet/service/kylin/mapper/ReportPerformanceMapper.java
+49
-0
ReportPerformanceMapper.xml
...iquidnet.service.kylin.mapper/ReportPerformanceMapper.xml
+96
-0
No files found.
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/IReportPerformanceService.java
0 → 100644
View file @
489a6aae
package
com
.
liquidnet
.
service
.
kylin
.
service
;
import
com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: IReportPerformanceService
* @Package com.liquidnet.service.kylin.service
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:27
*/
public
interface
IReportPerformanceService
{
/**
* 获取按省统计数据
* @param performanceId
* @return
*/
List
<
PerformanceProvinceDataDto
>
getProvinceDataList
(
String
performanceId
);
/**
* 获取按城市统计数据
* @param performanceId
* @return
*/
List
<
PerformanceCityDataDto
>
getCityDataList
(
String
performanceId
);
/**
* 获取按年龄统计数据
* @param performanceId
* @return
*/
List
<
PerformanceAgeDataDto
>
getAgeDataList
(
String
performanceId
);
/**
* 获取按性别统计数据
* @param performanceId
* @return
*/
List
<
PerformanceSexDataDto
>
getSexDataList
(
String
performanceId
);
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/kylin/ReportPerformanceController.java
0 → 100644
View file @
489a6aae
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
kylin
;
import
com.liquidnet.client.admin.common.annotation.Log
;
import
com.liquidnet.client.admin.common.core.controller.BaseController
;
import
com.liquidnet.client.admin.common.core.domain.AjaxResult
;
import
com.liquidnet.client.admin.common.enums.BusinessType
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto
;
import
com.liquidnet.service.kylin.dto.param.PerformancePartnerVo
;
import
com.liquidnet.service.kylin.service.IReportPerformanceService
;
import
com.liquidnet.service.kylin.service.admin.IKylinPerformancesAdminService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.ModelMap
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
java.time.LocalDate
;
import
java.util.HashMap
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ReportPerformanceController
* @Package com.liquidnet.client.admin.web.controller.zhengzai.kylin
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:33
*/
@Slf4j
@Controller
@RequestMapping
(
"/kylin/report"
)
public
class
ReportPerformanceController
extends
BaseController
{
private
String
prefix
=
"zhengzai/kylin/report"
;
@Autowired
private
IReportPerformanceService
reportPerformanceService
;
@Autowired
private
IKylinPerformancesAdminService
kylinPerformancesAdminService
;
@Autowired
private
MongoTemplate
mongoTemplate
;
// @RequiresPermissions("kylin:report:getPerformanceData:view")
@GetMapping
(
"/getPerformanceData"
)
public
String
getPerformanceDataView
(
String
performanceId
,
ModelMap
mmap
)
{
mmap
.
put
(
"currentDate"
,
LocalDate
.
now
());
mmap
.
put
(
"performanceId"
,
""
);
return
prefix
+
"/performanceData"
;
}
/**
* 查询演出列表
*/
@Log
(
title
=
"演出报表"
,
businessType
=
BusinessType
.
LIST
)
@RequiresPermissions
(
"kylin:report:getPerformanceData:list"
)
@PostMapping
(
"/getPerformanceData/list"
)
@ResponseBody
public
AjaxResult
provincelist
(
@RequestParam
(
value
=
"performanceId"
)
@Validated
String
performanceId
,
ModelMap
mmap
)
{
//获取演出详情
// KylinPerformanceMisVo kylinPerformanceMisVo = kylinPerformancesAdminService.performanceDetails(performanceId);
PerformancePartnerVo
performanceData
=
mongoTemplate
.
findOne
(
Query
.
query
(
Criteria
.
where
(
"performancesId"
).
is
(
performanceId
)),
PerformancePartnerVo
.
class
,
PerformancePartnerVo
.
class
.
getSimpleName
());
if
(
StringUtil
.
isNull
(
performanceData
)||
StringUtil
.
isNull
(
performanceData
.
getPerformancesId
())){
return
AjaxResult
.
error
(
"演出Id:"
+
performanceId
+
"对应演出不存在!"
,
performanceId
);
}
HashMap
<
String
,
Object
>
hashMap
=
new
HashMap
();
log
.
info
(
"ReportPerformanceController.getPerformanceData performanceId:{}"
,
performanceId
);
//获取按省统计数据
List
<
PerformanceProvinceDataDto
>
provinceDataList
=
reportPerformanceService
.
getProvinceDataList
(
performanceId
);
List
<
PerformanceCityDataDto
>
cityDataList
=
reportPerformanceService
.
getCityDataList
(
performanceId
);
List
<
PerformanceAgeDataDto
>
ageDataList
=
reportPerformanceService
.
getAgeDataList
(
performanceId
);
List
<
PerformanceSexDataDto
>
sexDataList
=
reportPerformanceService
.
getSexDataList
(
performanceId
);
// //按年龄
// PerformanceAgeDataDto ageDataDto = PerformanceAgeDataDto.getNew();
// ageDataDto.setAge("19");
// ageDataDto.setTotalNumber(34555);
// ageDataList.add(ageDataDto);
// ageDataDto = PerformanceAgeDataDto.getNew();
// ageDataDto.setAge("20");
// ageDataDto.setTotalNumber(33444);
// ageDataList.add(ageDataDto);
//
// //按性别
// PerformanceSexDataDto sexDataDto = PerformanceSexDataDto.getNew();
// sexDataDto.setSex("男");
// sexDataDto.setTotalNumber(12345);
// sexDataList.add(sexDataDto);
// sexDataDto = PerformanceSexDataDto.getNew();
// sexDataDto.setSex("女");
// sexDataDto.setTotalNumber(99885);
// sexDataList.add(sexDataDto);
String
perTitle
=
performanceData
.
getTitle
();
hashMap
.
put
(
"currentDate"
,
LocalDate
.
now
());
hashMap
.
put
(
"performanceId"
,
performanceId
);
hashMap
.
put
(
"perTitle"
,
perTitle
);
hashMap
.
put
(
"provinceDataList"
,
provinceDataList
);
hashMap
.
put
(
"cityDataList"
,
cityDataList
);
hashMap
.
put
(
"ageDataList"
,
ageDataList
);
hashMap
.
put
(
"sexDataList"
,
sexDataList
);
return
AjaxResult
.
success
(
hashMap
);
}
// /**
// * 查询演出列表
// */
//// @Log(title = "演出报表", businessType = BusinessType.LIST)
//// @RequiresPermissions("kylin:report:getPerformanceData:list")
// @PostMapping("/getPerformanceData/list")
// public String getPerformanceData(@RequestParam(value = "performanceId") @Validated String performanceId, ModelMap mmap)
// {
// log.info("ReportPerformanceController.getPerformanceData performanceId:{}",performanceId);
// //获取按省统计数据
// List<PerformanceProvinceDataDto> provinceDataList= reportPerformanceService.getProvinceDataList(performanceId);
// //
// List<PerformanceCityDataDto> cityDataList= reportPerformanceService.getCityDataList(performanceId);
// List<PerformanceAgeDataDto> ageDataList= reportPerformanceService.getAgeDataList(performanceId);
// List<PerformanceSexDataDto> sexDataDtos= reportPerformanceService.getSexDataList(performanceId);
//
// mmap.put("currentDate", LocalDate.now());
// mmap.put("performanceId", performanceId);
// mmap.put("provinceDataList",provinceDataList);
// mmap.put("cityDataList",cityDataList);
// mmap.put("ageDataList",ageDataList);
// mmap.put("sexDataDtos",sexDataDtos);
// return prefix + "/performanceData";
// }
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/kylin/report/performanceData.html
0 → 100644
View file @
489a6aae
<!DOCTYPE html>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<head>
<th:block
th:include=
"include :: header('演出列表')"
/>
</head>
<body
class=
"gray-bg"
>
<div
class=
"row border-bottom white-bg dashboard-header"
>
<div
class=
"col-sm-12 search-collapse"
>
<form
id=
"formId"
>
<div
class=
"select-list"
>
<ul>
<li>
<label>
演出id:
</label>
<input
th:field=
"${performanceId}"
type=
"text"
id=
"performanceId"
placeholder=
"演出ID"
name=
"performanceId"
required
/>
</li>
<li>
<a
class=
"btn btn-primary btn-rounded btn-sm"
onclick=
"submit()"
><i
class=
"fa fa-search"
></i>
搜索
</a>
<a
class=
"btn btn-warning btn-rounded btn-sm"
onclick=
"$.form.reset()"
><i
class=
"fa fa-refresh"
></i>
重置
</a>
</li>
</ul>
</div>
</form>
<form
id=
"formId2"
>
<div
class=
"select-list"
style=
"text-align: right"
>
<ul>
<li>
<label>
演出id:
</label>
<input
type=
"text"
name=
"perId"
id =
"perId"
readonly
/>
</li>
<li>
<label>
演出名称:
</label>
<input
type=
"text"
name=
"perName"
id =
"perTitle"
readonly
/>
</li>
</ul>
</div>
</form>
</div>
</div>
<div
class=
"wrapper wrapper-content animated fadeInRight"
>
<div
class=
"row"
>
<div
class=
"col-sm-12"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
按省份统计购票数量
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
选项1
</a>
</li>
<li><a
href=
"#"
>
选项2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
"echarts"
id=
"provinceDataChart"
></div>
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-12"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
按城市统计购票数量
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
选项1
</a>
</li>
<li><a
href=
"#"
>
选项2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
"echarts"
id=
"cityDataChart"
></div>
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-12"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
按年龄统计购票数量
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
选项1
</a>
</li>
<li><a
href=
"#"
>
选项2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
"echarts"
id=
"ageDataChart"
></div>
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-sm-12"
>
<div
class=
"ibox float-e-margins"
>
<div
class=
"ibox-title"
>
<h5>
按性别统计购票数量
</h5>
<div
class=
"ibox-tools"
>
<a
class=
"collapse-link"
>
<i
class=
"fa fa-chevron-up"
></i>
</a>
<a
class=
"dropdown-toggle"
data-toggle=
"dropdown"
href=
"#"
>
<i
class=
"fa fa-wrench"
></i>
</a>
<ul
class=
"dropdown-menu dropdown-user"
>
<li><a
href=
"#"
>
选项1
</a>
</li>
<li><a
href=
"#"
>
选项2
</a>
</li>
</ul>
<a
class=
"close-link"
>
<i
class=
"fa fa-times"
></i>
</a>
</div>
</div>
<div
class=
"ibox-content"
>
<div
class=
"echarts"
id=
"sexDataChart"
></div>
</div>
</div>
</div>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: echarts-js"
/>
<script
type=
"text/javascript"
>
var
prefix
=
ctx
+
"kylin/report/getPerformanceData"
;
var
selectListUrl
=
prefix
+
"/list"
;
function
submit
()
{
var
performanceId
=
$
(
"#performanceId"
).
val
();
var
param
=
{
performanceId
:
performanceId
}
if
(
performanceId
==
""
)
{
alert
(
"演出ID不能为空"
);
}
else
{
// $.post(selectListUrl,param,function (res) {
// console.log(res.msg);
// initProvinceData(res.data);
// });
$
.
operate
.
post
(
selectListUrl
,
param
,
function
(
res
)
{
if
(
res
==
null
){
alert
(
"演出查询异常!"
);
return
;
}
if
(
res
.
code
!=
null
&&
res
.
code
==
0
){
debugger
;
initProvinceData
(
res
.
data
);
initCityData
(
res
.
data
);
initAgeData
(
res
.
data
);
initSexData
(
res
.
data
);
$
(
"#perId"
).
attr
(
"value"
,
res
.
data
.
performanceId
);
$
(
"#perTitle"
).
attr
(
"value"
,
res
.
data
.
perTitle
);
}
else
{
// alert(res.msg);
}
});
}
}
function
submit2
(){
var
form
=
$
(
"#formId"
);
console
.
log
(
selectListUrl
);
form
.
action
=
selectListUrl
;
form
.
method
=
"post"
;
form
.
submit
();
// if ($.validate.form()) {
// var form = $("#formId");
// console.log(selectListUrl);
// form.action = selectListUrl;
// form.submit();
// }
}
var
validate
=
$
(
"#formId"
).
validate
({
onkeyup
:
false
,
rules
:{
performanceId
:{
required
:
true
}
},
messages
:{
performanceId
:
{
required
:
"演出id不能为空!"
}
}
});
//按省份统计
function
initProvinceData
(
data
){
let
settingObj
=
data
.
provinceDataList
;
// 对象转化为数组
let
settingArr
=
Object
.
keys
(
settingObj
).
map
(
key
=>
{
return
settingObj
[
key
];
})
// 给数组附键值
let
value
=
settingArr
.
map
(
item
=>
{
return
item
.
totalNumber
;
})
// console.log("value.length==="+value.length);
// console.log("value[0]==="+value[0]);
let
name
=
settingArr
.
map
(
item
=>
{
return
item
.
province
;
})
// console.log("name.length==="+name.length);
// console.log("name[0]==="+name[0]);
var
barChart
=
echarts
.
init
(
document
.
getElementById
(
"provinceDataChart"
));
var
baroption
=
{
title
:
{
text
:
'按省份统计购票数量'
,
x
:
'center'
},
tooltip
:
{
trigger
:
'axis'
},
legend
:
{
data
:[
'购票数量'
]
},
grid
:{
x
:
30
,
x2
:
40
,
y2
:
24
},
calculable
:
true
,
xAxis
:
[
{
type
:
'category'
,
// data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
data
:
name
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'开票量'
,
type
:
'bar'
,
// data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
data
:
value
,
markPoint
:
{
data
:
[
{
type
:
'max'
,
name
:
'最大值'
},
{
type
:
'min'
,
name
:
'最小值'
}
]
},
markLine
:
{
data
:
[
{
type
:
'average'
,
name
:
'平均值'
}
]
}
}
]
};
barChart
.
setOption
(
baroption
);
window
.
onresize
=
barChart
.
resize
;
}
//按城市统计
function
initCityData
(
data
){
let
settingObj
=
data
.
cityDataList
;
// 对象转化为数组
let
settingArr
=
Object
.
keys
(
settingObj
).
map
(
key
=>
{
return
settingObj
[
key
];
})
// 给数组附键值
let
value
=
settingArr
.
map
(
item
=>
{
return
item
.
totalNumber
;
})
// console.log("value.length==="+value.length);
// console.log("value[0]==="+value[0]);
let
name
=
settingArr
.
map
(
item
=>
{
return
item
.
cityName
;
})
// console.log("name.length==="+name.length);
// console.log("name[0]==="+name[0]);
var
barChart
=
echarts
.
init
(
document
.
getElementById
(
"cityDataChart"
));
var
baroption
=
{
title
:
{
text
:
'按城市统计购票数量'
,
x
:
'center'
},
tooltip
:
{
trigger
:
'axis'
},
legend
:
{
data
:[
'购票数量'
]
},
grid
:{
x
:
30
,
x2
:
40
,
y2
:
24
},
calculable
:
true
,
xAxis
:
[
{
type
:
'category'
,
// data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
data
:
name
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'开票量'
,
type
:
'bar'
,
// data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
data
:
value
,
markPoint
:
{
data
:
[
{
type
:
'max'
,
name
:
'最大值'
},
{
type
:
'min'
,
name
:
'最小值'
}
]
},
markLine
:
{
data
:
[
{
type
:
'average'
,
name
:
'平均值'
}
]
}
}
]
};
barChart
.
setOption
(
baroption
);
window
.
onresize
=
barChart
.
resize
;
}
//按年龄统计
function
initAgeData
(
data
){
let
settingObj
=
data
.
ageDataList
;
// 对象转化为数组
let
settingArr
=
Object
.
keys
(
settingObj
).
map
(
key
=>
{
return
settingObj
[
key
];
})
// 给数组附键值
let
value
=
settingArr
.
map
(
item
=>
{
return
item
.
totalNumber
;
})
// console.log("value.length==="+value.length);
// console.log("value[0]==="+value[0]);
let
name
=
settingArr
.
map
(
item
=>
{
return
item
.
age
;
})
// console.log("name.length==="+name.length);
// console.log("name[0]==="+name[0]);
var
barChart
=
echarts
.
init
(
document
.
getElementById
(
"ageDataChart"
));
var
baroption
=
{
title
:
{
text
:
'按年龄统计购票数量'
,
x
:
'center'
},
tooltip
:
{
trigger
:
'axis'
},
legend
:
{
data
:[
'购票数量'
]
},
grid
:{
x
:
30
,
x2
:
40
,
y2
:
24
},
calculable
:
true
,
xAxis
:
[
{
type
:
'category'
,
// data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
data
:
name
}
],
yAxis
:
[
{
type
:
'value'
}
],
series
:
[
{
name
:
'开票量'
,
type
:
'bar'
,
// data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3],
data
:
value
,
markPoint
:
{
data
:
[
{
type
:
'max'
,
name
:
'最大值'
},
{
type
:
'min'
,
name
:
'最小值'
}
]
},
markLine
:
{
data
:
[
{
type
:
'average'
,
name
:
'平均值'
}
]
}
}
]
};
barChart
.
setOption
(
baroption
);
window
.
onresize
=
barChart
.
resize
;
}
/**
* 按性别统计
* @param data
*/
function
initSexData
(
data
){
debugger
;
let
settingObj
=
data
.
sexDataList
;
// 对象转化为数组
let
settingArr
=
Object
.
keys
(
settingObj
).
map
(
key
=>
{
return
settingObj
[
key
];
})
// 给数组附键值
let
value
=
settingArr
.
map
(
item
=>
{
return
{
"value"
:
item
.
totalNumber
};
})
// console.log("value.length==="+value.length);
// console.log("value[0]==="+value[0].value);
let
name
=
settingArr
.
map
(
item
=>
{
return
{
"name"
:
item
.
sex
};
})
// console.log("name.length==="+name.length);
// console.log("name[0]==="+name[0].name);
// 合并数组或者对象在数组或对象前面加...,是es6的新写法,然后数组的map方法会返回数组.
let
objArr
=
value
.
map
((
value
,
index
)
=>
{
return
{
...
value
,...
name
[
index
]};
});
console
.
log
(
objArr
[
0
]);
var
pieChart
=
echarts
.
init
(
document
.
getElementById
(
"sexDataChart"
));
var
pieoption
=
{
title
:
{
text
:
'按性别统计购票数量'
,
// subtext: '纯属虚构',
x
:
'center'
},
tooltip
:
{
trigger
:
'item'
,
formatter
:
"{a} <br/>{b} : {c} ({d}%)"
},
legend
:
{
orient
:
'vertical'
,
left
:
'left'
,
data
:
[{
name
:
'dde'
},{
name
:
'222'
}]
},
calculable
:
true
,
series
:
[
{
name
:
'性别'
,
type
:
'pie'
,
radius
:
'55%'
,
center
:
[
'50%'
,
'60%'
],
data
:
objArr
,
itemStyle
:
{
normal
:{
label
:{
show
:
true
,
formatter
:
"{b} :
\n
{c}
\n
({d}%)"
,
position
:
"inner"
}
}
}
}
]
};
pieChart
.
setOption
(
pieoption
);
$
(
window
).
resize
(
pieChart
.
resize
);
}
</script>
</body>
</html>
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/ReportPerformanceServiceImpl.java
0 → 100644
View file @
489a6aae
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
kylin
.
service
.
impl
;
import
com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto
;
import
com.liquidnet.service.kylin.mapper.ReportPerformanceMapper
;
import
com.liquidnet.service.kylin.service.IReportPerformanceService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ReportPerformanceServiceImpl
* @Package com.liquidnet.client.admin.zhengzai.kylin.service.impl
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 11:30
*/
@Slf4j
@Service
public
class
ReportPerformanceServiceImpl
implements
IReportPerformanceService
{
@Autowired
private
ReportPerformanceMapper
reportPerformanceMapper
;
@Override
public
List
<
PerformanceProvinceDataDto
>
getProvinceDataList
(
String
performanceId
)
{
return
reportPerformanceMapper
.
getProvinceDataList
(
performanceId
);
}
@Override
public
List
<
PerformanceCityDataDto
>
getCityDataList
(
String
performanceId
)
{
return
reportPerformanceMapper
.
getCityDataList
(
performanceId
);
}
@Override
public
List
<
PerformanceAgeDataDto
>
getAgeDataList
(
String
performanceId
)
{
return
reportPerformanceMapper
.
getAgeDataList
(
performanceId
);
}
@Override
public
List
<
PerformanceSexDataDto
>
getSexDataList
(
String
performanceId
)
{
return
reportPerformanceMapper
.
getSexDataList
(
performanceId
);
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/report/PerformanceAgeDataDto.java
0 → 100644
View file @
489a6aae
package
com
.
liquidnet
.
service
.
kylin
.
dao
.
report
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceAgeDataDto
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:58
*/
@Data
public
class
PerformanceAgeDataDto
implements
Serializable
{
private
String
performanceId
;
private
String
age
;
private
long
totalNumber
;
private
static
final
PerformanceAgeDataDto
obj
=
new
PerformanceAgeDataDto
();
public
static
PerformanceAgeDataDto
getNew
()
{
try
{
return
(
PerformanceAgeDataDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
PerformanceAgeDataDto
();
}
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/report/PerformanceCityDataDto.java
0 → 100644
View file @
489a6aae
package
com
.
liquidnet
.
service
.
kylin
.
dao
.
report
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceCityDataDto
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:58
*/
@Data
public
class
PerformanceCityDataDto
implements
Serializable
{
private
String
performanceId
;
private
String
cityName
;
private
long
totalNumber
;
private
static
final
PerformanceCityDataDto
obj
=
new
PerformanceCityDataDto
();
public
static
PerformanceCityDataDto
getNew
()
{
try
{
return
(
PerformanceCityDataDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
PerformanceCityDataDto
();
}
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/report/PerformanceProvinceDataDto.java
0 → 100644
View file @
489a6aae
package
com
.
liquidnet
.
service
.
kylin
.
dao
.
report
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceProvinceData
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:57
*/
@Data
public
class
PerformanceProvinceDataDto
implements
Serializable
{
private
String
performanceId
;
private
String
province
;
private
long
totalNumber
;
private
static
final
PerformanceProvinceDataDto
obj
=
new
PerformanceProvinceDataDto
();
public
static
PerformanceProvinceDataDto
getNew
()
{
try
{
return
(
PerformanceProvinceDataDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
PerformanceProvinceDataDto
();
}
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/report/PerformanceSexDataDto.java
0 → 100644
View file @
489a6aae
package
com
.
liquidnet
.
service
.
kylin
.
dao
.
report
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: PerformanceSexDataDto
* @Package com.liquidnet.service.kylin.dao.report
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:58
*/
@Data
public
class
PerformanceSexDataDto
implements
Serializable
{
private
String
sex
;
private
long
totalNumber
;
private
static
final
PerformanceSexDataDto
obj
=
new
PerformanceSexDataDto
();
public
static
PerformanceSexDataDto
getNew
()
{
try
{
return
(
PerformanceSexDataDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
PerformanceSexDataDto
();
}
}
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/mapper/ReportPerformanceMapper.java
0 → 100644
View file @
489a6aae
package
com
.
liquidnet
.
service
.
kylin
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto
;
import
com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto
;
import
com.liquidnet.service.kylin.entity.KylinPerformances
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: ReportPerformanceMapper
* @Package com.liquidnet.service.kylin.mapper
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/9/23 10:54
*/
public
interface
ReportPerformanceMapper
extends
BaseMapper
<
KylinPerformances
>
{
/**
* 获取按省统计数据
* @param performanceId
* @return
*/
List
<
PerformanceProvinceDataDto
>
getProvinceDataList
(
String
performanceId
);
/**
* 获取按城市统计数据
* @param performanceId
* @return
*/
List
<
PerformanceCityDataDto
>
getCityDataList
(
String
performanceId
);
/**
* 获取按年龄统计数据
* @param performanceId
* @return
*/
List
<
PerformanceAgeDataDto
>
getAgeDataList
(
String
performanceId
);
/**
* 获取按性别统计数据
* @param performanceId
* @return
*/
List
<
PerformanceSexDataDto
>
getSexDataList
(
String
performanceId
);
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/resources/com.liquidnet.service.kylin.mapper/ReportPerformanceMapper.xml
0 → 100644
View file @
489a6aae
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.liquidnet.service.kylin.mapper.ReportPerformanceMapper"
>
<resultMap
id=
"getProvinceDataListResult"
type=
"com.liquidnet.service.kylin.dao.report.PerformanceProvinceDataDto"
>
<result
column=
"performance_id"
property=
"performanceId"
/>
<result
column=
"province"
property=
"province"
/>
<result
column=
"total_number"
property=
"totalNumber"
/>
</resultMap>
<resultMap
id=
"getCityDataListResult"
type=
"com.liquidnet.service.kylin.dao.report.PerformanceCityDataDto"
>
<result
column=
"performance_id"
property=
"performanceId"
/>
<result
column=
"city_name"
property=
"cityName"
/>
<result
column=
"total_number"
property=
"totalNumber"
/>
</resultMap>
<resultMap
id=
"getAgeDataListResult"
type=
"com.liquidnet.service.kylin.dao.report.PerformanceAgeDataDto"
>
<result
column=
"performance_id"
property=
"performanceId"
/>
<result
column=
"age"
property=
"age"
/>
<result
column=
"total_number"
property=
"totalNumber"
/>
</resultMap>
<resultMap
id=
"getSexDataListResult"
type=
"com.liquidnet.service.kylin.dao.report.PerformanceSexDataDto"
>
<result
column=
"sex"
property=
"sex"
/>
<result
column=
"total_number"
property=
"totalNumber"
/>
</resultMap>
<!-- 演出按省统计-->
<select
id=
"getProvinceDataList"
parameterType=
"java.lang.String"
resultMap=
"getProvinceDataListResult"
>
select x.* from (
SELECT kotr.performance_id AS 'performance_id',
ifnull(ca.province, '未知') province,
count(1) total_number
FROM kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
left join sys_dict_id_card_area ca
on substr(kote.enter_id_code, 1, 6)= ca.code
WHERE 1 > 0
and kotr.performance_id = ${performanceId}
and kots.`status` in (1, 3, 6)
and kot.coupon_type = 'no'
group by kotr.performance_id,ca.province
) x order by x.total_number desc
</select>
<!-- 演出按城市统计-->
<select
id=
"getCityDataList"
parameterType=
"java.lang.String"
resultMap=
"getCityDataListResult"
>
select x.* from (
SELECT
kotr.performance_id AS 'performance_id',
ifnull(ca.pre_city,'未知') city_name,
count(1) total_number
FROM
kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
left join sys_dict_id_card_area ca on substr(kote.enter_id_code,1,6) = ca.code
WHERE 1>0 and kotr.performance_id = #{performanceId}
and kots.`status` in(1,3,6)
and kot.coupon_type ='no'
group by kotr.performance_id,ca.pre_city
) x order by x.total_number desc
</select>
<!-- 演出按年龄统计-->
<select
id=
"getAgeDataList"
parameterType=
"java.lang.String"
resultMap=
"getAgeDataListResult"
>
select * from (
SELECT kotr.performance_id AS 'performance_id',
substr(curdate(), 1, 4) - substr(kote.enter_id_code, 7, 4) age,
count(1) total_number
FROM kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
WHERE 1 > 0
and kotr.performance_id = #{performanceId}
and kots.`status` in (1, 3, 6)
and kot.coupon_type = 'no'
and length(kote.enter_id_code)=18
group by kotr.performance_id, substr(curdate(), 1, 4) - substr(kote.enter_id_code, 7, 4)
)x order by x.age
</select>
<!-- 演出按性别统计-->
<select
id=
"getSexDataList"
parameterType=
"java.lang.String"
resultMap=
"getSexDataListResult"
>
select x.sex,count(1) total_number from (
SELECT kotr.performance_id AS 'performance_id',
case when substr(kote.enter_id_code,17,1)%2=0 then '女' else '男' end sex
FROM kylin_order_ticket_relations kotr
inner join kylin_order_tickets AS kot on kotr.order_id = kot.order_tickets_id
inner JOIN kylin_order_ticket_status AS kots ON kots.order_id = kot.order_tickets_id
inner join kylin_order_ticket_entities kote on kot.order_tickets_id = kote.order_id
WHERE 1 > 0
and kotr.performance_id = ${performanceId}
and kots.`status` in (1, 3, 6)
and kot.coupon_type = 'no'
and length(kote.enter_id_code)=18
)x group by x.sex
</select>
</mapper>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment