Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
T
travel-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cloud
travel-cloud
Commits
7260db1e
提交
7260db1e
authored
1月 10, 2025
作者:
hzh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
分组逻辑功能实现
上级
f5493e7d
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
116 行增加
和
19 行删除
+116
-19
AbstractBaseService.java
...g/dromara/common/mybatis/service/AbstractBaseService.java
+24
-1
GroupController.java
...n/java/org/dromara/server/controller/GroupController.java
+3
-1
GroupPerson.java
.../src/main/java/org/dromara/server/domain/GroupPerson.java
+1
-4
GroupVo.java
...r/src/main/java/org/dromara/server/domain/vo/GroupVo.java
+26
-0
GroupServiceImpl.java
...ava/org/dromara/server/service/impl/GroupServiceImpl.java
+36
-1
TravelConfigServiceImpl.java
.../dromara/server/service/impl/TravelConfigServiceImpl.java
+26
-12
没有找到文件。
ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/service/AbstractBaseService.java
浏览文件 @
7260db1e
...
@@ -12,6 +12,7 @@ import org.dromara.common.mybatis.core.page.OrderBy;
...
@@ -12,6 +12,7 @@ import org.dromara.common.mybatis.core.page.OrderBy;
import
org.dromara.common.mybatis.core.page.PageQuery
;
import
org.dromara.common.mybatis.core.page.PageQuery
;
import
org.dromara.common.mybatis.core.page.TableDataInfo
;
import
org.dromara.common.mybatis.core.page.TableDataInfo
;
import
java.lang.reflect.Field
;
import
java.util.Collection
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.List
;
...
@@ -81,7 +82,29 @@ public abstract class AbstractBaseService<V, B, T> implements IBaseService<V, B,
...
@@ -81,7 +82,29 @@ public abstract class AbstractBaseService<V, B, T> implements IBaseService<V, B,
Class
<
T
>
clazz
=
(
Class
<
T
>)
GenericsUtils
.
getSuperClassGenricType
(
this
.
getClass
(),
2
);
Class
<
T
>
clazz
=
(
Class
<
T
>)
GenericsUtils
.
getSuperClassGenricType
(
this
.
getClass
(),
2
);
T
add
=
MapstructUtils
.
convert
(
bo
,
clazz
);
T
add
=
MapstructUtils
.
convert
(
bo
,
clazz
);
validEntityBeforeSave
(
add
);
validEntityBeforeSave
(
add
);
return
mapper
().
insert
(
add
)
>
0
;
boolean
result
=
mapper
().
insert
(
add
)
>
0
;
setIdParams
(
bo
,
clazz
,
add
);
return
result
;
}
private
void
setIdParams
(
B
bo
,
Class
<
T
>
clazz
,
T
add
)
{
// 检查 add 对象是否有 id 字段
try
{
Field
idField
=
clazz
.
getDeclaredField
(
"id"
);
// 设置 id 字段可访问,因为它可能是 private 的
idField
.
setAccessible
(
true
);
// 获取 id 字段的值
Object
idValue
=
idField
.
get
(
add
);
if
(
idValue
!=
null
)
{
// 使用反射将 id 值设置到 bo 对象中
Field
boIdField
=
bo
.
getClass
().
getDeclaredField
(
"id"
);
boIdField
.
setAccessible
(
true
);
boIdField
.
set
(
bo
,
idValue
);
}
}
catch
(
NoSuchFieldException
|
IllegalAccessException
e
)
{
// 处理异常,可以打印日志或者抛出异常
e
.
printStackTrace
();
}
}
}
@Override
@Override
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/controller/GroupController.java
浏览文件 @
7260db1e
...
@@ -119,6 +119,7 @@ public class GroupController extends BaseController {
...
@@ -119,6 +119,7 @@ public class GroupController extends BaseController {
*/
*/
@SaCheckPermission
(
"server:group:bindPersonList"
)
@SaCheckPermission
(
"server:group:bindPersonList"
)
@Log
(
title
=
"差旅分组-绑定人员"
,
businessType
=
BusinessType
.
UPDATE
)
@Log
(
title
=
"差旅分组-绑定人员"
,
businessType
=
BusinessType
.
UPDATE
)
@RepeatSubmit
()
@PostMapping
(
"/bindPersonList"
)
@PostMapping
(
"/bindPersonList"
)
public
R
<
Boolean
>
bindPersonList
(
@Validated
@RequestBody
GroupPersonBindVo
vo
)
{
public
R
<
Boolean
>
bindPersonList
(
@Validated
@RequestBody
GroupPersonBindVo
vo
)
{
return
R
.
ok
(
groupService
.
bindUserList
(
vo
.
getGroupId
(),
vo
.
getUserIds
()));
return
R
.
ok
(
groupService
.
bindUserList
(
vo
.
getGroupId
(),
vo
.
getUserIds
()));
...
@@ -132,6 +133,7 @@ public class GroupController extends BaseController {
...
@@ -132,6 +133,7 @@ public class GroupController extends BaseController {
*/
*/
@SaCheckPermission
(
"server:group:updateConfig"
)
@SaCheckPermission
(
"server:group:updateConfig"
)
@Log
(
title
=
"差旅分组-编辑差旅设置"
,
businessType
=
BusinessType
.
UPDATE
)
@Log
(
title
=
"差旅分组-编辑差旅设置"
,
businessType
=
BusinessType
.
UPDATE
)
@RepeatSubmit
()
@PostMapping
(
"/updateConfig"
)
@PostMapping
(
"/updateConfig"
)
public
R
<
Boolean
>
bindPersonList
(
@Validated
(
EditGroup
.
class
)
@RequestBody
ConfigGroupBo
bo
)
{
public
R
<
Boolean
>
bindPersonList
(
@Validated
(
EditGroup
.
class
)
@RequestBody
ConfigGroupBo
bo
)
{
return
R
.
ok
(
configGroupService
.
updateByBo
(
bo
));
return
R
.
ok
(
configGroupService
.
updateByBo
(
bo
));
...
@@ -144,7 +146,7 @@ public class GroupController extends BaseController {
...
@@ -144,7 +146,7 @@ public class GroupController extends BaseController {
* @return 是否成功
* @return 是否成功
*/
*/
@SaCheckPermission
(
"server:group:updateConfig"
)
@SaCheckPermission
(
"server:group:updateConfig"
)
@
Pos
tMapping
(
"/config"
)
@
Ge
tMapping
(
"/config"
)
public
R
<
ConfigGroupVo
>
config
(
@RequestParam
Long
groupId
)
{
public
R
<
ConfigGroupVo
>
config
(
@RequestParam
Long
groupId
)
{
List
<
ConfigGroupVo
>
list
=
configGroupService
.
queryList
(
new
ConfigGroupBo
()
List
<
ConfigGroupVo
>
list
=
configGroupService
.
queryList
(
new
ConfigGroupBo
()
.
setGroupId
(
groupId
));
.
setGroupId
(
groupId
));
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/GroupPerson.java
浏览文件 @
7260db1e
...
@@ -3,9 +3,7 @@ package org.dromara.server.domain;
...
@@ -3,9 +3,7 @@ package org.dromara.server.domain;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
org.dromara.common.tenant.core.TenantEntity
;
import
java.io.Serial
;
import
java.io.Serial
;
...
@@ -17,9 +15,8 @@ import java.io.Serial;
...
@@ -17,9 +15,8 @@ import java.io.Serial;
*/
*/
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"travel_group_person"
)
@TableName
(
"travel_group_person"
)
public
class
GroupPerson
extends
TenantEntity
{
public
class
GroupPerson
{
@Serial
@Serial
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/domain/vo/GroupVo.java
浏览文件 @
7260db1e
...
@@ -4,10 +4,12 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
...
@@ -4,10 +4,12 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
io.github.linpeilie.annotations.AutoMapper
;
import
io.github.linpeilie.annotations.AutoMapper
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
org.dromara.server.domain.Group
;
import
org.dromara.server.domain.Group
;
import
java.io.Serial
;
import
java.io.Serial
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
/**
/**
...
@@ -42,5 +44,29 @@ public class GroupVo implements Serializable {
...
@@ -42,5 +44,29 @@ public class GroupVo implements Serializable {
@ExcelProperty
(
value
=
"备注"
)
@ExcelProperty
(
value
=
"备注"
)
private
String
remark
;
private
String
remark
;
/**
* 用户列表
*/
private
List
<
User
>
userList
;
@Data
@Accessors
(
chain
=
true
)
public
static
class
User
{
/**
* 用户id
*/
private
Long
userId
;
/**
* 用户名称
*/
private
String
userName
;
/**
* 手机号
*/
private
String
phone
;
}
}
}
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/GroupServiceImpl.java
浏览文件 @
7260db1e
package
org
.
dromara
.
server
.
service
.
impl
;
package
org
.
dromara
.
server
.
service
.
impl
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.bean.BeanUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.dubbo.config.annotation.DubboReference
;
import
org.apache.dubbo.config.annotation.DubboReference
;
import
org.dromara.common.core.utils.StreamUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.core.utils.StringUtils
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.common.mybatis.core.mapper.BaseMapperPlus
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
import
org.dromara.common.mybatis.service.AbstractBaseService
;
...
@@ -20,6 +22,7 @@ import org.dromara.server.mapper.GroupPersonMapper;
...
@@ -20,6 +22,7 @@ import org.dromara.server.mapper.GroupPersonMapper;
import
org.dromara.server.mapper.TravelConfigMapper
;
import
org.dromara.server.mapper.TravelConfigMapper
;
import
org.dromara.server.service.IGroupService
;
import
org.dromara.server.service.IGroupService
;
import
org.dromara.system.api.RemoteUserService
;
import
org.dromara.system.api.RemoteUserService
;
import
org.dromara.system.api.domain.vo.RemoteUserVo
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
...
@@ -48,6 +51,38 @@ public class GroupServiceImpl extends AbstractBaseService<GroupVo, GroupBo, Grou
...
@@ -48,6 +51,38 @@ public class GroupServiceImpl extends AbstractBaseService<GroupVo, GroupBo, Grou
return
baseMapper
;
return
baseMapper
;
}
}
@Override
public
void
processData
(
List
<
GroupVo
>
list
)
{
super
.
processData
(
list
);
List
<
Long
>
groupIds
=
StreamUtils
.
toList
(
list
,
GroupVo:
:
getId
);
if
(
CollUtil
.
isNotEmpty
(
groupIds
))
{
List
<
GroupPerson
>
gpList
=
groupPersonMapper
.
selectList
(
new
LambdaQueryWrapper
<
GroupPerson
>().
in
(
GroupPerson:
:
getGroupId
,
groupIds
));
List
<
Long
>
userIds
=
StreamUtils
.
toList
(
gpList
,
GroupPerson:
:
getUserId
);
List
<
RemoteUserVo
>
userList
=
remoteUserService
.
selectUserVoListByUserIds
(
userIds
);
for
(
GroupVo
group
:
list
)
{
List
<
Long
>
userIdList
=
gpList
.
stream
().
filter
(
gp
->
Objects
.
equals
(
group
.
getId
(),
gp
.
getGroupId
()))
.
map
(
GroupPerson:
:
getUserId
).
collect
(
Collectors
.
toList
());
group
.
setUserList
(
userIdList
.
stream
()
.
map
(
userId
->
{
GroupVo
.
User
user
=
new
GroupVo
.
User
();
user
.
setUserId
(
userId
);
userList
.
stream
().
filter
(
u
->
Objects
.
equals
(
u
.
getUserId
(),
userId
))
.
findFirst
()
.
ifPresent
(
u
->
{
user
.
setUserName
(
u
.
getNickName
());
user
.
setPhone
(
u
.
getPhonenumber
());
});
return
user
;
}
)
.
collect
(
Collectors
.
toList
())
);
}
}
}
@Override
@Override
public
LambdaQueryWrapper
<
Group
>
buildQueryWrapper
(
GroupBo
bo
)
{
public
LambdaQueryWrapper
<
Group
>
buildQueryWrapper
(
GroupBo
bo
)
{
Map
<
String
,
Object
>
params
=
bo
.
getParams
();
Map
<
String
,
Object
>
params
=
bo
.
getParams
();
...
@@ -132,7 +167,7 @@ public class GroupServiceImpl extends AbstractBaseService<GroupVo, GroupBo, Grou
...
@@ -132,7 +167,7 @@ public class GroupServiceImpl extends AbstractBaseService<GroupVo, GroupBo, Grou
TravelConfig
tc
=
travelConfigMapper
.
selectOne
(
Wrappers
.
lambdaQuery
());
TravelConfig
tc
=
travelConfigMapper
.
selectOne
(
Wrappers
.
lambdaQuery
());
Optional
.
ofNullable
(
tc
)
Optional
.
ofNullable
(
tc
)
.
ifPresent
(
config
->
{
.
ifPresent
(
config
->
{
ConfigGroup
cg
=
BeanUtil
.
copyProperties
(
config
,
ConfigGroup
.
class
);
ConfigGroup
cg
=
BeanUtil
.
copyProperties
(
config
,
ConfigGroup
.
class
,
"id"
);
cg
.
setGroupId
(
bo
.
getId
());
cg
.
setGroupId
(
bo
.
getId
());
configGroupMapper
.
insert
(
cg
);
configGroupMapper
.
insert
(
cg
);
});
});
...
...
ruoyi-modules/ruoyi-server/src/main/java/org/dromara/server/service/impl/TravelConfigServiceImpl.java
浏览文件 @
7260db1e
...
@@ -12,16 +12,10 @@ import org.dromara.common.satoken.utils.LoginHelper;
...
@@ -12,16 +12,10 @@ import org.dromara.common.satoken.utils.LoginHelper;
import
org.dromara.common.tenant.helper.TenantHelper
;
import
org.dromara.common.tenant.helper.TenantHelper
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.order.api.enums.OrderType
;
import
org.dromara.server.constant.travel.*
;
import
org.dromara.server.constant.travel.*
;
import
org.dromara.server.domain.Apply
;
import
org.dromara.server.domain.*
;
import
org.dromara.server.domain.ApplyPerson
;
import
org.dromara.server.domain.TravelConfig
;
import
org.dromara.server.domain.TravelConfigPerson
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.bo.TravelConfigBo
;
import
org.dromara.server.domain.vo.*
;
import
org.dromara.server.domain.vo.*
;
import
org.dromara.server.mapper.ApplyMapper
;
import
org.dromara.server.mapper.*
;
import
org.dromara.server.mapper.ApplyPersonMapper
;
import
org.dromara.server.mapper.TravelConfigMapper
;
import
org.dromara.server.mapper.TravelConfigPersonMapper
;
import
org.dromara.server.service.ITravelConfigService
;
import
org.dromara.server.service.ITravelConfigService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -41,6 +35,9 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
...
@@ -41,6 +35,9 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
private
final
ApplyMapper
applyMapper
;
private
final
ApplyMapper
applyMapper
;
private
final
ApplyPersonMapper
applyPersonMapper
;
private
final
ApplyPersonMapper
applyPersonMapper
;
private
final
TravelConfigPersonMapper
travelConfigPersonMapper
;
private
final
TravelConfigPersonMapper
travelConfigPersonMapper
;
private
final
GroupPersonMapper
groupPersonMapper
;
private
final
ConfigGroupMapper
configGroupMapper
;
@Override
@Override
public
BaseMapperPlus
<
TravelConfig
,
TravelConfigVo
>
mapper
()
{
public
BaseMapperPlus
<
TravelConfig
,
TravelConfigVo
>
mapper
()
{
...
@@ -150,10 +147,27 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
...
@@ -150,10 +147,27 @@ public class TravelConfigServiceImpl extends AbstractBaseService<TravelConfigVo,
@Override
@Override
public
TravelConfigVo
getTravelConfig
()
{
public
TravelConfigVo
getTravelConfig
()
{
Long
userId
=
LoginHelper
.
getUserId
();
//获取个人配置
//获取个人配置
TravelConfigPerson
travelConfigPerson
=
travelConfigPersonMapper
.
selectOne
(
new
LambdaQueryWrapper
<
TravelConfigPerson
>()
TravelConfigPerson
travelConfigPerson
=
travelConfigPersonMapper
.
selectOne
(
.
eq
(
TravelConfigPerson:
:
getUserId
,
LoginHelper
.
getUserId
()));
new
LambdaQueryWrapper
<
TravelConfigPerson
>()
return
Optional
.
ofNullable
(
travelConfigPerson
)
.
eq
(
TravelConfigPerson:
:
getUserId
,
userId
)
.
map
(
person
->
BeanUtil
.
copyProperties
(
person
,
TravelConfigVo
.
class
)).
orElseGet
(()
->
mapper
().
selectVoOne
(
new
LambdaQueryWrapper
<>()));
);
if
(
Objects
.
nonNull
(
travelConfigPerson
))
{
return
BeanUtil
.
copyProperties
(
travelConfigPerson
,
TravelConfigVo
.
class
);
}
//获取分组配置
GroupPerson
gp
=
groupPersonMapper
.
selectOne
(
new
LambdaQueryWrapper
<
GroupPerson
>()
.
eq
(
GroupPerson:
:
getUserId
,
userId
)
);
if
(
Objects
.
nonNull
(
gp
))
{
ConfigGroup
configGroup
=
configGroupMapper
.
selectOne
(
new
LambdaQueryWrapper
<
ConfigGroup
>()
.
eq
(
ConfigGroup:
:
getGroupId
,
gp
.
getGroupId
())
);
return
BeanUtil
.
copyProperties
(
configGroup
,
TravelConfigVo
.
class
);
}
return
mapper
().
selectVoOne
(
new
LambdaQueryWrapper
<>());
}
}
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论