瀏覽代碼

修改新增表单生成菜单功能

Administrator 4 年之前
父節點
當前提交
c8daee6c46

+ 1 - 0
boman-api/boman-api-system/src/main/java/com/boman/system/api/RemoteSysMenuService.java

@@ -5,6 +5,7 @@ import com.boman.common.core.web.domain.AjaxResult;
 import com.boman.system.api.domain.SysMenu;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 

+ 1 - 0
boman-api/boman-api-system/src/main/java/com/boman/system/api/domain/SysMenu.java

@@ -1,6 +1,7 @@
 package com.boman.system.api.domain;
 
 import com.boman.common.core.web.domain.BaseEntity;
+import com.sun.javafx.beans.IDProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 

+ 2 - 0
boman-common/boman-common-core/src/main/java/com/boman/common/core/constant/Constants.java

@@ -1,5 +1,7 @@
 package com.boman.common.core.constant;
 
+import java.util.HashMap;
+
 /**
  * 通用常量信息
  * 

+ 1 - 1
boman-common/boman-common-core/src/main/java/com/boman/common/core/text/Convert.java

@@ -370,7 +370,7 @@ public class Convert
      * 转换为String数组<br>
      * 
      * @param split 分隔符
-     * @param split 被转换的值
+     * @param str 被转换的值
      * @return 结果
      */
     public static String[] toStrArray(String split, String str)

+ 49 - 0
boman-modules/boman-gen/src/main/java/com/boman/gen/domain/RoleEnum.java

