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