From b4ded9548cb7045712e71917c8f21f7a98ff73b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E8=AF=BA?= <1253070437@qq.com> Date: Mon, 1 Mar 2021 12:58:31 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=9B=B4=E6=96=B0=E3=80=91v1.3?= =?UTF-8?q?=E7=89=88=E6=9C=AC=EF=BC=9A=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=A2=9E=E5=BC=BA=EF=BC=8C=E9=85=8D=E7=BD=AE=E6=AF=8F=E4=B8=AA?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=9A=84=E4=BD=9C=E7=94=A8=E5=9F=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _sql/xiaonuo-vue-pub-oracle.sql | 142 ++++++++- _sql/xiaonuo-vue-pub.sql | 97 +++++- .../gen/sysCodeGenerateConfigManage.js | 29 ++ .../components/GlobalFooter/GlobalFooter.vue | 2 +- _web/src/layouts/UserLayout.vue | 2 +- _web/src/utils/filter.js | 10 + _web/src/views/gen/codeGenerate/index.vue | 173 ++++++---- .../views/gen/codeGenerate/indexConfig.vue | 230 ++++++++++++++ .../xiaonuo/generate/core/config/Config.java | 16 +- .../core/context/XnVelocityContext.java | 26 +- .../generate/core/enums/QueryTypeEnum.java | 56 ++++ .../generate/core/param/XnCodeGenParam.java | 5 +- .../generate/core/tool/JavaEffTool.java | 30 ++ .../generate/core/tool/JavaSqlTool.java | 2 +- .../controller/CodeGenerateController.java | 16 +- .../SysCodeGenerateConfigController.java | 93 ++++++ .../modular/entity/SysCodeGenerateConfig.java | 136 ++++++++ .../SysCodeGenerateConfigExceptionEnum.java | 64 ++++ .../modular/mapper/CodeGenerateMapper.java | 3 +- .../mapper/SysCodeGenerateConfigMapper.java | 37 +++ .../mapping/SysCodeGenerateConfigMapper.xml | 5 + .../modular/param/CodeGenerateParam.java | 1 - .../param/SysCodeGenerateConfigParam.java | 138 ++++++++ .../modular/service/CodeGenerateService.java | 1 - .../service/SysCodeGenerateConfigService.java | 91 ++++++ .../service/impl/CodeGenerateServiceImpl.java | 65 ++-- .../SysCodeGenerateConfigServiceImpl.java | 160 ++++++++++ .../resources/template/Controller.java.vm | 6 +- .../src/main/resources/template/Param.java.vm | 24 +- .../resources/template/ServiceImpl.java.vm | 40 +-- .../main/resources/template/XnMysql.sql.vm | 34 ++ .../main/resources/template/addForm.vue.vm | 118 ++++++- .../main/resources/template/editForm.vue.vm | 174 +++++++++- .../main/resources/template/entity.java.vm | 17 +- .../src/main/resources/template/index.vue.vm | 300 +++++++++++++++--- 35 files changed, 2108 insertions(+), 235 deletions(-) create mode 100644 _web/src/api/modular/gen/sysCodeGenerateConfigManage.js create mode 100644 _web/src/views/gen/codeGenerate/indexConfig.vue create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/enums/QueryTypeEnum.java create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/tool/JavaEffTool.java create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/controller/SysCodeGenerateConfigController.java create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/entity/SysCodeGenerateConfig.java create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/enums/SysCodeGenerateConfigExceptionEnum.java create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/SysCodeGenerateConfigMapper.java create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/mapping/SysCodeGenerateConfigMapper.xml create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/param/SysCodeGenerateConfigParam.java create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/SysCodeGenerateConfigService.java create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/impl/SysCodeGenerateConfigServiceImpl.java create mode 100644 xiaonuo-base/xiaonuo-gen/src/main/resources/template/XnMysql.sql.vm diff --git a/_sql/xiaonuo-vue-pub-oracle.sql b/_sql/xiaonuo-vue-pub-oracle.sql index 4bfaaab9..33aca39e 100644 --- a/_sql/xiaonuo-vue-pub-oracle.sql +++ b/_sql/xiaonuo-vue-pub-oracle.sql @@ -11,7 +11,7 @@ Target Server Version : 110200 File Encoding : 65001 - Date: 09/01/2021 18:52:37 + Date: 01/03/2021 12:47:20 */ @@ -83,6 +83,81 @@ COMMENT ON COLUMN "SYS_CODE_GENERATE"."UPDATE_USER" IS '更新人'; COMMENT ON COLUMN "SYS_CODE_GENERATE"."UPDATE_TIME" IS '更新时间'; COMMENT ON TABLE "SYS_CODE_GENERATE" IS '代码生成基础配置'; +-- ---------------------------- +-- Records of sys_code_generate +-- ---------------------------- +INSERT INTO "SYS_CODE_GENERATE" VALUES ('1362310959781744641', 'yubaoshan、xuyuxiang、dongxiayu', 'CodeGenTest', 'Y', '2', 'xn_code_gen_test', 'com.cn.xiaonuo', 'codegentest', '测试', '1265476890672672808', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for sys_code_generate_config +-- ---------------------------- +CREATE TABLE "SYS_CODE_GENERATE_CONFIG" ( + "ID" NUMBER(20) NOT NULL , + "CODE_GEN_ID" NUMBER(20) , + "COLUMN_NAME" VARCHAR2(255) , + "JAVA_NAME" VARCHAR2(255) , + "DATA_TYPE" VARCHAR2(255) , + "COLUMN_COMMENT" NVARCHAR2(255) , + "JAVA_TYPE" VARCHAR2(255) , + "EFFECT_TYPE" VARCHAR2(255) , + "DICT_TYPE_CODE" VARCHAR2(255) , + "WHETHER_TABLE" VARCHAR2(255) , + "WHETHER_ADD_UPDATE" VARCHAR2(255) , + "WHETHER_RETRACT" VARCHAR2(255) , + "WHETHER_REQUIRED" VARCHAR2(255) , + "QUERY_WHETHER" VARCHAR2(255) , + "QUERY_TYPE" VARCHAR2(255) , + "COLUMN_KEY" VARCHAR2(255) , + "COLUMN_KEY_NAME" VARCHAR2(255) , + "WHETHER_COMMON" VARCHAR2(255) , + "CREATE_TIME" DATE , + "CREATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) +) +; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."ID" IS '主键'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."CODE_GEN_ID" IS '代码生成主表ID'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."COLUMN_NAME" IS '数据库字段名'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."JAVA_NAME" IS 'java类字段名'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."DATA_TYPE" IS '物理类型'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."COLUMN_COMMENT" IS '字段描述'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."JAVA_TYPE" IS 'java类型'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."EFFECT_TYPE" IS '作用类型(字典)'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."DICT_TYPE_CODE" IS '字典code'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_TABLE" IS '列表展示'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_ADD_UPDATE" IS '增改'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_RETRACT" IS '列表是否缩进(字典)'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_REQUIRED" IS '是否必填(字典)'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."QUERY_WHETHER" IS '是否是查询条件'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."QUERY_TYPE" IS '查询方式'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."COLUMN_KEY" IS '主键'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."COLUMN_KEY_NAME" IS '主外键名称'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."WHETHER_COMMON" IS '是否是通用字段'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "SYS_CODE_GENERATE_CONFIG"."UPDATE_USER" IS '修改人'; +COMMENT ON TABLE "SYS_CODE_GENERATE_CONFIG" IS '代码生成详细配置'; + +-- ---------------------------- +-- Records of sys_code_generate_config +-- ---------------------------- +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310959903379458', '1362310959781744641', 'id', 'id', 'bigint', '主键', 'Long', 'input', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', 'PRI', 'Id', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310959941128193', '1362310959781744641', 'name', 'name', 'varchar', '姓名', 'String', 'input', NULL, 'Y', 'Y', 'N', 'Y', 'Y', 'like', '', 'Name', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310959978876929', '1362310959781744641', 'age', 'age', 'int', '年龄', 'Integer', 'input', NULL, 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Age', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960008237058', '1362310959781744641', 'interest', 'interest', 'varchar', '兴趣', 'String', 'checkbox', 'sex', 'Y', 'Y', 'N', 'Y', 'N', 'eq', '', 'Interest', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960033402881', '1362310959781744641', 'switchTest', 'switchtest', 'varchar', '开关', 'String', 'radio', 'yes_or_no', 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Switchtest', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960062763009', '1362310959781744641', 'birthday', 'birthday', 'date', '日期', 'Date', 'datepicker', NULL, 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Birthday', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960096317442', '1362310959781744641', 'whether', 'whether', 'varchar', '是否已婚', 'String', 'select', 'yes_or_no', 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Whether', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960121483266', '1362310959781744641', 'explainTest', 'explaintest', 'varchar', '简介', 'String', 'textarea', NULL, 'N', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Explain', 'N', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960150843393', '1362310959781744641', 'create_time', 'createTime', 'datetime', '创建时间', 'Date', 'datepicker', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'CreateTime', 'Y', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960176009218', '1362310959781744641', 'create_user', 'createUser', 'bigint', '', 'Long', 'input', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'CreateUser', 'Y', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960201175041', '1362310959781744641', 'update_time', 'updateTime', 'datetime', '', 'Date', 'datepicker', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'UpdateTime', 'Y', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_CODE_GENERATE_CONFIG" VALUES ('1362310960234729473', '1362310959781744641', 'update_user', 'updateUser', 'bigint', '', 'Long', 'input', NULL, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'UpdateUser', 'Y', TO_DATE('2021-02-18 16:00:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-18 16:02:31', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +COMMIT; + -- ---------------------------- -- Table structure for sys_config -- ---------------------------- @@ -253,6 +328,29 @@ INSERT INTO "SYS_DICT_DATA" VALUES ('1291390260160299009', '1291390159941599233' INSERT INTO "SYS_DICT_DATA" VALUES ('1291390315437031426', '1291390159941599233', '否', 'false', '100', '否', '2', TO_DATE('2020-08-06 23:06:59', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_DATA" VALUES ('1342446007168466945', '1342445962104864770', '下载压缩包', '1', '100', '下载压缩包', '0', TO_DATE('2020-12-25 20:24:04', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_DATA" VALUES ('1342446035433881601', '1342445962104864770', '生成到本项目', '2', '100', '生成到本项目', '0', TO_DATE('2020-12-25 20:24:11', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358094655567454210', '1358094419419750401', '输入框', 'input', '100', '输入框', '0', TO_DATE('2021-02-07 00:46:13', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-08 01:01:28', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358094740510498817', '1358094419419750401', '时间选择', 'datepicker', '100', '时间选择', '0', TO_DATE('2021-02-07 00:46:33', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-08 01:04:07', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358094793149014017', '1358094419419750401', '下拉框', 'select', '100', '下拉框', '0', TO_DATE('2021-02-07 00:46:46', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358095496009506817', '1358094419419750401', '单选框', 'radio', '100', '单选框', '0', TO_DATE('2021-02-07 00:49:33', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358095673084633090', '1358094419419750401', '开关', 'switch', '100', '开关', '2', TO_DATE('2021-02-07 00:50:15', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-11 19:07:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358458689433190402', '1358457818733428737', '等于', 'eq', '1', '等于', '0', TO_DATE('2021-02-08 00:52:45', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:35:36', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358458785168179202', '1358457818733428737', '模糊', 'like', '2', '模糊', '0', TO_DATE('2021-02-08 00:53:08', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:35:46', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358460475682406401', '1358094419419750401', '多选框', 'checkbox', '100', '多选框', '0', TO_DATE('2021-02-08 00:59:51', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358460819019743233', '1358094419419750401', '数字输入框', 'inputnumber', '100', '数字输入框', '0', TO_DATE('2021-02-08 01:01:13', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358470210267725826', '1358470065111252994', 'Long', 'Long', '100', 'Long', '0', TO_DATE('2021-02-08 01:38:32', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358470239351029762', '1358470065111252994', 'String', 'String', '100', 'String', '0', TO_DATE('2021-02-08 01:38:39', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358470265640927233', '1358470065111252994', 'Date', 'Date', '100', 'Date', '0', TO_DATE('2021-02-08 01:38:45', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358470300168437761', '1358470065111252994', 'Integer', 'Integer', '100', 'Integer', '0', TO_DATE('2021-02-08 01:38:53', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358470697377415169', '1358470065111252994', 'boolean', 'boolean', '100', 'boolean', '0', TO_DATE('2021-02-08 01:40:28', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-08 01:40:47', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358471133434036226', '1358470065111252994', 'int', 'int', '100', 'int', '0', TO_DATE('2021-02-08 01:42:12', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358471188291338241', '1358470065111252994', 'double', 'double', '100', 'double', '0', TO_DATE('2021-02-08 01:42:25', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358756511688761346', '1358457818733428737', '大于', 'gt', '3', '大于', '0', TO_DATE('2021-02-08 20:36:12', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:24', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358756547159990274', '1358457818733428737', '小于', 'lt', '4', '大于', '0', TO_DATE('2021-02-08 20:36:20', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:29', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358756609990664193', '1358457818733428737', '不等于', 'ne', '7', '不等于', '0', TO_DATE('2021-02-08 20:36:35', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:46', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358756685030957057', '1358457818733428737', '大于等于', 'ge', '5', '大于等于', '0', TO_DATE('2021-02-08 20:36:53', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:35', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1358756800525312001', '1358457818733428737', '小于等于', 'le', '6', '小于等于', '0', TO_DATE('2021-02-08 20:37:20', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:40', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_DATA" VALUES ('1360529773814083586', '1358094419419750401', '文本域', 'textarea', '100', '文本域', '0', TO_DATE('2021-02-13 18:02:30', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_DATA" VALUES ('1360606105914732545', '1358457818733428737', '不为空', 'isNotNull', '8', '不为空', '0', TO_DATE('2021-02-13 23:05:49', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-13 23:45:50', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); COMMIT; -- ---------------------------- @@ -304,6 +402,9 @@ INSERT INTO "SYS_DICT_TYPE" VALUES ('1278911800547147777', '通知公告类型', INSERT INTO "SYS_DICT_TYPE" VALUES ('1278911952657776642', '通知公告状态', 'notice_status', '100', '通知公告状态', '0', TO_DATE('2020-07-03 12:42:25', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_TYPE" VALUES ('1291390159941599233', '是否boolean', 'yes_true_false', '100', '是否boolean', '2', TO_DATE('2020-08-06 23:06:22', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); INSERT INTO "SYS_DICT_TYPE" VALUES ('1342445962104864770', '代码生成方式', 'code_gen_create_type', '100', '代码生成方式', '0', TO_DATE('2020-12-25 20:23:53', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_TYPE" VALUES ('1358094419419750401', '代码生成作用类型', 'code_gen_effect_type', '100', '代码生成作用类型', '0', TO_DATE('2021-02-07 00:45:16', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', TO_DATE('2021-02-08 00:47:48', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808'); +INSERT INTO "SYS_DICT_TYPE" VALUES ('1358457818733428737', '代码生成查询类型', 'code_gen_query_type', '100', '代码生成查询类型', '0', TO_DATE('2021-02-08 00:49:18', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); +INSERT INTO "SYS_DICT_TYPE" VALUES ('1358470065111252994', '代码生成java类型', 'code_gen_java_type', '100', '代码生成java类型', '0', TO_DATE('2021-02-08 01:37:57', 'SYYYY-MM-DD HH24:MI:SS'), '1265476890672672808', NULL, NULL); COMMIT; -- ---------------------------- @@ -1270,6 +1371,35 @@ COMMENT ON COLUMN "SYS_VIS_LOG"."VIS_TIME" IS '访问时间'; COMMENT ON COLUMN "SYS_VIS_LOG"."ACCOUNT" IS '访问账号'; COMMENT ON TABLE "SYS_VIS_LOG" IS '系统访问日志表'; +-- ---------------------------- +-- Table structure for xn_code_gen_test +-- ---------------------------- +CREATE TABLE "XN_CODE_GEN_TEST" ( + "ID" NUMBER(20) NOT NULL , + "NAME" NVARCHAR2(255) , + "AGE" NUMBER(11) , + "INTEREST" NVARCHAR2(255) , + "SWITCHTEST" NVARCHAR2(255) , + "BIRTHDAY" DATE , + "WHETHER" NVARCHAR2(255) , + "EXPLAIN_TEST" NVARCHAR2(255) , + "CREATE_TIME" DATE , + "CREATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) +) +; +COMMENT ON COLUMN "XN_CODE_GEN_TEST"."ID" IS '主键'; +COMMENT ON COLUMN "XN_CODE_GEN_TEST"."NAME" IS '姓名'; +COMMENT ON COLUMN "XN_CODE_GEN_TEST"."AGE" IS '年龄'; +COMMENT ON COLUMN "XN_CODE_GEN_TEST"."INTEREST" IS '兴趣'; +COMMENT ON COLUMN "XN_CODE_GEN_TEST"."SWITCHTEST" IS '开关'; +COMMENT ON COLUMN "XN_CODE_GEN_TEST"."BIRTHDAY" IS '日期'; +COMMENT ON COLUMN "XN_CODE_GEN_TEST"."WHETHER" IS '是否已婚'; +COMMENT ON COLUMN "XN_CODE_GEN_TEST"."EXPLAIN_TEST" IS '简介'; +COMMENT ON COLUMN "XN_CODE_GEN_TEST"."CREATE_TIME" IS '创建时间'; +COMMENT ON TABLE "XN_CODE_GEN_TEST" IS '测试'; + -- ---------------------------- -- Primary Key structure for table sys_app -- ---------------------------- @@ -1280,6 +1410,11 @@ ALTER TABLE "SYS_APP" ADD PRIMARY KEY ("ID"); -- ---------------------------- ALTER TABLE "SYS_CODE_GENERATE" ADD PRIMARY KEY ("ID"); +-- ---------------------------- +-- Primary Key structure for table sys_code_generate_config +-- ---------------------------- +ALTER TABLE "SYS_CODE_GENERATE_CONFIG" ADD PRIMARY KEY ("ID"); + -- ---------------------------- -- Primary Key structure for table sys_config -- ---------------------------- @@ -1400,3 +1535,8 @@ ALTER TABLE "SYS_USER_ROLE" ADD PRIMARY KEY ("ID"); -- Primary Key structure for table sys_vis_log -- ---------------------------- ALTER TABLE "SYS_VIS_LOG" ADD PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Primary Key structure for table xn_code_gen_test +-- ---------------------------- +ALTER TABLE "XN_CODE_GEN_TEST" ADD PRIMARY KEY ("ID"); diff --git a/_sql/xiaonuo-vue-pub.sql b/_sql/xiaonuo-vue-pub.sql index 19cc7fa2..ca6cd4e8 100644 --- a/_sql/xiaonuo-vue-pub.sql +++ b/_sql/xiaonuo-vue-pub.sql @@ -1,7 +1,7 @@ /* Navicat MySQL Data Transfer -Source Server : ybs +Source Server : yubaoshan Source Server Version : 50710 Source Host : localhost:3306 Source Database : xiaonuo-vue-pub @@ -10,7 +10,7 @@ Target Server Type : MYSQL Target Server Version : 50710 File Encoding : 65001 -Date: 2020-12-25 20:25:05 +Date: 2021-03-01 12:24:12 */ SET FOREIGN_KEY_CHECKS=0; @@ -63,6 +63,53 @@ CREATE TABLE `sys_code_generate` ( -- ---------------------------- -- Records of sys_code_generate -- ---------------------------- +INSERT INTO `sys_code_generate` VALUES ('1362310959781744641', 'yubaoshan、xuyuxiang、dongxiayu', 'CodeGenTest', 'Y', '2', 'xn_code_gen_test', 'com.cn.xiaonuo', 'codegentest', '测试', '1265476890672672808', '2021-02-18 16:00:18', null, null); + +-- ---------------------------- +-- Table structure for `sys_code_generate_config` +-- ---------------------------- +DROP TABLE IF EXISTS `sys_code_generate_config`; +CREATE TABLE `sys_code_generate_config` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `code_gen_id` bigint(20) DEFAULT NULL COMMENT '代码生成主表ID', + `column_name` varchar(255) DEFAULT NULL COMMENT '数据库字段名', + `java_name` varchar(255) DEFAULT NULL COMMENT 'java类字段名', + `data_type` varchar(255) DEFAULT NULL COMMENT '物理类型', + `column_comment` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '字段描述', + `java_type` varchar(255) DEFAULT NULL COMMENT 'java类型', + `effect_type` varchar(255) DEFAULT NULL COMMENT '作用类型(字典)', + `dict_type_code` varchar(255) DEFAULT NULL COMMENT '字典code', + `whether_table` varchar(255) DEFAULT NULL COMMENT '列表展示', + `whether_add_update` varchar(255) DEFAULT NULL COMMENT '增改', + `whether_retract` varchar(255) DEFAULT NULL COMMENT '列表是否缩进(字典)', + `whether_required` varchar(255) DEFAULT NULL COMMENT '是否必填(字典)', + `query_whether` varchar(255) DEFAULT NULL COMMENT '是否是查询条件', + `query_type` varchar(255) DEFAULT NULL COMMENT '查询方式', + `column_key` varchar(255) DEFAULT NULL COMMENT '主键', + `column_key_name` varchar(255) DEFAULT NULL COMMENT '主外键名称', + `whether_common` varchar(255) DEFAULT NULL COMMENT '是否是通用字段', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `create_user` bigint(255) DEFAULT NULL COMMENT '创建人', + `update_time` datetime DEFAULT NULL COMMENT '修改时间', + `update_user` bigint(20) DEFAULT NULL COMMENT '修改人', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='代码生成详细配置'; + +-- ---------------------------- +-- Records of sys_code_generate_config +-- ---------------------------- +INSERT INTO `sys_code_generate_config` VALUES ('1362310959903379458', '1362310959781744641', 'id', 'id', 'bigint', '主键', 'Long', 'input', null, 'N', 'N', 'N', 'N', 'N', 'eq', 'PRI', 'Id', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310959941128193', '1362310959781744641', 'name', 'name', 'varchar', '姓名', 'String', 'input', null, 'Y', 'Y', 'N', 'Y', 'Y', 'like', '', 'Name', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310959978876929', '1362310959781744641', 'age', 'age', 'int', '年龄', 'Integer', 'input', null, 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Age', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310960008237058', '1362310959781744641', 'interest', 'interest', 'varchar', '兴趣', 'String', 'checkbox', 'sex', 'Y', 'Y', 'N', 'Y', 'N', 'eq', '', 'Interest', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310960033402881', '1362310959781744641', 'switchTest', 'switchtest', 'varchar', '开关', 'String', 'radio', 'yes_or_no', 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Switchtest', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310960062763009', '1362310959781744641', 'birthday', 'birthday', 'date', '日期', 'Date', 'datepicker', null, 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Birthday', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310960096317442', '1362310959781744641', 'whether', 'whether', 'varchar', '是否已婚', 'String', 'select', 'yes_or_no', 'Y', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Whether', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310960121483266', '1362310959781744641', 'explainTest', 'explaintest', 'varchar', '简介', 'String', 'textarea', null, 'N', 'Y', 'N', 'Y', 'Y', 'eq', '', 'Explain', 'N', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310960150843393', '1362310959781744641', 'create_time', 'createTime', 'datetime', '创建时间', 'Date', 'datepicker', null, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'CreateTime', 'Y', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310960176009218', '1362310959781744641', 'create_user', 'createUser', 'bigint', '', 'Long', 'input', null, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'CreateUser', 'Y', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310960201175041', '1362310959781744641', 'update_time', 'updateTime', 'datetime', '', 'Date', 'datepicker', null, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'UpdateTime', 'Y', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); +INSERT INTO `sys_code_generate_config` VALUES ('1362310960234729473', '1362310959781744641', 'update_user', 'updateUser', 'bigint', '', 'Long', 'input', null, 'N', 'N', 'N', 'N', 'N', 'eq', '', 'UpdateUser', 'Y', '2021-02-18 16:00:18', '1265476890672672808', '2021-02-18 16:02:31', '1265476890672672808'); -- ---------------------------- -- Table structure for `sys_config` @@ -210,6 +257,29 @@ INSERT INTO `sys_dict_data` VALUES ('1291390260160299009', '1291390159941599233' INSERT INTO `sys_dict_data` VALUES ('1291390315437031426', '1291390159941599233', '否', 'false', '100', '否', '2', '2020-08-06 23:06:59', '1265476890672672808', null, null); INSERT INTO `sys_dict_data` VALUES ('1342446007168466945', '1342445962104864770', '下载压缩包', '1', '100', '下载压缩包', '0', '2020-12-25 20:24:04', '1265476890672672808', null, null); INSERT INTO `sys_dict_data` VALUES ('1342446035433881601', '1342445962104864770', '生成到本项目', '2', '100', '生成到本项目', '0', '2020-12-25 20:24:11', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358094655567454210', '1358094419419750401', '输入框', 'input', '100', '输入框', '0', '2021-02-07 00:46:13', '1265476890672672808', '2021-02-08 01:01:28', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358094740510498817', '1358094419419750401', '时间选择', 'datepicker', '100', '时间选择', '0', '2021-02-07 00:46:33', '1265476890672672808', '2021-02-08 01:04:07', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358094793149014017', '1358094419419750401', '下拉框', 'select', '100', '下拉框', '0', '2021-02-07 00:46:46', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358095496009506817', '1358094419419750401', '单选框', 'radio', '100', '单选框', '0', '2021-02-07 00:49:33', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358095673084633090', '1358094419419750401', '开关', 'switch', '100', '开关', '2', '2021-02-07 00:50:15', '1265476890672672808', '2021-02-11 19:07:18', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358458689433190402', '1358457818733428737', '等于', 'eq', '1', '等于', '0', '2021-02-08 00:52:45', '1265476890672672808', '2021-02-13 23:35:36', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358458785168179202', '1358457818733428737', '模糊', 'like', '2', '模糊', '0', '2021-02-08 00:53:08', '1265476890672672808', '2021-02-13 23:35:46', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358460475682406401', '1358094419419750401', '多选框', 'checkbox', '100', '多选框', '0', '2021-02-08 00:59:51', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358460819019743233', '1358094419419750401', '数字输入框', 'inputnumber', '100', '数字输入框', '0', '2021-02-08 01:01:13', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358470210267725826', '1358470065111252994', 'Long', 'Long', '100', 'Long', '0', '2021-02-08 01:38:32', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358470239351029762', '1358470065111252994', 'String', 'String', '100', 'String', '0', '2021-02-08 01:38:39', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358470265640927233', '1358470065111252994', 'Date', 'Date', '100', 'Date', '0', '2021-02-08 01:38:45', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358470300168437761', '1358470065111252994', 'Integer', 'Integer', '100', 'Integer', '0', '2021-02-08 01:38:53', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358470697377415169', '1358470065111252994', 'boolean', 'boolean', '100', 'boolean', '0', '2021-02-08 01:40:28', '1265476890672672808', '2021-02-08 01:40:47', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358471133434036226', '1358470065111252994', 'int', 'int', '100', 'int', '0', '2021-02-08 01:42:12', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358471188291338241', '1358470065111252994', 'double', 'double', '100', 'double', '0', '2021-02-08 01:42:25', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1358756511688761346', '1358457818733428737', '大于', 'gt', '3', '大于', '0', '2021-02-08 20:36:12', '1265476890672672808', '2021-02-13 23:45:24', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358756547159990274', '1358457818733428737', '小于', 'lt', '4', '大于', '0', '2021-02-08 20:36:20', '1265476890672672808', '2021-02-13 23:45:29', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358756609990664193', '1358457818733428737', '不等于', 'ne', '7', '不等于', '0', '2021-02-08 20:36:35', '1265476890672672808', '2021-02-13 23:45:46', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358756685030957057', '1358457818733428737', '大于等于', 'ge', '5', '大于等于', '0', '2021-02-08 20:36:53', '1265476890672672808', '2021-02-13 23:45:35', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1358756800525312001', '1358457818733428737', '小于等于', 'le', '6', '小于等于', '0', '2021-02-08 20:37:20', '1265476890672672808', '2021-02-13 23:45:40', '1265476890672672808'); +INSERT INTO `sys_dict_data` VALUES ('1360529773814083586', '1358094419419750401', '文本域', 'textarea', '100', '文本域', '0', '2021-02-13 18:02:30', '1265476890672672808', null, null); +INSERT INTO `sys_dict_data` VALUES ('1360606105914732545', '1358457818733428737', '不为空', 'isNotNull', '8', '不为空', '0', '2021-02-13 23:05:49', '1265476890672672808', '2021-02-13 23:45:50', '1265476890672672808'); -- ---------------------------- -- Table structure for `sys_dict_type` @@ -250,6 +320,9 @@ INSERT INTO `sys_dict_type` VALUES ('1278911800547147777', '通知公告类型', INSERT INTO `sys_dict_type` VALUES ('1278911952657776642', '通知公告状态', 'notice_status', '100', '通知公告状态', '0', '2020-07-03 12:42:25', '1265476890672672808', null, null); INSERT INTO `sys_dict_type` VALUES ('1291390159941599233', '是否boolean', 'yes_true_false', '100', '是否boolean', '2', '2020-08-06 23:06:22', '1265476890672672808', null, null); INSERT INTO `sys_dict_type` VALUES ('1342445962104864770', '代码生成方式', 'code_gen_create_type', '100', '代码生成方式', '0', '2020-12-25 20:23:53', '1265476890672672808', null, null); +INSERT INTO `sys_dict_type` VALUES ('1358094419419750401', '代码生成作用类型', 'code_gen_effect_type', '100', '代码生成作用类型', '0', '2021-02-07 00:45:16', '1265476890672672808', '2021-02-08 00:47:48', '1265476890672672808'); +INSERT INTO `sys_dict_type` VALUES ('1358457818733428737', '代码生成查询类型', 'code_gen_query_type', '100', '代码生成查询类型', '0', '2021-02-08 00:49:18', '1265476890672672808', null, null); +INSERT INTO `sys_dict_type` VALUES ('1358470065111252994', '代码生成java类型', 'code_gen_java_type', '100', '代码生成java类型', '0', '2021-02-08 01:37:57', '1265476890672672808', null, null); -- ---------------------------- -- Table structure for `sys_emp` @@ -1028,3 +1101,23 @@ CREATE TABLE `sys_vis_log` ( -- ---------------------------- -- Records of sys_vis_log -- ---------------------------- + +-- ---------------------------- +-- Table structure for `xn_code_gen_test` +-- ---------------------------- +DROP TABLE IF EXISTS `xn_code_gen_test`; +CREATE TABLE `xn_code_gen_test` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `name` varchar(255) DEFAULT NULL COMMENT '姓名', + `age` int(11) DEFAULT NULL COMMENT '年龄', + `interest` varchar(255) DEFAULT NULL COMMENT '兴趣', + `switchTest` varchar(255) DEFAULT NULL COMMENT '开关', + `birthday` date DEFAULT NULL COMMENT '日期', + `whether` varchar(255) DEFAULT NULL COMMENT '是否已婚', + `explain_test` varchar(255) DEFAULT NULL COMMENT '简介', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `create_user` bigint(20) DEFAULT NULL, + `update_time` datetime DEFAULT NULL, + `update_user` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试'; diff --git a/_web/src/api/modular/gen/sysCodeGenerateConfigManage.js b/_web/src/api/modular/gen/sysCodeGenerateConfigManage.js new file mode 100644 index 00000000..e61944c3 --- /dev/null +++ b/_web/src/api/modular/gen/sysCodeGenerateConfigManage.js @@ -0,0 +1,29 @@ +import { axios } from '@/utils/request' + +/** + * 代码生成详细配置列表 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ +export function sysCodeGenerateConfigList (parameter) { + return axios({ + url: '/sysCodeGenerateConfig/list', + method: 'get', + params: parameter + }) +} + +/** + * 编辑代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ +export function sysCodeGenerateConfigEdit (parameter) { + return axios({ + url: '/sysCodeGenerateConfig/edit', + method: 'post', + data: parameter + }) +} diff --git a/_web/src/components/GlobalFooter/GlobalFooter.vue b/_web/src/components/GlobalFooter/GlobalFooter.vue index 0784f4b9..a8fe6a70 100644 --- a/_web/src/components/GlobalFooter/GlobalFooter.vue +++ b/_web/src/components/GlobalFooter/GlobalFooter.vue @@ -3,7 +3,7 @@ diff --git a/_web/src/layouts/UserLayout.vue b/_web/src/layouts/UserLayout.vue index 25f63181..efa15e07 100644 --- a/_web/src/layouts/UserLayout.vue +++ b/_web/src/layouts/UserLayout.vue @@ -22,7 +22,7 @@ 条款 diff --git a/_web/src/utils/filter.js b/_web/src/utils/filter.js index 09b629f6..5f103221 100644 --- a/_web/src/utils/filter.js +++ b/_web/src/utils/filter.js @@ -89,3 +89,13 @@ Vue.filter('dictData', function (code) { } return tree }) + +/** + * 获取所有字典数组 + * + * @author yubaoshan + * @date 2021-2-8 01:13 + */ +Vue.filter('dictDataAll', function () { + return Vue.ls.get(DICT_TYPE_TREE_DATA) +}) diff --git a/_web/src/views/gen/codeGenerate/index.vue b/_web/src/views/gen/codeGenerate/index.vue index 3381e645..1c8dcdef 100644 --- a/_web/src/views/gen/codeGenerate/index.vue +++ b/_web/src/views/gen/codeGenerate/index.vue @@ -1,75 +1,95 @@ diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/config/Config.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/config/Config.java index d5600756..4337e1c7 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/config/Config.java +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/config/Config.java @@ -19,7 +19,7 @@ public class Config { /** * 存放vm模板位置 */ - public static String templatePath = "template/"; + public static String templatePath = "template" + FILE_SEP; /** * 主键标识 @@ -44,12 +44,17 @@ public class Config { /** * java文件夹 */ - public static String BASE_JAVA_PAHT = "\\src\\main\\java\\"; + public static String BASE_JAVA_PAHT = FILE_SEP + "src" + FILE_SEP + "main" + FILE_SEP + "java" + FILE_SEP; /** * vue文件夹 */ - public static String BASE_VUE_PAHT = "\\_web\\src\\"; + public static String BASE_VUE_PAHT = FILE_SEP + "_web" + FILE_SEP + "src" + FILE_SEP; + + /** + * sql文件夹 + */ + public static String BASE_SQL_PAHT = FILE_SEP + "_sql" + FILE_SEP; /** * 代码生成路径 @@ -66,6 +71,7 @@ public class Config { public static String vueIndexPath; public static String vueAddFromPath; public static String vueEditFromPath; + public static String sqlPath; /** * 各个代码存放路径文件夹 @@ -84,8 +90,9 @@ public class Config { vueIndexPath = BASE_VUE_PAHT + FILE_SEP + "views" + FILE_SEP + "main" + FILE_SEP + busName + FILE_SEP; vueAddFromPath = BASE_VUE_PAHT + FILE_SEP + "views" + FILE_SEP + "main" + FILE_SEP + busName + FILE_SEP; vueEditFromPath = BASE_VUE_PAHT + FILE_SEP + "views" + FILE_SEP + "main" + FILE_SEP + busName + FILE_SEP; + sqlPath = BASE_SQL_PAHT; return new String[] { - controllerPath, entityPath, enumsPath, mapperPath, mappingPath, paramPath, servicePath, serviceImplPath, manageJsPath, vueIndexPath, vueAddFromPath, vueEditFromPath + controllerPath, entityPath, enumsPath, mapperPath, mappingPath, paramPath, servicePath, serviceImplPath, manageJsPath, vueIndexPath, vueAddFromPath, vueEditFromPath, sqlPath }; } @@ -105,6 +112,7 @@ public class Config { "index.vue.vm", "addForm.vue.vm", "editForm.vue.vm", + "XnMysql.sql.vm", }; /** diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/context/XnVelocityContext.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/context/XnVelocityContext.java index 377a8a14..afa52ea3 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/context/XnVelocityContext.java +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/context/XnVelocityContext.java @@ -1,8 +1,16 @@ package com.cn.xiaonuo.generate.core.context; +import com.baomidou.mybatisplus.annotation.IdType; +import com.cn.xiaonuo.core.enums.YesOrNotEnum; import com.cn.xiaonuo.generate.core.param.XnCodeGenParam; +import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig; +import com.cn.xiaonuo.sys.config.MybatisConfig; import org.apache.velocity.VelocityContext; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** * 设置上下文缓存 * @@ -45,7 +53,23 @@ public class XnVelocityContext { // 数据库表名 velocityContext.put("tableName", xnCodeGenParam.getTableName()); // 数据库字段 - velocityContext.put("tableField", xnCodeGenParam.getTableField()); + velocityContext.put("tableField", xnCodeGenParam.getConfigList()); + + // 前端查询所有 + List codeGenerateConfigList = new ArrayList<>(); + xnCodeGenParam.getConfigList().forEach(item -> { + if (item.getQueryWhether().equals(YesOrNotEnum.Y.getCode())) { + codeGenerateConfigList.add(item); + } + }); + velocityContext.put("queryWhetherList", codeGenerateConfigList); + + // sql中id的创建 + List idList = new ArrayList<>(); + for (int a = 0; a <= 6; a++) { + idList.add(Math.abs(UUID.randomUUID().getLeastSignificantBits())); + } + velocityContext.put("sqlMenuId", idList); return velocityContext; } diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/enums/QueryTypeEnum.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/enums/QueryTypeEnum.java new file mode 100644 index 00000000..ad406e4c --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/enums/QueryTypeEnum.java @@ -0,0 +1,56 @@ +/* +Copyright [2020] [https://www.xiaonuo.vip] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + +1.请不要删除和修改根目录下的LICENSE文件。 +2.请不要删除和修改XiaoNuo源码头部的版权声明。 +3.请保留源码和相关描述文件的项目出处,作者声明等。 +4.分发源码时候,请注明软件出处 https://gitee.com/xiaonuo/xiaonuo-vue +5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/xiaonuo/xiaonuo-vue +6.若您的项目无法满足以上几点,可申请商业授权,获取XiaoNuo商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package com.cn.xiaonuo.generate.core.enums; + +import lombok.Getter; + +/** + * 查询类型的枚举 + * + * @author yubaoshan + * @date 2021/2/8 20:31 + */ +@Getter +public enum QueryTypeEnum { + + eq("eq", "等于"), + like("like", "模糊"), + gt("gt", "大于"), + lt("lt", "小于"), + ne("ne", "不等于"), + ge("ge", "大于等于"), + le("le", "小于等于"), + isNotNull("isNotNull", "不为空"); + + private final String code; + + private final String message; + + QueryTypeEnum(String code, String message) { + this.code = code; + this.message = message; + } + +} diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/param/XnCodeGenParam.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/param/XnCodeGenParam.java index 789e0d7a..4c9d3d68 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/param/XnCodeGenParam.java +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/param/XnCodeGenParam.java @@ -25,8 +25,9 @@ XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注 package com.cn.xiaonuo.generate.core.param; import com.cn.xiaonuo.generate.core.config.Config; +import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig; +import com.cn.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam; import lombok.Data; - import java.util.List; @Data @@ -80,7 +81,7 @@ public class XnCodeGenParam { /** * 数据库表中字段集合 */ - private List tableField; + private List configList; /** * 模块名 diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/tool/JavaEffTool.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/tool/JavaEffTool.java new file mode 100644 index 00000000..b13681f8 --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/tool/JavaEffTool.java @@ -0,0 +1,30 @@ +package com.cn.xiaonuo.generate.core.tool; + +/** + * java与effect工具类 + * + * @author yubaoshan + * @date 2021-2-8 02:30 + */ +public class JavaEffTool { + + /** + * java转显示类型 + * + * @author yubaoshan + * @date 2021-2-8 02:30 + */ + public static String javaToEff (String javaType) { + if( javaType == null || javaType.trim().length() == 0 ) return javaType; + switch(javaType){ + case "String":return "input"; + case "Integer":return "input"; + case "Long":return "input"; + case "Date":return "datepicker"; + default: + System.out.println(">>> 转化失败:未发现的类型" + javaType); + break; + } + return javaType; + } +} diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/tool/JavaSqlTool.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/tool/JavaSqlTool.java index 14ae71c0..01e6d340 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/tool/JavaSqlTool.java +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/core/tool/JavaSqlTool.java @@ -47,7 +47,7 @@ public class JavaSqlTool { case "smallmoney":return "Double"; case "image":return "byte[]"; default: - System.out.println("-----------------》转化失败:未发现的类型" + sqlType); + System.out.println(">>> 转化失败:未发现的类型" + sqlType); break; } return sqlType; diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/controller/CodeGenerateController.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/controller/CodeGenerateController.java index 9a4e0a4a..2a28ba85 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/controller/CodeGenerateController.java +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/controller/CodeGenerateController.java @@ -26,19 +26,13 @@ package com.cn.xiaonuo.generate.modular.controller; import com.cn.xiaonuo.core.annotion.BusinessLog; import com.cn.xiaonuo.core.annotion.Permission; -import com.cn.xiaonuo.core.context.constant.ConstantContextHolder; import com.cn.xiaonuo.core.enums.LogAnnotionOpTypeEnum; -import com.cn.xiaonuo.core.exception.DemoException; import com.cn.xiaonuo.core.pojo.response.ResponseData; import com.cn.xiaonuo.core.pojo.response.SuccessResponseData; import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam; import com.cn.xiaonuo.generate.modular.service.CodeGenerateService; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -133,10 +127,6 @@ public class CodeGenerateController { @PostMapping("/codeGenerate/runLocal") @BusinessLog(title = "代码生成_本地项目", opType = LogAnnotionOpTypeEnum.OTHER) public ResponseData runLocal(@RequestBody @Validated(CodeGenerateParam.detail.class) CodeGenerateParam codeGenerateParam) { - // 演示环境开启,则不允许操作 - if (ConstantContextHolder.getDemoEnvFlag()) { - throw new DemoException(); - } this.codeGenerateService.runLocal(codeGenerateParam); return new SuccessResponseData(); } @@ -151,10 +141,6 @@ public class CodeGenerateController { @GetMapping("/codeGenerate/runDown") @BusinessLog(title = "代码生成_下载方式", opType = LogAnnotionOpTypeEnum.OTHER) public void runDown(@Validated(CodeGenerateParam.detail.class) CodeGenerateParam codeGenerateParam, HttpServletResponse response) { - // 演示环境开启,则不允许操作 - if (ConstantContextHolder.getDemoEnvFlag()) { - throw new DemoException(); - } this.codeGenerateService.runDown(codeGenerateParam, response); } } diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/controller/SysCodeGenerateConfigController.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/controller/SysCodeGenerateConfigController.java new file mode 100644 index 00000000..a7bbfdb6 --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/controller/SysCodeGenerateConfigController.java @@ -0,0 +1,93 @@ +/* +Copyright [2020] [https://www.xiaonuo.vip] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + +1.请不要删除和修改根目录下的LICENSE文件。 +2.请不要删除和修改XiaoNuo源码头部的版权声明。 +3.请保留源码和相关描述文件的项目出处,作者声明等。 +4.分发源码时候,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +6.若您的项目无法满足以上几点,可申请商业授权,获取XiaoNuo商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package com.cn.xiaonuo.generate.modular.controller; + +import com.cn.xiaonuo.core.annotion.BusinessLog; +import com.cn.xiaonuo.core.annotion.Permission; +import com.cn.xiaonuo.core.enums.LogAnnotionOpTypeEnum; +import com.cn.xiaonuo.core.pojo.response.ResponseData; +import com.cn.xiaonuo.core.pojo.response.SuccessResponseData; +import com.cn.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam; +import com.cn.xiaonuo.generate.modular.service.SysCodeGenerateConfigService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; + +/** + * 代码生成详细配置控制器 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ +@RestController +public class SysCodeGenerateConfigController { + + @Resource + private SysCodeGenerateConfigService sysCodeGenerateConfigService; + + /** + * 编辑代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + @Permission + @PostMapping("/sysCodeGenerateConfig/edit") + @BusinessLog(title = "代码生成详细配置_编辑", opType = LogAnnotionOpTypeEnum.EDIT) + public ResponseData edit(@RequestBody @Validated(SysCodeGenerateConfigParam.edit.class) SysCodeGenerateConfigParam sysCodeGenerateConfigParam) { + sysCodeGenerateConfigService.edit(sysCodeGenerateConfigParam.getSysCodeGenerateConfigParamList()); + return new SuccessResponseData(); + } + + /** + * 查看代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + @Permission + @GetMapping("/sysCodeGenerateConfig/detail") + @BusinessLog(title = "代码生成详细配置_查看", opType = LogAnnotionOpTypeEnum.DETAIL) + public ResponseData detail(@Validated(SysCodeGenerateConfigParam.detail.class) SysCodeGenerateConfigParam sysCodeGenerateConfigParam) { + return new SuccessResponseData(sysCodeGenerateConfigService.detail(sysCodeGenerateConfigParam)); + } + + /** + * 代码生成详细配置列表 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + @Permission + @GetMapping("/sysCodeGenerateConfig/list") + @BusinessLog(title = "代码生成详细配置_列表", opType = LogAnnotionOpTypeEnum.QUERY) + public ResponseData list(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) { + return new SuccessResponseData(sysCodeGenerateConfigService.list(sysCodeGenerateConfigParam)); + } + +} diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/entity/SysCodeGenerateConfig.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/entity/SysCodeGenerateConfig.java new file mode 100644 index 00000000..76343afa --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/entity/SysCodeGenerateConfig.java @@ -0,0 +1,136 @@ +/* +Copyright [2020] [https://www.xiaonuo.vip] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + +1.请不要删除和修改根目录下的LICENSE文件。 +2.请不要删除和修改XiaoNuo源码头部的版权声明。 +3.请保留源码和相关描述文件的项目出处,作者声明等。 +4.分发源码时候,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +6.若您的项目无法满足以上几点,可申请商业授权,获取XiaoNuo商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package com.cn.xiaonuo.generate.modular.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.cn.xiaonuo.core.pojo.base.entity.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@TableName("sys_code_generate_config") +public class SysCodeGenerateConfig extends BaseEntity { + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** + * 代码生成主表ID + */ + private Long codeGenId; + + /** + * 数据库字段名 + */ + private String columnName; + + /** + * java类字段名 + */ + private String javaName; + + /** + * 字段描述 + */ + private String columnComment; + + /** + * java类型 + */ + private String javaType; + + /** + * 作用类型(字典) + */ + private String effectType; + + /** + * 字典code + */ + private String dictTypeCode; + + /** + * 列表是否缩进(字典) + */ + private String whetherRetract; + + /** + * 是否必填(字典) + */ + private String whetherRequired; + + /** + * 是否是查询条件 + */ + private String queryWhether; + + /** + * 查询方式 + */ + private String queryType; + + /** + * 列表显示 + */ + private String whetherTable; + + /** + * 增改 + */ + private String whetherAddUpdate; + + /** + * 主外键 + */ + public String columnKey; + + /** + * 首字母大写名称(用于代码生成get set方法) + */ + public String columnKeyName; + + /** + * 数据库中类型(物理类型) + */ + public String dataType; + + /** + * 是否是通用字段 + */ + public String whetherCommon; + +} diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/enums/SysCodeGenerateConfigExceptionEnum.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/enums/SysCodeGenerateConfigExceptionEnum.java new file mode 100644 index 00000000..aa2a40dc --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/enums/SysCodeGenerateConfigExceptionEnum.java @@ -0,0 +1,64 @@ +/* +Copyright [2020] [https://www.xiaonuo.vip] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + +1.请不要删除和修改根目录下的LICENSE文件。 +2.请不要删除和修改XiaoNuo源码头部的版权声明。 +3.请保留源码和相关描述文件的项目出处,作者声明等。 +4.分发源码时候,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +6.若您的项目无法满足以上几点,可申请商业授权,获取XiaoNuo商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package com.cn.xiaonuo.generate.modular.enums; + +import com.cn.xiaonuo.core.annotion.ExpEnumType; +import com.cn.xiaonuo.core.exception.enums.abs.AbstractBaseExceptionEnum; +import com.cn.xiaonuo.core.factory.ExpEnumCodeFactory; +import com.cn.xiaonuo.sys.core.consts.SysExpEnumConstant; + +/** + * 代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ +@ExpEnumType(module = SysExpEnumConstant.XIAONUO_SYS_MODULE_EXP_CODE, kind = SysExpEnumConstant.SYS_POS_EXCEPTION_ENUM) +public enum SysCodeGenerateConfigExceptionEnum implements AbstractBaseExceptionEnum { + + /** + * 数据不存在 + */ + NOT_EXIST(1, "此数据不存在"); + + private final Integer code; + + private final String message; + SysCodeGenerateConfigExceptionEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + @Override + public Integer getCode() { + return ExpEnumCodeFactory.getExpEnumCode(this.getClass(), code); + } + + @Override + public String getMessage() { + return message; + } + +} diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/CodeGenerateMapper.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/CodeGenerateMapper.java index ed818824..0745fc23 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/CodeGenerateMapper.java +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/CodeGenerateMapper.java @@ -24,12 +24,11 @@ XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注 */ package com.cn.xiaonuo.generate.modular.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cn.xiaonuo.generate.modular.entity.CodeGenerate; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cn.xiaonuo.generate.modular.result.InforMationColumnsResult; import com.cn.xiaonuo.generate.modular.result.InformationResult; import org.apache.ibatis.annotations.Param; - import java.util.List; /** diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/SysCodeGenerateConfigMapper.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/SysCodeGenerateConfigMapper.java new file mode 100644 index 00000000..7cff1b91 --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/SysCodeGenerateConfigMapper.java @@ -0,0 +1,37 @@ +/* +Copyright [2020] [https://www.xiaonuo.vip] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + +1.请不要删除和修改根目录下的LICENSE文件。 +2.请不要删除和修改XiaoNuo源码头部的版权声明。 +3.请保留源码和相关描述文件的项目出处,作者声明等。 +4.分发源码时候,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +6.若您的项目无法满足以上几点,可申请商业授权,获取XiaoNuo商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package com.cn.xiaonuo.generate.modular.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig; + +/** + * 代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ +public interface SysCodeGenerateConfigMapper extends BaseMapper { +} diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/mapping/SysCodeGenerateConfigMapper.xml b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/mapping/SysCodeGenerateConfigMapper.xml new file mode 100644 index 00000000..9c6e96b2 --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/mapper/mapping/SysCodeGenerateConfigMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/param/CodeGenerateParam.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/param/CodeGenerateParam.java index 6630c855..6c214007 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/param/CodeGenerateParam.java +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/param/CodeGenerateParam.java @@ -28,7 +28,6 @@ import com.cn.xiaonuo.core.pojo.base.param.BaseParam; import com.cn.xiaonuo.core.validation.flag.FlagValue; import lombok.Data; import lombok.EqualsAndHashCode; - import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/param/SysCodeGenerateConfigParam.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/param/SysCodeGenerateConfigParam.java new file mode 100644 index 00000000..0035b7a3 --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/param/SysCodeGenerateConfigParam.java @@ -0,0 +1,138 @@ +/* +Copyright [2020] [https://www.xiaonuo.vip] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + +1.请不要删除和修改根目录下的LICENSE文件。 +2.请不要删除和修改XiaoNuo源码头部的版权声明。 +3.请保留源码和相关描述文件的项目出处,作者声明等。 +4.分发源码时候,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +6.若您的项目无法满足以上几点,可申请商业授权,获取XiaoNuo商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package com.cn.xiaonuo.generate.modular.param; + +import com.cn.xiaonuo.core.pojo.base.param.BaseParam; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.util.List; + +/** +* 代码生成详细配置参数类 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 +*/ +@Data +public class SysCodeGenerateConfigParam extends BaseParam { + + /** + * 主键 + */ + private Long id; + + /** + * 代码生成主表ID + */ + private Long codeGenId; + + /** + * 数据库字段名 + */ + private String columnName; + + /** + * java类字段名 + */ + private String javaName; + + /** + * 字段描述 + */ + private String columnComment; + + /** + * java类型 + */ + private String javaType; + + /** + * 作用类型(字典) + */ + private String effectType; + + /** + * 字典code + */ + private String dictTypeCode; + + /** + * 列表是否缩进(字典) + */ + private String whetherRetract; + + /** + * 是否必填(字典) + */ + private String whetherRequired; + + /** + * 是否是查询条件 + */ + private String queryWhether; + + /** + * 查询方式 + */ + private String queryType; + + /** + * 列表展示 + */ + private String whetherTable; + + /** + * 增改 + */ + private String whetherAddUpdate; + + /** + * 主外键 + */ + public String columnKey; + + /** + * 主外键名称 + */ + public String columnKeyName; + + /** + * 数据库中类型(物理类型) + */ + public String dataType; + + /** + * 是否是通用字段 + */ + public String whetherCommon; + + /** + * 代码生成配置列表 + */ + @NotEmpty(message = "代码生成配置列表,请检查sysCodeGenerateConfigParamList参数", groups = {edit.class}) + private List sysCodeGenerateConfigParamList; + +} diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/CodeGenerateService.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/CodeGenerateService.java index 70dea98c..365d7fda 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/CodeGenerateService.java +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/CodeGenerateService.java @@ -29,7 +29,6 @@ import com.cn.xiaonuo.core.pojo.page.PageResult; import com.cn.xiaonuo.generate.modular.entity.CodeGenerate; import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam; import com.cn.xiaonuo.generate.modular.result.InformationResult; - import javax.servlet.http.HttpServletResponse; import java.util.List; diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/SysCodeGenerateConfigService.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/SysCodeGenerateConfigService.java new file mode 100644 index 00000000..d34d2162 --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/SysCodeGenerateConfigService.java @@ -0,0 +1,91 @@ +/* +Copyright [2020] [https://www.xiaonuo.vip] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +XiaoNuo采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + +1.请不要删除和修改根目录下的LICENSE文件。 +2.请不要删除和修改XiaoNuo源码头部的版权声明。 +3.请保留源码和相关描述文件的项目出处,作者声明等。 +4.分发源码时候,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/xiaonuobase/xiaonuo-vue +6.若您的项目无法满足以上几点,可申请商业授权,获取XiaoNuo商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip + */ +package com.cn.xiaonuo.generate.modular.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.cn.xiaonuo.core.pojo.page.PageResult; +import com.cn.xiaonuo.generate.modular.entity.CodeGenerate; +import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig; +import com.cn.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam; +import com.cn.xiaonuo.generate.modular.result.InforMationColumnsResult; + +import java.util.List; + +/** + * 代码生成详细配置service接口 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ +public interface SysCodeGenerateConfigService extends IService { + + /** + * 代码生成详细配置列表 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + List list(SysCodeGenerateConfigParam sysCodeGenerateConfigParam); + + /** + * 添加代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + void add(SysCodeGenerateConfigParam sysCodeGenerateConfigParam); + + /** + * 添加代码生成详细配置列表 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + void addList(List inforMationColumnsResultList, CodeGenerate codeGenerate); + + /** + * 删除代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + void delete(SysCodeGenerateConfigParam sysCodeGenerateConfigParam); + + /** + * 编辑代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + void edit(List sysCodeGenerateConfigParamList); + + /** + * 查看代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + SysCodeGenerateConfig detail(SysCodeGenerateConfigParam sysCodeGenerateConfigParam); +} diff --git a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/impl/CodeGenerateServiceImpl.java b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/impl/CodeGenerateServiceImpl.java index f70d150e..986c1d0c 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/impl/CodeGenerateServiceImpl.java +++ b/xiaonuo-base/xiaonuo-gen/src/main/java/com/cn/xiaonuo/generate/modular/service/impl/CodeGenerateServiceImpl.java @@ -30,25 +30,31 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.cn.xiaonuo.core.consts.CommonConstant; import com.cn.xiaonuo.core.context.constant.ConstantContext; +import com.cn.xiaonuo.core.enums.YesOrNotEnum; import com.cn.xiaonuo.core.exception.ServiceException; import com.cn.xiaonuo.core.factory.PageFactory; import com.cn.xiaonuo.core.pojo.page.PageResult; -import com.cn.xiaonuo.generate.core.config.Config; import com.cn.xiaonuo.generate.core.context.XnVelocityContext; -import com.cn.xiaonuo.generate.core.enums.TableFilteredFieldsEnum; import com.cn.xiaonuo.generate.core.param.TableField; import com.cn.xiaonuo.generate.core.param.XnCodeGenParam; import com.cn.xiaonuo.generate.core.tool.JavaSqlTool; import com.cn.xiaonuo.generate.core.tool.NamingConTool; import com.cn.xiaonuo.generate.core.tool.StringDateTool; +import com.cn.xiaonuo.generate.core.config.Config; +import com.cn.xiaonuo.generate.core.enums.TableFilteredFieldsEnum; import com.cn.xiaonuo.generate.core.util.Util; import com.cn.xiaonuo.generate.modular.entity.CodeGenerate; +import com.cn.xiaonuo.generate.modular.entity.SysCodeGenerateConfig; import com.cn.xiaonuo.generate.modular.enums.CodeGenerateExceptionEnum; import com.cn.xiaonuo.generate.modular.mapper.CodeGenerateMapper; import com.cn.xiaonuo.generate.modular.param.CodeGenerateParam; +import com.cn.xiaonuo.generate.modular.param.SysCodeGenerateConfigParam; import com.cn.xiaonuo.generate.modular.result.InforMationColumnsResult; import com.cn.xiaonuo.generate.modular.result.InformationResult; import com.cn.xiaonuo.generate.modular.service.CodeGenerateService; +import com.cn.xiaonuo.generate.modular.service.SysCodeGenerateConfigService; +import com.cn.xiaonuo.sys.modular.menu.entity.SysMenu; +import com.cn.xiaonuo.sys.modular.menu.mapper.SysMenuMapper; import org.apache.commons.io.IOUtils; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; @@ -56,6 +62,7 @@ import org.apache.velocity.app.Velocity; import org.apache.velocity.app.VelocityEngine; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.ArrayList; @@ -91,9 +98,12 @@ public class CodeGenerateServiceImpl extends ServiceImpl page(CodeGenerateParam codeGenerateParam) { @@ -115,12 +125,19 @@ public class CodeGenerateServiceImpl extends ServiceImpl codeGenerateParamList) { codeGenerateParamList.forEach(codeGenerateParam -> { this.removeById(codeGenerateParam.getId()); + SysCodeGenerateConfigParam sysCodeGenerateConfigParam = new SysCodeGenerateConfigParam(); + sysCodeGenerateConfigParam.setCodeGenId(codeGenerateParam.getId()); + this.sysCodeGenerateConfigService.delete(sysCodeGenerateConfigParam); }); } @@ -210,45 +227,28 @@ public class CodeGenerateServiceImpl extends ServiceImpl getInforMationColumnsResultList (CodeGenerateParam codeGenerateParam) { CodeGenerate codeGenerate = this.queryCodeGenerate(codeGenerateParam); String databaseUrl = ConstantContext.me().getStr(CommonConstant.DATABASE_URL_NAME); String dbName = databaseUrl.substring(Util.getIndex(databaseUrl, 3, "/") + 1, databaseUrl.indexOf("?")); - List inforMationColumnsResultList = this.baseMapper.selectInformationColumns(dbName, codeGenerate.getTableName()); + return this.baseMapper.selectInformationColumns(dbName, codeGenerate.getTableName()); + } + private XnCodeGenParam copyParams (CodeGenerateParam codeGenerateParam) { + CodeGenerate codeGenerate = this.queryCodeGenerate(codeGenerateParam); + SysCodeGenerateConfigParam sysCodeGenerateConfigParam = new SysCodeGenerateConfigParam(); + sysCodeGenerateConfigParam.setCodeGenId(codeGenerateParam.getId()); + List configList = this.sysCodeGenerateConfigService.list(sysCodeGenerateConfigParam); XnCodeGenParam param = new XnCodeGenParam(); - List tableFieldList = new ArrayList(); - inforMationColumnsResultList.forEach(item -> { - TableField tableField = new TableField(); - BeanUtil.copyProperties(item, tableField); - if (tableField.getColumnKey().equals(Config.DB_TABLE_COM_KRY)) { - tableField.setPrimaryKeyFlag(true); - } - - // 加入后端查询参数get set参数 - String columnName = NamingConTool.UnderlineToHump(item.getColumnName(),""); - tableField.setColumnKeyName(columnName.substring(0,1).toUpperCase() + columnName.substring(1,columnName.length())); - - // 字段类型转换Java类型 - tableField.setJavaType(JavaSqlTool.sqlToJava(item.getDataType())); - - // 字段名称转换 - tableField.setColumnName(NamingConTool.UnderlineToHump(item.getColumnName(), codeGenerate.getTablePrefix())); - - // 过滤掉通用字段 - if (!TableFilteredFieldsEnum.contains(item.getColumnName())) { - tableFieldList.add(tableField); - } - }); BeanUtil.copyProperties(codeGenerate, param); // 功能名 param.setFunctionName(codeGenerate.getTableComment()); - param.setTableField(tableFieldList); + param.setConfigList(configList); param.setCreateTimeString(StringDateTool.getStringDate()); return param; } @@ -274,9 +274,10 @@ public class CodeGenerateServiceImpl extends ServiceImpl implements SysCodeGenerateConfigService { + + @Override + public List list(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (ObjectUtil.isNotNull(sysCodeGenerateConfigParam)) { + + // 根据代码生成主表ID 模糊查询 + if (ObjectUtil.isNotEmpty(sysCodeGenerateConfigParam.getCodeGenId())) { + queryWrapper.eq(SysCodeGenerateConfig::getCodeGenId, sysCodeGenerateConfigParam.getCodeGenId()); + } + } + return this.list(queryWrapper); + } + + @Override + public void add(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) { + SysCodeGenerateConfig sysCodeGenerateConfig = new SysCodeGenerateConfig(); + BeanUtil.copyProperties(sysCodeGenerateConfigParam, sysCodeGenerateConfig); + this.save(sysCodeGenerateConfig); + } + + @Override + public void addList(List inforMationColumnsResultList, CodeGenerate codeGenerate) { + for (InforMationColumnsResult inforMationColumnsResult : inforMationColumnsResultList) { + SysCodeGenerateConfig sysCodeGenerateConfig = new SysCodeGenerateConfig(); + + String YesOrNo = YesOrNotEnum.Y.getCode(); + if (inforMationColumnsResult.getColumnKey().equals(Config.DB_TABLE_COM_KRY) || + TableFilteredFieldsEnum.contains(inforMationColumnsResult.getColumnName())) { + YesOrNo = YesOrNotEnum.N.getCode(); + } + if (TableFilteredFieldsEnum.contains(inforMationColumnsResult.getColumnName())) { + sysCodeGenerateConfig.setWhetherCommon(YesOrNotEnum.Y.getCode()); + } else { + sysCodeGenerateConfig.setWhetherCommon(YesOrNotEnum.N.getCode()); + } + + sysCodeGenerateConfig.setCodeGenId(codeGenerate.getId()); + sysCodeGenerateConfig.setColumnName(inforMationColumnsResult.getColumnName()); + sysCodeGenerateConfig.setColumnComment(inforMationColumnsResult.getColumnComment()); + sysCodeGenerateConfig.setJavaName(NamingConTool.UnderlineToHump(inforMationColumnsResult.getColumnName(), codeGenerate.getTablePrefix())); + sysCodeGenerateConfig.setJavaType(JavaSqlTool.sqlToJava(inforMationColumnsResult.getDataType())); + sysCodeGenerateConfig.setWhetherRetract(YesOrNotEnum.N.getCode()); + + sysCodeGenerateConfig.setWhetherRequired(YesOrNo); + sysCodeGenerateConfig.setQueryWhether(YesOrNo); + sysCodeGenerateConfig.setWhetherAddUpdate(YesOrNo); + sysCodeGenerateConfig.setWhetherTable(YesOrNo); + + sysCodeGenerateConfig.setColumnKey(inforMationColumnsResult.getColumnKey()); + + // 设置get set方法使用的名称 + String columnName = NamingConTool.UnderlineToHump(sysCodeGenerateConfig.getColumnName(),""); + sysCodeGenerateConfig.setColumnKeyName(columnName.substring(0,1).toUpperCase() + columnName.substring(1,columnName.length())); + + sysCodeGenerateConfig.setDataType(inforMationColumnsResult.getDataType()); + sysCodeGenerateConfig.setEffectType(JavaEffTool.javaToEff(sysCodeGenerateConfig.getJavaType())); + sysCodeGenerateConfig.setQueryType(QueryTypeEnum.eq.getCode()); + + this.save(sysCodeGenerateConfig); + } + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void delete(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysCodeGenerateConfig::getCodeGenId, sysCodeGenerateConfigParam.getCodeGenId()); + this.remove(queryWrapper); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void edit(List sysCodeGenerateConfigParamList) { + for (SysCodeGenerateConfigParam sysCodeGenerateConfigParam : sysCodeGenerateConfigParamList) { + SysCodeGenerateConfig sysCodeGenerateConfig = this.querySysCodeGenerateConfig(sysCodeGenerateConfigParam); + BeanUtil.copyProperties(sysCodeGenerateConfigParam, sysCodeGenerateConfig); + this.updateById(sysCodeGenerateConfig); + } + } + + @Override + public SysCodeGenerateConfig detail(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) { + return this.querySysCodeGenerateConfig(sysCodeGenerateConfigParam); + } + + /** + * 获取代码生成详细配置 + * + * @author yubaoshan + * @date 2021-02-06 20:19:49 + */ + private SysCodeGenerateConfig querySysCodeGenerateConfig(SysCodeGenerateConfigParam sysCodeGenerateConfigParam) { + SysCodeGenerateConfig sysCodeGenerateConfig = this.getById(sysCodeGenerateConfigParam.getId()); + if (ObjectUtil.isNull(sysCodeGenerateConfig)) { + throw new ServiceException(SysCodeGenerateConfigExceptionEnum.NOT_EXIST); + } + return sysCodeGenerateConfig; + } +} diff --git a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/Controller.java.vm b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/Controller.java.vm index 9c6d3cdd..ca0fe50c 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/Controller.java.vm +++ b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/Controller.java.vm @@ -73,7 +73,7 @@ public class ${ClassName}Controller { @PostMapping("/${className}/add") @BusinessLog(title = "${functionName}_增加", opType = LogAnnotionOpTypeEnum.ADD) public ResponseData add(@RequestBody @Validated(${ClassName}Param.add.class) ${ClassName}Param ${className}Param) { - ${className}Service.add(${className}Param); + ${className}Service.add(${className}Param); return new SuccessResponseData(); } @@ -87,7 +87,7 @@ public class ${ClassName}Controller { @PostMapping("/${className}/delete") @BusinessLog(title = "${functionName}_删除", opType = LogAnnotionOpTypeEnum.DELETE) public ResponseData delete(@RequestBody @Validated(${ClassName}Param.delete.class) ${ClassName}Param ${className}Param) { - ${className}Service.delete(${className}Param); + ${className}Service.delete(${className}Param); return new SuccessResponseData(); } @@ -101,7 +101,7 @@ public class ${ClassName}Controller { @PostMapping("/${className}/edit") @BusinessLog(title = "${functionName}_编辑", opType = LogAnnotionOpTypeEnum.EDIT) public ResponseData edit(@RequestBody @Validated(${ClassName}Param.edit.class) ${ClassName}Param ${className}Param) { - ${className}Service.edit(${className}Param); + ${className}Service.edit(${className}Param); return new SuccessResponseData(); } diff --git a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/Param.java.vm b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/Param.java.vm index c1db0a14..1dad2a14 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/Param.java.vm +++ b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/Param.java.vm @@ -26,6 +26,8 @@ package ${packageName}.${modularName}.${busName}.param; import com.cn.xiaonuo.core.pojo.base.param.BaseParam; import lombok.Data; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; import java.util.*; #foreach ($column in $tableField) #if (${column.javaType} == 'BigDecimal') @@ -42,11 +44,31 @@ import java.math.BigDecimal; @Data public class ${ClassName}Param extends BaseParam { #foreach ($column in $tableField) +#if (${column.columnKey} == "PRI") /** * ${column.columnComment} */ - private ${column.javaType} ${column.columnName}; + @NotNull(message = "${column.columnComment}不能为空,请检查${column.javaName}参数", groups = {edit.class, delete.class, detail.class}) + private ${column.javaType} ${column.javaName}; +#elseif (${column.whetherCommon} == 'N') + /** + * ${column.columnComment} + */ +#if (${column.whetherRequired} == "Y") +#if (${column.javaType} == "String") + @NotBlank(message = "${column.columnComment}不能为空,请检查${column.javaName}参数", groups = {add.class, edit.class}) +#else + @NotNull(message = "${column.columnComment}不能为空,请检查${column.javaName}参数", groups = {add.class, edit.class}) #end +#end +#if(${column.javaType} == "Date") + private String ${column.javaName}; +#else + private ${column.javaType} ${column.javaName}; +#end +#end +#end + } diff --git a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/ServiceImpl.java.vm b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/ServiceImpl.java.vm index 9abd49b7..5c1182f3 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/ServiceImpl.java.vm +++ b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/ServiceImpl.java.vm @@ -60,18 +60,11 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C if (ObjectUtil.isNotNull(${className}Param)) { #foreach ($column in $tableField) -#if (${column.primaryKeyFlag}) +#if (${column.queryWhether} == "Y") // 根据${column.columnComment} 查询 if (ObjectUtil.isNotEmpty(${className}Param.get${column.columnKeyName}())) { - queryWrapper.lambda().eq(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}()); + queryWrapper.lambda().${column.queryType}(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}()); } - -#else - // 根据${column.columnComment} 模糊查询 - if (ObjectUtil.isNotEmpty(${className}Param.get${column.columnKeyName}())) { - queryWrapper.lambda().like(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}()); - } - #end #end } @@ -80,26 +73,7 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C @Override public List<${ClassName}> list(${ClassName}Param ${className}Param) { - LambdaQueryWrapper<${ClassName}> queryWrapper = new LambdaQueryWrapper<>(); - if (ObjectUtil.isNotNull(${className}Param)) { - -#foreach ($column in $tableField) -#if (${column.primaryKeyFlag}) - // 根据${column.columnComment} 查询 - if (ObjectUtil.isNotEmpty(${className}Param.get${column.columnKeyName}())) { - queryWrapper.eq(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}()); - } - -#else - // 根据${column.columnComment} 模糊查询 - if (ObjectUtil.isNotEmpty(${className}Param.get${column.columnKeyName}())) { - queryWrapper.like(${ClassName}::get${column.columnKeyName}, ${className}Param.get${column.columnKeyName}()); - } - -#end -#end - } - return this.list(queryWrapper); + return this.list(); } @Override @@ -113,9 +87,9 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C @Override public void delete(${ClassName}Param ${className}Param) { #foreach ($column in $tableField) - #if (${column.primaryKeyFlag}) +#if (${column.columnKey} == "PRI") this.removeById(${className}Param.get${column.columnKeyName}()); - #end +#end #end } @@ -140,9 +114,9 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C */ private ${ClassName} query${ClassName}(${ClassName}Param ${className}Param) { #foreach ($column in $tableField) - #if (${column.primaryKeyFlag}) +#if (${column.columnKey} == "PRI") ${ClassName} ${className} = this.getById(${className}Param.get${column.columnKeyName}()); - #end +#end #end if (ObjectUtil.isNull(${className})) { throw new ServiceException(${ClassName}ExceptionEnum.NOT_EXIST); diff --git a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/XnMysql.sql.vm b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/XnMysql.sql.vm new file mode 100644 index 00000000..5e7d3580 --- /dev/null +++ b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/XnMysql.sql.vm @@ -0,0 +1,34 @@ +-- ---------------------------- +-- Records of sys_menu +-- ---------------------------- +#foreach ($id in $sqlMenuId) +#if($foreach.count == 1) +INSERT INTO `sys_menu` VALUES +('$id', '0', '[0],', '${functionName}', '${busName}_index', '1', null, '/${className}', 'main/${busName}/index', null, 'system_tool', '1', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +#set ($pid=$id) + +#elseif($foreach.count == 2) +INSERT INTO `sys_menu` VALUES +('$id', '$pid', '[0],[$pid],', '${functionName}查询', '${busName}_index_page', '2', null, null, null, '${className}:page', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); + +#elseif($foreach.count == 3) +INSERT INTO `sys_menu` VALUES +('$id', '$pid', '[0],[$pid],', '${functionName}新增', '${busName}_index_add', '2', null, null, null, '${className}:add', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); + +#elseif($foreach.count == 4) +INSERT INTO `sys_menu` VALUES +('$id', '$pid', '[0],[$pid],', '${functionName}编辑', '${busName}_index_edit', '2', null, null, null, '${className}:edit', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); + +#elseif($foreach.count == 5) +INSERT INTO `sys_menu` VALUES +('$id', '$pid', '[0],[$pid],', '${functionName}删除', '${busName}_index_delete', '2', null, null, null, '${className}:delete', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); + +#elseif($foreach.count == 6) +INSERT INTO `sys_menu` VALUES +('$id', '$pid', '[0],[$pid],', '${functionName}查看', '${busName}_index_detail', '2', null, null, null, '${className}:detail', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); + +#elseif($foreach.count == 7) +INSERT INTO `sys_menu` VALUES +('$id', '$pid', '[0],[$pid],', '${functionName}列表', '${busName}_index_list', '2', null, null, null, '${className}:list', 'system_tool', '0', 'Y', null, null, '1', '100', null, '0', null, null, null, null); +#end +#end \ No newline at end of file diff --git a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/addForm.vue.vm b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/addForm.vue.vm index cfdb416c..9b609848 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/addForm.vue.vm +++ b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/addForm.vue.vm @@ -10,18 +10,87 @@ #foreach ($column in $tableField) -#if (!${column.primaryKeyFlag}) +#if (${column.columnKey} != "PRI") +#if (${column.whetherAddUpdate} == "Y") +#if (${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox') + +#else - +#end +#if (${column.effectType} == "input") +#if (${column.whetherRequired} == "Y") + +#else + +#end +#end +#if (${column.effectType} == "textarea") +#if (${column.whetherRequired} == "Y") + +#else + +#end +#end +#if (${column.effectType} == "inputnumber") +#if (${column.whetherRequired} == "Y") + +#else + +#end +#end +#if (${column.effectType} == "select") +#if (${column.whetherRequired} == "Y") + + {{ item.name }} + +#else + + {{ item.name }} + +#end +#end +#if (${column.effectType} == "radio") +#if (${column.whetherRequired} == "Y") + + {{ item.name }} + +#else + + {{ item.name }} + +#end +#end +#if (${column.effectType} == "checkbox") +#if (${column.whetherRequired} == "Y") + + {{ item.name }} + +#else + + {{ item.name }} + +#end +#end +#if (${column.effectType} == "datepicker") +#if (${column.whetherRequired} == "Y") + +#else + +#end +#end #end #end - +#end @@ -40,6 +109,18 @@ xs: { span: 24 }, sm: { span: 15 } }, +#foreach ($column in $tableField) +#if (${column.whetherAddUpdate} == "Y") +#if (${column.dictTypeCode}) +#if(${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox') + ${column.javaName}Data: [], +#end +#end +#if (${column.effectType} == "datepicker") + ${column.javaName}DateString: '', +#end +#end +#end visible: false, confirmLoading: false, form: this.$form.createForm(this) @@ -49,6 +130,14 @@ // 初始化方法 add (record) { this.visible = true +#foreach ($column in $tableField) +#if (${column.dictTypeCode}) +#if(${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox') + const ${column.javaName}Option = this.$options + this.${column.javaName}Data = ${column.javaName}Option.filters['dictData']('${column.dictTypeCode}') +#end +#end +#end }, /** * 提交表单 @@ -58,7 +147,19 @@ this.confirmLoading = true validateFields((errors, values) => { if (!errors) { - ${className}Add(values).then((res) => { + for (const key in values) { + if (typeof (values[key]) === 'object') { + values[key] = JSON.stringify(values[key]) + } + } +#foreach ($column in $tableField) +#if (${column.whetherAddUpdate} == "Y") +#if (${column.effectType} == "datepicker") + values.${column.javaName} = this.${column.javaName}DateString +#end +#end +#end + ${className}Add(values).then((res) => { if (res.success) { this.$message.success('新增成功') this.confirmLoading = false @@ -75,6 +176,15 @@ } }) }, +#foreach ($column in $tableField) +#if (${column.whetherAddUpdate} == "Y") +#if (${column.effectType} == "datepicker") + onChange${column.javaName}(date, dateString) { + this.${column.javaName}DateString = dateString + }, +#end +#end +#end handleCancel () { this.form.resetFields() this.visible = false diff --git a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/editForm.vue.vm b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/editForm.vue.vm index 634c3a7d..15c3c93b 100644 --- a/xiaonuo-base/xiaonuo-gen/src/main/resources/template/editForm.vue.vm +++ b/xiaonuo-base/xiaonuo-gen/src/main/resources/template/editForm.vue.vm @@ -10,10 +10,16 @@ #foreach ($column in $tableField) -#if (${column.primaryKeyFlag}) - - - +#if(${column.columnKey} == "PRI") + +#else +#if (${column.whetherAddUpdate} == "Y") +#if (${column.effectType} == 'select' || ${column.effectType} == 'radio' || ${column.effectType} == 'checkbox') + #else - +#end +#if (${column.effectType} == "input") +#if (${column.whetherRequired} == "Y") + +#else + +#end +#end +#if (${column.effectType} == "textarea") +#if (${column.whetherRequired} == "Y") + +#else + +#end +#end +#if (${column.effectType} == "inputnumber") +#if (${column.whetherRequired} == "Y") + +#else + +#end +#end +#if (${column.effectType} == "select") +#if (${column.whetherRequired} == "Y") + + {{ item.name }} + +#else + + {{ item.name }} + +#end +#end +#if (${column.effectType} == "radio") +#if (${column.whetherRequired} == "Y") + + {{ item.name }} + +#else + + {{ item.name }} + +#end +#end +#if (${column.effectType} == "checkbox") +#if (${column.whetherRequired} == "Y") + + {{ item.name }} + +#else + + {{ item.name }} + +#end +#end +#if (${column.effectType} == "datepicker") +#if (${column.whetherRequired} == "Y") + +#else + +#end +#end #end #end - +#end