package com.zhitan.web.controller.monitor; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhitan.common.annotation.Log; import com.zhitan.common.core.controller.BaseController; import com.zhitan.common.core.domain.AjaxResult; import com.zhitan.common.core.page.TableDataInfo; import com.zhitan.common.enums.BusinessType; import com.zhitan.common.utils.poi.ExcelUtil; import com.zhitan.framework.web.service.SysPasswordService; import com.zhitan.system.domain.SysLoginInfo; import com.zhitan.system.service.ISysLoginInfoService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 系统访问记录 * * @author zhitan */ @RestController @RequestMapping("/monitor/logininfor") public class SysLogininforController extends BaseController { @Resource private ISysLoginInfoService logininforService; @Resource private SysPasswordService passwordService; @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')") @GetMapping("/list") public TableDataInfo list(SysLoginInfo logininfor,Long pageNum, Long pageSize) { Page list = logininforService.selectLogininforPage(logininfor,pageNum,pageSize); return getDataTable(list); } @Log(title = "登录日志", businessType = BusinessType.EXPORT) @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')") @PostMapping("/export") public void export(HttpServletResponse response, SysLoginInfo logininfor) { List list = logininforService.selectLogininforList(logininfor); ExcelUtil util = new ExcelUtil(SysLoginInfo.class); util.exportExcel(response, list, "登录日志"); } @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") @Log(title = "登录日志", businessType = BusinessType.DELETE) @DeleteMapping("/{infoIds}") public AjaxResult remove(@PathVariable Long[] infoIds) { return toAjax(logininforService.deleteLoginInfoByIds(infoIds)); } @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')") @Log(title = "登录日志", businessType = BusinessType.CLEAN) @DeleteMapping("/clean") public AjaxResult clean() { logininforService.cleanLoginInfo(); return success(); } @PreAuthorize("@ss.hasPermi('monitor:logininfor:unlock')") @Log(title = "账户解锁", businessType = BusinessType.OTHER) @GetMapping("/unlock/{userName}") public AjaxResult unlock(@PathVariable("userName") String userName) { passwordService.clearLoginRecordCache(userName); return success(); } }