package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.whyc.constant.OperationLogEnum; import com.whyc.dto.Response; import com.whyc.mapper.UserLogMapper; import com.whyc.pojo.db_user.UserLog; import com.whyc.util.HttpUtil; import com.whyc.util.UserUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.List; @Service public class UserLogService { @Autowired(required = false) private UserLogMapper mapper; //新增日志 public void add(Integer categoryId, Integer type, String message, String messageDetail) { //HttpServletRequest request = ActionUtil.getRequest(); HttpServletRequest request = HttpUtil.getRequest(); UserLog userLog = new UserLog(); userLog.setCategory(categoryId); userLog.setType(type); userLog.setMessage(message); userLog.setMessageDetail(messageDetail); userLog.setUserId(UserUtil.getUser().getId()); userLog.setUserName(UserUtil.getUser().getName()); if(request == null){ userLog.setTerminalIp("127.0.0.1"); }else { userLog.setTerminalIp(request.getRemoteAddr()); } userLog.setCreateTime(new Date()); mapper.insert(userLog); } //分页-查询 public Response getPage(UserLog param,Integer pageNum,Integer pageSize) { PageHelper.startPage(pageNum,pageSize); QueryWrapper query = Wrappers.query(); if(param.getUserName() != null){ query.eq("user_name",param.getUserName()); } if(param.getCategory() != null){ query.eq("category",param.getCategory()); } if(param.getType() != null){ query.eq("type",param.getType()); } if(param.getStartTime() != null) { query.ge("create_time", param.getStartTime()); } if(param.getEndTime() != null) { query.le("create_time", param.getEndTime()); } query.orderByDesc("id"); List operationLogs = mapper.selectList(query); operationLogs.stream().forEach(userLog -> { // 将category转换为可读文本 userLog.setCategoryName(OperationLogEnum.getNameByType(userLog.getCategory())); // 将type转换为可读文本 userLog.setTypeName(OperationLogEnum.getNameByType(userLog.getType())); }); PageInfo pageInfo = new PageInfo<>(operationLogs); return new Response().set(1,pageInfo); } }