Quellcode durchsuchen

添加文件记录日志接口

pans vor 8 Monaten
Ursprung
Commit
4ff485b2c7

+ 38 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/config/plus/MybatisPlusConfig.java

@@ -0,0 +1,38 @@
+package vip.xiaonuo.disk.config.plus;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/*******************************************************
+ * mybatis-plus分页拦截插件
+ * @ClassName : MybatisPlusConfig
+ * @author: lin xue peng
+ * @time: 2023-06-09 13:23:24
+  * *****************************************************/
+@Configuration
+@MapperScan("vip.xiaonuo.disk.mapper")
+public class MybatisPlusConfig {
+
+
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
+        interceptor.addInnerInterceptor(paginationInnerInterceptor);
+        return interceptor;
+    }
+
+
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+//    @Bean
+//    public ConfigurationCustomizer configurationCustomizer() {
+//        return configuration -> configuration.setUseDeprecatedExecutor(false);
+//    }
+
+}

+ 56 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ExamineController.java

@@ -0,0 +1,56 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.disk.domain.Examine;
+import vip.xiaonuo.disk.service.ExamineService;
+import vip.xiaonuo.disk.util.PageQuery;
+import vip.xiaonuo.disk.util.TableDataInfo;
+import vip.xiaonuo.disk.vo.examine.ExamineVo;
+
+import javax.annotation.Resource;
+
+/**
+ * examine控制器
+ *
+ * @author pans
+ * @date  2025/06/19 11:21
+ */
+@Api(tags = "examine控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+@RequestMapping("/examine")
+public class ExamineController {
+
+    @Resource
+    private ExamineService examineService;
+
+    @Operation(summary = "资源概览存储空间统计接口", description = "资源概览存储空间统计接口")
+    @RequestMapping(value = "/queryList", method = RequestMethod.GET)
+    @ResponseBody
+    public TableDataInfo<ExamineVo> queryList(Examine examine, PageQuery pageQuery) {
+        return examineService.queryList(examine,pageQuery);
+    }
+
+
+
+}

+ 84 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/Examine.java

@@ -0,0 +1,84 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * examine实体
+ *
+ * @author pans
+ * @date  2025/06/19 11:21
+ **/
+@Getter
+@Setter
+@TableName("examine")
+public class Examine {
+
+    /** 主键id */
+    @TableId
+    @ApiModelProperty(value = "主键id", position = 1)
+    private Long id;
+
+    /** 资源id */
+    @ApiModelProperty(value = "资源id", position = 2)
+    private String targetId;
+
+    /** 审核状态 (0未审核  1已审核) */
+    @ApiModelProperty(value = "审核状态 (0未审核  1已审核)", position = 3)
+    private String examineStatus;
+
+    /** 删除标志 0未删除  1已删除 */
+    @ApiModelProperty(value = "删除标志 0未删除  1已删除", position = 4)
+    @TableLogic
+    @TableField(fill = FieldFill.INSERT)
+    private Integer deleteFlag;
+
+    /** 创建者 */
+    @ApiModelProperty(value = "创建者", position = 5)
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /** 创建时间 */
+    @ApiModelProperty(value = "创建时间", position = 6)
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /** 修改者 */
+    @ApiModelProperty(value = "修改者", position = 7)
+    @TableField(fill = FieldFill.UPDATE)
+    private Integer updateUser;
+
+    /** 修改时间 */
+    @ApiModelProperty(value = "修改时间", position = 8)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** 审批人 */
+    @ApiModelProperty(value = "审批人", position = 9)
+    private String examineUser;
+
+    /** 审批时间 */
+    @ApiModelProperty(value = "审批时间", position = 10)
+    private Date examineTime;
+
+    private String orgName;
+
+    private String fileName;
+
+}

+ 32 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/ExamineMapper.java

@@ -0,0 +1,32 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import vip.xiaonuo.disk.domain.Examine;
+import vip.xiaonuo.disk.vo.examine.ExamineVo;
+
+
+/**
+ * examineMapper接口
+ *
+ * @author pans
+ * @date  2025/06/19 11:21
+ **/
+@Mapper
+public interface ExamineMapper extends BaseMapper<Examine> {
+    Page<ExamineVo> queryList(@Param("examine") Examine examine,@Param("page")  Page<Object> build);
+}

+ 33 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ExamineMapper.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="vip.xiaonuo.disk.mapper.ExamineMapper">
+  <select id="queryList" resultType="vip.xiaonuo.disk.vo.examine.ExamineVo">
+      SELECT
+          a.user_file_id userFileId,
+          a.file_id fileId,
+          a.file_name fileName,
+          a.examine_user examineUser,
+          a.examine_status examineStatus,
+          a.examine_reason examineReason,
+          a.create_time createTime,
+          b.file_size fileSize,
+          o.name orgName
+      FROM
+          userfile a
+      LEFT JOIN FILE b ON
+      a.file_id = b.file_id
+      LEFT JOIN sys_user su ON a.CREATE_USER_ID=su.id
+      LEFT JOIN sys_org o ON su.ORG_ID =o.id
+      <where>
+          <if test="examine.examineStatus!=null">
+              a.examine_status = #{examine.examineStatus}
+          </if>
+          <if test="examine.fileName!=null">
+              and a.file_name like concat('%',#{examine.fileName},'%')
+          </if>
+          <if test="examine.orgName!=null">
+             and o.name like concat('%',#{examine.orgName},'%')
+          </if>
+      </where>
+  </select>
+</mapper>

+ 32 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/ExamineService.java

@@ -0,0 +1,32 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.disk.domain.Examine;
+import vip.xiaonuo.disk.util.PageQuery;
+import vip.xiaonuo.disk.util.TableDataInfo;
+import vip.xiaonuo.disk.vo.examine.ExamineVo;
+
+/**
+ * examineService接口
+ *
+ * @author pans
+ * @date  2025/06/19 11:21
+ **/
+public interface ExamineService extends IService<Examine> {
+
+
+    TableDataInfo<ExamineVo> queryList(Examine examine, PageQuery pageQuery);
+}

+ 44 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/ExamineServiceImpl.java

@@ -0,0 +1,44 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import vip.xiaonuo.disk.domain.Examine;
+import vip.xiaonuo.disk.mapper.ExamineMapper;
+import vip.xiaonuo.disk.service.ExamineService;
+import vip.xiaonuo.disk.util.PageQuery;
+import vip.xiaonuo.disk.util.TableDataInfo;
+import vip.xiaonuo.disk.vo.examine.ExamineVo;
+
+import javax.annotation.Resource;
+
+/**
+ * examineService接口实现类
+ *
+ * @author pans
+ * @date  2025/06/19 11:21
+ **/
+@Service
+public class ExamineServiceImpl extends ServiceImpl<ExamineMapper, Examine> implements ExamineService {
+    @Resource
+    private ExamineMapper examineMapper;
+
+    @Override
+    public TableDataInfo<ExamineVo> queryList(Examine examine, PageQuery pageQuery) {
+        Page<ExamineVo> sclist=examineMapper.queryList(examine,pageQuery.build());
+        return TableDataInfo.build(sclist);
+    }
+}

+ 51 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/util/PageQuery.java

@@ -0,0 +1,51 @@
+package vip.xiaonuo.disk.util;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 分页查询实体类
+ *
+ * @author Lion Li
+ */
+
+@Data
+public class PageQuery implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分页大小
+     */
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    private Integer pageNum;
+
+
+    /**
+     * 当前记录起始索引 默认值
+     */
+    public static final int DEFAULT_PAGE_NUM = 1;
+
+    /**
+     * 每页显示记录数 默认值 默认查全部
+     */
+    public static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE;
+
+    public <T> Page<T> build() {
+        Integer pageNum = ObjectUtil.defaultIfNull(getPageNum(), DEFAULT_PAGE_NUM);
+        Integer pageSize = ObjectUtil.defaultIfNull(getPageSize(), DEFAULT_PAGE_SIZE);
+        if (pageNum <= 0) {
+            pageNum = DEFAULT_PAGE_NUM;
+        }
+        Page<T> page = new Page<>(pageNum, pageSize);
+        return page;
+    }
+
+}

+ 79 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/util/TableDataInfo.java

@@ -0,0 +1,79 @@
+package vip.xiaonuo.disk.util;
+
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 表格分页数据对象
+ *
+ * @author Lion Li
+ */
+
+@Data
+@NoArgsConstructor
+public class TableDataInfo<T> implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 总记录数
+     */
+    private long total;
+
+    /**
+     * 列表数据
+     */
+    private List<T> rows;
+
+    /**
+     * 消息状态码
+     */
+    private int code;
+
+    /**
+     * 消息内容
+     */
+    private String msg;
+
+    /**
+     * 分页
+     *
+     * @param list  列表数据
+     * @param total 总记录数
+     */
+    public TableDataInfo(List<T> list, long total) {
+        this.rows = list;
+        this.total = total;
+    }
+
+    public static <T> TableDataInfo<T> build(IPage<T> page) {
+        TableDataInfo<T> rspData = new TableDataInfo<>();
+        rspData.setCode(200);
+        rspData.setMsg("查询成功");
+        rspData.setRows(page.getRecords());
+        rspData.setTotal(page.getTotal());
+        return rspData;
+    }
+
+    public static <T> TableDataInfo<T> build(List<T> list) {
+        TableDataInfo<T> rspData = new TableDataInfo<>();
+        rspData.setCode(200);
+        rspData.setMsg("查询成功");
+        rspData.setRows(list);
+        rspData.setTotal(list.size());
+        return rspData;
+    }
+
+    public static <T> TableDataInfo<T> build() {
+        TableDataInfo<T> rspData = new TableDataInfo<>();
+        rspData.setCode(200);
+        rspData.setMsg("查询成功");
+        return rspData;
+    }
+
+}

+ 49 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/examine/ExamineVo.java

@@ -0,0 +1,49 @@
+package vip.xiaonuo.disk.vo.examine;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+@Data
+public class ExamineVo {
+    /**
+     * 主键id
+     */
+    private String userFileId;
+    /**
+     * 文件id
+     */
+    private String fileId;
+    /**
+     * 文件名称
+     */
+    private String fileName;
+    /**
+     * 审核人
+     */
+    private String examineUser;
+    /**
+     * 审核状态
+     */
+    private String examineStatus;
+    /**
+     * 审核原因
+     */
+    private String examineReason;
+    /**
+     * 申请时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String createTime;
+
+    /**
+     * 文件大小
+     */
+    private String fileSize;
+    /**
+     * 组织名称
+     */
+    private String orgName;
+
+
+
+}