Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jiujian
/
client-customer-order-api
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
jin.shuai
2025-05-29 11:07:19 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
b72032389b11d36c524ea26ce38c1edb93f8595e
b7203238
1 parent
62ac02c5
农信停餐
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
7 deletions
src/main/java/com/infoloop/tianting/service/impl/MealOrderServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/MealOrderServiceImpl.java
View file @
b720323
...
...
@@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
java.time.DayOfWeek
;
import
java.time.Instant
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
...
...
@@ -29,6 +30,7 @@ import java.util.Collections;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
@Slf4j
...
...
@@ -277,12 +279,13 @@ public class MealOrderServiceImpl implements MealOrderService {
.
toList
();
// 5. 批量获取所有学校的停餐信息
final
var
now
=
Instant
.
now
();
var
schoolSuspensionRecords
=
mealOrderServiceRpcClient
.
queryDinerMealSuspensionRecordsByCondition
(
loginInfo
.
getEnterpriseId
(),
null
,
null
,
null
).
stream
().
filter
(
r
->
r
.
getClassId
()
==
0
).
toList
();
).
stream
().
filter
(
r
->
r
.
getClassId
()
==
0
).
filter
(
r
->
r
.
getEndAt
()
>
now
.
toEpochMilli
()).
toList
();
// 6. 批量获取所有学生的停餐信息
var
studentSuspensionRecords
=
mealOrderServiceRpcClient
.
queryDinerMealSuspensionRecordsByCondition
(
...
...
@@ -290,7 +293,7 @@ public class MealOrderServiceImpl implements MealOrderService {
null
,
null
,
dinerIds
);
)
.
stream
().
filter
(
r
->
r
.
getEndAt
()
>
now
.
toEpochMilli
()).
toList
()
;
// 7. 构建学校停餐信息Map
var
schoolSuspensionMap
=
schoolSuspensionRecords
.
stream
()
...
...
@@ -315,16 +318,41 @@ public class MealOrderServiceImpl implements MealOrderService {
// 9. 获取每个订餐人的停餐信息
return
diners
.
stream
()
.
map
(
diner
->
{
//
先查询
学校级别的停餐信息
//
获取
学校级别的停餐信息
var
schoolSuspension
=
schoolSuspensionMap
.
get
(
Long
.
valueOf
(
diner
.
getClientId
()).
intValue
());
if
(
schoolSuspension
!=
null
)
{
// 获取学生级别的停餐信息
var
studentSuspension
=
studentSuspensionMap
.
get
(
Long
.
valueOf
(
diner
.
getId
()).
intValue
());
// 如果两个都没有停餐信息,返回null
if
(
schoolSuspension
==
null
&&
studentSuspension
==
null
)
{
return
null
;
}
// 如果只有学校级别的停餐信息
if
(
schoolSuspension
!=
null
&&
studentSuspension
==
null
)
{
return
schoolSuspension
;
}
// 如果学校没有停餐信息,查询学生级别的停餐信息
return
studentSuspensionMap
.
get
(
Long
.
valueOf
(
diner
.
getId
()).
intValue
());
// 如果只有学生级别的停餐信息
if
(
schoolSuspension
==
null
&&
studentSuspension
!=
null
)
{
return
studentSuspension
;
}
// 如果两个都有停餐信息,合并时间范围
return
DinerMealSuspensionRecordVO
.
builder
()
.
id
(
schoolSuspension
.
getId
())
.
enterpriseId
(
schoolSuspension
.
getEnterpriseId
())
.
clientId
(
schoolSuspension
.
getClientId
())
.
classId
(
studentSuspension
.
getClassId
())
.
dinerId
(
studentSuspension
.
getDinerId
())
.
dinerName
(
studentSuspension
.
getDinerName
())
.
studentNo
(
studentSuspension
.
getStudentNo
())
.
startAt
(
new
Date
(
Math
.
min
(
schoolSuspension
.
getStartAt
().
getTime
(),
studentSuspension
.
getStartAt
().
getTime
())))
.
endAt
(
new
Date
(
Math
.
max
(
schoolSuspension
.
getEndAt
().
getTime
(),
studentSuspension
.
getEndAt
().
getTime
())))
.
comment
(
""
)
.
build
();
})
.
filter
(
record
->
record
!=
n
ull
)
.
filter
(
Objects:
:
nonN
ull
)
.
distinct
()
.
toList
();
}
...
...
Please
register
or
login
to post a comment