Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
order-group-application
order-group
Commits
e80b5c1d
Commit
e80b5c1d
authored
Apr 23, 2020
by
shuhu.hou@freemud.cn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oms订单履单正向流程
parent
2177ca8a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
44 additions
and
45 deletions
+44
-45
order-management/src/main/java/cn/freemud/management/controller/OrderManagerController.java
+2
-2
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+20
-43
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderService.java
+22
-0
No files found.
order-management/src/main/java/cn/freemud/management/controller/OrderManagerController.java
View file @
e80b5c1d
...
@@ -36,8 +36,8 @@ public class OrderManagerController {
...
@@ -36,8 +36,8 @@ public class OrderManagerController {
private
OrderManagerAdapter
orderManagerAdapter
;
private
OrderManagerAdapter
orderManagerAdapter
;
@ApiAnnotation
(
logMessage
=
"订单履单"
)
@ApiAnnotation
(
logMessage
=
"
oms
订单履单"
)
@ApiOperation
(
value
=
"订单履单"
,
notes
=
"订单履单"
,
produces
=
"application/json"
)
@ApiOperation
(
value
=
"
oms
订单履单"
,
notes
=
"订单履单"
,
produces
=
"application/json"
)
@PostMapping
(
"/statusOperate"
)
@PostMapping
(
"/statusOperate"
)
public
BaseResponse
deliveryCreate
(
@Validated
@LogParams
@RequestBody
OrderManagerRequest
request
)
{
public
BaseResponse
deliveryCreate
(
@Validated
@LogParams
@RequestBody
OrderManagerRequest
request
)
{
OperateType
byOpType
=
OperateType
.
getByOpType
(
request
.
getOperateType
());
OperateType
byOpType
=
OperateType
.
getByOpType
(
request
.
getOperateType
());
...
...
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
e80b5c1d
...
@@ -55,37 +55,26 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -55,37 +55,26 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
/**
/**
* 接单
* 接单
* @param request 请求参数
*
* @param request 请求参数
* @param orderBean 订单实体
* @param orderBean 订单实体
* @return
* @return
*/
*/
@Override
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
public
BaseResponse
<
OrderManagerResponse
>
orderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
//退款状态
// 订单接单
RefundStatus
refundStatus
=
CollectionUtils
.
isEmpty
(
orderBean
.
getRefundList
())
?
null
:
RefundStatus
.
getByCode
(
orderBean
.
getRefundList
().
get
(
0
).
getStatus
());
saasOrderService
.
orderAffirm
(
request
,
orderBean
);
//订单接单
BaseQueryOrderRequest
orderConfirmRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
);
BaseOrderResponse
confirmOrderResponse
=
orderCenterSdkService
.
orderConfirmTake
(
orderConfirmRequest
);
//获取门店信息
//获取门店信息
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()),
""
);
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()),
""
);
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
storeInfo
.
getStatusCode
().
toString
())
||
storeInfo
.
getBizVO
()
==
null
)
{
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
storeInfo
.
getStatusCode
().
toString
())
||
storeInfo
.
getBizVO
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_NOT_FOUND
);
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_NOT_FOUND
);
}
}
//处理1秒重复接单问题 订单服务接单返回20067重复操作,20018状态机不支持认为接单成功
// 创建配送单
if
(
"20067"
.
equals
(
confirmOrderResponse
.
getErrcode
().
toString
())
||
"20018"
.
equals
(
confirmOrderResponse
.
getErrcode
().
toString
())
||
"50002"
.
equals
(
confirmOrderResponse
.
getErrcode
().
toString
())
)
{
orderDeliveryService
.
createDelivery
(
orderBean
,
storeInfo
,
request
.
getOperator
());
return
ResponseUtil
.
success
(
new
OrderManagerResponse
(
storeInfo
.
getBizVO
().
getOrderPrintConfig
(),
orderBean
.
getGmtExpect
(),
refundStatus
));
}
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
confirmOrderResponse
.
getErrcode
().
toString
())){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_ACCEPT_FAILED
);
}
//创建配送单
Pair
<
Boolean
,
String
>
deliveryResponse
=
orderDeliveryService
.
createDelivery
(
orderBean
,
storeInfo
,
request
.
getOperator
());
if
(!
deliveryResponse
.
getKey
()){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED
);
}
// 推送pos消息中心
// 推送pos消息中心
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_CONFIRM
,
request
.
getReason
());
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_CONFIRM
,
request
.
getReason
());
return
ResponseUtil
.
success
(
new
OrderManagerResponse
(
storeInfo
.
getBizVO
().
getOrderPrintConfig
(),
orderBean
.
getGmtExpect
(),
refundStatus
));
return
ResponseUtil
.
success
(
new
OrderManagerResponse
(
storeInfo
.
getBizVO
().
getOrderPrintConfig
(),
orderBean
.
getGmtExpect
(),
CollectionUtils
.
isEmpty
(
orderBean
.
getRefundList
())
?
null
:
RefundStatus
.
getByCode
(
orderBean
.
getRefundList
().
get
(
0
).
getStatus
())));
}
}
/**
/**
...
@@ -97,14 +86,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -97,14 +86,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
*/
*/
@Override
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderDone
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
public
BaseResponse
<
OrderManagerResponse
>
orderDone
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
//订单制作完成
// 订单制作完成
BaseQueryOrderRequest
orderDoneRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
);
saasOrderService
.
orderDone
(
request
,
orderBean
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderDone
(
orderDoneRequest
);
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
())){
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_FAIL
);
}
// 推送pos消息中心
// 推送pos消息中心
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_DONE
,
request
.
getReason
());
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_DONE
,
request
.
getReason
());
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
...
@@ -117,14 +102,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -117,14 +102,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
*/
*/
@Override
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderDelivery
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
public
BaseResponse
<
OrderManagerResponse
>
orderDelivery
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
//订单配送
// 订单配送
BaseQueryOrderRequest
orderDeliveryRequest
=
orderSdkAdapter
.
getOrderDeliveryRequest
(
request
.
getOperator
(),
orderBean
);
saasOrderService
.
orderDelivery
(
request
,
orderBean
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderSend
(
orderDeliveryRequest
);
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
())){
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_FAIL
);
}
// 推送pos消息中心
// 推送pos消息中心
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_SEND
,
request
.
getReason
());
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_SEND
,
request
.
getReason
());
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
...
@@ -137,14 +118,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -137,14 +118,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
*/
*/
@Override
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderAffirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
public
BaseResponse
<
OrderManagerResponse
>
orderAffirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
//订单完成
// 订单完成
BaseQueryOrderRequest
orderAffirmRequest
=
orderSdkAdapter
.
getOrderDeliveryRequest
(
request
.
getOperator
(),
orderBean
);
saasOrderService
.
orderAffirm
(
request
,
orderBean
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderAffirm
(
orderAffirmRequest
);
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
())){
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_FAIL
);
}
// 推送pos消息中心
// 推送pos消息中心
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_AFFIRM
,
request
.
getReason
());
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_AFFIRM
,
request
.
getReason
());
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
...
...
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderService.java
View file @
e80b5c1d
...
@@ -2,6 +2,7 @@ package cn.freemud.management.service.impl;
...
@@ -2,6 +2,7 @@ package cn.freemud.management.service.impl;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.util.ResponseUtil
;
import
cn.freemud.management.util.ResponseUtil
;
...
@@ -33,6 +34,27 @@ public class SaasOrderService {
...
@@ -33,6 +34,27 @@ public class SaasOrderService {
@Autowired
@Autowired
private
OrderCenterSdkService
orderCenterSdkService
;
private
OrderCenterSdkService
orderCenterSdkService
;
/**
* 确认接单
* @param request
* @param orderBean
* @return
*/
public
BaseResponse
orderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
//订单接单
BaseQueryOrderRequest
orderConfirmRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
);
BaseOrderResponse
confirmOrderResponse
=
orderCenterSdkService
.
orderConfirmTake
(
orderConfirmRequest
);
//处理1秒重复接单问题 订单服务接单返回20067重复操作,20018状态机不支持认为接单成功
if
(
"20067"
.
equals
(
confirmOrderResponse
.
getErrcode
().
toString
())
||
"20018"
.
equals
(
confirmOrderResponse
.
getErrcode
().
toString
())
||
"50002"
.
equals
(
confirmOrderResponse
.
getErrcode
().
toString
())
)
{
return
ResponseUtil
.
success
();
}
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
confirmOrderResponse
.
getErrcode
().
toString
())){
throw
new
OrderServiceException
(
ResponseResult
.
ORDER_ACCEPT_FAILED
);
}
return
ResponseUtil
.
success
();
}
/**
/**
* 订单制作完成
* 订单制作完成
* @param request
* @param request
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment