소스 검색

Merge remote-tracking branch 'origin/master'

martin 3 년 전
부모
커밋
bb16d3eace

+ 16 - 0
api-common/src/main/java/api/common/pojo/po/system/RoleMenuPO.java

@@ -0,0 +1,16 @@
+package api.common.pojo.po.system;
+
+import api.common.pojo.common.CommonPO;
+import lombok.Data;
+
+@Data
+public class RoleMenuPO extends CommonPO {
+
+    //主键
+    private String id;
+    //角色id
+    private String roleId;
+    //菜单id
+    private String menuId;
+
+}

+ 2 - 0
api-common/src/main/java/api/common/pojo/vo/system/MenuVO.java

@@ -17,6 +17,8 @@ public class MenuVO {
     private String name;
     //菜单路由
     private String router;
+    //图标
+    private String icon;
     //菜单排序
     private int sort;
     //父id

+ 3 - 0
api-common/src/main/java/api/common/pojo/vo/system/RoleVO.java

@@ -1,6 +1,7 @@
 package api.common.pojo.vo.system;
 
 import lombok.Data;
+import java.util.List;
 
 @Data
 public class RoleVO {
@@ -17,5 +18,7 @@ public class RoleVO {
     private String visible;
     //排序号
     private int sort;
+    //菜单ids
+    private List<String> menuIds;
 
 }

+ 14 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/system/ctrl/RoleCtrl.java

@@ -62,4 +62,18 @@ public class RoleCtrl {
         }
     }
 
+    /**
+     * 授权菜单
+     */
+    @RequestMapping("/saveMenusToRole")
+    @ResponseBody
+    public ResponseBodyVO<RoleVO> saveMenusToRole(@RequestBody RoleVO roleVO){
+        if(ObjectUtil.isNull(roleVO)){
+            return new ResponseBodyVO(false, 500, "参数必传!",null);
+        }
+        ResponseBodyVO<RoleVO> response = new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+        response.setInfo(roleService.saveMenusToRole(roleVO));
+        return response;
+    }
+
 }

+ 5 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/system/mapper/RoleMapper.java

@@ -1,6 +1,7 @@
 package com.css.simulation.resource.system.mapper;
 
 import api.common.pojo.param.system.RoleParam;
+import api.common.pojo.po.system.RoleMenuPO;
 import api.common.pojo.po.system.RolePO;
 import api.common.pojo.vo.system.RoleVO;
 import org.apache.ibatis.annotations.Mapper;
@@ -19,4 +20,8 @@ public interface RoleMapper {
     void update(RolePO po);
 
     int delRoleById(RolePO rolePO);
+
+    void delRoleMenus(RoleMenuPO roleMenu);
+
+    void insertRoleMenus(List<RoleMenuPO> list);
 }

+ 28 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/system/service/RoleService.java

@@ -1,6 +1,7 @@
 package com.css.simulation.resource.system.service;
 
 import api.common.pojo.param.system.RoleParam;
+import api.common.pojo.po.system.RoleMenuPO;
 import api.common.pojo.po.system.RolePO;
 import api.common.pojo.vo.system.RoleVO;
 import api.common.util.ObjectUtil;
@@ -12,6 +13,7 @@ import com.github.pagehelper.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Service
@@ -45,4 +47,30 @@ public class RoleService {
         PoUtil.initDelPo(rolePO);
         return roleMapper.delRoleById(rolePO);
     }
+
+    public RoleVO saveMenusToRole(RoleVO roleVO) {
+        String roleId = roleVO.getId();
+        if(ObjectUtil.isNull(roleId)){
+            return null;
+        }
+        List<String> menuIds = roleVO.getMenuIds();
+        RoleMenuPO RoleMenu = new RoleMenuPO();
+        RoleMenu.setRoleId(roleId);
+        PoUtil.initDelPo(RoleMenu);
+        //删除旧数据
+        roleMapper.delRoleMenus(RoleMenu);
+        List<RoleMenuPO> list = new ArrayList<>();
+        if(ObjectUtil.isNotNull(menuIds)){//新增新数据
+            for (String menuId: menuIds) {
+                RoleMenuPO po = new RoleMenuPO();
+                PoUtil.initAddPo(po);
+                po.setId(StringUtil.getRandomUUID());
+                po.setRoleId(roleId);
+                po.setMenuId(menuId);
+                list.add(po);
+            }
+            roleMapper.insertRoleMenus(list);
+        }
+        return roleVO;
+    }
 }

+ 1 - 0
simulation-resource-server/src/main/resources/mapper/system/MenuMapper.xml

@@ -8,6 +8,7 @@
             m.id,
             m.name,
             m.router,
+            m.icon,
             m.sort,
             m.parent_id,
             m.visible

+ 33 - 0
simulation-resource-server/src/main/resources/mapper/system/RoleMapper.xml

@@ -72,4 +72,37 @@
           is_deleted = #{isDeleted,jdbcType=VARCHAR}
         where id = #{id,jdbcType=VARCHAR}
     </update>
+
+    <update id="delRoleMenus" parameterType="api.common.pojo.po.system.RoleMenuPO">
+        update system_role_menu set
+          modify_time = #{modifyTime,jdbcType=TIMESTAMP},
+          modify_user_id = #{modifyUserId,jdbcType=VARCHAR},
+          is_deleted = #{isDeleted,jdbcType=VARCHAR}
+        where role_id = #{roleId,jdbcType=VARCHAR}
+    </update>
+
+    <insert id="insertRoleMenus" parameterType="java.util.List">
+        insert into system_role_menu(
+            id,
+            role_id,
+            menu_id,
+            create_time,
+            modify_time,
+            create_user_id,
+            modify_user_id,
+            is_deleted
+        ) values
+        <foreach collection="list" item="item" separator=",">
+          (
+            #{item.id,jdbcType=VARCHAR},
+            #{item.roleId,jdbcType=VARCHAR},
+            #{item.menuId,jdbcType=VARCHAR},
+            #{item.createTime,jdbcType=TIMESTAMP},
+            #{item.modifyTime,jdbcType=TIMESTAMP},
+            #{item.createUserId,jdbcType=VARCHAR},
+            #{item.modifyUserId,jdbcType=VARCHAR},
+            #{item.isDeleted,jdbcType=VARCHAR}
+          )
+        </foreach>
+    </insert>
 </mapper>