package com.muyu.system.controller; import com.muyu.common.core.constant.CacheConstants; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.log.annotation.Log; import com.muyu.common.log.enums.BusinessType; import com.muyu.common.redis.service.RedisService; import com.muyu.common.security.annotation.InnerAuth; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.system.domain.SysLogininfor; import com.muyu.system.service.SysLogininforService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import jakarta.servlet.http.HttpServletResponse; import java.util.List; /** * 系统访问记录 * * @author muyu */ @RestController @RequestMapping("/logininfor") public class SysLogininforController extends BaseController { @Autowired private SysLogininforService logininforService; @Autowired private RedisService redisService; @RequiresPermissions("system:logininfor:list") @GetMapping("/list") public Result> list (SysLogininfor logininfor) { startPage(); List list = logininforService.selectLogininforList(logininfor); return getDataTable(list); } @Log(title = "登录日志", businessType = BusinessType.EXPORT) @RequiresPermissions("system:logininfor:export") @PostMapping("/export") public void export (HttpServletResponse response, SysLogininfor logininfor) { List list = logininforService.selectLogininforList(logininfor); ExcelUtil util = new ExcelUtil(SysLogininfor.class); util.exportExcel(response, list, "登录日志"); } @RequiresPermissions("system:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.DELETE) @DeleteMapping("/{infoIds}") public Result remove (@PathVariable("infoIds") Long[] infoIds) { return toAjax(logininforService.deleteLogininforByIds(infoIds)); } @RequiresPermissions("system:logininfor:remove") @Log(title = "登录日志", businessType = BusinessType.DELETE) @DeleteMapping("/clean") public Result clean () { logininforService.cleanLogininfor(); return success(); } @RequiresPermissions("system:logininfor:unlock") @Log(title = "账户解锁", businessType = BusinessType.OTHER) @GetMapping("/unlock/{userName}") public Result unlock (@PathVariable("userName") String userName) { redisService.deleteObject(CacheConstants.PWD_ERR_CNT_KEY + userName); return success(); } @InnerAuth @PostMapping public Result add (@RequestBody SysLogininfor logininfor) { return toAjax(logininforService.insertLogininfor(logininfor)); } }