Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation
This project
Loading...
Sign in
李苗
/
Vion-DevOps
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 06d04f0a
authored
Mar 13, 2025
by
HlQ
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
[feat] 集团默认指标配置新增修改关闭时逻辑完善
1 parent
58eae9bc
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
78 additions
and
17 deletions
src/main/java/vion/service/impl/monitor/MAccountServiceImpl.java
src/main/java/vion/service/impl/monitor/MAccountServiceImpl.java
View file @
06d04f0
...
...
@@ -5,6 +5,8 @@ import com.github.yulichang.base.MPJBaseServiceImpl;
import
lombok.RequiredArgsConstructor
;
import
org.dromara.hutool.core.bean.BeanUtil
;
import
org.dromara.hutool.core.collection.CollUtil
;
import
org.dromara.hutool.core.text.StrUtil
;
import
org.dromara.hutool.core.util.ObjUtil
;
import
org.springframework.stereotype.Service
;
import
vion.mapper.monitor.MAccountMapper
;
import
vion.model.monitor.*
;
...
...
@@ -12,8 +14,11 @@ import vion.service.monitor.IMAccountService;
import
vion.service.monitor.IRAccountEventService
;
import
vion.service.monitor.IRAgentEventService
;
import
vion.service.monitor.IRUserAccountService
;
import
vion.utils.TimeZoneUtil
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
* @author vion
...
...
@@ -34,27 +39,83 @@ public class MAccountServiceImpl extends MPJBaseServiceImpl<MAccountMapper, MAcc
@Override
public
String
saveEvent
(
String
agentUid
,
String
uid
,
RAccountEvent
event
)
{
var
one
=
accountEventService
.
lambdaQuery
()
.
eq
(
RAccountEvent:
:
getAccountUid
,
uid
)
.
eq
(
RAccountEvent:
:
getEventUid
,
event
.
getEventUid
())
.
one
();
event
.
setAgentUid
(
agentUid
);
event
.
setAccountUid
(
uid
);
var
save
=
accountEventService
.
save
(
event
);
boolean
save
;
if
(
ObjUtil
.
isNull
(
one
))
{
save
=
accountEventService
.
save
(
event
);
}
else
{
event
.
setId
(
one
.
getId
());
save
=
accountEventService
.
updateById
(
event
);
}
if
(
save
)
{
var
mallList
=
Db
.
lambdaQuery
(
Mall
.
class
).
eq
(
Mall:
:
getAccountUid
,
uid
).
list
();
var
mallUidList
=
mallList
.
stream
().
map
(
Mall:
:
getUid
).
toList
();
if
(
1
==
event
.
getControlSwitch
())
{
var
mallList
=
Db
.
lambdaQuery
(
Mall
.
class
)
.
eq
(
Mall:
:
getAccountUid
,
uid
)
.
ne
(
Mall:
:
getStatus
,
2
)
.
list
();
var
mall2TimeZoneMap
=
mallList
.
stream
().
collect
(
Collectors
.
toMap
(
Mall:
:
getUid
,
v
->
StrUtil
.
defaultIfBlank
(
v
.
getTimeZone
(),
""
)));
var
mallUidList
=
new
ArrayList
<>(
mallList
.
stream
().
map
(
Mall:
:
getUid
).
toList
());
var
eventList
=
agentEventService
.
lambdaQuery
()
.
eq
(
RAgentEvent:
:
getAccountUid
,
uid
)
.
eq
(
RAgentEvent:
:
getEventUid
,
event
.
getEventUid
())
.
list
();
var
existMallUidList
=
eventList
.
stream
().
map
(
RAgentEvent:
:
getMallUid
).
toList
();
if
(
CollUtil
.
isNotEmpty
(
mallUidList
)
&&
CollUtil
.
isNotEmpty
(
existMallUidList
))
{
// 把 existMallUidList 从 mallUidList 中移除
mallUidList
.
removeAll
(
existMallUidList
);
var
saveList
=
mallUidList
.
stream
().
map
(
mUid
->
{
var
rAgentEvent
=
BeanUtil
.
copyProperties
(
event
,
RAgentEvent
.
class
);
rAgentEvent
.
setMallUid
(
mUid
);
return
rAgentEvent
;
}).
toList
();
var
res
=
agentEventService
.
saveBatch
(
saveList
);
var
eventList
=
agentEventService
.
lambdaQuery
()
.
eq
(
RAgentEvent:
:
getAccountUid
,
uid
)
.
eq
(
RAgentEvent:
:
getEventUid
,
event
.
getEventUid
())
.
list
();
var
existMallUidList
=
eventList
.
stream
().
map
(
RAgentEvent:
:
getMallUid
).
toList
();
if
(
CollUtil
.
isNotEmpty
(
mallUidList
))
{
// 查询未配置指标的 mallUid
// 把 existMallUidList 从 mallUidList 中移除
mallUidList
.
removeAll
(
existMallUidList
);
if
(
CollUtil
.
isNotEmpty
(
mallUidList
))
{
var
saveList
=
mallUidList
.
stream
().
map
(
mUid
->
{
var
rAgentEvent
=
BeanUtil
.
copyProperties
(
event
,
RAgentEvent
.
class
);
rAgentEvent
.
setId
(
null
);
rAgentEvent
.
setMallUid
(
mUid
);
var
timeZone
=
mall2TimeZoneMap
.
get
(
mUid
);
rAgentEvent
.
setTimeZone
(
timeZone
);
String
offsetCron
=
rAgentEvent
.
getCron
();
if
(
StrUtil
.
isNotBlank
(
timeZone
))
{
int
offsetMinute
=
TimeZoneUtil
.
getOffsetMinute
(
timeZone
);
offsetCron
=
TimeZoneUtil
.
convertCronExpression
(
offsetCron
,
offsetMinute
);
}
rAgentEvent
.
setOffsetCron
(
offsetCron
);
return
rAgentEvent
;
}).
toList
();
var
res
=
agentEventService
.
saveBatch
(
saveList
);
if
(!
res
)
{
throw
new
RuntimeException
();
}
}
}
if
(
CollUtil
.
isNotEmpty
(
existMallUidList
))
{
var
updateList
=
eventList
.
stream
().
peek
(
v
->
{
BeanUtil
.
copyProperties
(
event
,
v
,
"id"
);
var
timeZone
=
mall2TimeZoneMap
.
get
(
v
.
getMallUid
());
v
.
setTimeZone
(
timeZone
);
String
offsetCron
=
v
.
getCron
();
if
(
StrUtil
.
isNotBlank
(
timeZone
))
{
int
offsetMinute
=
TimeZoneUtil
.
getOffsetMinute
(
timeZone
);
offsetCron
=
TimeZoneUtil
.
convertCronExpression
(
offsetCron
,
offsetMinute
);
}
v
.
setOffsetCron
(
offsetCron
);
}).
toList
();
var
res
=
agentEventService
.
updateBatchById
(
updateList
);
if
(!
res
)
{
throw
new
RuntimeException
();
}
}
}
else
if
(
0
==
event
.
getControlSwitch
())
{
// 集团默认指标配置关闭,对应集团下的 mall 配置的指标也要关闭
var
res
=
agentEventService
.
lambdaUpdate
()
.
set
(
RAgentEvent:
:
getControlSwitch
,
0
)
.
eq
(
RAgentEvent:
:
getAccountUid
,
uid
)
.
update
(
new
RAgentEvent
());
if
(!
res
)
{
throw
new
RuntimeException
();
}
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment