From 6655214eb265271468583db5c2ad34b476cc31f0 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Mon, 21 Feb 2022 16:20:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=93=E4=B8=BA=E5=88=86?= =?UTF-8?q?=E7=A6=BB=E7=AB=AF=E6=8F=90=E4=BE=9B=E7=9A=84=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?Web=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- root/pom.xml | 1 + web-api/bin/docker-build.bat | 19 + web-api/bin/docker-build.sh | 16 + web-api/bin/docker/Dockerfile | 25 + web-api/bin/docker/app.yml | 26 + web-api/bin/init-data.bat | 34 + web-api/bin/init-data.sh | 31 + web-api/bin/package.bat | 19 + web-api/bin/package.sh | 16 + web-api/bin/run-tomcat.bat | 20 + web-api/bin/run-tomcat.sh | 15 + web-api/bin/run-web.bat | 30 + web-api/bin/run-web.sh | 26 + web-api/db/h2/test.sql | 75 + web-api/db/mssql/test.sql | 75 + web-api/db/mysql/create_user.sql | 13 + web-api/db/mysql/test.sql | 76 + web-api/db/oracle/create_user.sql | 15 + web-api/db/oracle/test.sql | 132 + web-api/db/postgresql/test.sql | 132 + web-api/db/test.erm | 3541 +++++++++++++++++ web-api/pom.xml | 171 + .../java/com/jeesite/modules/Application.java | 30 + .../modules/test/dao/TestDataChildDao.java | 19 + .../jeesite/modules/test/dao/TestDataDao.java | 27 + .../jeesite/modules/test/dao/TestTreeDao.java | 19 + .../jeesite/modules/test/db/InitTestData.java | 182 + .../jeesite/modules/test/entity/TestData.java | 226 ++ .../modules/test/entity/TestDataChild.java | 236 ++ .../jeesite/modules/test/entity/TestTree.java | 70 + .../modules/test/service/TestDataService.java | 174 + .../modules/test/service/TestTreeService.java | 80 + .../modules/test/web/DemoController.java | 58 + .../modules/test/web/TestDataController.java | 153 + .../modules/test/web/TestTreeController.java | 224 ++ .../src/main/resources/config/application.yml | 854 ++++ .../main/resources/config/beetl.properties | 21 + .../main/resources/config/logback-spring.xml | 61 + .../src/main/resources/db/create/h2/test.sql | 75 + .../main/resources/db/create/mssql/test.sql | 75 + .../main/resources/db/create/mysql/test.sql | 76 + .../main/resources/db/create/oracle/test.sql | 132 + .../resources/db/create/postgresql/test.sql | 132 + .../modules/test/TestDataChildDao.xml | 15 + .../mappings/modules/test/TestDataDao.xml | 28 + .../mappings/modules/test/TestTreeDao.xml | 15 + .../main/resources/static/common/common.css | 5 + .../main/resources/static/common/common.js | 5 + web-api/src/main/resources/static/favicon.png | Bin 0 -> 4794 bytes web-api/src/main/webapp/WEB-INF/startup.bat | 51 + web-api/src/main/webapp/WEB-INF/startup.sh | 33 + web-api/src/main/webapp/WEB-INF/web.xml | 18 + .../test/java/com/jeesite/test/InitData.java | 33 + .../com/jeesite/test/InsertBatchTest.java | 51 + .../com/jeesite/test/MultiDataSourceTest.java | 72 + .../com/jeesite/test/RememberMeKeyGen.java | 25 + web-api/src/test/java/logback-test.xml | 19 + web/pom.xml | 2 + web/src/main/resources/config/application.yml | 2 +- 59 files changed, 7805 insertions(+), 1 deletion(-) create mode 100644 web-api/bin/docker-build.bat create mode 100644 web-api/bin/docker-build.sh create mode 100644 web-api/bin/docker/Dockerfile create mode 100644 web-api/bin/docker/app.yml create mode 100644 web-api/bin/init-data.bat create mode 100644 web-api/bin/init-data.sh create mode 100644 web-api/bin/package.bat create mode 100644 web-api/bin/package.sh create mode 100644 web-api/bin/run-tomcat.bat create mode 100644 web-api/bin/run-tomcat.sh create mode 100644 web-api/bin/run-web.bat create mode 100644 web-api/bin/run-web.sh create mode 100644 web-api/db/h2/test.sql create mode 100644 web-api/db/mssql/test.sql create mode 100644 web-api/db/mysql/create_user.sql create mode 100644 web-api/db/mysql/test.sql create mode 100644 web-api/db/oracle/create_user.sql create mode 100644 web-api/db/oracle/test.sql create mode 100644 web-api/db/postgresql/test.sql create mode 100644 web-api/db/test.erm create mode 100644 web-api/pom.xml create mode 100644 web-api/src/main/java/com/jeesite/modules/Application.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/dao/TestDataChildDao.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/dao/TestDataDao.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/dao/TestTreeDao.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/db/InitTestData.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/entity/TestData.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/entity/TestDataChild.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/entity/TestTree.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/service/TestDataService.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/service/TestTreeService.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/web/DemoController.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/web/TestDataController.java create mode 100644 web-api/src/main/java/com/jeesite/modules/test/web/TestTreeController.java create mode 100644 web-api/src/main/resources/config/application.yml create mode 100644 web-api/src/main/resources/config/beetl.properties create mode 100644 web-api/src/main/resources/config/logback-spring.xml create mode 100644 web-api/src/main/resources/db/create/h2/test.sql create mode 100644 web-api/src/main/resources/db/create/mssql/test.sql create mode 100644 web-api/src/main/resources/db/create/mysql/test.sql create mode 100644 web-api/src/main/resources/db/create/oracle/test.sql create mode 100644 web-api/src/main/resources/db/create/postgresql/test.sql create mode 100644 web-api/src/main/resources/mappings/modules/test/TestDataChildDao.xml create mode 100644 web-api/src/main/resources/mappings/modules/test/TestDataDao.xml create mode 100644 web-api/src/main/resources/mappings/modules/test/TestTreeDao.xml create mode 100644 web-api/src/main/resources/static/common/common.css create mode 100644 web-api/src/main/resources/static/common/common.js create mode 100644 web-api/src/main/resources/static/favicon.png create mode 100644 web-api/src/main/webapp/WEB-INF/startup.bat create mode 100644 web-api/src/main/webapp/WEB-INF/startup.sh create mode 100644 web-api/src/main/webapp/WEB-INF/web.xml create mode 100644 web-api/src/test/java/com/jeesite/test/InitData.java create mode 100644 web-api/src/test/java/com/jeesite/test/InsertBatchTest.java create mode 100644 web-api/src/test/java/com/jeesite/test/MultiDataSourceTest.java create mode 100644 web-api/src/test/java/com/jeesite/test/RememberMeKeyGen.java create mode 100644 web-api/src/test/java/logback-test.xml diff --git a/root/pom.xml b/root/pom.xml index 609b29c4..620f4ffd 100644 --- a/root/pom.xml +++ b/root/pom.xml @@ -18,6 +18,7 @@ ../modules/core ../modules/cms ../web + ../web-api diff --git a/web-api/bin/docker-build.bat b/web-api/bin/docker-build.bat new file mode 100644 index 00000000..2f34241c --- /dev/null +++ b/web-api/bin/docker-build.bat @@ -0,0 +1,19 @@ +@echo off +rem /** +rem * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +rem * No deletion without permission, or be held responsible to law. +rem * +rem * Author: ThinkGem@163.com +rem */ +echo. +echo [信息] 打包Web工程,导入到Docker服务。 +echo. + +%~d0 +cd %~dp0 + +cd .. +call mvn clean package docker:stop docker:remove docker:build docker:run -Dmaven.test.skip=true -U + +cd bin +pause \ No newline at end of file diff --git a/web-api/bin/docker-build.sh b/web-api/bin/docker-build.sh new file mode 100644 index 00000000..3ad6d573 --- /dev/null +++ b/web-api/bin/docker-build.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# /** +# * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +# * No deletion without permission, or be held responsible to law. +# * +# * Author: ThinkGem@163.com +# * +# */ +echo "" +echo "[淇℃伅] 浣跨敤 Spring Boot Docker 缂栬瘧 Web 宸ョ▼銆" +echo "" + +cd .. +mvn clean package docker:stop docker:remove docker:build docker:run -Dmaven.test.skip=true -U + +cd bin \ No newline at end of file diff --git a/web-api/bin/docker/Dockerfile b/web-api/bin/docker/Dockerfile new file mode 100644 index 00000000..f89ad208 --- /dev/null +++ b/web-api/bin/docker/Dockerfile @@ -0,0 +1,25 @@ +FROM frolvlad/alpine-java:jdk8-slim +MAINTAINER ThinkGem@163.com +ENV TZ "Asia/Shanghai" +ENV LANG C.UTF-8 +VOLUME /tmp +VOLUME /data + +WORKDIR /app +ADD ./maven/web.war ./app.war + +RUN jar -xvf app.war +#RUN chmod -R 755 ./* + +WORKDIR /app/WEB-INF +ADD ./app.yml ./classes/config/application-prod.yml +#ADD jeesite.lic ./ + +#ENV JAVA_OPTS "-Xms256m -Xmx1024m" +ENV JAVA_OPTS "$JAVA_OPTS -Dspring.profiles.active=prod" + +ENTRYPOINT java $JAVA_OPTS -cp /app $JAVA_OPTS org.springframework.boot.loader.WarLauncher + +EXPOSE 8980 + +#docker run -p 8980:8980 com.jeesite/jeesite-web:5.0 diff --git a/web-api/bin/docker/app.yml b/web-api/bin/docker/app.yml new file mode 100644 index 00000000..db8fa973 --- /dev/null +++ b/web-api/bin/docker/app.yml @@ -0,0 +1,26 @@ + +# 鏁版嵁搴撹繛鎺 +jdbc: + + # Mysql 鏁版嵁搴撻厤缃 + type: mysql + driver: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://192.168.56.1:3306/jeesite?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai + username: jeesite + password: jeesite + testSql: SELECT 1 + +# MyBatis 鐩稿叧 +mybatis: + + # Mapper鏂囦欢鍒锋柊绾跨▼ + mapper: + refresh: + enabled: false + +# 鏂囦欢鐩稿叧 +file: + + # 鏂囦欢涓婁紶鏍硅矾寰勶紝璁剧疆璺緞涓笉鍏佽鍖呭惈鈥渦serfiles鈥濓紝鍦ㄦ寚瀹氱洰褰曚腑绯荤粺浼氳嚜鍔ㄥ垱寤簎serfiles鐩綍锛屽鏋滀笉璁剧疆榛樿涓篶ontextPath璺緞 + baseDir: /root + diff --git a/web-api/bin/init-data.bat b/web-api/bin/init-data.bat new file mode 100644 index 00000000..9e7c995a --- /dev/null +++ b/web-api/bin/init-data.bat @@ -0,0 +1,34 @@ +@echo off +rem /** +rem * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +rem * No deletion without permission, or be held responsible to law. +rem * +rem * Author: ThinkGem@163.com +rem */ +echo. +echo [信息] 初始化数据库。 +echo. +echo [信息] 本操作主要用于首次安装 JeeSite 或后安装 Module 的数据表初始化,若模块已安装会自动忽略。 +echo. +echo [信息] 在 v4.2 版本以后,官方初始化数据库是比较安全的,官方代码中不会包含任何删除数据表及数据的脚本。 +echo. +echo [信息] 如果你是升级到 v4.2 的版本,无法排除你是否升级完整,为安全期间,还是建议先备份数据库后再操作。 +echo. +pause + +%~d0 +cd %~dp0 + +cd .. + +call mvn clean compile -Dmaven.test.skip=true -U +echo. +echo [信息] 依赖下载完成,下面开始初始化数据库。 +echo. +pause + +set "MAVEN_OPTS=%MAVEN_OPTS% -Xms512m -Xmx1024m" +call mvn test -Dmaven.test.skip=false -Dtest=com.jeesite.test.InitData + +cd bin +pause \ No newline at end of file diff --git a/web-api/bin/init-data.sh b/web-api/bin/init-data.sh new file mode 100644 index 00000000..ff3b83ca --- /dev/null +++ b/web-api/bin/init-data.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +# /** +# * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +# * No deletion without permission, or be held responsible to law. +# * +# * Author: ThinkGem@163.com +# * +# */ +echo "" +echo "[淇℃伅] 鍒濆鍖栨暟鎹簱銆" +echo "" +echo "[淇℃伅] 鏈搷浣滀富瑕佺敤浜庨娆″畨瑁 JeeSite 鎴栧悗瀹夎 Module 鐨勬暟鎹〃鍒濆鍖栵紝鑻ユā鍧楀凡瀹夎浼氳嚜鍔ㄥ拷鐣ャ" +echo "" +echo "[淇℃伅] 鍦 v4.2 鐗堟湰浠ュ悗锛屽畼鏂瑰垵濮嬪寲鏁版嵁搴撴槸姣旇緝瀹夊叏鐨勶紝瀹樻柟浠g爜涓笉浼氬寘鍚换浣曞垹闄ゆ暟鎹〃鍙婃暟鎹殑鑴氭湰銆" +echo "" +echo "[淇℃伅] 濡傛灉浣犳槸鍗囩骇鍒 v4.2 鐨勭増鏈紝鏃犳硶鎺掗櫎浣犳槸鍚﹀崌绾у畬鏁达紝涓哄畨鍏ㄦ湡闂达紝杩樻槸寤鸿鍏堝浠芥暟鎹簱鍚庡啀鎿嶄綔銆" +echo "" +read -s -n1 -p "璇锋寜浠绘剰閿户缁 ... " + +cd .. + +mvn clean compile -Dmaven.test.skip=true -U +echo "" +echo "[淇℃伅] 渚濊禆涓嬭浇瀹屾垚锛屼笅闈㈠紑濮嬪垵濮嬪寲鏁版嵁搴撱" +echo "" +read -s -n1 -p "璇锋寜浠绘剰閿户缁 ... " + +MAVEN_OPTS="$MAVEN_OPTS -Xms512m -Xmx1024m" +mvn test -Dmaven.test.skip=false -Dtest=com.jeesite.test.InitData + +cd bin \ No newline at end of file diff --git a/web-api/bin/package.bat b/web-api/bin/package.bat new file mode 100644 index 00000000..71ddadcf --- /dev/null +++ b/web-api/bin/package.bat @@ -0,0 +1,19 @@ +@echo off +rem /** +rem * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +rem * No deletion without permission, or be held responsible to law. +rem * +rem * Author: ThinkGem@163.com +rem */ +echo. +echo [信息] 打包Web工程,生成war/jar包文件。 +echo. + +%~d0 +cd %~dp0 + +cd .. +call mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U + +cd bin +pause \ No newline at end of file diff --git a/web-api/bin/package.sh b/web-api/bin/package.sh new file mode 100644 index 00000000..4a61e99b --- /dev/null +++ b/web-api/bin/package.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# /** +# * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +# * No deletion without permission, or be held responsible to law. +# * +# * Author: ThinkGem@163.com +# * +# */ +echo "" +echo "[淇℃伅] 鎵撳寘Web宸ョ▼锛岀敓鎴恮ar/jar鍖呮枃浠躲" +echo "" + +cd .. +mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U + +cd bin \ No newline at end of file diff --git a/web-api/bin/run-tomcat.bat b/web-api/bin/run-tomcat.bat new file mode 100644 index 00000000..1d090eea --- /dev/null +++ b/web-api/bin/run-tomcat.bat @@ -0,0 +1,20 @@ +@echo off +rem /** +rem * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +rem * No deletion without permission, or be held responsible to law. +rem * +rem * Author: ThinkGem@163.com +rem */ +echo. +echo [信息] 使用 Spring Boot Tomcat 运行 Web 工程。 +echo. + +%~d0 +cd %~dp0 + +cd .. +title %cd% +set "MAVEN_OPTS=%MAVEN_OPTS% -Xms512m -Xmx1024m" +call mvn clean spring-boot:run -Dmaven.test.skip=true + +pause \ No newline at end of file diff --git a/web-api/bin/run-tomcat.sh b/web-api/bin/run-tomcat.sh new file mode 100644 index 00000000..982b7958 --- /dev/null +++ b/web-api/bin/run-tomcat.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# /** +# * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +# * No deletion without permission, or be held responsible to law. +# * +# * Author: ThinkGem@163.com +# * +# */ +echo "" +echo "[淇℃伅] 浣跨敤 Spring Boot Tomcat 杩愯 Web 宸ョ▼銆" +echo "" + +cd .. +MAVEN_OPTS="$MAVEN_OPTS -Xms512m -Xmx1024m" +mvn clean spring-boot:run -Dmaven.test.skip=true \ No newline at end of file diff --git a/web-api/bin/run-web.bat b/web-api/bin/run-web.bat new file mode 100644 index 00000000..31ed4512 --- /dev/null +++ b/web-api/bin/run-web.bat @@ -0,0 +1,30 @@ +@echo off +rem /** +rem * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +rem * No deletion without permission, or be held responsible to law. +rem * +rem * Author: ThinkGem@163.com +rem */ +echo. +echo [信息] 打包Web工程,并运行Web工程。 +echo. + +%~d0 +cd %~dp0 + +rem 打包Web工程(开始) +cd .. +call mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U +cd target +rem 打包Web工程(结束) + + +rem 根据情况修改 web.jar 为您的 jar 包名称 +mkdir web +copy web.war web +cd web +jar -xvf web.war +cd WEB-INF +call startup.bat + +pause \ No newline at end of file diff --git a/web-api/bin/run-web.sh b/web-api/bin/run-web.sh new file mode 100644 index 00000000..8a18da8e --- /dev/null +++ b/web-api/bin/run-web.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# /** +# * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +# * No deletion without permission, or be held responsible to law. +# * +# * Author: ThinkGem@163.com +# * +# */ +echo "" +echo "[淇℃伅] 鎵撳寘Web宸ョ▼锛屽苟杩愯Web宸ョ▼銆" +echo "" + +# 鎵撳寘Web宸ョ▼锛堝紑濮嬶級 +cd .. +mvn clean package spring-boot:repackage -Dmaven.test.skip=true -U +cd target +# 鎵撳寘Web宸ョ▼锛堢粨鏉燂級 + + +# 鏍规嵁鎯呭喌淇敼 web.jar 涓烘偍鐨 jar 鍖呭悕绉 +mkdir web +cp web.war ./web +cd web +jar -xvf web.war +cd WEB-INF +exec ./startup.sh diff --git a/web-api/db/h2/test.sql b/web-api/db/h2/test.sql new file mode 100644 index 00000000..b44c94f5 --- /dev/null +++ b/web-api/db/h2/test.sql @@ -0,0 +1,75 @@ + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE test_data +( + id varchar(64) NOT NULL, + test_input varchar(200), + test_textarea varchar(200), + test_select varchar(10), + test_select_multiple varchar(200), + test_radio varchar(10), + test_checkbox varchar(200), + test_date datetime, + test_datetime datetime, + test_user_code varchar(64), + test_office_code varchar(64), + test_area_code varchar(64), + test_area_name varchar(100), + status char(1) DEFAULT '0' NOT NULL, + create_by varchar(64) NOT NULL, + create_date datetime NOT NULL, + update_by varchar(64) NOT NULL, + update_date datetime NOT NULL, + remarks varchar(500), + PRIMARY KEY (id) +); + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE test_data_child +( + id varchar(64) NOT NULL, + test_sort int, + test_data_id varchar(64), + test_input varchar(200), + test_textarea varchar(200), + test_select varchar(10), + test_select_multiple varchar(200), + test_radio varchar(10), + test_checkbox varchar(200), + test_date datetime, + test_datetime datetime, + test_user_code varchar(64), + test_office_code varchar(64), + test_area_code varchar(64), + test_area_name varchar(100), + PRIMARY KEY (id) +); + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE test_tree +( + tree_code varchar(64) NOT NULL, + parent_code varchar(64) NOT NULL, + parent_codes varchar(1000) NOT NULL, + tree_sort decimal(10) NOT NULL, + tree_sorts varchar(1000) NOT NULL, + tree_leaf char(1) NOT NULL, + tree_level decimal(4) NOT NULL, + tree_names varchar(1000) NOT NULL, + tree_name varchar(200) NOT NULL, + status char(1) DEFAULT '0' NOT NULL, + create_by varchar(64) NOT NULL, + create_date datetime NOT NULL, + update_by varchar(64) NOT NULL, + update_date datetime NOT NULL, + remarks varchar(500), + PRIMARY KEY (tree_code) +); + + + diff --git a/web-api/db/mssql/test.sql b/web-api/db/mssql/test.sql new file mode 100644 index 00000000..4b48c1f4 --- /dev/null +++ b/web-api/db/mssql/test.sql @@ -0,0 +1,75 @@ + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE [test_data] +( + [id] varchar(64) NOT NULL, + [test_input] varchar(200), + [test_textarea] nvarchar(200), + [test_select] varchar(10), + [test_select_multiple] varchar(200), + [test_radio] varchar(10), + [test_checkbox] varchar(200), + [test_date] datetime, + [test_datetime] datetime, + [test_user_code] varchar(64), + [test_office_code] varchar(64), + [test_area_code] varchar(64), + [test_area_name] nvarchar(100), + [status] char(1) DEFAULT '0' NOT NULL, + [create_by] varchar(64) NOT NULL, + [create_date] datetime NOT NULL, + [update_by] varchar(64) NOT NULL, + [update_date] datetime NOT NULL, + [remarks] nvarchar(500), + PRIMARY KEY ([id]) +); + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE [test_data_child] +( + [id] varchar(64) NOT NULL, + [test_sort] int, + [test_data_id] varchar(64), + [test_input] varchar(200), + [test_textarea] nvarchar(200), + [test_select] varchar(10), + [test_select_multiple] varchar(200), + [test_radio] varchar(10), + [test_checkbox] varchar(200), + [test_date] datetime, + [test_datetime] datetime, + [test_user_code] varchar(64), + [test_office_code] varchar(64), + [test_area_code] varchar(64), + [test_area_name] nvarchar(100), + PRIMARY KEY ([id]) +); + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE [test_tree] +( + [tree_code] varchar(64) NOT NULL, + [parent_code] varchar(64) NOT NULL, + [parent_codes] varchar(1000) NOT NULL, + [tree_sort] decimal(10) NOT NULL, + [tree_sorts] varchar(1000) NOT NULL, + [tree_leaf] char(1) NOT NULL, + [tree_level] decimal(4) NOT NULL, + [tree_names] varchar(1000) NOT NULL, + [tree_name] nvarchar(200) NOT NULL, + [status] char(1) DEFAULT '0' NOT NULL, + [create_by] varchar(64) NOT NULL, + [create_date] datetime NOT NULL, + [update_by] varchar(64) NOT NULL, + [update_date] datetime NOT NULL, + [remarks] nvarchar(500), + PRIMARY KEY ([tree_code]) +); + + + diff --git a/web-api/db/mysql/create_user.sql b/web-api/db/mysql/create_user.sql new file mode 100644 index 00000000..279d7944 --- /dev/null +++ b/web-api/db/mysql/create_user.sql @@ -0,0 +1,13 @@ + +-- 鎵撳紑 my.ini 缁 [mysqld] 澧炲姞濡備笅閰嶇疆锛 +-- sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION + +set global read_only=0; + +create user 'jeesite'@'%' identified by 'jeesite'; + +create database jeesite DEFAULT CHARSET 'utf8' COLLATE 'utf8_general_ci'; + +grant all privileges on jeesite.* to 'jeesite'@'%' identified by 'jeesite'; + +flush privileges; diff --git a/web-api/db/mysql/test.sql b/web-api/db/mysql/test.sql new file mode 100644 index 00000000..3165078a --- /dev/null +++ b/web-api/db/mysql/test.sql @@ -0,0 +1,76 @@ +SET SESSION FOREIGN_KEY_CHECKS=0; + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE test_data +( + id varchar(64) NOT NULL COMMENT '缂栧彿', + test_input varchar(200) COMMENT '鍗曡鏂囨湰', + test_textarea varchar(200) COMMENT '澶氳鏂囨湰', + test_select varchar(10) COMMENT '涓嬫媺妗', + test_select_multiple varchar(200) COMMENT '涓嬫媺澶氶', + test_radio varchar(10) COMMENT '鍗曢夋', + test_checkbox varchar(200) COMMENT '澶嶉夋', + test_date datetime COMMENT '鏃ユ湡閫夋嫨', + test_datetime datetime COMMENT '鏃ユ湡鏃堕棿', + test_user_code varchar(64) COMMENT '鐢ㄦ埛閫夋嫨', + test_office_code varchar(64) COMMENT '鏈烘瀯閫夋嫨', + test_area_code varchar(64) COMMENT '鍖哄煙閫夋嫨', + test_area_name varchar(100) COMMENT '鍖哄煙鍚嶇О', + status char(1) DEFAULT '0' NOT NULL COMMENT '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛', + create_by varchar(64) NOT NULL COMMENT '鍒涘缓鑰', + create_date datetime NOT NULL COMMENT '鍒涘缓鏃堕棿', + update_by varchar(64) NOT NULL COMMENT '鏇存柊鑰', + update_date datetime NOT NULL COMMENT '鏇存柊鏃堕棿', + remarks varchar(500) COMMENT '澶囨敞淇℃伅', + PRIMARY KEY (id) +) COMMENT = '娴嬭瘯鏁版嵁'; + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE test_data_child +( + id varchar(64) NOT NULL COMMENT '缂栧彿', + test_sort int COMMENT '鎺掑簭鍙', + test_data_id varchar(64) COMMENT '鐖惰〃涓婚敭', + test_input varchar(200) COMMENT '鍗曡鏂囨湰', + test_textarea varchar(200) COMMENT '澶氳鏂囨湰', + test_select varchar(10) COMMENT '涓嬫媺妗', + test_select_multiple varchar(200) COMMENT '涓嬫媺澶氶', + test_radio varchar(10) COMMENT '鍗曢夋', + test_checkbox varchar(200) COMMENT '澶嶉夋', + test_date datetime COMMENT '鏃ユ湡閫夋嫨', + test_datetime datetime COMMENT '鏃ユ湡鏃堕棿', + test_user_code varchar(64) COMMENT '鐢ㄦ埛閫夋嫨', + test_office_code varchar(64) COMMENT '鏈烘瀯閫夋嫨', + test_area_code varchar(64) COMMENT '鍖哄煙閫夋嫨', + test_area_name varchar(100) COMMENT '鍖哄煙鍚嶇О', + PRIMARY KEY (id) +) COMMENT = '娴嬭瘯鏁版嵁瀛愯〃'; + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE test_tree +( + tree_code varchar(64) NOT NULL COMMENT '鑺傜偣缂栫爜', + parent_code varchar(64) NOT NULL COMMENT '鐖剁骇缂栧彿', + parent_codes varchar(1000) NOT NULL COMMENT '鎵鏈夌埗绾х紪鍙', + tree_sort decimal(10) NOT NULL COMMENT '鎺掑簭鍙凤紙鍗囧簭锛', + tree_sorts varchar(1000) NOT NULL COMMENT '鎵鏈夋帓搴忓彿', + tree_leaf char(1) NOT NULL COMMENT '鏄惁鏈鏈骇', + tree_level decimal(4) NOT NULL COMMENT '灞傛绾у埆', + tree_names varchar(1000) NOT NULL COMMENT '鍏ㄨ妭鐐瑰悕', + tree_name varchar(200) NOT NULL COMMENT '鑺傜偣鍚嶇О', + status char(1) DEFAULT '0' NOT NULL COMMENT '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛', + create_by varchar(64) NOT NULL COMMENT '鍒涘缓鑰', + create_date datetime NOT NULL COMMENT '鍒涘缓鏃堕棿', + update_by varchar(64) NOT NULL COMMENT '鏇存柊鑰', + update_date datetime NOT NULL COMMENT '鏇存柊鏃堕棿', + remarks varchar(500) COMMENT '澶囨敞淇℃伅', + PRIMARY KEY (tree_code) +) COMMENT = '娴嬭瘯鏍戣〃'; + + + diff --git a/web-api/db/oracle/create_user.sql b/web-api/db/oracle/create_user.sql new file mode 100644 index 00000000..7ccd2411 --- /dev/null +++ b/web-api/db/oracle/create_user.sql @@ -0,0 +1,15 @@ + +create user jeesite + identified by jeesite + quota unlimited on users; + +grant connect,resource,create session,select any table, + create any view,create any table,create any index, + drop any table,drop any view,drop any index + to jeesite; + +-- 鎻愮ず oracle.jdbc.xa.OracleXAResource.recover 閿欒闇瑕佹巿鏉冿細 +grant select on sys.dba_pending_transactions to jeesite; +grant select on sys.pending_trans$ to jeesite; +grant select on sys.dba_2pc_pending to jeesite; +grant execute on sys.dbms_system to jeesite; diff --git a/web-api/db/oracle/test.sql b/web-api/db/oracle/test.sql new file mode 100644 index 00000000..0ffbb56d --- /dev/null +++ b/web-api/db/oracle/test.sql @@ -0,0 +1,132 @@ + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE test_data +( + id varchar2(64) NOT NULL, + test_input varchar2(200), + test_textarea nvarchar2(200), + test_select varchar2(10), + test_select_multiple varchar2(200), + test_radio varchar2(10), + test_checkbox varchar2(200), + test_date timestamp, + test_datetime timestamp, + test_user_code varchar2(64), + test_office_code varchar2(64), + test_area_code varchar2(64), + test_area_name nvarchar2(100), + status char(1) DEFAULT '0' NOT NULL, + create_by varchar2(64) NOT NULL, + create_date timestamp NOT NULL, + update_by varchar2(64) NOT NULL, + update_date timestamp NOT NULL, + remarks nvarchar2(500), + PRIMARY KEY (id) +); + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE test_data_child +( + id varchar2(64) NOT NULL, + test_sort number(10,0), + test_data_id varchar2(64), + test_input varchar2(200), + test_textarea nvarchar2(200), + test_select varchar2(10), + test_select_multiple varchar2(200), + test_radio varchar2(10), + test_checkbox varchar2(200), + test_date timestamp, + test_datetime timestamp, + test_user_code varchar2(64), + test_office_code varchar2(64), + test_area_code varchar2(64), + test_area_name nvarchar2(100), + PRIMARY KEY (id) +); + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE test_tree +( + tree_code varchar2(64) NOT NULL, + parent_code varchar2(64) NOT NULL, + parent_codes varchar2(1000) NOT NULL, + tree_sort number(10) NOT NULL, + tree_sorts varchar2(1000) NOT NULL, + tree_leaf char(1) NOT NULL, + tree_level number(4) NOT NULL, + tree_names varchar2(1000) NOT NULL, + tree_name nvarchar2(200) NOT NULL, + status char(1) DEFAULT '0' NOT NULL, + create_by varchar2(64) NOT NULL, + create_date timestamp NOT NULL, + update_by varchar2(64) NOT NULL, + update_date timestamp NOT NULL, + remarks nvarchar2(500), + PRIMARY KEY (tree_code) +); + + + +/* Comments */ + +COMMENT ON TABLE test_data IS '娴嬭瘯鏁版嵁'; +COMMENT ON COLUMN test_data.id IS '缂栧彿'; +COMMENT ON COLUMN test_data.test_input IS '鍗曡鏂囨湰'; +COMMENT ON COLUMN test_data.test_textarea IS '澶氳鏂囨湰'; +COMMENT ON COLUMN test_data.test_select IS '涓嬫媺妗'; +COMMENT ON COLUMN test_data.test_select_multiple IS '涓嬫媺澶氶'; +COMMENT ON COLUMN test_data.test_radio IS '鍗曢夋'; +COMMENT ON COLUMN test_data.test_checkbox IS '澶嶉夋'; +COMMENT ON COLUMN test_data.test_date IS '鏃ユ湡閫夋嫨'; +COMMENT ON COLUMN test_data.test_datetime IS '鏃ユ湡鏃堕棿'; +COMMENT ON COLUMN test_data.test_user_code IS '鐢ㄦ埛閫夋嫨'; +COMMENT ON COLUMN test_data.test_office_code IS '鏈烘瀯閫夋嫨'; +COMMENT ON COLUMN test_data.test_area_code IS '鍖哄煙閫夋嫨'; +COMMENT ON COLUMN test_data.test_area_name IS '鍖哄煙鍚嶇О'; +COMMENT ON COLUMN test_data.status IS '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛'; +COMMENT ON COLUMN test_data.create_by IS '鍒涘缓鑰'; +COMMENT ON COLUMN test_data.create_date IS '鍒涘缓鏃堕棿'; +COMMENT ON COLUMN test_data.update_by IS '鏇存柊鑰'; +COMMENT ON COLUMN test_data.update_date IS '鏇存柊鏃堕棿'; +COMMENT ON COLUMN test_data.remarks IS '澶囨敞淇℃伅'; +COMMENT ON TABLE test_data_child IS '娴嬭瘯鏁版嵁瀛愯〃'; +COMMENT ON COLUMN test_data_child.id IS '缂栧彿'; +COMMENT ON COLUMN test_data_child.test_sort IS '鎺掑簭鍙'; +COMMENT ON COLUMN test_data_child.test_data_id IS '鐖惰〃涓婚敭'; +COMMENT ON COLUMN test_data_child.test_input IS '鍗曡鏂囨湰'; +COMMENT ON COLUMN test_data_child.test_textarea IS '澶氳鏂囨湰'; +COMMENT ON COLUMN test_data_child.test_select IS '涓嬫媺妗'; +COMMENT ON COLUMN test_data_child.test_select_multiple IS '涓嬫媺澶氶'; +COMMENT ON COLUMN test_data_child.test_radio IS '鍗曢夋'; +COMMENT ON COLUMN test_data_child.test_checkbox IS '澶嶉夋'; +COMMENT ON COLUMN test_data_child.test_date IS '鏃ユ湡閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_datetime IS '鏃ユ湡鏃堕棿'; +COMMENT ON COLUMN test_data_child.test_user_code IS '鐢ㄦ埛閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_office_code IS '鏈烘瀯閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_area_code IS '鍖哄煙閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_area_name IS '鍖哄煙鍚嶇О'; +COMMENT ON TABLE test_tree IS '娴嬭瘯鏍戣〃'; +COMMENT ON COLUMN test_tree.tree_code IS '鑺傜偣缂栫爜'; +COMMENT ON COLUMN test_tree.parent_code IS '鐖剁骇缂栧彿'; +COMMENT ON COLUMN test_tree.parent_codes IS '鎵鏈夌埗绾х紪鍙'; +COMMENT ON COLUMN test_tree.tree_sort IS '鎺掑簭鍙凤紙鍗囧簭锛'; +COMMENT ON COLUMN test_tree.tree_sorts IS '鎵鏈夋帓搴忓彿'; +COMMENT ON COLUMN test_tree.tree_leaf IS '鏄惁鏈鏈骇'; +COMMENT ON COLUMN test_tree.tree_level IS '灞傛绾у埆'; +COMMENT ON COLUMN test_tree.tree_names IS '鍏ㄨ妭鐐瑰悕'; +COMMENT ON COLUMN test_tree.tree_name IS '鑺傜偣鍚嶇О'; +COMMENT ON COLUMN test_tree.status IS '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛'; +COMMENT ON COLUMN test_tree.create_by IS '鍒涘缓鑰'; +COMMENT ON COLUMN test_tree.create_date IS '鍒涘缓鏃堕棿'; +COMMENT ON COLUMN test_tree.update_by IS '鏇存柊鑰'; +COMMENT ON COLUMN test_tree.update_date IS '鏇存柊鏃堕棿'; +COMMENT ON COLUMN test_tree.remarks IS '澶囨敞淇℃伅'; + + + diff --git a/web-api/db/postgresql/test.sql b/web-api/db/postgresql/test.sql new file mode 100644 index 00000000..15f53ad5 --- /dev/null +++ b/web-api/db/postgresql/test.sql @@ -0,0 +1,132 @@ + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE test_data +( + id varchar(64) NOT NULL, + test_input varchar(200), + test_textarea varchar(200), + test_select varchar(10), + test_select_multiple varchar(200), + test_radio varchar(10), + test_checkbox varchar(200), + test_date timestamp, + test_datetime timestamp, + test_user_code varchar(64), + test_office_code varchar(64), + test_area_code varchar(64), + test_area_name varchar(100), + status char(1) DEFAULT '0' NOT NULL, + create_by varchar(64) NOT NULL, + create_date timestamp NOT NULL, + update_by varchar(64) NOT NULL, + update_date timestamp NOT NULL, + remarks varchar(500), + PRIMARY KEY (id) +) WITHOUT OIDS; + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE test_data_child +( + id varchar(64) NOT NULL, + test_sort int, + test_data_id varchar(64), + test_input varchar(200), + test_textarea varchar(200), + test_select varchar(10), + test_select_multiple varchar(200), + test_radio varchar(10), + test_checkbox varchar(200), + test_date timestamp, + test_datetime timestamp, + test_user_code varchar(64), + test_office_code varchar(64), + test_area_code varchar(64), + test_area_name varchar(100), + PRIMARY KEY (id) +) WITHOUT OIDS; + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE test_tree +( + tree_code varchar(64) NOT NULL, + parent_code varchar(64) NOT NULL, + parent_codes varchar(1000) NOT NULL, + tree_sort decimal(10) NOT NULL, + tree_sorts varchar(1000) NOT NULL, + tree_leaf char(1) NOT NULL, + tree_level decimal(4) NOT NULL, + tree_names varchar(1000) NOT NULL, + tree_name varchar(200) NOT NULL, + status char(1) DEFAULT '0' NOT NULL, + create_by varchar(64) NOT NULL, + create_date timestamp NOT NULL, + update_by varchar(64) NOT NULL, + update_date timestamp NOT NULL, + remarks varchar(500), + PRIMARY KEY (tree_code) +) WITHOUT OIDS; + + + +/* Comments */ + +COMMENT ON TABLE test_data IS '娴嬭瘯鏁版嵁'; +COMMENT ON COLUMN test_data.id IS '缂栧彿'; +COMMENT ON COLUMN test_data.test_input IS '鍗曡鏂囨湰'; +COMMENT ON COLUMN test_data.test_textarea IS '澶氳鏂囨湰'; +COMMENT ON COLUMN test_data.test_select IS '涓嬫媺妗'; +COMMENT ON COLUMN test_data.test_select_multiple IS '涓嬫媺澶氶'; +COMMENT ON COLUMN test_data.test_radio IS '鍗曢夋'; +COMMENT ON COLUMN test_data.test_checkbox IS '澶嶉夋'; +COMMENT ON COLUMN test_data.test_date IS '鏃ユ湡閫夋嫨'; +COMMENT ON COLUMN test_data.test_datetime IS '鏃ユ湡鏃堕棿'; +COMMENT ON COLUMN test_data.test_user_code IS '鐢ㄦ埛閫夋嫨'; +COMMENT ON COLUMN test_data.test_office_code IS '鏈烘瀯閫夋嫨'; +COMMENT ON COLUMN test_data.test_area_code IS '鍖哄煙閫夋嫨'; +COMMENT ON COLUMN test_data.test_area_name IS '鍖哄煙鍚嶇О'; +COMMENT ON COLUMN test_data.status IS '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛'; +COMMENT ON COLUMN test_data.create_by IS '鍒涘缓鑰'; +COMMENT ON COLUMN test_data.create_date IS '鍒涘缓鏃堕棿'; +COMMENT ON COLUMN test_data.update_by IS '鏇存柊鑰'; +COMMENT ON COLUMN test_data.update_date IS '鏇存柊鏃堕棿'; +COMMENT ON COLUMN test_data.remarks IS '澶囨敞淇℃伅'; +COMMENT ON TABLE test_data_child IS '娴嬭瘯鏁版嵁瀛愯〃'; +COMMENT ON COLUMN test_data_child.id IS '缂栧彿'; +COMMENT ON COLUMN test_data_child.test_sort IS '鎺掑簭鍙'; +COMMENT ON COLUMN test_data_child.test_data_id IS '鐖惰〃涓婚敭'; +COMMENT ON COLUMN test_data_child.test_input IS '鍗曡鏂囨湰'; +COMMENT ON COLUMN test_data_child.test_textarea IS '澶氳鏂囨湰'; +COMMENT ON COLUMN test_data_child.test_select IS '涓嬫媺妗'; +COMMENT ON COLUMN test_data_child.test_select_multiple IS '涓嬫媺澶氶'; +COMMENT ON COLUMN test_data_child.test_radio IS '鍗曢夋'; +COMMENT ON COLUMN test_data_child.test_checkbox IS '澶嶉夋'; +COMMENT ON COLUMN test_data_child.test_date IS '鏃ユ湡閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_datetime IS '鏃ユ湡鏃堕棿'; +COMMENT ON COLUMN test_data_child.test_user_code IS '鐢ㄦ埛閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_office_code IS '鏈烘瀯閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_area_code IS '鍖哄煙閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_area_name IS '鍖哄煙鍚嶇О'; +COMMENT ON TABLE test_tree IS '娴嬭瘯鏍戣〃'; +COMMENT ON COLUMN test_tree.tree_code IS '鑺傜偣缂栫爜'; +COMMENT ON COLUMN test_tree.parent_code IS '鐖剁骇缂栧彿'; +COMMENT ON COLUMN test_tree.parent_codes IS '鎵鏈夌埗绾х紪鍙'; +COMMENT ON COLUMN test_tree.tree_sort IS '鎺掑簭鍙凤紙鍗囧簭锛'; +COMMENT ON COLUMN test_tree.tree_sorts IS '鎵鏈夋帓搴忓彿'; +COMMENT ON COLUMN test_tree.tree_leaf IS '鏄惁鏈鏈骇'; +COMMENT ON COLUMN test_tree.tree_level IS '灞傛绾у埆'; +COMMENT ON COLUMN test_tree.tree_names IS '鍏ㄨ妭鐐瑰悕'; +COMMENT ON COLUMN test_tree.tree_name IS '鑺傜偣鍚嶇О'; +COMMENT ON COLUMN test_tree.status IS '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛'; +COMMENT ON COLUMN test_tree.create_by IS '鍒涘缓鑰'; +COMMENT ON COLUMN test_tree.create_date IS '鍒涘缓鏃堕棿'; +COMMENT ON COLUMN test_tree.update_by IS '鏇存柊鑰'; +COMMENT ON COLUMN test_tree.update_date IS '鏇存柊鏃堕棿'; +COMMENT ON COLUMN test_tree.remarks IS '澶囨敞淇℃伅'; + + + diff --git a/web-api/db/test.erm b/web-api/db/test.erm new file mode 100644 index 00000000..e3f14529 --- /dev/null +++ b/web-api/db/test.erm @@ -0,0 +1,3541 @@ + + + + true + 100 + A4 210 x 297 mm + 30 + 30 + 30 + 30 + + 0 + 1.0 + 0 + 0 + + 128 + 128 + 192 + + + 255 + 255 + 255 + + Segoe UI + 9 + + StandardSQL + false + + + 0 + true + 2 + 1 + 1 + false + true + false + false + + + db\test.sql + UTF-8 + CR+LF + false + 7be191506f9daa8070b3ac14921dffd44063d2bb + null + + true + false + true + false + true + false + false + false + false + false + false + false + false + false + false + true + false + true + false + false + + + + + null + db\test.xls + + + en + + true + true + true + + + + true + true + true + + + db\test.png + + true + true + + + + + + + false + + + + + 0 + + + + false + false + + + + + false + + + + + + -1 + -1 + Microsoft YaHei UI + 9 + 50 + 50 + + 255 + 255 + 255 + + + + false + 2016-12-25 17:25:00 + + Project Name + + + + Model Name + + + + Version + + + + Company + + + + Author + + + + + + + + + 7be191506f9daa8070b3ac14921dffd44063d2bb + Default + + + + + + 136ca02f1b3a96a8f2e242d5dd64d48f566143ef + 64 + null + false + null + false + false + false + + false + 绉熸埛浠g爜 + 绉熸埛浠g爜 + corp_code + varchar(n) + + + f116706ac00cd3a3ee88b2a88debf7ebc3eeb12d + 100 + null + false + null + false + false + false + + false + 绉熸埛鍚嶇О + 绉熸埛鍚嶇О + corp_name + nvarchar(n) + + + 1a3b3f8bccfce8894d117d6bdb0a6b104bfb80ef + 64 + null + false + null + false + false + false + + false + + 鍒涘缓鑰 + create_by + varchar(n) + + + dba1aec0c72d79ea73ed4ebde07696cf4df174b7 + null + null + false + null + false + false + false + + false + + 鍒涘缓鏃堕棿 + create_date + datetime + + + f01926071736b56b898949cc0720149c71504324 + null + null + false + null + false + false + false + + false + + 鎵╁睍 Date 1 + extend_d1 + datetime + + + 942700093ab61c3be0bdf6b23bcba210bcc30281 + null + null + false + null + false + false + false + + false + + 鎵╁睍 Date 2 + extend_d2 + datetime + + + f221902bf89fe94dece8ccf309f59cc2c479d63f + null + null + false + null + false + false + false + + false + + 鎵╁睍 Date 3 + extend_d3 + datetime + + + c8d21e24bc69aac295703b0bae56269035b729f0 + null + null + false + null + false + false + false + + false + + 鎵╁睍 Date 4 + extend_d4 + datetime + + + 4c0cc4ae32f8774cc319f516784430204aef0bdb + 19 + 4 + false + null + false + false + false + + false + + 鎵╁睍 Float 1 + extend_f1 + decimal(p,s) + + + 2e958c528620621985af4394590198feed57cdf9 + 19 + 4 + false + null + false + false + false + + false + + 鎵╁睍 Float 2 + extend_f2 + decimal(p,s) + + + 7c25ad75662553c7d4a58fa66eb50ca7c0ffee59 + 19 + 4 + false + null + false + false + false + + false + + 鎵╁睍 Float 3 + extend_f3 + decimal(p,s) + + + 1f81990c9694963f032c302d1834b972a6f2eb74 + 19 + 4 + false + null + false + false + false + + false + + 鎵╁睍 Float 4 + extend_f4 + decimal(p,s) + + + a1d747cd40768ac9f85176518ee48cb513bae110 + 19 + null + false + null + false + false + false + + false + + 鎵╁睍 Integer 1 + extend_i1 + decimal(p) + + + a9f0e14d6691c397990abe4ef1ff21674dccf401 + 19 + null + false + null + false + false + false + + false + + 鎵╁睍 Integer 2 + extend_i2 + decimal(p) + + + 2ce06c5cf87d93bb1e3f47268dbc679be4b6dd8d + 19 + null + false + null + false + false + false + + false + + 鎵╁睍 Integer 3 + extend_i3 + decimal(p) + + + 53d8c730fcec69d341f44089817ae06eb4844278 + 19 + null + false + null + false + false + false + + false + + 鎵╁睍 Integer 4 + extend_i4 + decimal(p) + + + ad6f9eff50476669df62b7601cbc3a2e0c905d36 + 500 + null + false + null + false + false + false + + false + + 鎵╁睍 String 1 + extend_s1 + nvarchar(n) + + + 3a24133d2be4831e99d1319983e5393bcf964ff9 + 500 + null + false + null + false + false + false + + false + + 鎵╁睍 String 2 + extend_s2 + nvarchar(n) + + + 40e1afbbad28d28e371dd1ab77fb56640b1cb66b + 500 + null + false + null + false + false + false + + false + + 鎵╁睍 String 3 + extend_s3 + nvarchar(n) + + + a2d6b5a494fc1a3d29360d922296521c6640856b + 500 + null + false + null + false + false + false + + false + + 鎵╁睍 String 4 + extend_s4 + nvarchar(n) + + + 29f701cc6a308fbfc5b12b80fee621ceeb231dcc + 500 + null + false + null + false + false + false + + false + + 鎵╁睍 String 5 + extend_s5 + nvarchar(n) + + + c9a37a7b6a5451930ca63e36814767f742cd1393 + 500 + null + false + null + false + false + false + + false + + 鎵╁睍 String 6 + extend_s6 + nvarchar(n) + + + 8c26203d310a4e602cf0c0fc8a7b2c818219c1dc + 500 + null + false + null + false + false + false + + false + + 鎵╁睍 String 7 + extend_s7 + nvarchar(n) + + + 54448f19b0f5d1630bf29f9f99787802c36ebddb + 500 + null + false + null + false + false + false + + false + + 鎵╁睍 String 8 + extend_s8 + nvarchar(n) + + + 869fc70cf3a4e92e8056b40814df8e03f9f9efde + 64 + null + false + null + false + false + false + + false + + 缂栧彿 + id + varchar(n) + + + b18ce64a2a72d00b26515583d8bbfea282f30ea8 + 64 + null + false + null + false + false + false + + false + + 鐖剁骇缂栧彿 + parent_code + varchar(n) + + + 63772c051414452204e91e8d0dabd1dbfd640326 + 1000 + null + false + null + false + false + false + + false + + 鎵鏈夌埗绾х紪鍙 + parent_codes + varchar(n) + + + 8f7d3761c17a1b8632d186a3c67cb08dca18c498 + 500 + null + false + null + false + false + false + + false + + 澶囨敞淇℃伅 + remarks + nvarchar(n) + + + ba0fb53af3ccc8b0e5d73baa58ec27fbb7973097 + 1 + null + false + null + false + false + false + + false + + 鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤 3鍐荤粨 4瀹℃牳 5椹冲洖 9鑽夌ǹ锛 + status + character(n) + + + 17718c2364a2368c2072da279c927d7ad3bfcf08 + 1 + null + false + null + false + false + false + + false + + 鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛 + status + character(n) + + + 23b25e48c87be0e4f3952f7a8330594e9d511a4e + 64 + null + false + null + false + false + false + + false + + 鍖哄煙閫夋嫨 + test_area_code + varchar(n) + + + 8bc627205b6e55931d09079fcd07bfacbbd38f41 + 100 + null + false + null + false + false + false + + false + + 鍖哄煙鍚嶇О + test_area_name + nvarchar(n) + + + cdc46f802299958a2b3140200410caf5cbeb8a27 + 200 + null + false + null + false + false + false + + false + + 澶嶉夋 + test_checkbox + varchar(n) + + + d829e707316a49d39e5a11da5f5d36030a856b86 + 64 + null + false + null + false + false + false + + false + + 鐖惰〃涓婚敭 + test_data_id + varchar(n) + + + a27ebfd109532e2f551b101a0c78b3f50a3d58dd + null + null + false + null + false + false + false + + false + + 鏃ユ湡閫夋嫨 + test_date + datetime + + + 95ec23c1b2704817cca94d169aed5e11deb0adbb + null + null + false + null + false + false + false + + false + + 鏃ユ湡鏃堕棿 + test_datetime + datetime + + + ac02f2d1fff63fa66db583735eb1c8e9b466872f + 200 + null + false + null + false + false + false + + false + + 鍗曡鏂囨湰 + test_input + varchar(n) + + + e2270df5e0974bf471fdfe36e29bc9a8aa1774cb + 64 + null + false + null + false + false + false + + false + + 鏈烘瀯閫夋嫨 + test_office_code + varchar(n) + + + 791691b791efedc2d14867a152b4de58f4567326 + 10 + null + false + null + false + false + false + + false + + 鍗曢夋 + test_radio + varchar(n) + + + 6697b12cf2f6d7135570c2a581212ee067c13206 + 10 + null + false + null + false + false + false + + false + + 涓嬫媺妗 + test_select + varchar(n) + + + 68b9381c1fb6668186fef70f52fc0c14b1bd6f1c + 200 + null + false + null + false + false + false + + false + + 涓嬫媺澶氶 + test_select_multiple + varchar(n) + + + ae103dc1fb50094552e56afd72015481271913db + null + null + false + null + false + false + false + + false + + 鎺掑簭鍙 + test_sort + integer + + + 2fed92437d28f1427e913aba1251fe0807c7b209 + 200 + null + false + null + false + false + false + + false + + 澶氳鏂囨湰 + test_textarea + nvarchar(n) + + + 2eda719a62fb7e1d3face62555046d938abddda9 + 64 + null + false + null + false + false + false + + false + + 鐢ㄦ埛閫夋嫨 + test_user_code + varchar(n) + + + 70e9482ae432d16e734a730100e366ddab33564c + 64 + null + false + null + false + false + false + + false + + 鑺傜偣缂栫爜 + tree_code + varchar(n) + + + 40b63ab3e485fd55370d6d04b063c4397483ebc1 + 1 + null + false + null + false + false + false + + false + + 鏄惁鏈鏈骇 + tree_leaf + character(n) + + + 3b9c3307b7140f27edeb47ffe307a662b2856627 + 4 + null + false + null + false + false + false + + false + + 灞傛绾у埆 + tree_level + decimal(p) + + + 5356a60d0801c47941dd2fb4565cf785bb58e2d3 + 200 + null + false + null + false + false + false + + false + + 鑺傜偣鍚嶇О + tree_name + nvarchar(n) + + + f48d759281e0da56d3e82430c3489d1276418f61 + 1000 + null + false + null + false + false + false + + false + + 鍏ㄨ妭鐐瑰悕 + tree_names + varchar(n) + + + be17e27c1f73fe128f00468cc83953077b7e00a9 + 10 + null + false + null + false + false + false + + false + + 鎺掑簭鍙凤紙鍗囧簭锛 + tree_sort + decimal(p) + + + b0bd388c14e5b2bbab9590f5247961a7edd9eb3b + 1000 + null + false + null + false + false + false + + false + + 鎵鏈夋帓搴忓彿 + tree_sorts + varchar(n) + + + 2c6b290f30c6f9e100f6c77eab0cba7bb3386768 + 64 + null + false + null + false + false + false + + false + + 鏇存柊鑰 + update_by + varchar(n) + + + f0bdbc4002f4a1b7fb7c5026bc21a7689c549728 + null + null + false + null + false + false + false + + false + + 鏇存柊鏃堕棿 + update_date + datetime + + + + + + + e553474c37270813e70025e433a4cf8a64653e13 + 438 + 387 + Segoe UI + 9 + 864 + 36 + + 128 + 128 + 192 + + + + test_tree + 娴嬭瘯鏍戣〃 + + + + + + + 70e9482ae432d16e734a730100e366ddab33564c + 7e417ee9d0dd69c767a5853922621946ed4fb2d8 + + + + + varchar(n) + + + false + false + true + true + false + + + + + + + + + + + false + false + false + + + 0 + + + a535b6c506004a7fdf4d48984c9ff2cfa59c157a + + 5356a60d0801c47941dd2fb4565cf785bb58e2d3 + 39f501890586173d229e83610cfbfaa6e3a85374 + + + + + nvarchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + 35ae805d1da92afdb99b2fe8c536d1649356fccd + + + + + + + + +
+ + 5435ef11ea53f170fe3491b199c113e47932e175 + 401 + 320 + Segoe UI + 9 + 36 + 36 + + 128 + 128 + 192 + + + + test_data + 娴嬭瘯鏁版嵁 + + + + + + + 869fc70cf3a4e92e8056b40814df8e03f9f9efde + d82778c36626013cd39fd790da6f55a9762f0c76 + + + + + varchar(n) + + + false + false + true + true + false + + + + + + + + + + + false + false + false + + + 0 + + + + ac02f2d1fff63fa66db583735eb1c8e9b466872f + 3e14b40dc07c134329a40752973acfad2ffdc48b + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 2fed92437d28f1427e913aba1251fe0807c7b209 + 8050d948828b16267482e9e3716219321f206b81 + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 6697b12cf2f6d7135570c2a581212ee067c13206 + 3664605e054c39531ca8e91aa4463c955a993357 + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 68b9381c1fb6668186fef70f52fc0c14b1bd6f1c + f7b189ecdc92c78bfaae9c736318ab6a5aedd396 + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 791691b791efedc2d14867a152b4de58f4567326 + 6e4837ab55b592669ccc7ebfc8b1ed96a00607b3 + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + cdc46f802299958a2b3140200410caf5cbeb8a27 + 9fb81bdc12ed017f62e9dd4529025e536eff7f08 + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + a27ebfd109532e2f551b101a0c78b3f50a3d58dd + 9d9478798ed2766a81b0e5a8a022eb89d9c5cc34 + + + + + datetime + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 95ec23c1b2704817cca94d169aed5e11deb0adbb + c131dc5cb7ce6f1aa5e8d5f86f2002c8ae1bb8f6 + + + + + datetime + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 2eda719a62fb7e1d3face62555046d938abddda9 + cfe3c330968a9a824c2cf933b227887d3e9615ac + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + e2270df5e0974bf471fdfe36e29bc9a8aa1774cb + 23041cb30875514136904ea11043c7ea1924f048 + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 23b25e48c87be0e4f3952f7a8330594e9d511a4e + b6d5dc8745c0fa484ed6f14e90a42282ca1b285d + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 8bc627205b6e55931d09079fcd07bfacbbd38f41 + d244401ff7302bb5b75092016531952d093b238b + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + 35ae805d1da92afdb99b2fe8c536d1649356fccd + + + + + + + + +
+ + 5a836e654b7b7d19f102e87336fefa079d98a2e6 + 438 + 346 + Segoe UI + 9 + 468 + 36 + + 128 + 128 + 192 + + + + test_data_child + 娴嬭瘯鏁版嵁瀛愯〃 + + + + + + + 869fc70cf3a4e92e8056b40814df8e03f9f9efde + 34477707bcf8a7810e12e9565aff085f6fb1e0ad + + + + + varchar(n) + + + false + false + true + true + false + + + + + + + + + + + false + false + false + + + 0 + + + + ae103dc1fb50094552e56afd72015481271913db + ec8a047dffe3cf2e4d95ba3e26c3bac0382d95c9 + + + + + integer + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + d829e707316a49d39e5a11da5f5d36030a856b86 + b095c44611ed08156277676d9a3a0ce52b9b05ef + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + ac02f2d1fff63fa66db583735eb1c8e9b466872f + 78715aa66a10a9b190ad69b8ed792e9a2f4946e3 + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 2fed92437d28f1427e913aba1251fe0807c7b209 + 693f8af2fe6cf45255b6f2bc7e9077f3630c3dd8 + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 6697b12cf2f6d7135570c2a581212ee067c13206 + 04216c384533b70b8e86b571fa2beef7157bab5a + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 68b9381c1fb6668186fef70f52fc0c14b1bd6f1c + 0b6f63094be90aa8674460cce26be10327827ceb + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 791691b791efedc2d14867a152b4de58f4567326 + 363e8cfcf4a6b228e656decadacba29280906555 + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + cdc46f802299958a2b3140200410caf5cbeb8a27 + 7875aa5fee3d6f9587180fb8fce9343a56cdc34e + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + a27ebfd109532e2f551b101a0c78b3f50a3d58dd + 61c49a2f7807c55c8f85110c30889d5b403e4b04 + + + + + datetime + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 95ec23c1b2704817cca94d169aed5e11deb0adbb + b91171b99f3628aadb0e6986fbfa30cc547b280e + + + + + datetime + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 2eda719a62fb7e1d3face62555046d938abddda9 + 9f33d190101e56f93f5ece0fd7c5cdda3e704b4c + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + e2270df5e0974bf471fdfe36e29bc9a8aa1774cb + 16121b5aa08fc170883408ec2d0487281a132d9d + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 23b25e48c87be0e4f3952f7a8330594e9d511a4e + 1afc7f146271f5c90ea811aa24c08ce25d12552e + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 8bc627205b6e55931d09079fcd07bfacbbd38f41 + 343f0db997b913f299b0496c4306d3617ad708de + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + + + + + + + +
+
+ + + 845c82ebd869d5620b1ef2c2b6f438b11a045082 + BaseEntity + + + 869fc70cf3a4e92e8056b40814df8e03f9f9efde + 02ecedc0de5850cba25bc91919ed39d414b74111 + + + + + varchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + ba0fb53af3ccc8b0e5d73baa58ec27fbb7973097 + 2fe6a36385238c1b21c76deae00a7afa00ff5538 + + + + + character(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + + + ea920cba2fe0eaee64a2310ece7cda4b198b37ec + BaseEntityCorp + + + 136ca02f1b3a96a8f2e242d5dd64d48f566143ef + b8ea4b73d6d32a222e5abfd453287575ae518480 + + + + + varchar(n) + + 0 + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + f116706ac00cd3a3ee88b2a88debf7ebc3eeb12d + b94f5fe344185c40739cf93d1090686001bb11e0 + + + + + nvarchar(n) + + JeeSite + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + + + 35ae805d1da92afdb99b2fe8c536d1649356fccd + DataEntity + + + 17718c2364a2368c2072da279c927d7ad3bfcf08 + f0036584bd8711715579d21994a0105935605a7e + + + + + character(n) + + 0 + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 1a3b3f8bccfce8894d117d6bdb0a6b104bfb80ef + c391a15752a8eb58bc558a39d1b431f7ee125e0e + + + + + varchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + dba1aec0c72d79ea73ed4ebde07696cf4df174b7 + e2e82ba86e15fd67397355e711255b1625078ae1 + + + + + datetime + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 2c6b290f30c6f9e100f6c77eab0cba7bb3386768 + fd0546fc2d4e01c35dcbc23913add68a99fabd73 + + + + + varchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + f0bdbc4002f4a1b7fb7c5026bc21a7689c549728 + f8ea4fc4a778a0b94398a661a1ed8608f0e8d28d + + + + + datetime + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 8f7d3761c17a1b8632d186a3c67cb08dca18c498 + 69e01b6d4f42df40a09540ef4ba10ed8e006abaa + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + + + 85024a2953cf3e3c9c1cce49b2351853ab0d125b + DataEntityNoStatus + + + 1a3b3f8bccfce8894d117d6bdb0a6b104bfb80ef + e5355faba5ec3c9128507dd4c48ea9230631cf83 + + + + + varchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + dba1aec0c72d79ea73ed4ebde07696cf4df174b7 + 6bed374c39d181003a4f92d76d79a4119176ba0c + + + + + datetime + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 2c6b290f30c6f9e100f6c77eab0cba7bb3386768 + f9db19bb567760bbdd554d75bbfdc891c89f9da9 + + + + + varchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + f0bdbc4002f4a1b7fb7c5026bc21a7689c549728 + ee78b079f7d319bf8119fd01439cd97424ff49fa + + + + + datetime + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 8f7d3761c17a1b8632d186a3c67cb08dca18c498 + f7b88ecec0ef386bb384c228842a7587432112fb + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + + + 118dab95fc1f792cd468b9f66af2d4fabd98c39b + ExtendEntity + + + ad6f9eff50476669df62b7601cbc3a2e0c905d36 + 6ccadddab6ce48441ca7abd798cda6f3debf4a0c + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 3a24133d2be4831e99d1319983e5393bcf964ff9 + 93ab0ba3b47b01934614dbd3e572358c9f99e6ea + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 40e1afbbad28d28e371dd1ab77fb56640b1cb66b + a78c7961910a5e697027d1a3530b1afaa8ea8c94 + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + a2d6b5a494fc1a3d29360d922296521c6640856b + 40085364ec7a58653e96f8659aadd258d7556bc7 + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 29f701cc6a308fbfc5b12b80fee621ceeb231dcc + 9787d7fe93ee31c5b4979fd620ff6e4b2777eccf + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + c9a37a7b6a5451930ca63e36814767f742cd1393 + 95c55b81b7e9e1a9bb01aa3d88fb90c648641c4e + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 8c26203d310a4e602cf0c0fc8a7b2c818219c1dc + 16f44dfc7964796f109293bc49afd58dcb4eec1f + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 54448f19b0f5d1630bf29f9f99787802c36ebddb + 39b1dffa083f74afc30df621845cf7f0ed71394f + + + + + nvarchar(n) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + a1d747cd40768ac9f85176518ee48cb513bae110 + 7584cc6360ae7edc99e1f619042eba5865b2c4c7 + + + + + decimal(p) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + a9f0e14d6691c397990abe4ef1ff21674dccf401 + f0b5383e05c6b3f6e5f65b33b33009826c83d014 + + + + + decimal(p) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 2ce06c5cf87d93bb1e3f47268dbc679be4b6dd8d + 260d5f31009fff18000d1e64f4f877926e621306 + + + + + decimal(p) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 53d8c730fcec69d341f44089817ae06eb4844278 + a83144f40e7ae64e46a4b4ed651379774a953b17 + + + + + decimal(p) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 4c0cc4ae32f8774cc319f516784430204aef0bdb + 2a5203a275171a250870cf6cb224a910aa9354ec + + + + + decimal(p,s) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 2e958c528620621985af4394590198feed57cdf9 + 3ef5bd65a7dcd74b9a9d8a292ec395f66b7de32b + + + + + decimal(p,s) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 7c25ad75662553c7d4a58fa66eb50ca7c0ffee59 + 01d0849bdda56a8d8f24befdadc3fc9b007ae92b + + + + + decimal(p,s) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 1f81990c9694963f032c302d1834b972a6f2eb74 + 1c8ed63d72f40f0fe2f05815675771bdf3f824f8 + + + + + decimal(p,s) + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + f01926071736b56b898949cc0720149c71504324 + 2b49e875138bfb329aaa352629650b7881435123 + + + + + datetime + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 942700093ab61c3be0bdf6b23bcba210bcc30281 + 5c6ec16226d85b0411b7077cb9a6e0c7aa8d74d1 + + + + + datetime + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + f221902bf89fe94dece8ccf309f59cc2c479d63f + d92b8f7fa7a2be49c7f00c447a603b136e84261d + + + + + datetime + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + c8d21e24bc69aac295703b0bae56269035b729f0 + 095a76f07a3cd2bdc6cc442757c11012e1974f4a + + + + + datetime + + + false + false + false + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + + + a535b6c506004a7fdf4d48984c9ff2cfa59c157a + TreeEntity + + + b18ce64a2a72d00b26515583d8bbfea282f30ea8 + 394369b90c0a5b6efeed3cf823c642605d7a1653 + + + + + varchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 63772c051414452204e91e8d0dabd1dbfd640326 + e8d877396943acfec73023dba2c1c6e3d7802d62 + + + + + varchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + be17e27c1f73fe128f00468cc83953077b7e00a9 + 23f973124aedd0244533f4e7b3b103c548b966be + + + + + decimal(p) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + b0bd388c14e5b2bbab9590f5247961a7edd9eb3b + 984d5eac2b3221118a61655e4a5a49c78e0f0151 + + + + + varchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 40b63ab3e485fd55370d6d04b063c4397483ebc1 + b2f246a3f0ade317eaa9915e2fd539abae5a5ec8 + + + + + character(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + 3b9c3307b7140f27edeb47ffe307a662b2856627 + f5a9968479420f08da2e98d21136b3ed4b6e396f + + + + + decimal(p) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + f48d759281e0da56d3e82430c3489d1276418f61 + 618194ebfc8c6c42efcef3a4af0b8054f6af209b + + + + + varchar(n) + + + false + false + true + false + false + + + + + + + + + + + false + false + false + + + 0 + + + + + + + + + + + + + +
diff --git a/web-api/pom.xml b/web-api/pom.xml new file mode 100644 index 00000000..6934d405 --- /dev/null +++ b/web-api/pom.xml @@ -0,0 +1,171 @@ + + + 4.0.0 + + + com.jeesite + jeesite-parent + 5.0.0-SNAPSHOT + ../parent/pom.xml + + + jeesite-web-api + war + + 涓撲负鍒嗙绔彁渚涙帴鍙f湇鍔★紝鍏抽棴鍐呯疆鐧诲綍椤靛拰涓绘鏋堕〉瑙嗗浘 + + JeeSite Web Api + http://jeesite.com + 2013-Now + + + + web + com.jeesite.modules.Application + + + false + false + + + 8980:8980 + + + + + + + + com.jeesite + jeesite-module-core + ${project.parent.version} + + + + + com.jeesite + jeesite-module-swagger + ${project.parent.version} + + + + + + + + + + + + + + ${finalName} + ${project.basedir}/src/main/webapp/WEB-INF/classes/ + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + + + + org.apache.maven.plugins + maven-war-plugin + + + ${project.build.directory}/${project.artifactId} + ${finalName} + + false + + + + + + + org.apache.maven.plugins + maven-eclipse-plugin + + ${eclipse-plugin-download-sources} + ${eclipse-plugin-download-javadocs} + ${finalName} + 2.0 + 6.0 + + + + + + + + + thinkgem + WangZhen + thinkgem at 163.com + Project lead + +8 + + + + + JeeSite + http://jeesite.com + + + + + aliyun-repos + https://maven.aliyun.com/repository/public + true + false + + + jeesite-repos + http://maven.jeesite.net/repository/maven-public + + + + + aliyun-repos + https://maven.aliyun.com/repository/public + true + false + + + jeesite-repos + http://maven.jeesite.net/repository/maven-public + + + + diff --git a/web-api/src/main/java/com/jeesite/modules/Application.java b/web-api/src/main/java/com/jeesite/modules/Application.java new file mode 100644 index 00000000..0af94171 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/Application.java @@ -0,0 +1,30 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +/** + * Application + * @author ThinkGem + * @version 2018-10-13 + */ +@SpringBootApplication +public class Application extends SpringBootServletInitializer { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { + this.setRegisterErrorPageFilter(false); // 閿欒椤甸潰鏈夊鍣ㄦ潵澶勭悊锛岃屼笉鏄疭pringBoot + return builder.sources(Application.class); + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/dao/TestDataChildDao.java b/web-api/src/main/java/com/jeesite/modules/test/dao/TestDataChildDao.java new file mode 100644 index 00000000..7b96dda7 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/dao/TestDataChildDao.java @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.dao; + +import com.jeesite.common.dao.CrudDao; +import com.jeesite.common.mybatis.annotation.MyBatisDao; +import com.jeesite.modules.test.entity.TestDataChild; + +/** + * 娴嬭瘯鏁版嵁DAO鎺ュ彛 + * @author ThinkGem + * @version 2018-04-22 + */ +@MyBatisDao//(dataSourceName="ds2") +public interface TestDataChildDao extends CrudDao { + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/dao/TestDataDao.java b/web-api/src/main/java/com/jeesite/modules/test/dao/TestDataDao.java new file mode 100644 index 00000000..93ba7f35 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/dao/TestDataDao.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.dao; + +import java.util.List; +import java.util.Map; + +import com.jeesite.common.dao.CrudDao; +import com.jeesite.common.mybatis.annotation.MyBatisDao; +import com.jeesite.modules.test.entity.TestData; + +/** + * 娴嬭瘯鏁版嵁DAO鎺ュ彛 + * @author ThinkGem + * @version 2018-04-22 + */ +@MyBatisDao +public interface TestDataDao extends CrudDao { + + /** + * 婕旂ずMap鍙傛暟鍜岃繑鍥炲硷紝鏀寔鍒嗛〉 + */ + public List> findListForMap(Map params); + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/dao/TestTreeDao.java b/web-api/src/main/java/com/jeesite/modules/test/dao/TestTreeDao.java new file mode 100644 index 00000000..7648d4cd --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/dao/TestTreeDao.java @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.dao; + +import com.jeesite.common.dao.TreeDao; +import com.jeesite.common.mybatis.annotation.MyBatisDao; +import com.jeesite.modules.test.entity.TestTree; + +/** + * 娴嬭瘯鏍戣〃DAO鎺ュ彛 + * @author ThinkGem + * @version 2018-04-22 + */ +@MyBatisDao +public interface TestTreeDao extends TreeDao { + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/db/InitTestData.java b/web-api/src/main/java/com/jeesite/modules/test/db/InitTestData.java new file mode 100644 index 00000000..376844b7 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/db/InitTestData.java @@ -0,0 +1,182 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.db; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.stereotype.Component; + +import com.jeesite.common.config.Global; +import com.jeesite.common.lang.StringUtils; +import com.jeesite.common.tests.BaseInitDataTests; +import com.jeesite.modules.gen.entity.GenTable; +import com.jeesite.modules.gen.entity.GenTableColumn; +import com.jeesite.modules.gen.service.GenTableService; +import com.jeesite.modules.gen.utils.GenUtils; + +/** + * 鍒濆鍖栨牳蹇冭〃鏁版嵁 + * @author ThinkGem + * @version 2020-5-26 + */ +@Component +@ConditionalOnProperty(name="jeesite.initdata", havingValue="true", matchIfMissing=false) +public class InitTestData extends BaseInitDataTests { + + @Override + public boolean initData() throws Exception { + if (GenUtils.isTableExists("test_data")) { + return true; // 濡傛灉琛ㄥ凡瀛樺湪锛屽垯鏃犻渶鍒濆鍖 + } + runCreateScript("test.sql"); + initGenDemoData(); + return true; + } + + @Autowired + private GenTableService genTableService; + /** + * 浠g爜鐢熸垚娴嬭瘯鏁版嵁 + */ + public void initGenDemoData() throws Exception{ + if (!checkTable(GenTable.class)) { + return; + } + if (!checkTable(GenTableColumn.class)) { + return; + } + initGenTestData(); + initGenTreeData(); + } + /** + * 浠g爜鐢熸垚娴嬭瘯鏁版嵁 + */ + private void initGenTestData() throws Exception{ + GenTable genTable = new GenTable(); + genTable.setIsNewRecord(true); + genTable.setTableName("test_data"); + genTable = genTableService.getFromDb(genTable); + genTable.setIsNewRecord(true); + genTable.setClassName("TestData"); + genTable.setFunctionAuthor("ThinkGem"); + genTable.setTplCategory("crud"); + genTable.setPackageName("com.jeesite.modules"); + genTable.setModuleName("test"); + genTable.setSubModuleName(""); + genTable.setFunctionName("娴嬭瘯鏁版嵁"); + genTable.setFunctionNameSimple("鏁版嵁"); + genTable.getOptionMap().put("isHaveDisableEnable", Global.YES); + genTable.getOptionMap().put("isHaveDelete", Global.YES); + genTable.getOptionMap().put("isFileUpload", Global.YES); + genTable.getOptionMap().put("isImageUpload", Global.YES); + initGenTableColumn(genTable); + genTableService.save(genTable); + // 瀛愯〃 + GenTable genTableChild = new GenTable(); + genTableChild.setIsNewRecord(true); + genTableChild.setTableName("test_data_child"); + genTableChild = genTableService.getFromDb(genTableChild); + genTableChild.setIsNewRecord(true); + genTableChild.setClassName("TestDataChild"); + genTableChild.setFunctionAuthor("ThinkGem"); + genTableChild.setTplCategory("crud"); + genTableChild.setPackageName("com.jeesite.modules"); + genTableChild.setModuleName("test"); + genTableChild.setSubModuleName(""); + genTableChild.setFunctionName("娴嬭瘯瀛愯〃"); + genTableChild.setFunctionNameSimple("鏁版嵁"); + genTableChild.setParentTableName("test_data"); + genTableChild.setParentTableFkName("test_data_id"); + initGenTableColumn(genTableChild); + genTableService.save(genTableChild); + } + + /** + * 浠g爜鐢熸垚娴嬭瘯鏁版嵁锛堝垪鍒濆鍖栵級 + */ + private void initGenTableColumn(GenTable genTable){ + for(GenTableColumn column : genTable.getColumnList()){ + if ("test_input".equals(column.getColumnName()) + || "test_textarea".equals(column.getColumnName()) + || "test_select".equals(column.getColumnName()) + || "test_select_multiple".equals(column.getColumnName()) + || "test_checkbox".equals(column.getColumnName()) + || "test_radio".equals(column.getColumnName()) + || "test_date".equals(column.getColumnName()) + || "test_datetime".equals(column.getColumnName()) + ){ + column.setShowType(StringUtils.substringAfter( + column.getColumnName(), "test_")); + if ("test_input".equals(column.getColumnName()) + ){ + column.setQueryType("LIKE"); + } + else if ("test_textarea".equals(column.getColumnName()) + ){ + column.setQueryType("LIKE"); + column.getOptionMap().put("isNewLine", Global.YES); +// column.getOptionMap().put("gridRowCol", "12/2/10"); + } + else if ("test_select".equals(column.getColumnName()) + || "test_select_multiple".equals(column.getColumnName()) + || "test_radio".equals(column.getColumnName()) + || "test_checkbox".equals(column.getColumnName()) + ){ + column.getOptionMap().put("dictType", "sys_menu_type"); + column.getOptionMap().put("dictName", "sys_menu_type"); + } + else if ("test_date".equals(column.getColumnName()) + || "test_datetime".equals(column.getColumnName()) + ){ + column.setQueryType("BETWEEN"); + } + }else if ("test_user_code".equals(column.getColumnName())){ + column.setAttrType("com.jeesite.modules.sys.entity.User"); + column.setFullAttrName("testUser"); + column.setShowType("userselect"); + }else if ("test_office_code".equals(column.getColumnName())){ + column.setAttrType("com.jeesite.modules.sys.entity.Office"); + column.setFullAttrName("testOffice"); + column.setShowType("officeselect"); + }else if ("test_area_code".equals(column.getColumnName())){ + column.setFullAttrName("testAreaCode|testAreaName"); + column.setShowType("areaselect"); + }else if ("test_area_name".equals(column.getColumnName())){ + column.setIsEdit(Global.NO); + column.setIsQuery(Global.NO); + }else if ("test_data_id".equals(column.getColumnName())){ + column.setFullAttrName("testData"); + } + } + } + + /** + * 浠g爜鐢熸垚鏍戣〃娴嬭瘯鏁版嵁 + */ + private void initGenTreeData() throws Exception{ + GenTable genTable = new GenTable(); + genTable.setIsNewRecord(true); + genTable.setTableName("test_tree"); + genTable = genTableService.getFromDb(genTable); + genTable.setIsNewRecord(true); + genTable.setClassName("TestTree"); + genTable.setFunctionAuthor("ThinkGem"); + genTable.setTplCategory("treeGrid"); + genTable.setPackageName("com.jeesite.modules"); + genTable.setModuleName("test"); + genTable.setSubModuleName(""); + genTable.setFunctionName("娴嬭瘯鏍戣〃"); + genTable.setFunctionNameSimple("鏁版嵁"); + genTable.getOptionMap().put("isHaveDisableEnable", Global.YES); + genTable.getOptionMap().put("isHaveDelete", Global.YES); + genTable.getOptionMap().put("isFileUpload", Global.YES); + genTable.getOptionMap().put("isImageUpload", Global.YES); + genTable.getOptionMap().put("treeViewCode", "tree_code"); + genTable.getOptionMap().put("treeViewName", "tree_name"); + initGenTableColumn(genTable); + genTableService.save(genTable); + } + +} diff --git a/web-api/src/main/java/com/jeesite/modules/test/entity/TestData.java b/web-api/src/main/java/com/jeesite/modules/test/entity/TestData.java new file mode 100644 index 00000000..dbd07330 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/entity/TestData.java @@ -0,0 +1,226 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.entity; + +import javax.validation.constraints.Size; +import java.util.Date; +import com.jeesite.common.mybatis.annotation.JoinTable; +import com.jeesite.common.mybatis.annotation.JoinTable.Type; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jeesite.modules.sys.entity.User; +import com.jeesite.modules.sys.entity.Office; +import java.util.List; +import com.jeesite.common.collect.ListUtils; + +import com.jeesite.common.entity.DataEntity; +import com.jeesite.common.mybatis.annotation.Column; +import com.jeesite.common.mybatis.annotation.Table; +import com.jeesite.common.mybatis.mapper.query.QueryType; + +/** + * 娴嬭瘯鏁版嵁Entity + * @author ThinkGem + * @version 2018-04-22 + */ +@Table(name="test_data", alias="a", columns={ + @Column(name="id", attrName="id", label="缂栧彿", isPK=true), + @Column(name="test_input", attrName="testInput", label="鍗曡鏂囨湰", queryType=QueryType.LIKE), + @Column(name="test_textarea", attrName="testTextarea", label="澶氳鏂囨湰", queryType=QueryType.LIKE), + @Column(name="test_select", attrName="testSelect", label="涓嬫媺妗"), + @Column(name="test_select_multiple", attrName="testSelectMultiple", label="涓嬫媺澶氶"), + @Column(name="test_radio", attrName="testRadio", label="鍗曢夋"), + @Column(name="test_checkbox", attrName="testCheckbox", label="澶嶉夋"), + @Column(name="test_date", attrName="testDate", label="鏃ユ湡閫夋嫨", isUpdateForce=true/*鏄惁寮哄埗鏇存柊锛堝綋璋冪敤update骞朵笖璇ュ睘鎬т负绌虹殑鏃跺欙紝鍏佽鏇存柊涓虹┖锛*/), + @Column(name="test_datetime", attrName="testDatetime", label="鏃ユ湡鏃堕棿", isUpdateForce=true), + @Column(name="test_user_code", attrName="testUser.userCode", label="鐢ㄦ埛閫夋嫨"), + @Column(name="test_office_code", attrName="testOffice.officeCode", label="鏈烘瀯閫夋嫨"), + @Column(name="test_area_code", attrName="testAreaCode", label="鍖哄煙閫夋嫨"), + @Column(name="test_area_name", attrName="testAreaName", label="鍖哄煙鍚嶇О"), + @Column(includeEntity=DataEntity.class), + }, joinTable={ + @JoinTable(type=Type.LEFT_JOIN, entity=User.class, attrName="testUser", alias="u10", + on="u10.user_code = a.test_user_code", columns={ + @Column(name="user_code", label="鐢ㄦ埛缂栫爜", isPK=true), + @Column(name="user_name", label="鐢ㄦ埛鍚嶇О", isQuery=false), + }), + @JoinTable(type=Type.LEFT_JOIN, entity=Office.class, attrName="testOffice", alias="u11", + on="u11.office_code = a.test_office_code", columns={ + @Column(name="office_code", label="鏈烘瀯缂栫爜", isPK=true), + @Column(name="office_name", label="鏈烘瀯鍚嶇О", isQuery=false), + }), + }, orderBy="a.update_date DESC" +) +public class TestData extends DataEntity { + + private static final long serialVersionUID = 1L; + private String testInput; // 鍗曡鏂囨湰 + private String testTextarea; // 澶氳鏂囨湰 + private String testSelect; // 涓嬫媺妗 + private String testSelectMultiple; // 涓嬫媺澶氶 + private String testRadio; // 鍗曢夋 + private String testCheckbox; // 澶嶉夋 + private Date testDate; // 鏃ユ湡閫夋嫨 + private Date testDatetime; // 鏃ユ湡鏃堕棿 + private User testUser; // 鐢ㄦ埛閫夋嫨 + private Office testOffice; // 鏈烘瀯閫夋嫨 + private String testAreaCode; // 鍖哄煙閫夋嫨 + private String testAreaName; // 鍖哄煙鍚嶇О + private List testDataChildList = ListUtils.newArrayList(); // 瀛愯〃鍒楄〃 + + public TestData() { + this(null); + } + + public TestData(String id){ + super(id); + } + + @Size(min=0, max=200, message="鍗曡鏂囨湰闀垮害涓嶈兘瓒呰繃 200 涓瓧绗") + public String getTestInput() { + return testInput; + } + + public void setTestInput(String testInput) { + this.testInput = testInput; + } + + @Size(min=0, max=200, message="澶氳鏂囨湰闀垮害涓嶈兘瓒呰繃 200 涓瓧绗") + public String getTestTextarea() { + return testTextarea; + } + + public void setTestTextarea(String testTextarea) { + this.testTextarea = testTextarea; + } + + @Size(min=0, max=10, message="涓嬫媺妗嗛暱搴︿笉鑳借秴杩 10 涓瓧绗") + public String getTestSelect() { + return testSelect; + } + + public void setTestSelect(String testSelect) { + this.testSelect = testSelect; + } + + @Size(min=0, max=200, message="涓嬫媺澶氶夐暱搴︿笉鑳借秴杩 200 涓瓧绗") + public String getTestSelectMultiple() { + return testSelectMultiple; + } + + public void setTestSelectMultiple(String testSelectMultiple) { + this.testSelectMultiple = testSelectMultiple; + } + + @Size(min=0, max=10, message="鍗曢夋闀垮害涓嶈兘瓒呰繃 10 涓瓧绗") + public String getTestRadio() { + return testRadio; + } + + public void setTestRadio(String testRadio) { + this.testRadio = testRadio; + } + + @Size(min=0, max=200, message="澶嶉夋闀垮害涓嶈兘瓒呰繃 200 涓瓧绗") + public String getTestCheckbox() { + return testCheckbox; + } + + public void setTestCheckbox(String testCheckbox) { + this.testCheckbox = testCheckbox; + } + + @JsonFormat(pattern = "yyyy-MM-dd") + public Date getTestDate() { + return testDate; + } + + public void setTestDate(Date testDate) { + this.testDate = testDate; + } + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + public Date getTestDatetime() { + return testDatetime; + } + + public void setTestDatetime(Date testDatetime) { + this.testDatetime = testDatetime; + } + + public User getTestUser() { + return testUser; + } + + public void setTestUser(User testUser) { + this.testUser = testUser; + } + + public Office getTestOffice() { + return testOffice; + } + + public void setTestOffice(Office testOffice) { + this.testOffice = testOffice; + } + + @Size(min=0, max=64, message="鍖哄煙閫夋嫨闀垮害涓嶈兘瓒呰繃 64 涓瓧绗") + public String getTestAreaCode() { + return testAreaCode; + } + + public void setTestAreaCode(String testAreaCode) { + this.testAreaCode = testAreaCode; + } + + @Size(min=0, max=100, message="鍖哄煙鍚嶇О闀垮害涓嶈兘瓒呰繃 100 涓瓧绗") + public String getTestAreaName() { + return testAreaName; + } + + public void setTestAreaName(String testAreaName) { + this.testAreaName = testAreaName; + } + + public Date getTestDate_gte() { + return sqlMap.getWhere().getValue("test_date", QueryType.GTE); + } + + public void setTestDate_gte(Date testDate) { + sqlMap.getWhere().and("test_date", QueryType.GTE, testDate); + } + + public Date getTestDate_lte() { + return sqlMap.getWhere().getValue("test_date", QueryType.LTE); + } + + public void setTestDate_lte(Date testDate) { + sqlMap.getWhere().and("test_date", QueryType.LTE, testDate); + } + + public Date getTestDatetime_gte() { + return sqlMap.getWhere().getValue("test_datetime", QueryType.GTE); + } + + public void setTestDatetime_gte(Date testDatetime) { + sqlMap.getWhere().and("test_datetime", QueryType.GTE, testDatetime); + } + + public Date getTestDatetime_lte() { + return sqlMap.getWhere().getValue("test_datetime", QueryType.LTE); + } + + public void setTestDatetime_lte(Date testDatetime) { + sqlMap.getWhere().and("test_datetime", QueryType.LTE, testDatetime); + } + + public List getTestDataChildList() { + return testDataChildList; + } + + public void setTestDataChildList(List testDataChildList) { + this.testDataChildList = testDataChildList; + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/entity/TestDataChild.java b/web-api/src/main/java/com/jeesite/modules/test/entity/TestDataChild.java new file mode 100644 index 00000000..4a83a789 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/entity/TestDataChild.java @@ -0,0 +1,236 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.entity; + +import javax.validation.constraints.Size; +import java.util.Date; +import com.jeesite.common.mybatis.annotation.JoinTable; +import com.jeesite.common.mybatis.annotation.JoinTable.Type; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jeesite.modules.sys.entity.User; +import com.jeesite.modules.sys.entity.Office; + +import com.jeesite.common.entity.DataEntity; +import com.jeesite.common.mybatis.annotation.Column; +import com.jeesite.common.mybatis.annotation.Table; +import com.jeesite.common.mybatis.mapper.query.QueryType; + +/** + * 娴嬭瘯鏁版嵁Entity + * @author ThinkGem + * @version 2018-04-22 + */ +@Table(name="test_data_child", alias="a", columns={ + @Column(name="id", attrName="id", label="缂栧彿", isPK=true), + @Column(name="test_sort", attrName="testSort", label="鎺掑簭鍙"), + @Column(name="test_data_id", attrName="testData.id", label="鐖惰〃涓婚敭"), + @Column(name="test_input", attrName="testInput", label="鍗曡鏂囨湰", queryType=QueryType.LIKE), + @Column(name="test_textarea", attrName="testTextarea", label="澶氳鏂囨湰", queryType=QueryType.LIKE), + @Column(name="test_select", attrName="testSelect", label="涓嬫媺妗"), + @Column(name="test_select_multiple", attrName="testSelectMultiple", label="涓嬫媺澶氶"), + @Column(name="test_radio", attrName="testRadio", label="鍗曢夋"), + @Column(name="test_checkbox", attrName="testCheckbox", label="澶嶉夋"), + @Column(name="test_date", attrName="testDate", label="鏃ユ湡閫夋嫨", isUpdateForce=true), + @Column(name="test_datetime", attrName="testDatetime", label="鏃ユ湡鏃堕棿", isUpdateForce=true), + @Column(name="test_user_code", attrName="testUser.userCode", label="鐢ㄦ埛閫夋嫨"), + @Column(name="test_office_code", attrName="testOffice.officeCode", label="鏈烘瀯閫夋嫨"), + @Column(name="test_area_code", attrName="testAreaCode", label="鍖哄煙閫夋嫨"), + @Column(name="test_area_name", attrName="testAreaName", label="鍖哄煙鍚嶇О", isQuery=false), + }, joinTable={ + @JoinTable(type=Type.LEFT_JOIN, entity=User.class, attrName="testUser", alias="u12", + on="u12.user_code = a.test_user_code", columns={ + @Column(name="user_code", label="鐢ㄦ埛缂栫爜", isPK=true), + @Column(name="user_name", label="鐢ㄦ埛鍚嶇О", isQuery=false), + }), + @JoinTable(type=Type.LEFT_JOIN, entity=Office.class, attrName="testOffice", alias="u13", + on="u13.office_code = a.test_office_code", columns={ + @Column(name="office_code", label="鏈烘瀯缂栫爜", isPK=true), + @Column(name="office_name", label="鏈烘瀯鍚嶇О", isQuery=false), + }), + }, orderBy="a.id ASC" +) +public class TestDataChild extends DataEntity { + + private static final long serialVersionUID = 1L; + private Long testSort; // 鎺掑簭鍙 + private TestData testData; // 鐖惰〃涓婚敭 鐖剁被 + private String testInput; // 鍗曡鏂囨湰 + private String testTextarea; // 澶氳鏂囨湰 + private String testSelect; // 涓嬫媺妗 + private String testSelectMultiple; // 涓嬫媺澶氶 + private String testRadio; // 鍗曢夋 + private String testCheckbox; // 澶嶉夋 + private Date testDate; // 鏃ユ湡閫夋嫨 + private Date testDatetime; // 鏃ユ湡鏃堕棿 + private User testUser; // 鐢ㄦ埛閫夋嫨 + private Office testOffice; // 鏈烘瀯閫夋嫨 + private String testAreaCode; // 鍖哄煙閫夋嫨 + private String testAreaName; // 鍖哄煙鍚嶇О + + public TestDataChild() { + this(null); + } + + + public TestDataChild(TestData testData){ + this.testData = testData; + } + + public Long getTestSort() { + return testSort; + } + + public void setTestSort(Long testSort) { + this.testSort = testSort; + } + + @Size(min=0, max=64, message="鐖惰〃涓婚敭闀垮害涓嶈兘瓒呰繃 64 涓瓧绗") + public TestData getTestData() { + return testData; + } + + public void setTestData(TestData testData) { + this.testData = testData; + } + + @Size(min=0, max=200, message="鍗曡鏂囨湰闀垮害涓嶈兘瓒呰繃 200 涓瓧绗") + public String getTestInput() { + return testInput; + } + + public void setTestInput(String testInput) { + this.testInput = testInput; + } + + @Size(min=0, max=200, message="澶氳鏂囨湰闀垮害涓嶈兘瓒呰繃 200 涓瓧绗") + public String getTestTextarea() { + return testTextarea; + } + + public void setTestTextarea(String testTextarea) { + this.testTextarea = testTextarea; + } + + @Size(min=0, max=10, message="涓嬫媺妗嗛暱搴︿笉鑳借秴杩 10 涓瓧绗") + public String getTestSelect() { + return testSelect; + } + + public void setTestSelect(String testSelect) { + this.testSelect = testSelect; + } + + @Size(min=0, max=200, message="涓嬫媺澶氶夐暱搴︿笉鑳借秴杩 200 涓瓧绗") + public String getTestSelectMultiple() { + return testSelectMultiple; + } + + public void setTestSelectMultiple(String testSelectMultiple) { + this.testSelectMultiple = testSelectMultiple; + } + + @Size(min=0, max=10, message="鍗曢夋闀垮害涓嶈兘瓒呰繃 10 涓瓧绗") + public String getTestRadio() { + return testRadio; + } + + public void setTestRadio(String testRadio) { + this.testRadio = testRadio; + } + + @Size(min=0, max=200, message="澶嶉夋闀垮害涓嶈兘瓒呰繃 200 涓瓧绗") + public String getTestCheckbox() { + return testCheckbox; + } + + public void setTestCheckbox(String testCheckbox) { + this.testCheckbox = testCheckbox; + } + + @JsonFormat(pattern = "yyyy-MM-dd") + public Date getTestDate() { + return testDate; + } + + public void setTestDate(Date testDate) { + this.testDate = testDate; + } + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + public Date getTestDatetime() { + return testDatetime; + } + + public void setTestDatetime(Date testDatetime) { + this.testDatetime = testDatetime; + } + + public User getTestUser() { + return testUser; + } + + public void setTestUser(User testUser) { + this.testUser = testUser; + } + + public Office getTestOffice() { + return testOffice; + } + + public void setTestOffice(Office testOffice) { + this.testOffice = testOffice; + } + + @Size(min=0, max=64, message="鍖哄煙閫夋嫨闀垮害涓嶈兘瓒呰繃 64 涓瓧绗") + public String getTestAreaCode() { + return testAreaCode; + } + + public void setTestAreaCode(String testAreaCode) { + this.testAreaCode = testAreaCode; + } + + @Size(min=0, max=100, message="鍖哄煙鍚嶇О闀垮害涓嶈兘瓒呰繃 100 涓瓧绗") + public String getTestAreaName() { + return testAreaName; + } + + public void setTestAreaName(String testAreaName) { + this.testAreaName = testAreaName; + } + + public Date getTestDate_gte() { + return sqlMap.getWhere().getValue("test_date", QueryType.GTE); + } + + public void setTestDate_gte(Date testDate) { + sqlMap.getWhere().and("test_date", QueryType.GTE, testDate); + } + + public Date getTestDate_lte() { + return sqlMap.getWhere().getValue("test_date", QueryType.LTE); + } + + public void setTestDate_lte(Date testDate) { + sqlMap.getWhere().and("test_date", QueryType.LTE, testDate); + } + + public Date getTestDatetime_gte() { + return sqlMap.getWhere().getValue("test_datetime", QueryType.GTE); + } + + public void setTestDatetime_gte(Date testDatetime) { + sqlMap.getWhere().and("test_datetime", QueryType.GTE, testDatetime); + } + + public Date getTestDatetime_lte() { + return sqlMap.getWhere().getValue("test_datetime", QueryType.LTE); + } + + public void setTestDatetime_lte(Date testDatetime) { + sqlMap.getWhere().and("test_datetime", QueryType.LTE, testDatetime); + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/entity/TestTree.java b/web-api/src/main/java/com/jeesite/modules/test/entity/TestTree.java new file mode 100644 index 00000000..4486ba5f --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/entity/TestTree.java @@ -0,0 +1,70 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.entity; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +import com.jeesite.common.entity.DataEntity; +import com.jeesite.common.entity.TreeEntity; +import com.jeesite.common.mybatis.annotation.Column; +import com.jeesite.common.mybatis.annotation.Table; +import com.jeesite.common.mybatis.mapper.query.QueryType; + +/** + * 娴嬭瘯鏍戣〃Entity + * @author ThinkGem + * @version 2018-04-22 + */ +@Table(name="test_tree", alias="a", columns={ + @Column(name="tree_code", attrName="treeCode", label="鑺傜偣缂栫爜", isPK=true), + @Column(includeEntity=TreeEntity.class), + @Column(name="tree_name", attrName="treeName", label="鑺傜偣鍚嶇О", queryType=QueryType.LIKE, isTreeName=true), + @Column(includeEntity=DataEntity.class), + }, orderBy="a.tree_sorts, a.tree_code" +) +public class TestTree extends TreeEntity { + + private static final long serialVersionUID = 1L; + private String treeCode; // 鑺傜偣缂栫爜 + private String treeName; // 鑺傜偣鍚嶇О + + public TestTree() { + this(null); + } + + public TestTree(String id){ + super(id); + } + + @Override + public TestTree getParent() { + return parent; + } + + @Override + public void setParent(TestTree parent) { + this.parent = parent; + } + + public String getTreeCode() { + return treeCode; + } + + public void setTreeCode(String treeCode) { + this.treeCode = treeCode; + } + + @NotBlank(message="鑺傜偣鍚嶇О涓嶈兘涓虹┖") + @Size(min=0, max=200, message="鑺傜偣鍚嶇О闀垮害涓嶈兘瓒呰繃 200 涓瓧绗") + public String getTreeName() { + return treeName; + } + + public void setTreeName(String treeName) { + this.treeName = treeName; + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/service/TestDataService.java b/web-api/src/main/java/com/jeesite/modules/test/service/TestDataService.java new file mode 100644 index 00000000..a1eda0ff --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/service/TestDataService.java @@ -0,0 +1,174 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.jeesite.common.entity.Page; +import com.jeesite.common.idgen.IdGen; +import com.jeesite.common.lang.DateUtils; +import com.jeesite.common.service.CrudService; +import com.jeesite.modules.file.utils.FileUploadUtils; +import com.jeesite.modules.sys.service.UserService; +import com.jeesite.modules.test.dao.TestDataChildDao; +import com.jeesite.modules.test.dao.TestDataDao; +import com.jeesite.modules.test.entity.TestData; +import com.jeesite.modules.test.entity.TestDataChild; + +/** + * 娴嬭瘯鏁版嵁Service + * @author ThinkGem + * @version 2018-04-22 + */ +@Service +@Transactional(readOnly=true) +public class TestDataService extends CrudService { + + @Autowired + private TestDataChildDao testDataChildDao; + + /** + * 鑾峰彇鍗曟潯鏁版嵁 + * @param testData + * @return + */ + @Override + public TestData get(TestData testData) { + TestData entity = super.get(testData); + if (entity != null){ + TestDataChild testDataChild = new TestDataChild(entity); + testDataChild.setStatus(TestDataChild.STATUS_NORMAL); + entity.setTestDataChildList(testDataChildDao.findList(testDataChild)); + } + return entity; + } + + /** + * 鏌ヨ鍒嗛〉鏁版嵁 + * @param page 鍒嗛〉瀵硅薄 + * @param testData + * @return + */ + @Override + public Page findPage(TestData testData) { + +// // 婕旂ずMap鍙傛暟鍜岃繑鍥炲硷紝鏀寔鍒嗛〉 +// Page> pageMap = new Page<>(); +// Map params = MapUtils.newHashMap(); +// params.put("testInput", "123"); +// params.put("page", pageMap); +// pageMap.setList(dao.findListForMap(params)); +// System.out.println(pageMap.getList()); +// System.out.println(pageMap.getCount()); + + return super.findPage(testData); + } + + /** + * 鏌ヨ瀛愯〃鍒嗛〉鏁版嵁 + * @param page 鍒嗛〉瀵硅薄 + * @param testData + * @return + */ + public List findSubList(TestDataChild testData) { + return testDataChildDao.findList(testData); + } + + /** + * 淇濆瓨鏁版嵁锛堟彃鍏ユ垨鏇存柊锛 + * @param testData + */ + @Override + @Transactional(readOnly=false) + public void save(TestData testData) { + super.save(testData); + // 淇濆瓨涓婁紶鍥剧墖 + FileUploadUtils.saveFileUpload(testData, testData.getId(), "testData_image"); + // 淇濆瓨涓婁紶闄勪欢 + FileUploadUtils.saveFileUpload(testData, testData.getId(), "testData_file"); + // 淇濆瓨 TestData瀛愯〃 + int index = 0; + for (TestDataChild testDataChild : testData.getTestDataChildList()){ + if (!TestDataChild.STATUS_DELETE.equals(testDataChild.getStatus())){ + testDataChild.setTestData(testData); + if (testDataChild.getIsNewRecord()){ + testDataChild.preInsert(); + testDataChildDao.insert(testDataChild); + }else{ + testDataChild.preUpdate(); + testDataChildDao.update(testDataChild); + } + }else{ + testDataChildDao.delete(testDataChild); + } + // 淇濆瓨涓婁紶闄勪欢 + FileUploadUtils.saveFileUpload(testDataChild, testDataChild.getId(), + "testDataChildList["+index+"].testDataChild_file"); + index++; + } + } + + /** + * 鏇存柊鐘舵 + * @param testData + */ + @Override + @Transactional(readOnly=false) + public void updateStatus(TestData testData) { + super.updateStatus(testData); + } + + /** + * 鍒犻櫎鏁版嵁 + * @param testData + */ + @Override + @Transactional(readOnly=false) + public void delete(TestData testData) { + super.delete(testData); + TestDataChild testDataChild = new TestDataChild(); + testDataChild.setTestData(testData); + testDataChildDao.deleteByEntity(testDataChild); + } + + /** + * 浠诲姟璋冨害娴嬭瘯锛歵estDataService.executeTestTask(userService, 1, 2L, 3F, 4D, 'abc') + */ + public void executeTestTask(UserService userService, Integer i, Long l, Float f, Double d, String s){ + System.out.println(DateUtils.getTime() + " 浠诲姟鎵ц浜唦~~ bean: " + userService + ", i: " + i + + ", l: " + l + ", f: " + f + ", d: " + d + ", s: " + s); + } + + /** + * 浜嬪姟娴嬭瘯锛岃嫢 Child 鎶ラ敊锛屽垯鍥炴粴 + */ + @Transactional(readOnly=false/*, propagation=Propagation.NOT_SUPPORTED*/) + public void transTest(TestData testData) { + testData.setTestInput("transTest"); + testData.setTestTextarea(IdGen.randomBase62(5)); + dao.insert(testData); + TestDataChild testDataChild = new TestDataChild(); + testDataChild.setTestData(testData); + // 璁剧疆涓涓秴鍑烘暟鎹簱鑼冨洿鐨勫硷紝鎶涘嚭鏁版嵁搴撳紓甯 + StringBuilder sb = new StringBuilder(); + for (int i=0; i<500; i++){ + sb.append("transTest" + i); + } + testDataChild.setTestInput(sb.toString()); + testDataChildDao.insert(testDataChild); + } + + /** + * 浜嬪姟楠岃瘉锛岃繑鍥炵┖锛屽垯浜嬪姟鍥炴粴鎴愬姛 + */ + public boolean transValid(TestData testData) { + return dao.get(testData) == null; + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/service/TestTreeService.java b/web-api/src/main/java/com/jeesite/modules/test/service/TestTreeService.java new file mode 100644 index 00000000..9cc945f2 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/service/TestTreeService.java @@ -0,0 +1,80 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.service; + +import java.util.List; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.jeesite.common.service.TreeService; +import com.jeesite.modules.file.utils.FileUploadUtils; +import com.jeesite.modules.test.dao.TestTreeDao; +import com.jeesite.modules.test.entity.TestTree; + +/** + * 娴嬭瘯鏍戣〃Service + * @author ThinkGem + * @version 2018-04-22 + */ +@Service +@Transactional(readOnly=true) +public class TestTreeService extends TreeService { + + /** + * 鑾峰彇鍗曟潯鏁版嵁 + * @param testTree + * @return + */ + @Override + public TestTree get(TestTree testTree) { + return super.get(testTree); + } + + /** + * 鏌ヨ鍒楄〃鏁版嵁 + * @param testTree + * @return + */ + @Override + public List findList(TestTree testTree) { + return super.findList(testTree); + } + + /** + * 淇濆瓨鏁版嵁锛堟彃鍏ユ垨鏇存柊锛 + * @param testTree + */ + @Override + @Transactional(readOnly=false) + public void save(TestTree testTree) { + super.save(testTree); + // 淇濆瓨涓婁紶鍥剧墖 + FileUploadUtils.saveFileUpload(testTree, testTree.getId(), "testTree_image"); + // 淇濆瓨涓婁紶闄勪欢 + FileUploadUtils.saveFileUpload(testTree, testTree.getId(), "testTree_file"); + } + + /** + * 鏇存柊鐘舵 + * @param testTree + */ + @Override + @Transactional(readOnly=false) + public void updateStatus(TestTree testTree) { + super.updateStatus(testTree); + } + + /** + * 鍒犻櫎鏁版嵁 + * @param testTree + */ + @Override + @Transactional(readOnly=false) + public void delete(TestTree testTree) { + super.delete(testTree); + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/web/DemoController.java b/web-api/src/main/java/com/jeesite/modules/test/web/DemoController.java new file mode 100644 index 00000000..63be2d92 --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/web/DemoController.java @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.web; + +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.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.jeesite.common.lang.StringUtils; +import com.jeesite.common.web.BaseController; +import com.jeesite.modules.test.entity.TestData; +import com.jeesite.modules.test.service.TestDataService; + +/** + * 婕旂ず瀹炰緥Controller + * @author ThinkGem + * @version 2018-03-24 + */ +@Controller +@RequestMapping(value = "${adminPath}/demo") +public class DemoController extends BaseController { + + @Autowired + private TestDataService testDataService; + + /** + * 鑾峰彇鏁版嵁 + */ + @ModelAttribute + public TestData get(String id, boolean isNewRecord) { + return testDataService.get(id, isNewRecord); + } + + /** + * DataGrid + */ + @RequiresPermissions("test:testData:view") + @RequestMapping(value = "dataGrid/{viewName}") + public String dataGrid(@PathVariable String viewName, TestData testData, Model model) { + return "modules/demo/demoDataGrid" + StringUtils.cap(viewName); + } + + /** + * Form + */ + @RequiresPermissions("test:testData:view") + @RequestMapping(value = "form/{viewName}") + public String form(@PathVariable String viewName, TestData testData, Model model) { + return "modules/demo/demoForm" + StringUtils.cap(viewName); + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/web/TestDataController.java b/web-api/src/main/java/com/jeesite/modules/test/web/TestDataController.java new file mode 100644 index 00000000..3eb3fb8d --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/web/TestDataController.java @@ -0,0 +1,153 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.web; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +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.validation.annotation.Validated; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.jeesite.common.config.Global; +import com.jeesite.common.entity.Page; +import com.jeesite.common.web.BaseController; +import com.jeesite.modules.test.entity.TestData; +import com.jeesite.modules.test.entity.TestDataChild; +import com.jeesite.modules.test.service.TestDataService; + +/** + * 娴嬭瘯鏁版嵁Controller + * @author ThinkGem + * @version 2018-04-22 + */ +@Controller +@RequestMapping(value = "${adminPath}/test/testData") +public class TestDataController extends BaseController { + + @Autowired + private TestDataService testDataService; + + /** + * 鑾峰彇鏁版嵁 + */ + @ModelAttribute + public TestData get(String id, boolean isNewRecord) { + return testDataService.get(id, isNewRecord); + } + + /** + * 鏌ヨ鍒楄〃 + */ + @RequiresPermissions("test:testData:view") + @RequestMapping(value = {"list", ""}) + public String list(TestData testData, Model model) { + model.addAttribute("testData", testData); + return "modules/test/testDataList"; + } + + /** + * 鏌ヨ鍒楄〃鏁版嵁 + */ + @RequiresPermissions("test:testData:view") + @RequestMapping(value = "listData") + @ResponseBody + public Page listData(TestData testData, HttpServletRequest request, HttpServletResponse response) { + testData.setPage(new Page<>(request, response)); + Page page = testDataService.findPage(testData); + return page; + } + + /** + * 鏌ヨ瀛愯〃鍒楄〃鏁版嵁 + */ + @RequiresPermissions("test:testData:view") + @RequestMapping(value = "subListData") + @ResponseBody + public List subListData(TestDataChild testDataChild) { + return testDataService.findSubList(testDataChild); + } + + /** + * 鏌ョ湅缂栬緫琛ㄥ崟 + */ + @RequiresPermissions("test:testData:view") + @RequestMapping(value = "form") + public String form(TestData testData, Model model) { + model.addAttribute("testData", testData); + return "modules/test/testDataForm"; + } + + /** + * 淇濆瓨鏁版嵁 + */ + @RequiresPermissions("test:testData:edit") + @PostMapping(value = "save") + @ResponseBody + public String save(@Validated TestData testData) { + testDataService.save(testData); + return renderResult(Global.TRUE, text("淇濆瓨鏁版嵁鎴愬姛锛")); + } + + /** + * 鍋滅敤鏁版嵁 + */ + @RequiresPermissions("test:testData:edit") + @RequestMapping(value = "disable") + @ResponseBody + public String disable(TestData testData) { + testData.setStatus(TestData.STATUS_DISABLE); + testDataService.updateStatus(testData); + return renderResult(Global.TRUE, text("鍋滅敤鏁版嵁鎴愬姛")); + } + + /** + * 鍚敤鏁版嵁 + */ + @RequiresPermissions("test:testData:edit") + @RequestMapping(value = "enable") + @ResponseBody + public String enable(TestData testData) { + testData.setStatus(TestData.STATUS_NORMAL); + testDataService.updateStatus(testData); + return renderResult(Global.TRUE, text("鍚敤鏁版嵁鎴愬姛")); + } + + /** + * 鍒犻櫎鏁版嵁 + */ + @RequiresPermissions("test:testData:edit") + @RequestMapping(value = "delete") + @ResponseBody + public String delete(TestData testData) { + testDataService.delete(testData); + return renderResult(Global.TRUE, text("鍒犻櫎鏁版嵁鎴愬姛锛")); + } + + /** + * 浜嬪姟娴嬭瘯 + */ + @RequiresPermissions("test:testData:edit") + @RequestMapping(value = "transTest") + @ResponseBody + public String transTest(TestData testData) { + try{ + testDataService.transTest(testData); + }catch (Exception e) { + logger.debug("浜嬪姟娴嬭瘯淇℃伅锛屾姤閿欏洖婊氾細" + e.getMessage()); + } + boolean bl = testDataService.transValid(testData); + return renderResult(Global.TRUE, "浜嬪姟娴嬭瘯"+(bl?"鎴愬姛锛屾暟鎹凡":"澶辫触锛屾暟鎹湭")+"鍥炴粴锛"); + } + +} \ No newline at end of file diff --git a/web-api/src/main/java/com/jeesite/modules/test/web/TestTreeController.java b/web-api/src/main/java/com/jeesite/modules/test/web/TestTreeController.java new file mode 100644 index 00000000..a93002eb --- /dev/null +++ b/web-api/src/main/java/com/jeesite/modules/test/web/TestTreeController.java @@ -0,0 +1,224 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.modules.test.web; + +import java.util.List; +import java.util.Map; + +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.validation.annotation.Validated; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.jeesite.common.config.Global; +import com.jeesite.common.collect.ListUtils; +import com.jeesite.common.collect.MapUtils; +import com.jeesite.common.lang.StringUtils; +import com.jeesite.common.idgen.IdGen; +import com.jeesite.modules.sys.utils.UserUtils; +import com.jeesite.common.web.BaseController; +import com.jeesite.modules.test.entity.TestTree; +import com.jeesite.modules.test.service.TestTreeService; + +/** + * 娴嬭瘯鏍戣〃Controller + * @author ThinkGem + * @version 2018-04-22 + */ +@Controller +@RequestMapping(value = "${adminPath}/test/testTree") +public class TestTreeController extends BaseController { + + @Autowired + private TestTreeService testTreeService; + + /** + * 鑾峰彇鏁版嵁 + */ + @ModelAttribute + public TestTree get(String treeCode, boolean isNewRecord) { + return testTreeService.get(treeCode, isNewRecord); + } + + /** + * 鏌ヨ鍒楄〃 + */ + @RequiresPermissions("test:testTree:view") + @RequestMapping(value = {"list", ""}) + public String list(TestTree testTree, Model model) { + model.addAttribute("testTree", testTree); + return "modules/test/testTreeList"; + } + + /** + * 鏌ヨ鍒楄〃鏁版嵁 + */ + @RequiresPermissions("test:testTree:view") + @RequestMapping(value = "listData") + @ResponseBody + public List listData(TestTree testTree) { + if (StringUtils.isBlank(testTree.getParentCode())) { + testTree.setParentCode(TestTree.ROOT_CODE); + } + if (StringUtils.isNotBlank(testTree.getTreeName())){ + testTree.setParentCode(null); + } + if (StringUtils.isNotBlank(testTree.getRemarks())){ + testTree.setParentCode(null); + } + List list = testTreeService.findList(testTree); + return list; + } + + /** + * 鏌ョ湅缂栬緫琛ㄥ崟 + */ + @RequiresPermissions("test:testTree:view") + @RequestMapping(value = "form") + public String form(TestTree testTree, Model model) { + // 鍒涘缓骞跺垵濮嬪寲涓嬩竴涓妭鐐逛俊鎭 + testTree = createNextNode(testTree); + model.addAttribute("testTree", testTree); + return "modules/test/testTreeForm"; + } + + /** + * 鍒涘缓骞跺垵濮嬪寲涓嬩竴涓妭鐐逛俊鎭紝濡傦細鎺掑簭鍙枫侀粯璁ゅ + */ + @RequiresPermissions("test:testTree:edit") + @RequestMapping(value = "createNextNode") + @ResponseBody + public TestTree createNextNode(TestTree testTree) { + if (StringUtils.isNotBlank(testTree.getParentCode())){ + testTree.setParent(testTreeService.get(testTree.getParentCode())); + } + if (testTree.getIsNewRecord()) { + TestTree where = new TestTree(); + where.setParentCode(testTree.getParentCode()); + TestTree last = testTreeService.getLastByParentCode(where); + // 鑾峰彇鍒颁笅绾ф渶鍚庝竴涓妭鐐 + if (last != null){ + testTree.setTreeSort(last.getTreeSort() + 30); + testTree.setTreeCode(IdGen.nextCode(last.getTreeCode())); + }else if (testTree.getParent() != null){ + testTree.setTreeCode(testTree.getParent().getTreeCode() + "001"); + } + } + // 浠ヤ笅璁剧疆琛ㄥ崟榛樿鏁版嵁 + if (testTree.getTreeSort() == null){ + testTree.setTreeSort(TestTree.DEFAULT_TREE_SORT); + } + return testTree; + } + + /** + * 淇濆瓨鏁版嵁 + */ + @RequiresPermissions("test:testTree:edit") + @PostMapping(value = "save") + @ResponseBody + public String save(@Validated TestTree testTree) { + testTreeService.save(testTree); + return renderResult(Global.TRUE, text("淇濆瓨鏁版嵁鎴愬姛锛")); + } + + /** + * 鍋滅敤鏁版嵁 + */ + @RequiresPermissions("test:testTree:edit") + @RequestMapping(value = "disable") + @ResponseBody + public String disable(TestTree testTree) { + TestTree where = new TestTree(); + where.setStatus(TestTree.STATUS_NORMAL); + where.setParentCodes("," + testTree.getId() + ","); + long count = testTreeService.findCount(where); + if (count > 0) { + return renderResult(Global.FALSE, text("璇ユ暟鎹寘鍚湭鍋滅敤鐨勫瓙鏁版嵁锛")); + } + testTree.setStatus(TestTree.STATUS_DISABLE); + testTreeService.updateStatus(testTree); + return renderResult(Global.TRUE, text("鍋滅敤鏁版嵁鎴愬姛")); + } + + /** + * 鍚敤鏁版嵁 + */ + @RequiresPermissions("test:testTree:edit") + @RequestMapping(value = "enable") + @ResponseBody + public String enable(TestTree testTree) { + testTree.setStatus(TestTree.STATUS_NORMAL); + testTreeService.updateStatus(testTree); + return renderResult(Global.TRUE, text("鍚敤鏁版嵁鎴愬姛")); + } + + /** + * 鍒犻櫎鏁版嵁 + */ + @RequiresPermissions("test:testTree:edit") + @RequestMapping(value = "delete") + @ResponseBody + public String delete(TestTree testTree) { + testTreeService.delete(testTree); + return renderResult(Global.TRUE, text("鍒犻櫎鏁版嵁鎴愬姛锛")); + } + + /** + * 鑾峰彇鏍戠粨鏋勬暟鎹 + * @param excludeCode 鎺掗櫎鐨凜ode + * @param isShowCode 鏄惁鏄剧ず缂栫爜锛坱rue or 1锛氭樉绀哄湪宸︿晶锛2锛氭樉绀哄湪鍙充晶锛沠alse or null锛氫笉鏄剧ず锛 + * @return + */ + @RequiresPermissions("test:testTree:view") + @RequestMapping(value = "treeData") + @ResponseBody + public List> treeData(String excludeCode, String isShowCode) { + List> mapList = ListUtils.newArrayList(); + List list = testTreeService.findList(new TestTree()); + for (int i=0; i map = MapUtils.newHashMap(); + map.put("id", e.getId()); + map.put("pId", e.getParentCode()); + map.put("name", StringUtils.getTreeNodeName(isShowCode, e.getTreeCode(), e.getTreeName())); + mapList.add(map); + } + return mapList; + } + + /** + * 淇琛ㄧ粨鏋勭浉鍏虫暟鎹 + */ + @RequiresPermissions("test:testTree:edit") + @RequestMapping(value = "fixTreeData") + @ResponseBody + public String fixTreeData(TestTree testTree){ + if (!UserUtils.getUser().isAdmin()){ + return renderResult(Global.FALSE, "鎿嶄綔澶辫触锛屽彧鏈夌鐞嗗憳鎵嶈兘杩涜淇锛"); + } + testTreeService.fixTreeData(); + return renderResult(Global.TRUE, "鏁版嵁淇鎴愬姛"); + } + +} \ No newline at end of file diff --git a/web-api/src/main/resources/config/application.yml b/web-api/src/main/resources/config/application.yml new file mode 100644 index 00000000..bdbfdb0c --- /dev/null +++ b/web-api/src/main/resources/config/application.yml @@ -0,0 +1,854 @@ + +#======================================# +#========== Project settings ==========# +#======================================# + +# 浜у搧鎴栭」鐩悕绉般佽蒋浠跺紑鍙戝叕鍙稿悕绉 +productName: JeeSite Demo +companyName: ThinkGem + +# 浜у搧鐗堟湰銆佺増鏉冨勾浠 +productVersion: V5.0 +copyrightYear: 2022 + +# 鏄惁婕旂ず妯″紡 +demoMode: false + +# 涓哄垎绂荤鎻愪緵鎺ュ彛鏈嶅姟锛屽叧闂唴缃櫥褰曢〉鍜屼富妗嗘灦椤佃鍥 +apiMode: true + +#======================================# +#========== Server settings ===========# +#======================================# + +server: + + port: 8980 + servlet: + context-path: /js + tomcat: + uri-encoding: UTF-8 + # 琛ㄥ崟璇锋眰鏁版嵁鐨勬渶澶уぇ灏 + max-http-form-post-size: 20MB +# # 杩涚▼鐨勬渶澶ц繛鎺ユ暟 +# max-connections: 8192 +# # 杩炴帴鏁版弧鍚庣殑鎺掗槦涓暟 +# accept-count: 100 +# # 绾跨▼鏁版渶澶у拰鏈灏忎釜鏁 +# threads: +# max: 200 +# min-spare: 10 + + # 褰 Nginx 涓 https锛宼omcat 涓 http 鏃讹紝璁剧疆璇ラ夐」涓 true + schemeHttps: false + +#======================================# +#========== Database sttings ==========# +#======================================# + +# 鏁版嵁搴撹繛鎺 +jdbc: + + # Mysql 鏁版嵁搴撻厤缃 + type: mysql + driver: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/jeesite_v5?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai + username: root + password: 123456 + testSql: SELECT 1 + +# # Oracle 鏁版嵁搴撻厤缃紙鑻ヤ娇鐢 12c锛岃淇敼 /modules/core/pom.xml 鏂囦欢锛屾墦寮 12c 渚濊禆锛屽幓鎺 11g 渚濊禆锛 +# type: oracle +# driver: oracle.jdbc.OracleDriver +# url: jdbc:oracle:thin:@127.0.0.1:1521/orcl +# username: jeesite +# password: jeesite +# testSql: SELECT 1 FROM DUAL + +# # Sql Server 鏁版嵁搴撻厤缃紙2008锛 +# type: mssql +# driver: net.sourceforge.jtds.jdbc.Driver +# url: jdbc:jtds:sqlserver://127.0.0.1:1433/jeesite +# username: jeesite +# password: jeesite +# testSql: SELECT 1 + +# # Sql Server 鏁版嵁搴撻厤缃紙2012浠ヤ笂鐗堟湰锛夛紙璇蜂慨鏀 /modules/core/pom.xml 鏂囦欢锛屾墦寮 SqlServer 2012 渚濊禆锛 +# type: mssql2012 +# driver: com.microsoft.sqlserver.jdbc.SQLServerDriver +# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=jeesite +# username: jeesite +# password: jeesite +# testSql: SELECT 1 + +# # PostgreSql 鏁版嵁搴撻厤缃 +# type: postgresql +# driver: org.postgresql.Driver +# url: jdbc:postgresql://127.0.0.1:5432/jeesite +# username: jeesite +# password: jeesite +# testSql: SELECT 1 + +# # H2 鏁版嵁搴撻厤缃紙璇蜂慨鏀 /modules/core/pom.xml 鏂囦欢锛屾墦寮 H2 DB 渚濊禆锛 +# type: h2 +# driver: org.h2.Driver +# url: jdbc:h2:~/jeesite-db/jeesite +# username: jeesite +# password: jeesite +# testSql: SELECT 1 + +# # 杩炴帴淇℃伅鍔犲瘑 +# encrypt: +# +# # 鍔犲瘑杩炴帴鐢ㄦ埛鍚 +# username: false +# # 鍔犲瘑杩炴帴瀵嗙爜 +# password: true +# +# # 鏁版嵁搴撹繛鎺ユ睜閰嶇疆 +# pool: +# +# # 鍒濆鍖栬繛鎺ユ暟 +# init: 1 +# # 鏈灏忕┖闂茶繛鎺ユ暟 +# minIdle: 3 +# # 鏈澶ф縺娲昏繛鎺ユ暟 +# maxActive: 20 +# +# # 鑾峰彇杩炴帴绛夊緟瓒呮椂鏃堕棿锛屽崟浣嶆绉掞紙1鍒嗛挓锛夛紙4.0.6+锛 +# maxWait: 60000 +# +# # 浠庢睜涓彇鍑鸿繛鎺ュ墠杩涜妫楠岋紝濡傛灉妫楠屽け璐ワ紝鍒欎粠姹犱腑鍘婚櫎杩炴帴骞跺皾璇曞彇鍑哄彟涓涓紙4.0.6+锛 +# testOnBorrow: false +# testOnReturn: false +# +# # 闂撮殧澶氫箙鎵嶈繘琛屼竴娆℃娴嬶紝妫娴嬮渶瑕佸叧闂殑绌洪棽杩炴帴锛屽崟浣嶆绉掞紙1鍒嗛挓锛夛紙4.0.6+锛 +# timeBetweenEvictionRunsMillis: 60000 +# +# # 涓涓繛鎺ュ湪姹犱腑鏈灏忕┖闂茬殑鏃堕棿锛屽崟浣嶆绉掞紙20鍒嗛挓锛夛紙4.0.6+锛 +# minEvictableIdleTimeMillis: 1200000 +# # 涓涓繛鎺ュ湪姹犱腑鏈澶х┖闂茬殑鏃堕棿锛屽崟浣嶆绉掞紙30鍒嗛挓锛夛紙4.1.2+锛 +# maxEvictableIdleTimeMillis: 1800000 +# +# #杩炴帴姹犱腑鐨刴inIdle鏁伴噺浠ュ唴鐨勮繛鎺ワ紝绌洪棽鏃堕棿瓒呰繃minEvictableIdleTimeMillis锛屽垯浼氭墽琛宬eepAlive鎿嶄綔锛4.1.8+锛 +# keepAlive: false +# +# # 鏄惁鑷姩鍥炴敹娉勯湶鐨勮繛鎺ュ拰瓒呮椂鏃堕棿锛屽崟浣嶇锛35鍒嗛挓锛夛紙4.0.6+锛 +# removeAbandoned: false +# removeAbandonedTimeout: 2100 +# +# # Oracle 涓嬩細鑷姩寮鍚 PSCache锛屽苟鎸囧畾姣忎釜杩炴帴涓 PSCache 澶у皬銆傝嫢涓嶆寚瀹氾紝鍒欎笌 maxActive 鐩稿悓锛4.1.5+锛 +# maxPoolPreparedStatementPerConnectionSize: ~ +# +# # 璁剧疆杩炴帴灞炴э紝鍙幏鍙栧埌琛ㄧ殑 remark (澶囨敞) +# remarksReporting: false + +# # 璇诲啓鍒嗙閰嶇疆锛堜笓涓氱増锛塿4.3.0 +# readwriteSplitting: +# # 璇诲簱鐨勬暟鎹簮鍚嶇О鍒楄〃锛堥粯璁ゆ暟鎹簮锛 +# readDataSourceNames: ds_read_01, ds_read_02 +# # 璐熻浇鍧囪 绠楁硶锛圧OUND_ROBIN杞銆丷ANDOM闅忔満銆佽嚜瀹氫箟绫诲悕锛 +# loadBalancerAlgorithm: RANDOM + +# # 澶氭暟鎹簮鍚嶇О鍒楄〃锛屽涓敤閫楀彿闅斿紑锛屼娇鐢ㄦ柟娉曪細@MyBatisDao(dataSourceName="ds2") +# dataSourceNames: ds_read_01, ds_read_02, ds2 +# dataSourceNames: ds2 + +# # 榛樿鏁版嵁婧愮殑浠庡簱01 +# ds_read_01: +# type: mysql +# driver: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://127.0.0.1:3306/jeesite_test?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai +# username: root +# password: 123456 +# testSql: SELECT 1 +# pool: +# init: 1 +# minIdle: 3 +# maxActive: 20 +# +# # 榛樿鏁版嵁婧愮殑浠庡簱02 +# ds_read_02: +# type: mysql +# driver: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://127.0.0.1:3306/jeesite_test2?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai +# username: root +# password: 123456 +# testSql: SELECT 1 +# pool: +# init: 1 +# minIdle: 3 +# maxActive: 20 +# +# # 澶氭暟鎹簮閰嶇疆锛歞s2 +# ds2: +# type: mysql +# driver: com.mysql.cj.jdbc.Driver +# url: jdbc:mysql://127.0.0.1:3306/jeesite2?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai +# username: root +# password: 123456 +# testSql: SELECT 1 +# # 鍏跺畠鏁版嵁婧愭敮鎸佸瘑鐮佸姞瀵 +# encrypt: +# username: false +# password: true +# # 鍏跺畠鏁版嵁婧愭敮鎸佽繛鎺ユ睜璁剧疆 +# pool: +# init: 1 +# minIdle: 3 +# maxActive: 20 +# # 鍏跺畠鏁版嵁婧愭敮鎸佽鍐欏垎绂 +# readwriteSplitting: +# readDataSourceNames: ~ +# loadBalancerAlgorithm: RANDOM + +# # 鏁版嵁婧愭槧灏勶紙Dao绫诲悕 = 鏁版嵁婧愬悕绉帮級锛屼紭鍏堜簬 @MyBatisDao(dataSourceName="ds2") 璁剧疆 v4.3.0 +# # Dao绫诲悕锛屼笉浠呮敮鎸佹煇涓叿浣 Dao绫诲悕锛岃繕鏀寔 Dao 閲岀殑鏌愪釜鏂规硶鎸囧畾鏁版嵁婧愬悕绉帮紝杩樻敮鎸佸寘璺緞鎸囧畾鏁版嵁婧愮瓑 +# # 鏁版嵁婧愬悕鎸囧畾 {empty} 鏃舵敮鎸佸姩鎬侊紝鐩稿綋浜 @MyBatisDao(dataSourceName=DataSourceHolder.EMPTY) +# # 鏁版嵁婧愭敮鎸佹寚瀹氬彉閲 {corpCode}銆 {userCode}銆亄userCache涓殑Key鍚峿銆亄yml鎴杝ys_config涓殑Key鍚峿 +# # 浠庝笂鍒颁笅锛屽厛鍖归厤鍏堝彈鐢ㄨ鍒欙紝榛樿鏁版嵁婧愬悕涓 default 鎵╁睍鏁版嵁婧愪负 dataSourceNames 鍒楄〃閲岃嚜瀹氫箟鐨勫悕瀛 +# mybatisDaoAndDataSourceMappings: | +# TestDataChildDao = ds2 +# EmpUserDao.findList = ds2 +# com.jeesite.modules.sys = default +# com.jeesite.modules.filemanager = ds2 + +# # JTA XA 浜嬪姟锛坴4.0.4+锛 +# jta: +# enabled: false + +# 娉ㄦ剰锛氬鏋滄姤 oracle.jdbc.xa.OracleXAResource.recover 閿欒锛屽垯闇瑕佹巿鏉冨涓嬶細 +# grant select on sys.dba_pending_transactions to jeesite; +# grant select on sys.pending_trans$ to jeesite; +# grant select on sys.dba_2pc_pending to jeesite; +# grant execute on sys.dbms_system to jeesite; + +# # 浜嬪姟瓒呮椂鏃堕棿锛屽崟浣嶇锛30鍒嗛挓锛夛紙v4.1.5+锛 +# transactionTimeout: 1800 + +# # 琛ㄥ悕鍓嶇紑 +# tablePrefix: js_ + +#======================================# +#========== Spring settings ===========# +#======================================# + +spring: + + # 搴旂敤绋嬪簭鍚嶇О + application: + name: jeesite-web + + # 鐜鍚嶇О锛堟敞鎰忥細涓嶅彲璁剧疆涓 test 瀹冩槸鍗曞厓娴嬭瘯涓撶敤鐨勫悕绉帮級 + profiles: + active: default + + # 鎵撳嵃妯箙 + main: + bannerMode: "off" + +# # Redis 杩炴帴鍙傛暟 锛圧edisProperties锛 +# redis: +# host: 127.0.0.1 +# port: 6379 +# ssl: false +# database: 0 +# password: 1234 +# timeout: 20000 +# lettuce: +# pool: +# # 鏈澶х┖闂茶繛鎺ユ暟 +# maxIdle: 3 +# # 鏈澶ф椿鍔ㄨ繛鎺ユ暟 +# maxActive: 20 +# +# # 缂撳瓨閰嶇疆 +# cache: +# # 缂撳瓨鍙婁細璇濆叡浜紙涓撲笟鐗堬級 +# isClusterMode: false +# # 娓呯悊鍏ㄩ儴缂撳瓨鎸夐挳鎵娓呯悊鐨勭紦瀛樺垪琛 +# clearNames: sysCache,corpCache,userCache,cmsCache,msgPcPoolCache,roleCache,fileUploadCache,bpmFormCache + +# 鏃ュ織閰嶇疆 +logging: + config: classpath:config/logback-spring.xml + +#======================================# +#========== System settings ===========# +#======================================# + +# 绠$悊鍩虹璺緞 +#adminPath: /a + +# 鍓嶇鍩虹璺緞 +#frontPath: /f + +# 鍒嗛〉鐩稿叧 +#page: +# +# # 榛樿姣忛〉鏄剧ず鐨勬暟鎹潯鏁 +# pageSize: 20 +# +# # 姣忛〉鏈澶ф潯鏁帮紝闃叉鍒嗛〉杩囧ぇ瀵艰嚧绯荤粺缂撴參鎴栧唴瀛樻孩鍑 +# maxPageSize: 999 + +# 鐢ㄦ埛鐩稿叧 +#user: +# +# # 鎸囧畾瓒呯骇绠$悊鍛樼紪鍙凤紙鐮斿彂鍥㈤槦浣跨敤鐨勮处鍙凤級 +# superAdminCode: system +# +# # 瓒呯骇绠$悊鍛樿幏鍙栬彍鍗曠殑鏈灏忔潈閲嶏紙榛樿20锛>=40浜岀骇绠$悊鍛橈紱>=60绯荤粺绠$悊鍛橈紱>=80瓒呯骇绠$悊鍛橈級 +# superAdminGetMenuMinWeight: 40 +# +# # 绯荤粺绠$悊鍛樿鑹茬紪鍙凤紙瀹㈡埛鏂圭鐞嗗憳浣跨敤鐨勮鑹诧級 +# corpAdminRoleCode: corpAdmin +# +# # 浜岀骇绠$悊鍛樼殑鎺у埗鏉冮檺绫诲瀷锛1鎷ユ湁鐨勬潈闄 2绠$悊鐨勬潈闄愶紝绠$悊鍔熻兘鍖呮嫭锛氱敤鎴风鐞嗐佺粍缁囨満鏋勩佸叕鍙哥鐞嗙瓑锛夛紙v4.1.5+锛 +# adminCtrlPermi: 2 +# +# # 澶氱鎴锋ā寮忥紙SAAS妯″紡锛夛紙涓撲笟鐗堬級 +# useCorpModel: false +# +# # 鐧诲綍璐﹀彿鏄惁绉熸埛鍐呭敮涓锛屽惁鍒欏叏灞鍞竴 +# loginCodeCorpUnique: false +# +# # 鏄惁鍚敤楠岃瘉鐮佺櫥褰曪紙鎵嬫満銆侀偖绠憋級 +# loginByValidCode: true +# +# # 鐢ㄦ埛绫诲瀷閰嶇疆淇℃伅锛坋mployee鍛樺伐锛宮ember浼氬憳锛宐type寰鏉ュ崟浣嶏紝persion涓汉锛宔xpert涓撳锛...锛夛紝JSON 鏍煎紡璇存槑濡備笅锛 +# # {"鐢ㄦ埛绫诲瀷":{"beanName":"Service鎴朌ao鐨凚ean鍚嶇О","loginView":"鐧诲綍椤甸潰瑙嗗浘","indexView":"涓绘鏋堕〉闈㈣鍥撅紝鏀寔 redirect: 鍓嶇紑"}} +# userTypeMap: > +# { +# employee: {beanName: "employeeService", loginView: "", indexView: "modules/sys/sysIndex"}, +# member: {beanName: "memberService", loginView: "", indexView: "modules/sys/sysIndexMember"}, +# btype: {beanName: "btypeInfoService", loginView: "", indexView: "modules/sys/sysIndexBtype"}, +# expert: {beanName: "expertService", loginView: "", indexView: "modules/sys/sysIndexExpert"} +# } +# +# # 鏁版嵁鏉冮檺璁剧疆鍙傛暟锛屽彲鏂板鑷畾涔夋暟鎹潈闄愶紝moduleCode: 閽堝妯″潡, ctrlPermi: 鏉冮檺绫诲瀷, 0鍏ㄩ儴 1鎷ユ湁鏉冮檺 2绠$悊鏉冮檺 +# dataScopes: > +# [{ +# moduleCode: "core", +# ctrlPermi: "0", +# ctrlName: "鏈烘瀯鏉冮檺", +# ctrlName_en: "Office", +# ctrlType: "Office", +# ctrlDataUrl: "/sys/office/treeData", +# chkboxType: {"Y":"ps","N":"ps"}, +# expandLevel: -1, +# remarks: "" +# },{ +# moduleCode: "core", +# ctrlName: "鍏徃鏉冮檺", +# ctrlName_en: "Company", +# ctrlType: "Company", +# ctrlPermi: "0", +# ctrlDataUrl: "/sys/company/treeData", +# chkboxType: {"Y":"ps","N":"ps"}, +# expandLevel: -1, +# remarks: "" +# },{ +# moduleCode: "core", +# ctrlName: "瑙掕壊鏉冮檺", +# ctrlName_en: "Role", +# ctrlType: "Role", +# ctrlPermi: "2", +# ctrlDataUrl: "/sys/role/treeData", +# chkboxType: {"Y":"ps","N":"ps"}, +# expandLevel: -1, +# remarks: "" +# }] +# +# # 鏁版嵁鏉冮檺璋冭瘯妯″紡锛堜細杈撳嚭涓浜涙棩蹇楋級 +# dataScopeDebug: false +# +# # 鏁版嵁鏉冮檺浣跨敤 API 鏂瑰紡瀹炵幇锛堥傚簲 Cloud 鐜锛屽熀纭鐢ㄦ埛琛ㄤ笌涓氬姟鏁版嵁琛ㄨ法搴撶殑鎯呭喌锛 +# # 寮鍚悗璁剧疆 ctrlDataAttrName 鍔 AndChildren 鍚庣紑锛宑trlDataParentCodesAttrName 娓呯┖ +# # 浠ユ柟渚胯鍙栨爲缁撴瀯鏁版嵁鏉冮檺鐨勮〃鏃跺寘鍚瓙鑺傜偣锛屼妇渚嬪涓嬶細 +# # ctrlDataAttrName: "officeCodesAndChildren", ctrlDataParentCodesAttrName: "" +# dataScopeApiMode: false + +# 瑙掕壊绠$悊 +#role: +# # 鎵╁睍鏁版嵁鏉冮檺瀹氫箟锛3锛氭湰閮ㄩ棬锛4锛氭湰鍏徃锛5锛氭湰閮ㄩ棬鍜屾湰鍏徃 +# extendDataScopes: > +# { +# 3: { +# Office: { +# #鎺у埗绫诲瀷鐨勭被鍚 : "鐢ㄦ潵鑾峰彇鎺у埗琛ㄥ悕鍜屼富閿瓧娈靛悕锛屽鏋滀负 NONE锛屽垯浠h〃鏄笉鎺у埗璇ョ被鍨嬫潈闄", +# ctrlTypeClass: "com.jeesite.modules.sys.entity.Office", +# #鎺у埗鏁版嵁鐨勭被鍚: "鎸囧畾涓涓潤鎬佺被鍚嶏紝鏂逛究 ctrlDataAttrName 寰楀埌鏉冮檺鏁版嵁锛屽锛氬綋鍓嶆満鏋勭紪鐮併佸綋鍓嶅叕鍙哥紪鐮併佸綋鍓嶈涓氱紪鐮佺瓑", +# ctrlDataClass: "com.jeesite.modules.sys.utils.EmpUtils", +# #鎺у埗鏁版嵁鐨勭被鍚嶄笅鐨勫睘鎬у悕 : "鍙湅鍋 ctrlDataClass 涓嬬殑 get 鏂规硶锛屽锛欵mpUtils.getOfficeCodes()锛屾敮鎸佽繑鍥炲瓧绗︿覆鎴栧瓧绗︿覆鏁扮粍绫诲瀷", +# ctrlDataAttrName: "officeCodes", +# #鎺у埗鏁版嵁鐨勬墍鏈変笂绾х紪鐮 : "鐢ㄤ簬鎺у埗鏁版嵁涓烘爲琛ㄧ殑鎯呭喌锛屼负鏁扮粍鏃讹紝蹇呴』涓 ctrlDataAttrName 杩斿洖鐨勯暱搴︾浉鍚岋紝涓嶆槸鏍戣〃璁剧疆涓虹┖", +# ctrlDataParentCodesAttrName: "officeParentCodess" +# }, +# Company: { +# ctrlTypeClass: "NONE" +# } +# }, +# 4: { +# Office: { +# ctrlTypeClass: "NONE" +# }, +# Company: { +# ctrlTypeClass: "com.jeesite.modules.sys.entity.Company", +# ctrlDataClass: "com.jeesite.modules.sys.utils.EmpUtils", +# ctrlDataAttrName: "company.companyCode", +# ctrlDataParentCodesAttrName: "company.parentCodes" +# } +# }, +# 5: { +# Office: { +# ctrlTypeClass: "com.jeesite.modules.sys.entity.Office", +# ctrlDataClass: "com.jeesite.modules.sys.utils.EmpUtils", +# ctrlDataAttrName: "officeCodes", +# ctrlDataParentCodesAttrName: "officeParentCodess" +# }, +# Company: { +# ctrlTypeClass: "com.jeesite.modules.sys.entity.Company", +# ctrlDataClass: "com.jeesite.modules.sys.utils.EmpUtils", +# ctrlDataAttrName: "company.companyCode", +# ctrlDataParentCodesAttrName: "company.parentCodes" +# } +# } +# } + +# 鑿滃崟绠$悊 +#menu: +# # 鏍规嵁妯″潡鐘舵佸幓鏇存柊鐩歌繛鐨勮彍鍗曠姸鎬 +# updateStatusByModuleStatus: false + +# 鍥介檯鍖栫鐞嗭紙涓撲笟鐗堬級 +#lang: +# enabled: false +# +# # 榛樿璇█锛4.1.3+锛 +# defaultLocale: zh_CN +# # 榛樿鏃跺尯锛4.1.3+锛 +# defaultTimeZone: GMT+08:00 + +# 浠诲姟璋冨害锛堟爣鍑嗙増锛 +#job: +# enabled: false +# +# # 鏄惁鑷姩鍚姩浠诲姟璋冨害锛堝彲鍏抽棴锛 +# autoStartup: true +# +# # 浠诲姟璋冨害鍚姩寤惰繜璁剧疆锛堝崟浣嶏細绉掞級锛堝缓璁缃」鐩惎鍔ㄥ畬鎴愬悗鐨勬椂闂达級 +# startupDelay: 60 +# +# # 浠诲姟璋冨害绾跨▼姹 +# threadPool: +# threadCount: 10 +# threadPriority: 5 +# +# # 璋冨害璁剧疆锛岄泦缇や腑姣忎竴涓疄渚嬮兘蹇呴』浣跨敤鐩稿悓鐨刬nstanceName鍚嶇О 锛堝尯鍒嗙壒瀹氱殑璋冨害鍣ㄥ疄渚嬶級 +# # 鍦ㄥ井鏈嶅姟妯″紡鎯呭喌涓嬶紝璇峰皢instanceName鍚嶇О璁剧疆涓哄綋鍓嶅井鏈嶅姟鐨勫悕绉 +# # 姣忎竴涓猧nstanceId蹇呴』涓嶅悓锛岃缃瓵UTO鍒欒嚜鍔ㄧ敓鎴 +# scheduler: +# instanceName: JeeSiteScheduler +# #instanceName: ${spring.application.name} +# instanceId: AUTO +# +# # 浠诲姟璋冨害闆嗙兢璁剧疆 +# jobStore: +# isClustered: true +# dataSourceName: job +# clusterCheckinInterval: 1000 +# +# # 璋冨害鏃ュ織 +# log: +# # 璁″垝璋冨害鏃ュ織 +# scheduler: +# enabled: true +# # 鏄惁鍙繚瀛橀敊璇棩蹇 +# errorLevel: true +# # 浠诲姟鎵ц鏃ュ織 +# jobDetail: +# enabled: true +# # 鏄惁鍙繚瀛橀敊璇棩蹇 +# errorLevel: true +# # 璁″垝瑙﹀彂鏃ュ織 +# trigger: +# enabled: false + +# 浠g爜鐢熸垚 +#gen: +# enabled: true +# +# # 琛ㄥ悕瀛楁鍚嶆槸鍚﹀己鍒跺皬鍐 +# forceLowerCase: true + +# 绯荤粺鐩戞帶 +#state: +# enabled: true + +#======================================# +#========= Framework settings =========# +#======================================# + +# Shiro 鐩稿叧 +shiro: + +# #绱㈠紩椤佃矾寰 +# defaultPath: ${shiro.loginUrl} +# +# # 鐧诲綍鐩稿叧璁剧疆 +# loginUrl: ${adminPath}/login +# logoutUrl: ${shiro.loginUrl} +# successUrl: ${adminPath}/index +# +## # Apereo CAS 鐩稿叧閰嶇疆锛堟爣鍑嗙増锛 +## casServerUrl: http://127.0.0.1:8981/cas +## casClientUrl: http://127.0.0.1:8980/js +## loginUrl: ${shiro.casServerUrl}?service=${shiro.casClientUrl}${adminPath}/login-cas +## logoutUrl: ${shiro.casServerUrl}/logout?service=${shiro.loginUrl} +## successUrl: ${shiro.casClientUrl}${adminPath}/index +# +## # LDAP 鐩稿叧璁剧疆锛堟爣鍑嗙増锛 +## ldapUrl: ldap://127.0.0.1:389 +## ldapUserDn: uid={0},ou=users,dc=mycompany,dc=com +# +# # 绠鍗 SSO 鐧诲綍鐩稿叧閰嶇疆 +# sso: +# # 濡傛灉鍚敤/sso/{username}/{token}鍗曠偣鐧诲綍锛岃淇敼姝ゅ畨鍏╧ey骞朵笌鍗曠偣鐧诲綍绯荤粺key涓鑷淬 +# secretKey: ~ +# # 鏄惁鍔犲瘑鍗曠偣鐧诲綍瀹夊叏Key +# encryptKey: true +# +# # 鐧诲綍鎻愪氦淇℃伅鍔犲瘑锛堝鏋滀笉闇瑕佸姞瀵嗭紝璁剧疆涓虹┖鍗冲彲锛 +# loginSubmit: +# # 鍔犲瘑鐢ㄦ埛鍚嶃佸瘑鐮併侀獙璇佺爜锛屽悗鍐嶆彁浜わ紙key璁剧疆涓3涓紝鐢ㄩ楀彿鍒嗛殧锛夊姞瀵嗘柟寮忥細DES锛4.1.9鍙婁箣鍓嶇増鏈粯璁よ缃級 +# # v4.2.0+ 寮濮嬫敮鎸 Base64 鍔犲瘑鏂瑰紡锛屾柟渚跨Щ鍔ㄧ鍙婄涓夋柟绯荤粺澶勭悊璁よ瘉锛屽彲鐩存帴璁剧疆 Key 涓 Base64锛4.2.0+榛樿璁剧疆锛 +# #secretKey: thinkgem,jeesite,com +# secretKey: Base64 +# #secretKey: ~ + + # 璁颁綇鎴戝瘑閽ヨ缃紝浣犲彲浠ラ氳繃 com.jeesite.test.RememberMeKeyGen 绫诲揩閫熺敓鎴愪竴涓閽ャ + # 鑻ヤ笉璁剧疆锛屽垯姣忔鍚姩绯荤粺鍚庤嚜鍔ㄧ敓鎴愪竴涓柊绉橀挜锛岃繖鏍蜂細瀵艰嚧姣忔閲嶅惎鍚庯紝瀹㈡埛绔褰曠殑鐢ㄦ埛淇℃伅灏嗗け鏁堛 + rememberMe: + secretKey: ~ + +# # 鎸囧畾鑾峰彇瀹㈡埛绔疘P鐨凥eader鍚嶇О锛岄槻姝P浼犮傛寚瀹氫负绌猴紝鍒欎娇鐢ㄥ師鐢熸柟娉曡幏鍙朓P銆 +# remoteAddrHeaderName: X-Forwarded-For +# +# # 鍏佽鐨勮姹傛柟娉曡瀹氾紝瑙e喅瀹夊叏瀹¤闂锛圔PM璁捐鍣ㄧ敤鍒颁簡PUT鎴朌ELETE鏂规硶锛 +# allowRequestMethods: GET, POST, OPTIONS, PUT, DELETE +# +# # 鏄惁鍏佽璐﹀彿澶氬湴鐧诲綍锛屽鏋滆缃负false锛屽悓涓涓澶囩被鍨嬬殑鍏跺畠鍦扮偣鐧诲綍鐨勭浉鍚岃处鍙疯韪笅绾 +# isAllowMultiAddrLogin: true +# +# # 鏄惁鍏佽澶氳处鍙峰璁惧鐧诲綍锛屽鏋滆缃负false锛屽叾瀹冨湴鐐圭櫥褰曠殑鐩稿悓璐﹀彿鍏ㄩ儴鐧诲綍璁惧灏嗚韪笅绾 +# isAllowMultiDeviceLogin: true +# +# # 鏄惁鍏佽鍒锋柊涓绘鏋堕〉锛屽鏋滆缃负false锛屽埛鏂颁富椤靛皢瀵艰嚧閲嶆柊鐧诲綍銆傚瀹夊叏鎬ф瘮杈冮珮鐨勶紝濡傞摱琛屼釜浜洪椤典笉鍏佽鍒锋柊銆 +# isAllowRefreshIndex: true +# +# # 鏄惁鍏佽宓屽叆鍒板閮ㄧ綉绔檌frame涓紙true锛氫笉闄愬埗锛宖alse锛氫笉鍏佽锛 +# isAllowExternalSiteIframe: true +# +# # 璁惧畾鍏佽鑾峰彇鐨勮祫婧愬垪琛紙v4.2.3锛 +# #contentSecurityPolicy: "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; img-src 'self' 'unsafe-inline' 'unsafe-eval' data:" +# +# # 鏄惁鍏佽璺ㄥ煙璁块棶 CORS锛屽鏋滃厑璁革紝璁剧疆鍏佽鐨勫煙鍚嶃倂4.2.3 寮濮嬫敮鎸佸涓煙鍚嶅拰妯$硦鍖归厤锛屼緥濡傦細http://*.jeesite.com,http://*.jeesite.net +# #accessControlAllowOrigin: '*' +# +# # 鍏佽璺ㄥ煙璁块棶鏃 CORS锛屽彲浠ヨ幏鍙栧拰杩斿洖鐨勬柟娉曞拰璇锋眰澶 +# #accessControlAllowMethods: GET, POST, OPTIONS +# #accessControlAllowHeaders: content-type, x-requested-with, x-ajax, x-token, x-remember +# #accessControlExposeHeaders: x-remember +# +# # 鏄惁鍏佽鎺ユ敹璺ㄥ煙鐨凜ookie鍑瘉鏁版嵁 CORS +# #accessControlAllowCredentials: false +# +# # 鍏佽鐨勭綉绔欐潵婧愬湴鍧锛屼笉璁剧疆涓哄叏閮ㄥ湴鍧锛堥伩鍏嶄竴浜涜法绔欑偣璇锋眰浼 CSRF銆侀槻鐩楅摼锛 +# #allowReferers: http://127.0.0.1,http://localhost +# +# # 鏄惁鍦ㄧ櫥褰曞悗鐢熸垚鏂扮殑Session锛堥粯璁alse锛 +# isGenerateNewSessionAfterLogin: false +# +# # 鍐呴儴绯荤粺璁块棶杩囨护鍣紝鍙缃涓厑璁哥殑鍐呴儴绯荤粺IP鍦板潃涓诧紝澶氫釜鐢ㄩ楀彿闅斿紑 +# innerFilter.allowIp: 127.0.0.1 +# +# # URI 鏉冮檺杩囨护鍣ㄥ畾涔夛紙鑷畾涔夋坊鍔犲弬鏁版椂锛岃涓嶈绉婚櫎 ${adminPath}/** = user锛屽惁鍒欎細瀵艰嚧鏉冮檺寮傚父锛 +# filterChainDefinitions: | +# ${adminPath}/** = user + +# Session 鐩稿叧 +#session: +# +# # 鍏ㄥ眬浼氳瘽瓒呮椂锛屽崟浣嶏細姣锛 20m=1200000ms, 30m=1800000ms, 60m=3600000ms, 12h=43200000ms, 1day=86400000ms +# # 娉ㄦ剰锛氬鏋滆秴鏃惰秴杩30m锛屼綘杩橀渶瑕佸悓姝ヤ慨鏀瑰綋鍓嶉厤缃枃浠剁殑灞炴э細j2cache.caffeine.region.sessionCache 瓒呮椂鏃堕棿锛屽ぇ浜庤繖涓笺 +# sessionTimeout: 1800000 +# +# # PC璁惧浼氳瘽瓒呮椂鍙傛暟璁剧疆锛岀櫥褰曡姹傚弬鏁板姞 param_deviceType=pc 鏃舵湁鏁 +# #pcSessionTimeout: 1800000 +# +# # 鎵嬫満APP璁惧浼氳瘽瓒呮椂鍙傛暟璁剧疆锛岀櫥褰曡姹傚弬鏁板姞 param_deviceType=mobileApp 鏃舵湁鏁 +# #mobileAppSessionTimeout: 43200000 +# +# # 瀹氭椂娓呯悊澶辨晥浼氳瘽锛屾竻鐞嗙敤鎴风洿鎺ュ叧闂祻瑙堝櫒閫犳垚鐨勫绔嬩細璇 +# sessionTimeoutClean: 1200000 +# +# # 浼氳瘽鍞竴鏍囪瘑SessionId鍦–ookie涓殑鍚嶇О銆 +# sessionIdCookieName: jeesite.session.id +# #sessionIdCookiePath: ${server.servlet.context-path} +# +# # 鍏变韩鐨凷essionId鐨凜ookie鍚嶇О锛屼繚瀛樺埌璺熻矾寰勪笅锛岀涓夋柟搴旂敤鑾峰彇銆傚悓涓鍩熷悕涓嬪涓」鐩椂闇璁剧疆鍏变韩Cookie鐨勫悕绉般 +# #shareSessionIdCookieName: ${session.sessionIdCookieName} +# +# # 鍏跺畠 SimpleCookie 鍙傛暟锛坴4.2.3锛 +# #sessionIdCookieSecure: false +# #sessionIdCookieHttpOnly: true +# #sessionIdCookieSameSite: LAX +# +# # 璁剧疆鎺ユ敹 SessionId 璇锋眰鍙傛暟鍜岃姹傚ご鐨勫悕绉 +# sessionIdParamName: __sid +# sessionIdHeaderName: x-token +# +# # 褰撶洿鎺ラ氳繃 __sid 鍙傛暟娴忚鍣ㄨ闂〉闈㈡椂锛屽彲灏嗙洿鎺ュ皢 __sid 鍐欏叆 Cookie 搴旂敤浜庡悗闈㈢殑璁块棶 +# # 璁块棶鍦板潃涓句緥锛歨ttp://host/js/a/index?__sid=123456&__cookie=true +# writeCookieParamName: __cookie +# +# # 璁颁綇鎴戠殑璇锋眰鍙傛暟鍜岃姹傚ご鐨勫悕绉帮紙v4.2.3锛 +# rememberMeHeaderName: x-remember +# +# 绯荤粺缂撳瓨閰嶇疆 +#j2cache: +# +# # 涓绾х紦瀛 +# caffeine: +# region: +# #[cacheName]: size, xxxx[s|m|h|d] +# default: 10000, 1h +# sessionCache: 100000, 12h +# +# # 浜岀骇缂撳瓨 +# redis: +# # 瀛樺偍妯″紡 锛坓eneric|hash锛 +# storage: hash +# # 閫氱煡璁㈤槄鐨勯氶亾鍚 +# channel: j2cache +# # 缂撳瓨鍛藉悕绌洪棿鍚 +# namespace: jeesite +# +# # 閫氱煡璁㈤槄 +# broadcast: +# # 缂撳瓨娓呯悊妯″紡 +# # passive -> 琚姩娓呴櫎锛屼竴绾х紦瀛樿繃鏈熻繘琛岄氱煡鍚勮妭鐐规竻闄や竴浜岀骇缂撳瓨 +# # active -> 涓诲姩娓呴櫎锛屼簩绾х紦瀛樿繃鏈熶富鍔ㄩ氱煡鍚勮妭鐐规竻闄わ紝浼樼偣鍦ㄤ簬鎵鏈夎妭鐐瑰彲浠ュ悓鏃舵敹鍒扮紦瀛樻竻闄わ紝瀛樺偍妯″紡闇瑕佽缃负 generic +# # blend -> 涓ょ妯″紡涓璧疯繍浣滐紝瀵逛簬鍚勪釜鑺傜偣缂撳瓨鍑嗙‘浠ュ強鍙婃椂鎬ц姹傞珮鐨勫彲浠ヤ娇鐢紝姝e父鐢ㄥ墠涓ょ妯″紡涓竴涓氨鍙 +# cache_clean_mode: passive + +# MyBatis 鐩稿叧 +#mybatis: +# +# # @MyBatisDao銆丄liases 鎵弿鍩虹鍖咃紝濡傛灉澶氫釜锛岀敤鈥,鈥濆垎闅 +# scanBasePackage: com.jeesite.modules +# +# # TypeHandlers 鎵弿鍩虹鍖咃紝濡傛灉澶氫釜锛岀敤鈥,鈥濆垎闅 +# scanTypeHandlersPackage: ~ +# +# # 鏄惁寮鍚 JDBC 绠$悊浜嬪姟锛岄粯璁 Spring 绠$悊浜嬪姟 v4.2.3 +# jdbcTransaction: false +# +# # Mapper鏂囦欢鍒锋柊绾跨▼ +# mapper: +# refresh: +# enabled: true +# delaySeconds: 60 +# sleepSeconds: 3 +# mappingPath: mappings + +# Web 鐩稿叧 +#web: +# +# # AJAX 鎺ュ彈鍙傛暟鍚嶅拰璇锋眰澶村悕锛坴4.3.0锛 +# ajaxParamName: __ajax +# ajaxHeaderName: x-ajax +# +# # MVC 瑙嗗浘鐩稿叧 +# view: +# +# # 绯荤粺涓婚鍚嶇О锛屼富棰樿鍥句紭鍏堢骇鏈楂橈紝濡傛灉涓婚涓嬫棤杩欎釜瑙嗗浘鏂囦欢鍒欒闂粯璁よ鍥 +# # 寮曞叆椤甸潰澶撮儴锛'/themes/'+themeName+'/include/header.html' +# # 寮曞叆椤甸潰灏鹃儴锛'/themes/'+themeName+'/include/footer.html' +# themeName: default +# +# # 浣跨敤鏅鸿兘鍙傛暟鎺ユ敹鍣紝鍚屾椂鏀寔 JSON 鍜 FormData 鐨勫弬鏁版帴鍙 +# smartMethodArgumentResolver: true +# +# # 浣跨敤 .json銆.xml 鍚庣紑鍖归厤杩斿洖瑙嗗浘鏁版嵁锛圫pring瀹樻柟宸蹭笉鎺ㄨ崘浣跨敤锛 +# favorPathExtension: false +# # 浣跨敤 __ajax=json銆乢_ajax=xml 鍚庣紑鍖归厤杩斿洖瑙嗗浘鏁版嵁 +# favorParameter: true +# # 浣跨敤 x-ajax=json銆亁-ajax=xml 璇锋眰澶村尮閰嶈繑鍥炶鍥炬暟鎹 +# favorHeader: true +# +# # MVC 鎷︽埅鍣 +# interceptor: +# +# # 鍚庡彴绠$悊鏃ュ織璁板綍鎷︽埅鍣 +# log: +# enabled: true +# addPathPatterns: > +# ${adminPath}/** +# excludePathPatterns: > +# ${adminPath}/index, +# ${adminPath}/login, +# ${adminPath}/desktop, +# ${adminPath}/index/menuTree, +# ${adminPath}/sys/online/count, +# ${adminPath}/state/server/rtInfo, +# ${adminPath}/**/treeData, +# ${adminPath}/file/**, +# ${adminPath}/tags/*, +# ${adminPath}/msg/** +# +# # 鍓嶅彴鑷姩鍒囨崲鍒版墜鏈鸿鍥炬嫤鎴櫒 +# mobile: +# enabled: false +# addPathPatterns: > +# ${frontPath}/** +# excludePathPatterns: ~ +# +# # 闈欐佹枃浠跺悗缂锛岃繃婊ら潤鎬佹枃浠讹紝浠ユ彁楂樿闂ц兘銆 +# staticFile: .css,.js,.map,.png,.jpg,.gif,.jpeg,.bmp,.ico,.swf,.psd,.htc,.crx,.xpi,.exe,.ipa,.apk,.otf,.eot,.svg,.ttf,.woff,.woff2 +# +# # 闈欐佹枃浠跺悗缂锛屾帓闄ょ殑url璺緞锛屾寚瀹氬摢浜泆ri璺緞涓嶈繘琛岄潤鎬佹枃浠惰繃婊ゃ +# staticFileExcludeUri: /druid/ +# +# # 闈欐佽祫婧愯矾寰勫墠缂锛屽彲鍋欳DN鍔犻熶紭鍖 +# staticPrefix: /static +# +# # 涓ユ牸妯″紡锛堟洿涓ユ牸鐨勬暟鎹畨鍏ㄩ獙璇侊級 +# strictMode: false +# +# # 鑷畾涔夋鍒欒〃杈惧紡楠岃瘉锛堜富閿佺櫥褰曞悕锛 +# validator: +# id: '[a-zA-Z0-9_\-/#\u4e00-\u9fa5]{0,64}' +# user.loginCode: '[a-zA-Z0-9_\u4e00-\u9fa5]{4,20}' +# +# # 榛樿涓嶅惎鐢紙涓哄吋鐢ㄦ棫鐗堜繚鐣欙紝寤鸿浣跨敤 CORS锛 +# jsonp: +# enabled: false +# callback: __callback +# +# # 鏍稿績妯″潡鐨刉eb鍔熻兘锛堜粎浣滀负寰湇鍔℃椂璁句负false锛 +# core: +# enabled: true +# +# # 鍦ㄧ嚎API鏂囨。宸ュ叿 +# swagger: +# enabled: true + +# 閿欒椤甸潰500.html鏄惁杈撳嚭閿欒淇℃伅锛堟寮忕幆澧冿紝涓烘彁渚涘畨鍏ㄦу彲璁剧疆涓篺alse锛 +#error: +# page: +# printErrorInfo: true + +#======================================# +#======== FileUpload settings =========# +#======================================# + +#file: +# enabled: true +# +# # 鏂囦欢涓婁紶鏍硅矾寰勶紝璁剧疆璺緞涓笉鍏佽鍖呭惈鈥渦serfiles鈥濓紝鍦ㄦ寚瀹氱洰褰曚腑绯荤粺浼氳嚜鍔ㄥ垱寤簎serfiles鐩綍锛屽鏋滀笉璁剧疆榛樿涓篶ontextPath璺緞 +# #baseDir: D:/jeesite +# +# # 涓婁紶鏂囦欢鐨勭浉瀵硅矾寰勶紙鏀寔锛歽yyy, MM, dd, HH, mm, ss, E锛 +# uploadPath: '{yyyy}{MM}/' +# +# # 涓婁紶鍗曚釜鏂囦欢鏈澶у瓧鑺傦紙500M锛夛紝鍦ㄨ繖涔嬩笂杩樻湁 > Tomcat闄愬埗 > Nginx闄愬埗锛岀瓑锛屾璁剧疆浼氳鐩 spring.http.multipart.maxFileSize 璁剧疆 +# maxFileSize: 500*1024*1024 +# +# # 璁剧疆鍏佽涓婁紶鐨勬枃浠跺悗缂锛堝叏灞璁剧疆锛 +# imageAllowSuffixes: .gif,.bmp,.jpeg,.jpg,.ico,.png,.tif,.tiff, +# mediaAllowSuffixes: .flv,.swf,.mkv,webm,.mid,.mov,.mp3,.mp4,.m4v,.mpc,.mpeg,.mpg,.swf,.wav,.wma,.wmv,.avi,.rm,.rmi,.rmvb,.aiff,.asf,.ogg,.ogv, +# fileAllowSuffixes: .doc,.docx,.rtf,.xls,.xlsx,.csv,.ppt,.pptx,.pdf,.vsd,.txt,.md,.xml,.rar,.zip,7z,.tar,.tgz,.jar,.gz,.gzip,.bz2,.cab,.iso,.ipa,.apk, +# +# # 鍏佽涓婁紶鐨勬枃浠跺唴瀹圭被鍨嬶紙鍥剧墖銆亀ord銆乪xcel銆乸pt锛夐槻姝慨鏀瑰悗缂鎭舵剰涓婁紶鏂囦欢锛堥粯璁や笉鍚敤楠岃瘉锛 +## allowContentTypes: image/jpeg,image/gif,image/bmp,image/png,image/x-png, +## application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document, +## application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, +## application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation +# +# # 涓婁紶鍥剧墖鑷姩鍘嬬缉瀹介珮锛屾寚瀹氫负 -1 涓嶈繘琛屽帇缂╋紙鍏ㄥ眬璁剧疆锛 v4.1.7 +# imageMaxWidth: 1024 +# imageMaxHeight: 768 +# +# # 鏄惁鍚敤绉掍紶 +# checkmd5: true +# +# # 鏄惁寮鍚垎鐗囦笂浼 +# chunked: true +# # 鍒嗙墖澶у皬锛屽崟浣嶅瓧鑺傦紙10M锛 +# chunkSize: '10*1024*1024' +# # 鏈澶т笂浼犵嚎绋嬫暟 +# threads: 3 +# +# # 鏄惁鍚敤妫鏌ョ偣锛堟敮鎸佹柇鐐圭画浼狅紝涓婁紶锛 +# checkpoint: true +# +# # 鏄惁鐢ㄦ枃浠舵祦鏂瑰紡涓嬭浇锛堟敮鎸佹柇鐐圭画浼狅級 +# isFileStreamDown: true + +#瑙嗛杞爜 +#video: +# +# # 瑙嗛鏍煎紡杞崲 ffmpeg.exe 鎵鏀剧殑璺緞 +# ffmpegFile: d:/tools/video/ffmpeg-4.9/bin/ffmpeg.exe +# #ffmpegFile: d:/tools/video/libav-10.6-win64/bin/avconv.exe +# +# # 瑙嗛鏍煎紡杞崲 mencoder.exe 鎵鏀剧殑璺緞 +# mencoderFile: d:/tools/video/mencoder-4.9/mencoder.exe +# +# # 灏唌p4瑙嗛鐨勫厓鏁版嵁淇℃伅杞埌瑙嗛绗竴甯 +# qtFaststartFile: d:/tools/video/qt-faststart/qt-faststart.exe + +# 鏂囦欢绠$悊鏄惁鍚敤绉熸埛妯″紡 +#filemanager: +# useCorpModel: false + +#======================================# +#========== Message settings ==========# +#======================================# + +# 娑堟伅鎻愰啋涓績锛堜笓涓氱増锛 +#msg: +# enabled: false +# +# # 鏄惁寮鍚疄鏃跺彂閫佹秷鎭紙淇濆瓨娑堟伅鍚庣珛鍗虫鏌ユ湭璇绘秷鎭苟鍙戦侊級锛屽垎甯冨紡閮ㄧ讲涓嬭鍗曠嫭閰嶇疆娑堟伅鍙戦佹湇鍔★紝涓嶅缓璁紑鍚閫夐」銆 +# realtime: +# # 鏄惁寮鍚 +# enabled: true +# # 娑堟伅瀹炴椂鎺ㄩ佷换鍔ean鍚嶇О +# beanName: msgLocalPushTask + +# # 鎺ㄩ佸け璐ユ鏁帮紝濡傛灉鎺ㄩ佹鏁拌秴杩囦簡璁惧畾娆℃暟锛屼粛涓嶆垚鍔燂紝鍒欐斁寮冨苟淇濆瓨鍒板巻鍙 +# pushFailNumber: 3 + +# # 閭欢鍙戦佸弬鏁 +# email: +# beanName: emailSendService +# fromAddress: test@163.com +# fromPassword: 123456 +# fromHostName: smtp.163.com +# sslOnConnect: false +# sslSmtpPort: 994 +# +# # 鐭俊缃戝叧 +# sms: +# beanName: smsSendService +# url: http://localhost:80/msg/sms/send +# data: username=jeesite&password=jeesite.com +# prefix: 銆怞eeSite銆 +# suffix: ~ + +#======================================# +#========== Project settings ==========# +#======================================# diff --git a/web-api/src/main/resources/config/beetl.properties b/web-api/src/main/resources/config/beetl.properties new file mode 100644 index 00000000..5a9fef83 --- /dev/null +++ b/web-api/src/main/resources/config/beetl.properties @@ -0,0 +1,21 @@ + +#璁剧疆涓巄eetl-default.properties鐩稿悓鐨勫睘鎬у皢琚鐩栭粯璁よ缃 + +##瀵煎叆椤圭洰涓殑璋冪敤闈欐佹柟娉曠被锛堥」鐩腑璁剧疆锛岃嚜鍔ㄥ悎骞禝MPORT_PACKAGE璁剧疆锛 +#IMPORT_PACKAGE_PROJECT=\ +# com.jeesite.modules.project.utils.;\ + +## 鍐呯疆鐨勬柟娉 +#FN.date = org.beetl.ext.fn.DateFunction + +##鍐呯疆鐨勫姛鑳藉寘 +#FNP.strutil = org.beetl.ext.fn.StringUtil + +##鍐呯疆鐨勬牸寮忓寲鍑芥暟 +#FT.dateFormat = org.beetl.ext.format.DateFormat + +##鍐呯疆鐨勯粯璁ゆ牸寮忓寲鍑芥暟 +#FTC.java.util.Date = org.beetl.ext.format.DateFormat + +## 鏍囩绫 +#TAG.include= org.beetl.ext.tag.IncludeTag diff --git a/web-api/src/main/resources/config/logback-spring.xml b/web-api/src/main/resources/config/logback-spring.xml new file mode 100644 index 00000000..a21a9b62 --- /dev/null +++ b/web-api/src/main/resources/config/logback-spring.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + %d{MM-dd HH:mm:ss.SSS} %clr(%-5p) %clr([%-39logger{39}]){cyan} - %m%n%wEx + + + + + + ${log.path}/debug.log + + ${log.path}/debug.%d{yyyy-MM-dd}.%i.log.zip + 50MB + 30 + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %-5p ${PID:- } [%15.15t] [%-39logger{39}] [%X{TRACE_ID}] - %m%n%wEx + + + + + + + ${log.path}/error.log + + ${log.path}/error.%d{yyyy-MM-dd}.%i.log.zip + 50MB + 30 + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %-5p ${PID:- } [%15.15t] [%-39logger{39}] [%X{TRACE_ID}] - %m%n%wEx + + + ERROR + + + + + + + + + + + \ No newline at end of file diff --git a/web-api/src/main/resources/db/create/h2/test.sql b/web-api/src/main/resources/db/create/h2/test.sql new file mode 100644 index 00000000..b44c94f5 --- /dev/null +++ b/web-api/src/main/resources/db/create/h2/test.sql @@ -0,0 +1,75 @@ + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE test_data +( + id varchar(64) NOT NULL, + test_input varchar(200), + test_textarea varchar(200), + test_select varchar(10), + test_select_multiple varchar(200), + test_radio varchar(10), + test_checkbox varchar(200), + test_date datetime, + test_datetime datetime, + test_user_code varchar(64), + test_office_code varchar(64), + test_area_code varchar(64), + test_area_name varchar(100), + status char(1) DEFAULT '0' NOT NULL, + create_by varchar(64) NOT NULL, + create_date datetime NOT NULL, + update_by varchar(64) NOT NULL, + update_date datetime NOT NULL, + remarks varchar(500), + PRIMARY KEY (id) +); + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE test_data_child +( + id varchar(64) NOT NULL, + test_sort int, + test_data_id varchar(64), + test_input varchar(200), + test_textarea varchar(200), + test_select varchar(10), + test_select_multiple varchar(200), + test_radio varchar(10), + test_checkbox varchar(200), + test_date datetime, + test_datetime datetime, + test_user_code varchar(64), + test_office_code varchar(64), + test_area_code varchar(64), + test_area_name varchar(100), + PRIMARY KEY (id) +); + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE test_tree +( + tree_code varchar(64) NOT NULL, + parent_code varchar(64) NOT NULL, + parent_codes varchar(1000) NOT NULL, + tree_sort decimal(10) NOT NULL, + tree_sorts varchar(1000) NOT NULL, + tree_leaf char(1) NOT NULL, + tree_level decimal(4) NOT NULL, + tree_names varchar(1000) NOT NULL, + tree_name varchar(200) NOT NULL, + status char(1) DEFAULT '0' NOT NULL, + create_by varchar(64) NOT NULL, + create_date datetime NOT NULL, + update_by varchar(64) NOT NULL, + update_date datetime NOT NULL, + remarks varchar(500), + PRIMARY KEY (tree_code) +); + + + diff --git a/web-api/src/main/resources/db/create/mssql/test.sql b/web-api/src/main/resources/db/create/mssql/test.sql new file mode 100644 index 00000000..4b48c1f4 --- /dev/null +++ b/web-api/src/main/resources/db/create/mssql/test.sql @@ -0,0 +1,75 @@ + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE [test_data] +( + [id] varchar(64) NOT NULL, + [test_input] varchar(200), + [test_textarea] nvarchar(200), + [test_select] varchar(10), + [test_select_multiple] varchar(200), + [test_radio] varchar(10), + [test_checkbox] varchar(200), + [test_date] datetime, + [test_datetime] datetime, + [test_user_code] varchar(64), + [test_office_code] varchar(64), + [test_area_code] varchar(64), + [test_area_name] nvarchar(100), + [status] char(1) DEFAULT '0' NOT NULL, + [create_by] varchar(64) NOT NULL, + [create_date] datetime NOT NULL, + [update_by] varchar(64) NOT NULL, + [update_date] datetime NOT NULL, + [remarks] nvarchar(500), + PRIMARY KEY ([id]) +); + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE [test_data_child] +( + [id] varchar(64) NOT NULL, + [test_sort] int, + [test_data_id] varchar(64), + [test_input] varchar(200), + [test_textarea] nvarchar(200), + [test_select] varchar(10), + [test_select_multiple] varchar(200), + [test_radio] varchar(10), + [test_checkbox] varchar(200), + [test_date] datetime, + [test_datetime] datetime, + [test_user_code] varchar(64), + [test_office_code] varchar(64), + [test_area_code] varchar(64), + [test_area_name] nvarchar(100), + PRIMARY KEY ([id]) +); + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE [test_tree] +( + [tree_code] varchar(64) NOT NULL, + [parent_code] varchar(64) NOT NULL, + [parent_codes] varchar(1000) NOT NULL, + [tree_sort] decimal(10) NOT NULL, + [tree_sorts] varchar(1000) NOT NULL, + [tree_leaf] char(1) NOT NULL, + [tree_level] decimal(4) NOT NULL, + [tree_names] varchar(1000) NOT NULL, + [tree_name] nvarchar(200) NOT NULL, + [status] char(1) DEFAULT '0' NOT NULL, + [create_by] varchar(64) NOT NULL, + [create_date] datetime NOT NULL, + [update_by] varchar(64) NOT NULL, + [update_date] datetime NOT NULL, + [remarks] nvarchar(500), + PRIMARY KEY ([tree_code]) +); + + + diff --git a/web-api/src/main/resources/db/create/mysql/test.sql b/web-api/src/main/resources/db/create/mysql/test.sql new file mode 100644 index 00000000..3165078a --- /dev/null +++ b/web-api/src/main/resources/db/create/mysql/test.sql @@ -0,0 +1,76 @@ +SET SESSION FOREIGN_KEY_CHECKS=0; + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE test_data +( + id varchar(64) NOT NULL COMMENT '缂栧彿', + test_input varchar(200) COMMENT '鍗曡鏂囨湰', + test_textarea varchar(200) COMMENT '澶氳鏂囨湰', + test_select varchar(10) COMMENT '涓嬫媺妗', + test_select_multiple varchar(200) COMMENT '涓嬫媺澶氶', + test_radio varchar(10) COMMENT '鍗曢夋', + test_checkbox varchar(200) COMMENT '澶嶉夋', + test_date datetime COMMENT '鏃ユ湡閫夋嫨', + test_datetime datetime COMMENT '鏃ユ湡鏃堕棿', + test_user_code varchar(64) COMMENT '鐢ㄦ埛閫夋嫨', + test_office_code varchar(64) COMMENT '鏈烘瀯閫夋嫨', + test_area_code varchar(64) COMMENT '鍖哄煙閫夋嫨', + test_area_name varchar(100) COMMENT '鍖哄煙鍚嶇О', + status char(1) DEFAULT '0' NOT NULL COMMENT '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛', + create_by varchar(64) NOT NULL COMMENT '鍒涘缓鑰', + create_date datetime NOT NULL COMMENT '鍒涘缓鏃堕棿', + update_by varchar(64) NOT NULL COMMENT '鏇存柊鑰', + update_date datetime NOT NULL COMMENT '鏇存柊鏃堕棿', + remarks varchar(500) COMMENT '澶囨敞淇℃伅', + PRIMARY KEY (id) +) COMMENT = '娴嬭瘯鏁版嵁'; + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE test_data_child +( + id varchar(64) NOT NULL COMMENT '缂栧彿', + test_sort int COMMENT '鎺掑簭鍙', + test_data_id varchar(64) COMMENT '鐖惰〃涓婚敭', + test_input varchar(200) COMMENT '鍗曡鏂囨湰', + test_textarea varchar(200) COMMENT '澶氳鏂囨湰', + test_select varchar(10) COMMENT '涓嬫媺妗', + test_select_multiple varchar(200) COMMENT '涓嬫媺澶氶', + test_radio varchar(10) COMMENT '鍗曢夋', + test_checkbox varchar(200) COMMENT '澶嶉夋', + test_date datetime COMMENT '鏃ユ湡閫夋嫨', + test_datetime datetime COMMENT '鏃ユ湡鏃堕棿', + test_user_code varchar(64) COMMENT '鐢ㄦ埛閫夋嫨', + test_office_code varchar(64) COMMENT '鏈烘瀯閫夋嫨', + test_area_code varchar(64) COMMENT '鍖哄煙閫夋嫨', + test_area_name varchar(100) COMMENT '鍖哄煙鍚嶇О', + PRIMARY KEY (id) +) COMMENT = '娴嬭瘯鏁版嵁瀛愯〃'; + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE test_tree +( + tree_code varchar(64) NOT NULL COMMENT '鑺傜偣缂栫爜', + parent_code varchar(64) NOT NULL COMMENT '鐖剁骇缂栧彿', + parent_codes varchar(1000) NOT NULL COMMENT '鎵鏈夌埗绾х紪鍙', + tree_sort decimal(10) NOT NULL COMMENT '鎺掑簭鍙凤紙鍗囧簭锛', + tree_sorts varchar(1000) NOT NULL COMMENT '鎵鏈夋帓搴忓彿', + tree_leaf char(1) NOT NULL COMMENT '鏄惁鏈鏈骇', + tree_level decimal(4) NOT NULL COMMENT '灞傛绾у埆', + tree_names varchar(1000) NOT NULL COMMENT '鍏ㄨ妭鐐瑰悕', + tree_name varchar(200) NOT NULL COMMENT '鑺傜偣鍚嶇О', + status char(1) DEFAULT '0' NOT NULL COMMENT '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛', + create_by varchar(64) NOT NULL COMMENT '鍒涘缓鑰', + create_date datetime NOT NULL COMMENT '鍒涘缓鏃堕棿', + update_by varchar(64) NOT NULL COMMENT '鏇存柊鑰', + update_date datetime NOT NULL COMMENT '鏇存柊鏃堕棿', + remarks varchar(500) COMMENT '澶囨敞淇℃伅', + PRIMARY KEY (tree_code) +) COMMENT = '娴嬭瘯鏍戣〃'; + + + diff --git a/web-api/src/main/resources/db/create/oracle/test.sql b/web-api/src/main/resources/db/create/oracle/test.sql new file mode 100644 index 00000000..0ffbb56d --- /dev/null +++ b/web-api/src/main/resources/db/create/oracle/test.sql @@ -0,0 +1,132 @@ + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE test_data +( + id varchar2(64) NOT NULL, + test_input varchar2(200), + test_textarea nvarchar2(200), + test_select varchar2(10), + test_select_multiple varchar2(200), + test_radio varchar2(10), + test_checkbox varchar2(200), + test_date timestamp, + test_datetime timestamp, + test_user_code varchar2(64), + test_office_code varchar2(64), + test_area_code varchar2(64), + test_area_name nvarchar2(100), + status char(1) DEFAULT '0' NOT NULL, + create_by varchar2(64) NOT NULL, + create_date timestamp NOT NULL, + update_by varchar2(64) NOT NULL, + update_date timestamp NOT NULL, + remarks nvarchar2(500), + PRIMARY KEY (id) +); + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE test_data_child +( + id varchar2(64) NOT NULL, + test_sort number(10,0), + test_data_id varchar2(64), + test_input varchar2(200), + test_textarea nvarchar2(200), + test_select varchar2(10), + test_select_multiple varchar2(200), + test_radio varchar2(10), + test_checkbox varchar2(200), + test_date timestamp, + test_datetime timestamp, + test_user_code varchar2(64), + test_office_code varchar2(64), + test_area_code varchar2(64), + test_area_name nvarchar2(100), + PRIMARY KEY (id) +); + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE test_tree +( + tree_code varchar2(64) NOT NULL, + parent_code varchar2(64) NOT NULL, + parent_codes varchar2(1000) NOT NULL, + tree_sort number(10) NOT NULL, + tree_sorts varchar2(1000) NOT NULL, + tree_leaf char(1) NOT NULL, + tree_level number(4) NOT NULL, + tree_names varchar2(1000) NOT NULL, + tree_name nvarchar2(200) NOT NULL, + status char(1) DEFAULT '0' NOT NULL, + create_by varchar2(64) NOT NULL, + create_date timestamp NOT NULL, + update_by varchar2(64) NOT NULL, + update_date timestamp NOT NULL, + remarks nvarchar2(500), + PRIMARY KEY (tree_code) +); + + + +/* Comments */ + +COMMENT ON TABLE test_data IS '娴嬭瘯鏁版嵁'; +COMMENT ON COLUMN test_data.id IS '缂栧彿'; +COMMENT ON COLUMN test_data.test_input IS '鍗曡鏂囨湰'; +COMMENT ON COLUMN test_data.test_textarea IS '澶氳鏂囨湰'; +COMMENT ON COLUMN test_data.test_select IS '涓嬫媺妗'; +COMMENT ON COLUMN test_data.test_select_multiple IS '涓嬫媺澶氶'; +COMMENT ON COLUMN test_data.test_radio IS '鍗曢夋'; +COMMENT ON COLUMN test_data.test_checkbox IS '澶嶉夋'; +COMMENT ON COLUMN test_data.test_date IS '鏃ユ湡閫夋嫨'; +COMMENT ON COLUMN test_data.test_datetime IS '鏃ユ湡鏃堕棿'; +COMMENT ON COLUMN test_data.test_user_code IS '鐢ㄦ埛閫夋嫨'; +COMMENT ON COLUMN test_data.test_office_code IS '鏈烘瀯閫夋嫨'; +COMMENT ON COLUMN test_data.test_area_code IS '鍖哄煙閫夋嫨'; +COMMENT ON COLUMN test_data.test_area_name IS '鍖哄煙鍚嶇О'; +COMMENT ON COLUMN test_data.status IS '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛'; +COMMENT ON COLUMN test_data.create_by IS '鍒涘缓鑰'; +COMMENT ON COLUMN test_data.create_date IS '鍒涘缓鏃堕棿'; +COMMENT ON COLUMN test_data.update_by IS '鏇存柊鑰'; +COMMENT ON COLUMN test_data.update_date IS '鏇存柊鏃堕棿'; +COMMENT ON COLUMN test_data.remarks IS '澶囨敞淇℃伅'; +COMMENT ON TABLE test_data_child IS '娴嬭瘯鏁版嵁瀛愯〃'; +COMMENT ON COLUMN test_data_child.id IS '缂栧彿'; +COMMENT ON COLUMN test_data_child.test_sort IS '鎺掑簭鍙'; +COMMENT ON COLUMN test_data_child.test_data_id IS '鐖惰〃涓婚敭'; +COMMENT ON COLUMN test_data_child.test_input IS '鍗曡鏂囨湰'; +COMMENT ON COLUMN test_data_child.test_textarea IS '澶氳鏂囨湰'; +COMMENT ON COLUMN test_data_child.test_select IS '涓嬫媺妗'; +COMMENT ON COLUMN test_data_child.test_select_multiple IS '涓嬫媺澶氶'; +COMMENT ON COLUMN test_data_child.test_radio IS '鍗曢夋'; +COMMENT ON COLUMN test_data_child.test_checkbox IS '澶嶉夋'; +COMMENT ON COLUMN test_data_child.test_date IS '鏃ユ湡閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_datetime IS '鏃ユ湡鏃堕棿'; +COMMENT ON COLUMN test_data_child.test_user_code IS '鐢ㄦ埛閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_office_code IS '鏈烘瀯閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_area_code IS '鍖哄煙閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_area_name IS '鍖哄煙鍚嶇О'; +COMMENT ON TABLE test_tree IS '娴嬭瘯鏍戣〃'; +COMMENT ON COLUMN test_tree.tree_code IS '鑺傜偣缂栫爜'; +COMMENT ON COLUMN test_tree.parent_code IS '鐖剁骇缂栧彿'; +COMMENT ON COLUMN test_tree.parent_codes IS '鎵鏈夌埗绾х紪鍙'; +COMMENT ON COLUMN test_tree.tree_sort IS '鎺掑簭鍙凤紙鍗囧簭锛'; +COMMENT ON COLUMN test_tree.tree_sorts IS '鎵鏈夋帓搴忓彿'; +COMMENT ON COLUMN test_tree.tree_leaf IS '鏄惁鏈鏈骇'; +COMMENT ON COLUMN test_tree.tree_level IS '灞傛绾у埆'; +COMMENT ON COLUMN test_tree.tree_names IS '鍏ㄨ妭鐐瑰悕'; +COMMENT ON COLUMN test_tree.tree_name IS '鑺傜偣鍚嶇О'; +COMMENT ON COLUMN test_tree.status IS '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛'; +COMMENT ON COLUMN test_tree.create_by IS '鍒涘缓鑰'; +COMMENT ON COLUMN test_tree.create_date IS '鍒涘缓鏃堕棿'; +COMMENT ON COLUMN test_tree.update_by IS '鏇存柊鑰'; +COMMENT ON COLUMN test_tree.update_date IS '鏇存柊鏃堕棿'; +COMMENT ON COLUMN test_tree.remarks IS '澶囨敞淇℃伅'; + + + diff --git a/web-api/src/main/resources/db/create/postgresql/test.sql b/web-api/src/main/resources/db/create/postgresql/test.sql new file mode 100644 index 00000000..15f53ad5 --- /dev/null +++ b/web-api/src/main/resources/db/create/postgresql/test.sql @@ -0,0 +1,132 @@ + + +/* Create Tables */ + +-- 娴嬭瘯鏁版嵁 +CREATE TABLE test_data +( + id varchar(64) NOT NULL, + test_input varchar(200), + test_textarea varchar(200), + test_select varchar(10), + test_select_multiple varchar(200), + test_radio varchar(10), + test_checkbox varchar(200), + test_date timestamp, + test_datetime timestamp, + test_user_code varchar(64), + test_office_code varchar(64), + test_area_code varchar(64), + test_area_name varchar(100), + status char(1) DEFAULT '0' NOT NULL, + create_by varchar(64) NOT NULL, + create_date timestamp NOT NULL, + update_by varchar(64) NOT NULL, + update_date timestamp NOT NULL, + remarks varchar(500), + PRIMARY KEY (id) +) WITHOUT OIDS; + + +-- 娴嬭瘯鏁版嵁瀛愯〃 +CREATE TABLE test_data_child +( + id varchar(64) NOT NULL, + test_sort int, + test_data_id varchar(64), + test_input varchar(200), + test_textarea varchar(200), + test_select varchar(10), + test_select_multiple varchar(200), + test_radio varchar(10), + test_checkbox varchar(200), + test_date timestamp, + test_datetime timestamp, + test_user_code varchar(64), + test_office_code varchar(64), + test_area_code varchar(64), + test_area_name varchar(100), + PRIMARY KEY (id) +) WITHOUT OIDS; + + +-- 娴嬭瘯鏍戣〃 +CREATE TABLE test_tree +( + tree_code varchar(64) NOT NULL, + parent_code varchar(64) NOT NULL, + parent_codes varchar(1000) NOT NULL, + tree_sort decimal(10) NOT NULL, + tree_sorts varchar(1000) NOT NULL, + tree_leaf char(1) NOT NULL, + tree_level decimal(4) NOT NULL, + tree_names varchar(1000) NOT NULL, + tree_name varchar(200) NOT NULL, + status char(1) DEFAULT '0' NOT NULL, + create_by varchar(64) NOT NULL, + create_date timestamp NOT NULL, + update_by varchar(64) NOT NULL, + update_date timestamp NOT NULL, + remarks varchar(500), + PRIMARY KEY (tree_code) +) WITHOUT OIDS; + + + +/* Comments */ + +COMMENT ON TABLE test_data IS '娴嬭瘯鏁版嵁'; +COMMENT ON COLUMN test_data.id IS '缂栧彿'; +COMMENT ON COLUMN test_data.test_input IS '鍗曡鏂囨湰'; +COMMENT ON COLUMN test_data.test_textarea IS '澶氳鏂囨湰'; +COMMENT ON COLUMN test_data.test_select IS '涓嬫媺妗'; +COMMENT ON COLUMN test_data.test_select_multiple IS '涓嬫媺澶氶'; +COMMENT ON COLUMN test_data.test_radio IS '鍗曢夋'; +COMMENT ON COLUMN test_data.test_checkbox IS '澶嶉夋'; +COMMENT ON COLUMN test_data.test_date IS '鏃ユ湡閫夋嫨'; +COMMENT ON COLUMN test_data.test_datetime IS '鏃ユ湡鏃堕棿'; +COMMENT ON COLUMN test_data.test_user_code IS '鐢ㄦ埛閫夋嫨'; +COMMENT ON COLUMN test_data.test_office_code IS '鏈烘瀯閫夋嫨'; +COMMENT ON COLUMN test_data.test_area_code IS '鍖哄煙閫夋嫨'; +COMMENT ON COLUMN test_data.test_area_name IS '鍖哄煙鍚嶇О'; +COMMENT ON COLUMN test_data.status IS '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛'; +COMMENT ON COLUMN test_data.create_by IS '鍒涘缓鑰'; +COMMENT ON COLUMN test_data.create_date IS '鍒涘缓鏃堕棿'; +COMMENT ON COLUMN test_data.update_by IS '鏇存柊鑰'; +COMMENT ON COLUMN test_data.update_date IS '鏇存柊鏃堕棿'; +COMMENT ON COLUMN test_data.remarks IS '澶囨敞淇℃伅'; +COMMENT ON TABLE test_data_child IS '娴嬭瘯鏁版嵁瀛愯〃'; +COMMENT ON COLUMN test_data_child.id IS '缂栧彿'; +COMMENT ON COLUMN test_data_child.test_sort IS '鎺掑簭鍙'; +COMMENT ON COLUMN test_data_child.test_data_id IS '鐖惰〃涓婚敭'; +COMMENT ON COLUMN test_data_child.test_input IS '鍗曡鏂囨湰'; +COMMENT ON COLUMN test_data_child.test_textarea IS '澶氳鏂囨湰'; +COMMENT ON COLUMN test_data_child.test_select IS '涓嬫媺妗'; +COMMENT ON COLUMN test_data_child.test_select_multiple IS '涓嬫媺澶氶'; +COMMENT ON COLUMN test_data_child.test_radio IS '鍗曢夋'; +COMMENT ON COLUMN test_data_child.test_checkbox IS '澶嶉夋'; +COMMENT ON COLUMN test_data_child.test_date IS '鏃ユ湡閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_datetime IS '鏃ユ湡鏃堕棿'; +COMMENT ON COLUMN test_data_child.test_user_code IS '鐢ㄦ埛閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_office_code IS '鏈烘瀯閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_area_code IS '鍖哄煙閫夋嫨'; +COMMENT ON COLUMN test_data_child.test_area_name IS '鍖哄煙鍚嶇О'; +COMMENT ON TABLE test_tree IS '娴嬭瘯鏍戣〃'; +COMMENT ON COLUMN test_tree.tree_code IS '鑺傜偣缂栫爜'; +COMMENT ON COLUMN test_tree.parent_code IS '鐖剁骇缂栧彿'; +COMMENT ON COLUMN test_tree.parent_codes IS '鎵鏈夌埗绾х紪鍙'; +COMMENT ON COLUMN test_tree.tree_sort IS '鎺掑簭鍙凤紙鍗囧簭锛'; +COMMENT ON COLUMN test_tree.tree_sorts IS '鎵鏈夋帓搴忓彿'; +COMMENT ON COLUMN test_tree.tree_leaf IS '鏄惁鏈鏈骇'; +COMMENT ON COLUMN test_tree.tree_level IS '灞傛绾у埆'; +COMMENT ON COLUMN test_tree.tree_names IS '鍏ㄨ妭鐐瑰悕'; +COMMENT ON COLUMN test_tree.tree_name IS '鑺傜偣鍚嶇О'; +COMMENT ON COLUMN test_tree.status IS '鐘舵侊紙0姝e父 1鍒犻櫎 2鍋滅敤锛'; +COMMENT ON COLUMN test_tree.create_by IS '鍒涘缓鑰'; +COMMENT ON COLUMN test_tree.create_date IS '鍒涘缓鏃堕棿'; +COMMENT ON COLUMN test_tree.update_by IS '鏇存柊鑰'; +COMMENT ON COLUMN test_tree.update_date IS '鏇存柊鏃堕棿'; +COMMENT ON COLUMN test_tree.remarks IS '澶囨敞淇℃伅'; + + + diff --git a/web-api/src/main/resources/mappings/modules/test/TestDataChildDao.xml b/web-api/src/main/resources/mappings/modules/test/TestDataChildDao.xml new file mode 100644 index 00000000..badbe182 --- /dev/null +++ b/web-api/src/main/resources/mappings/modules/test/TestDataChildDao.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/web-api/src/main/resources/mappings/modules/test/TestDataDao.xml b/web-api/src/main/resources/mappings/modules/test/TestDataDao.xml new file mode 100644 index 00000000..c21f5521 --- /dev/null +++ b/web-api/src/main/resources/mappings/modules/test/TestDataDao.xml @@ -0,0 +1,28 @@ + + + + + + + + + + \ No newline at end of file diff --git a/web-api/src/main/resources/mappings/modules/test/TestTreeDao.xml b/web-api/src/main/resources/mappings/modules/test/TestTreeDao.xml new file mode 100644 index 00000000..7486b49e --- /dev/null +++ b/web-api/src/main/resources/mappings/modules/test/TestTreeDao.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/web-api/src/main/resources/static/common/common.css b/web-api/src/main/resources/static/common/common.css new file mode 100644 index 00000000..f94b7e40 --- /dev/null +++ b/web-api/src/main/resources/static/common/common.css @@ -0,0 +1,5 @@ +/*! + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + * 椤圭洰鑷畾涔夌殑鍏叡CSS锛屽彲瑕嗙洊jeesite.css閲岀殑鏍峰紡 + */ diff --git a/web-api/src/main/resources/static/common/common.js b/web-api/src/main/resources/static/common/common.js new file mode 100644 index 00000000..14bccc01 --- /dev/null +++ b/web-api/src/main/resources/static/common/common.js @@ -0,0 +1,5 @@ +/*! + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + * 椤圭洰鑷畾涔夌殑鍏叡JavaScript锛屽彲瑕嗙洊jeesite.js閲岀殑鏂规硶 + */ diff --git a/web-api/src/main/resources/static/favicon.png b/web-api/src/main/resources/static/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..72734e51c4168a8a0e9f4ebf4e2b7f648dfc853f GIT binary patch literal 4794 zcmbVQc|6qX_n#{?C|hI;V^Ac!v5cj$lg2Xky=e>vGlLlhS(-|gL}e*U$x^lqNh%a2 zVh~x2GEqjd%vB+4zmM+ie(&r1yZ86UZ(cK>&+|FYIp;agIq&m)&Y2W@Tg$!N;@lt* zXs@-E849>}?)<=+S)4WS}<*G^&=1sHFXVDHQ=kQtgZ!zX~Q*i zAb)Y+{#4{ihgp>X53VK%Kdf8Uf-5gMJeK zHvF&ofZzVcKHvZm6BA3=__4OOru=!RVo*s_^Ip?xKrrho>GA5&jFV}9R9x_d)!L_X zzE#aHt~L-EMpgCoWV|xVIvrtv*6O9x#XlHIUUSG#1qsTEMlid4RySP3!os5I;E$cM z8S~7ojXf+J?^Q0;>0Y0fMOPF`=gmuvxa>HSQaVoI8B1x<0ophY`0czA{CW#l<(Q2RejaL$`MSuBH<;Cc4 zv*%*vgoTBXIm(_ZrY4sBb_aeS4qPIX_l;D!){sOU?|9kjlqx>iAh_%~79!4akcxUw zJ*cYM_mRmI=aenS2KkLtdj`1NaYH}Z{L&p|dD)*!B$?70adKe@Ki&Ytyhw-P$Lc5P zXNfM=9@x~>)E;`a5=Jgm{H&1-i z7%^9vK|kbN<6}6!G8U}5A?lK@$j)Ys-dI`iUz%!fi0^Rqjl*{DDz_F=nSa2DKU}?< zaMA1oSdL(kCW>bE75dK2o#&G#G*VbnpD4sPb?wa?i%ra49flU`@#>AWpz&OM?h7F&L7pG(2GW@TsRK0UiTUy1e* z%KU5#W*3A98LWNGWS-$sQR~i8wiye{%F23;5!LihgMAkO%Uv&wU+?mY7tn|nNoC@UxYg^|!-1f4Q4!w*vp|aKE+HPlzCpXA3!7sHk$KkusPq{8 z-nuJ6DSfP8f%II!@|tz#LHFH(k&z8wPf_Myqb&tO_^othh9nhX;_y9L$;13g?`5!1hCDIu;ucE6WBa-e zQHqWFy!fW6h>+?qu(fki7tEm2X@w5#J0e;%p6KXk|H8Nx>+efmu}keQ8L}w`o z$;?Qp$k~DR+52~ObsWVGBr2X~Zm3Mk3wDb5#-e$RzQ4Cmw`s5<5D3*Z!LN!r0KR}f zuJ^ay2j1)7{#^ZFqRzJMF6PC-h!-+!RQvveiYtFkh64zH*M3u+iP+!;QYQ}$$ zY_-ZbK$i+1aSzD7>Km_jdo^KwwyXgcz4Guwx@Ospm`Xh$&*pZ3)LDA44g<)JZFdScW9_=X2 zFk0^)wJ431Txk z|BS$N*=27zj5HNNAH3tPIap%JH-0WB$(fFzB*;^E1gp#6k@^fHm)^hBXK5u##RQi2 zDOb4(n2m?2wrqw6+bCS@Tbn5)UiiqKa-|nnRy43>7QK8yKyK>e%*=RXxAKG6y2|(z zXPWP={p-_LeWz~37%mSvYBv=Zra0e-NV;B@O1SyY(k zF*C^vnf8N6)=&U(|3%2I-Msa-*3pAoH{W+EI^KrxCmYe5mVa;K^CUJ(`@bx}b)#hY zlMTMS1&*3`+Q%n^@o(3GSy>V<^j_+%C>ar_F;oqD$pu-fiE>cg8X$ zL%3^^p*LZ~iMO-&u4HFDwX^EdVZ@$Ap!RaG9@R#FWwt&Uy#K7~0?~L!Q~}E|@L4!28uixQM=aijbGRe3{zJnn&ZZ?6J{& zVKy#-VGhc|>&Ev>HxVt5NHg%qF7j8s+qCPY-*R9T6b~Qf?v*Ly7aVPrFOHZS0m}`C zR)0Gj_FRHj9n-NVV8hh$kgL#mytfaby@Dus)Dvre#4OChw}S4v7s zcoXdwBMxMhQ;d7`tus<@g6s+2N1J}sSGzn-RC1;5nKuZ^=#;F%B@d|pGf48v)oZ3j5^mL$yITX z&*?1Z-uW9~K%V0b` zJu%piotGn>UIX>YaTcR7q6%;Pae0~4b9d3|IVTs_MNnH3pWS-c9&xSCiTfCHmUG7? za#vvaY&B!A3s^3tBZl!LE^}q8j>Bn5(Z}O{5Y~L4)H*ZEh;i%(2{_*^?<$$=yxr=M zAZop9jNsWiHQn8Ru;iva)?FTF(|*e_aVbL_M)#t;i*Q)5cqMEFF!d%2$j-y#BO@c9 zwb)I387DOL9y9{Ol^WCLET!Xyw)c--$}@wu`8G^!u6@PJ-%;4N*6ijXfGWLHa0;em zU|bTB;CyZ%OTi%!cD%)0xLB+Bc!BOK@kw<0{yO!>$c3QQ3Knm4G=+x>Zs&Xl9GN4h zREo;U2>$Z6&JhRed$s+ay|t3X|}Uy@pm@ON;y%zBmw(l0S8H8D4KW+J($;A{!|uyyAum#}P^gF}>| zB&P=Gk=OuA4UIM-5L^^BT>EJ!e@1E7ySlqIl|AZ{onA$QrLv3M9uTg(KZ$)*9WBV` z<6Cw7A);CJjVLQ)gzw_&3%2JFZ3gz?$=s87{ds2T>*sh%i;GV>+-Ef6L0!^@l@IXa zEAh`bP(TNAR;M?n(2;lc-1sVVIV%q_;YRF$+}(kN%xgbZ??Z+V#RHX(7Zq~G!50Tx=cOd3^ymY0|R zk@6-oB`kIM5C;c`tfr=>0Cy?0?Xkq#b^VJ6C%Mg{R;;91lMJ8WP8e0_#J$m)-7&H+ z=Dm+UcqWqE+1E$R%g%<4oPtBneiyJxuXb37cw8|t_;jMvVOyjIXxxH60i{Lv{QUgH z#30Qlcp)yHwt8dT%gE|9q#=fH?(z2hu~XXv>5}^XIXOAB>S@CiVQ}jr`~Roi{JYF) er}r&vdqCb57F!{gW0*VtCRv-?n$b*7ocSN=S6Z9^ literal 0 HcmV?d00001 diff --git a/web-api/src/main/webapp/WEB-INF/startup.bat b/web-api/src/main/webapp/WEB-INF/startup.bat new file mode 100644 index 00000000..ebc71645 --- /dev/null +++ b/web-api/src/main/webapp/WEB-INF/startup.bat @@ -0,0 +1,51 @@ +@echo off +rem /** +rem * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +rem * No deletion without permission, or be held responsible to law. +rem * +rem * Author: ThinkGem@163.com +rem */ +echo. +echo [信息] 运行Web工程。 +echo. +rem pause +rem echo. + +%~d0 +cd %~dp0 + +title %cd% + +rem 设置JDK目录 +rem set "JAVA_HOME=%cd%\jdk1.8.0_x64" + +rem 设置类加载路径 +set "CLASS_PATH=%cd%/../" + +rem 优化JVM参数 +set "JAVA_OPTS=-Xms512m -Xmx1024m" + +rem 方式一、配置外部自定义的属性文件(建议) +rem set "JAVA_OPTS=%JAVA_OPTS% -Dspring.config.location=%cd%\app.yml" + +rem 方式二、配置环境名称,加载不同的属性文件 +rem set "JAVA_OPTS=%JAVA_OPTS% -Dspring.profiles.active=prod" + +if "%JAVA_HOME%" == "" goto noJavaHome +if not "%JAVA_HOME%" == "" goto gotJavaHome +goto end + +:noJavaHome +set RUN_JAVA=java +goto runJava + +:gotJavaHome +set "RUN_JAVA=%JAVA_HOME%\bin\java" +goto runJava + +:runJava +call "%RUN_JAVA%" -cp %CLASS_PATH% %JAVA_OPTS% org.springframework.boot.loader.WarLauncher +goto end + +:end +pause diff --git a/web-api/src/main/webapp/WEB-INF/startup.sh b/web-api/src/main/webapp/WEB-INF/startup.sh new file mode 100644 index 00000000..eba46cef --- /dev/null +++ b/web-api/src/main/webapp/WEB-INF/startup.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# /** +# * Copyright (c) 2013-Now http://jeesite.com All rights reserved. +# * No deletion without permission, or be held responsible to law. +# * +# * Author: ThinkGem@163.com +# */ +echo "" +echo "[淇℃伅] 杩愯Web宸ョ▼銆" +echo "" + +# 璁剧疆JDK鐩綍 +# JAVA_HOME="$PWD/jdk1.8.0_x64" + +# 璁剧疆绫诲姞杞借矾寰 +CLASS_PATH="$PWD/../" + +# 浼樺寲JVM鍙傛暟 +JAVA_OPTS="-Xms512m -Xmx1024m" + +# 鏂瑰紡涓銆侀厤缃閮ㄨ嚜瀹氫箟鐨勫睘鎬ф枃浠讹紙寤鸿锛 +# JAVA_OPTS="$JAVA_OPTS -Dspring.config.location=$PWD/app.yml" + +# 鏂瑰紡浜屻侀厤缃幆澧冨悕绉帮紝鍔犺浇涓嶅悓鐨勫睘鎬ф枃浠 +# JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=prod" + +if [ -z "$JAVA_HOME" ]; then + RUN_JAVA=java +else + RUN_JAVA="$JAVA_HOME"/bin/java +fi + +exec $RUN_JAVA -cp $CLASS_PATH $JAVA_OPTS org.springframework.boot.loader.WarLauncher \ No newline at end of file diff --git a/web-api/src/main/webapp/WEB-INF/web.xml b/web-api/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000..67e6ef59 --- /dev/null +++ b/web-api/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,18 @@ + + + + JeeSite + + + 500 + /error/500 + + + 404 + /error/404 + + + \ No newline at end of file diff --git a/web-api/src/test/java/com/jeesite/test/InitData.java b/web-api/src/test/java/com/jeesite/test/InitData.java new file mode 100644 index 00000000..8487edd7 --- /dev/null +++ b/web-api/src/test/java/com/jeesite/test/InitData.java @@ -0,0 +1,33 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.test; + +import org.junit.Test; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +import com.jeesite.common.tests.BaseInitDataTests; +import com.jeesite.modules.Application; + +/** + * 鍒濆鍖栨暟鎹〃 + * @author ThinkGem + * @version 2020-5-26 + */ +@ActiveProfiles("test") +@SpringBootTest(classes=Application.class) +public class InitData extends BaseInitDataTests { + + @Test + public void initData01() throws Exception{ + logger.info("鏁版嵁搴撳垵濮嬪寲瀹屾垚銆"); + } + + @Override + public void initProperty() { + System.setProperty("jeesite.initdata", "true"); + } + +} diff --git a/web-api/src/test/java/com/jeesite/test/InsertBatchTest.java b/web-api/src/test/java/com/jeesite/test/InsertBatchTest.java new file mode 100644 index 00000000..4046a535 --- /dev/null +++ b/web-api/src/test/java/com/jeesite/test/InsertBatchTest.java @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.test; + +import java.util.List; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +import com.jeesite.common.callback.MethodCallback; +import com.jeesite.common.collect.ListUtils; +import com.jeesite.common.tests.BaseSpringContextTests; +import com.jeesite.modules.Application; +import com.jeesite.modules.test.dao.TestDataDao; +import com.jeesite.modules.test.entity.TestData; + +/** + * 鎵归噺鎻掑叆娴嬭瘯 + * @author ThinkGem + * @version 2019骞10鏈28鏃 + */ +@ActiveProfiles("test") +@SpringBootTest(classes=Application.class) +public class InsertBatchTest extends BaseSpringContextTests { + + @Autowired + private TestDataDao testDataDao; + + @Test + public void testData() throws Exception{ + List list = ListUtils.newArrayList(); + for(int i=0; i<5000; i++){ + TestData testData = new TestData(); + testData.setTestInput("test"+i); + list.add(testData); + } + ListUtils.pageList(list, 100, new MethodCallback() { + @SuppressWarnings("unchecked") + public Object execute(Object... objs) { + return testDataDao.insertBatch((List)objs[0]); + } + }); + list = testDataDao.findList(new TestData()); + System.out.println("size: " + list.size()); + } + +} diff --git a/web-api/src/test/java/com/jeesite/test/MultiDataSourceTest.java b/web-api/src/test/java/com/jeesite/test/MultiDataSourceTest.java new file mode 100644 index 00000000..d2ea1e82 --- /dev/null +++ b/web-api/src/test/java/com/jeesite/test/MultiDataSourceTest.java @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.test; + +import java.util.List; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +import com.jeesite.common.collect.ListUtils; +import com.jeesite.common.idgen.IdGen; +import com.jeesite.common.tests.BaseSpringContextTests; +import com.jeesite.modules.Application; +import com.jeesite.modules.test.entity.TestData; +import com.jeesite.modules.test.entity.TestDataChild; +import com.jeesite.modules.test.service.TestDataService; + +/** + * 澶氭暟鎹簮骞跺彂娴嬭瘯
+ * 1銆佸皢 TestDataChildDao 鐨勬暟鎹簮璁剧疆涓 ds2
+ * 2銆佸皢 TestDataChild 鐨勮〃鍚嶈缃负 test_data_child2
+ * 3銆侀厤缃 ds2 鏁版嵁婧愶紝骞跺垱寤 test_data_child2 琛 + * @author ThinkGem + * @version 2019-6-26 + */ +@ActiveProfiles("test") +@SpringBootTest(classes=Application.class) +public class MultiDataSourceTest extends BaseSpringContextTests { + + @Autowired + private TestDataService testDataService; + + @Test + public void testData() throws Exception{ + ExecutorService pool = Executors.newCachedThreadPool(); + CountDownLatch latch = new CountDownLatch(10); + Runnable runnable = new Runnable() { + @Override + public void run() { + try{ + Thread.sleep(IdGen.randomInt(1000, 3000)); + TestData testData = new TestData(); + testData.setTestDataChildList(ListUtils.newArrayList( + new TestDataChild(), new TestDataChild(), new TestDataChild())); + testDataService.save(testData); + List list = testDataService.findList(new TestData()); + System.out.println("size: " + list.size()); + list.forEach(e -> { + System.out.println("get: " + testDataService.get(e)); + }); + } catch (Exception e) { + System.err.println(e.getMessage()); + } finally { + latch.countDown(); + } + } + }; + for (int i = 0; i < latch.getCount(); i++) { + pool.execute(runnable); + } + latch.await(); + pool.shutdown(); + } + +} diff --git a/web-api/src/test/java/com/jeesite/test/RememberMeKeyGen.java b/web-api/src/test/java/com/jeesite/test/RememberMeKeyGen.java new file mode 100644 index 00000000..c3005103 --- /dev/null +++ b/web-api/src/test/java/com/jeesite/test/RememberMeKeyGen.java @@ -0,0 +1,25 @@ +/** + * Copyright (c) 2013-Now http://jeesite.com All rights reserved. + * No deletion without permission, or be held responsible to law. + */ +package com.jeesite.test; + +import org.apache.shiro.crypto.AesCipherService; + +/** + * v4.1.8 寮濮嬪皢涓嶄负璁颁綇鎴戝姛鑳斤紝璁剧疆榛樿瀵嗛挜锛屽嵆鍚姩绯荤粺鏃剁敓鎴愭柊瀵嗛挜銆 + * 杩欐牱浼氶犳垚涓涓棶棰橈紝姣斿锛氶噸鍚湇鍔″悗锛岃浣忕櫥褰曠殑鐢ㄦ埛鍥犱负瑙e瘑澶辫触锛岃岄渶瑕侀噸鏂扮櫥褰曘 + * 涓轰簡瑙e喅杩欎釜闂锛屾偍鍙互閫氳繃杩欎釜绫昏幏鍙栦竴涓柊瀵嗛挜锛岃缃埌 shiro.rememberMe.secretKey 涓嵆鍙 + * 鍙﹀锛屽鏋滀綘浠庨厤缃枃浠堕噷灏 shiro.rememberMe.secretKey 璁剧疆涓虹┖锛屽惎鍔ㄧ郴缁熸椂涔熶細鑷姩璁剧疆涓涓柊鐨勫瘑閽ャ + * @author ThinkGem + * @version 2019骞11鏈6鏃 + */ +public class RememberMeKeyGen { + + public static void main(String[] args) { + byte[] cipherKey = new AesCipherService().generateNewKey().getEncoded(); + String secretKey = org.apache.shiro.codec.Base64.encodeToString(cipherKey); + System.out.println("shiro.rememberMe.secretKey = " + secretKey); + } + +} diff --git a/web-api/src/test/java/logback-test.xml b/web-api/src/test/java/logback-test.xml new file mode 100644 index 00000000..98aa2446 --- /dev/null +++ b/web-api/src/test/java/logback-test.xml @@ -0,0 +1,19 @@ + + + + + + + + + + %d{HH:mm:ss.SSS} %clr(%-5p) %clr([%-39logger{39}]){cyan} - %m%n%wEx + + + + + + + + + \ No newline at end of file diff --git a/web/pom.xml b/web/pom.xml index c9904d3e..bcb97bcf 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -13,6 +13,8 @@ jeesite-web war + Web 鏈嶅姟锛屼篃鍙负鍒嗙绔彁渚涙帴鍙f湇鍔 + JeeSite Web http://jeesite.com 2013-Now diff --git a/web/src/main/resources/config/application.yml b/web/src/main/resources/config/application.yml index a72f9843..c9f71700 100644 --- a/web/src/main/resources/config/application.yml +++ b/web/src/main/resources/config/application.yml @@ -14,7 +14,7 @@ copyrightYear: 2022 # 鏄惁婕旂ず妯″紡 demoMode: false -# 鏄惁 Api 妯″紡 +# 涓撲负鍒嗙绔彁渚涙帴鍙f湇鍔 apiMode: false #======================================#