From e1677cbb2ca01d54cfe32f43a39996b68c286df7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8A=9B?= Date: Thu, 18 Aug 2022 10:47:27 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LoginLogController.java | 12 ++++++++ .../storeroom/service/LoginLogService.java | 22 +++++++++++++- .../service/impl/LoginLogServiceImpl.java | 29 +++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/logging/src/main/java/com/storeroom/controller/LoginLogController.java b/logging/src/main/java/com/storeroom/controller/LoginLogController.java index 2f3db2f..abf0ef9 100644 --- a/logging/src/main/java/com/storeroom/controller/LoginLogController.java +++ b/logging/src/main/java/com/storeroom/controller/LoginLogController.java @@ -2,7 +2,9 @@ package com.storeroom.controller; import com.storeroom.annotaion.rest.AnonymousGetMapping; +import com.storeroom.annotation.Log; import com.storeroom.service.LoginLogService; +import com.storeroom.service.dto.LogQueryCriteria; import com.storeroom.service.dto.LoginLogQueryCriteria; import com.storeroom.utils.ApiResponse; import io.swagger.annotations.Api; @@ -12,6 +14,9 @@ import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + @RestController @RequiredArgsConstructor @RequestMapping("/api/loginlogs/") @@ -28,5 +33,12 @@ public class LoginLogController { return ApiResponse.success(loginLogService.queryAll(criteria, pageable)); } + @Log("导出数据") + @ApiOperation("导出数据") + @AnonymousGetMapping(value = "download") + public void exportLog(HttpServletResponse response, LoginLogQueryCriteria criteria) throws Exception { + loginLogService.download(loginLogService.queryAll(criteria),response); + } + } diff --git a/logging/src/main/java/com/storeroom/service/LoginLogService.java b/logging/src/main/java/com/storeroom/service/LoginLogService.java index b0465da..f93c5a7 100644 --- a/logging/src/main/java/com/storeroom/service/LoginLogService.java +++ b/logging/src/main/java/com/storeroom/service/LoginLogService.java @@ -4,20 +4,40 @@ import com.storeroom.domain.LoginLog; import com.storeroom.service.dto.LoginLogQueryCriteria; import org.springframework.data.domain.Pageable; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + public interface LoginLogService { /** * 保存登录日志 + * * @param log */ void save(LoginLog log); /** - * * @param criteria / * @param pageable / * @return / */ Object queryAll(LoginLogQueryCriteria criteria, Pageable pageable); + + + /** + * 不分页查询 + * @param criteria / + * @return / + */ + List queryAll(LoginLogQueryCriteria criteria); + + + /** + * 导出日志 + * + * @param logs + * @param response + */ + void download(List logs, HttpServletResponse response) throws Exception; } diff --git a/logging/src/main/java/com/storeroom/service/impl/LoginLogServiceImpl.java b/logging/src/main/java/com/storeroom/service/impl/LoginLogServiceImpl.java index 3996425..144f309 100644 --- a/logging/src/main/java/com/storeroom/service/impl/LoginLogServiceImpl.java +++ b/logging/src/main/java/com/storeroom/service/impl/LoginLogServiceImpl.java @@ -1,9 +1,11 @@ package com.storeroom.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.storeroom.domain.LoginLog; import com.storeroom.repository.LoginLogRepository; import com.storeroom.service.LoginLogService; import com.storeroom.service.dto.LoginLogQueryCriteria; +import com.storeroom.utils.FileUtil; import com.storeroom.utils.PageUtil; import com.storeroom.utils.QueryHelp; import lombok.RequiredArgsConstructor; @@ -11,6 +13,12 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + @Service @RequiredArgsConstructor @@ -29,4 +37,25 @@ public class LoginLogServiceImpl implements LoginLogService { Page page = loginLogRepository.findAll(((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)), pageable); return PageUtil.toPage(page); } + + @Override + public List queryAll(LoginLogQueryCriteria criteria) { + return loginLogRepository.findAll(((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder))); + } + + @Override + public void download(List logs, HttpServletResponse response) throws Exception { + List> list = new ArrayList<>(); + for (LoginLog loginLog : logs) { + Map map = new LinkedHashMap<>(); + map.put("账号", loginLog.getAccount()); + map.put("用户名", loginLog.getUsername()); + map.put("IP", loginLog.getRequestIp()); + map.put("用户角色", loginLog.getRole()); + map.put("所属部门", loginLog.getDet()); + map.put("操作时间", loginLog.getCreateTime()); + list.add(map); + } + FileUtil.downloadExcel(list, response); + } }