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-11-20 11:27:34 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
c2335df8abfa9d8fadf4f880e600080a37c0d691
c2335df8
1 parent
06df1f18
update order
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
145 additions
and
27 deletions
.DS_Store
src/.DS_Store
src/main/java/com/infoloop/tianting/controller/InventoryController.java
src/main/java/com/infoloop/tianting/controller/OrderController.java
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
src/main/java/com/infoloop/tianting/service/OrderService.java
src/main/java/com/infoloop/tianting/service/client/DeliveryRuleServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
.DS_Store
View file @
c2335df
No preview for this file type
src/.DS_Store
View file @
c2335df
No preview for this file type
src/main/java/com/infoloop/tianting/controller/InventoryController.java
View file @
c2335df
...
...
@@ -49,6 +49,7 @@ public class InventoryController {
return
inventoryService
.
getStallsByClientId
(
enterpriseId
,
clientId
);
}
@SaIgnore
@ApiOperation
(
value
=
"获取桌号"
)
@PostMapping
(
"/tableCodes"
)
@ResponseStatus
(
HttpStatus
.
OK
)
...
...
src/main/java/com/infoloop/tianting/controller/OrderController.java
View file @
c2335df
package
com
.
infoloop
.
tianting
.
controller
;
import
cn.dev33.satoken.annotation.SaIgnore
;
import
com.github.xiaoymin.knife4j.annotations.ApiSupport
;
import
com.infoloop.tianting.model.dto.OrderDbDTO
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse
;
...
...
@@ -71,6 +72,15 @@ public class OrderController {
return
orderService
.
createOrder
(
createOrderDto
);
}
@ApiOperation
(
value
=
"创建订单"
)
@PostMapping
(
"/operator/orders"
)
@ResponseStatus
(
HttpStatus
.
OK
)
public
CreateOrderResponse
createOrderByOperator
(
@Valid
@RequestBody
OrderDbDTO
.
OperatorCreateOrderDto
createOrderDto
)
{
return
orderService
.
orderCreation
(
createOrderDto
);
}
// @SaIgnore
@ApiOperation
(
value
=
"修改订单"
)
@PatchMapping
(
"/orders/modification"
)
@ResponseStatus
(
HttpStatus
.
OK
)
...
...
@@ -78,6 +88,7 @@ public class OrderController {
return
orderService
.
updateOrder
(
updateOrderDto
);
}
// @SaIgnore
@ApiOperation
(
value
=
"批量修改订单详情"
)
@PatchMapping
(
"/order_details/modification"
)
@ResponseStatus
(
HttpStatus
.
OK
)
...
...
src/main/java/com/infoloop/tianting/model/dto/OrderDbDTO.java
View file @
c2335df
...
...
@@ -13,8 +13,10 @@ import java.util.List;
import
java.util.Optional
;
import
javax.validation.Valid
;
import
jdk.jfr.StackTrace
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.ToString
;
@Data
...
...
@@ -144,9 +146,35 @@ public class OrderDbDTO {
private
List
<
String
>
doctors
;
}
@Data
@Builder
@ApiModel
(
description
=
"创建订单视图"
)
public
static
class
OperatorCreateOrderDto
{
@ApiModelProperty
(
value
=
"档口 ID"
)
private
Integer
stallId
;
@ApiModelProperty
(
value
=
"客户 ID"
)
private
Integer
customerId
;
@ApiModelProperty
(
value
=
"餐单 id"
)
private
Integer
menuId
;
@ApiModelProperty
(
value
=
"用餐日期"
)
private
LocalDateTime
mealTime
;
@ApiModelProperty
(
value
=
"备注"
)
private
String
remark
;
@ApiModelProperty
(
value
=
"订单菜品详情列表"
)
private
List
<
OperatorCreateOrderDetailDto
>
orderDetailDtos
;
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
(
description
=
"创建订单视图"
)
public
static
class
CreateOrderDto
{
@ApiModelProperty
(
value
=
"企业 ID"
)
private
Integer
enterpriseId
;
...
...
@@ -158,7 +186,7 @@ public class OrderDbDTO {
private
Integer
stallId
;
@ApiModelProperty
(
value
=
"需要创建客户 ID"
)
p
ublic
Boolean
shouldCreateCustomerId
;
p
rivate
Boolean
shouldCreateCustomerId
;
@ApiModelProperty
(
value
=
"客户 ID"
)
private
Integer
customerId
;
...
...
@@ -440,6 +468,18 @@ public class OrderDbDTO {
@Builder
@ToString
@ApiModel
(
description
=
"订单详情信息,即菜品细节"
)
public
static
class
OperatorCreateOrderDetailDto
{
@ApiModelProperty
(
value
=
"餐单详情 id,即菜品"
)
private
Integer
menuDetailId
;
@ApiModelProperty
(
value
=
"菜品所点份数"
)
private
Integer
count
;
}
@Data
@Builder
@ToString
@ApiModel
(
description
=
"订单详情信息,即菜品细节"
)
public
static
class
CreateOrderDetailDto
{
@ApiModelProperty
(
value
=
"餐单详情 id,即菜品"
)
private
Integer
menuDetailId
;
...
...
src/main/java/com/infoloop/tianting/service/OrderService.java
View file @
c2335df
...
...
@@ -4,6 +4,7 @@ import com.infoloop.tianting.model.common.PageResult;
import
com.infoloop.tianting.model.dto.OrderDbDTO.BatchUpdateOrderDetailResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.CreateOrderResponse
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OperatorCreateOrderDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderAndDetailsDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailBatchUpdateDto
;
import
com.infoloop.tianting.model.dto.OrderDbDTO.OrderDetailDto
;
...
...
@@ -20,6 +21,7 @@ public interface OrderService {
PageResult
<
OrderDto
>
getOrdersByPagination
(
QueryOrderByPaginationDto
queryOrderDto
);
List
<
OrderDetailDto
>
getOrderDetailsByOrderId
(
Integer
orderId
);
CreateOrderResponse
createOrder
(
CreateOrderDto
createOrderDto
);
CreateOrderResponse
orderCreation
(
OperatorCreateOrderDto
createOrderDto
);
UpdateOrderResponse
updateOrder
(
UpdateOrderDto
updateOrderDto
);
BatchUpdateOrderDetailResponse
batchUpdateOrderDetails
(
OrderDetailBatchUpdateDto
batchUpdateDto
);
}
...
...
src/main/java/com/infoloop/tianting/service/client/DeliveryRuleServiceRpcClient.java
View file @
c2335df
package
com
.
infoloop
.
tianting
.
service
.
client
;
import
com.infoloop.tianting.deliveryruleservice.ClientLabelTypeEnum
;
import
com.infoloop.tianting.deliveryruleservice.GetClientLabelsByIdsRpcRequest
;
import
com.infoloop.tianting.deliveryruleservice.GetClientLabelsByIdsRpcResponse
;
import
com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcRequest
;
import
com.infoloop.tianting.deliveryruleservice.QueryClientLabelsByConditionRpcResponse
;
import
com.infoloop.tianting.deliveryruleservice.TiantingDeliveryRuleServiceRpcGrpc
;
import
com.infoloop.tianting.model.dto.ClientLabelDTO.QueryLabelsDto
;
import
java.util.List
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -26,4 +29,16 @@ public class DeliveryRuleServiceRpcClient {
return
deliveryRuleServiceRpcBlockingStub
.
queryClientLabelsByCondition
(
request
);
}
public
GetClientLabelsByIdsRpcResponse
GetClientLabelsByIds
(
Integer
enterpriseId
,
List
<
Integer
>
ids
)
{
final
var
request
=
GetClientLabelsByIdsRpcRequest
.
newBuilder
()
.
setEnterpriseId
(
enterpriseId
)
.
setIncludeDeleted
(
false
)
.
addAllIds
(
ids
)
.
build
();
return
deliveryRuleServiceRpcBlockingStub
.
getClientLabelsByIds
(
request
);
}
}
...
...
src/main/java/com/infoloop/tianting/service/client/OrderServiceRpcClient.java
View file @
c2335df
...
...
@@ -39,7 +39,6 @@ import io.swagger.models.auth.In;
import
java.time.ZoneOffset
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collector
;
import
java.util.stream.Collectors
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -67,12 +66,26 @@ public class OrderServiceRpcClient {
public
UpdateClientCustomerOrderRpcResponse
updateClientCustomerOrder
(
UpdateOrderDto
updateOrderDto
)
{
OrderStatusEnum
status
=
OrderStatusEnum
.
UNKNOWN_STATUS
;
if
(
updateOrderDto
.
isShouldUpdateStatus
())
{
status
=
updateOrderDto
.
getStatus
();
}
String
roomNo
=
""
;
if
(
updateOrderDto
.
isShouldUpdateRoomNo
())
{
roomNo
=
updateOrderDto
.
getRoomNo
();
}
String
tableCode
=
""
;
if
(
updateOrderDto
.
isShouldUpdateTableCode
())
{
tableCode
=
updateOrderDto
.
getTableCode
();
}
final
var
modification
=
ClientCustomerOrderModification
.
newBuilder
()
.
setId
(
updateOrderDto
.
getId
())
.
setShouldUpdateStatus
(
updateOrderDto
.
isShouldUpdateStatus
())
.
setStatus
(
updateOrderDto
.
getStatus
()
)
.
setStatus
(
status
)
.
setShouldUpdateTableCode
(
updateOrderDto
.
isShouldUpdateTableCode
())
.
setTableCode
(
updateOrderDto
.
getTableCode
())
.
setTableCode
(
tableCode
)
.
setShouldUpdateRoomNo
(
updateOrderDto
.
isShouldUpdateRoomNo
())
.
setRoomNo
(
roomNo
)
.
build
();
final
var
request
=
UpdateClientCustomerOrderRpcRequest
.
newBuilder
()
.
setEnterpriseId
(
updateOrderDto
.
getEnterpriseId
())
...
...
@@ -86,38 +99,74 @@ public class OrderServiceRpcClient {
public
BatchUpdateClientCustomerOrderDetailsRpcResponse
batchUpdateClientCustomerOrderDetails
(
OrderDetailBatchUpdateDto
orderDetailBatchUpdateDto
)
{
final
var
modifications
=
orderDetailBatchUpdateDto
.
getDetails
().
stream
().
map
(
d
->
ClientCustomerOrderDetailModification
.
newBuilder
()
final
var
modifications
=
orderDetailBatchUpdateDto
.
getDetails
().
stream
().
map
(
d
->
{
MealDetail
mealDetail
;
if
(
d
.
getShouldUpdateMealDetailJson
())
{
mealDetail
=
MealDetail
.
newBuilder
()
.
setBasicMaterials
(
d
.
getMealDetailJson
().
getBasicMaterials
())
.
addAllTastes
(
d
.
getMealDetailJson
().
getTastes
())
.
addAllEfficacies
(
d
.
getMealDetailJson
().
getEfficacies
())
.
addAllDockers
(
d
.
getMealDetailJson
().
getDockers
())
.
setEnergy
(
d
.
getMealDetailJson
().
getEnergy
())
.
setFat
(
d
.
getMealDetailJson
().
getFat
())
.
setProtein
(
d
.
getMealDetailJson
().
getProtein
())
.
setCarbohydrate
(
d
.
getMealDetailJson
().
getCarbohydrate
())
.
addAllAllergies
(
d
.
getMealDetailJson
().
getAllergies
())
.
addAllAvoids
(
d
.
getMealDetailJson
().
getAvoids
())
.
addAllSkus
(
d
.
getMealDetailJson
().
getSkus
())
.
build
();
}
else
{
mealDetail
=
MealDetail
.
newBuilder
().
build
();
}
Integer
menuDetailId
=
0
;
if
(
d
.
getShouldUpdateMenuDetailId
())
{
menuDetailId
=
d
.
getMenuDetailId
();
}
Integer
count
=
0
;
if
(
d
.
getShouldUpdateCount
())
{
count
=
d
.
getCount
();
}
Integer
mealId
=
0
;
if
(
d
.
getShouldUpdateMealId
())
{
mealId
=
d
.
getMealId
();
}
Integer
categoryId
=
0
;
if
(
d
.
getShouldUpdateCategoryId
())
{
categoryId
=
d
.
getCategoryId
();
}
Integer
skuId
=
0
;
if
(
d
.
getShouldUpdateSkuId
())
{
skuId
=
d
.
getSkuId
();
}
String
showName
=
""
;
if
(
d
.
getShouldUpdateShowName
())
{
showName
=
d
.
getShowName
();
}
Boolean
notServe
=
false
;
if
(
d
.
getShouldUpdateNotServe
())
{
notServe
=
true
;
}
final
var
detail
=
ClientCustomerOrderDetailModification
.
newBuilder
()
.
setId
(
d
.
getId
())
.
setShouldUpdateMenuDetailId
(
d
.
getShouldUpdateMenuDetailId
())
.
setMenuDetailId
(
d
.
getMenuDetailId
()
)
.
setMenuDetailId
(
menuDetailId
)
.
setShouldUpdateCount
(
d
.
getShouldUpdateCount
())
.
setCount
(
d
.
getCount
()
)
.
setCount
(
count
)
.
setShouldUpdateMealId
(
d
.
getShouldUpdateMealId
())
.
setMealId
(
d
.
getMealId
()
)
.
setMealId
(
mealId
)
.
setShouldUpdateCategoryId
(
d
.
getShouldUpdateCategoryId
())
.
setCategoryId
(
d
.
getCategoryId
()
)
.
setCategoryId
(
categoryId
)
.
setShouldUpdateSkuId
(
d
.
getShouldUpdateSkuId
())
.
setSkuId
(
d
.
getSkuId
()
)
.
setSkuId
(
skuId
)
.
setShouldUpdateShowName
(
d
.
getShouldUpdateShowName
())
.
setShowName
(
d
.
getShowName
()
)
.
setShowName
(
showName
)
.
setShouldUpdateNotServe
(
d
.
getShouldUpdateNotServe
())
.
setNotServe
(
d
.
getNotServe
()
)
.
setNotServe
(
notServe
)
.
setShouldUpdateMealDetailJson
(
d
.
getShouldUpdateMealDetailJson
())
.
setMealDetailJson
(
MealDetail
.
newBuilder
()
.
setBasicMaterials
(
d
.
getMealDetailJson
().
getBasicMaterials
())
.
addAllTastes
(
d
.
getMealDetailJson
().
getTastes
())
.
addAllEfficacies
(
d
.
getMealDetailJson
().
getEfficacies
())
.
addAllDockers
(
d
.
getMealDetailJson
().
getDockers
())
.
setEnergy
(
d
.
getMealDetailJson
().
getEnergy
())
.
setFat
(
d
.
getMealDetailJson
().
getFat
())
.
setProtein
(
d
.
getMealDetailJson
().
getProtein
())
.
setCarbohydrate
(
d
.
getMealDetailJson
().
getCarbohydrate
())
.
addAllAllergies
(
d
.
getMealDetailJson
().
getAllergies
())
.
addAllAvoids
(
d
.
getMealDetailJson
().
getAvoids
())
.
addAllSkus
(
d
.
getMealDetailJson
().
getSkus
())
.
build
())
.
build
()
.
setMealDetailJson
(
mealDetail
)
.
build
();
return
detail
;
}
).
collect
(
Collectors
.
toList
());
final
var
request
=
BatchUpdateClientCustomerOrderDetailsRpcRequest
.
newBuilder
()
.
setEnterpriseId
(
orderDetailBatchUpdateDto
.
getEnterpriseId
())
...
...
src/main/java/com/infoloop/tianting/service/impl/OrderServiceImpl.java
View file @
c2335df
This diff is collapsed. Click to expand it.
Please
register
or
login
to post a comment