Browse Source

根据ID(可选择的)更新菜单字段

chao 3 năm trước cách đây
mục cha
commit
2ba3904031

+ 13 - 3
src/main/java/com/caimei365/manager/controller/SysUserApi.java

@@ -42,16 +42,15 @@ public class SysUserApi {
      * 获取菜单列表
      *
      * @param parentId 父级菜单Id
-     * @param level    菜单层级
      * @param status   状态:0启用,1停用
      * @param pageNum  页码
      * @param pageSize 每页大小
      */
     @GetMapping("/menu/list")
-    public ResponseJson<PaginationVo<SysMenu>> menuList(Integer parentId, Integer level, Integer status,
+    public ResponseJson<PaginationVo<SysMenu>> menuList(Integer parentId, Integer status,
             @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
             @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
-        return sysUserService.getMenuList(parentId, level, status, pageNum, pageSize);
+        return sysUserService.getMenuList(parentId, status, pageNum, pageSize);
     }
 
     /**
@@ -76,6 +75,17 @@ public class SysUserApi {
         return sysUserService.updateMenu(id, menu);
     }
 
+    /**
+     * 根据ID(可选择的)更新菜单字段
+     */
+    @PostMapping("/menu/update/selective/{id}")
+    public ResponseJson<Void> updateMenuSelective(@PathVariable("id") Integer id, SysMenu menu) {
+        if (null == id || id <= 0) {
+            return ResponseJson.error("菜单Id不能为空!", null);
+        }
+        return sysUserService.updateMenuSelective(id, menu);
+    }
+
     /**
      * 添加菜单
      */

+ 1 - 2
src/main/java/com/caimei365/manager/dao/SysUserDao.java

@@ -50,10 +50,9 @@ public interface SysUserDao {
     /**
      * 获取菜单列表
      * @param parentId 父级菜单Id
-     * @param level    菜单层级
      * @param status   状态:0启用,1停用
      */
-    List<SysMenu> getMenuList(Integer parentId, Integer level, Integer status);
+    List<SysMenu> getMenuList(Integer parentId, Integer status);
 
     /**
      * 根据ID获取菜单

+ 0 - 4
src/main/java/com/caimei365/manager/entity/SysMenu.java

@@ -28,10 +28,6 @@ public class SysMenu {
      * 图标
      */
     private String icon;
-    /**
-     * 菜单层级
-     */
-    private Integer level;
     /**
      * 父级菜单Id
      */

+ 7 - 2
src/main/java/com/caimei365/manager/service/SysUserService.java

@@ -25,12 +25,11 @@ public interface SysUserService {
     /**
      * 获取菜单列表
      * @param parentId 父级菜单Id
-     * @param level    菜单层级
      * @param status   状态:0启用,1停用
      * @param pageNum  页码
      * @param pageSize 每页大小
      */
-    ResponseJson<PaginationVo<SysMenu>> getMenuList(Integer parentId, Integer level, Integer status, int pageNum, int pageSize);
+    ResponseJson<PaginationVo<SysMenu>> getMenuList(Integer parentId, Integer status, int pageNum, int pageSize);
 
     /**
      * 根据ID获取菜单
@@ -42,6 +41,11 @@ public interface SysUserService {
      */
     ResponseJson<Void> updateMenu(Integer id, SysMenu menu);
 
+    /**
+     * 根据ID(可选择的)更新菜单字段
+     */
+    ResponseJson<Void> updateMenuSelective(Integer id, SysMenu menu);
+
     /**
      * 添加菜单
      */
@@ -67,4 +71,5 @@ public interface SysUserService {
     ResponseJson<SysUser> register(SysUser sysUser);
 
 
+
 }

+ 30 - 7
src/main/java/com/caimei365/manager/service/impl/SysUserServiceImpl.java

@@ -63,23 +63,20 @@ public class SysUserServiceImpl implements SysUserService {
      * 获取菜单列表
      *
      * @param parentId 父级菜单Id
-     * @param level    菜单层级
      * @param status   状态:0启用,1停用
      * @param pageNum  页码
      * @param pageSize 每页大小
      */
     @Override
-    public ResponseJson<PaginationVo<SysMenu>> getMenuList(Integer parentId, Integer level, Integer status, int pageNum, int pageSize) {
+    public ResponseJson<PaginationVo<SysMenu>> getMenuList(Integer parentId, Integer status, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        List<SysMenu> menus = sysUserDao.getMenuList(parentId, level, status);
+        List<SysMenu> menus = sysUserDao.getMenuList(parentId, status);
         PaginationVo<SysMenu> pageData = new PaginationVo<>(menus);
         return ResponseJson.success(pageData);
     }
 
     /**
      * 根据ID获取菜单
-     *
-     * @param id
      */
     @Override
     public ResponseJson<SysMenu> getMenu(Integer id) {
@@ -89,8 +86,6 @@ public class SysUserServiceImpl implements SysUserService {
 
     /**
      * 根据ID更新菜单
-     *
-     * @param id
      */
     @Override
     public ResponseJson<Void> updateMenu(Integer id, SysMenu menu) {
@@ -99,6 +94,34 @@ public class SysUserServiceImpl implements SysUserService {
         return ResponseJson.success();
     }
 
+    /**
+     * 根据ID(可选择的)更新菜单字段
+     */
+    @Override
+    public ResponseJson<Void> updateMenuSelective(Integer id, SysMenu menu) {
+        SysMenu dbMenu = sysUserDao.getMenu(id);
+        if (StringUtils.hasLength(menu.getTitle())){
+            dbMenu.setTitle(menu.getTitle());
+        }
+        if (StringUtils.hasLength(menu.getName())){
+            dbMenu.setName(menu.getName());
+        }
+        if (StringUtils.hasLength(menu.getIcon())){
+            dbMenu.setIcon(menu.getIcon());
+        }
+        if (null != menu.getParentId()){
+            dbMenu.setParentId(menu.getParentId());
+        }
+        if (null != menu.getSort()){
+            dbMenu.setSort(menu.getSort());
+        }
+        if (null != menu.getStatus()){
+            dbMenu.setStatus(menu.getStatus());
+        }
+        sysUserDao.updateMenu(dbMenu);
+        return ResponseJson.success();
+    }
+
     /**
      * 添加菜单
      *

+ 9 - 10
src/main/resources/mapper/SysUserDao.xml

@@ -21,30 +21,29 @@
         WHERE u.username=#{username}
     </select>
     <select id="getMenusByRoleIds" resultType="com.caimei365.manager.entity.SysMenu">
-        SELECT m.id, m.title , m.name, m.icon, m.level, m.parent_id AS parentId, m.status, m.sort, m.create_time AS createTime
+        SELECT m.id, m.title , m.name, m.icon, m.parent_id AS parentId, m.status, m.sort, m.create_time AS createTime
         FROM sys_menu m
                  LEFT JOIN sys_role_menu rm ON m.id = rm.menu_id
         WHERE m.del_flag = 0 AND m.status = 0 AND rm.role_id IN
         <foreach item="roleId" collection="roleIds" open="(" separator="," close=")">
             #{roleId}
         </foreach>
+        ORDER BY m.sort
     </select>
     <select id="getMenuList" resultType="com.caimei365.manager.entity.SysMenu">
-        SELECT m.id, m.title , m.name, m.icon, m.level, m.parent_id AS parentId, m.status, m.sort, m.create_time AS createTime
+        SELECT m.id, m.title , m.name, m.icon, m.parent_id AS parentId, m.status, m.sort, m.create_time AS createTime
         FROM sys_menu m
         WHERE m.del_flag = 0
-        <if test="parentId!= null and parentId != '' ">
+        <if test="parentId != null or parentId == 0">
             AND m.parent_id = #{parentId}
         </if>
-        <if test="level!= null and level != '' ">
-            AND m.level = #{level}
-        </if>
-        <if test="status!= null and status != '' ">
+        <if test="status != null or status == 0">
             AND m.status = #{status}
         </if>
+        ORDER BY m.sort
     </select>
     <select id="getMenu" resultType="com.caimei365.manager.entity.SysMenu">
-        SELECT m.id, m.title , m.name, m.icon, m.level, m.parent_id AS parentId, m.status, m.sort, m.create_time AS createTime
+        SELECT m.id, m.title , m.name, m.icon, m.parent_id AS parentId, m.status, m.sort, m.create_time AS createTime
         FROM sys_menu m
         WHERE m.id = #{id}
     </select>
@@ -56,7 +55,7 @@
         UPDATE sys_menu SET del_flag=1, update_time=NOW() WHERE id = #{id}
     </update>
     <insert id="insertMenu">
-        INSERT INTO sys_menu(title, name, icon, level, parent_id, status, sort, create_time)
-        VALUES (#{title}, #{name}, #{icon}, #{level}, #{parentId}, #{status}, #{sort}, NOW())
+        INSERT INTO sys_menu(title, name, icon, parent_id, status, sort, create_time)
+        VALUES (#{title}, #{name}, #{icon}, #{parentId}, #{status}, #{sort}, NOW())
     </insert>
 </mapper>