From 2cc30e4315ff925aad68c40528654f5ed2bf3ef1 Mon Sep 17 00:00:00 2001 From: cjw Date: Tue, 18 Jun 2024 20:12:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=B5=84=E6=BA=90=E4=B9=9F?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A7=9F=E6=88=B7=E4=BF=A1=E6=81=AF=EF=BC=9B?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E7=BB=9F=E8=AE=A1-=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=EF=BC=8C=E4=BD=BF=E7=94=A8=E6=8E=92=E8=A1=8C?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 3 - .../controller/file/FileController.java | 10 +-- .../controller/file/StatisticController.java | 68 +++++++++++++++++++ .../file/SysOssPersonController.java | 6 ++ .../file/SysOssResourceController.java | 6 ++ .../file/SysOssTextbookController.java | 7 ++ .../dromara/system/domain/SysOssPerson.java | 17 ++--- .../dromara/system/domain/SysOssResource.java | 4 +- .../dromara/system/domain/SysOssTextbook.java | 4 +- .../system/domain/vo/StatisticNumVo.java | 33 +++++++++ .../system/mapper/StatisticMapper.java | 17 +++++ .../system/mapper/SysOssPersonMapper.java | 4 +- .../system/mapper/SysOssResourceMapper.java | 2 + .../system/mapper/SysOssTextbookMapper.java | 2 + .../dromara/system/service/IFileService.java | 3 + .../system/service/IStatisticService.java | 17 +++++ .../system/service/ISysOssPersonService.java | 5 ++ .../service/ISysOssResourceService.java | 6 ++ .../system/service/ISysOssService.java | 4 +- .../service/ISysOssTextbookService.java | 5 ++ .../system/service/impl/FileService.java | 7 +- .../service/impl/StatisticServiceImpl.java | 53 +++++++++++++++ .../service/impl/SysOssPersonServiceImpl.java | 8 +++ .../impl/SysOssResourceServiceImpl.java | 9 +++ .../service/impl/SysOssServiceImpl.java | 27 ++++---- .../impl/SysOssTextbookServiceImpl.java | 11 ++- .../mapper/system/StatisticMapper.xml | 47 +++++++++++++ .../mapper/system/SysOssPersonMapper.xml | 1 + .../mapper/system/SysOssResourceMapper.xml | 11 ++- .../mapper/system/SysOssTextbookMapper.xml | 17 +++-- 30 files changed, 367 insertions(+), 47 deletions(-) create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/StatisticController.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/StatisticNumVo.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/StatisticMapper.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/IStatisticService.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/StatisticServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/StatisticMapper.xml diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index a1b1a17..2ac3d01 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -141,9 +141,6 @@ tenant: - sys_client - sys_oss - sys_oss_config - - sys_oss_resource - - sys_oss_textbook - - sys_oss_person # MyBatisPlus配置 # https://baomidou.com/config/ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/FileController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/FileController.java index 9cf7e24..f7e2d3b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/FileController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/FileController.java @@ -4,10 +4,7 @@ import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.dromara.system.service.IFileService; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** *

TODO

