diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/SeekElfinAdminMapper.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/SeekElfinAdminMapper.java index 44577c0b5..cd305ac1a 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/SeekElfinAdminMapper.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/mapper/SeekElfinAdminMapper.java @@ -31,4 +31,16 @@ public interface SeekElfinAdminMapper { List listUserDrawRecord(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("erbanNoList") List erbanNoList); + /** + * 分页获取用户的游戏记录 + * + * @param page + * @param startTime + * @param endTime + * @param erbanNoList + * @return + */ + Page pageUserDrawRecord(Page page, @Param("startTime") String startTime, @Param("endTime") String endTime, + @Param("erbanNoList") List erbanNoList); + } diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/seekelfin/SeekElfinAdminService.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/seekelfin/SeekElfinAdminService.java index 267f9cb07..cc46e2ac9 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/seekelfin/SeekElfinAdminService.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/service/seekelfin/SeekElfinAdminService.java @@ -147,24 +147,21 @@ public class SeekElfinAdminService { * @param startTime * @param endTime * @param erbanNos - * @param page - * @param pageSize * @return */ - public Map listUserRecord(String startTime, String endTime, String erbanNos, Integer page, Integer pageSize) { - page = page != null ? page : Constant.DEFAULT_PAGE; - pageSize = pageSize != null ? pageSize : Constant.DEFAULT_PAGE_SIZE; - PageHelper.startPage(page, pageSize); + public List listUserRecord(String startTime, String endTime, String erbanNos) { List erbanNoList = new ArrayList<>(); if (StringUtils.isNotBlank(erbanNos)) { erbanNoList = Arrays.asList(erbanNos.trim().split(",")); } - List list = seekElfinAdminMapper.listUserDrawRecord(startTime, endTime, erbanNoList); - Map map = Maps.newHashMap(); - PageInfo pageInfo = new PageInfo<>(list); - map.put("rows", pageInfo.getList()); - map.put("total", pageInfo.getTotal()); - return map; + return seekElfinAdminMapper.listUserDrawRecord(startTime, endTime, erbanNoList); } + public void pageUserRecord(Page pageInfo, String startTime, String endTime, String erbanNos) { + List erbanNoList = new ArrayList<>(); + if (StringUtils.isNotBlank(erbanNos)) { + erbanNoList = Arrays.asList(erbanNos.trim().split(",")); + } + seekElfinAdminMapper.pageUserDrawRecord(pageInfo, startTime, endTime, erbanNoList); + } } diff --git a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/vo/seekelfin/SeekElfinAdminUserRecordVO.java b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/vo/seekelfin/SeekElfinAdminUserRecordVO.java index 8789149da..34288a0da 100644 --- a/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/vo/seekelfin/SeekElfinAdminUserRecordVO.java +++ b/accompany-admin/accompany-admin-service/src/main/java/com/accompany/admin/vo/seekelfin/SeekElfinAdminUserRecordVO.java @@ -1,6 +1,6 @@ package com.accompany.admin.vo.seekelfin; -import com.accompany.business.model.seekelfin.SeekElfinRecord; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; /** @@ -8,10 +8,19 @@ import lombok.Data; *
功能详细描述: */ @Data -public class SeekElfinAdminUserRecordVO extends SeekElfinRecord { +public class SeekElfinAdminUserRecordVO { + @ExcelProperty("平台ID") private Long erbanNo; - - private String giftName; - - private String prodName; + @ExcelProperty("昵称") + private String nick; + @ExcelProperty("档位ID") + private Integer prodId; + @ExcelProperty("选择个数") + private Integer selectNoNum; + @ExcelProperty("花费钻石数") + private Long costGoldNum; + @ExcelProperty("产出钻石数") + private Long receiveGoldNum; + @ExcelProperty("时间") + private String createTime; } diff --git a/accompany-admin/accompany-admin-service/src/main/resources/mapper/SeekElfinAdminMapper.xml b/accompany-admin/accompany-admin-service/src/main/resources/mapper/SeekElfinAdminMapper.xml index 627095d11..d82539d86 100644 --- a/accompany-admin/accompany-admin-service/src/main/resources/mapper/SeekElfinAdminMapper.xml +++ b/accompany-admin/accompany-admin-service/src/main/resources/mapper/SeekElfinAdminMapper.xml @@ -41,4 +41,23 @@ order by sr.id desc + + \ No newline at end of file diff --git a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/seekelfin/SeekElfinAdminController.java b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/seekelfin/SeekElfinAdminController.java index 2ec6052c1..a5a039da4 100644 --- a/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/seekelfin/SeekElfinAdminController.java +++ b/accompany-admin/accompany-admin-web/src/main/java/com/accompany/admin/controller/seekelfin/SeekElfinAdminController.java @@ -7,6 +7,7 @@ import com.accompany.admin.vo.seekelfin.SeekElfinAdminPlatformStatVo; import com.accompany.admin.vo.seekelfin.SeekElfinAdminUserRecordVO; import com.accompany.admin.vo.seekelfin.SeekElfinItemSaveReqParams; import com.accompany.business.util.seekelfin.SeekElfinUtil; +import com.accompany.business.vo.clan.ClanGoldFlowDetailVO; import com.accompany.common.redis.RedisKey; import com.accompany.common.result.PageResult; import com.accompany.common.utils.DateTimeUtil; @@ -76,16 +77,12 @@ public class SeekElfinAdminController extends BaseController { EasyExcel.write(response.getOutputStream(), SeekElfinAdminPlatformStatVo.class).sheet("小精灵平台数据统计").doWrite(pageInfo.getRecords()); } - @RequestMapping(value = "/listUserRecord", method = RequestMethod.GET) - public void listUserRecord(String startTime, String endTime, String erbanNos, + @RequestMapping(value = "/pageUserRecord", method = RequestMethod.GET) + public PageResult listUserRecord(String startTime, String endTime, String erbanNos, Integer page, Integer pageSize) { - try{ - Map map = seekElfinAdminService.listUserRecord(startTime, endTime, erbanNos, page, pageSize); - writeJson(JSONObject.toJSONString(map)); - }catch(Exception e){ - logger.error(e.getMessage()); - writeJson(false, e.getMessage()); - } + Page pageInfo = new Page<>(page, pageSize); + seekElfinAdminService.pageUserRecord(pageInfo, startTime, endTime, erbanNos); + return new PageResult<>(pageInfo); } @RequestMapping(value = "/getStock", method = RequestMethod.GET) @@ -104,49 +101,14 @@ public class SeekElfinAdminController extends BaseController { } @RequestMapping(value = "/exportUserDrawRecordList", method = RequestMethod.GET) - public void exportUserDrawRecordList(HttpServletRequest request, HttpServletResponse response, String startTime, String endTime, String erbanNos) throws Exception { - Map map = seekElfinAdminService.listUserRecord(startTime, endTime, erbanNos, 1, Integer.MAX_VALUE); - List recordList = (List) map.get("rows"); - try { - List headerList = new ArrayList<>(); - headerList.add("id"); - headerList.add("uid"); - headerList.add("平台号"); - headerList.add("昵称"); - headerList.add("档位"); - headerList.add("购买个数"); - headerList.add("花费总钻石数"); - headerList.add("产出平台价值"); - headerList.add("时间"); - String fileName = "用户寻找小精灵记录.xls"; - List excelRows = buildExcelData(recordList); - Workbook workbook = ExcelUtils.createExcelSheet(headerList, excelRows); - ExcelUtils.setExcelResponseHeader(request, response, fileName); - java.io.OutputStream out = response.getOutputStream(); - workbook.write(out); - out.flush(); - } catch (Exception e) { - log.error("Failed to exportUserDrawRecordList", e); - writeJson(false, "导出失败"); - } - } - - public List buildExcelData(List vos) { - List excelRows = new ArrayList<>(vos.size()); - for (SeekElfinAdminUserRecordVO vo : vos) { - List excelData = new ArrayList<>(); - excelData.add(vo.getId()); - excelData.add(vo.getUid()); - excelData.add(vo.getErbanNo()); - excelData.add(vo.getNick()); - excelData.add(vo.getProdId()); - excelData.add(vo.getSelectNoNum()); - excelData.add(vo.getCostGoldNum()); - excelData.add(vo.getReceiveGoldNum()); - excelData.add(DateTimeUtil.convertDate(vo.getCreateTime(), DateTimeUtil.DEFAULT_DATETIME_PATTERN)); - excelRows.add(excelData); - } - return excelRows; + public void exportUserDrawRecordList(HttpServletResponse response, String startTime, String endTime, String erbanNos) throws Exception { + 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()); + List recordList = seekElfinAdminService.listUserRecord(startTime, endTime, erbanNos); + EasyExcel.write(response.getOutputStream(), SeekElfinAdminUserRecordVO.class).sheet("小精灵用户记录").doWrite(recordList); } } diff --git a/accompany-admin/accompany-admin-web/src/main/resources/static/html/seekelfin/seek_elfin_user_record_admin.html b/accompany-admin/accompany-admin-web/src/main/resources/static/html/seekelfin/seek_elfin_user_record_admin.html index eb5cd2cb7..26a5aa8f1 100644 --- a/accompany-admin/accompany-admin-web/src/main/resources/static/html/seekelfin/seek_elfin_user_record_admin.html +++ b/accompany-admin/accompany-admin-web/src/main/resources/static/html/seekelfin/seek_elfin_user_record_admin.html @@ -73,24 +73,13 @@ $('#table').bootstrapTable('destroy'); $('#table').bootstrapTable({ columns: [ - {field: 'id', title: 'id', align: 'center', width: '5%'}, - {field: 'uid', title: 'uid', align: 'center', width: '5%'}, {field: 'erbanNo', title: '平台号', align: 'center', width: '5%'}, {field: 'nick', title: '昵称', align: 'center', width: '5%'}, {field: 'prodId', title: '档位', align: 'center', width: '5%'}, {field: 'selectNoNum', title: '购买个数', align: 'center', width: '5%'}, {field: 'costGoldNum', title: '花费总钻石数', align: 'center', width: '5%'}, {field: 'receiveGoldNum', title: '产出平台价值', align: 'center', width: '5%'}, - {field: 'createTime', title: '时间', align: 'center', width: '5%', - formatter: function (val, row, index) { - if (val) { - var date = new Date(val); - return date.format('yyyy-MM-dd hh:mm:ss'); - } else { - return '-'; - } - } - } + {field: 'createTime', title: '时间', align: 'center', width: '5%'} ], undefinedText: 0, cache: false, @@ -113,7 +102,7 @@ return param; }, toolbar: '#toolbar', - url: '/admin/seekElfin/listUserRecord.action', + url: '/admin/seekElfin/pageUserRecord.action', onLoadSuccess: function () { //加载成功时执行 console.log("load success"); }, diff --git a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/model/seekelfin/SeekElfinRecord.java b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/model/seekelfin/SeekElfinRecord.java index 445ec9d47..9e3d36f7e 100644 --- a/accompany-business/accompany-business-service/src/main/java/com/accompany/business/model/seekelfin/SeekElfinRecord.java +++ b/accompany-business/accompany-business-service/src/main/java/com/accompany/business/model/seekelfin/SeekElfinRecord.java @@ -1,5 +1,7 @@ package com.accompany.business.model.seekelfin; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -42,6 +44,4 @@ public class SeekElfinRecord { @TableField(value = "update_time") private Date updateTime; - @TableField(exist = false) - private String nick; } diff --git a/pom.xml b/pom.xml index 0af0c2854..5b5c3e95d 100644 --- a/pom.xml +++ b/pom.xml @@ -111,7 +111,7 @@ 1.0.2 3.16.8 true - 3.1.1 + 3.1.5 8.12.43