From 2a7781d6908f2b8dcd197ba215301761603fe17d Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期四, 20 二月 2025 17:56:03 +0800
Subject: [PATCH] 添加仅看我权限注解
---
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java | 15 ++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java | 20 +++-
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java | 16 +++
basic-server/src/main/java/com/ruoyi/basic/controller/StandardTemplateController.java | 2
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java | 4
inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java | 8 +
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java | 21 ++++
ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml | 27 ++++-
ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/PersonalScopeAspect.java | 82 ++++++++++++++++
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnqualifiedHandlerController.java | 4
ruoyi-common/src/main/java/com/ruoyi/common/annotation/PersonalScope.java | 32 ++++++
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java | 2
ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml | 6
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 6 -
14 files changed, 217 insertions(+), 28 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/StandardTemplateController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/StandardTemplateController.java
index 07be416..55cb2a9 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/StandardTemplateController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/StandardTemplateController.java
@@ -57,7 +57,7 @@
@GetMapping("/getEditTemplatePreparation")
public Result<?> getEditTemplatePreparation(@RequestParam("id") Integer id) {
StandardTemplate byId = standardTemplateService.getById(id);
- return Result.success("OK", byId.getThing());
+ return Result.success(byId.getThing());
}
@ApiOperation(value = "澶嶅埗鍘熷璁板綍妯℃澘")
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
index bda6f2e..b8f1002 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -85,7 +85,7 @@
@GetMapping("/selectOrderManDay")
public Result<?> selectOrderManDay(Integer id) {
int day = insProductService.selectOrderManDay(id);
- return Result.success("鎴愬姛", LocalDateTime.now().plusHours(day).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
+ return Result.success(LocalDateTime.now().plusHours(day).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
}
@ApiOperation(value = "鏌ヨ妫�楠屼笅鍗曞唴瀹硅鎯�")
@@ -120,7 +120,7 @@
@ApiOperation(value = "閫氳繃妫�楠屽崟妯℃澘id鑾峰彇妫�楠屽崟妯℃澘鍐呭")
@GetMapping("/selectInsOrderTemplateById")
public Result<?> selectInsOrderTemplateById(Integer id) {
- return Result.success("鎴愬姛", insOrderTemplateService.selectInsOrderTemplateById(id));
+ return Result.success(insOrderTemplateService.selectInsOrderTemplateById(id));
}
@ApiOperation(value = "鍒犻櫎妫�楠屽崟妯℃澘")
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnqualifiedHandlerController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnqualifiedHandlerController.java
index 035e565..6712b95 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnqualifiedHandlerController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsUnqualifiedHandlerController.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.oa.OAProcess;
import com.ruoyi.inspect.dto.PushOADto;
@@ -59,6 +60,7 @@
}
+ @Anonymous
@ApiOperation(value = "涓嶅悎鏍煎鐞哋A鍥炶皟")
@RequestMapping(value = "/callback", produces = "text/plain")
public String unqualifiedHandlerOACallback(String data){
@@ -72,7 +74,7 @@
JSONArray objects = JSONArray.parseArray(JSONObject.toJSONString(o));
unqualifiedHandlerService.unqualifiedHandlerOACallback(oaWorkId, checkResult,objects);
} catch (Exception e) {
- System.out.println(e.getMessage());
+ log.error("oa鍥炶皟澶辫触: " + e.getMessage());
msg = OAProcess.oaReturnMsg(1, "oa鍥炶皟澶辫触: " + e.getMessage());
}
System.out.println("oa鍥炶皟杩斿洖缁撴灉========>" + msg);
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
index abc3b2a..1211049 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.*;
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+import com.ruoyi.common.annotation.PersonalScope;
import com.ruoyi.inspect.dto.InsPlaceOrderDto;
import com.ruoyi.inspect.dto.SampleProductDto;
import com.ruoyi.inspect.pojo.InsOrder;
@@ -19,6 +20,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -54,6 +56,8 @@
@ApiOperation(value = "鍘熸潗鏂欐楠屾煡璇㈡楠屼腑")
@GetMapping("/getIfsByStateOne")
+// @PreAuthorize("@ss.hasPermi('business:order')")
+// @PersonalScope(permsName = "business:order", objectName = IfsInventoryQuantityDto.class, paramName = "createUser")
public Result getIfsByStateOne(Page page, IfsInventoryQuantityDto ifsInventoryQuantityDto){
return Result.success(rawMaterialOrderService.getIfsByStateOne(page, ifsInventoryQuantityDto));
}
@@ -78,7 +82,7 @@
@ApiOperation(value = "閫氳繃鍘熸潗鏂欐楠屽崟妯℃澘id鑾峰彇妫�楠屽崟妯℃澘鍐呭")
@GetMapping("/selectRawMaterOrderTemplateById")
public Result<?> selectRawMaterOrderTemplateById(Integer id) {
- return Result.success("鎴愬姛", rawMaterialOrderTemplateService.selectRawMaterOrderTemplateById(id));
+ return Result.success(rawMaterialOrderTemplateService.selectRawMaterOrderTemplateById(id));
}
@ApiOperation(value = "鍒犻櫎鍘熸潗鏂欐楠屽崟妯℃澘")
@@ -144,7 +148,7 @@
@ApiOperation(value = "鑾峰彇閾滀骇涓氶摼妫�娴嬫暟鎹�")
@GetMapping("/getIndustryChain")
public Result<?> getIndustryChain(Integer id) {
- return Result.success("鎴愬姛", rawMaterialOrderService.getIndustryChain(id));
+ return Result.success(rawMaterialOrderService.getIndustryChain(id));
}
/**
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index b1d6747..44bbca5 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -743,9 +743,6 @@
}
return null;
});
- // todo: 鍒犻櫎鏁伴噰閲囬泦娆℃暟
-// String key = "frequency" + ":" + entrustCode + ":*";
-// RedisUtil.delsLike(key);
// 鎻愪氦鐢熸垚鎶ュ憡
this.generateReport(orderId);
@@ -789,8 +786,7 @@
}
}
-
- // todo: 鎴愬搧鎶芥牱娣诲姞鍚堟牸鐘舵��
+ // 鎴愬搧鎶芥牱娣诲姞鍚堟牸鐘舵��
// 鍒ゆ柇鏄惁鏈夋娊鏍蜂俊鎭�
if (order.getQuarterItemId() != null) {
// 鍒ゆ柇鏄惁鏈変笉鍚堟牸
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/PersonalScope.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/PersonalScope.java
new file mode 100644
index 0000000..6df29bc
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/PersonalScope.java
@@ -0,0 +1,32 @@
+package com.ruoyi.common.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * 浠呯湅鎴戞潈闄�
+ *
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface PersonalScope {
+
+ /**
+ * 鏉冮檺鏍囪瘑鍚嶇О
+ * @return
+ */
+ String permsName();
+
+ /**
+ * 瀵硅薄鍚嶇О
+ * @return
+ */
+ Class objectName();
+
+ /**
+ * 鍙傛暟鍚嶇О
+ * @return
+ */
+ String paramName();
+
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
index ae25df2..949196f 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
@@ -11,7 +11,7 @@
/**
* Treeselect鏍戠粨鏋勫疄浣撶被
- *
+ *
* @author ruoyi
*/
public class TreeSelect implements Serializable
@@ -23,6 +23,9 @@
/** 鑺傜偣鍚嶇О */
private String label;
+
+ /** 鏄惁鍙互閫夋嫨浠呯湅鎴�, 0:鍚�, 1:鏄� */
+ private Integer isRersonalButton;
/** 鑺傜偣绂佺敤 */
private boolean disabled = false;
@@ -48,6 +51,7 @@
{
this.id = menu.getMenuId();
this.label = menu.getMenuName();
+ this.isRersonalButton = menu.geIsRersonalButton();
this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
@@ -90,4 +94,14 @@
{
this.children = children;
}
+
+ public Integer geIsRersonalButton()
+ {
+ return isRersonalButton;
+ }
+
+ public void setIsRersonalButton(Integer isRersonalButton)
+ {
+ this.isRersonalButton = isRersonalButton;
+ }
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
index ad73692..47354aa 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
@@ -11,7 +11,7 @@
/**
* 鑿滃崟鏉冮檺琛� sys_menu
- *
+ *
* @author ruoyi
*/
public class SysMenu extends BaseEntity
@@ -65,6 +65,9 @@
/** 鑿滃崟鍥炬爣 */
private String icon;
+
+ /** 鏄惁鍙互閫夋嫨浠呯湅鎴�, 0:鍚�, 1:鏄� */
+ private Integer isRersonalButton;
/** 瀛愯彍鍗� */
private List<SysMenu> children = new ArrayList<SysMenu>();
@@ -236,6 +239,16 @@
this.icon = icon;
}
+ public Integer geIsRersonalButton()
+ {
+ return isRersonalButton;
+ }
+
+ public void setIsRersonalButton(Integer isRersonalButton)
+ {
+ this.isRersonalButton = isRersonalButton;
+ }
+
public List<SysMenu> getChildren()
{
return children;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/PersonalScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/PersonalScopeAspect.java
new file mode 100644
index 0000000..c336760
--- /dev/null
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/PersonalScopeAspect.java
@@ -0,0 +1,82 @@
+package com.ruoyi.framework.aspectj;
+
+import com.ruoyi.common.annotation.PersonalScope;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.system.domain.vo.SysRoleVo;
+import com.ruoyi.system.mapper.SysRoleMenuMapper;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Field;
+import java.util.List;
+
+/**
+ * 浠呯湅鎴戞潈闄�
+ *
+ * @Author zhuo
+ * @Date 2025/2/20
+ */
+@Aspect
+@Component
+public class PersonalScopeAspect {
+
+ @Autowired
+ private SysRoleMenuMapper sysRoleMenuMapper;
+
+ @Pointcut("@annotation(com.ruoyi.common.annotation.PersonalScope)")
+ public void dataScopePointCut() {
+ }
+
+ @Before("dataScopePointCut()")
+ public void doBefore(JoinPoint point) throws Throwable {
+ Long userId = SecurityUtils.getUserId();
+
+ // 鑾峰彇鐩爣鏂规硶鐨勭鍚�
+ MethodSignature signature = (MethodSignature) point.getSignature();
+ // 鑾峰彇鐩爣鏂规硶涓婄殑娉ㄨВ
+ PersonalScope annotation = signature.getMethod().getAnnotation(PersonalScope.class);
+
+ // 鑾峰彇鏉冮檺鍒ゆ柇鏄惁鏄粎鐪嬫垜
+ SysRoleVo sysRoleVo = sysRoleMenuMapper.selectRoleMenu(annotation.permsName(), userId);
+
+ //娌℃湁浠呯湅鎴戞潈闄愯烦杩�
+ if (sysRoleVo == null || sysRoleVo.getIsRersonal() == null || !sysRoleVo.getIsRersonal().equals(1)) {
+ return;
+ }
+
+ // 鑾峰彇鏂归潰涓婃墍鏈夌殑瀵硅薄
+ Object[] args = point.getArgs();
+ for (Object arg : args) {
+ // 寰幆鏌ユ壘鍖归厤鐨勫璞�
+ if (arg.getClass().equals(annotation.objectName())) {
+ Class<?> argClass = arg.getClass();
+ // 鏌ユ壘闇�瑕佸~鍏呯殑瀛楁
+ Field declaredField = getField(argClass, annotation.paramName());
+ declaredField.setAccessible(true);
+ // 娣诲姞鐢ㄦ埛Id
+ declaredField.set(arg, userId.intValue());
+ }
+ }
+ }
+
+ // 閫掑綊鏌ユ壘瀛楁
+ private Field getField(Class<?> clazz, String fieldName) throws NoSuchFieldException {
+ // 浠庡綋鍓嶇被寮�濮嬫煡鎵惧瓧娈�
+ try {
+ return clazz.getDeclaredField(fieldName);
+ } catch (NoSuchFieldException e) {
+ // 濡傛灉褰撳墠绫绘病鏈夋壘鍒帮紝妫�鏌ョ埗绫�
+ Class<?> superClass = clazz.getSuperclass();
+ if (superClass != null) {
+ return getField(superClass, fieldName);
+ } else {
+ throw e;
+ }
+ }
+ }
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index b0e9080..a0adc27 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -111,7 +111,7 @@
.authorizeHttpRequests((requests) -> {
permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll());
// 瀵逛簬鐧诲綍login 娉ㄥ唽register 楠岃瘉鐮乧aptchaImage 鍏佽鍖垮悕璁块棶
- requests.antMatchers("/login", "/register", "/captchaImage", "/unqualifiedHandler/callback").permitAll()
+ requests.antMatchers("/login", "/register", "/captchaImage").permitAll()
// 闈欐�佽祫婧愶紝鍙尶鍚嶈闂�
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java
new file mode 100644
index 0000000..10f5d5f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author zhuo
+ * @Date 2025/2/20
+ */
+@Data
+public class SysRoleVo {
+
+ @ApiModelProperty("鏉冮檺鏍囪瘑")
+ private String perms;
+
+ @ApiModelProperty("鑿滃崟鍚嶇О")
+ private String menuName;
+
+ @ApiModelProperty("鏄惁浠呯湅鎴�, 0: 鍚�, 1:鏄�")
+ private Integer isRersonal;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java
index 6602bee..9551bd1 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java
@@ -2,17 +2,19 @@
import java.util.List;
import com.ruoyi.system.domain.SysRoleMenu;
+import com.ruoyi.system.domain.vo.SysRoleVo;
+import org.apache.ibatis.annotations.Param;
/**
* 瑙掕壊涓庤彍鍗曞叧鑱旇〃 鏁版嵁灞�
- *
+ *
* @author ruoyi
*/
public interface SysRoleMenuMapper
{
/**
* 鏌ヨ鑿滃崟浣跨敤鏁伴噺
- *
+ *
* @param menuId 鑿滃崟ID
* @return 缁撴灉
*/
@@ -20,7 +22,7 @@
/**
* 閫氳繃瑙掕壊ID鍒犻櫎瑙掕壊鍜岃彍鍗曞叧鑱�
- *
+ *
* @param roleId 瑙掕壊ID
* @return 缁撴灉
*/
@@ -28,7 +30,7 @@
/**
* 鎵归噺鍒犻櫎瑙掕壊鑿滃崟鍏宠仈淇℃伅
- *
+ *
* @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID
* @return 缁撴灉
*/
@@ -36,9 +38,17 @@
/**
* 鎵归噺鏂板瑙掕壊鑿滃崟淇℃伅
- *
+ *
* @param roleMenuList 瑙掕壊鑿滃崟鍒楄〃
* @return 缁撴灉
*/
public int batchRoleMenu(List<SysRoleMenu> roleMenuList);
+
+ /**
+ * 鏍规嵁鏉冮檺鏍囪瘑鍜岀敤鎴穒d鏌ヨ鏉冮檺
+ * @param permsName
+ * @param userId
+ * @return
+ */
+ SysRoleVo selectRoleMenu(@Param("permsName") String permsName, @Param("userId") Long userId);
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
index 9284614..91a63e2 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
@@ -26,10 +26,11 @@
<result property="updateTime" column="update_time" />
<result property="updateBy" column="update_by" />
<result property="remark" column="remark" />
+ <result property="isRersonalButton" column="is_rersonal_button" />
</resultMap>
<sql id="selectMenuVo">
- select menu_id, menu_name, parent_id, order_num, path, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time
+ select menu_id, menu_name, parent_id, order_num, path, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time, is_rersonal_button
from sys_menu
</sql>
@@ -56,7 +57,7 @@
</select>
<select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult">
- select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
+ select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time, m.is_rersonal_button
from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id
@@ -152,6 +153,7 @@
<if test="icon !=null and icon != ''">icon = #{icon},</if>
<if test="remark != null and remark != ''">remark = #{remark},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+ <if test="isRersonalButton != null and isRersonalButton != ''">is_rersonal_button = #{isRersonalButton},</if>
update_time = sysdate()
</set>
where menu_id = #{menuId}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
index cb60a85..2f71cd4 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml
@@ -8,27 +8,40 @@
<result property="roleId" column="role_id" />
<result property="menuId" column="menu_id" />
</resultMap>
-
+
<select id="checkMenuExistRole" resultType="Integer">
select count(1) from sys_role_menu where menu_id = #{menuId}
</select>
- <delete id="deleteRoleMenuByRoleId" parameterType="Long">
+ <!-- 鏍规嵁鏉冮檺鏍囪瘑鍜岀敤鎴穒d鏌ヨ鏉冮檺 -->
+ <select id="selectRoleMenu" resultType="com.ruoyi.system.domain.vo.SysRoleVo">
+ select sm.perms,
+ sm.menu_name,
+ srm.is_rersonal
+ from sys_role_menu srm
+ left join sys_menu sm on sm.menu_id = srm.menu_id
+ left join sys_user_role sur on srm.role_id = sur.role_id
+ where sm.perms = #{permsName}
+ and sur.user_id = #{userId}
+ group by sm.menu_id
+ </select>
+
+ <delete id="deleteRoleMenuByRoleId" parameterType="Long">
delete from sys_role_menu where role_id=#{roleId}
</delete>
-
+
<delete id="deleteRoleMenu" parameterType="Long">
delete from sys_role_menu where role_id in
<foreach collection="array" item="roleId" open="(" separator="," close=")">
#{roleId}
- </foreach>
+ </foreach>
</delete>
-
+
<insert id="batchRoleMenu">
insert into sys_role_menu(role_id, menu_id) values
<foreach item="item" index="index" collection="list" separator=",">
(#{item.roleId},#{item.menuId})
</foreach>
</insert>
-
-</mapper>
\ No newline at end of file
+
+</mapper>
--
Gitblit v1.9.3