星级厨房优化-后台-平台数据统计导出

This commit is contained in:
2022-12-02 16:19:28 +08:00
parent 302c214264
commit f9cd7ceaff
7 changed files with 90 additions and 52 deletions

View File

@@ -11,6 +11,7 @@
package com.accompany.admin.mapper;
import com.accompany.admin.vo.luckysea.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -26,11 +27,12 @@ public interface LuckySeaActAdminMapper {
/**
* 分页获取游戏平台数据统计
* @param page
* @param startTime
* @param endTime
* @return
*/
List<LuckySeaActPlatformStatVo> listPlatformStat(@Param("startTime") String startTime, @Param("endTime")String endTime);
Page<LuckySeaActPlatformStatVo> pagePlatformStat(Page<LuckySeaActPlatformStatVo> page, @Param("startTime") String startTime, @Param("endTime")String endTime);
/**
* 分页获取用户的游戏记录

View File

@@ -13,7 +13,9 @@ package com.accompany.admin.service.activity;
import com.accompany.admin.params.LuckySeaItemSaveReqParams;
import com.accompany.admin.vo.luckysea.LuckySeaActPlatformStatVo;
import com.accompany.business.model.activity.LuckySeaItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.Map;
@@ -55,7 +57,7 @@ public interface LuckySeaActAdminService {
* @param pageSize
* @return
*/
Map<String, Object> listPlatformStat(String startTime, String endTime, Integer page, Integer pageSize);
Page<LuckySeaActPlatformStatVo> pagePlatformStat(String startTime, String endTime, Integer page, Integer pageSize);
/**
* 分页获取用户游戏记录列表

View File

@@ -29,6 +29,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Maps;
@@ -186,16 +187,11 @@ public class LuckySeaActAdminServiceImpl implements LuckySeaActAdminService {
}
@Override
public Map<String, Object> listPlatformStat(String startTime, String endTime, Integer page, Integer pageSize) {
Map data = Maps.newHashMap();
public Page<LuckySeaActPlatformStatVo> pagePlatformStat(String startTime, String endTime, Integer page, Integer pageSize) {
page = page != null ? page : Constant.DEFAULT_PAGE;
pageSize = pageSize != null ? pageSize : Constant.DEFAULT_PAGE_SIZE;
PageHelper.startPage(page, pageSize);
List<LuckySeaActPlatformStatVo> statList = luckySeaActAdminMapper.listPlatformStat(startTime, endTime);
PageInfo<LuckySeaActPlatformStatVo> pageInfo = new PageInfo<>(statList);
data.put("rows", pageInfo.getList());
data.put("total", pageInfo.getTotal());
return data;
Page<LuckySeaActPlatformStatVo> pageInfo = new Page<>(page, pageSize);
return luckySeaActAdminMapper.pagePlatformStat(pageInfo, startTime, endTime);
}
@Override

View File

@@ -10,6 +10,7 @@
*/
package com.accompany.admin.vo.luckysea;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.util.Date;
@@ -24,11 +25,18 @@ import java.util.Date;
@Data
public class LuckySeaActPlatformStatVo {
private Date queryDate;
@ExcelProperty("日期")
private String queryDate;
@ExcelProperty("总人数")
private Integer memberNum;
@ExcelProperty("总人次")
private Integer totalPlayTimes;
@ExcelProperty("总轮数")
private Integer roundNum;
@ExcelProperty("总投入")
private Long totalPiece;
@ExcelProperty("总平台价值")
private Long totalPlatformValue;
@ExcelProperty("门票")
private Double totalTicket;
}

View File

@@ -12,7 +12,7 @@
<result column="totalTicket" property="totalTicket" jdbcType="DOUBLE"/>
</resultMap>
<select id="listPlatformStat" resultMap="luckySeaActPlatformStatVo">
<select id="pagePlatformStat" resultMap="luckySeaActPlatformStatVo">
SELECT t1.* , t2.* FROM
(SELECT DATE(a.start_time)queryDate,
count(DISTINCT a.round_id, a.round_id)roundNum,

View File

@@ -14,8 +14,10 @@ import com.accompany.admin.controller.BaseController;
import com.accompany.admin.params.LuckySeaItemSaveReqParams;
import com.accompany.admin.service.activity.LuckySeaActAdminService;
import com.accompany.admin.util.ExcelUtils;
import com.accompany.admin.vo.ChargeRecordPersonAdminVo;
import com.accompany.admin.vo.luckysea.LuckySeaActAdminRoundDetailVo;
import com.accompany.admin.vo.luckysea.LuckySeaActAdminUserDrawRecord;
import com.accompany.admin.vo.luckysea.LuckySeaActPlatformStatVo;
import com.accompany.business.model.activity.LuckySeaActInfo;
import com.accompany.business.model.activity.LuckySeaItem;
import com.accompany.business.service.activities.ActivitiesLuckySeaService;
@@ -24,13 +26,17 @@ import com.accompany.business.service.activities.impl.ActivitiesLuckySeaServiceI
import com.accompany.business.service.api.QinniuService;
import com.accompany.common.constant.Constant;
import com.accompany.common.redis.RedisKey;
import com.accompany.common.result.PageResult;
import com.accompany.common.utils.BlankUtil;
import com.accompany.common.utils.DateTimeUtil;
import com.accompany.core.enumeration.BusinessStatusCodeEnum;
import com.accompany.core.exception.ServiceException;
import com.accompany.core.service.common.JedisService;
import com.accompany.core.vo.BaseResponseVO;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -38,7 +44,10 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -105,10 +114,21 @@ public class LuckySeaActAdminController extends BaseController {
writeJson(jsonObject.toJSONString());
}
@RequestMapping(value = "/listPlatformStat", method = RequestMethod.GET)
public void listPlatformStat(String startTime, String endTime, Integer page, Integer pageSize) {
Map<String, Object> data = luckySeaActAdminService.listPlatformStat(startTime, endTime, page, pageSize);
writeJson(JSONObject.toJSONString(data));
@GetMapping("/listPlatformStat")
public PageResult<LuckySeaActPlatformStatVo> listPlatformStat(String startTime, String endTime, Integer page, Integer pageSize) {
Page<LuckySeaActPlatformStatVo> pageInfo = luckySeaActAdminService.pagePlatformStat(startTime, endTime, page, pageSize);
return new PageResult<>(pageInfo);
}
@GetMapping( "/exportPlatformStat")
public void exportPlatformStat(HttpServletResponse response, String startTime, String endTime) throws IOException {
Page<LuckySeaActPlatformStatVo> pageInfo = luckySeaActAdminService.pagePlatformStat(startTime, endTime, -1, -1);
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码
String excelName = URLEncoder.encode("平台数据统计", "UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
EasyExcel.write(response.getOutputStream(), LuckySeaActPlatformStatVo.class).sheet("平台数据统计").doWrite(pageInfo.getRecords());
}
@RequestMapping(value = "/listUserDrawRecordList", method = RequestMethod.GET)

View File

@@ -44,6 +44,9 @@
<button id="btnSearch" class="btn btn-default">
<i class="glyphicon glyphicon-search"></i>查询
</button>
<button id="btnExport" class="btn btn-default">
<i class="glyphicon glyphicon-export"></i>导出
</button>
</div>
</div>
</div>
@@ -59,6 +62,49 @@
<script>
$(function () {
$('.js-quick-search').on('click', function () {
$('.js-quick-search').removeClass('active')
$(this).addClass('active');
setSearchTimeUseQuickWay($(this));
TableHelper.doRefresh('#table');
});
function setSearchTimeUseQuickWay(quickDom) {
const days = quickDom.attr("data-days");
const today = new Date(new Date().setHours(0,0,0,0));
const todayStr = formatTime(today);
const startTime = formatTime(new Date(today.getTime() - days * 24 * 60 * 60 * 1000));
$('#startTime').val(startTime);
$('#endTime').val(todayStr);
}
const quickDom = $('.js-quick-search-7');
quickDom.addClass('active');
setSearchTimeUseQuickWay(quickDom);
// 查询刷新
$('#btnSearch').on('click', function () {
TableHelper.doRefresh('#table');
});
var chargeStart = $('#startTime').datepicker({
format: 'yyyy-mm-dd 00:00:00',
autoclose: true
});
var chargeEnd = $('#endTime').datepicker({
format: 'yyyy-mm-dd 00:00:00',
autoclose: true
});
$('#btnExport').on('click', function () {
const startTime = $('#startTime').val();
const endTime = $('#endTime').val();
window.location.href = `/admin/luckySea/exportPlatformStat?startTime=${startTime}&endTime=${endTime}`
});
$('#table').bootstrapTable('destroy');
$('#table').bootstrapTable({
columns: [
@@ -108,42 +154,6 @@
}
});
$('.js-quick-search').on('click', function () {
$('.js-quick-search').removeClass('active')
$(this).addClass('active');
setSearchTimeUseQuickWay($(this));
TableHelper.doRefresh('#table');
});
function setSearchTimeUseQuickWay(quickDom) {
const days = quickDom.attr("data-days");
const today = new Date(new Date().setHours(0,0,0,0));
const todayStr = formatTime(today);
const startTime = formatTime(new Date(today.getTime() - days * 24 * 60 * 60 * 1000));
$('#startTime').val(startTime);
$('#endTime').val(todayStr);
}
const quickDom = $('.js-quick-search-7');
quickDom.addClass('active');
setSearchTimeUseQuickWay(quickDom);
// 查询刷新
$('#btnSearch').on('click', function () {
TableHelper.doRefresh('#table');
});
var chargeStart = $('#startTime').datepicker({
format: 'yyyy-mm-dd 00:00:00',
autoclose: true
});
var chargeEnd = $('#endTime').datepicker({
format: 'yyyy-mm-dd 00:00:00',
autoclose: true
});
});
</script>