浏览代码

新建可视化单表操作次数和存储总量

bihs 1 月之前
父节点
当前提交
075aa4d690

+ 93 - 0
src/main/java/com/ruoyi/system/controller/SysOperateStatisticsController.java

@@ -0,0 +1,93 @@
+package com.ruoyi.system.controller;
+
+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.system.domain.SysOperateStatistics;
+import com.ruoyi.system.service.ISysOperateStatisticsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 操作次数和存储总量Controller
+ *
+ * @author ruoyi
+ * @date 2025-08-12
+ */
+@RestController
+@RequestMapping("/operate/statistics")
+public class SysOperateStatisticsController extends BaseController {
+    @Autowired
+    private ISysOperateStatisticsService sysOperateStatisticsService;
+
+    /**
+     * 查询操作次数和存储总量列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(SysOperateStatistics SysOperateStatistics) {
+        startPage();
+        List<SysOperateStatistics> list = sysOperateStatisticsService.selectSysOperateStatisticsList(SysOperateStatistics);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出操作次数和存储总量列表
+     */
+    @Log(title = "操作次数和存储总量", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, SysOperateStatistics SysOperateStatistics) {
+        List<SysOperateStatistics> list = sysOperateStatisticsService.selectSysOperateStatisticsList(SysOperateStatistics);
+        ExcelUtil<SysOperateStatistics> util = new ExcelUtil<SysOperateStatistics>(SysOperateStatistics.class);
+        util.exportExcel(response, list, "操作次数和存储总量数据");
+    }
+
+    /**
+     * 获取操作次数和存储总量详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return AjaxResult.success(sysOperateStatisticsService.selectSysOperateStatisticsById(id));
+    }
+
+    /**
+     * 新增操作次数和存储总量
+     */
+    @Log(title = "操作次数和存储总量", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody SysOperateStatistics SysOperateStatistics) {
+        return toAjax(sysOperateStatisticsService.insertSysOperateStatistics(SysOperateStatistics));
+    }
+
+    /**
+     * 修改操作次数和存储总量
+     */
+    @Log(title = "操作次数和存储总量", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody SysOperateStatistics SysOperateStatistics) {
+        return toAjax(sysOperateStatisticsService.updateSysOperateStatistics(SysOperateStatistics));
+    }
+
+    /**
+     * 删除操作次数和存储总量
+     */
+    @Log(title = "操作次数和存储总量", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(sysOperateStatisticsService.deleteSysOperateStatisticsByIds(ids));
+    }
+
+    /**
+     * 可视化获取操作次数和存储总量
+     */
+    @GetMapping(value = "/getSysOperateStatisticsCount")
+    public AjaxResult getSysOperateStatisticsCount() {
+        return AjaxResult.success(sysOperateStatisticsService.getSysOperateStatisticsCount());
+    }
+
+}

+ 63 - 0
src/main/java/com/ruoyi/system/domain/SysOperateStatistics.java

@@ -0,0 +1,63 @@
+package com.ruoyi.system.domain;
+
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+/**
+ * 操作次数和存储总量对象 sys_operate_statistics
+ *
+ * @author ruoyi
+ * @date 2025-08-12
+ */
+public class SysOperateStatistics extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    private Long id;
+
+    /**
+     * 类型
+     */
+    private String operateType;
+
+    /**
+     * 数量
+     */
+    private String operateCount;
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setOperateType(String operateType) {
+        this.operateType = operateType;
+    }
+
+    public String getOperateType() {
+        return operateType;
+    }
+
+    public void setOperateCount(String operateCount) {
+        this.operateCount = operateCount;
+    }
+
+    public String getOperateCount() {
+        return operateCount;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("operateType", getOperateType())
+                .append("operateCount", getOperateCount())
+                .toString();
+    }
+}

+ 64 - 0
src/main/java/com/ruoyi/system/mapper/SysOperateStatisticsMapper.java

