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
wangyingyang
2024-12-13 11:18:57 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
94d74b5c73456e653116b63a9f6ab1caa1eff440
94d74b5c
1 parent
74176b43
fix
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
77 additions
and
15 deletions
src/main/java/com/infoloop/tianting/model/dto/OperationDTO.java
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
src/main/java/com/infoloop/tianting/service/impl/SettlementServiceImpl.java
src/main/java/com/infoloop/tianting/model/dto/OperationDTO.java
0 → 100644
View file @
94d74b5
package
com
.
infoloop
.
tianting
.
model
.
dto
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderOperationType
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderSourceEnum
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.DishRuleJson
;
import
com.infoloop.tianting.model.dto.MenuDbDTO.OrderRuleJson
;
import
io.swagger.annotations.ApiModel
;
import
java.util.List
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.ToString
;
@Data
@ApiModel
(
description
=
"操作记录DTO"
)
public
class
OperationDTO
{
@Data
@Builder
@ToString
@ApiModel
(
description
=
"单个操作记录Dto"
)
public
static
class
SingleOperationDto
{
private
Integer
orderId
;
OrderOperationType
type
;
private
boolean
shouldCreateOriginalOrderJson
;
private
String
originalOrderJson
;
private
boolean
shouldCreateAdjustOrderJson
;
private
String
adjustOrderJson
;
private
boolean
shouldCreateOriginalOrderDetailJson
;
private
String
originalOrderDetailJson
;
private
boolean
shouldCreateAdjustOrderDetailJson
;
private
String
adjustOrderDetailJson
;
}
@Data
@Builder
@ToString
@ApiModel
(
description
=
"批量操作记录Dto"
)
public
static
class
BatchOperationDto
{
private
List
<
SingleOperationDto
>
creations
;
private
Integer
enterpriseId
;
private
Integer
createdBy
;
private
String
operator
;
private
OrderSourceEnum
creationSource
;
}
}
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
View file @
94d74b5
...
...
@@ -576,7 +576,10 @@ public class OrderDbDTO {
@ToString
@ApiModel
(
description
=
"检查是否已预定过某一餐单"
)
public
static
class
getMenuOrderCountDto
{
private
Integer
customerId
;
@Builder
.
Default
private
String
openId
=
""
;
@Builder
.
Default
private
Integer
customerId
=
0
;
private
Integer
menuId
;
private
LocalDateTime
mealTime
;
}
...
...
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
View file @
94d74b5
This diff is collapsed. Click to expand it.
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
View file @
94d74b5
...
...
@@ -102,7 +102,8 @@ public class OrderServiceImpl implements OrderService {
createOrderDto
.
setCustomerId
(
operatorCreateOrderDto
.
getCustomerId
());
createOrderDto
.
setStallId
(
operatorCreateOrderDto
.
getStallId
());
createOrderDto
.
setMenuId
(
operatorCreateOrderDto
.
getMenuId
());
createOrderDto
.
setMealTime
(
operatorCreateOrderDto
.
getMealTime
());
final
var
mealTime
=
operatorCreateOrderDto
.
getMealTime
().
toLocalDate
().
atStartOfDay
();
createOrderDto
.
setMealTime
(
mealTime
);
createOrderDto
.
setRemark
(
operatorCreateOrderDto
.
getRemark
());
createOrderDto
.
setCreatedBy
(
operatorLoginInfo
.
getId
());
createOrderDto
.
setClientId
(
operator
.
getClientId
());
...
...
@@ -251,8 +252,10 @@ public class OrderServiceImpl implements OrderService {
.
mealTimeEnd
(
mealTimeEnd
)
.
shouldFilterMenuId
(
true
)
.
menuId
(
checkIfOrdered
.
getMenuId
())
.
shouldFilterCustomerIds
(
true
)
.
shouldFilterCustomerIds
(
checkIfOrdered
.
getCustomerId
().
equals
(
0
)?
false
:
true
)
.
customerIds
(
List
.
of
(
checkIfOrdered
.
getCustomerId
()))
.
shouldFilterOpenId
(
checkIfOrdered
.
getOpenId
().
isEmpty
()?
false
:
true
)
.
openId
(
checkIfOrdered
.
getOpenId
())
.
build
();
final
var
orderList
=
orderServiceRpcClient
.
getOrdersByCondition
(
queryOrderDto
);
return
orderList
.
size
();
...
...
src/main/java/com/infoloop/tianting/service/impl/SettlementServiceImpl.java
View file @
94d74b5
package
com
.
infoloop
.
tianting
.
service
.
impl
;
import
com.infoloop.tianting.clientcustomerorderservice.OrderStatusEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.ServeStatusEnum
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderDetailRpcResponse
;
import
com.infoloop.tianting.clientcustomerorderservice.SingleClientCustomerOrderRpcResponse
;
import
com.infoloop.tianting.clientinventoryservice.SingleClientRpcResponse
;
import
com.infoloop.tianting.context.LoginContextHolder
;
import
com.infoloop.tianting.enums.SettlementDimensionEnum
;
import
com.infoloop.tianting.exception.ClientEndExceptions.BusinessException
;
...
...
@@ -70,8 +72,8 @@ public class SettlementServiceImpl implements SettlementService {
public
ByteArrayOutputStream
generateOrderSettlementExcelBySku
(
SettlementRequestDto
settlementRequest
)
{
final
var
startDate
=
settlementRequest
.
getTimeStart
().
toLocalDate
().
atStartOfDay
();
final
var
endDate
=
settlementRequest
.
getTimeEnd
().
toLocalDate
().
plusDays
(
1
).
atStartOfDay
();
final
var
startDate
=
settlementRequest
.
getTimeStart
().
plusHours
(
8
).
toLocalDate
().
atStartOfDay
();
final
var
endDate
=
settlementRequest
.
getTimeEnd
().
plusHours
(
8
).
toLocalDate
().
plusDays
(
1
).
atStartOfDay
();
final
var
operatorLoginInfo
=
LoginContextHolder
.
getLoginInfo
();
final
int
enterpriseId
=
LoginContextHolder
.
hasLogin
()
?
operatorLoginInfo
.
getEnterpriseId
()
:
settlementRequest
.
getEnterpriseId
();
final
var
queryOrderDto
=
QueryOrderByConditionDto
.
builder
()
...
...
@@ -90,6 +92,7 @@ public class SettlementServiceImpl implements SettlementService {
.
collect
(
Collectors
.
toList
());
final
var
orderDetailList
=
orderServiceRpcClient
.
getOrderDetailsByOrderIds
(
orderIds
);
List
<
Integer
>
skuIds
=
orderDetailList
.
stream
()
.
filter
(
d
->
!
d
.
getServeStatus
().
equals
(
ServeStatusEnum
.
SERVE_REJECT
))
.
map
(
SingleClientCustomerOrderDetailRpcResponse:
:
getSkuId
)
.
distinct
()
.
collect
(
Collectors
.
toList
());
...
...
@@ -153,7 +156,7 @@ public class SettlementServiceImpl implements SettlementService {
//找出当天所有已点的菜品明细
final
var
curOrderDetails
=
orderDetailList
.
stream
()
.
filter
(
d
->
curOrderIds
.
contains
(
d
.
getOrderId
()))
.
filter
(
d
->
curOrderIds
.
contains
(
d
.
getOrderId
())
&&
!
d
.
getServeStatus
().
equals
(
ServeStatusEnum
.
SERVE_REJECT
)
)
.
collect
(
Collectors
.
toList
());
for
(
SingleMenuDetailRpcResponse
m:
curMenuDetails
)
{
...
...
@@ -198,14 +201,20 @@ public class SettlementServiceImpl implements SettlementService {
}
}
final
var
client
=
inventoryServiceRpcClient
.
getClientById
(
enterpriseId
,
settlementRequest
.
getClientId
()).
getClient
();
// final var client = inventoryServiceRpcClient.getClientById(enterpriseId,
// settlementRequest.getClientId()).getClient();
final
var
stalls
=
inventoryServiceRpcClient
.
getStallsByIds
(
operatorLoginInfo
.
getEnterpriseId
(),
settlementRequest
.
getStallIds
()).
getClientsList
();
final
var
stallNames
=
stalls
.
stream
()
.
filter
(
s
->
settlementRequest
.
getStallIds
().
contains
(
s
.
getId
()))
.
map
(
SingleClientRpcResponse:
:
getName
).
collect
(
Collectors
.
toList
());
String
joinedString
=
String
.
join
(
" "
,
stallNames
);
final
var
settlementDataDto
=
SettlementDataDto
.
builder
()
.
classifyOrders
(
classifyOrders
)
.
client
(
client
.
getName
()
)
.
startTime
(
DateUtil
.
formatDate
(
settlementRequest
.
getTimeStart
(),
DateUtil
.
YYYY_MM_DD
))
.
endTime
(
DateUtil
.
formatDate
(
settlementRequest
.
getTimeEnd
(),
DateUtil
.
YYYY_MM_DD
))
.
client
(
joinedString
)
.
startTime
(
DateUtil
.
formatDate
(
settlementRequest
.
getTimeStart
()
.
plusHours
(
8
)
,
DateUtil
.
YYYY_MM_DD
))
.
endTime
(
DateUtil
.
formatDate
(
settlementRequest
.
getTimeEnd
()
.
plusHours
(
8
)
,
DateUtil
.
YYYY_MM_DD
))
.
build
();
try
{
final
var
bytes
=
writeToExcelBySku
(
settlementDataDto
);
return
bytes
;
...
...
@@ -319,8 +328,8 @@ public class SettlementServiceImpl implements SettlementService {
public
ByteArrayOutputStream
generateOrderSettlementExcelByMeal
(
SettlementRequestDto
settlementRequest
)
{
final
var
startDate
=
settlementRequest
.
getTimeStart
().
toLocalDate
().
atStartOfDay
();
final
var
endDate
=
settlementRequest
.
getTimeEnd
().
toLocalDate
().
plusDays
(
1
).
atStartOfDay
();
final
var
startDate
=
settlementRequest
.
getTimeStart
().
plusHours
(
8
).
toLocalDate
().
atStartOfDay
();
final
var
endDate
=
settlementRequest
.
getTimeEnd
().
plusHours
(
8
).
toLocalDate
().
plusDays
(
1
).
atStartOfDay
();
final
var
operatorLoginInfo
=
LoginContextHolder
.
getLoginInfo
();
final
var
queryOrderDto
=
QueryOrderByConditionDto
.
builder
()
.
enterpriseId
(
LoginContextHolder
.
hasLogin
()
?
operatorLoginInfo
.
getEnterpriseId
()
:
settlementRequest
.
getEnterpriseId
())
...
...
@@ -424,8 +433,8 @@ public class SettlementServiceImpl implements SettlementService {
final
var
settlementDataByMealDto
=
SettlementDataByMealDto
.
builder
()
.
classifyOrders
(
classifyOrders
)
.
client
(
client
.
getName
())
.
startTime
(
settlementRequest
.
getTimeStart
())
.
endTime
(
settlementRequest
.
getTimeEnd
())
.
startTime
(
settlementRequest
.
getTimeStart
()
.
plusHours
(
8
)
)
.
endTime
(
settlementRequest
.
getTimeEnd
()
.
plusHours
(
8
)
)
.
build
();
try
{
final
var
bytes
=
writeToExcelByMeal
(
settlementDataByMealDto
);
...
...
Please
register
or
login
to post a comment