Browse Source

登录日志

master
刘力 3 years ago
parent
commit
e1677cbb2c
  1. 12
      logging/src/main/java/com/storeroom/controller/LoginLogController.java
  2. 22
      logging/src/main/java/com/storeroom/service/LoginLogService.java
  3. 29
      logging/src/main/java/com/storeroom/service/impl/LoginLogServiceImpl.java

12
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.annotaion.rest.AnonymousGetMapping;
import com.storeroom.annotation.Log;
import com.storeroom.service.LoginLogService; import com.storeroom.service.LoginLogService;
import com.storeroom.service.dto.LogQueryCriteria;
import com.storeroom.service.dto.LoginLogQueryCriteria; import com.storeroom.service.dto.LoginLogQueryCriteria;
import com.storeroom.utils.ApiResponse; import com.storeroom.utils.ApiResponse;
import io.swagger.annotations.Api; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@RequestMapping("/api/loginlogs/") @RequestMapping("/api/loginlogs/")
@ -28,5 +33,12 @@ public class LoginLogController {
return ApiResponse.success(loginLogService.queryAll(criteria, pageable)); 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);
}
} }

22
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 com.storeroom.service.dto.LoginLogQueryCriteria;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
public interface LoginLogService { public interface LoginLogService {
/** /**
* 保存登录日志 * 保存登录日志
*
* @param log * @param log
*/ */
void save(LoginLog log); void save(LoginLog log);
/** /**
*
* @param criteria / * @param criteria /
* @param pageable / * @param pageable /
* @return / * @return /
*/ */
Object queryAll(LoginLogQueryCriteria criteria, Pageable pageable); Object queryAll(LoginLogQueryCriteria criteria, Pageable pageable);
/**
* 不分页查询
* @param criteria /
* @return /
*/
List<LoginLog> queryAll(LoginLogQueryCriteria criteria);
/**
* 导出日志
*
* @param logs
* @param response
*/
void download(List<LoginLog> logs, HttpServletResponse response) throws Exception;
} }

29
logging/src/main/java/com/storeroom/service/impl/LoginLogServiceImpl.java

@ -1,9 +1,11 @@
package com.storeroom.service.impl; package com.storeroom.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.storeroom.domain.LoginLog; import com.storeroom.domain.LoginLog;
import com.storeroom.repository.LoginLogRepository; import com.storeroom.repository.LoginLogRepository;
import com.storeroom.service.LoginLogService; import com.storeroom.service.LoginLogService;
import com.storeroom.service.dto.LoginLogQueryCriteria; import com.storeroom.service.dto.LoginLogQueryCriteria;
import com.storeroom.utils.FileUtil;
import com.storeroom.utils.PageUtil; import com.storeroom.utils.PageUtil;
import com.storeroom.utils.QueryHelp; import com.storeroom.utils.QueryHelp;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -11,6 +13,12 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; 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 @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@ -29,4 +37,25 @@ public class LoginLogServiceImpl implements LoginLogService {
Page<LoginLog> page = loginLogRepository.findAll(((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)), pageable); Page<LoginLog> page = loginLogRepository.findAll(((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)), pageable);
return PageUtil.toPage(page); return PageUtil.toPage(page);
} }
@Override
public List<LoginLog> queryAll(LoginLogQueryCriteria criteria) {
return loginLogRepository.findAll(((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
}
@Override
public void download(List<LoginLog> logs, HttpServletResponse response) throws Exception {
List<Map<String, Object>> list = new ArrayList<>();
for (LoginLog loginLog : logs) {
Map<String, Object> 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);
}
} }
Loading…
Cancel
Save