Compare commits

..

384 Commits

Author SHA1 Message Date
thinkgem
290e8ec31e 5.9.2 2024-11-23 09:55:58 +08:00
thinkgem
30039a35bb update 2024-11-21 09:49:06 +08:00
thinkgem
14f57be279 更新注册提示信息 2024-11-13 17:16:45 +08:00
thinkgem
207897e7be update 2024-11-13 13:47:51 +08:00
thinkgem
df728bc3d6 切换系统时,清除当前岗位和角色状态 2024-11-12 10:55:08 +08:00
thinkgem
3333ad2e10 设备信息字段 device_info 长度调整为 4000 2024-11-11 17:11:33 +08:00
thinkgem
83752a77cb spring boot 3.3.5 2024-11-08 09:52:44 +08:00
thinkgem
14437dfb7a 登录后重定向地址验证,如果是非法地址,则指定默认的登录成功地址 2024-11-07 17:53:43 +08:00
thinkgem
ce1c06eef2 update README.md 2024-11-07 16:13:30 +08:00
thinkgem
a98f8a816a update description 2024-11-07 16:13:26 +08:00
thinkgem
5d16bb8103 update version 2024-11-07 15:28:16 +08:00
thinkgem
48dbec081d Vue登录界面useCorpModel更改为loginCodeCorpUnique 2024-11-07 15:15:48 +08:00
thinkgem
f9648bcaf8 新增 窗口右上角的头像下拉菜单,切换当前用户所属岗位,并联动切换当前菜单权限 2024-11-07 10:26:27 +08:00
thinkgem
68a7c395e0 提升登录性能;支持普通用户升级为超管用户。 2024-11-07 10:22:32 +08:00
thinkgem
0b4bb63dbe 优化 MenuDao.xml 接口 findByUserCode 替换为 findByRoleCodes 升级时注意 2024-11-07 10:19:25 +08:00
thinkgem
03c5d4a051 新增 当前用户 user.getRoleList() 支持返回 岗位关联角色数据 2024-11-07 10:19:13 +08:00
thinkgem
380ee54ae5 新增 岗位关联角色(用户->岗位->角色)权限控制,可通过 user.postRolePermi=true 参数开启 2024-11-07 10:17:24 +08:00
thinkgem
6e3b93f645 增加岗位切换接口;优化登录菜单权限查询,直接通过当前用户角色查询,减少联表,提升查询效率。 2024-11-07 10:15:59 +08:00
thinkgem
3eaa799455 优化 增加岗位保存时清理关联的用户缓存 2024-11-07 10:14:32 +08:00
thinkgem
283d27d0df 优化 超级管理员作为普通员工时的角色数据查询,允许修改超级管理员员工信息,不允许停用禁用删除超管 2024-11-07 10:12:54 +08:00
thinkgem
8c86d1534c 增加手机端单表代码生成模板 2024-11-05 11:26:05 +08:00
thinkgem
40054e4c6e quartz 2.4.0.rc3 2024-11-04 18:14:14 +08:00
thinkgem
2981699bd1 update 2024-11-04 17:52:11 +08:00
thinkgem
3484d93a42 jackson 2.18.1 2024-11-04 17:36:31 +08:00
thinkgem
9a70ddb758 优化 mvc 接受字段类型不一致信息显示,方便调试 2024-11-01 19:59:51 +08:00
thinkgem
805759db01 调整代码生成模板目录 2024-11-01 10:44:03 +08:00
thinkgem
481246f52e 优化表单内表格的行高和边距 2024-11-01 10:43:32 +08:00
thinkgem
ba077ecd41 update 2024-10-25 19:07:18 +08:00
thinkgem
00d3995bd4 5.9.1 2024-10-21 22:34:58 +08:00
thinkgem
ab801bd9cc update app name 2024-10-21 14:12:14 +08:00
thinkgem
d71ad5e140 spring boot 3.2.10 2024-10-10 21:10:45 +08:00
thinkgem
e7177d7f65 编辑表格中被隐藏的旧数据行控件忽略前端校验 2024-10-10 09:03:26 +08:00
thinkgem
8fba82935b update 2024-10-08 16:34:12 +08:00
thinkgem
7d9b643edf 代码生成模板新增vue子表独立组件的生成 2024-10-08 14:13:32 +08:00
thinkgem
2f74e04645 代码生成支持带减号的工程模块名生成工程和微服务工程 2024-10-08 14:08:23 +08:00
thinkgem
1e723aae04 驼峰命名法工具增加减号替换 2024-10-08 14:04:57 +08:00
thinkgem
330a2977eb 增加启动完成提示信息日志 2024-10-08 14:03:05 +08:00
thinkgem
8167fff4bc 生成前端路径更改为 Vue 前端路径,仅用于分离端的代码生成路径。 2024-09-27 15:09:29 +08:00
thinkgem
6c3ecdac63 代码生成模板新增classNameSimple参数,不带模块名的类名。子表List字段名不带模块名。 2024-09-27 15:08:44 +08:00
thinkgem
874a4465ea fix gen template version 2024-09-24 17:09:57 +08:00
thinkgem
c3e07cd96c 启动日志中显示 tomcat 版本号 2024-09-24 14:02:40 +08:00
thinkgem
509ab88fee 新增监控开关参数 服务器监控 state.server 缓存监控 state.cache 数据监控 state.druid 2024-09-23 13:32:45 +08:00
thinkgem
edce962f2c 文件预览列表增加文件名返回参数 2024-09-23 12:02:14 +08:00
thinkgem
01f599db82 update upbw html 2024-09-22 19:28:23 +08:00
thinkgem
518b386637 update README.md 2024-09-22 17:38:33 +08:00
thinkgem
586a6adf97 5.9.0 2024-09-18 09:45:29 +08:00
thinkgem
495da42f2b 增加 gen.simpleRequestMapping 默认参数 true 可简洁 url 地址 2024-09-18 09:08:33 +08:00
thinkgem
b353477793 fix 代码生成业务列表选择框i18n路径 2024-09-18 09:08:08 +08:00
thinkgem
4d3dd85a1c 数据源管理:新增连接等待时间、连接失败中断默认参数;新增集群支持,单机修改后自动同步到集群其它节点 2024-09-16 22:22:08 +08:00
thinkgem
d7b4c2494d update README.md 2024-09-14 13:05:54 +08:00
thinkgem
0abd8cbd5a update 2024-09-14 13:04:27 +08:00
thinkgem
9355576fad update 2024-09-14 12:54:52 +08:00
thinkgem
f979005e2f 小屏幕下的菜单按钮布局优化 2024-09-13 10:47:28 +08:00
thinkgem
f65c6e0ab5 默认显示列表搜索框 2024-09-13 10:46:36 +08:00
thinkgem
dbafe28918 默认显示列表搜索框 2024-09-13 10:46:19 +08:00
thinkgem
ec47a71e16 默认显示列表搜索框 2024-09-13 10:46:06 +08:00
thinkgem
4b566084e3 默认显示列表搜索框 2024-09-13 10:45:49 +08:00
thinkgem
a4ecd765d4 new version 2024-09-12 10:12:16 +08:00
thinkgem
f3ea863e76 子表增加表单验证提示、代码格式化 2024-09-11 10:16:42 +08:00
thinkgem
7787d7ce0a update README.md 2024-08-29 16:22:51 +08:00
thinkgem
3cfef3c57e 优化导入 2024-08-29 13:12:41 +08:00
thinkgem
8a10f1679a update 2024-08-29 10:31:14 +08:00
thinkgem
f80e1b6c3a 新增支持 Vue 地址路由参数,使用 {param1} 自动替换为 :param1,用法详见 params.vue 2024-08-28 15:09:31 +08:00
thinkgem
49393124ac 新增导出Excel数据按钮loading状态 2024-08-27 14:40:45 +08:00
thinkgem
8e9b9043aa update 2024-08-26 21:42:45 +08:00
thinkgem
a210e7f621 Merge remote-tracking branch 'origin/v5.springboot3' into v5.springboot3 2024-08-22 17:44:11 +08:00
thinkgem
9cf4cd30a2 update README.md 2024-08-22 17:40:04 +08:00
thinkgem
60d6b9c1cf 优化流程表单模板,支持从表单进入显示审批意见框 2024-08-16 18:44:26 +08:00
thinkgem
b499bb951b update 2024-08-16 17:49:20 +08:00
thinkgem
da91070c30 5.8.1 2024-08-16 16:00:36 +08:00
thinkgem
8fd7fcb489 update 2024-08-15 19:59:57 +08:00
thinkgem
cad2ff85ef 5.8.1 2024-08-12 11:17:22 +08:00
thinkgem
8bbd343af4 优化查询的更多按钮,显示一个双箭头,增加动画效果 2024-08-12 10:21:49 +08:00
thinkgem
7b4499135b 添加版本提示 2024-08-09 14:18:09 +08:00
thinkgem
da954bf68d 将账号+手机验证码登录,替换为手机号+验证码登录;当一个手机号绑定多个账号的时候,可以让用户选择登录的账号进行登录;新增userService.findListByMobile接口 2024-08-02 20:01:24 +08:00
thinkgem
6b428bcb50 Excel导入导出支持ExcelFields注解添加到类上 2024-07-28 13:24:25 +08:00
thinkgem
1d94e4511d spring boot 3.2 2024-07-28 13:22:34 +08:00
thinkgem
91b6344479 代码优化 2024-07-26 11:10:04 +08:00
thinkgem
35a32ce799 添加 webp 格式 2024-07-25 11:53:05 +08:00
thinkgem
768c162150 代码优化 2024-07-25 11:36:11 +08:00
thinkgem
f6e598d225 移除fst依赖 2024-07-25 11:35:54 +08:00
thinkgem
5084ac39cf 新增 web.isDefaultResult 参数,默认全局进行接口结果包装为 { code: 200, msg: "", data: {} | [] };新增 web.resultParamName 和 headerParamName 参数,对个别结果进行包装 2024-07-24 14:59:45 +08:00
thinkgem
ea5e164a4e update README.md 2024-07-24 14:54:52 +08:00
thinkgem
fcc53684cd 新增 SM2Utils、SM3Utils、SM4Utils 国密算法工具类及测试类 2024-07-23 19:44:28 +08:00
thinkgem
c53b52f932 新增 encrypt.defaultKey 参数,适用于 Aes、M3 加密的默认秘钥;新增 encrypt.storeBase64 参数,是否将 Hex 编码改为 Base64 编码存储;新增 encrypt.smAlgorithm 参数,是否使用国密 SM 算法(一键替换 SHA-1 替换为 SM3、AES 替换为 SM4 算法) 2024-07-23 19:43:27 +08:00
thinkgem
5f104fce87 新增 encrypt.smAlgorithm 参数,是否使用国密 SM 算法(一键替换 SHA-1 替换为 SM3、AES 替换为 SM4 算法) 2024-07-23 19:41:18 +08:00
thinkgem
a15fb508f9 新增 EncryptTypeHandler、SM4TypeHandler 加密 MyBatis Handler 2024-07-23 19:39:56 +08:00
thinkgem
89d785f04c 新增 encrypt.defaultKey 参数,适用于 Aes、M3 加密的默认秘钥;新增 encrypt.storeBase64 参数,是否将 Hex 编码改为 Base64 编码存储 2024-07-23 19:39:19 +08:00
thinkgem
09b1505120 优化 加密算法工具类,增加测试类。 2024-07-23 19:37:56 +08:00
thinkgem
6561862aae 添加 bcprov 算法类库 2024-07-23 19:37:08 +08:00
thinkgem
e4335eb840 新增 PwdService 服务类方便自定义重写密码相关实现 2024-07-21 17:40:03 +08:00
thinkgem
5e5111523d update 消除干扰 2024-07-21 17:30:17 +08:00
thinkgem
ad893798a5 new version 2024-07-19 08:55:07 +08:00
thinkgem
414f44c338 增加Excel导入导出测试类,增加模板导出。 2024-07-18 15:52:08 +08:00
thinkgem
237ee91644 update README.md. 2024-07-17 08:59:15 +08:00
thinkgem
c0b42921ec add ckplayer 2024-07-17 08:58:33 +08:00
thinkgem
3394ddcc03 修复UEditor上传视频的首图不显示的问题 2024-07-11 10:22:38 +08:00
thinkgem
bfd128f6bd update 2024-07-11 09:47:34 +08:00
thinkgem
1263b18724 update 2024-07-08 17:27:53 +08:00
thinkgem
e942c70553 format pom.xml 2024-07-07 19:10:36 +08:00
thinkgem
3d63ccba2f update sysLogin 2024-07-07 12:26:50 +08:00
thinkgem
7b20b3cc0e poi version 2024-07-07 12:21:21 +08:00
thinkgem
0caf88a0bc 将 test 独立出模块,方便代码管理 2024-07-06 22:21:58 +08:00
thinkgem
5e933119f3 使用 __url 参数统一管理成功跳转地址 2024-07-06 10:23:18 +08:00
thinkgem
b4f3e6b6a2 update 2024-07-04 19:23:19 +08:00
thinkgem
e4fc9057b3 新增附属部门切换接口,方便获取当前默认部门 2024-07-04 16:45:00 +08:00
thinkgem
dd3e52a8ca 5.8.0 2024-07-03 12:54:20 +08:00
thinkgem
e81e548f92 5.8.0 2024-07-01 18:51:42 +08:00
thinkgem
616e2f45cb 匿名类添加过滤器名称,防止被重名覆盖 2024-07-01 18:39:01 +08:00
thinkgem
de312d3ec6 update 2024-07-01 18:38:01 +08:00
thinkgem
41456b8965 RoleService增加findManageMenuList 2024-06-27 15:43:56 +08:00
thinkgem
afe32c5abe 5.8.0 2024-06-26 11:22:13 +08:00
thinkgem
31349430b6 update 2024-06-25 17:13:55 +08:00
thinkgem
11747540ad spring boot 3.2.7、mybatis 3.5.15、jsqlparser 4.7、shiro 2.0.1、tools... 2024-06-25 17:10:07 +08:00
thinkgem
a8ad781197 uploadPath参数增加变量corpCode、userCode、userType、userCache中的key 2024-06-24 11:32:43 +08:00
thinkgem
a8353b654b update sso api success url 2024-06-22 09:05:53 +08:00
thinkgem
66b4932d9d 当没有传递参数类型并有方法重载时,需优先获取无参数的方法名 2024-06-20 17:56:25 +08:00
thinkgem
b50e6005da abc验证的修改会影响租户管理的保存,还原并增加abc123验证 2024-06-13 11:29:12 +08:00
thinkgem
5567e96d65 更新CMS全文搜索模块安装提示 2024-06-03 10:58:21 +08:00
thinkgem
865986da28 消息查看增加空值校验 2024-06-03 10:56:46 +08:00
thinkgem
13d8b8390a next 2024-05-28 15:03:13 +08:00
thinkgem
cc0794c3fc 增加ctxPath参数,当映射根路径不同的时候使用 2024-05-28 14:38:49 +08:00
thinkgem
0a29bed4ad update 2024-05-27 15:30:14 +08:00
thinkgem
5a4c03332a add dbm module 2024-05-27 15:28:32 +08:00
thinkgem
fa6b887ed2 file.uploadPath 增加 {bizType} 变量 2024-05-27 08:34:20 +08:00
thinkgem
d3da625f72 update 2024-05-23 08:51:43 +08:00
thinkgem
c70889eedd get cookie add xss 2024-05-20 10:29:49 +08:00
thinkgem
6c62d191c5 大文件下载 2024-05-17 12:31:05 +08:00
thinkgem
2900fb0ce2 gen template type fix 2024-05-14 22:26:30 +08:00
thinkgem
7597dcd572 update README.md 2024-05-14 19:22:05 +08:00
thinkgem
3430d160bf update README.md 2024-05-14 18:47:33 +08:00
thinkgem
ae63df2d55 update README.md 2024-05-14 15:15:06 +08:00
thinkgem
668042ca1a 5.7.1 2024-05-13 14:51:43 +08:00
thinkgem
3eef280ade 代码优化 2024-05-12 16:00:10 +08:00
thinkgem
f83e3f5e7f skinName add xssFilter 2024-05-11 15:28:12 +08:00
thinkgem
92870be96e biz_category 2024-05-11 14:23:59 +08:00
thinkgem
a3a7bd0230 MsgInnerService抽离接口 2024-05-11 14:23:14 +08:00
thinkgem
d0eba614bd 调整配置文件目录 2024-05-11 13:44:05 +08:00
thinkgem
7f42e99070 update README.md 2024-05-10 22:52:33 +08:00
thinkgem
867ba3933c update 2024-05-10 17:41:32 +08:00
thinkgem
149ca55246 update 2024-05-08 16:47:49 +08:00
thinkgem
15c180440f h2数据表增加备注信息 2024-05-08 15:15:58 +08:00
thinkgem
8053457e17 添加达梦和金仓数据库的驱动注释 2024-05-07 13:58:33 +08:00
thinkgem
9f952f1b5b 字典值dict_value字段存储加长 2024-05-07 13:42:35 +08:00
thinkgem
66740854f6 update 2024-05-07 13:41:20 +08:00
thinkgem
ecb31bf21a bootstrap css 3.4.1 2024-05-07 13:41:01 +08:00
thinkgem
2e8cc49dfa update 2024-05-02 21:17:36 +08:00
thinkgem
97ef1fdec1 update yml help 2024-04-30 17:58:21 +08:00
thinkgem
9decf2ed58 重命名一些CMS模块字段名,避免有些数据库关键字问题 2024-04-29 14:58:38 +08:00
thinkgem
54b9d85b0d 新增业务分类功能维护,作为通用业务分类,替换流程分类 2024-04-27 18:08:31 +08:00
thinkgem
1d1eda1f0a add dbm 2024-04-27 11:27:36 +08:00
thinkgem
65ed0fa550 update 2024-04-27 10:27:05 +08:00
thinkgem
15c440be0a update 2024-04-26 16:14:39 +08:00
thinkgem
dbc4eb9bed 美化表单的子标题缩进一些及其它细节 2024-04-26 08:28:50 +08:00
thinkgem
beb3285a51 添加 IdGen.randomShortString() 方法 2024-04-25 23:31:26 +08:00
thinkgem
1b74cbe4ba update 2024-04-25 23:30:20 +08:00
thinkgem
3fde0742aa 修改前后差异数据表格展示表格美化 2024-04-23 15:39:06 +08:00
thinkgem
71ea34ec0e update 2024-04-23 15:37:32 +08:00
thinkgem
41f1675c2b bpm:comment 组件增加 showCommWords 参数 2024-04-22 20:53:50 +08:00
thinkgem
57deb501ba update 2024-04-21 19:54:19 +08:00
thinkgem
e806f67b9f 后端验证提示信息优化 2024-04-21 19:53:22 +08:00
thinkgem
dc80b74c79 前后差异日志分析,排除@id的属性展示,展示界面美化 2024-04-21 19:52:50 +08:00
thinkgem
a3b4a1fc7d 提高日志标题生成的准确率 2024-04-21 19:49:28 +08:00
thinkgem
660c045965 样式细节优化 2024-04-19 19:04:13 +08:00
thinkgem
5c54c1aae4 后面显示编号的,去掉括号前的空格 2024-04-19 19:03:55 +08:00
thinkgem
132ff7a58d update 排除 char 2024-04-19 19:03:00 +08:00
thinkgem
d26d86805a 新增一些便捷方法,如果有设定属性值再使用 2024-04-18 21:56:23 +08:00
thinkgem
de601181df 新增能接受异常的 Function 2024-04-18 21:54:18 +08:00
thinkgem
cdd95e1ad5 增加 连接池 查询超时时间、事务超时时间 参数 2024-04-18 21:44:59 +08:00
thinkgem
da33d8781b 标题子标题优化 2024-04-18 21:22:44 +08:00
thinkgem
6529177a6b validation abc 验证增加字母验证要求 2024-04-18 21:20:47 +08:00
thinkgem
391e20d6f8 liquibase 4.20.0 2024-04-17 12:18:41 +08:00
thinkgem
4042b8cace 代码优化 2024-04-17 10:27:07 +08:00
thinkgem
cde338b7c2 update format 2024-04-17 09:06:04 +08:00
thinkgem
03f5b373f6 fix crud_cloud_select_vue 2024-04-15 11:16:06 +08:00
thinkgem
586ee75d4a 更新菜单链接地址帮助提示信息 2024-04-13 17:04:33 +08:00
thinkgem
9ef6140be0 如果填写组件路径,则组件名称根据组件路径自动生成,而不是链接地址 2024-04-12 21:25:53 +08:00
thinkgem
56fbc4d52a 样式美化 2024-04-12 18:02:19 +08:00
thinkgem
2f315cd39a dataGrid编辑表格下拉框增加itemTitle属性 2024-04-12 18:00:21 +08:00
thinkgem
66e5bff947 公司部门岗位增加代码模糊查询 2024-04-11 15:55:34 +08:00
thinkgem
21c8fe15b7 json 提交表单,增加 exclude 参数,排除不被序列化的参数 2024-04-11 15:55:06 +08:00
thinkgem
49506fc10e update 2024-04-10 14:17:07 +08:00
thinkgem
57d767226a 更新apiMode提示 2024-04-09 14:47:40 +08:00
thinkgem
0a9007793a data-params to data-url-params 2024-04-09 08:52:38 +08:00
thinkgem
c82b83492d 更新提示 2024-04-08 21:58:31 +08:00
thinkgem
6e3a1476ca update 2024-04-08 14:12:20 +08:00
thinkgem
7abd08f04e 单选框和下拉框控件只显示字典类型的根节点数据 2024-04-08 10:35:37 +08:00
thinkgem
11168f4356 自动排序号优化 2024-04-08 10:24:27 +08:00
thinkgem
6d0d134ea2 update 2024-04-08 10:08:50 +08:00
thinkgem
ac17706fc7 字典数据管理去掉停用启用校验下级的限制,并支持级联更新 2024-04-08 10:00:30 +08:00
thinkgem
0e82478fad new version 2024-04-07 09:24:25 +08:00
thinkgem
f7344d4736 add testResource config 2024-04-05 16:54:07 +08:00
thinkgem
137080b3c0 仅侧边栏时加 first-open 2024-04-05 16:53:17 +08:00
thinkgem
2bf621c0cf update README.md 2024-04-01 12:03:11 +08:00
thinkgem
59e0a80b37 web-fast 默认使用 vue 前端展示 2024-04-01 12:02:24 +08:00
thinkgem
77d4247449 update PageNotFound log level 2024-04-01 12:01:59 +08:00
thinkgem
04028745ad 404 page javax to jakarta 2024-04-01 11:53:14 +08:00
thinkgem
9b9e7a85a6 增加msgview初始菜单地址 2024-04-01 11:52:15 +08:00
thinkgem
a0db2ed70a 代码优化 2024-04-01 11:51:33 +08:00
thinkgem
5dd59473a3 5.7.0 2024-03-28 14:15:58 +08:00
thinkgem
6bd9f8179a update README.md 2024-03-28 14:15:52 +08:00
thinkgem
59e3745580 更新建表语句 2024-03-28 14:14:43 +08:00
thinkgem
9164fe2dc6 vue icon add prefix i- 2024-03-27 11:12:08 +08:00
thinkgem
70f26006da update import 2024-03-27 11:11:42 +08:00
thinkgem
9332517f39 新增IP地址黑白名单过滤器及参数配置 2024-03-25 13:57:26 +08:00
thinkgem
b53789818d 更新注释提示 2024-03-25 13:53:10 +08:00
thinkgem
cc0f5fedb8 update fonts 2024-03-22 21:45:22 +08:00
thinkgem
7696692ad9 访问登录页不生成会话,但要在生成验证码前获取会话,方便验证。 2024-03-22 17:29:53 +08:00
thinkgem
ddaaca6be8 增加根据用户编码查询岗位列表接口 2024-03-22 14:42:57 +08:00
thinkgem
96bd62a375 侧边栏增加是否展开第一个菜单开关 2024-03-22 14:42:16 +08:00
thinkgem
b9f6b93bbe move file 2024-03-22 14:41:32 +08:00
thinkgem
4df4f822bc format code 2024-03-22 14:40:49 +08:00
thinkgem
45b8595122 EmployeePostDao 增加根据用户编码查询岗位 sqlMap().loadJoinTableAlias("p,u") 的时候有效 2024-03-22 14:40:28 +08:00
thinkgem
03a031360c 模块管理增加生成模块的基础路径和模板存储字段,生成模块代码时给于确认提示;微服务下isLoader为true; 2024-03-22 09:16:43 +08:00
thinkgem
c222ab29ff 修正代码生成模板logback-spring-elk和prod.xml文件名 2024-03-22 09:15:42 +08:00
thinkgem
ff58e4f05c update tip 2024-03-21 17:26:34 +08:00
thinkgem
0e95a41edc add getPageList(List<T> list, int pageNo, int pageSize) 2024-03-21 15:46:04 +08:00
thinkgem
680a3f2a8c 分离端调用login和index接口时,同时返回cookie。特殊情况下的iframe的页面会话同步 2024-03-20 14:05:32 +08:00
thinkgem
aa904c5763 update productVersion 2024-03-20 09:39:23 +08:00
thinkgem
293821d0ab fix import 2024-03-15 20:53:12 +08:00
thinkgem
bcedc006e1 返回响应头增加x-token,通过记住我登录系统时使用。 2024-03-13 13:34:24 +08:00
thinkgem
be9326d671 演示模式不允许清理会话和缓存 2024-03-13 13:29:10 +08:00
thinkgem
debc349810 返回响应头增加x-token,通过记住我登录系统时使用。 2024-03-13 13:18:44 +08:00
thinkgem
40cab1f49e 代码生成器config.xml的attrType字典增加attrName,用于选择控件编码和名称获取 2024-03-13 11:35:31 +08:00
thinkgem
14365a6e76 登录超时后不再统计在线人数 2024-03-12 13:20:33 +08:00
thinkgem
6cf4bebebf 缩短Logback日志TRACE_ID的长度 2024-03-12 12:24:19 +08:00
thinkgem
7914b18e20 完善内部消息保存后的提示消息 2024-03-12 12:23:29 +08:00
thinkgem
d0fd74fa51 代码生成模板添加公司选择组件v2 2024-03-11 21:24:26 +08:00
thinkgem
000fadeb95 新增 AesTypeHandler 处理字段数据加密解密或脱敏;新增 JsonTypeHandler 处理字段数据进行 JSON 字符串与 Java 对象 自动互转 2024-03-11 17:02:58 +08:00
thinkgem
d7c9138a31 代码优化 2024-03-11 17:00:36 +08:00
thinkgem
5e4608d486 代码生成模板添加公司选择组件 2024-03-10 10:44:16 +08:00
thinkgem
9415356b20 根据当前用户有的子系统,切换到默认系统下 2024-03-08 13:30:09 +08:00
thinkgem
73a93b2721 update nacos config 2024-03-04 11:50:22 +08:00
thinkgem
d93b0c4814 shardingsphere 5.4.1、shiro 2.0.0 RELEASE 2024-03-04 09:56:03 +08:00
thinkgem
81154d7cfb spring boot 3.1.9 2024-03-01 12:34:44 +08:00
thinkgem
21215850e4 更新Docker多CPU平台架构 2024-02-28 10:34:46 +08:00
thinkgem
1b4a7523f8 fix h2db job sql 2024-02-28 10:07:25 +08:00
thinkgem
68291c61da TimeUtils millisecond to ms 2024-02-27 11:30:48 +08:00
thinkgem
be19b92e82 分页栏居右、布局调整、样式美化 2024-02-23 14:16:34 +08:00
thinkgem
0b6f5e285a next version 2024-02-23 14:01:52 +08:00
thinkgem
2f83793638 5.6.1 2024-02-18 16:01:00 +08:00
thinkgem
11cc857de7 修改默认值,oracle 下默认不启用 maxPoolPreparedStatementPerConnectionSize 可根据需要开启 2024-02-02 16:59:24 +08:00
thinkgem
fe076d7caf update 2024-02-01 09:20:47 +08:00
thinkgem
5db33072ac ueditor黑暗模式下的文字 2024-01-31 12:04:40 +08:00
thinkgem
5813875d6e spring boot 3.2.2 2024-01-31 12:02:22 +08:00
thinkgem
1c4ce3842a 更新路由表单组件 2024-01-30 16:53:32 +08:00
thinkgem
4f722ea1d7 form:fileupload组件默认加dataMap属性 2024-01-30 11:40:39 +08:00
thinkgem
05bdaad7aa 新增 js.ajaxSubmitForm支持application/json提交表单;新增 js.ajaxSubmitJson 方法 2024-01-30 11:38:24 +08:00
thinkgem
af06033521 代码优化 2024-01-26 14:42:47 +08:00
thinkgem
a54344950b ts type check 2024-01-23 17:52:55 +08:00
thinkgem
392dc80617 code format 2024-01-17 16:17:05 +08:00
thinkgem
a32f6b67f5 代码优化,方便自定义内嵌的Web服务 2024-01-15 13:45:51 +08:00
thinkgem
e343bd7ba7 报表增加请求参数的例子 2024-01-10 13:08:10 +08:00
thinkgem
0deacd54bb update 2024-01-10 13:04:28 +08:00
thinkgem
33df1fa37c 增加vue无框架页面的组件类型 2024-01-09 16:43:22 +08:00
thinkgem
faba69ca6d 存储Key增加了默认,个性化时再指定 2024-01-08 15:25:22 +08:00
thinkgem
0b7eb4138e 菜单管理增加无图标的默认图标显示 2024-01-08 15:24:18 +08:00
thinkgem
bdfba55a82 update version 2024-01-08 10:40:08 +08:00
thinkgem
aea8eb2241 5.6.0 2024-01-04 12:06:07 +08:00
thinkgem
f8cf61e02f 5.6.0 2024-01-03 16:58:43 +08:00
thinkgem
8a765082cf 配置类 ShiroConfig 改为 ShiroAutoConfiguration 方便覆写 2024-01-03 08:54:09 +08:00
thinkgem
abb86ed422 分号修正 2024-01-03 08:24:58 +08:00
thinkgem
de4dc8542b update 2024 2024-01-02 10:24:31 +08:00
thinkgem
e3c1f4f860 add ConditionalOnMissingBean 2024-01-02 10:23:31 +08:00
thinkgem
f91b714349 update 2024-01-02 10:22:45 +08:00
thinkgem
31da0c637e select2 i18n fix 2023-12-29 10:55:33 +08:00
thinkgem
93181c921d 代码优化提示 2023-12-28 09:33:26 +08:00
thinkgem
231b8308c6 优化在线用户列表数值类型的排序 2023-12-27 10:47:52 +08:00
thinkgem
1e0c073bb4 组件名称非必填 2023-12-27 10:46:44 +08:00
thinkgem
e250b23084 代码生成模板:新增Vue路由表单、新增Vue弹窗表单、新增仅后端模板 2023-12-24 21:36:17 +08:00
thinkgem
2d78175001 不设置adminPath的时候需要增加oauth2的地址认证排除 2023-12-23 23:01:31 +08:00
thinkgem
4f4bbac861 用户管理增加解冻用户功能提示 2023-12-23 23:00:43 +08:00
thinkgem
758c66e5a5 细节优化 2023-12-23 22:59:24 +08:00
thinkgem
025007203c spring boot 3.2.0、jackson 2.16.0、mybatis 3.5.14、shiro 2.0.0-a4、swagger3 2.2.19 2023-12-13 21:09:23 +08:00
thinkgem
ac32d2f061 升级 elasticsearch 8.11.1 2023-12-13 21:07:34 +08:00
thinkgem
d1973adfba 增加一些vue下用的路由 2023-12-12 09:42:50 +08:00
thinkgem
ae0745954d update 2023-12-12 09:41:55 +08:00
thinkgem
fbf952247d 全栈版本菜单增加组件名称和参数 2023-12-11 10:23:37 +08:00
thinkgem
a07cb38dab BpmButton.vue将提交审批信息移动到提交对话框中 2023-12-07 17:20:48 +08:00
thinkgem
d00f4b6d25 update 2023-12-05 16:30:44 +08:00
thinkgem
cecec315d4 update 2023-12-05 16:13:35 +08:00
thinkgem
95f7987d22 datagrid拖拽行调色 2023-12-03 16:08:20 +08:00
thinkgem
8d87b4142c 代码优化 2023-12-03 15:55:41 +08:00
thinkgem
e32c87d009 vue兼容优化 2023-12-01 10:41:35 +08:00
thinkgem
d931e0f03a 优化vue生成模板 2023-11-28 16:15:21 +08:00
thinkgem
2f80eadd26 优化vue生成模板 2023-11-28 15:46:10 +08:00
thinkgem
601205144f BasicTable子表加TextArea组件 2023-11-27 12:23:12 +08:00
thinkgem
fe5d61e4a6 树表的局部刷新改进,删除、停用、启用、修改父节点的情况下完美体验 2023-11-27 10:12:38 +08:00
thinkgem
934821e8d4 next 2023-11-27 09:11:19 +08:00
thinkgem
20d2cd7408 Layer弹窗后首先关闭获取焦点,防止回车弹出多个 2023-11-22 11:13:54 +08:00
thinkgem
dc6f361891 5.5.2 2023-11-21 21:47:23 +08:00
thinkgem
de03b43367 更新h2的库名 2023-11-20 16:01:15 +08:00
thinkgem
5f208ab60f 添加自动切换到脚本所在目录 2023-11-20 15:45:00 +08:00
thinkgem
9888d2f901 更新docker运行脚本帮助 2023-11-20 15:16:32 +08:00
thinkgem
137c523267 add db docs xlsx png 2023-11-17 11:18:11 +08:00
thinkgem
d4936ac085 增加quartz表ER图和注释 2023-11-16 11:57:14 +08:00
thinkgem
bcbdb18e15 微小Web 支持只连接业务库,不使用自带sys表 2023-11-16 10:22:45 +08:00
thinkgem
d828879568 update 2023-11-15 17:46:58 +08:00
thinkgem
bfd767f65b 增加vue的ListSelect选择框代码生成模板 2023-11-09 11:31:47 +08:00
thinkgem
25a41bd105 Byte格式化默认显示两位小数 2023-11-08 11:47:00 +08:00
thinkgem
1e6779a473 update 2023-11-06 15:38:59 +08:00
thinkgem
fcb42bfda9 修复包名取不到jakarta异常类问题 2023-11-06 15:38:47 +08:00
thinkgem
128690bd2a 小分辨率下菜单排序列不显示省略号,操作列显示水平滚动条 2023-11-01 15:40:00 +08:00
thinkgem
51542c11ed 文件上传支持自定义存储表;将文件管理独立file_upload表,与sys分离。 2023-10-30 08:47:01 +08:00
thinkgem
98876b588e 添加jdbc.connectTimeou和jdbc.socketTimeout连接池参数 2023-10-30 08:46:00 +08:00
thinkgem
00487c463d update version 2023-10-26 11:34:51 +08:00
thinkgem
66b4f61f18 模块名称增加国际化显示参数 2023-10-26 11:32:28 +08:00
thinkgem
8dbbf13520 新增一个日志清理接口,可根据需要创建job调用 2023-10-26 11:28:31 +08:00
thinkgem
80dcbc7bce 新增富文本和头像的对象存储 2023-10-23 10:57:48 +08:00
thinkgem
cdebf586d5 查询和重置增加图标、搜索框布局优化 2023-10-23 10:36:30 +08:00
thinkgem
396464feda 5.5.1 2023-10-16 21:42:47 +08:00
thinkgem
3e3176fc63 update README.md 2023-10-16 20:06:15 +08:00
thinkgem
810ad853e3 update README.md 2023-10-16 09:06:50 +08:00
thinkgem
270afadccc docker update 2023-10-12 21:26:27 +08:00
thinkgem
4beb86c2ea spring boot 3.1.4、shiro 2.0.0-a-3 2023-10-08 17:26:11 +08:00
thinkgem
7c22be7a54 update README.md 2023-10-08 17:22:02 +08:00
thinkgem
37dd13061c 修改erm默认字体大小,适应多操作系统 2023-10-01 16:55:39 +08:00
thinkgem
0b4cadf163 格式化代码 2023-09-28 16:49:01 +08:00
thinkgem
7934e40586 移动到static项目 2023-09-28 16:47:39 +08:00
thinkgem
4e1b7bf17a 开源全部基础功能的前端视图和控制器文件 2023-09-28 16:42:03 +08:00
thinkgem
739a07f0da 开源Beetl全部的表单组件源码 2023-09-28 16:38:38 +08:00
thinkgem
5b619ce6dc 新增Static静态工程,减轻Core,并开源前端组件 2023-09-28 16:36:56 +08:00
thinkgem
6f49a9b5eb opensource layout, strength... 2023-09-28 16:32:53 +08:00
thinkgem
4208223617 优化JsonMapper,增加XSS过滤通用方法 2023-09-27 13:19:43 +08:00
thinkgem
dff27dc659 新增一个极小的内核web服务,1秒启动项目。 2023-09-21 15:30:19 +08:00
thinkgem
81cb9dcbba update README.md 2023-09-21 13:58:34 +08:00
thinkgem
7fa294c450 update version 2023-09-20 11:48:03 +08:00
thinkgem
5db4986d91 update README.md 2023-09-19 14:27:22 +08:00
thinkgem
d91feb0659 update 2023-09-18 10:59:38 +08:00
thinkgem
440bb920b7 linux下如果有前缀就不增加了 2023-09-18 10:59:04 +08:00
thinkgem
95fb0a5764 update script 2023-09-12 10:24:58 +08:00
thinkgem
cc5a1f3a0e add startup info 2023-08-30 15:33:03 +08:00
thinkgem
e51e1c1cd7 snakeyaml 1.33 2023-08-22 17:10:22 +08:00
thinkgem
9c8cfa3f53 5.5.0 2023-08-21 17:09:48 +08:00
thinkgem
7750fb14b9 maven ssl 2023-08-21 13:10:47 +08:00
thinkgem
2ffd3bb7bb update area data 2023-08-21 11:07:18 +08:00
thinkgem
3a1b6314a1 update 2023-08-21 10:37:46 +08:00
thinkgem
924e035074 update 5.5 2023-08-17 14:25:40 +08:00
thinkgem
b2654d3044 角色增加包含系统参数,切换系统时只需展示当前用户包含的子系统 2023-08-16 16:30:42 +08:00
thinkgem
2cfe47fcd0 new version 2023-08-16 10:42:02 +08:00
thinkgem
520dd4694b 隐藏表单右上角按钮 2023-08-14 12:40:35 +08:00
thinkgem
48eb91d65b spring boot 3.1.2 2023-08-14 12:37:26 +08:00
thinkgem
23941a4fb9 升级jquery migrate版本,解决ie9下的一些问题修复 2023-08-09 19:38:10 +08:00
thinkgem
42065195ec downloadByUrl支持post带参数下载文件 2023-08-09 16:45:41 +08:00
thinkgem
9ca999a90a 下载文件增加clearParams参数,清理掉不需要添加的请求参数,如:pageNo 2023-08-09 16:42:15 +08:00
thinkgem
a445e43fbb html和js语法编写不同的占位符,减少IDE标红提示 2023-08-03 17:23:24 +08:00
thinkgem
c47398295b remove web.xml 2023-08-03 11:17:17 +08:00
thinkgem
539ec80a3b 增加缩略图生成设置,前端组件可使用 imageThumbName 使用缩略图 2023-08-02 10:41:50 +08:00
thinkgem
f0814f45d9 ImageUtils 生成缩略图,增加目标文件参数,可以不是原文件 2023-08-02 10:39:31 +08:00
thinkgem
9032d2f98d 修改弹窗表头高度小一点 2023-08-01 11:28:04 +08:00
thinkgem
e6ce5206a4 用户列表选择样式优化 2023-08-01 11:26:55 +08:00
thinkgem
f63a2757b6 online 代码优化 2023-08-01 11:24:38 +08:00
thinkgem
90ccacbb38 update build time 2023-07-30 20:10:42 +08:00
thinkgem
47a4bd31a7 update 2023-07-27 21:44:13 +08:00
thinkgem
84df35df1b update i18n 2023-07-26 16:21:03 +08:00
thinkgem
4ee9342f2d 国际化完善 2023-07-18 11:55:40 +08:00
thinkgem
f6d1d18781 基础圆角调整 antdv4.0 2023-07-17 12:54:58 +08:00
thinkgem
df3af9d059 多语言译文优化 2023-07-17 11:33:43 +08:00
thinkgem
4b2bbff887 将语言名称传递给vue,登录时检测 2023-07-17 10:54:35 +08:00
thinkgem
59bd70328a update readme 2023-07-11 10:49:37 +08:00
thinkgem
2070c33c34 update 2023-07-11 10:15:57 +08:00
thinkgem
99625753ec api update 2023-07-10 17:08:15 +08:00
thinkgem
5ce8523702 update script 2023-07-07 20:52:06 +08:00
thinkgem
a76371e508 update 2023-07-07 19:37:20 +08:00
thinkgem
7659fa0e7d update script 2023-07-07 17:32:31 +08:00
thinkgem
d9ea710e9b update redis config 2023-07-07 17:32:01 +08:00
thinkgem
3271bb3afc springdoc、openapi、swagger v3 2023-07-05 22:38:36 +08:00
thinkgem
b371d685d4 update 2023-07-01 10:30:29 +08:00
thinkgem
f18682a3a9 jta通过 2023-06-29 12:17:05 +08:00
thinkgem
cce67cf0ad update version 2023-06-28 19:50:45 +08:00
thinkgem
b919e68dad spring boot 3.1.1、fst 3.0.4、atomikos 6.0、shiro 2.0.0、jdk17 2023-06-28 19:11:14 +08:00
thinkgem
ca0adaeeed druid jakarta 2023-06-28 19:08:52 +08:00
thinkgem
9b228d7808 update 2023-06-28 19:07:22 +08:00
thinkgem
171194cb6b 增加参数 web.xssFilterExcludeUri 2023-06-28 19:07:01 +08:00
thinkgem
07e2fe4955 update 2023-06-28 17:23:50 +08:00
thinkgem
64d694f025 shiro 2.0 2023-06-28 08:56:06 +08:00
thinkgem
f558bf356d shiro 2.0 2023-06-28 08:55:32 +08:00
thinkgem
aff67ed8fb httpclient add version 2023-06-28 08:54:29 +08:00
thinkgem
b3b5d53763 open module cas 2023-06-28 08:53:48 +08:00
thinkgem
74f72fb2b8 import javax.validation. 替换为 import jakarta.validation. 2023-06-24 14:39:14 +08:00
thinkgem
8e81648bdd import javax.validation. 替换为 import jakarta.validation. 2023-06-24 14:38:38 +08:00
thinkgem
bc0a9f7f80 javax.servlet-api to jakarta.servlet 2023-06-23 18:31:16 +08:00
thinkgem
023743bbe9 import javax.servlet. 替换为 import jakarta.servlet. 2023-06-23 18:30:23 +08:00
thinkgem
4638656f5d prepare springboot3 2023-06-23 18:15:39 +08:00
290 changed files with 3249 additions and 1193 deletions

View File

@@ -2,7 +2,7 @@
<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</h3>
<h3 align="center" style="margin:30px 0 30px;font-weight:bold;font-size:30px;">快速开发平台 - Spring Boot 3</h3>
<p align="center">
<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://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>
@@ -80,17 +80,17 @@
## 技术选型
* 主框架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
* 主框架Spring Boot 3.1、Spring Framework 6.0、Apache Shiro 2.0、J2Cache
* 持久层Apache MyBatis 3.5、Hibernate Validator 8.0、Alibaba Druid 1.2
* 视图层Spring MVC 6.0、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 6.6、符合 BPMN 规范、在线流程设计器、中国式流程、退回、撤回、自由流
* 工作流引擎Flowable 7.0、符合 BPMN 规范、在线流程设计器、中国式流程、退回、撤回、自由流
* Bootstrap 版 支持 IE9 及以上版本及其他所有现代浏览器,如:谷歌、火狐、国产浏览器 等
* Vue3 版 支持现代浏览器,如:谷歌 Chrome 86+、火狐、国产浏览器 等
* 技术选型(详细):<http://jeesite.com/docs/technology/>
* JeeSite Vue 版本:<https://gitee.com/thinkgem/jeesite-vue>
* Spring Boot 3.x 版本:<https://gitee.com/thinkgem/jeesite5/tree/v5.springboot3>
* Spring Boot 2.x 版本:<https://gitee.com/thinkgem/jeesite5/tree/v5.9>
## 更多介绍
@@ -123,8 +123,8 @@
### 本地运行
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> 并解压
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> 并解压
3. 打开文件:`/web/src/main/resources/config/application.yml` 配置JDBC连接
4. 执行脚本:`/web/bin/init-data.bat` 初始化数据库
5. 执行脚本:`/web/bin/run-tomcat.bat` 启动服务即可
@@ -134,8 +134,8 @@
### 快速运行
1. 环境准备:`JDK 1.8 or 11、17``Maven 3.6+`、无需准备数据库(使用内嵌 H2 DB、Vue资源包
2. 下载源码:<https://gitee.com/thinkgem/jeesite5/repository/archive/v5.9.zip> 并解压
1. 环境准备:`JDK 17+``Maven 3.8+`、无需准备数据库(使用内嵌 H2 DB、Vue资源包
2. 下载源码:<https://gitee.com/thinkgem/jeesite5/repository/archive/v5.springboot3.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>

View File

@@ -6,7 +6,7 @@
<parent>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-parent</artifactId>
<version>5.9.0-SNAPSHOT</version>
<version>5.9.2.springboot3-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
@@ -21,8 +21,8 @@
<!-- Servlet Api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
@@ -46,13 +46,6 @@
<version>${commons-io.version}</version>
</dependency>
<!-- Java serialization -->
<dependency>
<groupId>de.ruedigermoeller</groupId>
<artifactId>fst</artifactId>
<version>${fst.version}</version>
</dependency>
<!-- Jackson json -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>

View File

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

View File

@@ -7,6 +7,9 @@ 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;
@@ -15,9 +18,6 @@ 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

@@ -4,8 +4,8 @@
*/
package com.jeesite.common.lang;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.http.HttpServletRequest;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -28,6 +28,8 @@ 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

@@ -5,11 +5,9 @@
package com.jeesite.common.lang;
import org.apache.commons.lang3.BooleanUtils;
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;
@@ -25,13 +23,7 @@ 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 boolean isJavaSerialize;
static {
String[] ver = StringUtils.split(System.getProperty("java.version"), StringUtils.DOT);
isJavaSerialize = ver.length > 0 && Integer.parseInt(ver[0]) > 1;
}
/**
* 转换为 Double 类型
*/
@@ -164,11 +156,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
*/
public static byte[] serialize(Object object) {
try {
if (isJavaSerialize) {
return ObjectUtils.serializeJava(object);
}else {
return ObjectUtils.serializeFst(object);
}
return ObjectUtils.serializeJava(object);
} catch (Exception e) {
logger.error("serialize: {}", e.getMessage());
}
@@ -182,11 +170,7 @@ public class ObjectUtils extends org.apache.commons.lang3.ObjectUtils {
*/
public static Object unserialize(byte[] bytes) {
try {
if (isJavaSerialize) {
return ObjectUtils.unserializeJava(bytes);
}else {
return ObjectUtils.unserializeFst(bytes);
}
return ObjectUtils.unserializeJava(bytes);
} catch (Exception e) {
logger.error("unserialize: {}", e.getMessage());
}
@@ -243,50 +227,50 @@ 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[] 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 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() {

View File

@@ -26,6 +26,7 @@ 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 = "-";
/**
* 分隔字符串(逗号分隔)
@@ -284,7 +285,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)) {
if (c == UNDERLINE.charAt(0) || c == MINUS.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 javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
public class IpUtils {

View File

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

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 javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
/**
* Cookie工具类

View File

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

View File

@@ -12,14 +12,15 @@ 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;
@@ -57,6 +58,11 @@ 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>
@@ -384,10 +390,15 @@ public class ServletUtils {
}
/**
* 获取请求的域名(含端口)
* 获取当前请求的域名(含端口)
* @author ThinkGem
*/
public static String getRequestDomain(String url) {
public static String getThisDomain(HttpServletRequest request) {
String url = request.getRequestURL().toString();
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, "/");
@@ -395,6 +406,28 @@ 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 javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
import eu.bitwalker.useragentutils.Browser;
import eu.bitwalker.useragentutils.DeviceType;

View File

@@ -235,3 +235,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;}

View File

@@ -235,3 +235,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;}

View File

@@ -296,6 +296,9 @@ 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.

After

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>如果您不知道升级浏览器是什么意思请请教一些熟练电脑操作的朋友。如果您使用的不是IE6/7/8而是360、QQ、搜狗等双核浏览器出现这个页面可能是您切换到了兼容模式<strong style="color:#f00;">切换到极速模式</strong>下,如果还不行请升级至最新版浏览器。</p>
<p>如果您不知道升级浏览器是什么意思请请教一些熟练电脑操作的朋友。如果您使用的不是Internet Explorer而是360、QQ、搜狗等双核浏览器出现这个页面可能是您切换到了兼容模式<strong style="color:#f00;">切换到极速模式</strong>下,如果还不行请升级至最新版浏览器。</p>
<hr>
<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>
<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>
<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/ie.jpg"><a href="https://www.microsoft.com/zh-cn/edge"> Edge 浏览器<span>Microsoft Edge</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>
</ul><div class="clean"></div></div>
<hr><br/>
<script>

View File

@@ -0,0 +1,21 @@
/**
* 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>1000</length>
<length>4000</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(1000),
device_info varchar(4000),
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(1000),
device_info varchar(4000),
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(1000),
[device_info] varchar(4000),
[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(1000) COMMENT '设备信息',
device_info varchar(4000) 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(1000),
device_info varchar2(4000),
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(1000),
device_info varchar(4000),
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.9.0-SNAPSHOT</version>
<version>5.9.2.springboot3-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>

View File

@@ -4,17 +4,15 @@
*/
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
@@ -84,7 +82,7 @@ public class AppComment extends DataEntity<AppComment> {
this.contact = contact;
}
@Size(min=0, max=1000, message="设备信息长度不能超过 1000 个字符")
@Size(min=0, max=4000, message="设备信息长度不能超过 4000 个字符")
public String getDeviceInfo() {
return deviceInfo;
}

View File

@@ -6,7 +6,7 @@ package com.jeesite.modules.app.entity;
import java.util.Date;
import javax.validation.constraints.Size;
import jakarta.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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.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(1000),
device_info varchar(4000),
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(1000),
device_info varchar(4000),
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(1000),
[device_info] varchar(4000),
[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(1000) COMMENT '设备信息',
device_info varchar(4000) 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(1000),
device_info varchar2(4000),
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(1000),
device_info varchar(4000),
reply_date date,
reply_content varchar(500),
reply_user_code varchar(64),

View File

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

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.9.0-SNAPSHOT</version>
<version>5.9.2.springboot3-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 javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.util.Date;
/**

View File

@@ -4,7 +4,7 @@
*/
package com.jeesite.modules.cms.entity;
import javax.validation.constraints.Size;
import jakarta.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 javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import java.util.List;
/**

View File

@@ -6,10 +6,10 @@ package com.jeesite.modules.cms.entity;
import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import jakarta.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 javax.validation.constraints.Size;
import jakarta.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 javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import java.util.List;
/**

View File

@@ -4,7 +4,7 @@
*/
package com.jeesite.modules.cms.entity;
import javax.validation.constraints.NotNull;
import jakarta.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 javax.validation.constraints.Size;
import jakarta.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 javax.servlet.ServletContext;
import jakarta.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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

View File

@@ -4,8 +4,8 @@
*/
package com.jeesite.modules.cms.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.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 javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

View File

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

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.9.0-SNAPSHOT</version>
<version>5.9.2.springboot3-SNAPSHOT</version>
<relativePath>../../parent/pom.xml</relativePath>
</parent>
@@ -127,6 +127,13 @@
<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,6 +17,7 @@ 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;
@@ -34,7 +35,6 @@ 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 javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
/**
* CAS过滤器

View File

@@ -17,13 +17,12 @@ 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.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 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 org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.authc.IncorrectCredentialsException;
@@ -37,10 +36,6 @@ 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;
@@ -424,8 +419,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()
&& Global.getConfigToBoolean("user.loginCodeCorpUnique", "false"));
data.put("useCorpModel", Global.isUseCorpModel());
data.put("loginCodeCorpUnique", Global.getConfigToBoolean("user.loginCodeCorpUnique", "false"));
data.put("title", Global.getProperty("productName"));
data.put("company", Global.getProperty("companyName"));
data.put("version", Global.getProperty("productVersion"));
@@ -452,6 +447,7 @@ 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"));
@@ -471,6 +467,21 @@ 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 javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
/**
* 内部系统访问过滤器

View File

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

View File

@@ -4,10 +4,10 @@
*/
package com.jeesite.common.shiro.filter;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.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,8 +4,9 @@
*/
package com.jeesite.common.shiro.filter;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import jakarta.servlet.ServletRequest;
import jakarta.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,6 +15,7 @@ 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;
@@ -22,8 +23,6 @@ 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 javax.servlet.http.HttpServletRequest;
import javax.validation.ValidationException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.ValidationException;
import java.util.Map;
/**

View File

@@ -4,11 +4,17 @@
*/
package com.jeesite.common.shiro.realm;
import javax.naming.AuthenticationNotSupportedException;
import javax.naming.NamingException;
import javax.naming.ldap.LdapContext;
import javax.servlet.http.HttpServletRequest;
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 org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken;
@@ -21,20 +27,13 @@ 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 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 javax.naming.AuthenticationNotSupportedException;
import javax.naming.NamingException;
import javax.naming.ldap.LdapContext;
/**
* 系统认证授权实现类

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 javax.servlet.http.HttpServletRequest;
import jakarta.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 javax.servlet.http.HttpServletRequest;
import jakarta.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,12 +1,5 @@
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;
@@ -15,6 +8,19 @@ 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 javax.servlet.http.HttpServletRequest;
import jakarta.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 javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.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.annotations.Api;
import io.swagger.v3.oas.annotations.tags.Tag;
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
@Api(tags = "BizCategory - 业务分类")
@Tag(name = "BizCategory - 业务分类")
@RequestMapping(value = "${adminPath}/biz/bizCategory")
public class BizCategoryController extends BaseController {

View File

@@ -4,9 +4,9 @@
*/
package com.jeesite.modules.config.server;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import jakarta.servlet.Filter;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequestWrapper;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
@@ -26,6 +26,7 @@ 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.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.alibaba.druid.support.jakarta.StatViewServlet;
import com.alibaba.druid.support.jakarta.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", havingValue="true", matchIfMissing=true)
@ConditionalOnProperty(name={"state.enabled","state.druid"}, havingValue="true", matchIfMissing=true)
public class DruidStatConfig {
/**
@@ -43,7 +43,7 @@ public class DruidStatConfig {
bean.addUrlPatterns("/*");
return bean;
}
/**
* 注册DruidServlet
*/

View File

@@ -7,16 +7,15 @@ 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,6 +10,9 @@ 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;
@@ -17,9 +20,6 @@ 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,7 +62,7 @@ public class FileUploadController extends BaseController {
public Map<String, Object> uploadFile(FileUploadParams params) {
return fileUploadService.uploadFile(new FileUpload(), params);
}
/**
* 下载文件
*/

View File

@@ -4,8 +4,8 @@
*/
package com.jeesite.modules.file.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.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)
@ApiIgnore
@Hidden
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 {
// 获取相对文件地址
@@ -58,7 +58,9 @@ 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("fileUrls", request.getParameter("urls")); // 文件地址列表
request.setAttribute("fileNames", request.getParameter("names")); // 文件名称列表
request.setAttribute("imageFlag", request.getParameter("image")); // 是否图片控件
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 javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import jakarta.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 javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.Size;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.entity.DataEntity;

View File

@@ -4,14 +4,9 @@
*/
package com.jeesite.modules.msg.web;
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 jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -23,8 +18,14 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.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;
/**
* 内部消息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 javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
import java.util.List;
/**

View File

@@ -17,9 +17,8 @@ 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.annotations.ApiModelProperty;
import javax.validation.Valid;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
/**
* 员工用户管理Entity
@@ -129,7 +128,7 @@ public class EmpUser extends User {
super.setRefObj(employee);
}
@ApiModelProperty("根据各种编码查询")
@Schema(description = "根据各种编码查询")
public String[] getCodes() {
return codes;
}

View File

@@ -13,10 +13,10 @@ import com.jeesite.common.mybatis.annotation.JoinTable;
import com.jeesite.common.mybatis.annotation.JoinTable.Type;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.util.List;
import java.util.stream.Collectors;
@@ -130,7 +130,7 @@ public class Employee extends DataEntity<Employee> {
this.company = company;
}
@ApiModelProperty("根据岗位编码查询")
@Schema(description = "根据岗位编码查询")
public String getPostCode() {
return postCode;
}
@@ -147,7 +147,7 @@ public class Employee extends DataEntity<Employee> {
this.employeePostList = employeePostList;
}
@ApiModelProperty("员工岗位关系")
@Schema(description = "员工岗位关系")
public String getEmployeePosts() {
// List<String> list = ListUtils.extractToList(employeePostList, "postCode");
// return StringUtils.join(list, ",");

View File

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

View File

@@ -14,10 +14,10 @@ import com.jeesite.common.lang.TimeUtils;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import java.util.Date;
import java.util.Map;
@@ -230,7 +230,7 @@ public class Log extends DataEntity<Log> {
this.executeTime = executeTime;
}
@ApiModelProperty("格式化后的执行时间")
@Schema(description = "格式化后的执行时间")
public String getExecuteTimeFormat(){
if (executeTime == null) {
executeTime = 0L;
@@ -252,7 +252,7 @@ public class Log extends DataEntity<Log> {
}
StringBuilder params = new StringBuilder();
for (Map.Entry<String, String[]> param : ((Map<String, String[]>)paramsMap).entrySet()){
if (params.length() != 0) {
if (!params.isEmpty()) {
params.append("&");
}
params.append(param.getKey() + "=");

View File

@@ -16,11 +16,11 @@ import com.jeesite.common.utils.excel.annotation.ExcelField;
import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
import com.jeesite.common.utils.excel.annotation.ExcelFields;
import com.jeesite.modules.sys.utils.EmpUtils;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;
/**
* 组织机构Entity
@@ -44,6 +44,7 @@ import javax.validation.constraints.Size;
@Column(includeEntity=Extend.class, attrName="extend"),
}, extWhereKeys="dsf", orderBy="a.tree_sorts, a.office_code"
)
@Schema
public class Office extends TreeEntity<Office> {
private static final long serialVersionUID = 1L;
@@ -57,6 +58,9 @@ public class Office extends TreeEntity<Office> {
private String address; // 联系地址
private String zipCode; // 邮政编码
private String email; // 邮箱
@Hidden
@Schema(hidden = true)
private Extend extend; // 扩展字段
private String companyCode; // 根据公司查询机构,组织机构所属公司
@@ -82,6 +86,8 @@ public class Office extends TreeEntity<Office> {
}
@Override
@Hidden
@Schema(hidden = true)
public Office getParent() {
return parent;
}
@@ -147,7 +153,7 @@ public class Office extends TreeEntity<Office> {
this.officeType = officeType;
}
@ApiModelProperty("包含某机构类型")
@Schema(description = "包含某机构类型")
public String[] getOfficeType_in(){
return sqlMap.getWhere().getValue("office_type", QueryType.IN);
}
@@ -200,7 +206,9 @@ public class Office extends TreeEntity<Office> {
public void setEmail(String email) {
this.email = email;
}
@Hidden
@Schema(hidden = true)
public Extend getExtend() {
return extend;
}
@@ -209,7 +217,7 @@ public class Office extends TreeEntity<Office> {
this.extend = extend;
}
@ApiModelProperty("公司编码")
@Schema(description = "公司编码")
public String getCompanyCode() {
return companyCode;
}

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