Compare commits

..

320 Commits

Author SHA1 Message Date
thinkgem
9d2a250d72 5.9.0 2024-09-18 09:45:20 +08:00
thinkgem
f0cc98e45b 增加 gen.simpleRequestMapping 默认参数 true 可简洁 url 地址 2024-09-18 09:08:41 +08:00
thinkgem
a8fbf4d2b1 fix 代码生成业务列表选择框i18n路径 2024-09-18 09:07:55 +08:00
thinkgem
2013201f06 数据源管理:新增连接等待时间、连接失败中断默认参数;新增集群支持,单机修改后自动同步到集群其它节点 2024-09-16 22:22:40 +08:00
thinkgem
425c74fab4 update README.md 2024-09-14 13:06:00 +08:00
thinkgem
b9fc0a9f86 update 2024-09-14 12:55:17 +08:00
thinkgem
ca256c1364 update 2024-09-14 12:54:35 +08:00
thinkgem
c484e19448 小屏幕下的菜单按钮布局优化 2024-09-13 10:47:33 +08:00
thinkgem
9275260019 默认显示列表搜索框 2024-09-13 10:46:31 +08:00
thinkgem
9a671d8dfd 默认显示列表搜索框 2024-09-13 10:46:24 +08:00
thinkgem
7b537b4c83 默认显示列表搜索框 2024-09-13 10:46:02 +08:00
thinkgem
223d05b8c1 默认显示列表搜索框 2024-09-13 10:45:55 +08:00
thinkgem
4ca8398f99 new version 2024-09-12 10:13:25 +08:00
thinkgem
cfc8681174 子表增加表单验证提示、代码格式化 2024-09-11 10:15:31 +08:00
thinkgem
9c5bfd9c59 update README.md 2024-08-29 16:23:08 +08:00
thinkgem
3f87f2a024 优化导入 2024-08-29 13:12:17 +08:00
thinkgem
c3a25b98ec update 2024-08-29 10:31:06 +08:00
thinkgem
5c09e3de51 新增支持 Vue 地址路由参数,使用 {param1} 自动替换为 :param1,用法详见 params.vue 2024-08-28 15:09:15 +08:00
thinkgem
91e08cf4df 新增导出Excel数据按钮loading状态 2024-08-27 14:40:41 +08:00
thinkgem
14a38abb6d update 2024-08-26 21:42:57 +08:00
thinkgem
99c778c92d update README.md 2024-08-22 17:40:54 +08:00
thinkgem
e51dd7c73c 优化流程表单模板,支持从表单进入显示审批意见框 2024-08-16 18:44:05 +08:00
thinkgem
67891ce361 update 2024-08-16 16:01:44 +08:00
thinkgem
25a192cd6a update 2024-08-15 19:59:47 +08:00
thinkgem
444463ed5e Merge branch 'refs/heads/v5.temp' into v5.8 2024-08-12 20:06:00 +08:00
thinkgem
77aeb4ac4f 5.8.1 2024-08-12 11:17:15 +08:00
thinkgem
2b122eecd5 优化查询的更多按钮,显示一个双箭头,增加动画效果 2024-08-12 10:21:41 +08:00
thinkgem
6ad196d82d 添加版本提示 2024-08-09 14:18:57 +08:00
thinkgem
b002592f4e 将账号+手机验证码登录,替换为手机号+验证码登录;当一个手机号绑定多个账号的时候,可以让用户选择登录的账号进行登录;新增userService.findListByMobile接口 2024-08-02 20:02:09 +08:00
thinkgem
3f6d1593b6 Excel导入导出支持ExcelFields注解添加到类上 2024-07-28 13:24:14 +08:00
thinkgem
db5f195fff 开放所有系统Controller给您足够的自定义空间 2024-07-26 11:20:50 +08:00
thinkgem
1c539f3796 代码优化 2024-07-26 11:04:34 +08:00
thinkgem
75e5e2765c 添加 webp 格式 2024-07-25 11:53:21 +08:00
thinkgem
fcf5d8a04c 代码优化 2024-07-25 11:36:22 +08:00
thinkgem
9f0d45cad9 新增 web.isDefaultResult 参数,默认全局进行接口结果包装为 { code: 200, msg: "", data: {} | [] };新增 web.resultParamName 和 headerParamName 参数,对个别结果进行包装 2024-07-24 14:59:19 +08:00
thinkgem
28ec083c26 update README.md 2024-07-24 14:54:42 +08:00
thinkgem
4c2d645b0a 新增 SM2Utils、SM3Utils、SM4Utils 国密算法工具类及测试类 2024-07-23 19:44:20 +08:00
thinkgem
eb94eba608 新增 encrypt.defaultKey 参数,适用于 Aes、M3 加密的默认秘钥;新增 encrypt.storeBase64 参数,是否将 Hex 编码改为 Base64 编码存储;新增 encrypt.smAlgorithm 参数,是否使用国密 SM 算法(一键替换 SHA-1 替换为 SM3、AES 替换为 SM4 算法) 2024-07-23 19:43:14 +08:00
thinkgem
bd5d543bf5 新增 encrypt.smAlgorithm 参数,是否使用国密 SM 算法(一键替换 SHA-1 替换为 SM3、AES 替换为 SM4 算法) 2024-07-23 19:42:29 +08:00
thinkgem
739f2d58b7 新增 EncryptTypeHandler、SM4TypeHandler 加密 MyBatis Handler 2024-07-23 19:39:49 +08:00
thinkgem
d62dc0310a 新增 encrypt.defaultKey 参数,适用于 Aes、M3 加密的默认秘钥;新增 encrypt.storeBase64 参数,是否将 Hex 编码改为 Base64 编码存储 2024-07-23 19:39:26 +08:00
thinkgem
f4456ec359 优化 加密算法工具类,增加测试类。 2024-07-23 19:37:47 +08:00
thinkgem
8cdd2fd99c 添加 bcprov 算法类库 2024-07-23 19:37:19 +08:00
thinkgem
7e3a55a578 open beetl <#form:xxx 控件 2024-07-22 15:42:51 +08:00
thinkgem
7ce1f84866 open beetl functions form 2024-07-22 15:39:44 +08:00
thinkgem
ccc3ea6894 open beetl functions menu 2024-07-22 15:39:33 +08:00
thinkgem
b5c100f9a6 open views upgrade.html 2024-07-22 15:38:54 +08:00
thinkgem
cf151678a9 open views tagsview/form 2024-07-22 15:38:28 +08:00
thinkgem
2ba4d16ef1 open views modules/sys 2024-07-22 15:38:06 +08:00
thinkgem
dfbc3284b4 webuploader move to static 2024-07-21 20:27:22 +08:00
thinkgem
9317d0e6bb wdScrollTab move to static 2024-07-21 20:26:48 +08:00
thinkgem
474fee2943 ueditor move to static 2024-07-21 18:33:57 +08:00
thinkgem
5d1fe5236a sys js and css move to static 2024-07-21 18:33:37 +08:00
thinkgem
808175d835 jquery-validation move to static 2024-07-21 18:32:37 +08:00
thinkgem
3ba3aa2b2b jquery-toastr move to static 2024-07-21 18:32:18 +08:00
thinkgem
aba56f7aa2 jquery-timeago move to static 2024-07-21 18:31:51 +08:00
thinkgem
648199245a jquery plugins move to static 2024-07-21 18:30:40 +08:00
thinkgem
893292ed20 jqGrid move to static 2024-07-21 18:28:22 +08:00
thinkgem
68a26fa727 images move to static 2024-07-21 18:17:15 +08:00
thinkgem
d0a2cbfa58 fullcalendar move to static 2024-07-21 18:16:58 +08:00
thinkgem
dffd48c454 echarts move to static 2024-07-21 18:16:43 +08:00
thinkgem
92c41f0cb5 cropper move to static 2024-07-21 18:15:46 +08:00
thinkgem
8e3992767c commonjs move to static 2024-07-21 18:15:23 +08:00
thinkgem
e3c2bb82fd colorpicker move to static 2024-07-21 18:14:53 +08:00
thinkgem
3924575550 ckplayer move to static 2024-07-21 18:10:26 +08:00
thinkgem
826698a809 ace-editor move to static 2024-07-21 18:10:04 +08:00
thinkgem
a0fa0281fa add static module 2024-07-21 17:55:49 +08:00
thinkgem
53bea929c1 add upbw page 2024-07-21 17:46:03 +08:00
thinkgem
2922d90dd9 add jquery layout 2024-07-21 17:45:29 +08:00
thinkgem
0ec8e0b89a add cascadeSelect js 2024-07-21 17:44:35 +08:00
thinkgem
184e7ad554 新增 PwdService 服务类方便自定义重写密码相关实现 2024-07-21 17:43:21 +08:00
thinkgem
49e669c47e 新增cas经典协议兼容模块 2024-07-21 17:42:51 +08:00
thinkgem
4469aad2c8 new version 2024-07-19 08:54:05 +08:00
thinkgem
18831ab95d 增加Excel导入导出测试类,增加模板导出。 2024-07-18 15:52:28 +08:00
thinkgem
bddf67e726 update README.md. 2024-07-17 08:59:09 +08:00
thinkgem
01779973e5 add ckplayer 2024-07-17 08:59:03 +08:00
卓源软件
97ebfe40be update README.md.
Signed-off-by: 卓源软件 <thinkgem@163.com>
2024-07-17 00:14:18 +00:00
thinkgem
4e249c116c 修复UEditor上传视频的首图不显示的问题 2024-07-11 10:22:51 +08:00
thinkgem
d909a2527a update 2024-07-11 09:47:21 +08:00
thinkgem
32a7e1a5f8 format pom.xml 2024-07-07 19:10:28 +08:00
thinkgem
e5d217f5b2 poi version 2024-07-07 12:21:30 +08:00
thinkgem
72b030bcc1 Merge poi version 2024-07-07 12:20:42 +08:00
thinkgem
090b2cd3fc 将 test 独立出模块,方便代码管理 2024-07-06 22:22:06 +08:00
thinkgem
9b4b4affa0 使用 __url 参数统一管理成功跳转地址 2024-07-06 10:23:10 +08:00
thinkgem
09d2af2491 update 2024-07-04 19:23:08 +08:00
thinkgem
e279700113 新增附属部门切换接口,方便获取当前默认部门 2024-07-04 16:45:07 +08:00
thinkgem
b36bdbdd48 5.8.0 2024-07-03 12:53:22 +08:00
thinkgem
02d0992694 5.8.0 2024-07-01 18:51:53 +08:00
thinkgem
75b66fbc29 匿名类添加过滤器名称,防止被重名覆盖 2024-07-01 18:39:08 +08:00
thinkgem
51ea1cebb3 update 2024-07-01 18:37:40 +08:00
thinkgem
f7fc2ff8ad 5.8.0 2024-06-26 11:22:23 +08:00
thinkgem
f8f8469c3a mybatis 3.5.15、jsqlparser 4.7、tools... 2024-06-25 21:48:48 +08:00
thinkgem
50136e09a2 update 2024-06-25 18:34:59 +08:00
thinkgem
66d7ec04dc uploadPath参数增加变量corpCode、userCode、userType、userCache中的key 2024-06-24 11:32:31 +08:00
thinkgem
e714923b47 update sso api success url 2024-06-22 09:06:09 +08:00
thinkgem
456eb9644b 当没有传递参数类型并有方法重载时,需优先获取无参数的方法名 2024-06-20 17:56:37 +08:00
thinkgem
46e0ee7717 更新CMS全文搜索模块安装提示 2024-06-03 10:58:13 +08:00
thinkgem
67041873fc 消息查看增加空值校验 2024-06-03 10:56:53 +08:00
thinkgem
2d298a6fc7 next 2024-05-28 15:03:01 +08:00
thinkgem
d3de1eb957 增加ctxPath参数,当映射根路径不同的时候使用 2024-05-28 14:39:15 +08:00
thinkgem
5c09f28266 update 2024-05-27 15:30:06 +08:00
thinkgem
15947015f8 add dbm module 2024-05-27 15:28:39 +08:00
thinkgem
d46ee0c359 file.uploadPath 增加 {bizType} 变量 2024-05-27 15:24:18 +08:00
thinkgem
11c8c3e0f7 update 2024-05-23 08:51:33 +08:00
thinkgem
afdbef4f26 get cookie add xss 2024-05-20 10:29:34 +08:00
thinkgem
541656c60a 大文件下载 2024-05-17 12:30:56 +08:00
thinkgem
68cfc664ec gen template type fix 2024-05-14 22:26:20 +08:00
thinkgem
ad423b4b9b update README.md 2024-05-14 19:18:28 +08:00
thinkgem
4c9ca4d932 update README.md 2024-05-14 18:47:42 +08:00
thinkgem
d6237f719b 5.7.1 2024-05-13 10:13:08 +08:00
thinkgem
3cd5b2379d 代码优化 2024-05-11 15:28:31 +08:00
thinkgem
ad292502a9 skinName add xssFilter 2024-05-11 15:28:01 +08:00
thinkgem
1ac8085c8c biz_category 2024-05-11 14:24:09 +08:00
thinkgem
df5e557f21 MsgInnerService抽离接口 2024-05-11 14:23:04 +08:00
thinkgem
0484e1f64d 调整配置文件目录 2024-05-11 13:43:39 +08:00
thinkgem
6ac8a82718 update README.md 2024-05-10 22:52:25 +08:00
thinkgem
163a387099 update 2024-05-10 17:41:59 +08:00
thinkgem
7b84892389 update 2024-05-08 16:47:27 +08:00
thinkgem
0d4701c8cc h2数据表增加备注信息 2024-05-08 15:16:16 +08:00
thinkgem
563571ae53 添加达梦和金仓数据库的驱动注释 2024-05-07 13:58:15 +08:00
thinkgem
4575e6c211 字典值dict_value字段存储加长 2024-05-07 13:42:45 +08:00
thinkgem
49464e8bca update 2024-05-07 13:41:28 +08:00
thinkgem
9ccfd534d0 bootstrap css 3.4.1 2024-05-07 13:40:52 +08:00
thinkgem
e68f96f3d6 update 2024-05-02 21:16:56 +08:00
thinkgem
07ba80ec4b update yml help 2024-04-30 17:57:20 +08:00
thinkgem
3671148f56 重命名一些CMS模块字段名,避免有些数据库关键字问题 2024-04-29 14:58:52 +08:00
thinkgem
6e56e515ae 新增业务分类功能维护,作为通用业务分类,替换流程分类 2024-04-27 18:08:56 +08:00
thinkgem
e6257a98c1 add dbm 2024-04-27 11:27:42 +08:00
thinkgem
6a7817137a update 2024-04-27 10:26:44 +08:00
thinkgem
b32ffa3b6a update 2024-04-26 16:14:29 +08:00
thinkgem
95ec1770df 美化表单的子标题缩进一些及其它细节 2024-04-26 08:28:39 +08:00
thinkgem
9573da0309 添加 IdGen.randomShortString() 方法 2024-04-25 23:31:11 +08:00
thinkgem
aedd50c8c2 update 2024-04-25 23:30:32 +08:00
thinkgem
d8d8902e71 修改前后差异数据表格展示表格美化 2024-04-23 15:39:00 +08:00
thinkgem
b4ffcf6f47 update 2024-04-23 15:37:26 +08:00
thinkgem
e3851a1066 bpm:comment 组件增加 showCommWords 参数 2024-04-22 20:54:05 +08:00
thinkgem
47c88e5c6d update 2024-04-21 19:54:25 +08:00
thinkgem
05641a271e 后端验证提示信息优化 2024-04-21 19:53:27 +08:00
thinkgem
657f22da98 前后差异日志分析,排除@id的属性展示,展示界面美化 2024-04-21 19:52:26 +08:00
thinkgem
03ad0954e2 提高日志标题生成的准确率 2024-04-21 19:50:02 +08:00
thinkgem
992e3c0cb7 样式细节优化 2024-04-19 19:04:19 +08:00
thinkgem
c62f575d10 后面显示编号的,去掉括号前的空格 2024-04-19 19:03:45 +08:00
thinkgem
db5778a833 update 排除 char 2024-04-19 19:03:05 +08:00
thinkgem
396e506936 新增一些便捷方法,如果有设定属性值再使用 2024-04-18 21:56:09 +08:00
thinkgem
2029cfc65a 新增能接受异常的 Function 2024-04-18 21:54:24 +08:00
thinkgem
8de5edc40e 增加 连接池 查询超时时间、事务超时时间 参数 2024-04-18 21:46:18 +08:00
thinkgem
37a74e7168 标题子标题优化 2024-04-18 21:22:12 +08:00
thinkgem
29345f8873 validation abc 验证增加字母验证要求 2024-04-18 21:21:00 +08:00
thinkgem
e9da7f1926 liquibase 4.20.0 2024-04-17 12:18:53 +08:00
thinkgem
5cd3b507e4 代码优化 2024-04-17 10:27:15 +08:00
thinkgem
533473b315 update format 2024-04-17 09:05:48 +08:00
thinkgem
9eab7217cc fix crud_cloud_select_vue 2024-04-15 11:15:54 +08:00
thinkgem
553a0d652a 样式美化 2024-04-12 18:02:13 +08:00
thinkgem
4bc6d9e498 公司部门岗位增加代码模糊查询 2024-04-11 15:55:41 +08:00
thinkgem
f1e7e5b8ee update 2024-04-11 15:54:59 +08:00
thinkgem
b99fcbad06 update 2024-04-10 14:16:43 +08:00
thinkgem
d9b626e925 更新apiMode提示 2024-04-09 14:46:47 +08:00
thinkgem
0106d47779 data-params to data-url-params 2024-04-09 08:53:16 +08:00
thinkgem
30e4839da1 自动排序号优化 2024-04-08 10:23:53 +08:00
thinkgem
73d910ad13 update 2024-04-08 10:09:11 +08:00
thinkgem
a407593fc0 new version 2024-04-07 09:26:19 +08:00
thinkgem
c3c377ba94 add testResource config 2024-04-05 16:54:14 +08:00
thinkgem
f130af6d7a 仅侧边栏时加 first-open 2024-04-05 16:53:10 +08:00
thinkgem
ef4d06ff2e update README.md 2024-04-01 12:03:00 +08:00
thinkgem
24d51e416e web-fast 默认使用 vue 前端展示 2024-04-01 12:02:36 +08:00
thinkgem
ed836c2f6a update PageNotFound log level 2024-04-01 11:57:44 +08:00
thinkgem
529d2b8192 代码优化 2024-04-01 11:52:46 +08:00
thinkgem
9c0885b4c9 增加msgview初始菜单地址 2024-04-01 11:52:20 +08:00
thinkgem
7ccbb05b7b 代码优化 2024-04-01 11:51:19 +08:00
thinkgem
53af15f85d 5.7.0 2024-03-28 14:15:33 +08:00
thinkgem
21b15f16e3 更新建表语句 2024-03-28 14:14:34 +08:00
thinkgem
8176853791 vue icon add prefix i- 2024-03-27 11:12:14 +08:00
thinkgem
a56e29d8f7 update import 2024-03-27 11:11:36 +08:00
thinkgem
081505f79c update import 2024-03-26 19:27:48 +08:00
thinkgem
a6adfbc726 新增IP地址黑白名单过滤器及参数配置 2024-03-25 13:57:03 +08:00
thinkgem
e883de354f 更新注释提示 2024-03-25 13:52:46 +08:00
thinkgem
f4909921ac update fonts 2024-03-22 21:45:17 +08:00
thinkgem
0eb09a0dbb 增加根据用户编码查询岗位列表接口 2024-03-22 14:43:02 +08:00
thinkgem
a58a2dcda2 侧边栏增加是否展开第一个菜单开关 2024-03-22 14:42:26 +08:00
thinkgem
1318ce840c format code 2024-03-22 14:40:54 +08:00
thinkgem
0a771a7008 EmployeePostDao 增加根据用户编码查询岗位 sqlMap().loadJoinTableAlias("p,u") 的时候有效 2024-03-22 14:40:15 +08:00
thinkgem
2ea481a417 模块管理增加生成模块的基础路径和模板存储字段,生成模块代码时给于确认提示;微服务下isLoader为true; 2024-03-22 09:16:33 +08:00
thinkgem
07d3eef8ab 修正代码生成模板logback-spring-elk和prod.xml文件名 2024-03-22 09:15:51 +08:00
thinkgem
f3c4a0dbe9 add getPageList(List<T> list, int pageNo, int pageSize) 2024-03-21 15:46:14 +08:00
thinkgem
8f14549fee 分离端调用login和index接口时,同时返回cookie。特殊情况下的iframe的页面会话同步 2024-03-20 14:05:38 +08:00
thinkgem
bccecc8b39 update productVersion 2024-03-20 09:39:05 +08:00
thinkgem
4a8bad7d35 返回响应头增加x-token,通过记住我登录系统时使用。 2024-03-13 13:34:17 +08:00
thinkgem
8ef29563f5 演示模式不允许清理会话和缓存 2024-03-13 13:29:02 +08:00
thinkgem
87b8dc6ec4 返回响应头增加x-token,通过记住我登录系统时使用。 2024-03-13 13:18:36 +08:00
thinkgem
b1f29a9d57 代码生成器config.xml的attrType字典增加attrName,用于选择控件编码和名称获取 2024-03-13 11:35:16 +08:00
thinkgem
33eb95f120 登录超时后不再统计在线人数 2024-03-12 13:20:44 +08:00
thinkgem
4bfe7b2316 缩短Logback日志TRACE_ID的长度 2024-03-12 12:24:24 +08:00
thinkgem
b0350b36d7 完善内部消息保存后的提示消息 2024-03-12 12:23:39 +08:00
thinkgem
9f16332c09 代码生成模板添加公司选择组件v2 2024-03-11 21:24:20 +08:00
thinkgem
419ed4f01b 新增 AesTypeHandler 处理字段数据加密解密或脱敏;新增 JsonTypeHandler 处理字段数据进行 JSON 字符串与 Java 对象 自动互转 2024-03-11 17:02:40 +08:00
thinkgem
69cd032b7e 代码优化 2024-03-11 17:01:20 +08:00
thinkgem
c0aeef4881 代码生成模板添加公司选择组件 2024-03-10 10:44:00 +08:00
thinkgem
e7c6e7e85b add vueFormRoute.xml 2024-03-10 10:42:17 +08:00
thinkgem
7f06df2bed 根据当前用户有的子系统,切换到默认系统下 2024-03-08 13:29:42 +08:00
thinkgem
250788a398 update nacos config 2024-03-04 11:50:43 +08:00
thinkgem
196cf4f10c 更新Docker多CPU平台架构 2024-02-28 10:35:36 +08:00
thinkgem
3b587c661b fix h2db job sql 2024-02-28 10:07:14 +08:00
thinkgem
7eb9484d7e TimeUtils millisecond to ms 2024-02-27 11:30:41 +08:00
thinkgem
c610af7c6b 分页栏居右、布局调整、样式美化 2024-02-23 14:16:28 +08:00
thinkgem
0c7cefb184 next version 2024-02-23 14:05:06 +08:00
thinkgem
19d2399eb2 5.6.1 2024-02-18 16:01:14 +08:00
thinkgem
37b0a120c9 1、修改默认值,oracle 下默认不启用 maxPoolPreparedStatementPerConnectionSize 可根据需要开启;2、将 com.oracle.ojdbc 驱动替换为 com.oracle.database.jdbc 驱动;3、默认将 jtds 驱动替换为 sqlserver 驱动; 2024-02-02 14:03:11 +08:00
thinkgem
5fb6ab0ca6 ueditor黑暗模式下的文字 2024-01-31 12:04:34 +08:00
thinkgem
2ba8b953d3 更新路由表单组件 2024-01-30 16:53:39 +08:00
thinkgem
738fd5c552 form:fileupload组件默认加dataMap属性 2024-01-30 11:40:29 +08:00
thinkgem
745f6e88c0 新增 js.ajaxSubmitForm支持application/json提交表单;新增 js.ajaxSubmitJson 方法 2024-01-30 11:38:39 +08:00
thinkgem
3db837d6d6 代码优化 2024-01-26 14:43:03 +08:00
thinkgem
14054a964f ts type check 2024-01-23 17:53:07 +08:00
thinkgem
14581655d2 code format 2024-01-17 16:17:09 +08:00
thinkgem
f162584d1e 代码优化,方便自定义内嵌的Web服务 2024-01-15 13:44:39 +08:00
thinkgem
e57e8127b5 报表增加请求参数的例子 2024-01-10 13:08:17 +08:00
thinkgem
b7d4efa6a6 update 2024-01-10 13:04:34 +08:00
thinkgem
91a4db4eb8 增加vue无框架页面的组件类型 2024-01-09 16:42:53 +08:00
thinkgem
7ed84e48cf 存储Key增加了默认,个性化时再指定 2024-01-08 15:25:41 +08:00
thinkgem
f068bd9c90 update version 2024-01-08 10:39:18 +08:00
thinkgem
4ae907a023 update 2024-01-05 20:49:46 +08:00
thinkgem
652a242c2b 5.6.0 2024-01-04 12:06:16 +08:00
thinkgem
d242408de2 5.6.0 2024-01-03 16:58:35 +08:00
thinkgem
b8f51011ed 配置类 ShiroConfig 改为 ShiroAutoConfiguration 方便覆写 2024-01-03 08:53:55 +08:00
thinkgem
84913ab783 分号修正 2024-01-03 08:24:38 +08:00
thinkgem
b7bb765193 update 2024 2024-01-02 10:24:19 +08:00
thinkgem
d1b06c45c8 add ConditionalOnMissingBean 2024-01-02 10:23:37 +08:00
thinkgem
19fe2023a6 update 2024-01-02 10:22:57 +08:00
thinkgem
590046d90c select2 i18n fix 2023-12-29 10:56:03 +08:00
thinkgem
00c162ece1 代码优化提示 2023-12-28 09:33:20 +08:00
thinkgem
d5deb38769 优化在线用户列表数值类型的排序 2023-12-27 10:47:44 +08:00
thinkgem
b71165f73c 代码生成模板:新增Vue路由表单、新增Vue弹窗表单、新增仅后端模板 2023-12-24 21:36:09 +08:00
thinkgem
4260accf88 不设置adminPath的时候需要增加oauth2的地址认证排除 2023-12-23 23:01:37 +08:00
thinkgem
353131ab2c 用户管理增加解冻用户功能提示 2023-12-23 23:00:30 +08:00
thinkgem
acb6baa226 细节优化 2023-12-23 22:59:38 +08:00
thinkgem
5b7f7b0860 spring boot 2.7.18、jackson 2.16.0、fastjson 2.0.43、mybatis 3.5.14、shiro 1.13.0 2023-12-13 21:37:09 +08:00
thinkgem
c57238e279 spring.data.elasticsearch.enabled to spring.elasticsearch.enabled 2023-12-13 21:06:42 +08:00
thinkgem
24ea4aaed0 增加一些vue下用的路由 2023-12-12 09:42:56 +08:00
thinkgem
0af1ae18c8 update 2023-12-12 09:41:38 +08:00
thinkgem
e054df919f BpmButton.vue将提交审批信息移动到提交对话框中 2023-12-07 17:20:30 +08:00
thinkgem
a9ca557672 update 2023-12-05 16:30:31 +08:00
thinkgem
5bc76dd23d update 2023-12-05 16:12:42 +08:00
thinkgem
f337faeecc 代码优化 2023-12-03 15:55:22 +08:00
thinkgem
a6d84c59c9 vue兼容优化 2023-12-01 10:40:54 +08:00
thinkgem
b8279ffe64 优化修改密码后的操作 2023-11-28 16:15:16 +08:00
thinkgem
af44331820 优化vue生成模板 2023-11-28 15:46:05 +08:00
thinkgem
00ead34076 BasicTable子表加TextArea组件 2023-11-27 12:23:54 +08:00
thinkgem
9b07e167f7 树表的局部刷新改进,删除、停用、启用、修改父节点的情况下完美体验 2023-11-27 10:11:56 +08:00
thinkgem
0fb15e31d6 next 2023-11-27 09:06:15 +08:00
thinkgem
3e769325f8 Layer弹窗后首先关闭获取焦点,防止回车弹出多个 2023-11-22 11:14:08 +08:00
thinkgem
d555d508c3 5.5.2 2023-11-21 21:47:55 +08:00
thinkgem
11511c14bd 更新h2的库名 2023-11-20 16:01:08 +08:00
thinkgem
2238ca062f 添加自动切换到脚本所在目录 2023-11-20 15:43:41 +08:00
thinkgem
3563f18335 更新docker运行脚本帮助 2023-11-20 15:16:26 +08:00
thinkgem
983ad2faff add db docs xlsx png 2023-11-17 11:17:35 +08:00
thinkgem
f569da908d 增加quartz表ER图和注释 2023-11-16 11:57:02 +08:00
thinkgem
2e0718ba41 增加vue的ListSelect选择框代码生成模板 2023-11-09 11:31:31 +08:00
thinkgem
846bf82375 Byte格式化默认显示两位小数 2023-11-08 11:46:51 +08:00
thinkgem
8cc6f25dd1 添加jdbc.connectTimeou和jdbc.socketTimeout连接池参数 2023-10-30 08:44:44 +08:00
thinkgem
5ff9ca9815 update version 2023-10-26 11:38:15 +08:00
thinkgem
31e6b01b4e 新增一个日志清理接口,可根据需要创建job调用 2023-10-26 11:27:50 +08:00
thinkgem
bc8a6d2db7 新增富文本和头像的对象存储调用 2023-10-23 10:57:27 +08:00
thinkgem
9a13b33dd8 查询和重置增加图标、搜索框布局优化 2023-10-23 10:55:34 +08:00
thinkgem
4bdba535bb 5.5.1 2023-10-16 21:43:00 +08:00
thinkgem
09bf40feee update README.md 2023-10-16 20:06:08 +08:00
thinkgem
5d74d2783f update README.md 2023-10-16 07:00:46 +08:00
thinkgem
807b47dbc4 docker update 2023-10-12 14:50:32 +08:00
thinkgem
456cdaf883 Merge remote-tracking branch 'origin/v5.temp' into v5.temp 2023-10-07 17:14:35 +08:00
thinkgem
d1b588b7d5 spring boot 2.7.16 2023-10-07 15:05:45 +08:00
thinkgem
22a4b0fcf7 update README.md 2023-10-07 10:57:23 +08:00
thinkgem
84407b5785 修改erm默认字体大小,适应多操作系统 2023-10-01 16:52:45 +08:00
thinkgem
f5771c56a4 修改erm默认字体大小,适应多操作系统 2023-09-28 16:54:29 +08:00
thinkgem
a3dee0f70a 优化JsonMapper,增加XSS过滤通用方法 2023-09-27 13:19:22 +08:00
thinkgem
797abcdf87 update README.md 2023-09-19 14:27:28 +08:00
thinkgem
0559c79687 update 2023-09-18 10:59:26 +08:00
thinkgem
f514b86bbc linux下如果有前缀就不增加了 2023-09-18 10:59:10 +08:00
thinkgem
49992195df update script 2023-09-12 10:26:09 +08:00
thinkgem
631225a108 new version 2023-09-11 13:49:25 +08:00
thinkgem
5922951c16 add startup info 2023-08-30 15:32:57 +08:00
thinkgem
5dc1b29a34 snakeyaml 1.33 2023-08-22 17:10:16 +08:00
thinkgem
97252f7d82 5.5.0 2023-08-21 17:09:42 +08:00
thinkgem
efa8d7788a maven ssl 2023-08-21 13:10:53 +08:00
thinkgem
40c5759f59 update area data 2023-08-21 11:07:02 +08:00
thinkgem
13df22605b update 2023-08-21 10:37:54 +08:00
thinkgem
a2644570be update 5.5 2023-08-17 14:26:18 +08:00
thinkgem
da12b2d092 角色增加包含系统参数,切换系统时只需展示当前用户包含的子系统 2023-08-16 16:30:07 +08:00
thinkgem
f5080cd8f5 new version 2023-08-16 10:43:18 +08:00
thinkgem
729801bab5 隐藏表单右上角按钮 2023-08-14 12:40:18 +08:00
thinkgem
0de77acca2 spring boot 2.7.14 2023-08-14 12:37:47 +08:00
thinkgem
7128998483 update README.md 2023-08-09 19:49:08 +08:00
thinkgem
1becabaea3 升级jquery migrate版本,解决ie9下的一些问题修复 2023-08-09 19:38:20 +08:00
thinkgem
23b726e335 downloadByUrl支持post带参数下载文件 2023-08-09 16:45:48 +08:00
thinkgem
6909116d9a 下载文件增加clearParams参数,清理掉不需要添加的请求参数,如:pageNo 2023-08-09 16:42:03 +08:00
thinkgem
12132ab592 html和js语法编写不同的占位符,减少IDE标红提示 2023-08-03 17:22:41 +08:00
thinkgem
920a1a8916 remove web.xml 2023-08-03 11:16:17 +08:00
thinkgem
eaa6646a74 增加缩略图生成设置,前端组件可使用 imageThumbName 使用缩略图 2023-08-02 10:42:02 +08:00
thinkgem
696b7addb9 ImageUtils 生成缩略图,增加目标文件参数,可以不是原文件 2023-08-02 10:39:26 +08:00
thinkgem
43fbbda930 修改弹窗表头高度小一点 2023-08-01 11:28:09 +08:00
thinkgem
727454d2a7 用户列表选择样式优化 2023-08-01 11:27:05 +08:00
thinkgem
33d0693bb1 online 代码优化 2023-08-01 11:24:29 +08:00
thinkgem
1eaff67ffd update 2023-07-31 10:01:41 +08:00
thinkgem
f54126bc07 update build time 2023-07-30 20:13:39 +08:00
thinkgem
fce22831ab update build time 2023-07-30 20:09:04 +08:00
thinkgem
ae17e2c2a4 shiro 1.12.0 2023-07-27 21:43:00 +08:00
thinkgem
db9ff3647a update 2023-07-26 14:57:31 +08:00
thinkgem
e5f5c4cd11 5.4.1 2023-07-24 18:13:47 +08:00
thinkgem
1098757b6a update script 2023-07-21 23:47:28 +08:00
thinkgem
084bfaac92 update version 2023-07-19 19:31:07 +08:00
thinkgem
e7ec4c52e8 国际化完善 2023-07-18 11:55:35 +08:00
thinkgem
02f0e1b300 基础圆角调整 antdv4.0 2023-07-17 12:54:48 +08:00
thinkgem
e7e15fd15e 多语言译文优化 2023-07-17 11:34:38 +08:00
thinkgem
a2d873fee5 将语言名称传递给vue,登录时检测 2023-07-17 10:54:47 +08:00
thinkgem
48a93201e6 update readme 2023-07-11 10:49:47 +08:00
thinkgem
e3e222d7bb update 2023-07-11 10:16:12 +08:00
thinkgem
050aa6e4bf update 2023-07-05 16:23:26 +08:00
thinkgem
a0bfba3abb 权限授权树,如果没有数据的时候可以隐藏 2023-07-05 16:22:55 +08:00
thinkgem
96838f50ad update 2023-07-05 16:21:51 +08:00
thinkgem
0a3c0e4bc8 update 2023-06-28 19:16:44 +08:00
thinkgem
0d24b71fe3 增加参数 web.xssFilterExcludeUri 2023-06-28 19:05:55 +08:00
thinkgem
e658f9e6f6 update 2023-06-28 17:11:18 +08:00
310 changed files with 1235 additions and 3439 deletions

View File

@@ -2,15 +2,12 @@
<p align="center">
<img alt="JeeSite" src="https://jeesite.com/assets/images/logo.png" width="120" height="120" style="margin-bottom: 10px;">
</p>
<h3 align="center" style="margin:30px 0 30px;font-weight:bold;font-size:30px;">快速开发平台 - Spring Boot 3</h3>
<h3 align="center" style="margin:30px 0 30px;font-weight:bold;font-size:30px;">快速开发平台 - Spring Boot</h3>
<p align="center">
<a href="https://spring.io/projects/spring-boot" target="__blank"><img alt="SpringBoot-2.7/3.3" src="https://img.shields.io/badge/SpringBoot-V2.7/3.4-blue.svg"></a>
<a href="https://v3.cn.vuejs.org/" target="__blank"><img alt="TypeScript-Vue3" src="https://img.shields.io/badge/TypeScript-Vue3-green.svg"></a>
<a href="https://jeesite.com/docs/upgrade/" target="__blank"><img alt="JeeSite-5.9" src="https://img.shields.io/badge/JeeSite-V5.9-success.svg"></a>
<a href="https://gitee.com/thinkgem/jeesite5" target="__blank"><img alt="star" src="https://gitee.com/thinkgem/jeesite5/badge/star.svg?theme=dark"></a>
<a href="https://gitee.com/thinkgem/jeesite-vue" target="__blank"><img alt="star" src="https://gitee.com/thinkgem/jeesite-vue/badge/star.svg?theme=dark"></a>
<a href="https://gitee.com/thinkgem/jeesite" target="__blank"><img alt="star" src="https://gitee.com/thinkgem/jeesite/badge/star.svg?theme=gvp"></a>
<a href="https://gitcode.com/thinkgem/jeesite" target="__blank"><img alt="star" src="https://gitcode.com/thinkgem/jeesite/star/badge.svg"></a>
<a href="https://spring.io/projects/spring-boot#learn" target="__blank"><img alt="SpringBoot-2.7/3.2" src="https://img.shields.io/badge/SpringBoot-2.7/3.2-blue.svg"></a>
<a href="https://gitee.com/thinkgem/jeesite5/stargazers" target="__blank"><img alt="star" src="https://gitee.com/thinkgem/jeesite5/badge/star.svg?theme=dark"></a>
<a href="https://gitee.com/thinkgem/jeesite-vue/stargazers" target="__blank"><img alt="star" src="https://gitee.com/thinkgem/jeesite-vue/badge/star.svg?theme=dark"></a>
</p>
------
@@ -27,32 +24,20 @@
* 使用文档:<https://jeesite.com/docs>
* 问题反馈:<http://jeesite.net> [【新手必读】](https://gitee.com/thinkgem/jeesite5/issues/I18ARR)
* 需求收集:<https://gitee.com/thinkgem/jeesite5/issues/new>
* 联系我们:<http://s.jeesite.com>
* QQ 群:`127515876``209330483``223507718``709534275``730390092``1373527``183903863(外包)`
* 微信群:添加客服微信 <http://s.jeesite.com> 邀请您进群
* 关注微信公众号,了解最新动态:
<p style="padding-left:40px">  
<img alt="JeeSite微信公众号" src="https://jeesite.com/assets/images/mp.png" width="200">
</p>
* QQ 群:`127515876``209330483``223507718``709534275``730390092``1373527``183903863(外包)`
* 微信群:如果无法进入,可添加客服微信 jeesitex 邀请您进群
<p style="padding-left:40px">  
<img alt="JeeSite微信群" src="https://jeesite.com/assets/images/wxg_cur.png" width="200"/>
</p>
* 源码仓库地址:
[Gitee](https://gitee.com/thinkgem/jeesite5)、
[GitCode](https://gitcode.com/thinkgem/jeesite5)、
[GitHub](https://github.com/thinkgem/jeesite5)
* 分离版源码仓库地址:
[Gitee](https://gitee.com/thinkgem/jeesite-vue)、
[GitCode](https://gitcode.com/thinkgem/jeesite-vue)、
[GitHub](https://github.com/thinkgem/jeesite-vue)
* 源码合集仓库地址:
[GVP](https://gitee.com/thinkgem/jeesite/tree/v5.springboot3)、
[G-Star](https://gitcode.com/thinkgem/jeesite/overview?ref=v5.springboot3)、
[GitHub](https://github.com/thinkgem/jeesite/tree/v5.springboot3)
* 源码仓库地址1<https://gitee.com/thinkgem/jeesite5>
* 源码仓库地址2<https://github.com/thinkgem/jeesite5>
* 源码仓库地址3<https://gitcode.com/thinkgem/jeesite5>
* 分离版前端源码仓库地址1<https://gitee.com/thinkgem/jeesite-vue>
* 分离版前端源码仓库地址2<https://github.com/thinkgem/jeesite-vue>
* 分离版前端源码仓库地址3<https://gitcode.com/thinkgem/jeesite-vue>
## 平台介绍
@@ -95,17 +80,17 @@
## 技术选型
* 主框架Spring Boot 3.3、Spring Framework 6.1、Apache Shiro 2.0、J2Cache
* 持久层Apache MyBatis 3.5、Hibernate Validator 8.0、Alibaba Druid 1.2
* 视图层Spring MVC 6.1、Beetl 3.10替换JSP、Bootstrap 3.3、AdminLTE 2.4
* 主框架Spring Boot 2.7、Spring Framework 5.3、Apache Shiro 1.12、J2Cache
* 持久层Apache MyBatis 3.5、Hibernate Validator 6.2、Alibaba Druid 1.2
* 视图层Spring MVC 5.3、Beetl 3.10替换JSP、Bootstrap 3.3、AdminLTE 2.4
* 前端组件jQuery 3.7、jqGrid 4.7、layer 3.5、zTree 3.5、jQuery Validation
* 分离前端版Node.js、TypeScript、Vue3、Vite、Ant Design Vue、Vue Vben Admin
* 工作流引擎Flowable 7.1、符合 BPMN 规范、在线流程设计器、中国式流程、退回、撤回、自由流
* Bootstrap 版 支持 IE10 及以上版本及其他所有现代浏览器,如:谷歌、火狐、国产浏览器 等
* 工作流引擎Flowable 6.6、符合 BPMN 规范、在线流程设计器、中国式流程、退回、撤回、自由流
* Bootstrap 版 支持 IE9 及以上版本及其他所有现代浏览器,如:谷歌、火狐、国产浏览器 等
* Vue3 版 支持现代浏览器,如:谷歌 Chrome 86+、火狐、国产浏览器 等
* 技术选型(详细):<http://jeesite.com/docs/technology/>
* JeeSite Vue 版本:<https://gitee.com/thinkgem/jeesite-vue>
* Spring Boot 2.x 版本:<https://gitee.com/thinkgem/jeesite5/tree/v5.9>
* Spring Boot 3.x 版本:<https://gitee.com/thinkgem/jeesite5/tree/v5.springboot3>
## 更多介绍
@@ -138,8 +123,8 @@
### 本地运行
1. 环境准备:`JDK 17+``Maven 3.8+`、使用 `MySQL 5.7 or 8.x` 数据库、[其它数据库](https://jeesite.com/docs/technology/#_8、已支持数据库)
2. 下载源码:<https://gitee.com/thinkgem/jeesite5/repository/archive/v5.springboot3.zip> 并解压
1. 环境准备:`JDK 1.8 or 11、17``Maven 3.6+`、使用 `MySQL 5.7 or 8.0` 数据库、[其它数据库](https://jeesite.com/docs/technology/#_8、已支持数据库)
2. 下载源码:<https://gitee.com/thinkgem/jeesite5/repository/archive/v5.9.zip> 并解压
3. 打开文件:`/web/src/main/resources/config/application.yml` 配置JDBC连接
4. 执行脚本:`/web/bin/init-data.bat` 初始化数据库
5. 执行脚本:`/web/bin/run-tomcat.bat` 启动服务即可
@@ -149,8 +134,8 @@
### 快速运行
1. 环境准备:`JDK 17+``Maven 3.8+`、无需准备数据库(使用内嵌 H2 DB、Vue资源包
2. 下载源码:<https://gitee.com/thinkgem/jeesite5/repository/archive/v5.springboot3.zip> 并解压
1. 环境准备:`JDK 1.8 or 11、17``Maven 3.6+`、无需准备数据库(使用内嵌 H2 DB、Vue资源包
2. 下载源码:<https://gitee.com/thinkgem/jeesite5/repository/archive/v5.9.zip> 并解压
3. 执行脚本:`/web-fast/bin/run-tomcat.bat` 启动服务即可(自动初始化库)
4. Vue分离版本地址<http://127.0.0.1:8980/vue/login>
5. 全栈版本地址:<http://127.0.0.1:8980/a/login>
@@ -243,11 +228,10 @@ docker run --name jeesite-web -p 8980:8980 -d --restart unless-stopped \
7. 本项目已申请软件著作权,请尊重开源,感谢阅读。
8. 无用户数限制,无在线人数限制,放心使用。
## 技术支持与服务
## 技术服务与支持
* 本软件免费,我们也提供了相应的收费服务,因为:
* 没有资金的支撑就很难得到发展,特别是一个好的产品,如果 JeeSite 帮助了您,请为我们点赞。支持我们,您可以获得更多回馈,我们会把公益事业做的更好,开放更多资源,回报社区和社会。请给我们一些动力吧,在此非常感谢已支持我们的朋友!
* **联系我们**:请访问技术支持服务页面:<http://s.jeesite.com>
* **联系我们**:请访问技术支持服务页面:<https://jeesite.com/docs/support/>
## 今后如何升级?

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.10.0.springboot3-SNAPSHOT</version>
<version>5.9.0-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -21,8 +21,8 @@
<!-- Servlet Api -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
@@ -45,12 +45,12 @@
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<!-- Fury serialize -->
<!-- Java serialization -->
<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-core</artifactId>
<version>${fury.version}</version>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>${fst.version}</version>
</dependency>
<!-- Jackson json -->

View File

@@ -15,7 +15,7 @@ import org.apache.commons.text.StringEscapeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

View File

@@ -7,9 +7,6 @@ package com.jeesite.common.io;
import com.jeesite.common.codec.EncodeUtils;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.lang.StringUtils;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import net.sf.jmimemagic.Magic;
import net.sf.jmimemagic.MagicMatch;
import org.apache.commons.io.IOUtils;
@@ -18,6 +15,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import javax.activation.MimetypesFileTypeMap;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Enumeration;
import java.util.List;

View File

@@ -36,7 +36,9 @@ public class PropertiesUtils {
// 默认加载的文件可通过继承覆盖若有相同Key优先加载后面的
public static final String[] DEFAULT_CONFIG_FILE = new String[]{
"classpath:application.yml", "classpath:config/application.yml",
"classpath:bootstrap.yml", "classpath:config/bootstrap.yml",
"file:application.yml", "file:config/application.yml",
"file:bootstrap.yml", "file:config/bootstrap.yml",
};
private static final Logger logger = PropertiesUtils.initLogger();

View File

@@ -4,8 +4,8 @@
*/
package com.jeesite.common.lang;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -28,8 +28,6 @@ public class ExceptionUtils {
ex = (Throwable) request.getAttribute("exception");
} else if (request.getAttribute(RequestDispatcher.ERROR_EXCEPTION) != null) {
ex = (Throwable) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
} else if (request.getAttribute("org.springframework.web.servlet.DispatcherServlet.EXCEPTION") != null) {
ex = (Throwable) request.getAttribute("org.springframework.web.servlet.DispatcherServlet.EXCEPTION");
}
return ex;
}

View File

@@ -4,14 +4,12 @@
*/
package com.jeesite.common.lang;
import com.jeesite.common.io.PropertiesUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.fury.Fury;
import org.apache.fury.ThreadSafeFury;
import org.apache.fury.config.Language;
import org.nustaq.serialization.FSTConfiguration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.core.NamedThreadLocal;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -27,24 +25,13 @@ import java.lang.reflect.InvocationTargetException;
public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
private static final Logger logger = LoggerFactory.getLogger(ObjectUtils.class);
/**
* 当前类的实例持有者(静态内部类,延迟加载,懒汉式,线程安全的单例模式)
*/
private static final class Static {
private static final Boolean isJavaSerialize;
private static final ThreadSafeFury fury;
static {
isJavaSerialize = PropertiesUtils.getInstance()
.getPropertyToBoolean("isJavaSerialize", "false");
org.apache.fury.logging.LoggerFactory.useSlf4jLogging(true);
fury = Fury.builder().withLanguage(Language.JAVA)
.withRefTracking(true)
.requireClassRegistration(false)
.buildThreadSafeFury();
}
private static final boolean isJavaSerialize;
static {
String[] ver = StringUtils.split(System.getProperty("java.version"), StringUtils.DOT);
isJavaSerialize = ver.length > 0 && Integer.parseInt(ver[0]) > 1;
}
/**
* 转换为 Double 类型
*/
@@ -166,7 +153,8 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
return null;
}
byte[] bytes = ObjectUtils.serialize(source);
return ObjectUtils.unserialize(bytes);
Object target = ObjectUtils.unserialize(bytes);
return target;
}
/**
@@ -176,10 +164,10 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
*/
public static byte[] serialize(Object object) {
try {
if (Static.isJavaSerialize) {
if (isJavaSerialize) {
return ObjectUtils.serializeJava(object);
} else {
return ObjectUtils.serializeFury(object);
}else {
return ObjectUtils.serializeFst(object);
}
} catch (Exception e) {
logger.error("serialize: {}", e.getMessage());
@@ -194,10 +182,10 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
*/
public static Object unserialize(byte[] bytes) {
try {
if (Static.isJavaSerialize) {
if (isJavaSerialize) {
return ObjectUtils.unserializeJava(bytes);
} else {
return ObjectUtils.unserializeFury(bytes);
}else {
return ObjectUtils.unserializeFst(bytes);
}
} catch (Exception e) {
logger.error("unserialize: {}", e.getMessage());
@@ -255,88 +243,51 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
}
return object;
}
private static ThreadLocal<FSTConfiguration> fstConfiguration =
new NamedThreadLocal<FSTConfiguration>("FSTConfiguration") {
@Override
public FSTConfiguration initialValue() {
return FSTConfiguration.createDefaultConfiguration();
}
};
/**
* 序列化对象
* FST 序列化对象
* @param object
* @return
*/
public static byte[] serializeFury(Object object) {
public static byte[] serializeFst(Object object) {
if (object == null){
return null;
}
long beginTime = System.currentTimeMillis();
byte[] bytes = Static.fury.serialize(object);
byte[] bytes = fstConfiguration.get().asByteArray(object);
long totalTime = System.currentTimeMillis() - beginTime;
if (totalTime > 30000){
logger.warn(object.getClass() + " serialize time: " + TimeUtils.formatTime(totalTime));
logger.warn(object.getClass() + " fst serialize time: " + TimeUtils.formatTime(totalTime));
}
return bytes;
}
/**
* 反序列化对象
* FST 反序列化对象
* @param bytes
* @return
*/
public static Object unserializeFury(byte[] bytes) {
public static Object unserializeFst(byte[] bytes) {
if (bytes == null){
return null;
}
long beginTime = System.currentTimeMillis();
Object object = Static.fury.deserialize(bytes);
Object object = fstConfiguration.get().asObject(bytes);
long totalTime = System.currentTimeMillis() - beginTime;
if (totalTime > 30000 && object != null){
logger.warn(object.getClass() + " unserialize time: " + TimeUtils.formatTime(totalTime));
logger.warn(object.getClass() + " fst unserialize time: " + TimeUtils.formatTime(totalTime));
}
return object;
}
// private static ThreadLocal<FSTConfiguration> fstConfiguration =
// new NamedThreadLocal<FSTConfiguration>("FSTConfiguration") {
// @Override
// public FSTConfiguration initialValue() {
// return FSTConfiguration.createDefaultConfiguration();
// }
// };
//
// /**
// * FST 序列化对象
// * @param object
// * @return
// */
// public static byte[] serializeFst(Object object) {
// if (object == null){
// return null;
// }
// long beginTime = System.currentTimeMillis();
// byte[] bytes = fstConfiguration.get().asByteArray(object);
// long totalTime = System.currentTimeMillis() - beginTime;
// if (totalTime > 30000){
// logger.warn(object.getClass() + " fst serialize time: " + TimeUtils.formatTime(totalTime));
// }
// return bytes;
// }
//
// /**
// * FST 反序列化对象
// * @param bytes
// * @return
// */
// public static Object unserializeFst(byte[] bytes) {
// if (bytes == null){
// return null;
// }
// long beginTime = System.currentTimeMillis();
// Object object = fstConfiguration.get().asObject(bytes);
// long totalTime = System.currentTimeMillis() - beginTime;
// if (totalTime > 30000 && object != null){
// logger.warn(object.getClass() + " fst unserialize time: " + TimeUtils.formatTime(totalTime));
// }
// return object;
// }
// private static Pool<Kryo> kryoPool = new Pool<Kryo>(true, false, 8) {
// protected Kryo create() {
// Kryo kryo = new Kryo();

View File

@@ -26,7 +26,6 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
public static final String COLON = ":";
public static final String TILDE = "~";
public static final String UNDERLINE = "_";
public static final String MINUS = "-";
/**
* 分隔字符串(逗号分隔)
@@ -285,7 +284,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
boolean upperCase = false;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == UNDERLINE.charAt(0) || c == MINUS.charAt(0)) {
if (c == UNDERLINE.charAt(0)) {
upperCase = i != 1; // 不允许第二个字符是大写
} else if (upperCase) {
sb.append(Character.toUpperCase(c));

View File

@@ -50,7 +50,7 @@ public class JsonMapper extends ObjectMapper {
private static final class JsonMapperHolder {
private static final JsonMapper INSTANCE = new JsonMapper();
}
public JsonMapper() {
// Spring ObjectMapper 初始化配置,支持 @JsonView
new Jackson2ObjectMapperBuilder().configure(this);

View File

@@ -4,7 +4,7 @@ import com.jeesite.common.codec.EncodeUtils;
import com.jeesite.common.io.PropertiesUtils;
import com.jeesite.common.lang.StringUtils;
import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequest;
public class IpUtils {

View File

@@ -77,6 +77,7 @@ public class ReflectUtils {
//Method method = getAccessibleMethodByName(object, methodName, 0);
//if (method == null) { return; }
//Class<?> returnType = method.getReturnType();
System.out.println(object.getClass());
MethodAccess ma = MethodAccess.get(object.getClass());
Class<?> returnType = ma.getReturnTypes()[ma.getIndex(methodName)];
childObj = returnType.getDeclaredConstructor().newInstance();

View File

@@ -23,7 +23,7 @@ import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

View File

@@ -1,44 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.common.utils.excel.fieldtype;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
/**
* BigDecimal类型转换
* @author ThinkGem
* @version 2020-3-5
* @example fieldType = BigDecimalType.class
*/
public class BigDecimalType implements FieldType {
/**
* 获取对象值(导入)
*/
@Override
public Object getValue(String val) {
return new BigDecimal(val);
}
/**
* 获取对象值(导出)
*/
@Override
public String setValue(Object val) {
return val == null ? StringUtils.EMPTY : val.toString();
}
/**
* 获取对象值格式(导出)
*/
@Override
public String getDataFormat() {
return "0.00";
}
}

View File

@@ -7,9 +7,9 @@ package com.jeesite.common.web;
import com.jeesite.common.codec.EncodeUtils;
import com.jeesite.common.io.PropertiesUtils;
import com.jeesite.common.lang.StringUtils;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Cookie工具类

View File

@@ -5,8 +5,8 @@
package com.jeesite.common.web.http;
import com.jeesite.common.io.PropertiesUtils;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 统一包装结果输出类:{ code: 200, msg: "", data: {} | [] }

View File

@@ -12,15 +12,14 @@ import com.jeesite.common.lang.ExceptionUtils;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.mapper.JsonMapper;
import com.jeesite.common.mapper.XmlMapper;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.Validate;
import org.springframework.http.MediaType;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.*;
import java.util.Map.Entry;
@@ -58,11 +57,6 @@ public class ServletUtils {
// 是否打印错误信息参数到视图页面(生产环境关闭)
private static final Boolean PRINT_ERROR_INFO = PROPS.getPropertyToBoolean("error.page.printErrorInfo", "true");
// 允许重定向的地址不设置为全部允许设置this只允许本项目内部跳转多个用逗号隔开例如this,http://*.jeesite.com
private static final String[] ALLOW_REDIRECTS = PROPS.getPropertyToArray("shiro.allowRedirects", "");
private static final Boolean SCHEME_HTTPS = PROPS.getPropertyToBoolean("server.schemeHttps", "false");
private static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();
/**
* 获取当前请求对象
* web.xml: <listener><listener-class>
@@ -390,15 +384,10 @@ public class ServletUtils {
}
/**
* 获取当前请求的域名(含端口)
* @author ThinkGem
* 获取请求的域名(含端口)
*/
public static String getThisDomain(HttpServletRequest request) {
String url = request.getRequestURL().toString();
public static String getRequestDomain(String url) {
String scheme = StringUtils.substringBefore(url, "://");
if (SCHEME_HTTPS && StringUtils.equals(scheme, "http")) {
scheme = "https";
}
String domain = StringUtils.substringAfter(url, "://");
if (StringUtils.contains(domain, "/")) {
domain = StringUtils.substringBefore(domain, "/");
@@ -406,28 +395,6 @@ public class ServletUtils {
return scheme + "://" + domain;
}
/**
* 验证地址是否允许重定向
* @author ThinkGem
*/
public static boolean isAllowRedirects(HttpServletRequest request, String url) {
if (ALLOW_REDIRECTS == null || ALLOW_REDIRECTS.length == 0) {
return true;
}
boolean allow = false;
for (String pattern : ALLOW_REDIRECTS) {
String p = StringUtils.trim(pattern);
if ("this".equals(p)) {
p = getThisDomain(request);
}
if (PATH_MATCHER.match(p + "/**", url)){
allow = true;
break;
}
}
return allow;
}
/**
* 获得请求参数值
*/

View File

@@ -4,7 +4,7 @@
*/
package com.jeesite.common.web.http;
import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import eu.bitwalker.useragentutils.Browser;
import eu.bitwalker.useragentutils.DeviceType;

View File

@@ -235,6 +235,3 @@ a, a:hover, a:active, a:focus, .form-unit, th[aria-selected=true] .ui-jqgrid-sor
.ui-jqgrid .ui-jqgrid-frozen .ui-jqgrid-htable th div {height:46px!important;}
.ui-jqgrid .ui-jqgrid-htable th div {padding:15px 0 15px 2px;}
.ui-jqgrid tr.jqgrow td {height: 49px;}
.table-form .ui-jqgrid .ui-jqgrid-frozen .ui-jqgrid-htable th div {height:36px!important;}
.table-form .ui-jqgrid .ui-jqgrid-htable th div {padding:9px 0 8px 2px;}
.table-form .ui-jqgrid tr.jqgrow td {height: 39px;}

View File

@@ -235,6 +235,3 @@ a, a:hover, a:active, a:focus, .form-unit, th[aria-selected=true] .ui-jqgrid-sor
.ui-jqgrid .ui-jqgrid-frozen .ui-jqgrid-htable th div {height:46px!important;}
.ui-jqgrid .ui-jqgrid-htable th div {padding:15px 0 15px 2px;}
.ui-jqgrid tr.jqgrow td {height: 49px;}
.table-form .ui-jqgrid .ui-jqgrid-frozen .ui-jqgrid-htable th div {height:36px!important;}
.table-form .ui-jqgrid .ui-jqgrid-htable th div {padding:9px 0 8px 2px;}
.table-form .ui-jqgrid tr.jqgrow td {height: 39px;}

View File

@@ -296,9 +296,6 @@ a, a:hover, a:active, a:focus, .form-unit, th[aria-selected=true] .ui-jqgrid-sor
.ui-jqgrid .ui-jqgrid-frozen .ui-jqgrid-htable th div {height:46px!important;}
.ui-jqgrid .ui-jqgrid-htable th div {padding:15px 0 15px 2px;}
.ui-jqgrid tr.jqgrow td {height: 49px;}
.table-form .ui-jqgrid .ui-jqgrid-frozen .ui-jqgrid-htable th div {height:36px!important;}
.table-form .ui-jqgrid .ui-jqgrid-htable th div {padding:9px 0 8px 2px;}
.table-form .ui-jqgrid tr.jqgrow td {height: 39px;}
.ui-jqgrid tr.jqgroup td, .ui-jqgrid tr.footrow td, .ui-jqgrid tr.jqfoot td {background:#323232;}
.ui-jqgrid .actions .moreItems {background:#1a1a1a;border-color:#3c3c3c;box-shadow:none;}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -20,11 +20,11 @@ span{display:block;font-size:12px;line-height:12px;}
<p>您正在使用 Internet Explorer 的过期版本IE6、IE7、IE8 内核的浏览器)。这意味着在升级浏览器前,您将无法继续访问。</p>
<hr>
<h2>为什么会出现这个页面?</h2>
<p>如果您不知道升级浏览器是什么意思请请教一些熟练电脑操作的朋友。如果您使用的不是Internet Explorer而是360、QQ、搜狗等双核浏览器出现这个页面可能是您切换到了兼容模式<strong style="color:#f00;">切换到极速模式</strong>下,如果还不行请升级至最新版浏览器。</p>
<p>如果您不知道升级浏览器是什么意思请请教一些熟练电脑操作的朋友。如果您使用的不是IE6/7/8而是360、QQ、搜狗等双核浏览器出现这个页面可能是您切换到了兼容模式<strong style="color:#f00;">切换到极速模式</strong>下,如果还不行请升级至最新版浏览器。</p>
<hr>
<h2>请注意微软Microsoft对 Windows XP、Vista、7、8、8.1 及 Internet Explorer 的支持已经结束</h2>
<p>微软Microsoft不再为已经结束的版本提供相应支持和更新。如果您继续使用这些,您将可能受到病毒、间谍软件和其他恶意软件的攻击,无法确保个人信息的安全。请参阅 <a href="http://windows.microsoft.com/zh-cn/windows/end-support-help">Windows XP 支持已经结束的说明</a></p>
<p>于 2022 年 6 月 15 日,微软对 Internet Explorer 11 的支持也已结束。请参阅 <a href="http://windows.microsoft.com/zh-cn/internet-explorer/download-ie"> Internet Explorer 浏览器下载</a></p>
<h2>请注意微软Microsoft Windows XP 及 IE6、IE7、IE8、IE9、IE10 的支持已经结束</h2>
<p>自 2014 年 4 月 8 日起微软Microsoft不再为 Windows XP 和 Internet Explorer 8 及以下版本提供相应支持和更新。如果您继续使用这些,您将可能受到病毒、间谍软件和其他恶意软件的攻击,无法确保个人信息的安全。请参阅 <a href="http://windows.microsoft.com/zh-cn/windows/end-support-help">Microsoft 关于 Windows XP 支持已经结束的说明</a></p>
<p>尽管 Internet Explorer 11 将于 2022 年 6 月 15 日也停止了支持。但您也可以继续使用 <a href="http://windows.microsoft.com/zh-cn/internet-explorer/download-ie"> Internet Explorer 11 浏览器</a></p>
<hr>
<h2>您可以选择更先进的浏览器</h2>
<p>推荐使用以下浏览器的最新版本。如果您的电脑已有以下浏览器的最新版本则直接使用该浏览器访问 <b id="url"></b>即可。</p>
@@ -32,7 +32,7 @@ span{display:block;font-size:12px;line-height:12px;}
<li><img src="img/chrome360.jpg"><a href="http://chrome.360.cn/"> 360极速浏览器<span>360 Chrome</span></a></li>
<li><img src="img/chrome.jpg"><a href="http://www.google.cn/intl/zh-CN/chrome/browser/desktop/index.html"> 谷歌浏览器<span>Google Chrome</span></a></li>
<li><img src="img/firefox.jpg"><a href="http://www.firefox.com.cn/download/"> 火狐浏览器<span>Mozilla Firefox</span></a></li>
<li><img src="img/edge.png"><a href="https://www.microsoft.com/zh-cn/edge"> Edge 浏览器<span>Microsoft Edge</span></a></li>
<li><img src="img/ie.jpg"><a href="https://www.microsoft.com/zh-cn/edge"> Edge 浏览器<span>Microsoft Edge</span></a></li>
</ul><div class="clean"></div></div>
<hr><br/>
<script>

View File

@@ -1,21 +0,0 @@
/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
* No deletion without permission, or be held responsible to law.
*/
package com.jeesite.test.web.http;
import com.jeesite.common.web.http.HttpClientUtils;
/**
* HTTP客户端测试工具类支持HTTPS
* @author ThinkGem
* @version 2017-3-27
*/
public class HttpClientUtilsTest {
public static void main(String[] args) {
String content = HttpClientUtils.get("https://jeesite.com");
System.out.println(content);
}
}

View File

@@ -329,7 +329,7 @@
</word>
<word>
<id>a63e3fda50530388ba263296184d8a6919a75791</id>
<length>4000</length>
<length>1000</length>
<decimal>null</decimal>
<array>false</array>
<array_dimension>null</array_dimension>

View File

@@ -16,7 +16,7 @@ CREATE TABLE js_app_comment
update_date timestamp NOT NULL,
remarks vargraphic(500),
create_by_name varchar(200),
device_info varchar(4000),
device_info varchar(1000),
reply_date date,
reply_content vargraphic(500),
reply_user_code varchar(64),

View File

@@ -16,7 +16,7 @@ CREATE TABLE js_app_comment
update_date datetime NOT NULL,
remarks varchar(500),
create_by_name varchar(200),
device_info varchar(4000),
device_info varchar(1000),
reply_date date,
reply_content varchar(500),
reply_user_code varchar(64),

View File

@@ -16,7 +16,7 @@ CREATE TABLE [js_app_comment]
[update_date] datetime NOT NULL,
[remarks] nvarchar(500),
[create_by_name] varchar(200),
[device_info] varchar(4000),
[device_info] varchar(1000),
[reply_date] date,
[reply_content] nvarchar(500),
[reply_user_code] varchar(64),

View File

@@ -17,7 +17,7 @@ CREATE TABLE js_app_comment
update_date datetime NOT NULL COMMENT '更新时间',
remarks varchar(500) COMMENT '备注信息',
create_by_name varchar(200) COMMENT '提问人员姓名',
device_info varchar(4000) COMMENT '设备信息',
device_info varchar(1000) COMMENT '设备信息',
reply_date date COMMENT '回复时间',
reply_content varchar(500) COMMENT '回复意见',
reply_user_code varchar(64) COMMENT '回复人员',

View File

@@ -16,7 +16,7 @@ CREATE TABLE js_app_comment
update_date timestamp NOT NULL,
remarks nvarchar2(500),
create_by_name varchar2(200),
device_info varchar2(4000),
device_info varchar2(1000),
reply_date date,
reply_content nvarchar2(500),
reply_user_code varchar2(64),

View File

@@ -16,7 +16,7 @@ CREATE TABLE js_app_comment
update_date timestamp NOT NULL,
remarks varchar(500),
create_by_name varchar(200),
device_info varchar(4000),
device_info varchar(1000),
reply_date date,
reply_content varchar(500),
reply_user_code varchar(64),

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.10.0.springboot3-SNAPSHOT</version>
<version>5.9.0-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>

View File

@@ -4,15 +4,17 @@
*/
package com.jeesite.modules.app.entity;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
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;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import java.util.Date;
/**
* APP意见反馈Entity
@@ -82,7 +84,7 @@ public class AppComment extends DataEntity<AppComment> {
this.contact = contact;
}
@Size(min=0, max=4000, message="设备信息长度不能超过 4000 个字符")
@Size(min=0, max=1000, message="设备信息长度不能超过 1000 个字符")
public String getDeviceInfo() {
return deviceInfo;
}

View File

@@ -6,7 +6,7 @@ package com.jeesite.modules.app.entity;
import java.util.Date;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.entity.DataEntity;

View File

@@ -6,8 +6,8 @@ package com.jeesite.modules.app.web;
import java.util.Date;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;

View File

@@ -4,8 +4,8 @@
*/
package com.jeesite.modules.app.web;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -16,7 +16,7 @@ CREATE TABLE ${_prefix}app_comment
update_date timestamp NOT NULL,
remarks vargraphic(500),
create_by_name varchar(200),
device_info varchar(4000),
device_info varchar(1000),
reply_date date,
reply_content vargraphic(500),
reply_user_code varchar(64),

View File

@@ -16,7 +16,7 @@ CREATE TABLE ${_prefix}app_comment
update_date datetime NOT NULL,
remarks varchar(500),
create_by_name varchar(200),
device_info varchar(4000),
device_info varchar(1000),
reply_date date,
reply_content varchar(500),
reply_user_code varchar(64),

View File

@@ -16,7 +16,7 @@ CREATE TABLE [${_prefix}app_comment]
[update_date] datetime NOT NULL,
[remarks] nvarchar(500),
[create_by_name] varchar(200),
[device_info] varchar(4000),
[device_info] varchar(1000),
[reply_date] date,
[reply_content] nvarchar(500),
[reply_user_code] varchar(64),

View File

@@ -17,7 +17,7 @@ CREATE TABLE ${_prefix}app_comment
update_date datetime NOT NULL COMMENT '更新时间',
remarks varchar(500) COMMENT '备注信息',
create_by_name varchar(200) COMMENT '提问人员姓名',
device_info varchar(4000) COMMENT '设备信息',
device_info varchar(1000) COMMENT '设备信息',
reply_date date COMMENT '回复时间',
reply_content varchar(500) COMMENT '回复意见',
reply_user_code varchar(64) COMMENT '回复人员',

View File

@@ -16,7 +16,7 @@ CREATE TABLE ${_prefix}app_comment
update_date timestamp NOT NULL,
remarks nvarchar2(500),
create_by_name varchar2(200),
device_info varchar2(4000),
device_info varchar2(1000),
reply_date date,
reply_content nvarchar2(500),
reply_user_code varchar2(64),

View File

@@ -16,7 +16,7 @@ CREATE TABLE ${_prefix}app_comment
update_date timestamp NOT NULL,
remarks varchar(500),
create_by_name varchar(200),
device_info varchar(4000),
device_info varchar(1000),
reply_date date,
reply_content varchar(500),
reply_user_code varchar(64),

View File

@@ -20,7 +20,4 @@
5.7.1
5.8.0
5.8.1
5.9.0
5.9.1
5.9.2
5.10.0
5.9.0

View File

@@ -160,7 +160,7 @@
</div>
<% } %>
<script>
$('#inputForm').validate({
$("#inputForm").validate({
submitHandler: function(form){
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);

View File

@@ -132,7 +132,7 @@
</div>
<% } %>
<script>
$('#inputForm').validate({
$("#inputForm").validate({
submitHandler: function(form){
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.10.0.springboot3-SNAPSHOT</version>
<version>5.9.0-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>

View File

@@ -13,9 +13,9 @@ import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.modules.cms.utils.CmsUtils;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
/**

View File

@@ -4,7 +4,7 @@
*/
package com.jeesite.modules.cms.entity;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.Size;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.entity.Extend;

View File

@@ -14,8 +14,8 @@ import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.modules.cms.utils.CmsUtils;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
/**

View File

@@ -6,10 +6,10 @@ package com.jeesite.modules.cms.entity;
import java.util.Date;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.entity.BaseEntity;

View File

@@ -4,7 +4,7 @@
*/
package com.jeesite.modules.cms.entity;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.Size;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;

View File

@@ -14,8 +14,8 @@ import com.jeesite.modules.cms.utils.CmsUtils;
import com.jeesite.modules.sys.utils.CorpUtils;
import com.jeesite.modules.sys.utils.UserUtils;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
/**

View File

@@ -4,7 +4,7 @@
*/
package com.jeesite.modules.cms.entity;
import jakarta.validation.constraints.NotNull;
import javax.validation.constraints.NotNull;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;

View File

@@ -6,7 +6,7 @@ package com.jeesite.modules.cms.entity;
import java.util.Date;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.entity.BaseEntity;

View File

@@ -20,7 +20,7 @@ import com.jeesite.modules.cms.service.CategoryService;
import com.jeesite.modules.cms.service.SiteService;
import org.springframework.ui.Model;
import jakarta.servlet.ServletContext;
import javax.servlet.ServletContext;
import java.util.Collections;
import java.util.List;
import java.util.Map;

View File

@@ -27,8 +27,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

View File

@@ -4,8 +4,8 @@
*/
package com.jeesite.modules.cms.web;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -4,8 +4,8 @@
*/
package com.jeesite.modules.cms.web;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -24,8 +24,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**

View File

@@ -21,8 +21,8 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;

View File

@@ -6,8 +6,8 @@ package com.jeesite.modules.cmsfront.web;
import java.util.Map;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

View File

@@ -28,7 +28,4 @@
5.7.1
5.8.0
5.8.1
5.9.0
5.9.1
5.9.2
5.10.0
5.9.0

View File

@@ -173,7 +173,7 @@
</div>
<% } %>
<script>
$('#inputForm').validate({
$("#inputForm").validate({
submitHandler: function(form){
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);

View File

@@ -107,7 +107,7 @@
</div>
<% } %>
<script>
$('#inputForm').validate({
$("#inputForm").validate({
submitHandler: function(form){
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);

View File

@@ -351,7 +351,7 @@
</div>
<% } %>
<script>
$('#inputForm').validate({
$("#inputForm").validate({
submitHandler: function(form){
js.ajaxSubmitForm($(form), function(data){
js.showMessage(data.message);

View File

@@ -25,7 +25,7 @@ if (message != ''){
function page(n,s){
$("#pageNo").val(n);
$("#pageSize").val(s);
$('#searchForm').submit();
$("#searchForm").submit();
return false;
}
function sel(th, val){

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.10.0.springboot3-SNAPSHOT</version>
<version>5.9.0-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -127,13 +127,6 @@
<version>${project.parent.version}</version>
</dependency>
<!-- JTA 事务(当 spring.jta.enabled 为 true 的时候开启,不使用 jta 的时候不要引入该依赖)
<dependency>
<groupId>com.atomikos</groupId>
<artifactId>transactions-spring-boot3-starter</artifactId>
<version>${atomikos.version}</version>
</dependency> -->
<!-- ELK 日志收集 -->
<dependency>
<groupId>net.logstash.logback</groupId>

View File

@@ -17,7 +17,6 @@ import com.jeesite.common.shiro.session.SessionDAO;
import com.jeesite.common.shiro.session.SessionManager;
import com.jeesite.common.shiro.web.ShiroFilterFactoryBean;
import com.jeesite.common.shiro.web.WebSecurityManager;
import jakarta.servlet.Filter;
import org.apache.shiro.cache.CacheManager;
import org.apache.shiro.realm.Realm;
import org.apache.shiro.realm.ldap.JndiLdapContextFactory;
@@ -35,6 +34,7 @@ import org.springframework.context.annotation.DependsOn;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import javax.servlet.Filter;
import java.util.Collection;
import java.util.Map;

View File

@@ -16,10 +16,10 @@ import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.util.WebUtils;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* CAS过滤器

View File

@@ -17,12 +17,13 @@ import com.jeesite.common.shiro.realm.BaseAuthorizingRealm;
import com.jeesite.common.utils.SpringUtils;
import com.jeesite.common.web.CookieUtils;
import com.jeesite.common.web.http.ServletUtils;
import com.jeesite.modules.sys.entity.*;
import com.jeesite.modules.sys.utils.*;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import com.jeesite.modules.sys.entity.Log;
import com.jeesite.modules.sys.entity.Role;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.utils.CorpUtils;
import com.jeesite.modules.sys.utils.LogUtils;
import com.jeesite.modules.sys.utils.UserUtils;
import com.jeesite.modules.sys.utils.ValidCodeUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.IncorrectCredentialsException;
@@ -36,6 +37,10 @@ import org.apache.shiro.web.util.WebUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@@ -419,8 +424,8 @@ public class FormFilter extends org.apache.shiro.web.filter.authc.FormAuthentica
Global.setLang((String)paramMap.get("lang"), request, response);
}
data.put("demoMode", Global.isDemoMode());
data.put("useCorpModel", Global.isUseCorpModel());
data.put("loginCodeCorpUnique", Global.getConfigToBoolean("user.loginCodeCorpUnique", "false"));
data.put("useCorpModel", Global.isUseCorpModel()
&& Global.getConfigToBoolean("user.loginCodeCorpUnique", "false"));
data.put("title", Global.getProperty("productName"));
data.put("company", Global.getProperty("companyName"));
data.put("version", Global.getProperty("productVersion"));
@@ -447,7 +452,6 @@ public class FormFilter extends org.apache.shiro.web.filter.authc.FormAuthentica
data.put("msgEnabled", Global.getPropertyToBoolean("msg.enabled", "false"));
data.put("sysCode", session.getAttribute("sysCode"));
data.put("roleCode", session.getAttribute("roleCode"));
data.put("postCode", session.getAttribute("postCode"));
data.put("title", Global.getProperty("productName"));
data.put("company", Global.getProperty("companyName"));
data.put("version", Global.getProperty("productVersion"));
@@ -467,21 +471,6 @@ public class FormFilter extends org.apache.shiro.web.filter.authc.FormAuthentica
}
}
data.put("roleList", roleList);
List<Map<String, Object>> postList = ListUtils.newArrayList();
if (Global.getConfigToBoolean("user.postRolePermi", "false")
&& User.USER_TYPE_EMPLOYEE.equals(user.getUserType())) {
Employee employee = user.getRefObj();
for (EmployeePost ep : EmpUtils.getEmployeePostList(employee.getEmpCode())){
Post post = ep.getPost();
if (post != null) {
Map<String, Object> postMap = MapUtils.newHashMap();
postMap.put("postCode", post.getPostCode());
postMap.put("postName", post.getPostName());
postList.add(postMap);
}
}
}
data.put("postList", postList);
data.put("desktopUrl", desktopUrl != null ? desktopUrl : Global.getConfig("sys.index.desktopUrl"));
return data;
}

View File

@@ -8,9 +8,9 @@ import com.jeesite.common.config.Global;
import com.jeesite.common.lang.StringUtils;
import org.apache.shiro.web.filter.AccessControlFilter;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
/**
* 内部系统访问过滤器

View File

@@ -6,8 +6,8 @@ package com.jeesite.common.shiro.filter;
import java.util.Map;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.shiro.authc.AuthenticationToken;

View File

@@ -4,10 +4,10 @@
*/
package com.jeesite.common.shiro.filter;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.session.SessionException;

View File

@@ -9,15 +9,15 @@ import com.jeesite.common.config.Global;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.web.http.ServletUtils;
import com.jeesite.common.web.http.wrapper.GetHttpServletRequestWrapper;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.UnauthorizedException;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.util.WebUtils;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
/**

View File

@@ -4,9 +4,8 @@
*/
package com.jeesite.common.shiro.filter;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
/**

View File

@@ -6,10 +6,10 @@ package com.jeesite.common.shiro.filter;
import com.jeesite.common.config.Global;
import com.jeesite.common.lang.StringUtils;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**

View File

@@ -15,7 +15,6 @@ import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.service.UserService;
import com.jeesite.modules.sys.utils.LogUtils;
import com.jeesite.modules.sys.utils.UserUtils;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
@@ -23,6 +22,8 @@ import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import javax.servlet.http.HttpServletRequest;
/**
* 系统认证授权实现类
* @author ThinkGem

View File

@@ -30,8 +30,8 @@ import org.jasig.cas.client.validation.TicketValidationException;
import org.jasig.cas.client.validation.TicketValidator;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.ValidationException;
import javax.servlet.http.HttpServletRequest;
import javax.validation.ValidationException;
import java.util.Map;
/**

View File

@@ -4,17 +4,11 @@
*/
package com.jeesite.common.shiro.realm;
import com.jeesite.common.shiro.authc.FormToken;
import com.jeesite.common.shiro.authc.LdapToken;
import com.jeesite.common.utils.SpringUtils;
import com.jeesite.common.web.http.ServletUtils;
import com.jeesite.modules.sys.entity.Log;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.service.EmpUserService;
import com.jeesite.modules.sys.service.UserService;
import com.jeesite.modules.sys.utils.LogUtils;
import com.jeesite.modules.sys.utils.UserUtils;
import jakarta.servlet.http.HttpServletRequest;
import javax.naming.AuthenticationNotSupportedException;
import javax.naming.NamingException;
import javax.naming.ldap.LdapContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
@@ -27,13 +21,20 @@ import org.apache.shiro.realm.ldap.LdapContextFactory;
import org.apache.shiro.realm.ldap.LdapUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import javax.naming.AuthenticationNotSupportedException;
import javax.naming.NamingException;
import javax.naming.ldap.LdapContext;
import com.jeesite.common.shiro.authc.FormToken;
import com.jeesite.common.shiro.authc.LdapToken;
import com.jeesite.common.utils.SpringUtils;
import com.jeesite.common.web.http.ServletUtils;
import com.jeesite.modules.sys.entity.Log;
import com.jeesite.modules.sys.entity.User;
import com.jeesite.modules.sys.service.EmpUserService;
import com.jeesite.modules.sys.service.UserService;
import com.jeesite.modules.sys.utils.LogUtils;
import com.jeesite.modules.sys.utils.UserUtils;
/**
* 系统认证授权实现类

View File

@@ -8,7 +8,7 @@ import com.jeesite.common.ueditor.define.State;
import com.jeesite.common.ueditor.hunter.FileManager;
import com.jeesite.common.ueditor.hunter.ImageHunter;
import com.jeesite.common.ueditor.upload.Uploader;
import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;

View File

@@ -5,7 +5,7 @@ import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;

View File

@@ -6,9 +6,9 @@ import com.jeesite.common.ueditor.define.AppInfo;
import com.jeesite.common.ueditor.define.BaseState;
import com.jeesite.common.ueditor.define.MultiState;
import com.jeesite.common.ueditor.define.State;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.io.FileUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.Arrays;
import java.util.Collection;

View File

@@ -1,5 +1,12 @@
package com.jeesite.common.ueditor.hunter;
import com.jeesite.common.config.Global;
import com.jeesite.common.ueditor.PathFormat;
import com.jeesite.common.ueditor.define.*;
import com.jeesite.common.ueditor.upload.StorageManager;
import org.apache.commons.io.IOUtils;
import javax.servlet.http.HttpServletRequest;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.URL;
@@ -8,19 +15,6 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
import com.jeesite.common.config.Global;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.io.IOUtils;
import com.jeesite.common.ueditor.PathFormat;
import com.jeesite.common.ueditor.define.AppInfo;
import com.jeesite.common.ueditor.define.BaseState;
import com.jeesite.common.ueditor.define.MIMEType;
import com.jeesite.common.ueditor.define.MultiState;
import com.jeesite.common.ueditor.define.State;
import com.jeesite.common.ueditor.upload.StorageManager;
/**
* 图片抓取器
*

View File

@@ -6,9 +6,9 @@ import com.jeesite.common.ueditor.define.AppInfo;
import com.jeesite.common.ueditor.define.BaseState;
import com.jeesite.common.ueditor.define.FileType;
import com.jeesite.common.ueditor.define.State;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.codec.binary.Base64;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
public final class Base64Uploader {

View File

@@ -6,10 +6,10 @@ import com.jeesite.common.io.FileUtils;
import com.jeesite.common.media.VideoUtils;
import com.jeesite.common.ueditor.PathFormat;
import com.jeesite.common.ueditor.define.*;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;

View File

@@ -2,7 +2,7 @@ package com.jeesite.common.ueditor.upload;
import java.util.Map;
import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import com.jeesite.common.ueditor.define.State;

View File

@@ -10,9 +10,9 @@ 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;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
/**
* 业务分类Entity

View File

@@ -12,7 +12,7 @@ import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.biz.entity.BizCategory;
import com.jeesite.modules.biz.service.BizCategoryService;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.annotations.Api;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -32,7 +32,7 @@ import java.util.Map;
* @version 2019-08-12
*/
@Controller
@Tag(name = "BizCategory - 业务分类")
@Api(tags = "BizCategory - 业务分类")
@RequestMapping(value = "${adminPath}/biz/bizCategory")
public class BizCategoryController extends BaseController {

View File

@@ -4,9 +4,9 @@
*/
package com.jeesite.modules.config.server;
import jakarta.servlet.Filter;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequestWrapper;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
@@ -26,7 +26,6 @@ public class SchemeHttpsConfig {
public FilterRegistrationBean<Filter> schemeHttpsFilter() {
FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
bean.setName("schemeHttpsFilter");
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
bean.setFilter((request, response, chain) -> {
chain.doFilter(new HttpServletRequestWrapper((HttpServletRequest) request) {
@Override

View File

@@ -4,19 +4,19 @@
*/
package com.jeesite.modules.config.web;
import com.alibaba.druid.support.jakarta.StatViewServlet;
import com.alibaba.druid.support.jakarta.WebStatFilter;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.alibaba.druid.util.Utils;
import com.jeesite.common.web.http.ServletUtils;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
@@ -25,7 +25,7 @@ import java.io.IOException;
* @version 2017年11月30日
*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(name={"state.enabled","state.druid"}, havingValue="true", matchIfMissing=true)
@ConditionalOnProperty(name="state.enabled", havingValue="true", matchIfMissing=true)
public class DruidStatConfig {
/**
@@ -43,7 +43,7 @@ public class DruidStatConfig {
bean.addUrlPatterns("/*");
return bean;
}
/**
* 注册DruidServlet
*/

View File

@@ -7,15 +7,16 @@ package com.jeesite.modules.config.web;
import com.jeesite.common.config.Global;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.web.http.ServletUtils;
import jakarta.servlet.Filter;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import javax.servlet.Filter;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
/**
* IP地址黑白名单过滤器配置
*/

View File

@@ -10,9 +10,6 @@ import com.jeesite.common.web.BaseController;
import com.jeesite.modules.file.entity.FileUpload;
import com.jeesite.modules.file.entity.FileUploadParams;
import com.jeesite.modules.file.service.FileUploadService;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Controller;
@@ -20,6 +17,9 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
@@ -35,7 +35,7 @@ public class FileUploadController extends BaseController {
@Autowired
private FileUploadService fileUploadService;
/**
* 上传文件参数
*/
@@ -53,7 +53,7 @@ public class FileUploadController extends BaseController {
model.put("imageMaxHeight", Global.getConfigToInteger("file.imageMaxHeight", "768"));
return model;
}
/**
* 上传文件
*/
@@ -62,14 +62,14 @@ public class FileUploadController extends BaseController {
public Map<String, Object> uploadFile(FileUploadParams params) {
return fileUploadService.uploadFile(new FileUpload(), params);
}
/**
* 下载文件
*/
@RequestMapping(value = "/download/{fileUploadId}")
public String downloadFile(@PathVariable("fileUploadId") String fileUploadId, String preview, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
FileUpload fileUpload = fileUploadService.getFile(new FileUpload(fileUploadId));
return fileUploadService.downloadFile(fileUpload, preview, "file", request, response);
return fileUploadService.downloadFile(fileUpload, preview, request, response);
}
/**

View File

@@ -4,8 +4,8 @@
*/
package com.jeesite.modules.file.web;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Controller;

View File

@@ -9,16 +9,16 @@ import com.jeesite.common.config.Global;
import com.jeesite.common.io.FileUtils;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.web.BaseController;
import io.swagger.v3.oas.annotations.Hidden;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
@@ -29,11 +29,11 @@ import java.io.IOException;
*/
@Controller
@ConditionalOnProperty(name="file.isFileStreamDown", havingValue="true", matchIfMissing=true)
@Hidden
@ApiIgnore
public class UserfilesController extends BaseController {
@RequestMapping(value="/userfiles/**")
public String fileStreamDown(HttpServletRequest request, HttpServletResponse response)
public String fileStreamDown(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取相对文件地址
@@ -49,8 +49,7 @@ public class UserfilesController extends BaseController {
String uid = request.getParameter("uid");
if (StringUtils.isNotBlank(url) && StringUtils.isNotBlank(uid)){
fileUrl = url; //EncodeUtils.decodeUrl(url); 不用解码,否则腾讯云存储的时候预览不能显示
String type = StringUtils.defaultIfBlank(request.getParameter("type"), "file");
fileUri = Global.getCtxPath() + Global.getAdminPath() + "/" + type + "/download/" + uid;
fileUri = Global.getCtxPath() + Global.getAdminPath() + "/file/download/" + uid;
filePath = fileName;
} else if (StringUtils.isNotBlank(fileName)){
fileUri += "?fileName=" + EncodeUtils.encodeUrl(fileName);
@@ -59,9 +58,7 @@ public class UserfilesController extends BaseController {
request.setAttribute("fileUrl", fileUrl); // 文件访问地址
request.setAttribute("fileUri", fileUri); // 文件下载地址fileDown
request.setAttribute("filePath", filePath); // 文件相对路径或文件名
request.setAttribute("fileUrls", request.getParameter("urls")); // 文件地址列表
request.setAttribute("fileNames", request.getParameter("names")); // 文件名称列表
request.setAttribute("imageFlag", request.getParameter("image")); // 是否图片控件
request.setAttribute("fileUrls", request.getParameter("urls")); // 前后照片列表
request.setAttribute(RequestDispatcher.FORWARD_REQUEST_URI, previewUrl);
request.getRequestDispatcher(previewUrl).forward(request, response);
return null;

View File

@@ -6,9 +6,9 @@ package com.jeesite.modules.msg.entity;
import java.util.Date;
import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.entity.DataEntity;

View File

@@ -6,9 +6,9 @@ package com.jeesite.modules.msg.entity;
import java.util.Date;
import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.entity.DataEntity;

View File

@@ -4,9 +4,14 @@
*/
package com.jeesite.modules.msg.web;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import com.jeesite.common.config.Global;
import com.jeesite.common.entity.Page;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.msg.entity.MsgInner;
import com.jeesite.modules.msg.entity.MsgInnerRecord;
import com.jeesite.modules.msg.entity.MsgPush;
import com.jeesite.modules.msg.service.MsgInnerService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -18,14 +23,8 @@ 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.lang.StringUtils;
import com.jeesite.common.web.BaseController;
import com.jeesite.modules.msg.entity.MsgInner;
import com.jeesite.modules.msg.entity.MsgInnerRecord;
import com.jeesite.modules.msg.entity.MsgPush;
import com.jeesite.modules.msg.service.MsgInnerService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 内部消息Controller

View File

@@ -4,15 +4,15 @@
*/
package com.jeesite.modules.sys.entity;
import jakarta.validation.constraints.Size;
import jakarta.validation.constraints.NotBlank;
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;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 行政区划Entity
* @author ThinkGem

View File

@@ -16,9 +16,9 @@ import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.List;
/**

View File

@@ -17,8 +17,9 @@ import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
import com.jeesite.common.utils.excel.annotation.ExcelFields;
import com.jeesite.common.utils.excel.fieldtype.CompanyType;
import com.jeesite.common.utils.excel.fieldtype.OfficeType;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.Valid;
/**
* 员工用户管理Entity
@@ -128,7 +129,7 @@ public class EmpUser extends User {
super.setRefObj(employee);
}
@Schema(description = "根据各种编码查询")
@ApiModelProperty("根据各种编码查询")
public String[] getCodes() {
return codes;
}

Some files were not shown because too many files have changed in this diff Show More