Explorar el Código

fix 流程测试BUG

Administrator hace 4 años
padre
commit
90e0439135
Se han modificado 20 ficheros con 321 adiciones y 195 borrados
  1. 8 3
      boman-api/boman-api-system/src/main/java/com/boman/system/api/RemoteSysMenuService.java
  2. 15 3
      boman-api/boman-domain/src/main/java/com.boman.domain/GenTable.java
  3. 2 2
      boman-common/boman-common-redis/src/main/java/com/boman/common/redis/service/RedisService.java
  4. 126 50
      boman-modules/boman-gen/src/main/java/com/boman/gen/service/GenTableServiceImpl.java
  5. 28 0
      boman-modules/boman-system/src/main/java/com/boman/system/controller/SysMenuController.java
  6. 7 0
      boman-modules/boman-system/src/main/java/com/boman/system/mapper/SysMenuMapper.java
  7. 4 0
      boman-modules/boman-system/src/main/java/com/boman/system/service/ISysMenuService.java
  8. 91 126
      boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysMenuServiceImpl.java
  9. 7 0
      boman-modules/boman-system/src/main/resources/mapper/system/SysMenuMapper.xml
  10. 4 0
      boman-web-core/.rebel-remote.xml.bak
  11. 16 0
      boman-web-core/.rebel.xml.bak
  12. 2 1
      boman-web-core/src/main/java/com/boman/web/core/controller/CommonController.java
  13. 2 2
      boman-web-core/src/main/java/com/boman/web/core/mapper/StandardlyMapper.java
  14. 1 2
      boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java
  15. 1 1
      boman-web-core/src/main/java/com/boman/web/core/service/common/CommonServiceImpl.java
  16. 2 1
      boman-web-core/src/main/java/com/boman/web/core/service/common/ICommonService.java
  17. 1 1
      boman-web-core/src/main/java/com/boman/web/core/service/save/BaseSaveServiceImpl.java
  18. 1 1
      boman-web-core/src/main/java/com/boman/web/core/service/save/IBaseSaveService.java
  19. 1 0
      boman-web-core/src/main/java/com/boman/web/core/service/select/BaseSelectServiceImpl.java
  20. 2 2
      boman-web-core/src/main/java/com/boman/web/core/utils/IdUtils.java

+ 8 - 3
boman-api/boman-api-system/src/main/java/com/boman/system/api/RemoteSysMenuService.java

@@ -7,6 +7,8 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * @author tjf
  * @Date: 2021/04/13/9:53
@@ -29,16 +31,19 @@ public interface RemoteSysMenuService {
      * @param menu
      * @return
      */
-    @GetMapping("/menu/list")
-    public AjaxResult list(@Validated @RequestBody SysMenu menu);
+    @PostMapping("/menu/listAll")
+    public List<SysMenu> listAll(@Validated @RequestBody SysMenu menu);
 
     /**
      * 删除菜单
      * @param id
      * @return
      */
-    @DeleteMapping("/menu/{id}")
+    @DeleteMapping("/menu/remove/{id}")
     public AjaxResult remove(@PathVariable("id") Long id);
 
+    @PutMapping("/menu")
+    public AjaxResult edit(@Validated @RequestBody SysMenu menu);
+
 
 }

+ 15 - 3
boman-api/boman-domain/src/main/java/com.boman.domain/GenTable.java

@@ -15,7 +15,11 @@ public class GenTable extends BaseEntity
     public static final String Q = "Q";
 
     /** 编号 */
-    private Long Id;
+    private Long id;
+    /**
+     * 前端传来提示修改的状态 1:修改gen_table  2:修改gen_table_column
+     */
+    private String updateType;
 
     /** 表名称 */
 //    @NotBlank(message = "表名称不能为空")
@@ -176,6 +180,14 @@ public class GenTable extends BaseEntity
      */
     private Boolean isContainsBlob;
 
+    public String getUpdateType() {
+        return updateType;
+    }
+
+    public void setUpdateType(String updateType) {
+        this.updateType = updateType;
+    }
+
     public String getAkColumnName() {
         return akColumnName;
     }
@@ -305,11 +317,11 @@ public class GenTable extends BaseEntity
     }
 
     public Long getId() {
-        return Id;
+        return id;
     }
 
     public void setId(Long id) {
-        Id = id;
+        this.id = id;
     }
 
     public String getTableName()

+ 2 - 2
boman-common/boman-common-redis/src/main/java/com/boman/common/redis/service/RedisService.java

@@ -248,8 +248,8 @@ public class RedisService
      * @return long 增加以后的值
      */
 
-    public long increment(String key, long... increment) {
-        return redisTemplate.opsForValue().increment(key, ArrayUtils.isEmpty(increment) ? 1L : increment[0]);
+    public int increment(String key, long... increment) {
+         return Integer.parseInt(redisTemplate.opsForValue().increment(key, ArrayUtils.isEmpty(increment) ? 1 : increment[0]).toString());
     }
 
 }

