mirror of
https://github.com/jeecgboot/JeecgBoot.git
synced 2026-02-02 16:45:24 +08:00
Compare commits
3 Commits
d3b8948f40
...
da9e8570cd
| Author | SHA1 | Date | |
|---|---|---|---|
| da9e8570cd | |||
| 5e37b4de8f | |||
| cab42b819c |
@ -155,6 +155,9 @@ JeecgBoot平台提供了一套完善的AI应用管理系统模块,是一套类
|
||||
#### 前端
|
||||
|
||||
- 前端环境要求:Node.js要求`Node 20+` 版本以上、pnpm 要求`9+` 版本以上
|
||||
|
||||
> Vite 不再支持已结束生命周期(EOL)的 Node.js 18。现在需要使用 Node.js 20.19+ 或 22.12+。
|
||||
|
||||
- 依赖管理:node、npm、pnpm
|
||||
- 前端IDE建议:IDEA、WebStorm、Vscode
|
||||
- 采用 Vue3.0+TypeScript+Vite6+Ant-Design-Vue4等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能
|
||||
|
||||
@ -143,7 +143,7 @@ public class AutoLogAspect {
|
||||
// https://my.oschina.net/mengzhang6/blog/2395893
|
||||
Object[] arguments = new Object[paramsArray.length];
|
||||
for (int i = 0; i < paramsArray.length; i++) {
|
||||
if (paramsArray[i] instanceof BindingResult || paramsArray[i] instanceof ServletRequest || paramsArray[i] instanceof ServletResponse || paramsArray[i] instanceof MultipartFile) {
|
||||
if (paramsArray[i] instanceof BindingResult || paramsArray[i] instanceof ServletRequest || paramsArray[i] instanceof ServletResponse || paramsArray[i] instanceof MultipartFile || paramsArray[i] instanceof MultipartFile[]) {
|
||||
//ServletRequest不能序列化,从入参里排除,否则报异常:java.lang.IllegalStateException: It is illegal to call this method if the current request is not in asynchronous mode (i.e. isAsyncStarted() returns false)
|
||||
//ServletResponse不能序列化 从入参里排除,否则报异常:java.lang.IllegalStateException: getOutputStream() has already been called for this response
|
||||
continue;
|
||||
|
||||
@ -2055,7 +2055,10 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
||||
if(oConvertUtils.isEmpty(code)) {
|
||||
return null;
|
||||
}
|
||||
List<SysDepart> list = sysDepartList.stream().filter(sysDepart -> sysDepart.getOrgCode().equals(code)).toList();
|
||||
List<SysDepart> list = sysDepartList.stream()
|
||||
.filter(sysDepart -> sysDepart.getOrgCode().equals(code))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
//判断去上级的级别
|
||||
if(!CollectionUtils.isEmpty(list) && nowLevel == level) {
|
||||
return list.get(0);
|
||||
|
||||
@ -785,7 +785,7 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
|
||||
List<String> departIdList = new ArrayList<>();
|
||||
//如果前端传过来的部门id不为空的时候,说明是系统用户根据所属部门选择主岗位或者兼职岗位
|
||||
if(oConvertUtils.isNotEmpty(departIds) && oConvertUtils.isEmpty(parentId)){
|
||||
departIdList = list.stream().map(SysDepart::getId).toList();
|
||||
departIdList = list.stream().map(SysDepart::getId).collect(Collectors.toList());
|
||||
}
|
||||
List<SysDepartTreeModel> records = new ArrayList<>();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
@ -1859,7 +1859,7 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
|
||||
List<SysDepart> sysDepartList = departMapper.selectList(query);
|
||||
if(!CollectionUtils.isEmpty(sysDepartList)){
|
||||
//获取部门名称拼接返回给前台
|
||||
List<String> departNameList = sysDepartList.stream().map(SysDepart::getDepartName).toList();
|
||||
List<String> departNameList = sysDepartList.stream().map(SysDepart::getDepartName).collect(Collectors.toList());
|
||||
String departNames = String.join("/", departNameList);
|
||||
redisUtil.set(CommonConstant.DEPART_NAME_REDIS_KEY_PRE + orgCode,departNames);
|
||||
return departNames;
|
||||
|
||||
@ -100,11 +100,11 @@ public class SysTenantPackServiceImpl extends ServiceImpl<SysTenantPackMapper, S
|
||||
// 提取已存在的用户ID
|
||||
List<String> existingUserIds = existingUsers.stream()
|
||||
.map(SysTenantPackUser::getUserId)
|
||||
.toList();
|
||||
.collect(Collectors.toList());
|
||||
// 过滤出需要新增的用户ID
|
||||
List<String> newUserIds = userIds.stream()
|
||||
.filter(userId -> !existingUserIds.contains(userId))
|
||||
.toList();
|
||||
.collect(Collectors.toList());
|
||||
for (String userId : newUserIds) {
|
||||
//update-end---author:wangshuai---date:2025-09-03---for: 编辑时需要查看有没有未分配的用户---
|
||||
SysTenantPackUser tenantPackUser = new SysTenantPackUser(tenantId, packId, userId);
|
||||
|
||||
@ -2734,7 +2734,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
public IPage<SysUserSysDepPostModel> queryDepartPostUserByOrgCode(String orgCode, SysUser userParams, IPage page) {
|
||||
List<SysUserSysDepPostModel> sysDepartModels = baseMapper.queryDepartPostUserByOrgCode(page, orgCode, userParams);
|
||||
if(CollectionUtil.isNotEmpty(sysDepartModels)){
|
||||
List<String> userIds = sysDepartModels.stream().map(SysUserSysDepPostModel::getId).toList();
|
||||
List<String> userIds = sysDepartModels.stream().map(SysUserSysDepPostModel::getId).collect(Collectors.toList());
|
||||
//获取部门名称
|
||||
Map<String, String> useDepNames = this.getDepNamesByUserIds(userIds);
|
||||
sysDepartModels.forEach(item -> {
|
||||
|
||||
@ -269,7 +269,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>hibernate-re</artifactId>
|
||||
<version>3.8.2-beta</version>
|
||||
<version>3.8.2.2</version>
|
||||
</dependency>
|
||||
|
||||
<!--mongon db-->
|
||||
|
||||
@ -35,9 +35,9 @@ JeecgBoot-Vue3采用 Vue3.0、Vite、 Ant-Design-Vue4、TypeScript 等新技术
|
||||
## 安装与使用
|
||||
|
||||
* 本地环境安装 `Node.js 、npm 、pnpm`
|
||||
* Node.js 版本建议`v20.15.0`,要求`Node 20+` 版本以上
|
||||
* Node.js 版本要求`Node 20+` 版本以上
|
||||
|
||||
` ( 因为Vite5 不再支持已 EOL 的 Node.js 14 / 16 / 17 / 19,现在需要 Node.js 18 / 20+ )`
|
||||
` ( Vite 不再支持已结束生命周期(EOL)的 Node.js 18。现在需要使用 Node.js 20.19+ 或 22.12+)`
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user