Răsfoiți Sursa

系统通知

skyline 3 săptămâni în urmă
părinte
comite
286c72d807

+ 26 - 3
car-wash-admin/src/main/java/com/kym/admin/controller/SystemLogController.java

@@ -1,7 +1,11 @@
 package com.kym.admin.controller;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.kym.common.R;
+import com.kym.common.annotation.SysLog;
+import com.kym.entity.queryParams.SystemLogQueryParam;
+import com.kym.service.SystemLogService;
+import cn.dev33.satoken.annotation.SaIgnore;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * <p>
@@ -12,7 +16,26 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2023-07-10
  */
 @RestController
-@RequestMapping("/charge/system-log")
+@RequestMapping("/system-log")
 public class SystemLogController {
 
+    private final SystemLogService systemLogService;
+
+    public SystemLogController(SystemLogService systemLogService) {
+        this.systemLogService = systemLogService;
+    }
+
+    @SysLog("查询操作日志列表")
+    @SaIgnore
+    @GetMapping("/list")
+    R<?> list(SystemLogQueryParam params) {
+        return R.success(systemLogService.listSystemLog(params));
+    }
+
+    @SysLog("清空操作日志")
+    @PostMapping("/clear")
+    R<?> clear() {
+        systemLogService.clearLog();
+        return R.success();
+    }
 }

+ 8 - 5
car-wash-entity/src/main/java/com/kym/entity/SystemLog.java

@@ -1,12 +1,10 @@
 package com.kym.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.kym.entity.BaseEntity;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.io.Serializable;
-import java.time.LocalDateTime;
 
 /**
  * <p>
@@ -19,10 +17,15 @@ import java.time.LocalDateTime;
 @Getter
 @Setter
 @TableName("t_system_log")
-public class SystemLog extends BaseEntity implements Serializable {
+public class SystemLog extends BaseEntity<SystemLog> implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 公司ID
+     */
+    private Long companyId;
+
     /**
      * 用户id
      */
@@ -39,7 +42,7 @@ public class SystemLog extends BaseEntity implements Serializable {
     private String ip;
 
     /**
-     * 操作名
+     * 操作名
      */
     private String operation;
 
@@ -54,7 +57,7 @@ public class SystemLog extends BaseEntity implements Serializable {
     private String requestParam;
 
     /**
-     * 执行时长
+     * 执行时长(毫秒)
      */
     private Long executeTime;
 

+ 27 - 0
car-wash-entity/src/main/java/com/kym/entity/queryParams/SystemLogQueryParam.java

@@ -0,0 +1,27 @@
+package com.kym.entity.queryParams;
+
+import com.kym.entity.common.PageParams;
+import lombok.Data;
+
+/**
+ * 系统日志查询参数
+ *
+ * @author skyline
+ */
+@Data
+public class SystemLogQueryParam extends PageParams {
+    /**
+     * 操作用户
+     */
+    private String username;
+
+    /**
+     * 开始日期
+     */
+    private String startDate;
+
+    /**
+     * 结束日期
+     */
+    private String endDate;
+}

+ 15 - 0
car-wash-service/src/main/java/com/kym/service/SystemLogService.java

@@ -2,6 +2,9 @@ package com.kym.service;
 
 import com.github.yulichang.base.MPJBaseService;
 import com.kym.entity.SystemLog;
+import com.kym.entity.queryParams.SystemLogQueryParam;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +16,16 @@ import com.kym.entity.SystemLog;
  */
 public interface SystemLogService extends MPJBaseService<SystemLog> {
 
+    /**
+     * 分页查询日志列表
+     *
+     * @param params 查询参数
+     * @return 分页结果
+     */
+    Map<String, Object> listSystemLog(SystemLogQueryParam params);
+
+    /**
+     * 清空日志
+     */
+    void clearLog();
 }

+ 38 - 1
car-wash-service/src/main/java/com/kym/service/impl/SystemLogServiceImpl.java

@@ -1,11 +1,17 @@
 package com.kym.service.impl;
 
-
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.kym.entity.SystemLog;
+import com.kym.entity.queryParams.SystemLogQueryParam;
 import com.kym.mapper.SystemLogMapper;
 import com.kym.service.SystemLogService;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * <p>
@@ -18,4 +24,35 @@ import org.springframework.stereotype.Service;
 @Service
 public class SystemLogServiceImpl extends MPJBaseServiceImpl<SystemLogMapper, SystemLog> implements SystemLogService {
 
+    @Override
+    public Map<String, Object> listSystemLog(SystemLogQueryParam params) {
+        Page<SystemLog> page = new Page<>(params.getPageNum(), params.getPageSize());
+        
+        LambdaQueryWrapper<SystemLog> wrapper = new LambdaQueryWrapper<>();
+        
+        if (StringUtils.hasText(params.getUsername())) {
+            wrapper.like(SystemLog::getUsername, params.getUsername());
+        }
+        if (StringUtils.hasText(params.getStartDate())) {
+            wrapper.ge(SystemLog::getCreateTime, params.getStartDate() + " 00:00:00");
+        }
+        if (StringUtils.hasText(params.getEndDate())) {
+            wrapper.le(SystemLog::getCreateTime, params.getEndDate() + " 23:59:59");
+        }
+        
+        wrapper.orderByDesc(SystemLog::getCreateTime);
+        
+        Page<SystemLog> result = this.page(page, wrapper);
+        
+        Map<String, Object> resultMap = new HashMap<>();
+        resultMap.put("list", result.getRecords());
+        resultMap.put("total", result.getTotal());
+        
+        return resultMap;
+    }
+
+    @Override
+    public void clearLog() {
+        this.remove(new LambdaQueryWrapper<>());
+    }
 }