+ 126 - 50
boman-modules/boman-gen/src/main/java/com/boman/gen/service/GenTableServiceImpl.java

@@ -1,11 +1,13 @@
 package com.boman.gen.service;
 
+import java.awt.*;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.StringWriter;
 import java.lang.reflect.Array;
 import java.util.*;
+import java.util.List;
 import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
@@ -47,6 +49,9 @@ import com.boman.gen.util.GenUtils;
 import com.boman.gen.util.VelocityInitializer;
 import com.boman.gen.util.VelocityUtils;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
 /**
  * 业务 服务层实现
  *
@@ -96,10 +101,12 @@ public class GenTableServiceImpl implements IGenTableService {
             if (tablePrimaryKey != null && tablePrimaryKey.equals(columnId)) {
                 genTable.setTablePrimaryKeyName(column.getColumnName());
                 index++;
-            }  if (akColumn != null && akColumn.equals(columnId)) {
+            }
+            if (akColumn != null && akColumn.equals(columnId)) {
                 genTable.setAkColumnName(column.getColumnName());
                 index++;
-            }  if (dkColumn != null && dkColumn.equals(columnId)) {
+            }
+            if (dkColumn != null && dkColumn.equals(columnId)) {
                 genTable.setDkColumnName(column.getColumnName());
                 index++;
             }
@@ -180,11 +187,14 @@ public class GenTableServiceImpl implements IGenTableService {
     @Override
     @Transactional
     public void updateGenTable(GenTable genTable) {
-        String options = JSON.toJSONString(genTable.getParams());
-        genTable.setOptions(options);
-        isMenu(genTable, BusinessType.UPDATE);
-        int row = genTableMapper.updateGenTable(genTable);
-        if (row > 0) {
+        String updateType = genTable.getUpdateType();
+        if ("1".equals(updateType)){
+            String options = JSON.toJSONString(genTable.getParams());
+            genTable.setOptions(options);
+            isMenu(genTable, BusinessType.UPDATE);
+            genTableMapper.updateGenTable(genTable);
+        }
+        if ("2".equals(updateType)){
             for (GenTableColumn cenTableColumn : genTable.getColumns()) {
                 tableColumnService.updateGenTableColumn(cenTableColumn);
             }
@@ -527,12 +537,15 @@ public class GenTableServiceImpl implements IGenTableService {
             genTableColumn.setSort(num + i);
             genTableColumn.setCreateBy("admin");
             genTableColumn.setCreateTime(DateUtils.getNowDate());
-            genTableColumn.setHrParentId(genTableColumnBaseInfo.getId());
+            genTableColumn.setHrParentId(genTableColumnLog.getId());
             genTableColumn.setMask("000000");
             if (i == 0) {
                 genTableColumn.setSort(1);
                 genTableColumn.setIsPk("1");
-                genTableColumn.setHrParentId(genTableColumnLog.getId());
+                genTableColumn.setHrParentId(genTableColumnBaseInfo.getId());
+            }
+            if ("is_del".equals(columnName[i]) ){
+                genTableColumn.setDefaultValue("N");
             }
             genTableColumnMapper.insertGenTableColumn(genTableColumn);
             //获得id字段的id
@@ -549,7 +562,7 @@ public class GenTableServiceImpl implements IGenTableService {
      * @param genTable
      */
     public void isMenu(GenTable genTable, BusinessType type) {
-
+        String tableName = genTable.getTableName();
         if (type.equals(BusinessType.UPDATE)) {
             //先查询之前是否是菜单
             GenTable genTableOld = genTableMapper.selectGenTableById(genTable.getId());
@@ -557,51 +570,114 @@ public class GenTableServiceImpl implements IGenTableService {
                 //在判断是否新增/减少了菜单权限
                 String menuRoleOld = genTableOld.getMenuRole();
                 String menuRole = genTable.getMenuRole();
-                return;
+                String[] strings = Convert.toStrArray("", menuRole.toUpperCase());
+                Set<String> set = new HashSet(Arrays.asList(strings));
+                Set<String> setTwo = new HashSet(Arrays.asList(strings));
+                String[] strArray = Convert.toStrArray("", menuRoleOld);
+                List<String> stringsOld = new ArrayList<>(Arrays.asList(strArray));
+                List<String> stringsOldTwo = new ArrayList<>(Arrays.asList(strArray));
+                SysMenu sysMenu = new SysMenu();
+                sysMenu.setSysTableName(tableName);
+                List<SysMenu> sysMenus = remoteSysMenuService.listAll(sysMenu);
+                //原先有,现在没有就删除
+                stringsOld.removeAll(set);
+                if (stringsOld.size() > 0) {
+                    for (String name : stringsOldTwo) {
+                        //获取到菜单名称
+                        String value = RoleEnum.getValue(name);
+                        for (SysMenu menu : sysMenus) {
+                            if (menu.getMenuName().equals(value)) {
+                                //删除
+                                remoteSysMenuService.remove(menu.getId());
+                            }
+                        }
+                    }
+                }
+                setTwo.removeAll(stringsOldTwo);
+                if (setTwo.size() > 0) {
+                    //获取parentId
+                    Long parentId = 0L;
+                    for (SysMenu menu : sysMenus) {
+                        if ("C".equals(menu.getMenuType())) {
+                            parentId = menu.getId();
+                            break;
+                        }
+                    }
+                    //现在有,原先没有,就判断是否有被隐藏停用的/否则新增
+                    for (int i = 0; i < setTwo.size(); i++) {
+                        SysMenu menu = new SysMenu();
+                        menu.setParentId(parentId);
+                        String value = RoleEnum.getValue(strings[i]);
+                        if (StringUtils.isNotBlank(value)) {
+                            for (SysMenu sysMenu1 : sysMenus) {
+                                if (value.equals(sysMenu1.getMenuName())) {
+                                    sysMenu1.setStatus("0");
+                                    sysMenu1.setVisible("0");
+                                    remoteSysMenuService.edit(sysMenu1);
+                                    break;
+                                }
+                            }
+                            menu.setMenuName(value);
+                            menu.setOrderNum(String.valueOf(i + 1));
+                            menu.setMenuType("F");
+                            menu.setIcon("#");
+                            //路由
+                            menu.setPath("#");
+                            menu.setCreateBy(SecurityUtils.getUsername());
+                            menu.setSysTableName(tableName);
+                            remoteSysMenuService.add(menu);
+                        }
+                    }
+                }
             }
         }
         String isMenu = genTable.getIsMenu();
         if (StringUtils.isNotBlank(isMenu) && isMenu.equals(UserConstants.ISMENU)) {
-            //生成主菜单
             SysMenu sysMenu = new SysMenu();
-            //表描述当菜单名称
-            sysMenu.setMenuName(genTable.getTableComment());
-            sysMenu.setParentId(2007L);
-            //路由地址(使用表名称)
-            sysMenu.setPath(genTable.getTableName());
-            //组件
-            sysMenu.setComponent("system/surface/index");
-            sysMenu.setMenuType("C");
-            sysMenu.setOrderNum("0");
-            sysMenu.setIcon("system");
-            sysMenu.setCreateBy(SecurityUtils.getUsername());
-            sysMenu.setSysTableName(genTable.getTableName());
-            sysMenu.setStatus("1");
-            AjaxResult add = remoteSysMenuService.add(sysMenu);
-            Long parentId = 0L;
-            if (add.size() > 2) {
-                String id = String.valueOf(add.get("data")) ;
-                parentId = Long.valueOf(id);
-            }
-            //获取菜单id
-            String menuRole = genTable.getMenuRole();
-            String[] strings = Convert.toStrArray("",menuRole);
-            Set set = new HashSet(Arrays.asList(strings));
-            strings = (String[]) set.toArray(new String[0]);
-            if (strings.length > 0) {
-                for (int i = 0; i < strings.length; i++) {
-                    SysMenu menu = new SysMenu();
-                    menu.setParentId(parentId);
-                    String value = RoleEnum.getValue(strings[i]);
-                    if (StringUtils.isNotBlank(value)){
-                        menu.setMenuName(value);
-                        menu.setOrderNum(String.valueOf(i + 1));
-                        menu.setMenuType("F");
-                        menu.setIcon("#");
-                        //路由
-                        menu.setPath("#");
-                        sysMenu.setCreateBy(SecurityUtils.getUsername());
-                        remoteSysMenuService.add(menu);
+            sysMenu.setSysTableName(tableName);
+            List<SysMenu> sysMenus = remoteSysMenuService.listAll(sysMenu);
+            //判断当前表名是否生成过菜单
+            if (sysMenus.size() == 0) {
+                //生成主菜单
+                //表描述当菜单名称
+                sysMenu.setMenuName(genTable.getTableComment());
+                sysMenu.setParentId(2007L);
+                //路由地址(使用表名称)
+                sysMenu.setPath(genTable.getTableName());
+                //组件
+                sysMenu.setComponent("system/surface/index");
+                sysMenu.setMenuType("C");
+                sysMenu.setOrderNum("0");
+                sysMenu.setIcon("system");
+                sysMenu.setCreateBy(SecurityUtils.getUsername());
+                sysMenu.setStatus("1");
+                AjaxResult add = remoteSysMenuService.add(sysMenu);
+                Long parentId = 0L;
+                if (add.size() > 2) {
+                    String id = String.valueOf(add.get("data"));
+                    parentId = Long.valueOf(id);
+                }
+                //获取菜单id
+                String menuRole = genTable.getMenuRole();
+                String[] strings = Convert.toStrArray("", menuRole);
+                Set set = new HashSet(Arrays.asList(strings));
+                strings = (String[]) set.toArray(new String[0]);
+                if (strings.length > 0) {
+                    for (int i = 0; i < strings.length; i++) {
+                        SysMenu menu = new SysMenu();
+                        menu.setParentId(parentId);
+                        String value = RoleEnum.getValue(strings[i]);
+                        if (StringUtils.isNotBlank(value)) {
+                            menu.setMenuName(value);
+                            menu.setOrderNum(String.valueOf(i + 1));
+                            menu.setMenuType("F");
+                            menu.setIcon("#");
+                            //路由
+                            menu.setPath("#");
+                            menu.setCreateBy(SecurityUtils.getUsername());
+                            menu.setSysTableName(tableName);
+                            remoteSysMenuService.add(menu);
+                        }
                     }
                 }
             }

+ 28 - 0
boman-modules/boman-system/src/main/java/com/boman/system/controller/SysMenuController.java

@@ -48,6 +48,15 @@ public class SysMenuController extends BaseController
         return AjaxResult.success(menus);
     }
 
+    /**
+     * 获取所有菜单列表
+     */
+    @PostMapping("/listAll")
+    public List<SysMenu> listAll(@RequestBody SysMenu menu)
+    {
+        return menuService.selectMenuListAll(menu);
+    }
+
     /**
      * 获取某人的所有菜单
      */
@@ -161,6 +170,25 @@ public class SysMenuController extends BaseController
         return toAjax(menuService.deleteMenuById(id));
     }
 
+    /**
+     * 逻辑删除菜单
+     */
+    @PreAuthorize(hasPermi = "system:menu:remove")
+    @Log(title = "菜单管理", businessType = BusinessType.DELETE)
+    @DeleteMapping("/remove/{id}")
+    public AjaxResult delete(@PathVariable("id") Long id)
+    {
+        if (menuService.hasChildById(id))
+        {
+            return AjaxResult.error("存在子菜单,不允许删除");
+        }
+        if (menuService.checkMenuExistRole(id))
+        {
+            return AjaxResult.error("菜单已分配,不允许删除");
+        }
+        return toAjax(menuService.removeMenuById(id));
+    }
+
     /**
      * 获取路由信息
      * 

+ 7 - 0
boman-modules/boman-system/src/main/java/com/boman/system/mapper/SysMenuMapper.java

@@ -107,6 +107,13 @@ public interface SysMenuMapper
      */
     public int deleteMenuById(Long id);
 
+    /**
+     * 逻辑删除
+     * @param id
+     * @return
+     */
+    public int updateMenuById(Long id);
+
     /**
      * 校验菜单名称是否唯一
      * 

+ 4 - 0
boman-modules/boman-system/src/main/java/com/boman/system/service/ISysMenuService.java

@@ -33,6 +33,8 @@ public interface ISysMenuService
      */
     public List<SysMenu> selectMenuList(SysMenu menu, Long userId);
 
+    public List<SysMenu> selectMenuListAll(SysMenu menu);
+
     /**
      * 根据用户ID查询权限
      * 
@@ -152,6 +154,8 @@ public interface ISysMenuService
      */
     public int deleteMenuById(Long id);
 
+    public int removeMenuById(Long id);
+
     /**
      * 校验菜单名称是否唯一
      * 

+ 91 - 126
boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysMenuServiceImpl.java

@@ -24,12 +24,11 @@ import com.boman.system.service.ISysMenuService;
 
 /**
  * 菜单 业务层处理
- * 
+ *
  * @author ruoyi
  */
 @Service
-public class SysMenuServiceImpl implements ISysMenuService
-{
+public class SysMenuServiceImpl implements ISysMenuService {
     public static final String PREMISSION_STRING = "perms[\"{0}\"]";
 
     @Autowired
@@ -43,54 +42,51 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据用户查询系统菜单列表
-     * 
+     *
      * @param userId 用户ID
      * @return 菜单列表
      */
     @Override
-    public List<SysMenu> selectMenuList(Long userId)
-    {
+    public List<SysMenu> selectMenuList(Long userId) {
         return selectMenuList(new SysMenu(), userId);
     }
 
     /**
      * 查询系统菜单列表
-     * 
+     *
      * @param menu 菜单信息
      * @return 菜单列表
      */
     @Override
-    public List<SysMenu> selectMenuList(SysMenu menu, Long userId)
-    {
+    public List<SysMenu> selectMenuList(SysMenu menu, Long userId) {
         List<SysMenu> menuList = null;
         // 管理员显示所有菜单信息
-        if (SysUser.isAdmin(userId))
-        {
+        if (SysUser.isAdmin(userId)) {
             menuList = menuMapper.selectMenuList(menu);
-        }
-        else
-        {
+        } else {
             menu.getParams().put("userId", userId);
             menuList = menuMapper.selectMenuListByUserId(menu);
         }
         return menuList;
     }
 
+    @Override
+    public List<SysMenu> selectMenuListAll(SysMenu menu) {
+        return menuMapper.selectMenuList(menu);
+    }
+
     /**
      * 根据用户ID查询权限
-     * 
+     *
      * @param id 用户ID
      * @return 权限列表
      */
     @Override
-    public Set<String> selectMenuPermsById(Long id)
-    {
+    public Set<String> selectMenuPermsById(Long id) {
         List<String> perms = menuMapper.selectMenuPermsById(id);
         Set<String> permsSet = new HashSet<>();
-        for (String perm : perms)
-        {
-            if (StringUtils.isNotEmpty(perm))
-            {
+        for (String perm : perms) {
+            if (StringUtils.isNotEmpty(perm)) {
                 permsSet.addAll(Arrays.asList(perm.trim().split(",")));
             }
         }
@@ -99,20 +95,16 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据用户ID查询菜单
-     * 
+     *
      * @param id 用户名称
      * @return 菜单列表
      */
     @Override
-    public List<SysMenu> selectMenuTreeById(Long id)
-    {
+    public List<SysMenu> selectMenuTreeById(Long id) {
         List<SysMenu> menus = null;
-        if (SecurityUtils.isAdmin(id))
-        {
+        if (SecurityUtils.isAdmin(id)) {
             menus = menuMapper.selectMenuTreeAll();
-        }
-        else
-        {
+        } else {
             menus = menuMapper.selectMenuTreeById(id);
         }
         return getChildPerms(menus, 0);
@@ -154,54 +146,48 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 根据角色ID查询菜单树信息
-     * 
+     *
      * @param roleId 角色ID
      * @return 选中菜单列表
      */
     @Override
-    public List<Integer> selectMenuListByRoleId(Long roleId)
-    {
+    public List<Integer> selectMenuListByRoleId(Long roleId) {
         SysRole role = roleMapper.selectRoleById(roleId);
         return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly());
     }
 
     /**
      * 构建前端路由所需要的菜单
-     * 
+     *
      * @param menus 菜单列表
      * @return 路由列表
      */
     @Override
-    public List<RouterVo> buildMenus(List<SysMenu> menus)
-    {
+    public List<RouterVo> buildMenus(List<SysMenu> menus) {
         List<RouterVo> routers = new LinkedList<RouterVo>();
-        for (SysMenu menu : menus)
-        {
+        for (SysMenu menu : menus) {
             RouterVo router = new RouterVo();
             router.setHidden("1".equals(menu.getVisible()));
             router.setName(getRouteName(menu));
             router.setPath(getRouterPath(menu));
             router.setComponent(getComponent(menu));
             router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache())));
-            if (menu.getSysTableName() != null){
+            if (menu.getSysTableName() != null) {
                 router.setSysTableName(menu.getSysTableName());
             }
             List<SysMenu> cMenus = menu.getChildren();
-            if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()))
-            {
+            if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) {
                 router.setAlwaysShow(true);
                 router.setRedirect("noRedirect");
                 router.setChildren(buildMenus(cMenus));
-            }
-            else if (isMeunFrame(menu))
-            {
+            } else if (isMeunFrame(menu)) {
                 List<RouterVo> childrenList = new ArrayList<RouterVo>();
                 RouterVo children = new RouterVo();
                 children.setPath(menu.getPath());
                 children.setComponent(menu.getComponent());
                 children.setName(StringUtils.capitalize(menu.getPath()));
                 children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache())));
-                if (menu.getSysTableName() != null){
+                if (menu.getSysTableName() != null) {
                     children.setSysTableName(menu.getSysTableName());
                 }
                 childrenList.add(children);
@@ -214,7 +200,7 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 构建前端所需要树结构
-     * 
+     *
      * @param menus 菜单列表
      * @return 树结构列表
      */
@@ -281,13 +267,12 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 构建前端所需要下拉树结构
-     * 
+     *
      * @param menus 菜单列表
      * @return 下拉树结构列表
      */
     @Override
-    public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus)
-    {
+    public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) {
         List<SysMenu> menuTrees = buildMenuTree(menus);
         return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
     }
@@ -299,103 +284,104 @@ public class SysMenuServiceImpl implements ISysMenuService
      * @return 下拉树结构列表
      */
     @Override
-    public List<TreeSelect> buildMenuTreeSelectNotAddLeafNode(List<SysMenu> menus)
-    {
+    public List<TreeSelect> buildMenuTreeSelectNotAddLeafNode(List<SysMenu> menus) {
         List<SysMenu> menuTrees = buildMenuTreeNotAddLeafNode(menus);
         return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
     }
 
     /**
      * 根据菜单ID查询信息
-     * 
+     *
      * @param id 菜单ID
      * @return 菜单信息
      */
     @Override
-    public SysMenu selectMenuById(Long id)
-    {
+    public SysMenu selectMenuById(Long id) {
         return menuMapper.selectMenuById(id);
     }
 
     /**
      * 是否存在菜单子节点
-     * 
+     *
      * @param id 菜单ID
      * @return 结果
      */
     @Override
-    public boolean hasChildById(Long id)
-    {
+    public boolean hasChildById(Long id) {
         int result = menuMapper.hasChildById(id);
         return result > 0 ? true : false;
     }
 
     /**
      * 查询菜单使用数量
-     * 
+     *
      * @param id 菜单ID
      * @return 结果
      */
     @Override
-    public boolean checkMenuExistRole(Long id)
-    {
+    public boolean checkMenuExistRole(Long id) {
         int result = roleMenuMapper.checkMenuExistRole(id);
         return result > 0 ? true : false;
     }
 
     /**
      * 新增保存菜单信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
     @Override
-    public AjaxResult insertMenu(SysMenu menu)
-    {
+    public AjaxResult insertMenu(SysMenu menu) {
         int i = menuMapper.insertMenu(menu);
-        if (menu.getId() != null){
-             return AjaxResult.success(Integer.parseInt(menu.getId().toString()));
-         }
-        return i > 0?AjaxResult.success():AjaxResult.error();
+        if (menu.getId() != null) {
+            return AjaxResult.success(Integer.parseInt(menu.getId().toString()));
+        }
+        return i > 0 ? AjaxResult.success() : AjaxResult.error();
     }
 
     /**
      * 修改保存菜单信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
     @Override
-    public int updateMenu(SysMenu menu)
-    {
+    public int updateMenu(SysMenu menu) {
         return menuMapper.updateMenu(menu);
     }
 
     /**
      * 删除菜单管理信息
-     * 
+     *
      * @param id 菜单ID
      * @return 结果
      */
     @Override
-    public int deleteMenuById(Long id)
-    {
+    public int deleteMenuById(Long id) {
         return menuMapper.deleteMenuById(id);
     }
 
+    /**
+     * 逻辑删除
+     * @param id
+     * @return
+     */
+    @Override
+    public int removeMenuById(Long id) {
+        return menuMapper.updateMenuById(id);
+    }
+
     /**
      * 校验菜单名称是否唯一
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
     @Override
-    public String checkMenuNameUnique(SysMenu menu)
-    {
+    public String checkMenuNameUnique(SysMenu menu) {
         Long id = StringUtils.isNull(menu.getId()) ? -1L : menu.getId();
         SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId());
-        if (StringUtils.isNotNull(info) && info.getId().longValue() != id.longValue())
-        {
+        if (StringUtils.isNotNull(info) && info.getId().longValue() != id.longValue()) {
             return UserConstants.NOT_UNIQUE;
         }
         return UserConstants.UNIQUE;
@@ -403,16 +389,14 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 获取路由名称
-     * 
+     *
      * @param menu 菜单信息
      * @return 路由名称
      */
-    public String getRouteName(SysMenu menu)
-    {
+    public String getRouteName(SysMenu menu) {
         String routerName = StringUtils.capitalize(menu.getPath());
         // 非外链并且是一级目录(类型为目录)
-        if (isMeunFrame(menu))
-        {
+        if (isMeunFrame(menu)) {
             routerName = StringUtils.EMPTY;
         }
         return routerName;
@@ -420,22 +404,19 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 获取路由地址
-     * 
+     *
      * @param menu 菜单信息
      * @return 路由地址
      */
-    public String getRouterPath(SysMenu menu)
-    {
+    public String getRouterPath(SysMenu menu) {
         String routerPath = menu.getPath();
         // 非外链并且是一级目录(类型为目录)
         if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType())
-                && UserConstants.NO_FRAME.equals(menu.getIsFrame()))
-        {
+                && UserConstants.NO_FRAME.equals(menu.getIsFrame())) {
             routerPath = "/" + menu.getPath();
         }
         // 非外链并且是一级目录(类型为菜单)
-        else if (isMeunFrame(menu))
-        {
+        else if (isMeunFrame(menu)) {
             routerPath = "/";
         }
         return routerPath;
@@ -443,19 +424,15 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 获取组件信息
-     * 
+     *
      * @param menu 菜单信息
      * @return 组件信息
      */
-    public String getComponent(SysMenu menu)
-    {
+    public String getComponent(SysMenu menu) {
         String component = UserConstants.LAYOUT;
-        if (StringUtils.isNotEmpty(menu.getComponent()) && !isMeunFrame(menu))
-        {
+        if (StringUtils.isNotEmpty(menu.getComponent()) && !isMeunFrame(menu)) {
             component = menu.getComponent();
-        }
-        else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu))
-        {
+        } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) {
             component = UserConstants.PARENT_VIEW;
         }
         return component;
@@ -463,43 +440,38 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 是否为菜单内部跳转
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
-    public boolean isMeunFrame(SysMenu menu)
-    {
+    public boolean isMeunFrame(SysMenu menu) {
         return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType())
                 && menu.getIsFrame().equals(UserConstants.NO_FRAME);
     }
 
     /**
      * 是否为parent_view组件
-     * 
+     *
      * @param menu 菜单信息
      * @return 结果
      */
-    public boolean isParentView(SysMenu menu)
-    {
+    public boolean isParentView(SysMenu menu) {
         return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType());
     }
 
     /**
      * 根据父节点的ID获取所有子节点
-     * 
-     * @param list 分类表
+     *
+     * @param list     分类表
      * @param parentId 传入的父节点ID
      * @return String
      */
-    public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId)
-    {
+    public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) {
         List<SysMenu> returnList = new ArrayList<SysMenu>();
-        for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext();)
-        {
+        for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext(); ) {
             SysMenu t = (SysMenu) iterator.next();
             // 一、根据传入的某个父节点ID,遍历该父节点的所有子节点
-            if (t.getParentId() == parentId)
-            {
+            if (t.getParentId() == parentId) {
                 recursionFn(list, t);
                 returnList.add(t);
             }
@@ -509,19 +481,16 @@ public class SysMenuServiceImpl implements ISysMenuService
 
     /**
      * 递归列表
-     * 
+     *
      * @param list
      * @param t
      */
-    private void recursionFn(List<SysMenu> list, SysMenu t)
-    {
+    private void recursionFn(List<SysMenu> list, SysMenu t) {
         // 得到子节点列表
         List<SysMenu> childList = getChildList(list, t);
         t.setChildren(childList);
-        for (SysMenu tChild : childList)
-        {
-            if (hasChild(list, tChild))
-            {
+        for (SysMenu tChild : childList) {
+            if (hasChild(list, tChild)) {
                 recursionFn(list, tChild);
             }
         }
@@ -530,15 +499,12 @@ public class SysMenuServiceImpl implements ISysMenuService
     /**
      * 得到子节点列表
      */
-    private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t)
-    {
+    private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) {
         List<SysMenu> tlist = new ArrayList<SysMenu>();
         Iterator<SysMenu> it = list.iterator();
-        while (it.hasNext())
-        {
+        while (it.hasNext()) {
             SysMenu n = (SysMenu) it.next();
-            if (n.getParentId().longValue() == t.getId().longValue())
-            {
+            if (n.getParentId().longValue() == t.getId().longValue()) {
                 tlist.add(n);
             }
         }
@@ -548,8 +514,7 @@ public class SysMenuServiceImpl implements ISysMenuService
     /**
      * 判断是否有子节点
      */
-    private boolean hasChild(List<SysMenu> list, SysMenu t)
-    {
+    private boolean hasChild(List<SysMenu> list, SysMenu t) {
         return getChildList(list, t).size() > 0;
     }
 }

+ 7 - 0
boman-modules/boman-system/src/main/resources/mapper/system/SysMenuMapper.xml

@@ -47,6 +47,9 @@
 			<if test="status != null and status != ''">
 				AND status = #{status}
 			</if>
+			<if test="sysTableName != null and sysTableName != ''">
+				AND sys_table_name = #{sysTableName}
+			</if>
 		</where>
 		order by parent_id, order_num
 	</select>
@@ -197,4 +200,8 @@
 	    delete from sys_menu where id = #{id}
 	</delete>
 
+	<update id="updateMenuById" parameterType="Long">
+	    update  sys_menu  set status = '1', visible = '1'  where id = #{id}
+	</update>
+
 </mapper> 

+ 4 - 0
boman-web-core/.rebel-remote.xml.bak

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rebel-remote xmlns="http://www.zeroturnaround.com/rebel/remote">
+    <id>com.boman.boman-web-core</id>
+</rebel-remote>

+ 16 - 0
boman-web-core/.rebel.xml.bak

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  This is the JRebel configuration file. It maps the running application to your IDE workspace, enabling JRebel reloading for this project.
+  Refer to https://manuals.jrebel.com/jrebel/standalone/config.html for more information.
+-->
+<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_3.xsd">
+
+	<id>boman-modules-system</id>
+
+	<classpath>
+		<dir name="E:/boman-framwork/boman-web-core/target/classes">
+		</dir>
+	</classpath>
+
+</application>

+ 2 - 1
boman-web-core/src/main/java/com/boman/web/core/controller/CommonController.java

@@ -51,7 +51,8 @@ public class CommonController {
      */
     @GetMapping("tableName/{tableName}/pkName/{pkName}")
     public Long getMaxId(@PathVariable("tableName") String tableName, @PathVariable("pkName") String pkName) {
-        return commonService.getMaxId(tableName, pkName);
+        Integer maxId = commonService.getMaxId(tableName, pkName);
+        return Long.valueOf(maxId.toString());
     }
 
 }

+ 2 - 2
boman-web-core/src/main/java/com/boman/web/core/mapper/StandardlyMapper.java

@@ -94,8 +94,8 @@ public interface StandardlyMapper {
     @Select("select id from ${tableName} where ${akColumnName} = #{akColumnValue}")
     Long selectIdByAkColumn(@Param("tableName") String tableName, @Param("akColumnName") String akColumnName, @Param("akColumnValue") String akColumnValue);
 
-    @Select("select max(${pkName}) from ${tableName}")
-    Long selectMaxId(@Param("tableName") String tableName, @Param("pkName") String pkName);
+    @Select("select ifnull(max(${pkName}),0) from ${tableName}")
+    int selectMaxId(@Param("tableName") String tableName, @Param("pkName") String pkName);
 
     /**
      * 功能描述: 根据id查所有

+ 1 - 2
boman-web-core/src/main/java/com/boman/web/core/service/TableServiceCmdService.java

@@ -94,7 +94,7 @@ public class TableServiceCmdService {
 
         // 新增
         if (ActionType.INSERT.equals(context.getActionType())) {
-            Long maxId = IdUtils.getMaxId(dto.getTable(), pkName);
+            Integer maxId = IdUtils.getMaxId(dto.getTable(), pkName);
             RowResult rowResult = saveService.insertRow(context, maxId);
             if (RowResult.checkSuccess(rowResult)) {
                 LOGGER.info("保存成功,封装到数据库的数据为: {}", JSON.toJSONString(rowResult.getData()));
@@ -208,7 +208,6 @@ public class TableServiceCmdService {
      */
     public AjaxResult queryList(FormDataDto dto) {
         requireNonNull(dto.getTable(), "tableName = [" + dto.getTable() + "] 此表不存在");
-
         GenTable genTable = getTableFromRedisByTableName(RedisKey.TABLE_INFO, dto.getTable());
         JSONObject fixedData = ifNullSetEmpty(dto.getFixedData());
         List<GenTableColumn> columns = genTable.getColumns();

+ 1 - 1
boman-web-core/src/main/java/com/boman/web/core/service/common/CommonServiceImpl.java

@@ -60,7 +60,7 @@ public class CommonServiceImpl implements ICommonService {
     }
 
     @Override
-    public Long getMaxId(String tableName, String pkName) {
+    public Integer getMaxId(String tableName, String pkName) {
         return IdUtils.getMaxId(tableName, pkName);
     }
 }

+ 2 - 1
boman-web-core/src/main/java/com/boman/web/core/service/common/ICommonService.java

@@ -1,6 +1,7 @@
 package com.boman.web.core.service.common;
 
 import com.alibaba.fastjson.JSONObject;
+import io.swagger.models.auth.In;
 
 import java.util.List;
 
@@ -29,5 +30,5 @@ public interface ICommonService {
      */
     List<JSONObject> getByMap(String tableName, JSONObject condition);
 
-    Long getMaxId(String tableName, String pkName);
+    Integer getMaxId(String tableName, String pkName);
 }

+ 1 - 1
boman-web-core/src/main/java/com/boman/web/core/service/save/BaseSaveServiceImpl.java

@@ -44,7 +44,7 @@ public class BaseSaveServiceImpl implements IBaseSaveService {
      * @return com.boman.system.common.RowResult
      */
     @Override
-    public RowResult insertRow(TableContext context, Long maxId) {
+    public RowResult insertRow(TableContext context, Integer maxId) {
         List<GenTableColumn> columns = context.getColumns();
         JSONObject commitData = context.getCommitData();
         ColumnUtils.packUpdateByAndTime(columns, commitData, new Timestamp(System.currentTimeMillis()), true);

+ 1 - 1
boman-web-core/src/main/java/com/boman/web/core/service/save/IBaseSaveService.java

@@ -19,6 +19,6 @@ public interface IBaseSaveService {
      * @param maxId   最大的SEQ
      * @return com.boman.system.common.RowResult
      */
-    RowResult insertRow(TableContext context, Long maxId);
+    RowResult insertRow(TableContext context, Integer maxId);
 
 }

+ 1 - 0
boman-web-core/src/main/java/com/boman/web/core/service/select/BaseSelectServiceImpl.java

@@ -100,6 +100,7 @@ public class BaseSelectServiceImpl implements IBaseSelectService {
     @Override
     public int countByCondition(String tableName, JSONObject condition, JSONObject packCondition) {
         requireNonNull(tableName, "表名为空");
+
         return mapper.countByCondition(tableName, condition, packCondition);
     }
 

+ 2 - 2
boman-web-core/src/main/java/com/boman/web/core/utils/IdUtils.java

@@ -21,7 +21,7 @@ import static com.boman.common.core.utils.obj.ObjectUtils.requireNonNull;
 public class IdUtils {
 
 
-    public static Long getMaxId(String tableName, String pkName) {
+    public static int getMaxId(String tableName, String pkName) {
         RedisService redisService = SpringUtils.getBean(RedisService.class);
         String sequencesKey = RedisKey.SEQ + tableName.toUpperCase();
         boolean isExist = redisService.exists(sequencesKey);
@@ -31,7 +31,7 @@ public class IdUtils {
 
         // 查数据库
         StandardlyMapper mapper = SpringUtils.getBean(StandardlyMapper.class);
-        long maxId = mapper.selectMaxId(tableName, pkName);
+        int maxId = mapper.selectMaxId(tableName, pkName);
         if (maxId <= 0) {
             maxId = 1;
             redisService.setCacheObject(sequencesKey, maxId);