@@ -0,0 +1,64 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.domain.SysOperateStatistics;
+import io.lettuce.core.dynamic.annotation.Param;
+
+import java.util.List;
+
+/**
+ * 操作次数和存储总量Mapper接口
+ *
+ * @author ruoyi
+ * @date 2025-08-12
+ */
+public interface SysOperateStatisticsMapper {
+    /**
+     * 查询操作次数和存储总量
+     *
+     * @param id 操作次数和存储总量主键
+     * @return 操作次数和存储总量
+     */
+    public SysOperateStatistics selectSysOperateStatisticsById(Long id);
+
+    /**
+     * 查询操作次数和存储总量列表
+     *
+     * @param SysOperateStatistics 操作次数和存储总量
+     * @return 操作次数和存储总量集合
+     */
+    public List<SysOperateStatistics> selectSysOperateStatisticsList(SysOperateStatistics SysOperateStatistics);
+
+    /**
+     * 新增操作次数和存储总量
+     *
+     * @param SysOperateStatistics 操作次数和存储总量
+     * @return 结果
+     */
+    public int insertSysOperateStatistics(SysOperateStatistics SysOperateStatistics);
+
+    /**
+     * 修改操作次数和存储总量
+     *
+     * @param SysOperateStatistics 操作次数和存储总量
+     * @return 结果
+     */
+    public int updateSysOperateStatistics(SysOperateStatistics SysOperateStatistics);
+
+    /**
+     * 删除操作次数和存储总量
+     *
+     * @param id 操作次数和存储总量主键
+     * @return 结果
+     */
+    public int deleteSysOperateStatisticsById(Long id);
+
+    /**
+     * 批量删除操作次数和存储总量
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteSysOperateStatisticsByIds(Long[] ids);
+
+    String getSysOperateStatisticsCountByType(@Param("operateType")String operateType);
+}

+ 64 - 0
src/main/java/com/ruoyi/system/service/ISysOperateStatisticsService.java

@@ -0,0 +1,64 @@
+package com.ruoyi.system.service;
+
+import com.ruoyi.system.domain.SysOperateStatistics;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 操作次数和存储总量Service接口
+ *
+ * @author ruoyi
+ * @date 2025-08-12
+ */
+public interface ISysOperateStatisticsService {
+    /**
+     * 查询操作次数和存储总量
+     *
+     * @param id 操作次数和存储总量主键
+     * @return 操作次数和存储总量
+     */
+    public SysOperateStatistics selectSysOperateStatisticsById(Long id);
+
+    /**
+     * 查询操作次数和存储总量列表
+     *
+     * @param SysOperateStatistics 操作次数和存储总量
+     * @return 操作次数和存储总量集合
+     */
+    public List<SysOperateStatistics> selectSysOperateStatisticsList(SysOperateStatistics SysOperateStatistics);
+
+    /**
+     * 新增操作次数和存储总量
+     *
+     * @param SysOperateStatistics 操作次数和存储总量
+     * @return 结果
+     */
+    public int insertSysOperateStatistics(SysOperateStatistics SysOperateStatistics);
+
+    /**
+     * 修改操作次数和存储总量
+     *
+     * @param SysOperateStatistics 操作次数和存储总量
+     * @return 结果
+     */
+    public int updateSysOperateStatistics(SysOperateStatistics SysOperateStatistics);
+
+    /**
+     * 批量删除操作次数和存储总量
+     *
+     * @param ids 需要删除的操作次数和存储总量主键集合
+     * @return 结果
+     */
+    public int deleteSysOperateStatisticsByIds(Long[] ids);
+
+    /**
+     * 删除操作次数和存储总量信息
+     *
+     * @param id 操作次数和存储总量主键
+     * @return 结果
+     */
+    public int deleteSysOperateStatisticsById(Long id);
+
+    Map<String,Object> getSysOperateStatisticsCount();
+}

+ 97 - 0
src/main/java/com/ruoyi/system/service/impl/SysOperateStatisticsServiceImpl.java

@@ -0,0 +1,97 @@
+package com.ruoyi.system.service.impl;
+
+import com.ruoyi.system.domain.SysOperateStatistics;
+import com.ruoyi.system.mapper.SysOperateStatisticsMapper;
+import com.ruoyi.system.service.ISysOperateStatisticsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 操作次数和存储总量Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2025-08-12
+ */
+@Service
+public class SysOperateStatisticsServiceImpl implements ISysOperateStatisticsService {
+    @Autowired
+    private SysOperateStatisticsMapper sysOperateStatisticsMapper;
+
+    /**
+     * 查询操作次数和存储总量
+     *
+     * @param id 操作次数和存储总量主键
+     * @return 操作次数和存储总量
+     */
+    @Override
+    public SysOperateStatistics selectSysOperateStatisticsById(Long id) {
+        return sysOperateStatisticsMapper.selectSysOperateStatisticsById(id);
+    }
+
+    /**
+     * 查询操作次数和存储总量列表
+     *
+     * @param SysOperateStatistics 操作次数和存储总量
+     * @return 操作次数和存储总量
+     */
+    @Override
+    public List<SysOperateStatistics> selectSysOperateStatisticsList(SysOperateStatistics SysOperateStatistics) {
+        return sysOperateStatisticsMapper.selectSysOperateStatisticsList(SysOperateStatistics);
+    }
+
+    /**
+     * 新增操作次数和存储总量
+     *
+     * @param SysOperateStatistics 操作次数和存储总量
+     * @return 结果
+     */
+    @Override
+    public int insertSysOperateStatistics(SysOperateStatistics SysOperateStatistics) {
+        return sysOperateStatisticsMapper.insertSysOperateStatistics(SysOperateStatistics);
+    }
+
+    /**
+     * 修改操作次数和存储总量
+     *
+     * @param SysOperateStatistics 操作次数和存储总量
+     * @return 结果
+     */
+    @Override
+    public int updateSysOperateStatistics(SysOperateStatistics SysOperateStatistics) {
+        return sysOperateStatisticsMapper.updateSysOperateStatistics(SysOperateStatistics);
+    }
+
+    /**
+     * 批量删除操作次数和存储总量
+     *
+     * @param ids 需要删除的操作次数和存储总量主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSysOperateStatisticsByIds(Long[] ids) {
+        return sysOperateStatisticsMapper.deleteSysOperateStatisticsByIds(ids);
+    }
+
+    /**
+     * 删除操作次数和存储总量信息
+     *
+     * @param id 操作次数和存储总量主键
+     * @return 结果
+     */
+    @Override
+    public int deleteSysOperateStatisticsById(Long id) {
+        return sysOperateStatisticsMapper.deleteSysOperateStatisticsById(id);
+    }
+
+    @Override
+    public Map<String, Object> getSysOperateStatisticsCount() {
+        Map<String, Object> map = new HashMap<>();
+        map.put("operate",sysOperateStatisticsMapper.getSysOperateStatisticsCountByType("1"));
+        map.put("storage",sysOperateStatisticsMapper.getSysOperateStatisticsCountByType("2"));
+        return map;
+    }
+}

+ 69 - 0
src/main/resources/mapper/system/SysOperateStatisticsMapper.xml

@@ -0,0 +1,69 @@
+<?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="com.ruoyi.system.mapper.SysOperateStatisticsMapper">
+
+    <resultMap type="SysOperateStatistics" id="SysOperateStatisticsResult">
+        <result property="id" column="id"/>
+        <result property="operateType" column="operate_type"/>
+        <result property="operateCount" column="operate_count"/>
+    </resultMap>
+
+    <sql id="selectSysOperateStatisticsVo">
+        select id, operate_type, operate_count from sys_operate_statistics
+    </sql>
+
+    <select id="selectSysOperateStatisticsList" parameterType="SysOperateStatistics"
+            resultMap="SysOperateStatisticsResult">
+        <include refid="selectSysOperateStatisticsVo"/>
+        <where>
+            <if test="operateType != null  and operateType != ''">and operate_type = #{operateType}</if>
+            <if test="operateCount != null  and operateCount != ''">and operate_count = #{operateCount}</if>
+        </where>
+    </select>
+
+    <select id="selectSysOperateStatisticsById" parameterType="Long"
+            resultMap="SysOperateStatisticsResult">
+        <include refid="selectSysOperateStatisticsVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertSysOperateStatistics" parameterType="SysOperateStatistics"
+            useGeneratedKeys="true" keyProperty="id">
+        insert into sys_operate_statistics
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="operateType != null">operate_type,</if>
+            <if test="operateCount != null">operate_count,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="operateType != null">#{operateType},</if>
+            <if test="operateCount != null">#{operateCount},</if>
+        </trim>
+    </insert>
+
+    <update id="updateSysOperateStatistics" parameterType="SysOperateStatistics">
+        update sys_operate_statistics
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="operateType != null">operate_type = #{operateType},</if>
+            <if test="operateCount != null">operate_count = #{operateCount},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteSysOperateStatisticsById" parameterType="Long">
+        delete from sys_operate_statistics where id = #{id}
+    </delete>
+
+    <delete id="deleteSysOperateStatisticsByIds" parameterType="String">
+        delete from sys_operate_statistics where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <select id="getSysOperateStatisticsCountByType" resultType="java.lang.String">
+        select operate_count from sys_operate_statistics
+        where operate_type = #{operateType} order by id desc
+    </select>
+</mapper>

+ 44 - 0
system_ui/src/api/operatestatistics/statistics.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询操作次数和存储总量列表
+export function listStatistics(query) {
+  return request({
+    url: '/system/operate/statistics/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询操作次数和存储总量详细
+export function getStatistics(id) {
+  return request({
+    url: '/system/operate/statistics/' + id,
+    method: 'get'
+  })
+}
+
+// 新增操作次数和存储总量
+export function addStatistics(data) {
+  return request({
+    url: '/system/operate/statistics',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改操作次数和存储总量
+export function updateStatistics(data) {
+  return request({
+    url: '/system/operate/statistics',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除操作次数和存储总量
+export function delStatistics(id) {
+  return request({
+    url: '/system/operate/statistics/' + id,
+    method: 'delete'
+  })
+}

+ 247 - 0
system_ui/src/views/system/operatestatistics/index.vue

@@ -0,0 +1,247 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="类型" prop="operateCount">
+        <el-select v-model="queryParams.operateType" clearable placeholder="请选择类型" @keyup.enter.native="handleQuery">
+          <el-option label="操作次数" value="1"></el-option>
+          <el-option label="存储总量" value="2"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+        >删除
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="statisticsList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="序号" align="center" type="index"/>
+      <el-table-column label="类型" align="center" prop="operateType">
+        <template slot-scope="scope">
+          <label v-show="scope.row.operateType == '1'">操作次数</label>
+          <label v-show="scope.row.operateType == '2'">存储总量</label>
+        </template>
+      </el-table-column>
+      <el-table-column label="数量" align="center" prop="operateCount"/>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改操作次数和存储总量对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="类型" prop="operateType">
+          <el-select v-model="form.operateType" placeholder="请选择类型">
+            <el-option label="操作次数" value="1"></el-option>
+            <el-option label="存储总量" value="2"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="数量" prop="operateCount">
+          <el-input v-model="form.operateCount" placeholder="请输入数量"/>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listStatistics,
+  getStatistics,
+  delStatistics,
+  addStatistics,
+  updateStatistics
+} from "@/api/operatestatistics/statistics";
+
+export default {
+  name: "Statistics",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 操作次数和存储总量表格数据
+      statisticsList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        operateType: null,
+        operateCount: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {}
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询操作次数和存储总量列表 */
+    getList() {
+      this.loading = true;
+      listStatistics(this.queryParams).then(response => {
+        this.statisticsList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        operateType: null,
+        operateCount: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加操作次数和存储总量";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getStatistics(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改操作次数和存储总量";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateStatistics(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addStatistics(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除操作次数和存储总量编号为"' + ids + '"的数据项?').then(function () {
+        return delStatistics(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {
+      });
+    },
+  }
+};
+</script>