Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
b5391e85
提交
b5391e85
authored
4月 28, 2025
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码优化
上级
a9dd7d90
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
286 行增加
和
11 行删除
+286
-11
SysIndexController.java
.../dromara/system/controller/system/SysIndexController.java
+45
-0
SysDeptDetailVo.java
...in/java/org/dromara/system/domain/vo/SysDeptDetailVo.java
+112
-0
SysDeptIndexVo.java
...ain/java/org/dromara/system/domain/vo/SysDeptIndexVo.java
+57
-0
SysUserVo.java
...src/main/java/org/dromara/system/domain/vo/SysUserVo.java
+1
-1
ISysDeptService.java
...main/java/org/dromara/system/service/ISysDeptService.java
+16
-0
SysDeptServiceImpl.java
...a/org/dromara/system/service/impl/SysDeptServiceImpl.java
+55
-10
没有找到文件。
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysIndexController.java
0 → 100644
浏览文件 @
b5391e85
package
org
.
dromara
.
system
.
controller
.
system
;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.common.core.domain.R
;
import
org.dromara.common.tenant.helper.TenantHelper
;
import
org.dromara.system.domain.vo.SysDeptDetailVo
;
import
org.dromara.system.domain.vo.SysDeptIndexVo
;
import
org.dromara.system.service.ISysDeptService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* @author hzh
* @date 2025-04-28
**/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping
(
"/index"
)
public
class
SysIndexController
{
private
final
ISysDeptService
deptService
;
/**
* 部门列表
*/
@GetMapping
(
"/deptList"
)
public
R
<
List
<
SysDeptIndexVo
>>
deptList
()
{
return
R
.
ok
(
TenantHelper
.
ignore
(
deptService:
:
indexDeptList
));
}
/**
* 部门详情
*/
@GetMapping
(
"/deptDetail"
)
public
R
<
SysDeptDetailVo
>
deptDetail
(
@RequestParam
Long
deptId
)
{
return
R
.
ok
(
TenantHelper
.
ignore
(()
->
deptService
.
deptDetailIndex
(
deptId
)));
}
}
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptDetailVo.java
0 → 100644
浏览文件 @
b5391e85
package
org
.
dromara
.
system
.
domain
.
vo
;
import
lombok.Data
;
import
org.dromara.common.translation.annotation.Translation
;
import
org.dromara.common.translation.constant.TransConstant
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* 部门视图对象 sys_dept
*
* @author Michelle.Chung
*/
@Data
public
class
SysDeptDetailVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
* 部门id
*/
private
Long
deptId
;
/**
* 部门名称
*/
private
String
deptName
;
/**
* 部门简介
*/
private
String
introduction
;
/**
* 部门类别编码
*/
private
String
deptCategory
;
/**
* 负责人ID
*/
private
Long
leader
;
/**
* 负责人
*/
private
String
leaderName
;
/**
* 负责人
*/
@Translation
(
type
=
TransConstant
.
OSS_ID_TO_URL
)
private
Long
avatar
;
/**
* 微信号
*/
private
String
wechatId
;
/**
* 微信二维码
*/
@Translation
(
type
=
TransConstant
.
OSS_ID_TO_URL
)
private
Long
wechatQrCode
;
/**
* 员工集合
*/
private
List
<
User
>
userList
;
@Data
public
static
class
User
{
/**
* 用户ID
*/
private
Long
userId
;
/**
* 用户昵称
*/
private
String
nickName
;
/**
* 岗位组
*/
private
List
<
Long
>
postIds
;
private
List
<
String
>
postNameList
;
/**
* 头像地址
*/
@Translation
(
type
=
TransConstant
.
OSS_ID_TO_URL
)
private
Long
avatar
;
/**
* 微信号
*/
private
String
wechatId
;
/**
* 微信二维码
*/
@Translation
(
type
=
TransConstant
.
OSS_ID_TO_URL
)
private
Long
wechatQrCode
;
}
}
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptIndexVo.java
0 → 100644
浏览文件 @
b5391e85
package
org
.
dromara
.
system
.
domain
.
vo
;
import
lombok.Data
;
import
org.dromara.common.translation.annotation.Translation
;
import
org.dromara.common.translation.constant.TransConstant
;
import
java.io.Serial
;
import
java.io.Serializable
;
/**
* 部门视图对象 sys_dept
*
* @author Michelle.Chung
*/
@Data
public
class
SysDeptIndexVo
implements
Serializable
{
@Serial
private
static
final
long
serialVersionUID
=
1L
;
/**
* 部门id
*/
private
Long
deptId
;
/**
* 部门名称
*/
private
String
deptName
;
/**
* 部门类别编码
*/
private
String
deptCategory
;
/**
* 显示顺序
*/
private
Integer
orderNum
;
/**
* 负责人ID
*/
private
Long
leader
;
/**
* 负责人
*/
private
String
leaderName
;
/**
* 负责人
*/
@Translation
(
type
=
TransConstant
.
OSS_ID_TO_URL
)
private
Long
avatar
;
}
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
浏览文件 @
b5391e85
...
...
@@ -98,7 +98,7 @@ public class SysUserVo implements Serializable {
private
String
wechatId
;
/**
*
卫星
二维码
*
微信
二维码
*/
private
Long
wechatQrCode
;
...
...
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java
浏览文件 @
b5391e85
...
...
@@ -2,6 +2,8 @@ package org.dromara.system.service;
import
cn.hutool.core.lang.tree.Tree
;
import
org.dromara.system.domain.bo.SysDeptBo
;
import
org.dromara.system.domain.vo.SysDeptDetailVo
;
import
org.dromara.system.domain.vo.SysDeptIndexVo
;
import
org.dromara.system.domain.vo.SysDeptVo
;
import
java.util.List
;
...
...
@@ -131,4 +133,18 @@ public interface ISysDeptService {
* @return 结果
*/
int
deleteDeptById
(
Long
deptId
);
/**
* 首页部门列表
*
* @return 首页部门列表
*/
List
<
SysDeptIndexVo
>
indexDeptList
();
/**
* 首页部门详情
* @param deptId 部门id
* @return
*/
SysDeptDetailVo
deptDetailIndex
(
Long
deptId
);
}
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java
浏览文件 @
b5391e85
package
org
.
dromara
.
system
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.lang.tree.Tree
;
...
...
@@ -8,24 +9,20 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.dromara.common.core.constant.CacheNames
;
import
org.dromara.common.core.constant.UserConstants
;
import
org.dromara.common.core.exception.ServiceException
;
import
org.dromara.common.core.utils.MapstructUtils
;
import
org.dromara.common.core.utils.SpringUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.core.utils.TreeBuildUtils
;
import
org.dromara.common.core.utils.*
;
import
org.dromara.common.mybatis.helper.DataBaseHelper
;
import
org.dromara.common.redis.utils.CacheUtils
;
import
org.dromara.common.satoken.utils.LoginHelper
;
import
org.dromara.system.domain.SysDept
;
import
org.dromara.system.domain.SysRole
;
import
org.dromara.system.domain.SysUser
;
import
org.dromara.system.domain.*
;
import
org.dromara.system.domain.bo.SysDeptBo
;
import
org.dromara.system.domain.vo.SysDeptDetailVo
;
import
org.dromara.system.domain.vo.SysDeptIndexVo
;
import
org.dromara.system.domain.vo.SysDeptVo
;
import
org.dromara.system.mapper.SysDeptMapper
;
import
org.dromara.system.mapper.SysRoleMapper
;
import
org.dromara.system.mapper.SysUserMapper
;
import
org.dromara.system.mapper.*
;
import
org.dromara.system.service.ISysDeptService
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
...
...
@@ -34,6 +31,8 @@ import org.springframework.stereotype.Service;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
/**
* 部门管理 服务实现
...
...
@@ -47,6 +46,8 @@ public class SysDeptServiceImpl implements ISysDeptService {
private
final
SysDeptMapper
baseMapper
;
private
final
SysRoleMapper
roleMapper
;
private
final
SysUserMapper
userMapper
;
private
final
SysUserPostMapper
userPostMapper
;
private
final
SysPostMapper
postMapper
;
/**
* 查询部门管理数据
...
...
@@ -341,4 +342,48 @@ public class SysDeptServiceImpl implements ISysDeptService {
return
baseMapper
.
deleteById
(
deptId
);
}
@Override
public
List
<
SysDeptIndexVo
>
indexDeptList
()
{
List
<
SysDept
>
deptList
=
baseMapper
.
selectList
(
SysDept:
:
getStatus
,
UserConstants
.
DEPT_NORMAL
);
//查询用户信息
List
<
Long
>
userIds
=
StreamUtils
.
toList
(
deptList
,
SysDept:
:
getLeader
);
userIds
=
CollectionUtils
.
isEmpty
(
userIds
)
?
List
.
of
(-
1L
)
:
userIds
;
List
<
SysUser
>
userList
=
userMapper
.
selectList
(
SysUser:
:
getUserId
,
userIds
);
List
<
SysDeptIndexVo
>
indexList
=
BeanUtil
.
copyToList
(
deptList
,
SysDeptIndexVo
.
class
);
indexList
.
forEach
(
sdi
->
{
userList
.
stream
()
.
filter
(
user
->
Objects
.
equals
(
user
.
getUserId
(),
sdi
.
getLeader
()))
.
findFirst
()
.
ifPresent
(
u
->
{
sdi
.
setLeaderName
(
u
.
getNickName
());
sdi
.
setAvatar
(
u
.
getAvatar
());
});
});
return
indexList
;
}
@Override
public
SysDeptDetailVo
deptDetailIndex
(
Long
deptId
)
{
SysDept
dept
=
baseMapper
.
selectById
(
deptId
);
if
(
ObjectUtil
.
isNull
(
dept
))
{
throw
new
ServiceException
(
"部门不存在"
);
}
//查询部门员工
List
<
SysUser
>
userList
=
userMapper
.
selectList
(
SysUser:
:
getDeptId
,
dept
.
getDeptId
());
List
<
SysUserPost
>
supList
=
CollectionUtils
.
isEmpty
(
userList
)
?
List
.
of
()
:
userPostMapper
.
selectList
(
SysUserPost:
:
getUserId
,
StreamUtils
.
toList
(
userList
,
SysUser:
:
getUserId
));
List
<
SysPost
>
postList
=
postMapper
.
selectByIds
(
StreamUtils
.
toSet
(
supList
,
SysUserPost:
:
getPostId
));
//构建数据
SysDeptDetailVo
detail
=
BeanUtil
.
copyProperties
(
dept
,
SysDeptDetailVo
.
class
);
List
<
SysDeptDetailVo
.
User
>
users
=
userList
.
stream
().
map
(
user
->
{
SysDeptDetailVo
.
User
u
=
BeanUtil
.
copyProperties
(
user
,
SysDeptDetailVo
.
User
.
class
);
u
.
setPostIds
(
supList
.
stream
().
filter
(
sup
->
Objects
.
equals
(
sup
.
getUserId
(),
user
.
getUserId
())).
map
(
SysUserPost:
:
getPostId
).
collect
(
Collectors
.
toList
()));
if
(
CollectionUtils
.
isNotEmpty
(
u
.
getPostIds
()))
{
u
.
setPostNameList
(
u
.
getPostIds
().
stream
().
map
(
postId
->
postList
.
stream
().
filter
(
p
->
Objects
.
equals
(
p
.
getPostId
(),
postId
)).
map
(
SysPost:
:
getPostName
).
findFirst
().
orElse
(
null
)).
collect
(
Collectors
.
toList
()));
}
return
u
;
}).
collect
(
Collectors
.
toList
());
detail
.
setUserList
(
users
);
return
detail
;
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论