From a22a2c03006801d9c9768fd3d71681eb5363c5b2 Mon Sep 17 00:00:00 2001 From: zzl <961867786@qq.com> Date: Tue, 2 Sep 2025 15:40:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E6=8E=A5=E5=8F=A3demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bigscreen/CommonBigController.java | 75 +++++++++++++++++++ .../bigscreen/ResourceBigController.java | 38 ++++++++++ .../controller/monitor/CacheController.java | 28 +++---- .../src/main/resources/application.yml | 4 + .../ruoyi/common/constant/CacheConstants.java | 12 ++- .../ruoyi/system/mapper/SysDeptMapper.java | 2 + .../ruoyi/system/service/ISysDeptService.java | 4 + .../service/impl/SysDeptServiceImpl.java | 10 +++ .../resources/mapper/system/SysDeptMapper.xml | 5 ++ 9 files changed, 159 insertions(+), 19 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/bigscreen/CommonBigController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/bigscreen/ResourceBigController.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bigscreen/CommonBigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bigscreen/CommonBigController.java new file mode 100644 index 0000000..4b457f5 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bigscreen/CommonBigController.java @@ -0,0 +1,75 @@ +package com.ruoyi.web.controller.bigscreen; + +import com.ruoyi.common.constant.CacheConstants; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.service.ISysDeptService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Objects; +import java.util.concurrent.TimeUnit; + +/** + * @description: 通用大屏接口 + * @author: zzl + * @date: Created in 2025-09-02 15:11 + * @version: 1.0 + * @modified By: + */ +@RestController +@RequestMapping("/big/common") +public class CommonBigController extends BaseController { + + @Autowired + private ISysDeptService sysDeptService; + + @Autowired + private TokenService tokenService; + + @Autowired + private RedisCache redisCache; + + // 大屏接口缓存时间 + @Value("${rongxin.big.expireTime}") + private int expireTime; + + + @ApiOperation("根据部门deptId获取其下级部门列表") + @GetMapping(value = "/nextDeptListByDeptId/{deptId}") + public AjaxResult nextDeptListByDeptId(@PathVariable("deptId") Long deptId) { + + Object geoJson = redisCache.getCacheObject(CacheConstants.BIG_DATA_COMMON_KEY + "_nextDeptList_" + deptId); + if (Objects.nonNull(geoJson)) { + return AjaxResult.success(geoJson); + } + List deptList = sysDeptService.selectDeptByParentId(deptId); + redisCache.setCacheObject(CacheConstants.BIG_DATA_COMMON_KEY + "_nextDeptList_" + deptId, deptList, expireTime, TimeUnit.MINUTES); + return AjaxResult.success(deptList); + + } + + @ApiOperation("根据部门deptId获取其下级部门列表") + @GetMapping(value = "/nextDeptListByOrgCode/{orgCode}") + public AjaxResult nextDeptListByOrgCode(@PathVariable("orgCode") String orgCode) { + + Object geoJson = redisCache.getCacheObject(CacheConstants.BIG_DATA_COMMON_KEY + "_nextDeptList_" + orgCode); + if (Objects.nonNull(geoJson)) { + return AjaxResult.success(geoJson); + } + SysDept dept = sysDeptService.selectDeptByOrgCode(orgCode); + List deptList = sysDeptService.selectDeptByParentId(dept.getDeptId()); + redisCache.setCacheObject(CacheConstants.BIG_DATA_COMMON_KEY + "_nextDeptList_" + orgCode, deptList, expireTime, TimeUnit.MINUTES); + return AjaxResult.success(deptList); + + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bigscreen/ResourceBigController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bigscreen/ResourceBigController.java new file mode 100644 index 0000000..1f3819a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/bigscreen/ResourceBigController.java @@ -0,0 +1,38 @@ +package com.ruoyi.web.controller.bigscreen; + +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.service.ISysDeptService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @description: + * @author: zzl + * @date: Created in 2025-09-02 15:11 + * @version: 1.0 + * @modified By: + */ +@RestController +@RequestMapping("/big/resource") +public class ResourceBigController extends BaseController { + + @Autowired + private ISysDeptService sysDeptService; + + @Autowired + private TokenService tokenService; + + @Autowired + private RedisCache redisCache; + + // 大屏接口缓存时间 + @Value("${rongxin.big.expireTime}") + private int expireTime; + + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java index c8c49c9..1d5147e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java @@ -1,30 +1,20 @@ package com.ruoyi.web.controller.monitor; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import java.util.TreeSet; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisCallback; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.system.domain.SysCache; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisCallback; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.*; /** * 缓存监控 - * + * * @author ruoyi */ @RestController @@ -43,6 +33,8 @@ public class CacheController caches.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "防重提交")); caches.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理")); caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "密码错误次数")); + caches.add(new SysCache(CacheConstants.BIG_DATA_COMMON_KEY, "通用大屏数据")); + caches.add(new SysCache(CacheConstants.BIG_DATA_RESOURCE_KEY, "资源大屏数据")); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 0e9d540..dd67753 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -99,6 +99,10 @@ token: # 令牌有效期(默认30分钟) expireTime: 30 +rongxin: + big: + expireTime: 30 + # MyBatis配置 mybatis: # 搜索指定包别名 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java index 0080343..e7ea90d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java @@ -2,7 +2,7 @@ package com.ruoyi.common.constant; /** * 缓存的key 常量 - * + * * @author ruoyi */ public class CacheConstants @@ -41,4 +41,14 @@ public class CacheConstants * 登录账户密码错误次数 redis key */ public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:"; + + /** + * 【通用】大屏接口数据缓存 redis key + */ + public static final String BIG_DATA_COMMON_KEY = "big_data_common:"; + + /** + * 【资源】大屏接口数据缓存 redis key + */ + public static final String BIG_DATA_RESOURCE_KEY = "big_data_resource:"; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java index 3423023..ac10894 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDeptMapper.java @@ -53,6 +53,8 @@ public interface SysDeptMapper */ public int selectNormalChildrenDeptById(Long deptId); + public List selectDeptByParentId(Long parentId); + /** * 是否存在子节点 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index 7eb68cd..0af57ea 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -69,6 +69,10 @@ public interface ISysDeptService */ public int selectNormalChildrenDeptById(Long deptId); + public List selectDeptByParentId(Long parentId); + + public SysDept selectDeptByOrgCode(String orgCode); + /** * 是否存在部门子节点 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index c43e44f..0b0dbe2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -143,6 +143,16 @@ public class SysDeptServiceImpl implements ISysDeptService { return deptMapper.selectNormalChildrenDeptById(deptId); } + @Override + public List selectDeptByParentId(Long parentId) { + return deptMapper.selectDeptByParentId(parentId); + } + + @Override + public SysDept selectDeptByOrgCode(String orgCode) { + return deptMapper.selectDeptByOrgCode(orgCode); + } + /** * 是否存在子节点 * diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index 33f3db9..ab00394 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -249,6 +249,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from sys_dept + +