@@ -0,0 +1,49 @@
+package com.boman.gen.domain;
+
+/**
+ * @author tjf
+ * @Date: 2021/04/22/15:16
+ */
+public enum RoleEnum {
+
+    A("A","新增"),
+    M("M","修改"),
+    D("D","删除"),
+    Q("Q","查询"),
+    S("S","提交"),
+    U("U","反提交"),
+    I("I","导入"),
+    E("E","导出");
+
+    private String role;
+    private String name;
+
+    RoleEnum(String role, String name) {
+        this.role = role;
+        this.name = name;
+    }
+
+    public String getRole() {
+        return role;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    /**
+     *
+     * @param role
+     * @return
+     */
+    public static String getValue(String role) {
+        if(null != role){
+            for(RoleEnum roleEnum : RoleEnum.values()){
+                if(role.equals(roleEnum.getRole())){
+                    return roleEnum.getName();
+                }
+            }
+        }
+        return null;
+    }
+}

+ 45 - 22
boman-modules/boman-gen/src/main/java/com/boman/gen/service/GenTableServiceImpl.java

@@ -7,18 +7,22 @@ import java.io.StringWriter;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.locks.Condition;
 import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
 import com.boman.common.core.constant.UserConstants;
+import com.boman.common.core.text.Convert;
 import com.boman.common.core.utils.DateUtils;
 import com.boman.common.core.web.domain.AjaxResult;
 import com.boman.common.log.enums.BusinessType;
+import com.boman.gen.domain.RoleEnum;
 import com.boman.gen.domain.TableSql;
 
 import com.boman.system.api.RemoteSysMenuService;
 import com.boman.system.api.domain.SysMenu;
+import io.swagger.models.auth.In;
 import org.apache.commons.io.IOUtils;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
@@ -88,10 +92,10 @@ public class GenTableServiceImpl implements IGenTableService {
             if (tablePrimaryKey != null && tablePrimaryKey.equals(columnId)) {
                 genTable.setTablePrimaryKeyName(column.getColumnName());
                 index++;
-            }else if(akColumn != null && akColumn.equals(columnId)){
+            } else if (akColumn != null && akColumn.equals(columnId)) {
                 genTable.setAkColumnName(column.getColumnName());
                 index++;
-            }else if(dkColumn != null && dkColumn.equals(columnId)){
+            } else if (dkColumn != null && dkColumn.equals(columnId)) {
                 genTable.setDkColumnName(column.getColumnName());
                 index++;
             }
@@ -174,6 +178,7 @@ public class GenTableServiceImpl implements IGenTableService {
     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) {
             for (GenTableColumn cenTableColumn : genTable.getColumns()) {
@@ -436,7 +441,7 @@ public class GenTableServiceImpl implements IGenTableService {
                 genTableMapper.updateGenTable(genTable);
             }
             //判断是否是菜单
-            isMenu(genTable);
+            isMenu(genTable, BusinessType.INSERT);
             //新建表时新增建表语句
             TableSql tableSql = new TableSql();
             tableSql.setTableId(genTable.getTableId());
@@ -526,35 +531,53 @@ public class GenTableServiceImpl implements IGenTableService {
      *
      * @param genTable
      */
-    public void isMenu(GenTable genTable) {
+    public void isMenu(GenTable genTable, BusinessType type) {
+
+        if (type.equals(BusinessType.UPDATE)) {
+            //先查询之前是否是菜单
+            GenTable genTableOld = genTableMapper.selectGenTableById(genTable.getTableId());
+            if (UserConstants.ISMENU.equals(genTableOld.getIsMenu())) {
+                return;
+            }
+        }
         String isMenu = genTable.getIsMenu();
         if (StringUtils.isNotBlank(isMenu) && isMenu.equals(UserConstants.ISMENU)) {
-            //先生成主菜单
+            //生成主菜单
             SysMenu sysMenu = new SysMenu();
             //表描述当菜单名称
             sysMenu.setMenuName(genTable.getTableComment());
-            sysMenu.setParentId(0L);
-            sysMenu.setOrderNum("1");
-            //路由地址
-            sysMenu.setPath(genTable.getBusinessName());
-            sysMenu.setComponent(genTable.getModuleName() + "/" + genTable.getTableComment() + "/index");
+            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");
-            remoteSysMenuService.add(sysMenu);
-            //是菜单,生成crud按钮
-            for (int i = 0; i < Constants.MENU_NAME.length; i++) {
-                String[] menuName = Constants.MENU_NAME;
-                SysMenu menu = new SysMenu();
-                menu.setParentId(sysMenu.getId());
-                menu.setMenuName(menuName[i]);
-                menu.setOrderNum(String.valueOf(i + 1));
-                menu.setMenuType("F");
-                menu.setIcon("#");
-                sysMenu.setCreateBy(SecurityUtils.getUsername());
-                remoteSysMenuService.add(menu);
+            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);
+            if (strings.length > 0) {
+                for (int i = 0; i < strings.length; i++) {
+                    SysMenu menu = new SysMenu();
+                    menu.setParentId(parentId);
+                    menu.setMenuName(RoleEnum.getValue(strings[i]));
+                    menu.setOrderNum(String.valueOf(i + 1));
+                    menu.setMenuType("F");
+                    menu.setIcon("#");
+                    sysMenu.setCreateBy(SecurityUtils.getUsername());
+                    remoteSysMenuService.add(menu);
+
+                }
             }
         }
     }

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

@@ -101,7 +101,7 @@ public class SysMenuController extends BaseController
             return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
         }
         menu.setCreateBy(SecurityUtils.getUsername());
-        return toAjax(menuService.insertMenu(menu));
+        return menuService.insertMenu(menu);
     }
 
     /**

+ 2 - 1
boman-modules/boman-system/src/main/java/com/boman/system/service/ISysMenuService.java

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Set;
 
 
+import com.boman.common.core.web.domain.AjaxResult;
 import com.boman.system.api.domain.SysMenu;
 import com.boman.system.domain.vo.RouterVo;
 import com.boman.system.domain.vo.TreeSelect;
@@ -110,7 +111,7 @@ public interface ISysMenuService
      * @param menu 菜单信息
      * @return 结果
      */
-    public int insertMenu(SysMenu menu);
+    public AjaxResult insertMenu(SysMenu menu);
 
     /**
      * 修改保存菜单信息

+ 7 - 2
boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysMenuServiceImpl.java

@@ -9,6 +9,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import com.boman.common.core.web.domain.AjaxResult;
 import com.boman.system.api.domain.SysMenu;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -271,9 +272,13 @@ public class SysMenuServiceImpl implements ISysMenuService
      * @return 结果
      */
     @Override
-    public int insertMenu(SysMenu menu)
+    public AjaxResult insertMenu(SysMenu menu)
     {
-        return menuMapper.insertMenu(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();
     }
 
     /**

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

@@ -148,7 +148,7 @@
 		where id = #{id}
 	</update>
 
-	<insert id="insertMenu" parameterType="SysMenu" useGeneratedKeys="true">
+	<insert id="insertMenu" parameterType="SysMenu" useGeneratedKeys="true" keyProperty="id">
 		insert into sys_menu(
 		<if test="parentId != null and parentId != 0">parent_id,</if>
 		<if test="menuName != null and menuName != ''">menu_name,</if>