LoginAuditController.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.cyksj.web.controller.manage;
  2. import cn.dev33.satoken.annotation.SaCheckLogin;
  3. import cn.dev33.satoken.annotation.SaCheckRole;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.cyksj.common.exception.BusinessRuntimeException;
  7. import com.cyksj.dto.Result;
  8. import com.cyksj.enums.GatewayResponse;
  9. import com.cyksj.mapper.LoginAuditMapper;
  10. import com.cyksj.model.entity.LoginAudit;
  11. import lombok.RequiredArgsConstructor;
  12. import org.springframework.format.annotation.DateTimeFormat;
  13. import org.springframework.web.bind.annotation.*;
  14. import java.util.Date;
  15. @RestController
  16. @RequestMapping("/manage/login/audit")
  17. @SaCheckLogin
  18. @SaCheckRole("root")
  19. @RequiredArgsConstructor
  20. public class LoginAuditController {
  21. private final LoginAuditMapper mapper;
  22. @GetMapping("/get")
  23. public Result<Page<LoginAudit>> list(@RequestParam(defaultValue = "1") int start,
  24. @RequestParam(defaultValue = "20") int limit, String loginType, String loginId,
  25. String account, String result, String loginMethod, String ip,
  26. @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date from,
  27. @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date to) {
  28. if (start < 1 || limit < 1 || limit > 100 || (from != null && to != null && from.after(to))) {
  29. throw BusinessRuntimeException.getInstance("查询参数错误");
  30. }
  31. LambdaQueryWrapper<LoginAudit> query = new LambdaQueryWrapper<LoginAudit>()
  32. .eq(loginType != null, LoginAudit::getLoginType, loginType)
  33. .eq(loginId != null, LoginAudit::getLoginId, loginId)
  34. .eq(account != null, LoginAudit::getAccount, account)
  35. .eq(result != null, LoginAudit::getResult, result)
  36. .eq(loginMethod != null, LoginAudit::getLoginMethod, loginMethod)
  37. .ge(from != null, LoginAudit::getCreatedTime, from)
  38. .le(to != null, LoginAudit::getCreatedTime, to)
  39. .orderByDesc(LoginAudit::getId);
  40. if (ip != null) query.and(q -> q.eq(LoginAudit::getRemoteIp, ip).or().eq(LoginAudit::getRealIp, ip));
  41. return GatewayResponse.SUCCESS.newBuilder().toResult(mapper.selectPage(new Page<>(start, limit), query));
  42. }
  43. }