diff --git a/.gitignore b/.gitignore
index 252d9b7f..28af7ee2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,16 @@
-.classpath
-.project
-.class
+*.class
**/target
**/webapp/userfiles
**/WEB-INF/classes
-**/logs/log*.log
\ No newline at end of file
+**/logs/log*.log
+
+.classpath
+.project
+
+.idea
+*.ipr
+*.iml
+*.iws
+
+.DS_Store
+Thumbs.db
\ No newline at end of file
diff --git a/README.md b/README.md
index 0bf8be5e..ad5e8e24 100644
--- a/README.md
+++ b/README.md
@@ -57,12 +57,12 @@ JeeSite 自开源以来已被广大爱好者用到了企业、政府、医疗、
# 技术交流方式
-* QQ 群: `127515876`、`209330483`、`223507718`
+* QQ 群: `127515876`、`209330483`、`223507718`
* 入群须知:目前为付费群,刚入群会有5分钟禁言,腾讯预设置的,无法解除,稍等片刻即可正常发言;由于群容量有限,为了维持运营千人QQ群的所需支付的QQ年费会员费用,故开启付费入群模式,申请者只需支付少量金额即可加入,这样也可以保证只有真实交流需求的人进入,避免闲杂做广告人员的乱入;新手提问前,请先阅读此[【文章】](http://www.dianbo.org/9238/stone/tiwendezhihui.htm)。
* 开源中国:
* GitHub:
* 作者博客:
-* 开源问答:
+* 问题反馈:
* 官方网站: 论坛:
# 关于授权协议声明
@@ -76,9 +76,15 @@ JeeSite 自开源以来已被广大爱好者用到了企业、政府、医疗、
7. 为了避免给您造成不必要的损失,请知晓:社区版最大允许10个用户同时登录,1万行数据。
8. 没有收入的开源软件不是好软件,请给我们一些动力吧,后面会推出**企业版**敬请期待。
-# Maven快照强制更新
+# 今后如何升级?
-Eclipse: 在web项目上右键,选择菜单 -> Maven -> Update Project...(或按Alt+F5) -> 点击 Select All 按钮 -> 选择 Force Update of Snapshots/Releases 复选框 -> 点击OK按钮即可
+尽量不修改web项目以外的项目,如jeesite-common、jeesite-modele-core,如果修改了,请尽量 Pull Requests 上来,否则代码编码将与官方不同步,将对你的日后升级带来困难。
+
+JeeSite的小版本(4.0.x)升级是非常便捷的,你只需要进行Maven快照强制更新,即可将最新版的依赖jar更新到本地,下面介绍一下在Eclipse里如何操作:
+
+在web项目上右键,选择菜单 -> Maven -> Update Project...(或按Alt+F5) -> 点击 Select All 按钮 -> 选择 Force Update of Snapshots/Releases 复选框 -> 点击OK按钮即可。
+
+如果进行相对大的版本(4.x.x)升级这里我们会附加一个声明,帮助你进行迁移操作。
# Git 全局设置技巧
diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx b/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx
index f96ffd65..6cf0e06d 100644
Binary files a/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx and b/modules/core/src/main/java/com/jeesite/modules/sys/db/InitCoreData.xlsx differ
diff --git a/modules/core/src/main/resources/config/jeesite-core.yml b/modules/core/src/main/resources/config/jeesite-core.yml
index d6694d1a..b2b91205 100644
--- a/modules/core/src/main/resources/config/jeesite-core.yml
+++ b/modules/core/src/main/resources/config/jeesite-core.yml
@@ -348,7 +348,7 @@ web:
# 系统主题名称,主题视图优先级最高,如果主题下无这个视图文件则访问默认视图
# 引入页面头部:'/themes/'+themeName+'/include/header.html'
- # 引入页面为不:'/themes/'+themeName+'/include/footer.html'
+ # 引入页面尾部:'/themes/'+themeName+'/include/footer.html'
themeName: default
# MVC 拦截器
diff --git a/web/bin/init-data.bat b/web/bin/init-data.bat
index d9528ef6..6bff8183 100644
--- a/web/bin/init-data.bat
+++ b/web/bin/init-data.bat
@@ -11,11 +11,23 @@ pause
echo.
echo [Ϣ] ˲ݱָʼ״̬
echo.
-echo [Ϣ] ȷϼ𣿷رմڡ
+echo [Ϣ] ȷϼ𣿷رմڡ5
echo.
pause
echo.
-echo [Ϣ] ȷϼ𣿷رմڡ
+echo [Ϣ] ȷϼ𣿷رմڡ4
+echo.
+pause
+echo.
+echo [Ϣ] ȷϼ𣿷رմڡ3
+echo.
+pause
+echo.
+echo [Ϣ] ȷϼ𣿷رմڡ2
+echo.
+pause
+echo.
+echo [Ϣ] ȷϼ𣿷رմڡ1
echo.
pause
echo.
diff --git a/web/db/mysql/core.sql b/web/db/mysql/core.sql
index 2438d1ba..36368f53 100644
--- a/web/db/mysql/core.sql
+++ b/web/db/mysql/core.sql
@@ -1,128 +1,5 @@
SET SESSION FOREIGN_KEY_CHECKS=0;
-/* Drop Indexes */
-
-DROP INDEX idx_sys_area_pc ON js_sys_area;
-DROP INDEX idx_sys_area_ts ON js_sys_area;
-DROP INDEX idx_sys_area_status ON js_sys_area;
-DROP INDEX idx_sys_area_pcs ON js_sys_area;
-DROP INDEX idx_sys_area_tss ON js_sys_area;
-DROP INDEX idx_sys_company_cc ON js_sys_company;
-DROP INDEX idx_sys_company_pc ON js_sys_company;
-DROP INDEX idx_sys_company_ts ON js_sys_company;
-DROP INDEX idx_sys_company_status ON js_sys_company;
-DROP INDEX idx_sys_company_vc ON js_sys_company;
-DROP INDEX idx_sys_company_pcs ON js_sys_company;
-DROP INDEX idx_sys_company_tss ON js_sys_company;
-DROP INDEX idx_sys_config_key ON js_sys_config;
-DROP INDEX idx_sys_dict_data_cc ON js_sys_dict_data;
-DROP INDEX idx_sys_dict_data_dt ON js_sys_dict_data;
-DROP INDEX idx_sys_dict_data_pc ON js_sys_dict_data;
-DROP INDEX idx_sys_dict_data_status ON js_sys_dict_data;
-DROP INDEX idx_sys_dict_data_pcs ON js_sys_dict_data;
-DROP INDEX idx_sys_dict_data_ts ON js_sys_dict_data;
-DROP INDEX idx_sys_dict_data_tss ON js_sys_dict_data;
-DROP INDEX idx_sys_dict_data_dv ON js_sys_dict_data;
-DROP INDEX idx_sys_dict_type_is ON js_sys_dict_type;
-DROP INDEX idx_sys_dict_type_status ON js_sys_dict_type;
-DROP INDEX idx_sys_employee_cco ON js_sys_employee;
-DROP INDEX idx_sys_employee_cc ON js_sys_employee;
-DROP INDEX idx_sys_employee_ud ON js_sys_employee;
-DROP INDEX idx_sys_employee_oc ON js_sys_employee;
-DROP INDEX idx_sys_employee_status ON js_sys_employee;
-DROP INDEX idx_sys_file_entity_md5 ON js_sys_file_entity;
-DROP INDEX idx_sys_file_entity_size ON js_sys_file_entity;
-DROP INDEX idx_sys_file_biz_ft ON js_sys_file_upload;
-DROP INDEX idx_sys_file_biz_fi ON js_sys_file_upload;
-DROP INDEX idx_sys_file_biz_status ON js_sys_file_upload;
-DROP INDEX idx_sys_file_biz_cb ON js_sys_file_upload;
-DROP INDEX idx_sys_file_biz_ud ON js_sys_file_upload;
-DROP INDEX idx_sys_file_biz_bt ON js_sys_file_upload;
-DROP INDEX idx_sys_file_biz_bk ON js_sys_file_upload;
-DROP INDEX idx_sys_job_status ON js_sys_job;
-DROP INDEX idx_sys_job_log_jn ON js_sys_job_log;
-DROP INDEX idx_sys_job_log_jg ON js_sys_job_log;
-DROP INDEX idx_sys_job_log_t ON js_sys_job_log;
-DROP INDEX idx_sys_job_log_e ON js_sys_job_log;
-DROP INDEX idx_sys_job_log_ie ON js_sys_job_log;
-DROP INDEX idx_sys_lang_code ON js_sys_lang;
-DROP INDEX idx_sys_lang_type ON js_sys_lang;
-DROP INDEX idx_sys_log_cd ON js_sys_log;
-DROP INDEX idx_sys_log_cc ON js_sys_log;
-DROP INDEX idx_sys_log_lt ON js_sys_log;
-DROP INDEX idx_sys_log_bk ON js_sys_log;
-DROP INDEX idx_sys_log_bt ON js_sys_log;
-DROP INDEX idx_sys_log_ie ON js_sys_log;
-DROP INDEX idx_sys_menu_pc ON js_sys_menu;
-DROP INDEX idx_sys_menu_ts ON js_sys_menu;
-DROP INDEX idx_sys_menu_status ON js_sys_menu;
-DROP INDEX idx_sys_menu_mt ON js_sys_menu;
-DROP INDEX idx_sys_menu_pss ON js_sys_menu;
-DROP INDEX idx_sys_menu_tss ON js_sys_menu;
-DROP INDEX idx_sys_menu_sc ON js_sys_menu;
-DROP INDEX idx_sys_menu_is ON js_sys_menu;
-DROP INDEX idx_sys_menu_mcs ON js_sys_menu;
-DROP INDEX idx_sys_module_status ON js_sys_module;
-DROP INDEX idx_sys_msg_inner_cb ON js_sys_msg_inner;
-DROP INDEX idx_sys_msg_inner_status ON js_sys_msg_inner;
-DROP INDEX idx_sys_msg_inner_cl ON js_sys_msg_inner;
-DROP INDEX idx_sys_msg_inner_sc ON js_sys_msg_inner;
-DROP INDEX idx_sys_msg_inner_sd ON js_sys_msg_inner;
-DROP INDEX idx_sys_msg_inner_r_mi ON js_sys_msg_inner_record;
-DROP INDEX idx_sys_msg_inner_r_rc ON js_sys_msg_inner_record;
-DROP INDEX idx_sys_msg_inner_r_ruc ON js_sys_msg_inner_record;
-DROP INDEX idx_sys_msg_inner_r_status ON js_sys_msg_inner_record;
-DROP INDEX idx_sys_msg_inner_r_star ON js_sys_msg_inner_record;
-DROP INDEX idx_sys_msg_push_type ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_push_rc ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_push_uc ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_push_suc ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_push_pd ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_push_ps ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_push_rs ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_push_bk ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_push_bt ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_push_imp ON js_sys_msg_push;
-DROP INDEX idx_sys_msg_pushw_type ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_pushw_rc ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_pushw_uc ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_pushw_suc ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_pushw_pd ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_pushw_ps ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_pushw_rs ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_pushw_bk ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_pushw_bt ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_pushw_imp ON js_sys_msg_push_wait;
-DROP INDEX idx_sys_msg_tpl_key ON js_sys_msg_template;
-DROP INDEX idx_sys_msg_tpl_type ON js_sys_msg_template;
-DROP INDEX idx_sys_msg_tpl_status ON js_sys_msg_template;
-DROP INDEX idx_sys_office_cc ON js_sys_office;
-DROP INDEX idx_sys_office_pc ON js_sys_office;
-DROP INDEX idx_sys_office_pcs ON js_sys_office;
-DROP INDEX idx_sys_office_status ON js_sys_office;
-DROP INDEX idx_sys_office_ot ON js_sys_office;
-DROP INDEX idx_sys_office_vc ON js_sys_office;
-DROP INDEX idx_sys_office_ts ON js_sys_office;
-DROP INDEX idx_sys_office_tss ON js_sys_office;
-DROP INDEX idx_sys_post_cc ON js_sys_post;
-DROP INDEX idx_sys_post_status ON js_sys_post;
-DROP INDEX idx_sys_post_ps ON js_sys_post;
-DROP INDEX idx_sys_role_cc ON js_sys_role;
-DROP INDEX idx_sys_role_is ON js_sys_role;
-DROP INDEX idx_sys_role_status ON js_sys_role;
-DROP INDEX idx_sys_role_rs ON js_sys_role;
-DROP INDEX idx_sys_user_lc ON js_sys_user;
-DROP INDEX idx_sys_user_email ON js_sys_user;
-DROP INDEX idx_sys_user_mobile ON js_sys_user;
-DROP INDEX idx_sys_user_wo ON js_sys_user;
-DROP INDEX idx_sys_user_imei ON js_sys_user;
-DROP INDEX idx_sys_user_rt ON js_sys_user;
-DROP INDEX idx_sys_user_rc ON js_sys_user;
-DROP INDEX idx_sys_user_mt ON js_sys_user;
-DROP INDEX idx_sys_user_us ON js_sys_user;
-DROP INDEX idx_sys_user_ud ON js_sys_user;
-DROP INDEX idx_sys_user_status ON js_sys_user;
-DROP INDEX idx_sys_user_cc ON js_sys_user;
diff --git a/web/db/mysql/gen.sql b/web/db/mysql/gen.sql
index 74d29b6f..2ae78e5b 100644
--- a/web/db/mysql/gen.sql
+++ b/web/db/mysql/gen.sql
@@ -1,10 +1,5 @@
SET SESSION FOREIGN_KEY_CHECKS=0;
-/* Drop Indexes */
-
-DROP INDEX idx_gen_table_ptn ON js_gen_table;
-DROP INDEX idx_gen_table_column_tn ON js_gen_table_column;
-
/* Drop Tables */
diff --git a/web/db/oracle/core.sql b/web/db/oracle/core.sql
index 7cf740c0..b8248a7e 100644
--- a/web/db/oracle/core.sql
+++ b/web/db/oracle/core.sql
@@ -1,128 +1,4 @@
-/* Drop Indexes */
-
-DROP INDEX idx_sys_area_pc;
-DROP INDEX idx_sys_area_ts;
-DROP INDEX idx_sys_area_status;
-DROP INDEX idx_sys_area_pcs;
-DROP INDEX idx_sys_area_tss;
-DROP INDEX idx_sys_company_cc;
-DROP INDEX idx_sys_company_pc;
-DROP INDEX idx_sys_company_ts;
-DROP INDEX idx_sys_company_status;
-DROP INDEX idx_sys_company_vc;
-DROP INDEX idx_sys_company_pcs;
-DROP INDEX idx_sys_company_tss;
-DROP INDEX idx_sys_config_key;
-DROP INDEX idx_sys_dict_data_cc;
-DROP INDEX idx_sys_dict_data_dt;
-DROP INDEX idx_sys_dict_data_pc;
-DROP INDEX idx_sys_dict_data_status;
-DROP INDEX idx_sys_dict_data_pcs;
-DROP INDEX idx_sys_dict_data_ts;
-DROP INDEX idx_sys_dict_data_tss;
-DROP INDEX idx_sys_dict_data_dv;
-DROP INDEX idx_sys_dict_type_is;
-DROP INDEX idx_sys_dict_type_status;
-DROP INDEX idx_sys_employee_cco;
-DROP INDEX idx_sys_employee_cc;
-DROP INDEX idx_sys_employee_ud;
-DROP INDEX idx_sys_employee_oc;
-DROP INDEX idx_sys_employee_status;
-DROP INDEX idx_sys_file_entity_md5;
-DROP INDEX idx_sys_file_entity_size;
-DROP INDEX idx_sys_file_biz_ft;
-DROP INDEX idx_sys_file_biz_fi;
-DROP INDEX idx_sys_file_biz_status;
-DROP INDEX idx_sys_file_biz_cb;
-DROP INDEX idx_sys_file_biz_ud;
-DROP INDEX idx_sys_file_biz_bt;
-DROP INDEX idx_sys_file_biz_bk;
-DROP INDEX idx_sys_job_status;
-DROP INDEX idx_sys_job_log_jn;
-DROP INDEX idx_sys_job_log_jg;
-DROP INDEX idx_sys_job_log_t;
-DROP INDEX idx_sys_job_log_e;
-DROP INDEX idx_sys_job_log_ie;
-DROP INDEX idx_sys_lang_code;
-DROP INDEX idx_sys_lang_type;
-DROP INDEX idx_sys_log_cd;
-DROP INDEX idx_sys_log_cc;
-DROP INDEX idx_sys_log_lt;
-DROP INDEX idx_sys_log_bk;
-DROP INDEX idx_sys_log_bt;
-DROP INDEX idx_sys_log_ie;
-DROP INDEX idx_sys_menu_pc;
-DROP INDEX idx_sys_menu_ts;
-DROP INDEX idx_sys_menu_status;
-DROP INDEX idx_sys_menu_mt;
-DROP INDEX idx_sys_menu_pss;
-DROP INDEX idx_sys_menu_tss;
-DROP INDEX idx_sys_menu_sc;
-DROP INDEX idx_sys_menu_is;
-DROP INDEX idx_sys_menu_mcs;
-DROP INDEX idx_sys_module_status;
-DROP INDEX idx_sys_msg_inner_cb;
-DROP INDEX idx_sys_msg_inner_status;
-DROP INDEX idx_sys_msg_inner_cl;
-DROP INDEX idx_sys_msg_inner_sc;
-DROP INDEX idx_sys_msg_inner_sd;
-DROP INDEX idx_sys_msg_inner_r_mi;
-DROP INDEX idx_sys_msg_inner_r_rc;
-DROP INDEX idx_sys_msg_inner_r_ruc;
-DROP INDEX idx_sys_msg_inner_r_status;
-DROP INDEX idx_sys_msg_inner_r_star;
-DROP INDEX idx_sys_msg_push_type;
-DROP INDEX idx_sys_msg_push_rc;
-DROP INDEX idx_sys_msg_push_uc;
-DROP INDEX idx_sys_msg_push_suc;
-DROP INDEX idx_sys_msg_push_pd;
-DROP INDEX idx_sys_msg_push_ps;
-DROP INDEX idx_sys_msg_push_rs;
-DROP INDEX idx_sys_msg_push_bk;
-DROP INDEX idx_sys_msg_push_bt;
-DROP INDEX idx_sys_msg_push_imp;
-DROP INDEX idx_sys_msg_pushw_type;
-DROP INDEX idx_sys_msg_pushw_rc;
-DROP INDEX idx_sys_msg_pushw_uc;
-DROP INDEX idx_sys_msg_pushw_suc;
-DROP INDEX idx_sys_msg_pushw_pd;
-DROP INDEX idx_sys_msg_pushw_ps;
-DROP INDEX idx_sys_msg_pushw_rs;
-DROP INDEX idx_sys_msg_pushw_bk;
-DROP INDEX idx_sys_msg_pushw_bt;
-DROP INDEX idx_sys_msg_pushw_imp;
-DROP INDEX idx_sys_msg_tpl_key;
-DROP INDEX idx_sys_msg_tpl_type;
-DROP INDEX idx_sys_msg_tpl_status;
-DROP INDEX idx_sys_office_cc;
-DROP INDEX idx_sys_office_pc;
-DROP INDEX idx_sys_office_pcs;
-DROP INDEX idx_sys_office_status;
-DROP INDEX idx_sys_office_ot;
-DROP INDEX idx_sys_office_vc;
-DROP INDEX idx_sys_office_ts;
-DROP INDEX idx_sys_office_tss;
-DROP INDEX idx_sys_post_cc;
-DROP INDEX idx_sys_post_status;
-DROP INDEX idx_sys_post_ps;
-DROP INDEX idx_sys_role_cc;
-DROP INDEX idx_sys_role_is;
-DROP INDEX idx_sys_role_status;
-DROP INDEX idx_sys_role_rs;
-DROP INDEX idx_sys_user_lc;
-DROP INDEX idx_sys_user_email;
-DROP INDEX idx_sys_user_mobile;
-DROP INDEX idx_sys_user_wo;
-DROP INDEX idx_sys_user_imei;
-DROP INDEX idx_sys_user_rt;
-DROP INDEX idx_sys_user_rc;
-DROP INDEX idx_sys_user_mt;
-DROP INDEX idx_sys_user_us;
-DROP INDEX idx_sys_user_ud;
-DROP INDEX idx_sys_user_status;
-DROP INDEX idx_sys_user_cc;
-
/* Drop Tables */
diff --git a/web/db/oracle/gen.sql b/web/db/oracle/gen.sql
index c3d18ad0..8eea2996 100644
--- a/web/db/oracle/gen.sql
+++ b/web/db/oracle/gen.sql
@@ -1,9 +1,4 @@
-/* Drop Indexes */
-
-DROP INDEX idx_gen_table_ptn;
-DROP INDEX idx_gen_table_column_tn;
-
/* Drop Tables */