package com.ruoyi.web.controller.monitor;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import io.swagger.v3.oas.annotations.Hidden;
|
import jakarta.servlet.http.HttpServletResponse;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.web.bind.annotation.*;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.framework.web.service.SysPasswordService;
|
import com.ruoyi.system.domain.SysLogininfor;
|
import com.ruoyi.system.service.ISysLogininforService;
|
|
/**
|
* 系统访问记录
|
*
|
* @author ruoyi
|
*/
|
@RestController
|
@RequestMapping("/monitor/logininfor")
|
@Hidden
|
public class SysLogininforController extends BaseController
|
{
|
@Autowired
|
private ISysLogininforService logininforService;
|
|
@Autowired
|
private SysPasswordService passwordService;
|
|
@PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
|
@GetMapping("/list")
|
public TableDataInfo list(SysLogininfor logininfor,
|
@RequestParam(value = "pageNum", required = false)Integer pageNum,
|
@RequestParam(value = "pageSize", required = false)Integer pageSize)
|
{
|
startPage();
|
List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
|
// return getDataTable(list);
|
return paginate(list,pageNum,pageSize);
|
}
|
|
@Log(title = "登录日志", businessType = BusinessType.EXPORT)
|
@PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, SysLogininfor logininfor)
|
{
|
List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
|
ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.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.deleteLogininforByIds(infoIds));
|
}
|
|
@PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
|
@Log(title = "登录日志", businessType = BusinessType.CLEAN)
|
@DeleteMapping("/clean")
|
public AjaxResult clean()
|
{
|
logininforService.cleanLogininfor();
|
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();
|
}
|
|
//对列表进行分页
|
private TableDataInfo paginate(List list, int pageNum, int pageSize) {
|
if (list == null || list.isEmpty()) {
|
return new TableDataInfo(new ArrayList<>(), 0);
|
}
|
int total = list.size();
|
int formIndex = (pageNum - 1) * pageSize;
|
int toIndex = Math.min(formIndex + pageSize, total);
|
if (formIndex >= total) {
|
return new TableDataInfo(new ArrayList<>(), total);
|
}
|
List subList = list.subList(formIndex, toIndex);
|
return new TableDataInfo(subList, total);
|
}
|
}
|