提交 3f7622e8 作者: 洪东保

用户登录统计及导出-debug

父级 80e40c16
...@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cmeeting.annotation.OperLog; import com.cmeeting.annotation.OperLog;
import com.cmeeting.pojo.SysUserSyncCategory; import com.cmeeting.pojo.SysUserSyncCategory;
import com.cmeeting.service.IUserAccessRecordService; import com.cmeeting.service.IUserAccessRecordService;
...@@ -14,17 +14,19 @@ import com.cmeeting.util.R; ...@@ -14,17 +14,19 @@ import com.cmeeting.util.R;
import com.cmeeting.util.page.PageUtil; import com.cmeeting.util.page.PageUtil;
import com.cmeeting.vo.StatisticVO; import com.cmeeting.vo.StatisticVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.net.URLEncoder;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -80,8 +82,8 @@ public class StatisticsController { ...@@ -80,8 +82,8 @@ public class StatisticsController {
return R.ok(); return R.ok();
} }
@PostMapping("/useInfoByCompany") @PostMapping("/recordByCompany")
public R useInfoByCompany(@Validated @RequestBody StatisticVO vo) throws ParseException { public R recordByCompany(@Validated @RequestBody StatisticVO vo) throws ParseException {
List<SysUserSyncCategory> tree = sysUserSyncService.getTreeList(); List<SysUserSyncCategory> tree = sysUserSyncService.getTreeList();
String search = vo.getSearch(); String search = vo.getSearch();
if (StrUtil.isNotBlank(search)) { if (StrUtil.isNotBlank(search)) {
...@@ -96,8 +98,8 @@ public class StatisticsController { ...@@ -96,8 +98,8 @@ public class StatisticsController {
return PageUtil.getDataTable(list); return PageUtil.getDataTable(list);
} }
@PostMapping("/exportUseInfoByCompany") @PostMapping("/exportRecordByCompany")
public void exportUseInfoByCompany(@Validated @RequestBody StatisticVO vo, HttpServletResponse response) throws ParseException, IOException { public void exportRecordByCompany(@Validated @RequestBody StatisticVO vo, HttpServletResponse response) throws ParseException, IOException {
String search = vo.getSearch(); String search = vo.getSearch();
List<SysUserSyncCategory> tree = sysUserSyncService.getTreeList(); List<SysUserSyncCategory> tree = sysUserSyncService.getTreeList();
if (StrUtil.isNotBlank(search)) { if (StrUtil.isNotBlank(search)) {
...@@ -107,7 +109,10 @@ public class StatisticsController { ...@@ -107,7 +109,10 @@ public class StatisticsController {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String title = "会议纪要推送次数统计.docx"; String title = "会议使用次数统计(按公司)";
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
String fileName = String.format("%s.xlsx", title);
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf8"));
meetingInfoService.statisticsEmail(title, simpleDateFormat1.parse(simpleDateFormat.format(vo.getStartTime()) + " 00:00:00"), meetingInfoService.statisticsEmail(title, simpleDateFormat1.parse(simpleDateFormat.format(vo.getStartTime()) + " 00:00:00"),
simpleDateFormat1.parse(simpleDateFormat.format(vo.getEndTime()) + " 23:59:59"), response.getOutputStream(), collect); simpleDateFormat1.parse(simpleDateFormat.format(vo.getEndTime()) + " 23:59:59"), response.getOutputStream(), collect);
} }
...@@ -118,11 +123,11 @@ public class StatisticsController { ...@@ -118,11 +123,11 @@ public class StatisticsController {
} }
@PostMapping("/exportUserAccessRecord") @PostMapping("/exportUserAccessRecord")
public void exportUserAccessRecord(@Validated @RequestBody StatisticVO vo, HttpServletResponse response){ public void exportUserAccessRecord(@Validated @RequestBody StatisticVO vo, HttpServletResponse response){
List<Map<String, String>> statistics = iUserAccessRecordService.statistics(vo.getSearch(), vo.getStartTime(), vo.getEndTime(), vo.getCurrent(), vo.getSize()); Page<Map<String, String>> statistics = iUserAccessRecordService.statistics(vo.getSearch(), vo.getStartTime(), vo.getEndTime(), vo.getCurrent(), vo.getSize());
List<String> dateList = DateUtil.rangeToList(vo.getStartTime(), vo.getEndTime(), DateField.DAY_OF_YEAR).stream() List<String> dateList = DateUtil.rangeToList(vo.getStartTime(), vo.getEndTime(), DateField.DAY_OF_YEAR).stream()
.map(date -> DateUtil.format(date, "yyyy-MM-dd")) .map(date -> DateUtil.format(date, "yyyy-MM-dd"))
.collect(Collectors.toList()); .collect(Collectors.toList());
iUserAccessRecordService.exportUserAccessRecord(statistics, dateList, response); iUserAccessRecordService.exportUserAccessRecord(statistics.getRecords(), dateList, response);
} }
@PostMapping("/userAccessRecordByCompany") @PostMapping("/userAccessRecordByCompany")
public R userAccessRecordByCompany(@Validated @RequestBody StatisticVO vo){ public R userAccessRecordByCompany(@Validated @RequestBody StatisticVO vo){
......
package com.cmeeting.service; package com.cmeeting.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.cmeeting.pojo.UserAccessRecord; import com.cmeeting.pojo.UserAccessRecord;
...@@ -10,7 +11,7 @@ import java.util.List; ...@@ -10,7 +11,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
public interface IUserAccessRecordService extends IService<UserAccessRecord> { public interface IUserAccessRecordService extends IService<UserAccessRecord> {
List<Map<String, String>> statistics(String search, Date startTime, Date endTime, Integer current, Integer size); Page<Map<String, String>> statistics(String search, Date startTime, Date endTime, Integer current, Integer size);
List<Map<String, String>> statisticsByCompany(Date startTime, Date endTime, List<String> deptMap); List<Map<String, String>> statisticsByCompany(Date startTime, Date endTime, List<String> deptMap);
......
...@@ -46,7 +46,7 @@ public class UserAccessRecordServiceImpl extends ServiceImpl<UserAccessRecordMap ...@@ -46,7 +46,7 @@ public class UserAccessRecordServiceImpl extends ServiceImpl<UserAccessRecordMap
private ISysUserSyncCategoryService iSysUserSyncCategoryService; private ISysUserSyncCategoryService iSysUserSyncCategoryService;
@Override @Override
public List<Map<String, String>> statistics(String search, Date startTime, Date endTime, Integer current, Integer size) { public Page<Map<String, String>> statistics(String search, Date startTime, Date endTime, Integer current, Integer size) {
List<String> dateList = DateUtil.rangeToList(startTime, endTime, DateField.DAY_OF_YEAR).stream() List<String> dateList = DateUtil.rangeToList(startTime, endTime, DateField.DAY_OF_YEAR).stream()
.map(date -> DateUtil.format(date, "yyyy-MM-dd")) .map(date -> DateUtil.format(date, "yyyy-MM-dd"))
.collect(Collectors.toList()); .collect(Collectors.toList());
...@@ -79,7 +79,7 @@ public class UserAccessRecordServiceImpl extends ServiceImpl<UserAccessRecordMap ...@@ -79,7 +79,7 @@ public class UserAccessRecordServiceImpl extends ServiceImpl<UserAccessRecordMap
} }
if (records.isEmpty()) { if (records.isEmpty()) {
return new ArrayList<>(); return page;
} }
// 初始化一行用来纵向加和 // 初始化一行用来纵向加和
...@@ -98,8 +98,8 @@ public class UserAccessRecordServiceImpl extends ServiceImpl<UserAccessRecordMap ...@@ -98,8 +98,8 @@ public class UserAccessRecordServiceImpl extends ServiceImpl<UserAccessRecordMap
} }
lastRowMap.put("userId", "总计"); lastRowMap.put("userId", "总计");
records.add(lastRowMap); records.add(lastRowMap);
page.setRecords(records);
return records; return page;
} }
@Override @Override
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论