package cc.mrbird.febs.server.system.controller; import cc.mrbird.febs.common.core.entity.FebsResponse; import cc.mrbird.febs.common.core.entity.QueryRequest; import cc.mrbird.febs.common.core.entity.constant.StringConstant; import cc.mrbird.febs.common.core.entity.system.LoginLog; import cc.mrbird.febs.common.core.utils.FebsUtil; import cc.mrbird.febs.server.system.annotation.ControllerEndpoint; import cc.mrbird.febs.server.system.service.ILoginLogService; import com.wuwenze.poi.ExcelKit; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotBlank; import java.util.List; import java.util.Map; /** * @author MrBird */ @Slf4j @RestController @RequiredArgsConstructor @RequestMapping("loginLog") public class LoginLogController { private final ILoginLogService loginLogService; @GetMapping public FebsResponse loginLogList(LoginLog loginLog, QueryRequest request) { Map dataTable = FebsUtil.getDataTable(this.loginLogService.findLoginLogs(loginLog, request)); return new FebsResponse().data(dataTable); } @GetMapping("currentUser") public FebsResponse getUserLastSevenLoginLogs() { String currentUsername = FebsUtil.getCurrentUsername(); List userLastSevenLoginLogs = this.loginLogService.findUserLastSevenLoginLogs(currentUsername); return new FebsResponse().data(userLastSevenLoginLogs); } @DeleteMapping("{ids}") @PreAuthorize("hasAuthority('loginlog:delete')") @ControllerEndpoint(operation = "删除登录日志", exceptionMessage = "删除登录日志失败") public void deleteLogs(@NotBlank(message = "{required}") @PathVariable String ids) { String[] loginLogIds = ids.split(StringConstant.COMMA); this.loginLogService.deleteLoginLogs(loginLogIds); } @PostMapping("excel") @PreAuthorize("hasAuthority('loginlog:export')") @ControllerEndpoint(operation = "导出登录日志数据", exceptionMessage = "导出Excel失败") public void export(QueryRequest request, LoginLog loginLog, HttpServletResponse response) { List loginLogs = this.loginLogService.findLoginLogs(loginLog, request).getRecords(); ExcelKit.$Export(LoginLog.class, response).downXlsx(loginLogs, false); } }