@@ -24,14 +21,12 @@ public class FileController { private final IFileService fileService; - - /** * 预览OSS对象 * * @param ossId OSS对象ID */ - //@SaCheckPermission("system:oss:download") + //@SaCheckPermission("oss:file:preview") @PostMapping("/preview/{ossId}") public void preview(@PathVariable Long ossId, HttpServletResponse response) throws Exception { fileService.preview(ossId, response); @@ -41,4 +36,5 @@ public class FileController { + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/StatisticController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/StatisticController.java new file mode 100644 index 0000000..627c645 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/StatisticController.java @@ -0,0 +1,68 @@ +package org.dromara.system.controller.file; + +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.vo.StatisticNumVo; +import org.dromara.system.service.IStatisticService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + *

TODO

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/6/18 17:16 + */ +@RequiredArgsConstructor +@RestController +@RequestMapping("/statistic") +public class StatisticController extends BaseController { + + private final IStatisticService statisticService; + + /** + * 获取总年级数 + */ + @GetMapping("/grade/num") + public R getGradeNum() { + return R.ok(statisticService.getGradeNum()); + } + + + /** + * 获取总班级数 + */ + @GetMapping("/class/num") + public R getClassNum() { + return R.ok(statisticService.getCalssNum()); + } + /** + * 获取总班级数 + */ + @GetMapping("/teacher/num") + public R getTeacherNum() { + return R.ok(statisticService.getTeacherNum()); + } + + /** + * 获取总班级数 + */ + @GetMapping("/oss/num") + public R getOssNum() { + return R.ok(statisticService.getOssNum()); + } + + /** + * 资源使用排行榜 + */ + @GetMapping("/oss/use/rank") + public R> getOssUseRank() { + return R.ok(statisticService.getOssUseRank()); + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssPersonController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssPersonController.java index fb3fef4..1094255 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssPersonController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssPersonController.java @@ -127,4 +127,10 @@ public class SysOssPersonController extends BaseController { public R move(@RequestBody SysOssPersonBo bo) { return toAjax(sysOssPersonService.moveByBo(bo)); } + + @SaCheckPermission("file:person:download") + @GetMapping("/download/{id}") + public void download(@PathVariable Long id, HttpServletResponse response) throws Exception { + sysOssPersonService.download(id, response); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssResourceController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssResourceController.java index 956e731..26cbcca 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssResourceController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssResourceController.java @@ -1,6 +1,7 @@ package org.dromara.system.controller.file; import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; @@ -134,4 +135,9 @@ public class SysOssResourceController extends BaseController { public R move(@RequestBody SysOssResourceBo bo) { return toAjax(sysOssResourceService.moveByBo(bo)); } + @SaCheckPermission("file:resource:download") + @GetMapping("/download/{id}") + public void download(@PathVariable Long id, HttpServletResponse response) throws Exception { + sysOssResourceService.download(id, response); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssTextbookController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssTextbookController.java index ccb2635..bf2907d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssTextbookController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/file/SysOssTextbookController.java @@ -1,6 +1,7 @@ package org.dromara.system.controller.file; import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; @@ -137,4 +138,10 @@ public class SysOssTextbookController extends BaseController { return toAjax(sysOssTextbookService.moveByBo(bo)); } + @SaCheckPermission("file:textbook:download") + @GetMapping("/download/{id}") + public void download(@PathVariable Long id, HttpServletResponse response) throws Exception { + sysOssTextbookService.download(id, response); + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssPerson.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssPerson.java index 632335d..9fa24a6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssPerson.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssPerson.java @@ -1,9 +1,10 @@ package org.dromara.system.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; @@ -16,34 +17,34 @@ import java.io.Serial; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_oss_person") -public class SysOssPerson extends BaseEntity { +public class SysOssPerson extends TenantEntity { @Serial private static final long serialVersionUID = 1L; /** - * + * */ @TableId(value = "id") private Long id; /** - * + * */ private Long ossId; /** - * + * */ private Long catalogId; /** - * + * */ private String fileName; /** - * + * */ private String filePath; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssResource.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssResource.java index 324392c..c05d90d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssResource.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssResource.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.tenant.core.TenantEntity; /** * 【请填写功能名称】对象 sys_oss_resource @@ -15,7 +15,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_oss_resource") -public class SysOssResource extends BaseEntity { +public class SysOssResource extends TenantEntity { @TableId(value = "id") private Long id; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java index 40e5223..2f5a123 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOssTextbook.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.tenant.core.TenantEntity; /** * 【请填写功能名称】对象 sys_oss_textbook @@ -15,7 +15,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; @Data @EqualsAndHashCode(callSuper = true) @TableName("sys_oss_textbook") -public class SysOssTextbook extends BaseEntity { +public class SysOssTextbook extends TenantEntity { @TableId(value = "id") private Long id; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/StatisticNumVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/StatisticNumVo.java new file mode 100644 index 0000000..7953caf --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/StatisticNumVo.java @@ -0,0 +1,33 @@ +package org.dromara.system.domain.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + *

基础统计类

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/4/17 15:21 + */ +@Data +public class StatisticNumVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private String name; + + private int value; + + private int spareValue; + + @JsonIgnore + private String deptName; + @JsonIgnore + private String parentName; + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/StatisticMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/StatisticMapper.java new file mode 100644 index 0000000..577c4b5 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/StatisticMapper.java @@ -0,0 +1,17 @@ +package org.dromara.system.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.dromara.system.domain.vo.StatisticNumVo; + +import java.util.List; + +@Mapper +public interface StatisticMapper { + int selectGradeNum(String tenantId); + int selectCalssNum(String tenantId); + int selectTeacherNum(String tenantId); + int selectOssNum(String tenantId); + + List selectOssUse(String tenantId); + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssPersonMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssPersonMapper.java index 6d4e6f9..54f595e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssPersonMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssPersonMapper.java @@ -19,6 +19,8 @@ import org.dromara.system.domain.vo.SysOssPersonVo; public interface SysOssPersonMapper extends BaseMapperPlus { Page selectPageList(@Param("page") Page page, - @Param(Constants.WRAPPER) Wrapper queryWrapper); + @Param(Constants.WRAPPER) Wrapper queryWrapper); + + int addDownloadNum(Long id); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssResourceMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssResourceMapper.java index d1423be..759b49a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssResourceMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssResourceMapper.java @@ -29,4 +29,6 @@ public interface SysOssResourceMapper extends BaseMapperPlus selectPageAwaitList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + int addDownloadNum(Long id); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssTextbookMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssTextbookMapper.java index 0e9b4d6..f21fbee 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssTextbookMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOssTextbookMapper.java @@ -27,4 +27,6 @@ public interface SysOssTextbookMapper extends BaseMapperPlus selectPageAwaitList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + + int addDownloadNum(Long id); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/IFileService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/IFileService.java index 18ab830..5a991a4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/IFileService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/IFileService.java @@ -14,4 +14,7 @@ public interface IFileService { * @throws IOException */ void preview(Long ossId, HttpServletResponse response) throws Exception; + + void download(Long id, HttpServletResponse response); } + diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/IStatisticService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/IStatisticService.java new file mode 100644 index 0000000..856fd91 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/IStatisticService.java @@ -0,0 +1,17 @@ +package org.dromara.system.service; + +import org.dromara.system.domain.vo.StatisticNumVo; + +import java.util.List; + +public interface IStatisticService { + int getGradeNum(); + + int getCalssNum(); + + int getTeacherNum(); + + int getOssNum(); + + List getOssUseRank(); +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssPersonService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssPersonService.java index dead82c..fc46afa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssPersonService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssPersonService.java @@ -1,10 +1,12 @@ package org.dromara.system.service; +import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.system.domain.bo.SysOssPersonBo; import org.dromara.system.domain.vo.SysOssPersonVo; +import java.io.IOException; import java.util.Collection; import java.util.List; @@ -68,4 +70,7 @@ public interface ISysOssPersonService { Boolean copyByBo(SysOssPersonBo bo); Boolean moveByBo(SysOssPersonBo bo); + + void download(Long id, HttpServletResponse response) throws IOException; + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssResourceService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssResourceService.java index 6641e8b..d8c833e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssResourceService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssResourceService.java @@ -1,11 +1,13 @@ package org.dromara.system.service; +import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.system.domain.bo.SysOssResourceBo; import org.dromara.system.domain.vo.SysOssResourceVo; +import java.io.IOException; import java.util.Collection; import java.util.List; @@ -79,5 +81,9 @@ public interface ISysOssResourceService { Boolean reviewByBo(SysOssResourceBo bo); Boolean copyByBo(SysOssResourceBo bo); + Boolean moveByBo(SysOssResourceBo bo); + + void download(Long id, HttpServletResponse response) throws IOException; + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java index c4d5cc1..5bec700 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssService.java @@ -1,5 +1,6 @@ package org.dromara.system.service; +import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.system.domain.bo.SysOssBo; @@ -7,6 +8,7 @@ import org.dromara.system.domain.vo.SysOssVo; import org.springframework.web.multipart.MultipartFile; import java.io.File; +import java.io.IOException; import java.util.Collection; import java.util.List; @@ -64,7 +66,7 @@ public interface ISysOssService { * @param ossId OSS对象ID * @param response HttpServletResponse对象,用于设置响应头和向客户端发送文件内容 */ -// void download(Long ossId, HttpServletResponse response) throws IOException; + void download(Long ossId, HttpServletResponse response) throws IOException; /** * 删除OSS对象存储 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssTextbookService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssTextbookService.java index 0de1567..9434b75 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssTextbookService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysOssTextbookService.java @@ -1,11 +1,13 @@ package org.dromara.system.service; +import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.system.domain.bo.SysOssTextbookBo; import org.dromara.system.domain.vo.SysOssTextbookVo; +import java.io.IOException; import java.util.Collection; import java.util.List; @@ -79,4 +81,7 @@ public interface ISysOssTextbookService { Boolean reviewByBo(SysOssTextbookBo bo); Boolean copyByBo(SysOssTextbookBo bo); Boolean moveByBo(SysOssTextbookBo bo); + + void download(Long id, HttpServletResponse response) throws IOException; + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/FileService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/FileService.java index 8a6e7e8..ae9e75a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/FileService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/FileService.java @@ -7,8 +7,8 @@ import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.dromara.common.oss.core.OssClient; import org.dromara.common.oss.factory.OssFactory; -import org.dromara.system.service.IFileService; import org.dromara.system.domain.vo.SysOssVo; +import org.dromara.system.service.IFileService; import org.dromara.system.service.ISysOssService; import org.springframework.stereotype.Service; @@ -81,4 +81,9 @@ public class FileService implements IFileService { } } } + + @Override + public void download(Long id, HttpServletResponse response) { + + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/StatisticServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/StatisticServiceImpl.java new file mode 100644 index 0000000..4fe2912 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/StatisticServiceImpl.java @@ -0,0 +1,53 @@ +package org.dromara.system.service.impl; + +import lombok.RequiredArgsConstructor; +import org.dromara.common.tenant.helper.TenantHelper; +import org.dromara.system.domain.vo.StatisticNumVo; +import org.dromara.system.mapper.StatisticMapper; +import org.dromara.system.service.IStatisticService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

TODO

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/6/18 17:18 + */ +@RequiredArgsConstructor +@Service +public class StatisticServiceImpl implements IStatisticService { + private final StatisticMapper statisticMapper; + + @Override + public int getGradeNum() { + String tenantId = TenantHelper.getTenantId(); + return statisticMapper.selectGradeNum(tenantId); + } + + @Override + public int getCalssNum() { + String tenantId = TenantHelper.getTenantId(); + return statisticMapper.selectCalssNum(tenantId); + } + + @Override + public int getTeacherNum() { + String tenantId = TenantHelper.getTenantId(); + return statisticMapper.selectTeacherNum(tenantId); + } + + @Override + public int getOssNum() { + String tenantId = TenantHelper.getTenantId(); + return statisticMapper.selectOssNum(tenantId); + } + + @Override + public List getOssUseRank() { + String tenantId = TenantHelper.getTenantId(); + return statisticMapper.selectOssUse(tenantId); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssPersonServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssPersonServiceImpl.java index e7d3388..67c92d3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssPersonServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssPersonServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; @@ -26,6 +27,7 @@ import org.dromara.system.service.ISysOssPersonService; import org.dromara.system.service.ISysOssService; import org.springframework.stereotype.Service; +import java.io.IOException; import java.util.Collection; import java.util.List; @@ -184,4 +186,10 @@ public class SysOssPersonServiceImpl implements ISysOssPersonService { date.setFilePath(path); return date; } + + @Override + public void download(Long id, HttpServletResponse response) throws IOException { + SysOssPerson ossPerson = baseMapper.selectById(id); + ossService.download(ossPerson.getOssId(), response); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssResourceServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssResourceServiceImpl.java index 2cb27e3..870a75b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssResourceServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssResourceServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; @@ -26,6 +27,7 @@ import org.dromara.system.service.ISysOssResourceService; import org.dromara.system.service.ISysOssService; import org.springframework.stereotype.Service; +import java.io.IOException; import java.util.Collection; import java.util.List; @@ -203,4 +205,11 @@ public class SysOssResourceServiceImpl implements ISysOssResourceService { date.setStatus(ossResource.getStatus()); return date; } + + @Override + public void download(Long id, HttpServletResponse response) throws IOException { + SysOssResource ossResource = baseMapper.selectById(id); + ossService.download(ossResource.getOssId(), response); + baseMapper.addDownloadNum(id); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java index a69fe28..6b801b1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssServiceImpl.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.apache.commons.codec.digest.DigestUtils; import org.dromara.common.core.constant.CacheNames; @@ -17,6 +18,7 @@ import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.file.FileUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.oss.core.OssClient; @@ -30,6 +32,7 @@ import org.dromara.system.mapper.SysOssMapper; import org.dromara.system.service.ISysOssService; import org.jetbrains.annotations.NotNull; import org.springframework.cache.annotation.Cacheable; +import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -165,18 +168,18 @@ public class SysOssServiceImpl implements ISysOssService, OssService { * @param ossId OSS对象ID * @param response HttpServletResponse对象,用于设置响应头和向客户端发送文件内容 */ -// @Override -// public void download(Long ossId, HttpServletResponse response) throws IOException { -// SysOssVo sysOss = SpringUtils.getAopProxy(this).getById(ossId); -// if (ObjectUtil.isNull(sysOss)) { -// throw new ServiceException("文件数据不存在!"); -// } -// FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName()); -// response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8"); -// OssClient storage = OssFactory.instance(sysOss.getService()); -// long contentLength = storage.download(sysOss.getFileName(), response.getOutputStream()); -// response.setContentLengthLong(contentLength); -// } + @Override + public void download(Long ossId, HttpServletResponse response) throws IOException { + SysOssVo sysOss = SpringUtils.getAopProxy(this).getById(ossId); + if (ObjectUtil.isNull(sysOss)) { + throw new ServiceException("文件数据不存在!"); + } + FileUtils.setAttachmentResponseHeader(response, sysOss.getOriginalName()); + response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE + "; charset=UTF-8"); + OssClient storage = OssFactory.instance(sysOss.getService()); + long contentLength = storage.download(sysOss.getFileName(), response.getOutputStream()); + response.setContentLengthLong(contentLength); + } /** * 上传 MultipartFile 到对象存储服务,并保存文件信息到数据库 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java index 5b4af21..2344f74 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysOssTextbookServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; @@ -25,6 +26,7 @@ import org.dromara.system.service.ISysOssService; import org.dromara.system.service.ISysOssTextbookService; import org.springframework.stereotype.Service; +import java.io.IOException; import java.util.Collection; import java.util.List; @@ -72,7 +74,7 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService { @Override public TableDataInfo queryAwaitPageList(SysOssTextbookBo bo, PageQuery pageQuery) { QueryWrapper wrapper = Wrappers.query(); - wrapper.le("ot.status",0); + wrapper.le("ot.status", 0); Page result = baseMapper.selectPageAwaitList(pageQuery.build(), wrapper); return TableDataInfo.build(result); } @@ -203,4 +205,11 @@ public class SysOssTextbookServiceImpl implements ISysOssTextbookService { date.setStatus(ossTextbook.getStatus()); return date; } + + @Override + public void download(Long id, HttpServletResponse response) throws IOException { + SysOssTextbook ossTextbook = baseMapper.selectById(id); + ossService.download(ossTextbook.getOssId(), response); + baseMapper.addDownloadNum(id); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/StatisticMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/StatisticMapper.xml new file mode 100644 index 0000000..087179a --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/StatisticMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssPersonMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssPersonMapper.xml index c08d54e..a755b4a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssPersonMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssPersonMapper.xml @@ -10,4 +10,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join sys_oss o on o.oss_id = op.oss_id ${ew.getCustomSqlSegment} + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssResourceMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssResourceMapper.xml index 08abe35..09390b7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssResourceMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssResourceMapper.xml @@ -1,9 +1,8 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + + diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssTextbookMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssTextbookMapper.xml index f587bd4..6c219ac 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssTextbookMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOssTextbookMapper.xml @@ -5,18 +5,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + +