ソースを参照

可以启动成功

xujunwei 5 ヶ月 前
コミット
490b69e815
24 ファイル変更4 行追加2301 行削除
  1. 1 0
      src/main/java/com/mrxu/admin/MainController.java
  2. 0 115
      src/main/java/com/mrxu/admin/generator/InitTestDate.java
  3. 0 426
      src/main/java/com/mrxu/admin/generator/Main.java
  4. 0 488
      src/main/java/com/mrxu/admin/generator/MainNew.java
  5. 0 109
      src/main/java/com/mrxu/admin/generator/ResultBuilder.java
  6. 0 45
      src/main/java/com/mrxu/admin/generator/template/api.ftl
  7. 0 88
      src/main/java/com/mrxu/admin/generator/template/controller.ftl
  8. 0 20
      src/main/java/com/mrxu/admin/generator/template/dto.ftl
  9. 0 80
      src/main/java/com/mrxu/admin/generator/template/entity.ftl
  10. 0 56
      src/main/java/com/mrxu/admin/generator/template/iapi.ftl
  11. 0 257
      src/main/java/com/mrxu/admin/generator/template/index.ftl
  12. 0 20
      src/main/java/com/mrxu/admin/generator/template/mapperJava.ftl
  13. 0 32
      src/main/java/com/mrxu/admin/generator/template/mapperXml.ftl
  14. 0 52
      src/main/java/com/mrxu/admin/generator/template/newApi.js
  15. 0 76
      src/main/java/com/mrxu/admin/generator/template/newController.ftl
  16. 0 138
      src/main/java/com/mrxu/admin/generator/template/newEdit.vue
  17. 0 159
      src/main/java/com/mrxu/admin/generator/template/newIndex.vue
  18. 0 47
      src/main/java/com/mrxu/admin/generator/template/newSearch.vue
  19. 0 25
      src/main/java/com/mrxu/admin/generator/template/service.ftl
  20. 2 2
      src/main/java/com/mrxu/admin/shiro/UserRealm.java
  21. 0 60
      src/main/java/com/mrxu/base/entity/OperateLog.java
  22. 0 2
      src/main/java/com/mrxu/base/entity/SysUser.java
  23. 1 1
      src/main/resources/application-dev.yml
  24. 0 3
      src/main/resources/templates/index.html

+ 1 - 0
src/main/java/com/mrxu/admin/MainController.java

@@ -83,6 +83,7 @@ public class MainController extends AdminBaseController implements ErrorControll
         model.addAttribute("menus",menus);
 
         JSONObject tenant = new JSONObject();
+        tenant.put("name","yolo训练");
         model.addAttribute("tenant",tenant);
         return "index.html";
     }

+ 0 - 115
src/main/java/com/mrxu/admin/generator/InitTestDate.java

@@ -1,115 +0,0 @@
-package com.mrxu.admin.generator;
-
-import com.alibaba.fastjson.JSONObject;
-import com.mrxu.framework.common.util.DateFunc;
-import com.mrxu.framework.common.util.MrxuId;
-
-import java.sql.*;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Random;
-
-public class InitTestDate {
-
-    public static void main(String[] args) {
-        try {
-            initMember();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private static void initMember() throws Exception {
-        String url = "jdbc:mysql://localhost:3306/room_user?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false";
-        String sql = "SELECT * FROM `user`";
-        Connection con = DriverManager.getConnection(url, "root", "123456");
-        Statement st = DriverManager.getConnection("jdbc:mysql://119.29.195.220:3306/mrxu_crm?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false", "root", "xjw@zzt").createStatement();
-        for(int i=0;i<1000;i++) {
-            ResultSet rs = con.createStatement().executeQuery(sql+ " limit "+i*10000+",10000");
-            List<HashMap<String, Object>> list = ResultBuilder.build(rs);
-            insertOnePage(st,list);
-            System.out.println("已执行"+(i+1)+"页");
-        }
-        con.close();
-    }
-
-    private static void insertOnePage(Statement st,List<HashMap<String, Object>> list) throws SQLException {
-        StringBuilder insertSql = new StringBuilder("insert into member_base " +
-                "(tenant_id,dept_id,owner,name,level_id,source_id,industry_id,member_id,mobile,address,create_time) values ");
-        for(int i=0 ;i<list.size();i++) {
-            HashMap<String, Object> map = list.get(i);
-            if(i != 0) {
-                insertSql.append(",");
-            }
-            insertSql.append("('6001'");// tenant_id
-            insertSql.append(",").append(getRandDeptId()); // dept_id
-            insertSql.append(",'").append("admin").append("'");; // owner
-            if(map.get("name") != null) {
-                insertSql.append(",'").append(map.get("name").toString().replace("'","")).append("'"); // name
-            }
-            else {
-                insertSql.append(",'unknow'"); // name
-            }
-
-            insertSql.append(",").append(getLevelId());; // level_id
-            insertSql.append(",").append(getSourceId());; // source_id
-            insertSql.append(",").append(getRandIndustryId());; // industry_id
-            insertSql.append(",'").append(MrxuId.getMemberId()).append("'");; // level_id
-            if(map.get("mobile") != null && map.get("mobile").toString().length() > 11) {
-                insertSql.append(",'").append(map.get("mobile").toString().substring(0,11)).append("'");; // mobile
-            }
-            else {
-                insertSql.append(",''");
-            }
-            if(map.get("address") != null) {
-                insertSql.append(",'").append(map.get("address").toString().replace("'","")).append("'");; // address
-            }
-            else {
-                insertSql.append(",''");; // address
-            }
-
-            if(map.get("version") == null || "null".equals(map.get("version"))) {
-                insertSql.append(",'"+ DateFunc.getNow() +"'");
-            }
-            else {
-                insertSql.append(",'").append(map.get("version")).append("'");; // address
-            }
-            insertSql.append(")");
-        }
-        try {
-
-            st.execute(insertSql.toString());
-        }catch (Exception e) {
-            System.out.println("error:"+insertSql);
-        }
-    }
-
-    private static int getRandDeptId() {
-        int num = (int)(Math.random()*5);
-        return num + 4;
-    }
-
-    private static int getLevelId() {
-        int num = (int)(Math.random()*3);
-        return num + 1;
-    }
-
-    private static int getRandIndustryId() {
-        int num = (int)(Math.random()*6);
-        return num + 1;
-    }
-
-    private static int getSourceId() {
-        int num = (int)(Math.random()*6);
-        return num + 1;
-    }
-
-    public static void main1(String[] args) {
-        for(int i=0;i<100;i++) {
-            System.out.println(getRandDeptId());
-        }
-    }
-
-
-
-}

+ 0 - 426
src/main/java/com/mrxu/admin/generator/Main.java

@@ -1,426 +0,0 @@
-package com.mrxu.admin.generator;
-
-import freemarker.template.Configuration;
-import freemarker.template.Template;
-import org.apache.ibatis.type.JdbcType;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.Writer;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class Main {
-    private static final String modelName = "yolo";// 模块名
-    private static final String menuName = "train";
-    private static final String modelCaption = "训练模型";
-    private static final String dbName = "mrxu_all_v2";
-    private static final String tableName = "yolo_train";
-
-    private static final String url = "jdbc:mysql://110.42.247.201:3306/mrxu_all_v2";
-    private static final String user = "root";
-    private static final String pass = "xjw123";
-    private static final Map<String, Object> root = new HashMap<>();
-
-    private static String workSpace = null;//本地工作目录
-    private static Configuration configuration;
-
-    public static void main(String[] args) throws Exception {
-        workSpace = Main.class.getResource("").getFile();
-        workSpace = workSpace.substring(0, workSpace.indexOf("mrxu-manager/target/classes"));
-        configuration = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
-        configuration.setDirectoryForTemplateLoading(new File(workSpace + "/mrxu-manager/src/main/java/com/mrxu/admin/generator/template/"));
-        // 关闭默认的数字格式化,即不添加千位分隔符
-        configuration.setNumberFormat("#");
-
-        root.put("modelName", modelName);
-        root.put("modelClassName", Character.toUpperCase(modelName.charAt(0)) + modelName.substring(1));
-        root.put("modelCaption", modelCaption);
-        root.put("tableName", tableName);
-        String beanName = ResultBuilder.lineToHump(tableName);
-        beanName = Character.toUpperCase(beanName.charAt(0)) + beanName.substring(1);
-        root.put("className", beanName);
-        root.put("beanName", ResultBuilder.lineToHump(tableName));
-
-        root.put("menuClassName", Character.toUpperCase(menuName.charAt(0)) + menuName.substring(1));
-        root.put("menuName", menuName);
-
-        String sql = "select column_name,column_comment,is_nullable,data_type,character_maximum_length as char_length,numeric_precision as num_length from information_schema.columns  where table_schema='" + dbName + "' and table_name='" + tableName + "' order by ordinal_position asc ";
-        Connection con = DriverManager.getConnection(url, user, pass);
-        ResultSet rs = con.createStatement().executeQuery(sql);
-        List<HashMap<String, Object>> list = ResultBuilder.build(rs);
-        root.put("columnList", lineToHump(list));
-        con.close();
-
-        initMenu();
-
-        createEntity();
-        createDto();
-        createMapperXml();
-        createMapperJava();
-        createService();
-        createController();
-        createIndex();
-
-        System.out.println("http://localhost:5080/" + modelName + "/" + menuName + "/index.html");
-    }
-
-    private static void initMenu() throws Exception {
-        String path = "/" + modelName + "/" + menuName + "/index.html";
-        String url = "jdbc:mysql://110.42.247.201:3306/mrxu_all_v2";
-        String sql = "select id from sys_menu where path = '" + path + "'";
-        Connection con = DriverManager.getConnection(url, user, pass);
-        ResultSet rs = con.createStatement().executeQuery(sql);
-        List<HashMap<String, Object>> list = ResultBuilder.build(rs);
-        if (list.size() == 0) {
-            String insertSql = "insert into sys_menu (parent_id,name,path,authority,type,create_person) " +
-                    "values (63,'" + modelCaption + "','" + path + "','" + modelName + ":" + menuName + ":read',1,'system')";
-            con.createStatement().execute(insertSql);
-            rs = con.createStatement().executeQuery(sql);
-            list = ResultBuilder.build(rs);
-            Integer id = (Integer) list.get(0).get("id");
-
-            insertSql = "insert into sys_menu (parent_id,name,authority,type,create_person) " +
-                    "values (" + id + ",'查看','" + modelName + ":" + menuName + ":read',2,'system')";
-            con.createStatement().execute(insertSql);
-
-            insertSql = "insert into sys_menu (parent_id,name,authority,type,create_person) " +
-                    "values (" + id + ",'编辑','" + modelName + ":" + menuName + ":update', 2, 'system')";
-            con.createStatement().execute(insertSql);
-
-            insertSql = "insert into sys_menu (parent_id,name,authority,type,create_person) " +
-                    "values (" + id + ",'删除','" + modelName + ":" + menuName + ":remove',2,'system')";
-            con.createStatement().execute(insertSql);
-
-        }
-        con.close();
-    }
-
-    private static String getMybatisDataType(String type) {
-        if ("bigint".equals(type)) {
-            return JdbcType.BIGINT.name();
-        }
-        if ("binary".equals(type)) {//未知
-            return JdbcType.BINARY.name();
-        }
-        if ("bit".equals(type)) {
-            return JdbcType.BIT.name();
-        }
-        if ("blob".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("char".equals(type)) {
-            return JdbcType.CHAR.name();
-        }
-        if ("bigint".equals(type)) {
-            return JdbcType.BIGINT.name();
-        }
-        if ("date".equals(type)) {
-            return JdbcType.DATE.name();
-        }
-        if ("datetime".equals(type)) {
-            return JdbcType.TIMESTAMP.name();
-        }
-        if ("decimal".equals(type)) {
-            return JdbcType.DECIMAL.name();
-        }
-        if ("double".equals(type)) {
-            return JdbcType.DOUBLE.name();
-        }
-        if ("enum".equals(type)) {
-            //return JdbcType.ENUM.name();
-        }
-        if ("float".equals(type)) {
-            return JdbcType.FLOAT.name();
-        }
-        if ("geometry".equals(type)) {
-            //return JdbcType..name();
-        }
-        if ("geometrycollection".equals(type)) {
-            return JdbcType.BIGINT.name();
-        }
-        if ("int".equals(type)) {
-            return JdbcType.INTEGER.name();
-        }
-        if ("integer".equals(type)) {
-            return JdbcType.INTEGER.name();
-        }
-        if ("linestring".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("longblob".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("longtext".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("mediumblob".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("mediumint".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("mediumtext".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("multilinestring".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("multipoint".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("multipolygon".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("numeric".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("point".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("polygon".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("real".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("set".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("smallint".equals(type)) {
-            return JdbcType.SMALLINT.name();
-        }
-        if ("text".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("time".equals(type)) {
-            return JdbcType.TIME.name();
-        }
-        if ("timestamp".equals(type)) {
-            return JdbcType.TIMESTAMP.name();
-        }
-
-        if ("tinyblob".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("tinyint".equals(type)) {
-            return JdbcType.TINYINT.name();
-        }
-        if ("tinytext".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("varbinary".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-
-        if ("varchar".equals(type)) {
-            return JdbcType.VARCHAR.name();
-        }
-        if ("year".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        throw new RuntimeException("不支持数据类型:" + type);
-    }
-
-    private static void createIndex() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/resources/templates/" + root.get("modelName") + "/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("menuName") + ".html");
-        // 加载模板文件
-        Template template = configuration.getTemplate("index.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    /**
-     * 字段名字  转换
-     *
-     * @param list
-     * @return
-     */
-    private static List<HashMap<String, Object>> lineToHump(List<HashMap<String, Object>> list) {
-        boolean hasProvince = false;
-        boolean hasCity = false;
-        boolean hasDistrict = false;
-        for (int i = 0; i < list.size(); i++) {
-            HashMap<String, Object> temp = list.get(i);
-            temp.put("column_name_org", temp.get("column_name"));
-            temp.put("column_name", ResultBuilder.lineToHump(temp.get("column_name").toString()));
-
-            temp.put("mybatis_data_type", getMybatisDataType(temp.get("data_type").toString()));
-
-            if ("province".equals(temp.get("column_name"))) {
-                hasProvince = true;
-            } else if ("city".equals(temp.get("column_name"))) {
-                hasCity = true;
-            } else if ("district".equals(temp.get("column_name"))) {
-                hasDistrict = true;
-            }
-        }
-        root.put("hasPlace", hasProvince && hasCity && hasDistrict);
-
-        return list;
-    }
-
-    /**
-     * 生成controller代码
-     */
-    private static void createController() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/admin/controller/" + root.get("modelName") + "/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Controller.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("controller.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-
-        System.out.println("代码生成完成 !!!!!");
-    }
-
-    /**
-     * 生成service api接口代码
-     */
-    private static void createIapi() throws Exception {
-        String path = workSpace + "/mrxu-" + root.get("modelName") + "/" + root.get("modelName") + "-sdk/src/main/java/com/mrxu/" + root.get("modelName") + "/api/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + "I" + root.get("className") + "Api.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("iapi.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    /**
-     * 生成service api接口代码
-     */
-    private static void createEntity() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/entity/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + ".java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("entity.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    /**
-     * 生成dto接口代码
-     */
-    private static void createDto() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/query/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Dto.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("dto.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    /**
-     * 生成api接口实现代码
-     */
-    private static void createApi() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/api/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Api.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("api.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    private static void createService() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/service/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Service.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("service.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    private static void createMapperJava() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/mapper/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Mapper.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("mapperJava.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    private static void createMapperXml() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/resources/mapper/" + root.get("modelName") + "/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Mapper.xml");
-        // 加载模板文件
-        Template template = configuration.getTemplate("mapperXml.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-}
-
-

+ 0 - 488
src/main/java/com/mrxu/admin/generator/MainNew.java

@@ -1,488 +0,0 @@
-package com.mrxu.admin.generator;
-
-import freemarker.template.Configuration;
-import freemarker.template.Template;
-import org.apache.ibatis.type.JdbcType;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.Writer;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.ResultSet;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class MainNew {
-    private static final String modelName = "flow";// 模块名
-    private static final String menuName = "apiSupplier";
-    private static final String modelCaption = "服务供应商";
-    private static final String dbName = "mrxu_all_v2";
-    private static final String tableName = "flow_api_supplier";
-
-    private static final String url = "jdbc:mysql://110.42.247.201:3306/mrxu_all_v2";
-    private static final String user = "root";
-    private static final String pass = "xjw123";
-    private static final Map<String, Object> root = new HashMap<>();
-
-    private static String workSpace = null;//本地工作目录
-    private static Configuration configuration;
-
-    public static void main(String[] args) throws Exception {
-        workSpace = MainNew.class.getResource("").getFile();
-        workSpace = workSpace.substring(0, workSpace.indexOf("mrxu-manager/target/classes"));
-        configuration = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
-        configuration.setDirectoryForTemplateLoading(new File(workSpace + "/mrxu-manager/src/main/java/com/mrxu/admin/generator/template/"));
-        // 关闭默认的数字格式化,即不添加千位分隔符
-        configuration.setNumberFormat("#");
-
-        root.put("modelName", modelName);
-        root.put("modelClassName", Character.toUpperCase(modelName.charAt(0)) + modelName.substring(1));
-        root.put("modelCaption", modelCaption);
-        root.put("tableName", tableName);
-        String beanName = ResultBuilder.lineToHump(tableName);
-        beanName = Character.toUpperCase(beanName.charAt(0)) + beanName.substring(1);
-        root.put("className", beanName);
-        root.put("beanName", ResultBuilder.lineToHump(tableName));
-
-        root.put("menuClassName", Character.toUpperCase(menuName.charAt(0)) + menuName.substring(1));
-        root.put("menuName", menuName);
-
-        String sql = "select column_name,column_comment,is_nullable,data_type,character_maximum_length as char_length,numeric_precision as num_length from information_schema.columns  where table_schema='" + dbName + "' and table_name='" + tableName + "' order by ordinal_position asc ";
-        Connection con = DriverManager.getConnection(url, user, pass);
-        ResultSet rs = con.createStatement().executeQuery(sql);
-        List<HashMap<String, Object>> list = ResultBuilder.build(rs);
-        root.put("columnList", lineToHump(list));
-        con.close();
-
-        initMenu();
-        createEntity();
-        createDto();
-        createMapperXml();
-        createMapperJava();
-        createService();
-        createController();
-        createIndex();
-        createSearch();
-        createEdit();
-        createApiJs();
-
-        System.out.println("http://localhost:5080/" + modelName + "/" + menuName + "/index.html");
-    }
-
-    private static void initMenu() throws Exception {
-        String path = "/" + modelName + "/" + menuName;
-        String url = "jdbc:mysql://110.42.247.201:3306/mrxu_all_v2";
-        String sql = "select id from sys_menu where new_path = '" + path + "'";
-        Connection con = DriverManager.getConnection(url, user, pass);
-        ResultSet rs = con.createStatement().executeQuery(sql);
-        List<HashMap<String, Object>> list = ResultBuilder.build(rs);
-        if (list.size() == 0) {
-            String insertSql = "insert into sys_menu (parent_id,new_open_type,for_front,name,new_path,new_component,authority,type,create_person) " +
-                    "values (63,0,'newFront','" + modelCaption + "','" + path + "','" + path + "','" + modelName + ":" + menuName + ":read',1,'system')";
-            con.createStatement().execute(insertSql);
-            rs = con.createStatement().executeQuery(sql);
-            list = ResultBuilder.build(rs);
-            Integer id = (Integer) list.get(0).get("id");
-
-            insertSql = "insert into sys_menu (parent_id,for_front,name,authority,type,create_person) " +
-                    "values (" + id + ",'newFront','查看','" + modelName + ":" + menuName + ":read',2,'system')";
-            con.createStatement().execute(insertSql);
-
-            insertSql = "insert into sys_menu (parent_id,for_front,name,authority,type,create_person) " +
-                    "values (" + id + ",'newFront','编辑','" + modelName + ":" + menuName + ":update', 2, 'system')";
-            con.createStatement().execute(insertSql);
-
-            insertSql = "insert into sys_menu (parent_id,for_front,name,authority,type,create_person) " +
-                    "values (" + id + ",'newFront','删除','" + modelName + ":" + menuName + ":remove',2,'system')";
-            con.createStatement().execute(insertSql);
-
-        }
-        con.close();
-    }
-
-    private static String getMybatisDataType(String type) {
-        if ("bigint".equals(type)) {
-            return JdbcType.BIGINT.name();
-        }
-        if ("binary".equals(type)) {//未知
-            return JdbcType.BINARY.name();
-        }
-        if ("bit".equals(type)) {
-            return JdbcType.BIT.name();
-        }
-        if ("blob".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("char".equals(type)) {
-            return JdbcType.CHAR.name();
-        }
-        if ("bigint".equals(type)) {
-            return JdbcType.BIGINT.name();
-        }
-        if ("date".equals(type)) {
-            return JdbcType.DATE.name();
-        }
-        if ("datetime".equals(type)) {
-            return JdbcType.TIMESTAMP.name();
-        }
-        if ("decimal".equals(type)) {
-            return JdbcType.DECIMAL.name();
-        }
-        if ("double".equals(type)) {
-            return JdbcType.DOUBLE.name();
-        }
-        if ("enum".equals(type)) {
-            //return JdbcType.ENUM.name();
-        }
-        if ("float".equals(type)) {
-            return JdbcType.FLOAT.name();
-        }
-        if ("geometry".equals(type)) {
-            //return JdbcType..name();
-        }
-        if ("geometrycollection".equals(type)) {
-            return JdbcType.BIGINT.name();
-        }
-        if ("int".equals(type)) {
-            return JdbcType.INTEGER.name();
-        }
-        if ("integer".equals(type)) {
-            return JdbcType.INTEGER.name();
-        }
-        if ("linestring".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("longblob".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("longtext".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("mediumblob".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("mediumint".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("mediumtext".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("multilinestring".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("multipoint".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("multipolygon".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("numeric".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("point".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("polygon".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("real".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("set".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        if ("smallint".equals(type)) {
-            return JdbcType.SMALLINT.name();
-        }
-        if ("text".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("time".equals(type)) {
-            return JdbcType.TIME.name();
-        }
-        if ("timestamp".equals(type)) {
-            return JdbcType.TIMESTAMP.name();
-        }
-
-        if ("tinyblob".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("tinyint".equals(type)) {
-            return JdbcType.TINYINT.name();
-        }
-        if ("tinytext".equals(type)) {
-            return JdbcType.BLOB.name();
-        }
-        if ("varbinary".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-
-        if ("varchar".equals(type)) {
-            return JdbcType.VARCHAR.name();
-        }
-        if ("year".equals(type)) {
-            //return JdbcType.BIGINT.name();
-        }
-        throw new RuntimeException("不支持数据类型:" + type);
-    }
-
-    private static void createIndex() throws Exception {
-        String path = workSpace + "/ele-admin-plus-js/src/views/" + root.get("modelName") + "/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("menuName") + ".vue");
-        // 加载模板文件
-        Template template = configuration.getTemplate("newIndex.vue");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    private static void createSearch() throws Exception {
-        String path = workSpace + "/ele-admin-plus-js/src/views/" + root.get("modelName") + "/components/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("menuName") + "-search.vue");
-        // 加载模板文件
-        Template template = configuration.getTemplate("newSearch.vue");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    private static void createEdit() throws Exception {
-        String path = workSpace + "/ele-admin-plus-js/src/views/" + root.get("modelName") + "/components/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("menuName") + "-edit.vue");
-        // 加载模板文件
-        Template template = configuration.getTemplate("newEdit.vue");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    private static void createApiJs() throws Exception {
-        String path = workSpace + "/ele-admin-plus-js/src/api/" + root.get("modelName") + "/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("menuName") + ".js");
-        // 加载模板文件
-        Template template = configuration.getTemplate("newApi.js");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    /**
-     * 字段名字  转换
-     *
-     * @param list
-     * @return
-     */
-    private static List<HashMap<String, Object>> lineToHump(List<HashMap<String, Object>> list) {
-        boolean hasProvince = false;
-        boolean hasCity = false;
-        boolean hasDistrict = false;
-        for (int i = 0; i < list.size(); i++) {
-            HashMap<String, Object> temp = list.get(i);
-            temp.put("column_name_org", temp.get("column_name"));
-            temp.put("column_name", ResultBuilder.lineToHump(temp.get("column_name").toString()));
-
-            temp.put("mybatis_data_type", getMybatisDataType(temp.get("data_type").toString()));
-
-            if ("province".equals(temp.get("column_name"))) {
-                hasProvince = true;
-            } else if ("city".equals(temp.get("column_name"))) {
-                hasCity = true;
-            } else if ("district".equals(temp.get("column_name"))) {
-                hasDistrict = true;
-            }
-        }
-        root.put("hasPlace", hasProvince && hasCity && hasDistrict);
-
-        return list;
-    }
-
-    /**
-     * 生成controller代码
-     */
-    private static void createController() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/admin/controller/" + root.get("modelName") + "/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Controller.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("newController.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-
-        System.out.println("代码生成完成 !!!!!");
-    }
-
-    /**
-     * 生成service api接口代码
-     */
-    private static void createIapi() throws Exception {
-        String path = workSpace + "/mrxu-" + root.get("modelName") + "/" + root.get("modelName") + "-sdk/src/main/java/com/mrxu/" + root.get("modelName") + "/api/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + "I" + root.get("className") + "Api.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("iapi.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    /**
-     * 生成service api接口代码
-     */
-    private static void createEntity() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/entity/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + ".java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("entity.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    /**
-     * 生成dto接口代码
-     */
-    private static void createDto() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/query/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Dto.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("dto.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    /**
-     * 生成api接口实现代码
-     */
-    private static void createApi() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/api/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Api.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("api.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    private static void createService() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/service/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Service.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("service.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    private static void createMapperJava() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/java/com/mrxu/" + root.get("modelName") + "/mapper/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Mapper.java");
-        // 加载模板文件
-        Template template = configuration.getTemplate("mapperJava.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-    private static void createMapperXml() throws Exception {
-        String path = workSpace + "/mrxu-manager/src/main/resources/mapper/" + root.get("modelName") + "/";
-        File pathDir = new File(path);
-        if (!pathDir.exists()) {
-            pathDir.mkdirs();
-        }
-        File file = new File(path + root.get("className") + "Mapper.xml");
-        // 加载模板文件
-        Template template = configuration.getTemplate("mapperXml.ftl");
-        // 显示生成的数据
-        Writer writer = new FileWriter(file);
-        template.process(root, writer);
-        writer.flush();
-        writer.close();
-    }
-
-}
-
-

+ 0 - 109
src/main/java/com/mrxu/admin/generator/ResultBuilder.java

@@ -1,109 +0,0 @@
-package com.mrxu.admin.generator;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.sql.Blob;
-import java.sql.Clob;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class ResultBuilder {
-	
-	public static final List<HashMap<String,Object>> build(ResultSet rs) throws SQLException, InstantiationException, IllegalAccessException {
-		List<HashMap<String,Object>> result = new ArrayList<HashMap<String,Object>>();
-		ResultSetMetaData rsmd = rs.getMetaData();
-		int columnCount = rsmd.getColumnCount();
-		String[] labelNames = new String[columnCount + 1];
-		int[] types = new int[columnCount + 1];
-		buildLabelNamesAndTypes(rsmd, labelNames, types);
-		while (rs.next()) {
-			HashMap<String, Object> attrs = new HashMap<String,Object>();
-			for (int i=1; i<=columnCount; i++) {
-				Object value;
-				if (types[i] < Types.BLOB)
-					value = rs.getObject(i);
-				else if (types[i] == Types.CLOB)
-					value = handleClob(rs.getClob(i));
-				else if (types[i] == Types.NCLOB)
-					value = handleClob(rs.getNClob(i));
-				else if (types[i] == Types.BLOB)
-					value = handleBlob(rs.getBlob(i));
-				else
-					value = rs.getObject(i);
-				
-				attrs.put(labelNames[i].toLowerCase(Locale.ROOT), value);
-			}
-			result.add(attrs);
-		}
-		return result;
-	}
-	
-	private static final void buildLabelNamesAndTypes(ResultSetMetaData rsmd, String[] labelNames, int[] types) throws SQLException {
-		for (int i=1; i<labelNames.length; i++) {
-			labelNames[i] = rsmd.getColumnLabel(i);
-			types[i] = rsmd.getColumnType(i);
-		}
-	}
-	
-	public static byte[] handleBlob(Blob blob) throws SQLException {
-		if (blob == null)
-			return null;
-		
-		InputStream is = null;
-		try {
-			is = blob.getBinaryStream();
-			byte[] data = new byte[(int)blob.length()];	
-			is.read(data);
-			is.close();
-			return data;
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-		finally {
-			try {is.close();} catch (IOException e) {throw new RuntimeException(e);}
-		}
-	}
-	
-	public static String handleClob(Clob clob) throws SQLException {
-		if (clob == null)
-			return null;
-		
-		Reader reader = null;
-		try {
-			reader = clob.getCharacterStream();
-			char[] buffer = new char[(int)clob.length()];
-			reader.read(buffer);
-			return new String(buffer);
-		} catch (IOException e) {
-			throw new RuntimeException(e);
-		}
-		finally {
-			try {reader.close();} catch (IOException e) {throw new RuntimeException(e);}
-		}
-	}
-
-	/** 下划线转驼峰 */
-	private static Pattern linePattern = Pattern.compile("_(\\w)");
-	public static String lineToHump(String str) {
-		if(str == null) {
-			return null;
-		}
-		str = str.toLowerCase();
-		Matcher matcher = linePattern.matcher(str);
-		StringBuffer sb = new StringBuffer();
-		while (matcher.find()) {
-			matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
-		}
-		matcher.appendTail(sb);
-		return sb.toString();
-	}
-}

+ 0 - 45
src/main/java/com/mrxu/admin/generator/template/api.ftl

@@ -1,45 +0,0 @@
-package com.mrxu.${modelName}.api;
-
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RestController;
-
-import com.mrxu.framework.boot.bean.PageResult;
-import com.mrxu.${modelName}.entity.${className};
-import com.mrxu.${modelName}.query.${className}Dto;
-import com.mrxu.${modelName}.service.${className}Service;
-
-@RestController
-@RequiredArgsConstructor(onConstructor = @__(@Autowired))
-public class ${className}Api implements I${className}Api {
-
-	private final ${className}Service ${menuName}Service;
-	
-	@Override
-	public PageResult<${className}> page(String tenantId,${className}Dto dto) {
-		return ${menuName}Service.page(tenantId,dto);
-	}
-
-	@Override
-	public ${className} getById(String tenantId,Integer id) {
-		return ${menuName}Service.getById(tenantId,id);
-	}
-
-	@Override
-	public boolean saveOrUpdate(String tenantId,${className} bean,String username) {
-		return ${menuName}Service.saveOrUpdate(tenantId,bean,username);
-	}
-
-	@Override
-	public boolean remove(String tenantId,Integer id) {
-		return ${menuName}Service.remove(tenantId,id);
-	}
-
-	@Override
-	public boolean removeBatch(String tenantId,List<Integer> ids) {
-		return ${menuName}Service.removeBatch(tenantId,ids);
-	}
-
-}

+ 0 - 88
src/main/java/com/mrxu/admin/generator/template/controller.ftl

@@ -1,88 +0,0 @@
-package com.mrxu.admin.controller.${modelName};
-
-import javax.validation.Valid;
-import java.util.List;
-
-import com.mrxu.framework.common.MrxuConst;
-import io.swagger.annotations.Api;
-import lombok.RequiredArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.mrxu.admin.controller.AdminBaseController;
-import com.mrxu.framework.boot.bean.LayuiPage;
-import com.mrxu.framework.boot.bean.PageResult;
-import com.mrxu.framework.boot.bean.ResponseObj;
-import com.mrxu.${modelName}.service.${className}Service;
-import com.mrxu.${modelName}.entity.${className};
-import com.mrxu.${modelName}.query.${className}Dto;
-
-@Api(tags = "${modelCaption}管理")
-@Controller
-@RequestMapping("/${modelName}/${menuName}")
-@RequiredArgsConstructor(onConstructor = @__(@Autowired))
-public class ${className}Controller extends AdminBaseController {
-
-	private final ${className}Service ${menuName}Service;
-	
-	@RequiresPermissions("${modelName}:${menuName}:read")
-	@RequestMapping("index.html")
-	public String index(Model model) {
-		return "${modelName}/${menuName}.html";
-	}
-	
-	@RequiresPermissions("${modelName}:${menuName}:read")
-	@ResponseBody
-	@RequestMapping("/page.json")
-	public LayuiPage<${className}> page(${className}Dto queryDto) {
-		PageResult<${className}> rs = ${menuName}Service.page(getTenantId(),queryDto);
-		return renderLayuiPage(rs);
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:read")
-	@ResponseBody
-	@RequestMapping("/getById.json")
-	public ResponseObj<${className}> getById(Integer id) {
-		return success(${menuName}Service.getById(getTenantId(),id));
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:update")
-	@ResponseBody
-	@RequestMapping("/save.json")
-	public ResponseObj<Boolean> save(@Valid @RequestBody ${className} bean) {
-		/*如果有状态请打开,没有请删除if(bean.getStatus() == null) {
-			bean.setStatus(MrxuConst.disable);
-		}*/
-		return success(${menuName}Service.saveOrUpdate(getTenantId(),bean,getUsername()));
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:update")
-	@ResponseBody
-	@RequestMapping("/updateStatus.json")
-	public ResponseObj<Boolean> updateStatus(Integer id, Integer status) {
-		${className} bean = new ${className}();
-		bean.setId(id);
-		bean.setStatus(status);
-		return success(${menuName}Service.saveOrUpdate(getTenantId(),bean,getUsername()));
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:remove")
-	@ResponseBody
-	@RequestMapping("/remove.json")
-	public ResponseObj<Boolean> remove(Integer id) {
-		return success(${menuName}Service.remove(getTenantId(),id));
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:remove")
-	@ResponseBody
-	@RequestMapping("/removeBatch.json")
-	public ResponseObj<Boolean> removeBatch(@RequestBody List<Integer> ids) { 
-		return success(${menuName}Service.removeBatch(getTenantId(),ids));
-	}
-
-}

+ 0 - 20
src/main/java/com/mrxu/admin/generator/template/dto.ftl

@@ -1,20 +0,0 @@
-package com.mrxu.${modelName}.query;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import com.mrxu.framework.boot.bean.PageParam;
-import com.mrxu.${modelName}.entity.${className};
-
-@ApiModel("${modelCaption}查询参数")
-@Data
-public class ${className}Dto extends PageParam<${className}> {
-
-    @ApiModelProperty(value = "租户id")
-    private String tenantId;
-
-    @ApiModelProperty(value = "名称")
-    private String name;
-
-}

+ 0 - 80
src/main/java/com/mrxu/admin/generator/template/entity.ftl

@@ -1,80 +0,0 @@
-package com.mrxu.${modelName}.entity;
-
-import javax.validation.constraints.Size;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.mrxu.framework.boot.bean.BaseEntity;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-@TableName("${tableName}")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ApiModel("${modelCaption}")
-public class ${className} extends BaseEntity {
-
-    private static final long serialVersionUID = -1L;
-<#list columnList as item>
-<#if item.column_name !="id" && item.column_name !="createTime" && item.column_name !="createPerson">
-
-	@ApiModelProperty(value = "${item.column_comment}")
-	@TableField("${item.column_name_org}")
-	<#if item.column_name="deleted">
-	@TableLogic
-	</#if>
-	<#if item.data_type=="int" || item.data_type=="integer" || item.data_type=="bigint" >
-	private Integer ${item.column_name};
-	<#elseif item.data_type=="smallint" || item.data_type=="tinyint">
-	private Integer ${item.column_name};
-	<#elseif item.data_type=="double">
-	private Double ${item.column_name};
-	<#elseif item.data_type=="float">
-	private Float ${item.column_name};
-	<#elseif item.data_type=="decimal">
-	private BigDecimal ${item.column_name};
-	<#elseif item.data_type=="date">
-	@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
-	private Date ${item.column_name};
-	<#elseif item.data_type=="datetime" || item.data_type=="timestamp">
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-	private Date ${item.column_name};
-	<#else>
-	<#if (item.char_length!0) gt 0>
-	${"@"}Size(max=${item.char_length!(item.num_length!0)})
-	</#if>
-	private String ${item.column_name};
-	</#if>
-</#if>
-</#list>
-
-	<#if hasPlace>
-	public String getSelectPlace() {
-		if(StrFunc.isEmpty(province)) {
-			return province;
-		}
-		return province+","+city+","+district;
-	}
-
-	public void setSelectPlace(String selectPlace) {
-		if(StrFunc.isNotEmpty(selectPlace)) {
-			String [] array = selectPlace.split(",");
-			int length = array.length;
-			this.setProvince(array[0]);
-			if(length >= 2) {
-				this.setCity(array[1]);
-			}
-			if(length >= 3) {
-				this.setDistrict(array[2]);
-			}
-		}
-	}
- 	</#if>
-}

+ 0 - 56
src/main/java/com/mrxu/admin/generator/template/iapi.ftl

@@ -1,56 +0,0 @@
-package com.mrxu.${modelName}.api;
-
-import java.util.List;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import com.mrxu.framework.boot.bean.PageResult;
-import com.mrxu.${modelName}.${modelClassName}SdkConst;
-import com.mrxu.${modelName}.entity.${className};
-import com.mrxu.${modelName}.query.${className}Dto;
-
-@Api(tags = "${modelCaption}")
-@FeignClient(${modelClassName}SdkConst.SERVER_NAME)
-public interface I${className}Api {
-
-    @ApiOperation(value = "分页查询")
-    @ApiImplicitParams({@ApiImplicitParam(name = "tenantId", value = "租户id",required = true,dataType="string")
-    ,@ApiImplicitParam(name = "bean", value = "实体",required = true)})
-    @RequestMapping(value = "/${modelName}/${menuName}/page", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
-    PageResult<${className}> page(@RequestParam("tenantId")String tenantId,@RequestBody ${className}Dto dto);
-
-    @ApiOperation(value = "查询${modelCaption}",notes="查询${modelCaption}")
-    @ApiImplicitParams({@ApiImplicitParam(name = "tenantId", value = "租户id",required = true,dataType="string")
-    ,@ApiImplicitParam(name = "id", value = "${modelCaption}id",required = true,dataType="int")})
-    @RequestMapping(value = "/${modelName}/${menuName}/getById", method = RequestMethod.POST)
-    ${className} getById(@RequestParam("tenantId")String tenantId,@RequestParam("id") Integer id);
-
-    @ApiOperation(value = "保存${modelCaption}",notes="保存${modelCaption}")
-    @ApiImplicitParams({@ApiImplicitParam(name = "tenantId", value = "租户id",required = true,dataType="string")
-    ,@ApiImplicitParam(name = "bean", value = "实体",required = true)
-    ,@ApiImplicitParam(name = "username", value = "操作人",required = true,dataType="string")})
-    @RequestMapping(value = "/${modelName}/${menuName}/saveOrUpdate", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
-    boolean saveOrUpdate(@RequestParam("tenantId")String tenantId,@RequestBody ${className} bean,@RequestParam("username")String username);
-
-    @ApiOperation(value = "删除${modelCaption}",notes="删除${modelCaption}")
-    @ApiImplicitParams({@ApiImplicitParam(name = "tenantId", value = "租户id",required = true,dataType="string")
-    ,@ApiImplicitParam(name = "id", value = "${modelCaption}id",required = true,dataType="int")})
-    @RequestMapping(value = "/${modelName}/${menuName}/remove", method = RequestMethod.POST)
-    boolean remove(@RequestParam("tenantId")String tenantId,@RequestParam("id") Integer id);
-
-    @ApiOperation(value = "批量删除${modelCaption}",notes="批量删除${modelCaption}")
-    @ApiImplicitParams({@ApiImplicitParam(name = "tenantId", value = "租户id",required = true,dataType="string")
-    ,@ApiImplicitParam(name = "id", value = "${modelCaption}ids",required = true,dataType="array")})
-    @RequestMapping(value = "/${modelName}/${menuName}/removeBatch", method = RequestMethod.POST)
-    boolean removeBatch(@RequestParam("tenantId")String tenantId,@RequestParam("ids") List<Integer> ids);
-
-}

+ 0 - 257
src/main/java/com/mrxu/admin/generator/template/index.ftl

@@ -1,257 +0,0 @@
-<${"#"}import "/tag.html" as tag/>
-<${"@"}tag.page title="${modelCaption}管理">
-    <!-- 正文开始 -->
-    <div class="layui-fluid">
-        <div class="layui-card">
-            <div class="layui-card-body">
-                <!-- 表格工具栏 -->
-                <form class="layui-form toolbar">
-                    <div class="layui-form-item">
-                        <div class="layui-inline">
-                            <label class="layui-form-label" style="width:auto;">时间:</label>
-                            <div class="layui-input-inline">
-                                <input name="timeRange" dateType="datetime" autocomplete="off" class="layui-input mrxu_date" range="~" placeholder="选择时间范围"/>
-                            </div>
-                            <label class="layui-form-label" style="width:auto;">名称:</label>
-                            <div class="layui-input-inline">
-                                <input name="name" autocomplete="off" class="layui-input" placeholder="名称模糊匹配"/>
-                            </div>
-                        </div>
-                        <div class="layui-inline">&emsp;
-                            <button class="layui-btn icon-btn" lay-filter="mrxu_list_search" lay-submit>
-                                <i class="layui-icon">&#xe615;</i>搜索
-                            </button>
-                            <${"#"}if so.hasPermission('${modelName}:${menuName}:update')>
-                                <span onclick="tableDataAdd(this)" table-filter="mrxu_list_table" dialog_area="620px" dialog_after="editFormInit" class="layui-btn layui-btn-warm icon-btn"><i class="layui-icon">&#xe654;</i>添加</span>&nbsp;
-                            </${"#"}if>
-                            <${"#"}if so.hasPermission('${modelName}:${menuName}:remove')>
-                                <span onclick="tableDataDel(this)" key="id" table-filter="mrxu_list_table" class="layui-btn layui-btn-danger icon-btn"><i class="layui-icon">&#xe640;</i>删除</span>&nbsp;
-                            </${"#"}if>
-                        </div>
-                    </div>
-                </form>
-                <table class="layui-table" lay-data="{url:'page.json',page:true,toolbar:'#list_head_oper',height: 'full-100'}" lay-filter="mrxu_list_table" id="mrxu_list_table">
-                    <thead>
-                    <tr>
-                        <${"#"}if so.hasPermission('${modelName}:${menuName}:remove')>
-                        <th lay-data="{type:'checkbox'}"></th>
-                        </${"#"}if>
-                        <th lay-data="{field:'name',width:170}">名称</th>
-                        <th lay-data="{field:'status',templet:'#list_status'}">状态</th>
-                        <th lay-data="{field:'createTime',width:170}">创建时间</th>
-                        <th lay-data="{templet:'#mrxu_list_table_oper',width:195}">操作</th>
-                    </tr>
-                    </thead>
-                </table>
-            </div>
-        </div>
-    </div>
-
-    <script type="text/html" id="list_status">
-        <input type="checkbox" <${"#"}if !so.hasPermission('${modelName}:${menuName}:update')>disabled</${"#"}if> lay-filter="mrxu_list_status_ck" value="{{d.id}}" lay-skin="switch" lay-text="正常|锁定" {{d.status==1?'checked':''}}/>
-    </script>
-
-    <script type="text/html" id="mrxu_list_table_oper">
-        <${"#"}if so.hasPermission('${modelName}:${menuName}:read')>
-        <span lay-event="read" dialog_area="['620px','430px']" dialog_after="readFormInit" class="layui-btn layui-btn-xs"><i class="layui-icon layui-icon-search"></i>详情</span>
-        </${"#"}if>
-        <${"#"}if so.hasPermission('${modelName}:${menuName}:update')>
-        <span lay-event="edit" dialog_area="620px" dialog_after="editFormInit" class="layui-btn layui-btn-warm layui-btn-xs"><i class="layui-icon layui-icon-edit"></i>编辑</span>
-        </${"#"}if>
-        <${"#"}if so.hasPermission('${modelName}:${menuName}:remove')>
-        <span data-dropdown="#mrxu_list_del_{{d.LAY_INDEX}}" no-shade="true" class="layui-btn layui-btn-danger layui-btn-xs"><i class="layui-icon layui-icon-delete"></i>删除</span>
-        <!--删除确认-->
-        <div class="dropdown-menu-nav dropdown-popconfirm dropdown-top-right layui-hide"
-             id="mrxu_list_del_{{d.LAY_INDEX}}"
-             style="max-width: 200px;white-space: normal;min-width: auto;margin-left: 10px;">
-            <div class="dropdown-anchor"></div>
-            <div class="dropdown-popconfirm-title">
-                <i class="layui-icon layui-icon-help"></i>
-                确定删除“{{d.name}}”?
-            </div>
-            <div class="dropdown-popconfirm-btn">
-                <a class="layui-btn" btn-cancel>取消</a>
-                <a class="layui-btn layui-btn-normal" lay-event="del">确定</a>
-            </div>
-        </div>
-        </${"#"}if>
-    </script>
-
-    <script type="text/html" id="list_head_oper">
-        <${"#"}if so.hasPermission('${modelName}:${menuName}:update')>
-        <button lay-event="add" dialog_area="580px" dialog_after="editFormInit" class="layui-btn layui-btn-sm icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>&nbsp;
-        </${"#"}if>
-        <${"#"}if so.hasPermission('${modelName}:${menuName}:remove')>
-        <button lay-event="del" class="layui-btn layui-btn-sm layui-btn-danger icon-btn"><i class="layui-icon">&#xe640;</i>删除</button>&nbsp;
-        </${"#"}if>
-    </script>
-    <${"#"}if so.hasPermission('${modelName}:${menuName}:update')>
-    <script type="text/html" id="editDialog">
-        <form id="editForm" lay-filter="editForm" class="layui-form model-form">
-            <input name="id" type="hidden"/>
-<#list columnList as item>
-    <#if item.column_name!="id" && item.column_name!="createTime" && item.column_name!="deleted" && item.column_name!="updateTime" && item.column_name!="createPerson" && item.column_name!="updatePerson" && item.column_name!="tenantId" && item.column_name!="branchId">
-        <#if item.column_name_org?contains("image")>
-            <div class="layui-form-item">
-                <label class="layui-form-label">图片:</label>
-                <div class="layui-input-block">
-                    <div class="layui-upload-div mrxu_upload_div">
-                        <input name="${item.column_name}" type="hidden" lay-verify="required">
-                        <img src="/assets/images/image.png" class="layui-upload-img">
-                        <span style="display:none;" class="layui-layer-setwin"><a class="layui-layer-ico layui-layer-close2" href="javascript:"></a></span>
-                    </div>
-                </div>
-            </div>
-        <#elseif item.data_type=="date">
-            <div class="layui-form-item">
-                <label class="layui-form-label<#if item.is_nullable="NO"> layui-form-required</#if>">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <input name="${item.column_name}" dateType="date" autocomplete="off" <#if item.is_nullable="NO">lay-verify="required"</#if> placeholder="请选择${item.column_comment!}" class="layui-input mrxu_date">
-                </div>
-            </div>
-        <#elseif item.data_type=="datetime" || item.data_type=="timestamp">
-            <div class="layui-form-item">
-                <label class="layui-form-label<#if item.is_nullable="NO"> layui-form-required</#if>">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <input name="${item.column_name}" dateType="datetime" autocomplete="off" <#if item.is_nullable="NO">lay-verify="required"</#if> placeholder="请选择${item.column_comment!}" class="layui-input mrxu_date">
-                </div>
-            </div>
-        <#elseif item.data_type=="time">
-            <div class="layui-form-item">
-                <label class="layui-form-label<#if item.is_nullable="NO"> layui-form-required</#if>">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <input name="${item.column_name}" dateType="time" autocomplete="off" <#if item.is_nullable="NO">lay-verify="required"</#if> placeholder="请选择${item.column_comment!}" class="layui-input mrxu_date">
-                </div>
-            </div>
-        <#elseif item.data_type=="longtext" || item.data_type=="text">
-            <div class="layui-form-item">
-                <label class="layui-form-label<#if item.is_nullable="NO"> layui-form-required</#if>">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <textarea name="${item.column_name}" autocomplete="off" <#if item.is_nullable="NO">lay-verify="required"</#if> maxlength="${item.char_length!(item.num_length!0)}" placeholder="请输入${item.column_comment}" class="layui-textarea"></textarea>
-                </div>
-            </div>
-        <#elseif item.data_type=="tinyint">
-            <div class="layui-form-item">
-                <label class="layui-form-label">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <input type="checkbox" name="${item.column_name}" checked value="1" lay-skin="switch" lay-text="是|否">
-                </div>
-            </div>
-        <#else>
-        <#if (!hasPlace) || (item.column_name_org != "longitude" && item.column_name_org != "latitude" && item.column_name_org != "province" && item.column_name_org != "city" && item.column_name_org != "district" && item.column_name_org != "city_code")>
-            <div class="layui-form-item">
-                <label class="layui-form-label<#if item.is_nullable="NO"> layui-form-required</#if>">${item.column_comment!}:</label>
-                <div class="layui-input-block<#if item.column_name_org == "address"> xdd_layui_map</#if>">
-                    <#if ((item.char_length!(item.num_length!0))<256) || (item.column_name_org == "address")>
-                    <#if item.column_name_org == "address">
-                    <input name="longitude" type="hidden">
-                    <input name="latitude" type="hidden">
-                    <input name="province" type="hidden">
-                    <input name="city" type="hidden">
-                    <input name="district" type="hidden">
-                    <input name="cityCode" type="hidden">
-                    <input type="text" name="${item.column_name}" autocomplete="off" <#if item.is_nullable="NO">lay-verify="required"</#if> maxlength="${item.char_length!(item.num_length!0)}" placeholder="位置" class="layui-input">
-                    <#else>
-                    <#if item.column_name_org?contains("mobile")>
-                    <input type="text" name="${item.column_name}" autocomplete="off" <#if item.is_nullable="NO">lay-verify="phone"</#if> maxlength="${item.char_length!(item.num_length!0)}" placeholder="请输入${item.column_comment!}" class="layui-input">
-                    <#elseif item.column_name_org?contains("email")>
-                    <input type="text" name="${item.column_name}" autocomplete="off" <#if item.is_nullable="NO">lay-verify="email"</#if> maxlength="${item.char_length!(item.num_length!0)}" placeholder="请输入${item.column_comment!}" class="layui-input">
-                    <#elseif item.column_name_org?contains("identity")>
-                    <input type="text" name="${item.column_name}" autocomplete="off" <#if item.is_nullable="NO">lay-verify="identity"</#if> maxlength="${item.char_length!(item.num_length!0)}" placeholder="请输入${item.column_comment!}" class="layui-input">
-                    <#else>
-                    <input type="text" name="${item.column_name}" autocomplete="off" <#if item.is_nullable="NO">lay-verify="required"</#if> maxlength="${item.char_length!(item.num_length!0)}" placeholder="请输入${item.column_comment!}" class="layui-input">
-                    </#if>
-                    </#if>
-                    <#else>
-                    <textarea name="${item.column_name}" autocomplete="off" <#if item.is_nullable="NO">lay-verify="required"</#if> maxlength="${item.char_length!(item.num_length!0)}" placeholder="请输入${item.column_comment}" class="layui-textarea"></textarea>
-                    </#if>
-                </div>
-            </div>
-        </#if>
-        </#if>
-    </#if>
-</#list>
-            <div class="layui-form-item text-right">
-                <button class="layui-btn" lay-filter="editSubmit" lay-submit>保存</button>
-                <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
-            </div>
-        </form>
-    </script>
-    </${"#"}if>
-    <script type="text/html" id="readDialog">
-        <form id="readForm" lay-filter="readForm" class="layui-form model-form">
-    <#list columnList as item>
-        <#if item.column_name!="id" && item.column_name!="tenantId" && item.column_name!="deleted">
-        <#if item.column_name_org?contains("image")>
-            <div class="layui-form-item">
-                <label class="layui-form-label">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <img class="layui-upload-img" id="test-upload-normal-img">
-                </div>
-            </div>
-        <#elseif item.data_type=="tinyint">
-            <div class="layui-form-item">
-                <label class="layui-form-label">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <input type="checkbox" name="${item.column_name}" disabled lay-skin="switch" lay-text="是|否">
-                </div>
-            </div>
-        <#elseif item.data_type=="date">
-            <div class="layui-form-item layui-form-text">
-                <label class="layui-form-label">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <input type="text" name="${item.column_name}" disabled  class="layui-input layui-btn-disabled">
-                </div>
-            </div>
-        <#elseif item.data_type=="datetime" || item.data_type=="timestamp">
-            <div class="layui-form-item layui-form-text">
-                <label class="layui-form-label">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <input type="text" name="${item.column_name}" disabled class="layui-input layui-btn-disabled">
-                </div>
-            </div>
-        <#elseif item.data_type=="time">
-            <div class="layui-form-item layui-form-text">
-                <label class="layui-form-label">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <input type="text" name="${item.column_name}" disabled class="layui-input layui-btn-disabled">
-                </div>
-            </div>
-        <#elseif item.data_type=="longtext" || item.data_type=="text">
-            <div class="layui-form-item layui-form-text">
-                <label class="layui-form-label">${item.column_comment!}:</label>
-                <div class="layui-input-block">
-                    <textarea disabled name="${item.column_name}" class="layui-textarea layui-btn-disabled"></textarea>
-                </div>
-            </div>
-        <#else>
-        <#if (!hasPlace) || (item.column_name_org != "longitude" && item.column_name_org != "latitude" && item.column_name_org != "province" && item.column_name_org != "city" && item.column_name_org != "district" && item.column_name_org != "city_code")>
-            <div class="layui-form-item layui-form-text">
-                <label class="layui-form-label">${item.column_comment!}:</label>
-                <div class="layui-input-block<#if item.column_name_org == "address"> xdd_layui_map</#if>">
-            <#if ((item.char_length!(item.num_length!0))<256) || (item.column_name_org == "address")>
-                <#if item.column_name_org == "address">
-                    <input name="longitude" type="hidden">
-                    <input name="latitude" type="hidden">
-                    <input disabled class="layui-input">
-                <#else>
-                    <input type="text" name="${item.column_name}" disabled class="layui-input layui-btn-disabled">
-                </#if>
-            <#else>
-                    <textarea disabled name="${item.column_name}" class="layui-textarea layui-btn-disabled"></textarea>
-            </#if>
-                </div>
-            </div>
-        </#if>
-        </#if>
-        </#if>
-    </#list>
-        </form>
-    </script>
-</${"@"}tag.page>
-<script type="text/javascript">
-    function editFormInit(data) {
-    }
-    function readFormInit(data) {
-    }
-</script>

+ 0 - 20
src/main/java/com/mrxu/admin/generator/template/mapperJava.ftl

@@ -1,20 +0,0 @@
-package com.mrxu.${modelName}.mapper;
-
-import java.util.List;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-import com.mrxu.${modelName}.entity.${className};
-import com.mrxu.${modelName}.query.${className}Dto;
-
-/**
- * ${modelCaption}Mapper接口
- */
-public interface ${className}Mapper extends BaseMapper<${className}> {
-
-	/**
-	 * 分页查询
-	 */
-	List<${className}> page(${className}Dto page);
-
-}

+ 0 - 32
src/main/java/com/mrxu/admin/generator/template/mapperXml.ftl

@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="com.mrxu.${modelName}.mapper.${className}Mapper">
-
-    <!-- 关联查询sql -->
-    <sql id="relSelect">
-        SELECT *
-        FROM ${tableName}
-    </sql>
-
-    <!-- 分页查询 -->
-    <select id="page" resultType="com.mrxu.${modelName}.entity.${className}">
-        <include refid="relSelect"></include>
-        <where>
-            <if test="tenantId!=null and tenantId!=''">
-                AND tenant_id = ${"#"}{tenantId}
-            </if>
-            <if test="name!=null and name!='' ">
-                AND name LIKE CONCAT('%', ${"#"}{name}, '%')
-            </if>
-            <if test="startTime!=null">
-            AND create_time <![CDATA[ >= ]]> ${"#"}{startTime,jdbcType=VARCHAR}
-            </if>
-            <if test="endTime!=null">
-                AND create_time <![CDATA[ < ]]> ${"#"}{endTime,jdbcType=VARCHAR}
-            </if>
-            ORDER BY id DESC
-            <!-- AND deleted = 0 -->
-        </where>
-    </select>
-
-</mapper>

+ 0 - 52
src/main/java/com/mrxu/admin/generator/template/newApi.js

@@ -1,52 +0,0 @@
-/**
- * ${modelCaption}相关api
- */
-import request from '@/utils/request';
-
-/**
- * 分页查询${modelCaption}
- */
-export async function page(params) {
-  const res = await request.get('/${modelName}/${menuName}/page.json', { params });
-  if (res.data.code === 0) {
-    return res.data.result;
-  }
-  return Promise.reject(new Error(res.data.msg));
-}
-
-/**
- * 修改/新增${modelCaption}
- */
-export async function saveOrUpdate(data) {
-  const res = await request.put('/${modelName}/${menuName}/save.json', data);
-  if (res.data.code === 0) {
-    return res.data.msg;
-  }
-  return Promise.reject(new Error(res.data.msg));
-}
-
-/**
- * 修改${modelCaption}状态
- */
-export async function updateStatus(id, status) {
-  const params = {
-    id:id,
-    status:status
-  };
-  const res = await request.get('/${modelName}/${menuName}/updateStatus.json',{ params });
-  if (res.data.code === 0) {
-    return res.data.msg;
-  }
-  return Promise.reject(new Error(res.data.msg));
-}
-
-/**
- * 删除${modelCaption}
- */
-export async function remove(id) {
-  const res = await request.delete('/${modelName}/${menuName}/remove.json?id=' + id);
-  if (res.data.code === 0) {
-    return res.data.msg;
-  }
-  return Promise.reject(new Error(res.data.msg));
-}

+ 0 - 76
src/main/java/com/mrxu/admin/generator/template/newController.ftl

@@ -1,76 +0,0 @@
-package com.mrxu.admin.controller.${modelName};
-
-import javax.validation.Valid;
-import java.util.List;
-
-import io.swagger.annotations.Api;
-import lombok.RequiredArgsConstructor;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import com.mrxu.admin.controller.AdminBaseController;
-import com.mrxu.framework.boot.bean.PageResult;
-import com.mrxu.framework.boot.bean.ResponseObj;
-import com.mrxu.${modelName}.service.${className}Service;
-import com.mrxu.${modelName}.entity.${className};
-import com.mrxu.${modelName}.query.${className}Dto;
-
-@Api(tags = "${modelCaption}管理")
-@Controller
-@RequestMapping("/${modelName}/${menuName}")
-@RequiredArgsConstructor(onConstructor = @__(@Autowired))
-public class ${className}Controller extends AdminBaseController {
-
-	private final ${className}Service ${menuName}Service;
-	
-	@RequiresPermissions("${modelName}:${menuName}:read")
-	@ResponseBody
-	@RequestMapping("/page.json")
-	public ResponseObj<PageResult<${className}>> page(${className}Dto queryDto) {
-		PageResult<${className}> rs = ${menuName}Service.page(getTenantId(),queryDto);
-		return success(rs);
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:read")
-	@ResponseBody
-	@RequestMapping("/getById.json")
-	public ResponseObj<${className}> getById(Integer id) {
-		return success(${menuName}Service.getById(getTenantId(),id));
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:update")
-	@ResponseBody
-	@RequestMapping("/save.json")
-	public ResponseObj<Boolean> save(@Valid @RequestBody ${className} bean) {
-		return success(${menuName}Service.saveOrUpdate(getTenantId(),bean,getUsername()));
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:update")
-	@ResponseBody
-	@RequestMapping("/updateStatus.json")
-	public ResponseObj<Boolean> updateStatus(Integer id, Integer status) {
-		${className} bean = new ${className}();
-		bean.setId(id);
-		bean.setStatus(status);
-		return success(${menuName}Service.saveOrUpdate(getTenantId(),bean,getUsername()));
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:remove")
-	@ResponseBody
-	@RequestMapping("/remove.json")
-	public ResponseObj<Boolean> remove(Integer id) {
-		return success(${menuName}Service.remove(getTenantId(),id));
-	}
-
-	@RequiresPermissions("${modelName}:${menuName}:remove")
-	@ResponseBody
-	@RequestMapping("/removeBatch.json")
-	public ResponseObj<Boolean> removeBatch(@RequestBody List<Integer> ids) { 
-		return success(${menuName}Service.removeBatch(getTenantId(),ids));
-	}
-
-}

+ 0 - 138
src/main/java/com/mrxu/admin/generator/template/newEdit.vue

@@ -1,138 +0,0 @@
-<!-- ${modelCaption}编辑弹窗 -->
-<template>
-  <ele-modal form :width="460" v-model="visible" :title="form.id ? '修改${modelCaption}' : '添加${modelCaption}'" @open="handleOpen">
-    <el-form ref="formRef" :model="form" :rules="rules" label-width="80px" @submit.prevent="">
-    <#list columnList as item>
-    <#if item.column_name!="id" && item.column_name!="createTime" && item.column_name!="deleted" && item.column_name!="updateTime" && item.column_name!="createPerson" && item.column_name!="updatePerson" && item.column_name!="tenantId" && item.column_name!="branchId">
-      <#if item.data_type=="tinyint">
-      <el-form-item label="${item.column_comment!}">
-        <el-switch inline-prompt active-text="是" inactive-text="否" v-model="form.${item.column_name}" :model-value="form.${item.column_name}==1" @change="updateStatus"/>
-      </el-form-item>
-      <#elseif item.data_type=="int">
-      <el-form-item label="${item.column_comment!}" prop="${item.column_name}">
-        <el-input-number :min="0" :max="99999" v-model="form.${item.column_name}" placeholder="请输入${item.column_comment!}" controls-position="right" class="ele-fluid"/>
-      </el-form-item>
-      <#elseif item.data_type=="datetime" || item.data_type=="timestamp" || item.data_type=="time">
-      <el-form-item label="${item.column_comment!}" prop="${item.column_name}">
-        <el-date-picker type="datetime" v-model="form.${item.column_name}" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择${item.column_comment!}" class="ele-fluid"/>
-      </el-form-item>
-      <#else>
-      <el-form-item label="${item.column_comment!}" prop="${item.column_name}">
-        <el-input clearable :maxlength="${item.char_length!(item.num_length!0)}" v-model="form.${item.column_name}" placeholder="请输入${item.column_comment!}"/>
-      </el-form-item>
-      </#if>
-    </#if>
-    </#list>
-    </el-form>
-    <template #footer>
-      <el-button @click="handleCancel">取消</el-button>
-      <el-button type="primary" :loading="loading" @click="save">保存</el-button>
-    </template>
-  </ele-modal>
-</template>
-
-<script setup>
-  import { ref, reactive, nextTick } from 'vue';
-  import { EleMessage } from 'ele-admin-plus/es';
-  import { useFormData } from '@/utils/use-form-data';
-
-  import * as ${menuName}Api from '@/api/${modelName}/${menuName}.js';
-
-  const props = defineProps({
-    /** 修改回显的数据 */
-    data: Object
-  });
-
-  const emit = defineEmits(['done']);
-
-  /** 弹窗是否打开 */
-  const visible = defineModel({ type: Boolean });
-
-  /** 提交状态 */
-  const loading = ref(false);
-
-  /** 表单实例 */
-  const formRef = ref(null);
-
-  /** 表单数据 */
-  const [form, resetFields, assignFields] = useFormData({
-    id: null,
-  <#list columnList as item>
-  <#if item.column_name!="id" && item.column_name!="createTime" && item.column_name!="deleted" && item.column_name!="updateTime" && item.column_name!="createPerson" && item.column_name!="updatePerson" && item.column_name!="tenantId" && item.column_name!="branchId">
-    <#if item.data_type=="tinyint">
-    ${item.column_name}: 1,
-    <#elseif item.data_type=="int">
-    ${item.column_name}: 1,
-    <#else>
-    ${item.column_name}: '',
-    </#if>
-  </#if>
-  </#list>
-  });
-
-  /** 表单验证规则 */
-  const rules = reactive({
-    <#list columnList as item>
-    <#if item.column_name!="id" && item.column_name!="createTime" && item.column_name!="deleted" && item.column_name!="updateTime" && item.column_name!="createPerson" && item.column_name!="updatePerson" && item.column_name!="tenantId" && item.column_name!="branchId">
-    ${item.column_name}: [
-      {
-        required: <#if item.is_nullable="NO">true<#else>false</#if>,
-        message: '请输入${item.column_comment!}',
-        <#if item.data_type=="tinyint" || item.data_type=="int">
-        type: 'number',
-        <#else>
-        type: 'string',
-        </#if>
-        trigger: 'blur'
-      }
-    ],
-  </#if>
-  </#list>
-  });
-
-  /** 关闭弹窗 */
-  const handleCancel = () => {
-    visible.value = false;
-  };
-
-  /** 保存编辑 */
-  const save = () => {
-    formRef.value?.validate?.((valid) => {
-      if (!valid) {
-        return;
-      }
-      loading.value = true;
-      ${menuName}Api.saveOrUpdate(form)
-        .then((msg) => {
-          loading.value = false;
-          EleMessage.success(msg);
-          handleCancel();
-          emit('done');
-        })
-        .catch((e) => {
-          loading.value = false;
-          EleMessage.error(e.message);
-        });
-    });
-  };
-
-  /** 弹窗打开事件 */
-  const handleOpen = () => {
-    if (props.data) {
-      assignFields(props.data);
-    }
-    else {
-      resetFields();
-    }
-    nextTick(() => {
-      nextTick(() => {
-        formRef.value?.clearValidate?.();
-      });
-    });
-  };
-
-  /** 选择状态 */
-  const updateStatus = (value) => {
-    form.status = value ? 1 : 0;
-  };
-</script>

+ 0 - 159
src/main/java/com/mrxu/admin/generator/template/newIndex.vue

@@ -1,159 +0,0 @@
-<template>
-  <ele-page flex-table :multi-card="false" hide-footer style="min-height: 420px;">
-    <ele-card flex-table :body-style="{ padding: '16px 16px 0 16px', overflow: 'hidden' }">
-      <!--搜索选项-->
-      <${menuClassName}Search @search="reload"
-                      @openEdit="openEdit"
-                      style="margin-bottom: -24px"/>
-      <!-- 表格 -->
-      <ele-pro-table
-        ref="tableRef"
-        row-key="id"
-        :border="true"
-        :columns="columns"
-        :datasource="datasource"
-        :show-overflow-tooltip="true"
-        v-model:selections="selections"
-        :highlight-current-row="true"
-        :footer-style="{ paddingBottom: '16px' }"
-        :tools="false">
-
-        <!--状态修改-->
-        <template #status="{ row }">
-          <el-switch :model-value="row.status === 1" @change="(checked) => editStatus(checked, row)"/>
-        </template>
-
-        <!--列表操作按钮-->
-        <template #action="{ row }">
-          <el-button v-permission="'${modelName}:${menuName}:update'" type="warning" size="small" class="ele-btn-icon" :icon="MenuIcons.EditOutlined" @click="openEdit(row)">修改</el-button>
-          <el-button v-permission="'${modelName}:${menuName}:remove'" type="danger" size="small" class="ele-btn-icon" :icon="MenuIcons.DeleteOutlined" @click="remove(row)">删除</el-button>
-        </template>
-      </ele-pro-table>
-    </ele-card>
-    <!-- 编辑弹窗 -->
-    <${menuClassName}Edit v-model="showEdit" :data="current" @done="reload" />
-  </ele-page>
-</template>
-
-<script setup>
-  import { ref } from 'vue';
-  import { ElMessageBox } from 'element-plus/es';
-  import { EleMessage } from 'ele-admin-plus/es';
-  import * as MenuIcons from '@/layout/menu-icons';
-  import { usePermission } from '@/utils/use-permission';
-  const { hasPermission, hasAnyPermission, hasRole, hasAnyRole } = usePermission();
-
-  import ${menuClassName}Search from './components/${menuName}-search.vue';
-  import ${menuClassName}Edit from './components/${menuName}-edit.vue';
-
-  import * as ${menuName}Api from '@/api/${modelName}/${menuName}.js';
-
-  /** 有这个值可以让tab切换后不刷新 */
-  defineOptions({ name: '${menuClassName}' });
-
-  /** 表格实例 */
-  const tableRef = ref(null);
-
-  /** 表格列配置 */
-  const columns = ref([
-    {
-      prop: 'name',
-      label: '名称',
-      width: 150,
-      fixed: 'left'
-    },
-    {
-      prop: 'sortNumber',
-      label: '排序',
-      sortable: 'custom',
-      minWidth: 80
-    },
-    {
-      prop: 'status',
-      label: '状态',
-      width: 90,
-      align: 'center',
-      slot: 'status',
-      formatter: (row) => (row.status == 1 ? '正常' : '冻结')
-    },
-    {
-      prop: 'createPerson',
-      label: '创建人',
-      width: 160,
-      align: 'center'
-    },
-    {
-      prop: 'createTime',
-      label: '创建时间',
-      width: 180,
-      sortable: 'custom',
-      align: 'center'
-    }
-  ]);
-  // 操作选项,判断是否有任意一个权限
-  if (hasAnyPermission(['${modelName}:${menuName}:update', '${modelName}:${menuName}:remove'])) {
-    columns.value.push({
-      columnKey: 'action',
-      label: '操作',
-      width: 140,
-      align: 'center',
-      slot: 'action',
-      fixed: 'right'
-    });
-  }
-
-  /** 表格选中数据 */
-  const selections = ref([]);
-
-  /** 当前编辑数据 */
-  const current = ref(null);
-
-  /** 是否显示编辑弹窗 */
-  const showEdit = ref(false);
-
-  /** 表格数据源 */
-  const datasource = ({ pages, where, orders }) => {
-    return ${menuName}Api.page({ ...where, ...orders, ...pages });
-  };
-
-  /** 搜索 */
-  const reload = (where) => {
-    selections.value = [];
-    tableRef.value?.reload?.({ page: 1, where });
-  };
-
-  /** 打开编辑弹窗 */
-  const openEdit = (row) => {
-    current.value = row ?? null;
-    showEdit.value = true;
-  };
-
-  /** 删除单个 */
-  const remove = (row) => {
-    ElMessageBox.confirm('确定要删除“' + row.name + '”吗?',
-      '系统提示',{ type: 'warning', draggable: true }).then(() => {
-      const loading = EleMessage.loading({message: '请求中..',plain: true});
-      ${menuName}Api.remove(row.id).then((msg) => {
-        loading.close();
-        EleMessage.success(msg);
-        reload();
-      }).catch((e) => {
-        loading.close();
-        EleMessage.error(e.message);
-      });
-    }).catch(() => {});
-  };
-
-  /** 修改${modelCaption}状态 */
-  const editStatus = (checked, row) => {
-    const status = checked ? 1 : 0;
-    ${menuName}Api.updateStatus(row.id, status)
-      .then((msg) => {
-        row.status = status;
-        EleMessage.success(msg);
-      })
-      .catch((e) => {
-        EleMessage.error(e.message);
-      });
-  };
-</script>

+ 0 - 47
src/main/java/com/mrxu/admin/generator/template/newSearch.vue

@@ -1,47 +0,0 @@
-<!-- 搜索表单 -->
-<template>
-  <el-form @keyup.enter="search" @submit.prevent="">
-    <el-row :gutter="8">
-      <el-col :lg="6" :md="12" :sm="12" :xs="24">
-        <el-form-item label="名称">
-          <el-input clearable v-model.trim="form.name" placeholder="请输入${modelCaption}名称模糊匹配"/>
-        </el-form-item>
-      </el-col>
-      <el-col :lg="12" :md="12" :sm="12" :xs="24">
-        <el-form-item label-width="16px">
-          <el-button type="primary" @click="search" :icon="MenuIcons.SearchOutlined">查询</el-button>
-          <el-button @click="reset" :icon="MenuIcons.UndoOutlined">重置</el-button>
-          <el-button v-permission="'${modelName}:${menuName}:update'" type="primary" class="ele-btn-icon" :icon="MenuIcons.PlusOutlined" @click="openEdit()">新建</el-button>
-        </el-form-item>
-      </el-col>
-    </el-row>
-  </el-form>
-</template>
-
-<script setup>
-  import { useFormData } from '@/utils/use-form-data';
-  import * as MenuIcons from '@/layout/menu-icons';
-
-  const emit = defineEmits(['search']);
-
-  /** 表单数据 */
-  const [form, resetFields] = useFormData({
-    name: ''
-  });
-
-  /** 搜索 */
-  const search = () => {
-    emit('search', { ...form });
-  };
-
-  /** 打开编辑弹窗 */
-  const openEdit = () => {
-    emit('openEdit',null);
-  };
-
-  /**  重置 */
-  const reset = () => {
-    resetFields();
-    search();
-  };
-</script>

+ 0 - 25
src/main/java/com/mrxu/admin/generator/template/service.ftl

@@ -1,25 +0,0 @@
-package com.mrxu.${modelName}.service;
-
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.mrxu.framework.boot.web.BaseService;
-import com.mrxu.framework.boot.bean.PageResult;
-import com.mrxu.${modelName}.entity.${className};
-import com.mrxu.${modelName}.mapper.${className}Mapper;
-import com.mrxu.${modelName}.query.${className}Dto;
-
-@Service
-@RequiredArgsConstructor(onConstructor = @__(@Autowired))
-public class ${className}Service extends BaseService<${className}Mapper,${className}> {
-
-	public PageResult<${className}> page(String tenantId,${className}Dto dto) {
-		dto.setTenantId(tenantId);
-		List<${className}> list = baseMapper.page(dto);
-		return new PageResult(list,dto);
-	}
-
-}

+ 2 - 2
src/main/java/com/mrxu/admin/shiro/UserRealm.java

@@ -44,8 +44,8 @@ public class UserRealm extends AuthorizingRealm {
         if(StrFunc.equals(username,shiroProperties.getSuperAdmin())) {
             sysUser = new SysUser();
             sysUser.setId(0);
-            sysUser.setGroupId("10000");
-            sysUser.setTenantId("60000");
+            sysUser.setGroupId("1000");
+            sysUser.setTenantId("6019");
             sysUser.setName("超级管理员");
             sysUser.setStatus(MrxuConst.enable);
             sysUser.setUsername(username);

+ 0 - 60
src/main/java/com/mrxu/base/entity/OperateLog.java

@@ -1,60 +0,0 @@
-package com.mrxu.base.entity;
-
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.mrxu.framework.boot.bean.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import javax.validation.constraints.Size;
-
-@TableName("operate_log")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ApiModel("操作日志")
-public class OperateLog extends BaseEntity {
-
-    private static final long serialVersionUID = -1L;
-
-	@ApiModelProperty(value = "租户id")
-	@TableField("tenant_id")
-	@Size(max=32)
-	private String tenantId;
-
-	@ApiModelProperty(value = "名称")
-	@TableField("name")
-	@Size(max=64)
-	private String name;
-
-	@ApiModelProperty(value = "日志类型")
-	@TableField("type")
-	@Size(max=32)
-	private String type;
-
-	@ApiModelProperty(value = "入参")
-	@TableField("in_param")
-	@Size(max=4096)
-	private String inParam;
-
-	@ApiModelProperty(value = "出参")
-	@TableField("out_param")
-	@Size(max=4096)
-	private String outParam;
-
-	@ApiModelProperty(value = "操作人ip")
-	@TableField("ip")
-	@Size(max=32)
-	private String ip;
-
-	@ApiModelProperty(value = "耗时")
-	@TableField("take_time")
-	private long takeTime;
-
-	@ApiModelProperty(value = "操作人")
-	@TableField("operator")
-	@Size(max=64)
-	private String operator;
-
-}

+ 0 - 2
src/main/java/com/mrxu/base/entity/SysUser.java

@@ -2,7 +2,6 @@ package com.mrxu.base.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.mrxu.framework.boot.bean.BaseEntity;
 import com.mrxu.framework.common.util.StrFunc;
@@ -17,7 +16,6 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-@TableName("sys_user")
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ApiModel("用户")

+ 1 - 1
src/main/resources/application-dev.yml

@@ -7,7 +7,7 @@ spring:
     port: 6379
     password: mrxudms@2015
   datasource:
-    url: jdbc:mysql://110.42.247.201:3306/mrxu_all_v2?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
+    url: jdbc:mysql://110.42.247.201:3306/mrxu_yolo?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false
     username: root
     password: xjw123
     driver-class-name: com.mysql.cj.jdbc.Driver

+ 0 - 3
src/main/resources/templates/index.html

@@ -82,9 +82,6 @@
                     <cite> ${so.principal('name')!(so.principal('username')!)}</cite>
                 </a>
                 <dl class="layui-nav-child">
-                    <!--<dd lay-unselect><a ew-href="sys/user/selfinfo.html"><i class="layui-icon layui-icon layui-icon-username"></i>&nbsp;个人信息</a></dd>-->
-                    <dd lay-unselect><a ew-event="psw" data-url="/tpl/password"><i class="layui-icon layui-icon layui-icon-password"></i>&nbsp;修改密码</a></dd>
-                    <hr>
                     <dd lay-unselect><a ew-event="logout" data-url="/logout"><i class="layui-icon layui-icon-return"></i>&nbsp;退出</a></dd>
                 </dl>
             </li>