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-28 16:47:21 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
62ac02c5c74eed55b9d9e2be0fd14cd521317bf7
62ac02c5
1 parent
115907b9
农信停餐
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
5 deletions
src/main/java/com/infoloop/tianting/service/impl/MealOrderServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/MealOrderServiceImpl.java
View file @
62ac02c
...
...
@@ -28,6 +28,7 @@ import java.util.ArrayList;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
@Slf4j
...
...
@@ -267,6 +268,7 @@ public class MealOrderServiceImpl implements MealOrderService {
// 3. 获取所有订餐人信息
var
diners
=
mealOrderServiceRpcClient
.
getDinersByIds
(
loginInfo
.
getEnterpriseId
(),
dinerIds
);
var
dinerById
=
diners
.
stream
().
collect
(
Collectors
.
toMap
(
SingleDinerRpcResponse:
:
getId
,
diner
->
diner
));
// 4. 获取所有不重复的clientId
var
uniqueClientIds
=
diners
.
stream
()
...
...
@@ -277,10 +279,10 @@ public class MealOrderServiceImpl implements MealOrderService {
// 5. 批量获取所有学校的停餐信息
var
schoolSuspensionRecords
=
mealOrderServiceRpcClient
.
queryDinerMealSuspensionRecordsByCondition
(
loginInfo
.
getEnterpriseId
(),
uniqueClientIds
.
stream
().
map
(
Long:
:
intValue
).
toList
()
,
null
,
null
,
null
);
)
.
stream
().
filter
(
r
->
r
.
getClassId
()
==
0
).
toList
()
;
// 6. 批量获取所有学生的停餐信息
var
studentSuspensionRecords
=
mealOrderServiceRpcClient
.
queryDinerMealSuspensionRecordsByCondition
(
...
...
@@ -296,7 +298,7 @@ public class MealOrderServiceImpl implements MealOrderService {
SingleDinerMealSuspensionRecordRpcResponse:
:
getClientId
,
Collectors
.
collectingAndThen
(
Collectors
.
maxBy
((
a
,
b
)
->
Long
.
compare
(
a
.
getCreatedAt
(),
b
.
getCreatedAt
())),
opt
->
opt
.
map
(
this
::
convertToVO
).
orElse
(
null
)
opt
->
opt
.
map
(
o
->
convertToVO
(
o
,
dinerById
)
).
orElse
(
null
)
)
));
...
...
@@ -306,7 +308,7 @@ public class MealOrderServiceImpl implements MealOrderService {
SingleDinerMealSuspensionRecordRpcResponse:
:
getDinerId
,
Collectors
.
collectingAndThen
(
Collectors
.
maxBy
((
a
,
b
)
->
Long
.
compare
(
a
.
getCreatedAt
(),
b
.
getCreatedAt
())),
opt
->
opt
.
map
(
this
::
convertToVO
).
orElse
(
null
)
opt
->
opt
.
map
(
o
->
convertToVO
(
o
,
dinerById
)
).
orElse
(
null
)
)
));
...
...
@@ -323,13 +325,15 @@ public class MealOrderServiceImpl implements MealOrderService {
return
studentSuspensionMap
.
get
(
Long
.
valueOf
(
diner
.
getId
()).
intValue
());
})
.
filter
(
record
->
record
!=
null
)
.
distinct
()
.
toList
();
}
/**
* 将RPC响应转换为VO对象
*/
private
DinerMealSuspensionRecordVO
convertToVO
(
SingleDinerMealSuspensionRecordRpcResponse
response
)
{
private
DinerMealSuspensionRecordVO
convertToVO
(
SingleDinerMealSuspensionRecordRpcResponse
response
,
Map
<
Integer
,
SingleDinerRpcResponse
>
dinerById
)
{
if
(
response
==
null
)
{
return
null
;
}
...
...
@@ -340,6 +344,8 @@ public class MealOrderServiceImpl implements MealOrderService {
.
clientId
(
Long
.
valueOf
(
response
.
getClientId
()))
.
classId
(
Long
.
valueOf
(
response
.
getClassId
()))
.
dinerId
(
Long
.
valueOf
(
response
.
getDinerId
()))
.
dinerName
(
dinerById
.
get
(
response
.
getDinerId
())
!=
null
?
dinerById
.
get
(
response
.
getDinerId
()).
getName
()
:
null
)
.
studentNo
(
dinerById
.
get
(
response
.
getDinerId
())
!=
null
?
dinerById
.
get
(
response
.
getDinerId
()).
getStudentNo
()
:
null
)
.
startAt
(
new
Date
(
response
.
getStartAt
()))
.
endAt
(
new
Date
(
response
.
getEndAt
()))
.
comment
(
response
.
getComment
())
...
...
Please
register
or
login
to post a comment