记得上下班打卡 | git大法好,push需谨慎

Commit 489a6aae authored by anjiabin's avatar anjiabin

提交演出数据统计admin模块

parent 1cb182fe
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);
}
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";
// }
}
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);
}
}
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();
}
}
}
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();
}
}
}
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();
}
}
}
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();
}
}
}
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);
}
<?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>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment