Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
b7dc9dd1
提交
b7dc9dd1
authored
6月 25, 2025
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码优化
上级
c872fd93
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
153 行增加
和
13 行删除
+153
-13
IBaseService.java
...java/org/dromara/common/mybatis/service/IBaseService.java
+2
-2
SysUserProjectController.java
...ra/system/controller/system/SysUserProjectController.java
+12
-0
SysUserProject.java
...c/main/java/org/dromara/system/domain/SysUserProject.java
+9
-2
SysUserProjectBo.java
...n/java/org/dromara/system/domain/bo/SysUserProjectBo.java
+5
-0
SysUserProjectInsertBo.java
.../org/dromara/system/domain/bo/SysUserProjectInsertBo.java
+61
-0
SysUserProjectVo.java
...n/java/org/dromara/system/domain/vo/SysUserProjectVo.java
+5
-0
ISysUserProjectService.java
...va/org/dromara/system/service/ISysUserProjectService.java
+8
-0
SysUserProjectServiceImpl.java
...romara/system/service/impl/SysUserProjectServiceImpl.java
+43
-0
SysUserServiceImpl.java
...a/org/dromara/system/service/impl/SysUserServiceImpl.java
+8
-9
没有找到文件。
ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/service/IBaseService.java
浏览文件 @
b7dc9dd1
...
...
@@ -24,11 +24,11 @@ public interface IBaseService<V, B, T> {
V
queryById
(
Long
id
);
/**
* 分页查询
活动机票订单列表
* 分页查询
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return
活动机票订单
分页列表
* @return 分页列表
*/
TableDataInfo
<
V
>
queryPageList
(
B
bo
,
PageQuery
pageQuery
);
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserProjectController.java
浏览文件 @
b7dc9dd1
...
...
@@ -13,6 +13,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.common.web.core.BaseController
;
import
org.dromara.system.domain.bo.SysUserProjectBo
;
import
org.dromara.system.domain.bo.SysUserProjectInsertBo
;
import
org.dromara.system.domain.vo.SysUserProjectVo
;
import
org.dromara.system.domain.vo.UserProjectVo
;
import
org.dromara.system.service.ISysUserProjectService
;
...
...
@@ -67,6 +68,17 @@ public class SysUserProjectController extends BaseController {
return
toAjax
(
sysUserProjectService
.
insertByBo
(
bo
));
}
/**
* 新增用户项目
*/
@SaCheckPermission
(
"system:userProject:add"
)
@Log
(
title
=
"用户项目"
,
businessType
=
BusinessType
.
INSERT
)
@RepeatSubmit
()
@PostMapping
(
"/addProjectUser"
)
public
R
<
Void
>
addProjectUser
(
@Validated
(
AddGroup
.
class
)
@RequestBody
SysUserProjectInsertBo
bo
)
{
return
toAjax
(
sysUserProjectService
.
insert
(
bo
));
}
/**
* 删除用户项目
*
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysUserProject.java
浏览文件 @
b7dc9dd1
package
org
.
dromara
.
system
.
domain
;
import
org.dromara.common.tenant.core.TenantEntity
;
import
com.baomidou.mybatisplus.annotation.*
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.dromara.common.tenant.core.TenantEntity
;
import
java.io.Serial
;
...
...
@@ -32,6 +34,11 @@ public class SysUserProject extends TenantEntity {
*/
private
Long
userId
;
/**
* 用户类型
*/
private
String
userType
;
/**
* 项目id
*/
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProjectBo.java
浏览文件 @
b7dc9dd1
...
...
@@ -38,6 +38,11 @@ public class SysUserProjectBo extends BaseEntity {
@NotNull
(
message
=
"项目id不能为空"
,
groups
=
{
AddGroup
.
class
,
EditGroup
.
class
})
private
Long
projectId
;
/**
* 用户类型
*/
private
String
userType
;
/**
* 角色id
*/
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProjectInsertBo.java
0 → 100644
浏览文件 @
b7dc9dd1
package
org
.
dromara
.
system
.
domain
.
bo
;
import
jakarta.validation.constraints.Email
;
import
jakarta.validation.constraints.NotNull
;
import
jakarta.validation.constraints.Size
;
import
lombok.Data
;
import
org.dromara.common.core.validate.AddGroup
;
import
org.dromara.common.core.xss.Xss
;
/**
* 用户项目业务对象 sys_user_project
*
* @author hzh
* @date 2025-06-19
*/
@Data
public
class
SysUserProjectInsertBo
{
/**
* 用户id
*/
private
Long
userId
;
/**
* 项目id
*/
@NotNull
(
message
=
"项目id不能为空"
,
groups
=
{
AddGroup
.
class
})
private
Long
projectId
;
/**
* 角色id
*/
@NotNull
(
message
=
"角色id不能为空"
,
groups
=
{
AddGroup
.
class
})
private
Long
roleId
;
/**
* 昵称
*/
@Xss
(
message
=
"用户名不能包含脚本字符"
)
@Size
(
min
=
0
,
max
=
30
,
message
=
"用户名长度不能超过{max}个字符"
)
private
String
nickName
;
/**
* 手机号
*/
private
String
phonenumber
;
/**
* 邮箱
*/
@Email
(
message
=
"邮箱格式不正确"
)
@Size
(
min
=
0
,
max
=
50
,
message
=
"邮箱长度不能超过{max}个字符"
)
private
String
email
;
/**
* 密码
*/
private
String
password
;
}
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserProjectVo.java
浏览文件 @
b7dc9dd1
...
...
@@ -38,6 +38,11 @@ public class SysUserProjectVo implements Serializable {
@ExcelProperty
(
value
=
"用户id"
)
private
Long
userId
;
/**
* 用户类型
*/
private
String
userType
;
/**
* 项目id
*/
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysUserProjectService.java
浏览文件 @
b7dc9dd1
...
...
@@ -3,6 +3,7 @@ package org.dromara.system.service;
import
org.dromara.common.mybatis.service.IBaseService
;
import
org.dromara.system.domain.SysUserProject
;
import
org.dromara.system.domain.bo.SysUserProjectBo
;
import
org.dromara.system.domain.bo.SysUserProjectInsertBo
;
import
org.dromara.system.domain.vo.SysUserProjectVo
;
import
org.dromara.system.domain.vo.UserProjectVo
;
...
...
@@ -24,4 +25,11 @@ public interface ISysUserProjectService extends IBaseService<SysUserProjectVo, S
* @return 项目列表
*/
List
<
UserProjectVo
>
selectListByUserId
(
Long
userId
);
/**
* 添加项目人员
*
* @param bo 数据
*/
void
insert
(
SysUserProjectInsertBo
bo
);
}
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserProjectServiceImpl.java
浏览文件 @
b7dc9dd1
...
...
@@ -7,8 +7,10 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.google.common.base.Objects
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.enums.UserType
;
import
org.dromara.common.core.exception.ServiceException
;
import
org.dromara.common.core.utils.StreamUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.system.constant.Constant
;
...
...
@@ -16,7 +18,9 @@ import org.dromara.system.domain.SysProject;
import
org.dromara.system.domain.SysUser
;
import
org.dromara.system.domain.SysUserProject
;
import
org.dromara.system.domain.SysUserRole
;
import
org.dromara.system.domain.bo.SysUserBo
;
import
org.dromara.system.domain.bo.SysUserProjectBo
;
import
org.dromara.system.domain.bo.SysUserProjectInsertBo
;
import
org.dromara.system.domain.vo.SysUserProjectVo
;
import
org.dromara.system.domain.vo.UserProjectVo
;
import
org.dromara.system.mapper.SysProjectMapper
;
...
...
@@ -98,6 +102,9 @@ public class SysUserProjectServiceImpl extends AbstractBaseService<SysUserProjec
@Override
public
void
validEntityBeforeSave
(
SysUserProject
entity
)
{
super
.
validEntityBeforeSave
(
entity
);
if
(
entity
.
getId
()
==
null
)
{
entity
.
setUserType
(
Optional
.
ofNullable
(
sysUserMapper
.
selectById
(
entity
.
getUserId
())).
map
(
SysUser:
:
getUserType
).
orElse
(
UserType
.
SYS_USER
.
getUserType
()));
}
//校验用户是否已经存在
List
<
SysUserProject
>
supList
=
baseMapper
.
selectList
(
SysUserProject:
:
getUserId
,
entity
.
getUserId
(),
SysUserProject:
:
getProjectId
,
entity
.
getProjectId
());
SysUserProject
sysUserProject
=
StreamUtils
.
findFirst
(
supList
,
sup
->
!
Objects
.
equal
(
sup
.
getId
(),
entity
.
getId
()));
...
...
@@ -144,4 +151,40 @@ public class SysUserProjectServiceImpl extends AbstractBaseService<SysUserProjec
.
eq
(
SysProject:
:
getStatus
,
Constant
.
PROJECT_NORMAL
));
return
BeanUtil
.
copyToList
(
projectList
,
UserProjectVo
.
class
);
}
@Override
public
void
insert
(
SysUserProjectInsertBo
bo
)
{
SysUserProjectBo
sup
=
new
SysUserProjectBo
();
sup
.
setProjectId
(
bo
.
getProjectId
());
sup
.
setRoleId
(
bo
.
getRoleId
());
if
(
bo
.
getUserId
()
!=
null
)
{
sup
.
setUserId
(
bo
.
getUserId
());
}
else
{
validEntity
(
bo
);
//根据手机号查询是否存在用户信息
SysUser
user
=
sysUserMapper
.
selectOne
(
SysUser:
:
getUserType
,
UserType
.
PROJECT_USER
.
getUserType
(),
SysUser:
:
getPhonenumber
,
bo
.
getPhonenumber
());
if
(
user
!=
null
)
{
sup
.
setUserId
(
user
.
getUserId
());
}
else
{
//新增用户
SysUserBo
su
=
new
SysUserBo
();
su
.
setNickName
(
bo
.
getNickName
());
su
.
setUserName
(
bo
.
getPhonenumber
());
su
.
setPhonenumber
(
bo
.
getPhonenumber
());
su
.
setEmail
(
bo
.
getEmail
());
su
.
setRoleIds
(
new
Long
[]{
bo
.
getRoleId
()});
su
.
setPassword
(
bo
.
getPassword
());
}
}
}
private
void
validEntity
(
SysUserProjectInsertBo
bo
)
{
if
(
StringUtils
.
isBlank
(
bo
.
getNickName
()))
{
throw
new
ServiceException
(
"姓名不能为空"
);
}
if
(
StringUtils
.
isEmpty
(
bo
.
getPhonenumber
()))
{
throw
new
ServiceException
(
"手机号码不能为空"
);
}
}
}
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
浏览文件 @
b7dc9dd1
...
...
@@ -163,6 +163,7 @@ public class SysUserServiceImpl implements ISysUserService {
.
eq
(
ObjectUtil
.
isNotNull
(
user
.
getUserId
()),
"u.user_id"
,
user
.
getUserId
())
.
like
(
StringUtils
.
isNotBlank
(
user
.
getUserName
()),
"u.user_name"
,
user
.
getUserName
())
.
eq
(
StringUtils
.
isNotBlank
(
user
.
getStatus
()),
"u.status"
,
user
.
getStatus
())
.
eq
(
StringUtils
.
isNotBlank
(
user
.
getUserType
()),
"u.user_type"
,
user
.
getUserType
())
.
like
(
StringUtils
.
isNotBlank
(
user
.
getPhonenumber
()),
"u.phonenumber"
,
user
.
getPhonenumber
())
.
like
(
StringUtils
.
isNotBlank
(
user
.
getNickName
()),
"u.nick_name"
,
user
.
getNickName
())
.
between
(
params
.
get
(
"beginTime"
)
!=
null
&&
params
.
get
(
"endTime"
)
!=
null
,
...
...
@@ -178,16 +179,14 @@ public class SysUserServiceImpl implements ISysUserService {
if
(
StringUtils
.
isNotBlank
(
user
.
getExcludeUserIds
()))
{
wrapper
.
notIn
(
"u.user_id"
,
StringUtils
.
splitList
(
user
.
getExcludeUserIds
()));
}
if
(
StringUtils
.
isNotBlank
(
user
.
getUserType
()))
{
boolean
contains
=
user
.
getUserType
().
contains
(
":"
);
if
(
contains
)
{
wrapper
.
eq
(
"u.user_type"
,
user
.
getUserType
());
}
else
{
wrapper
.
likeRight
(
"u.user_type"
,
user
.
getUserType
());
}
Object
projectId
=
params
.
get
(
"projectId"
);
if
(
projectId
!=
null
)
{
List
<
SysUserProject
>
supList
=
sysUserProjectMapper
.
selectList
(
SysUserProject:
:
getProjectId
,
projectId
);
wrapper
.
in
(
"u.user_id"
,
CollectionUtils
.
isEmpty
(
supList
)
?
List
.
of
(-
1L
)
:
StreamUtils
.
toList
(
supList
,
SysUserProject:
:
getUserId
));
}
if
(
params
.
get
(
"excludeProjectId"
)
!=
null
)
{
List
<
SysUserProject
>
supList
=
sysUserProjectMapper
.
selectList
(
SysUserProject:
:
getProjectId
,
params
.
get
(
"excludeProjectId"
));
Object
excludeProjectId
=
params
.
get
(
"excludeProjectId"
);
if
(
excludeProjectId
!=
null
)
{
List
<
SysUserProject
>
supList
=
sysUserProjectMapper
.
selectList
(
SysUserProject:
:
getProjectId
,
excludeProjectId
);
wrapper
.
notIn
(
"u.user_id"
,
CollectionUtils
.
isEmpty
(
supList
)
?
List
.
of
(-
1L
)
:
StreamUtils
.
toList
(
supList
,
SysUserProject:
:
getUserId
));
}
return
wrapper
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论