From d9bd70860c1ec04803c224fb9586cc45bd65481a Mon Sep 17 00:00:00 2001 From: gaoyutao Date: Thu, 13 Nov 2025 18:08:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=84=9A=E6=9C=AC=E7=AE=A1=E7=90=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5=E3=80=81=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E7=BB=93=E6=9E=9C=E6=A0=B9=E6=8D=AE=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E5=85=B3=E9=94=AE=E5=AD=97=E7=AD=9B=E9=80=89=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E8=8F=9C=E5=8D=95=E7=82=B9=E5=87=BB=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E5=BF=83=E8=B7=B3=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/RemoteRevenueConfigService.java | 6 +- .../api/domain/EpsBusinessScriptRemote.java | 35 +++++ .../RemoteRevenueConfigFallbackFactory.java | 5 + .../controller/SysMenuClickController.java | 6 +- .../system/domain/EpsBusinessScript.java | 3 + .../com/ruoyi/system/domain/SysMenuClick.java | 72 +--------- .../system/service/ISysMenuClickService.java | 5 +- .../ruoyi/system/service/ISysMenuService.java | 12 +- .../service/impl/SysMenuClickServiceImpl.java | 37 ++++- .../service/impl/SysMenuServiceImpl.java | 38 +++-- .../mapper/system/EpsBusinessScriptMapper.xml | 23 +-- .../mapper/system/SysMenuClickMapper.xml | 1 - .../rocketmq/handler/MessageHandler.java | 134 +++++++++--------- .../impl/RmResourceRemoteServiceImpl.java | 2 +- .../rocketmq/RmResourceRemoteMapper.xml | 1 + 15 files changed, 213 insertions(+), 167 deletions(-) create mode 100644 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/EpsBusinessScriptRemote.java diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java index 591d75c..e74247a 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteRevenueConfigService.java @@ -7,9 +7,7 @@ import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.system.api.domain.*; import com.ruoyi.system.api.factory.RemoteRevenueConfigFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -132,5 +130,7 @@ public interface RemoteRevenueConfigService @PostMapping("/bandwidth/getEpsNodeBandWidthList") public R> getEpsNodeBandWidthList(@RequestBody EpsNodeBandwidthRemote epsNodeBandwidthRemote, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + @GetMapping("/businessScript/{id}") + public R getBusinessScriptMsgByScriptId(@PathVariable("id") Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/EpsBusinessScriptRemote.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/EpsBusinessScriptRemote.java new file mode 100644 index 0000000..d894916 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/EpsBusinessScriptRemote.java @@ -0,0 +1,35 @@ +package com.ruoyi.system.api.domain; + +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +/** + * 业务脚本管理对象 eps_business_script + * + * @author gyt + * @date 2025-10-13 + */ +@Data +public class EpsBusinessScriptRemote extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 脚本名称 */ + @Excel(name = "脚本名称") + private String scriptName; + + /** 脚本文件地址 */ + @Excel(name = "脚本文件地址") + private String scriptPath; + + /** 脚本默认参数 */ + @Excel(name = "脚本默认参数") + private String defaultParams; + /** 结果失败判断关键字 */ + @Excel(name = "结果失败判断关键字") + private String failedKeywords; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java index caac941..e8fbbd1 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteRevenueConfigFallbackFactory.java @@ -91,6 +91,11 @@ public class RemoteRevenueConfigFallbackFactory implements FallbackFactory> getEpsNodeBandWidthList(EpsNodeBandwidthRemote epsNodeBandwidthRemote, String source) { return R.fail("获取95值列表失败:" + throwable.getMessage()); } + + @Override + public R getBusinessScriptMsgByScriptId(Long id, String source) { + return R.fail("获取错误关键词失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuClickController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuClickController.java index b2526b9..b9cee00 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuClickController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysMenuClickController.java @@ -29,10 +29,10 @@ public class SysMenuClickController extends BaseController * 查询菜单点击计数列表 */ @RequiresPermissions("system:sysMenuClick:list") - @GetMapping("/list") - public AjaxResult list(SysMenuClick sysMenuClick) + @GetMapping("/getMenuListTopEight") + public AjaxResult list() { - List list = sysMenuClickService.selectSysMenuClickList(sysMenuClick); + List list = sysMenuClickService.selectSysMenuClickList(); return success(list); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsBusinessScript.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsBusinessScript.java index cf9ec4d..9019fe3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsBusinessScript.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/EpsBusinessScript.java @@ -29,4 +29,7 @@ public class EpsBusinessScript extends BaseEntity /** 脚本默认参数 */ @Excel(name = "脚本默认参数") private String defaultParams; + /** 结果失败判断关键字 */ + @Excel(name = "结果失败判断关键字") + private String failedKeywords; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenuClick.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenuClick.java index a89d3eb..2b85e42 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenuClick.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenuClick.java @@ -1,11 +1,11 @@ package com.ruoyi.system.domain; -import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.core.annotation.Excel; import com.ruoyi.common.core.web.domain.BaseEntity; +import lombok.Data; + +import java.util.Date; /** * 菜单点击计数对象 sys_menu_click @@ -13,6 +13,7 @@ import com.ruoyi.common.core.web.domain.BaseEntity; * @author gyt * @date 2025-11-12 */ +@Data public class SysMenuClick extends BaseEntity { private static final long serialVersionUID = 1L; @@ -37,69 +38,4 @@ public class SysMenuClick extends BaseEntity @Excel(name = "最后点击时间", width = 30, dateFormat = "yyyy-MM-dd") private Date lastClickTime; - public void setId(Long id) - { - this.id = id; - } - - public Long getId() - { - return id; - } - - public void setPageRoute(String pageRoute) - { - this.pageRoute = pageRoute; - } - - public String getPageRoute() - { - return pageRoute; - } - - public void setPageName(String pageName) - { - this.pageName = pageName; - } - - public String getPageName() - { - return pageName; - } - - public void setClickCount(Long clickCount) - { - this.clickCount = clickCount; - } - - public Long getClickCount() - { - return clickCount; - } - - public void setLastClickTime(Date lastClickTime) - { - this.lastClickTime = lastClickTime; - } - - public Date getLastClickTime() - { - return lastClickTime; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("pageRoute", getPageRoute()) - .append("pageName", getPageName()) - .append("clickCount", getClickCount()) - .append("lastClickTime", getLastClickTime()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuClickService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuClickService.java index efe537d..377b045 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuClickService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuClickService.java @@ -1,8 +1,9 @@ package com.ruoyi.system.service; -import java.util.List; import com.ruoyi.system.domain.SysMenuClick; +import java.util.List; + /** * 菜单点击计数Service接口 * @@ -25,7 +26,7 @@ public interface ISysMenuClickService * @param sysMenuClick 菜单点击计数 * @return 菜单点击计数集合 */ - public List selectSysMenuClickList(SysMenuClick sysMenuClick); + public List selectSysMenuClickList(); /** * 新增菜单点击计数 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 4de9419..0265f64 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -1,11 +1,12 @@ package com.ruoyi.system.service; -import java.util.List; -import java.util.Set; import com.ruoyi.system.domain.SysMenu; import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.domain.vo.TreeSelect; +import java.util.List; +import java.util.Set; + /** * 菜单 业务层 * @@ -141,4 +142,11 @@ public interface ISysMenuService * @return 结果 */ public boolean checkMenuNameUnique(SysMenu menu); + /** + * 根据用户查询系统菜单列表--权限控制前 + * + * @param userId 用户ID + * @return 菜单列表 + */ + public List getMenuListByWelcome(Long userId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuClickServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuClickServiceImpl.java index c2c3b7c..6d85daf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuClickServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuClickServiceImpl.java @@ -1,13 +1,19 @@ package com.ruoyi.system.service.impl; import com.ruoyi.common.core.utils.DateUtils; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.domain.SysMenu; import com.ruoyi.system.domain.SysMenuClick; import com.ruoyi.system.mapper.SysMenuClickMapper; import com.ruoyi.system.service.ISysMenuClickService; +import com.ruoyi.system.service.ISysMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * 菜单点击计数Service业务层处理 @@ -20,6 +26,8 @@ public class SysMenuClickServiceImpl implements ISysMenuClickService { @Autowired private SysMenuClickMapper sysMenuClickMapper; + @Autowired + private ISysMenuService sysMenuService; /** * 查询菜单点击计数 @@ -40,9 +48,34 @@ public class SysMenuClickServiceImpl implements ISysMenuClickService * @return 菜单点击计数 */ @Override - public List selectSysMenuClickList(SysMenuClick sysMenuClick) + public List selectSysMenuClickList() { - return sysMenuClickMapper.selectSysMenuClickList(sysMenuClick); + List menuClickList = sysMenuClickMapper.selectSysMenuClickList(new SysMenuClick()); + // 获取当前用户有权限的菜单列表 + List permittedMenus = getPermittedMenusForCurrentUser(); + Set permittedMenuIds = permittedMenus.stream() + .map(SysMenu::getMenuName) + .collect(Collectors.toSet()); + + // 过滤有权限的菜单 + List permittedPopularMenus = menuClickList.stream() + .filter(menu -> permittedMenuIds.contains(menu.getPageName())) + .limit(8) // 取前8个 + .collect(Collectors.toList()); + return permittedPopularMenus; + } + /** + * 获取当前用户有权限的菜单 + */ + private List getPermittedMenusForCurrentUser() { + // 使用Ruoyi的权限服务(推荐) + if (SecurityUtils.getLoginUser() != null) { + Long userId = SecurityUtils.getUserId(); + return sysMenuService.getMenuListByWelcome(userId); + } + + // 如果是匿名访问,返回空列表 + return new ArrayList<>(); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index ff86de5..97bbc57 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -1,15 +1,5 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.utils.StringUtils; @@ -24,6 +14,11 @@ import com.ruoyi.system.mapper.SysMenuMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.service.ISysMenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; /** * 菜单 业务层处理 @@ -540,4 +535,27 @@ public class SysMenuServiceImpl implements ISysMenuService return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" }, new String[] { "", "", "", "/", "/" }); } + /** + * 根据用户查询系统菜单列表--欢迎页 + * + * @param userId 用户ID + * @return 菜单列表 + */ + @Override + public List getMenuListByWelcome(Long userId) + { + SysMenu menu = new SysMenu(); + List menuList = null; + // 管理员显示所有菜单信息 + if (userId == 1L) + { + menuList = menuMapper.selectMenuList(menu); + } + else + { + menu.getParams().put("userId", userId); + menuList = menuMapper.selectMenuListByUserId(menu); + } + return menuList; + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsBusinessScriptMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsBusinessScriptMapper.xml index 4b53a67..5edd479 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsBusinessScriptMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/EpsBusinessScriptMapper.xml @@ -1,14 +1,15 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + + @@ -16,18 +17,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, script_name, script_path, default_params, create_time, update_time, create_by, update_by from eps_business_script + select id, script_name, script_path, default_params, failed_keywords, create_time, update_time, create_by, update_by from eps_business_script - +