package com.ruoyi.system.controller; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Objects; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.domain.dto.SupplierDTO; import com.ruoyi.system.mapper.SysOperLogMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.query.SysOperLogQuery; import com.ruoyi.system.service.ISysUserRoleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.system.api.domain.SysOperLog; import com.ruoyi.system.service.ISysOperLogService; /** * 操作日志记录 * * @author ruoyi */ @RestController @RequestMapping("/operlog") @Api(tags = "操作日志记录") public class SysOperlogController extends BaseController { @Resource private TokenService tokenService; @Resource private SysOperLogMapper operLogService; @Autowired private SysUserMapper sysUserMapper; @ApiOperation(value = "操作日志查询") @PostMapping("/list") public R> list(@RequestBody SysOperLogQuery gy) { tokenService.getLoginUser(); Page page = new Page<>(); page.setSize(gy.getPageSize()); page.setCurrent(gy.getPageCurr()); LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); if (gy.getOperName()!=null){ wrapper.like(SysOperLog::getOperName,gy.getOperName()); } if (gy.getPhone()!=null){ wrapper.like(SysOperLog::getPhone,gy.getPhone()); } if (gy.getTitle()!=null){ wrapper.like(SysOperLog::getTitle,gy.getTitle()); } if (gy.getTitle()!=null){ wrapper.like(SysOperLog::getTitle,gy.getTitle()); } if(gy.getBeginTime()!=null){ wrapper.gt(SysOperLog::getOperTime, gy.getBeginTime()); } if(gy.getEndTime()!=null){ wrapper.lt(SysOperLog::getOperTime, gy.getEndTime()); } wrapper.orderByDesc(SysOperLog::getOperTime); Page sysOperLogPage = operLogService.selectPage(page, wrapper); return R.ok(sysOperLogPage); } @Log(title = "操作完成入库", businessType = BusinessType.UPDATE) @ApiOperation(value = "操作完成入库", notes = "操作完成入库") @PostMapping("/savelong") public R savelong() { Long userid = SecurityUtils.getUserId(); SysUser user = sysUserMapper.selectById(userid); SysOperLog sysOperLog=new SysOperLog(); sysOperLog.setOperTime(new Date()); sysOperLog.setTitle("完成入库"); sysOperLog.setOperName(user.getNickName()); sysOperLog.setPhone(user.getPhonenumber()); operLogService.insert(sysOperLog); return R.ok(); } @Log(title = "操作完成出库", businessType = BusinessType.UPDATE) @ApiOperation(value = "操作完成出库", notes = "操作完成出库") @PostMapping("/savelong1") public R savelong1() { Long userid = SecurityUtils.getUserId(); SysUser user = sysUserMapper.selectById(userid); SysOperLog sysOperLog=new SysOperLog(); sysOperLog.setOperTime(new Date()); sysOperLog.setTitle("完成出库"); sysOperLog.setOperName(user.getNickName()); sysOperLog.setPhone(user.getPhonenumber()); operLogService.insert(sysOperLog); return R.ok(); } @Log(title = "操作日志", businessType = BusinessType.EXPORT) @RequiresPermissions("system:operlog:export") @PostMapping("/export") public void export(HttpServletResponse response, SysOperLog operLog) { List list = operLogService.selectOperLogList(operLog); ExcelUtil util = new ExcelUtil(SysOperLog.class); util.exportExcel(response, list, "操作日志"); } @Log(title = "操作日志", businessType = BusinessType.DELETE) @RequiresPermissions("system:operlog:remove") @DeleteMapping("/{operIds}") public AjaxResult remove(@PathVariable Long[] operIds) { return toAjax(operLogService.deleteOperLogByIds(operIds)); } @RequiresPermissions("system:operlog:remove") @Log(title = "操作日志", businessType = BusinessType.CLEAN) @DeleteMapping("/clean") public AjaxResult clean() { operLogService.cleanOperLog(); return success(); } @InnerAuth @PostMapping public AjaxResult add(@RequestBody SysOperLog operLog) { return toAjax(operLogService.insertOperlog(operLog)); } }