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
81f9bfbe
Commit
81f9bfbe
authored
Jun 09, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【订C】新增订单退款成功回调接口,需要修改售后单状态(原因:发起退款时支付那边可能是退款中状态,定时任务补偿后需要回调订单)
parent
a068ef59
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
80 additions
and
21 deletions
+80
-21
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
+1
-11
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
+1
-9
order-management/src/main/java/cn/freemud/management/controller/OrderManagerController.java
+12
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/RefundSuccessCallbackVo.java
+4
-1
order-management/src/main/java/cn/freemud/management/service/OrderManagerService.java
+11
-0
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
+24
-0
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+27
-0
No files found.
order-application-service/src/main/java/cn/freemud/controller/OrderController.java
View file @
81f9bfbe
...
...
@@ -22,6 +22,7 @@ import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import
cn.freemud.entities.vo.encircle.EncircleReserveBaseVo
;
import
cn.freemud.entities.vo.order.*
;
import
cn.freemud.handler.OrderReportJobHandler
;
import
cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.Orderservice
;
import
cn.freemud.service.PointsMallOrderService
;
...
...
@@ -556,16 +557,5 @@ public class OrderController {
return
ResponseUtil
.
success
(
orderAdapterService
.
getOrderConfig
(
request
));
}
/**
* 同意退款, 支付服务退款失败的补偿接口
*
* 退款成功会回调该接口进行后续流程补偿
*/
@IsConvertEN
@ApiAnnotation
(
logMessage
=
"/order/refund/callback"
)
@PostMapping
(
"/refund/callback"
)
public
BaseResponse
refundSuccessCallback
(
@Validated
@LogParams
@RequestBody
RefundSuccessCallbackVo
req
)
{
return
orderAdapterService
.
refundSuccessCallback
(
req
);
}
}
order-application-service/src/main/java/cn/freemud/service/impl/OrderAdapterServiceImpl.java
View file @
81f9bfbe
...
...
@@ -17,6 +17,7 @@ import cn.freemud.entities.vo.order.PaymentConfigVo;
import
cn.freemud.entities.vo.order.PlugInParameter
;
import
cn.freemud.enums.*
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo
;
import
cn.freemud.management.service.handle.SaasOrderHandle
;
import
cn.freemud.management.thirdparty.OrderCallbackClient
;
import
cn.freemud.manager.OpenPlatformOrderConfigManager
;
...
...
@@ -465,13 +466,4 @@ public class OrderAdapterServiceImpl {
}
/**
* 支付退款成功回调
*
* @param req
* @return
*/
public
BaseResponse
refundSuccessCallback
(
RefundSuccessCallbackVo
req
)
{
return
null
;
}
}
order-management/src/main/java/cn/freemud/management/controller/OrderManagerController.java
View file @
81f9bfbe
...
...
@@ -3,6 +3,7 @@ package cn.freemud.management.controller;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.McCafeOrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo
;
import
cn.freemud.management.enums.McCafeOperateType
;
import
cn.freemud.management.enums.OperateType
;
import
cn.freemud.management.enums.ResponseResult
;
...
...
@@ -72,6 +73,17 @@ public class OrderManagerController {
}
}
/**
* 同意退款, 支付服务退款失败的补偿接口
*
* 退款成功会回调该接口进行后续流程补偿
*/
@ApiAnnotation
(
logMessage
=
"/order/refund/callback"
)
@PostMapping
(
"/refund/callback"
)
public
BaseResponse
refundSuccessCallback
(
@Validated
@LogParams
@RequestBody
RefundSuccessCallbackVo
req
)
{
return
orderManagerAdapter
.
refundSuccessCallback
(
req
);
}
@ApiAnnotation
(
logMessage
=
"mcCafeDeliveryCreate"
)
@ApiOperation
(
value
=
"麦咖啡订单入机"
,
notes
=
"麦咖啡订单入机"
,
produces
=
"application/json"
)
@PostMapping
(
"/mcCafe/statusOperate"
)
...
...
order-
application-service/src/main/java/cn/freemud/entities/vo
/RefundSuccessCallbackVo.java
→
order-
management/src/main/java/cn/freemud/management/entities/dto/request/order
/RefundSuccessCallbackVo.java
View file @
81f9bfbe
package
cn
.
freemud
.
entities
.
vo
;
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
order
;
import
lombok.Data
;
import
javax.validation.constraints.NotBlank
;
...
...
@@ -8,6 +10,7 @@ import javax.validation.constraints.NotBlank;
* @Date : 2022/6/8 17:38
* @description :
*/
@Data
public
class
RefundSuccessCallbackVo
{
/**
...
...
order-management/src/main/java/cn/freemud/management/service/OrderManagerService.java
View file @
81f9bfbe
...
...
@@ -2,6 +2,7 @@ package cn.freemud.management.service;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
...
...
@@ -110,4 +111,14 @@ public interface OrderManagerService {
default
BaseResponse
<
OrderManagerResponse
>
orderCancelDelivery
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
){
return
ResponseUtil
.
success
();
};
/**
* 支付退款成功的售后状态回调
* @param request
* @param orderBean
* @return
*/
default
BaseResponse
refundSuccessCallback
(
RefundSuccessCallbackVo
request
,
OrderBeanV1
orderBean
){
return
ResponseUtil
.
success
();
};
}
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
View file @
81f9bfbe
...
...
@@ -2,6 +2,7 @@ package cn.freemud.management.service.adapter;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.enums.OperateType
;
import
cn.freemud.management.enums.ResponseResult
;
...
...
@@ -371,4 +372,27 @@ public class OrderManagerAdapter {
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderAgreeRefund
(
request
,
orderBean
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
}
/**
* 支付退款成功回调
*
* @param request
* @return
*/
public
BaseResponse
refundSuccessCallback
(
RefundSuccessCallbackVo
request
)
{
// step 1 查订单
OrderBeanV1
orderBean
=
orderBaseService
.
getByOrderCode
(
request
.
getOrderCode
());
if
(
null
==
orderBean
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
}
// step 2 检查订单状态
//已取消的订单不能操作
if
(
ObjectUtils
.
equals
(
OrderStatusV1
.
CANCEL
.
getV2Code
(),
orderBean
.
getStatusV2
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_HAS_CANCELED
);
}
// step 3 调用后续逻辑操作
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
refundSuccessCallback
(
request
,
orderBean
);
return
ResponseUtil
.
success
();
}
}
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
81f9bfbe
...
...
@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
import
cn.freemud.management.constant.ResponseCodeConstant
;
import
cn.freemud.management.entities.dto.request.console.*
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.OperateType
;
...
...
@@ -30,6 +31,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderExpressReq;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.service.EmailAlertService
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
...
...
@@ -435,6 +437,31 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
return
ResponseUtil
.
success
();
}
@Override
public
BaseResponse
refundSuccessCallback
(
RefundSuccessCallbackVo
request
,
OrderBeanV1
orderBean
)
{
String
reason
=
"支付补偿,订单退款"
;
AfterSalesOrderResp
afterSalesOrderResp
=
orderBean
.
getAfterSalesOrderResp
();
if
(
Objects
.
nonNull
(
afterSalesOrderResp
))
{
reason
=
afterSalesOrderResp
.
getAfterSalesReason
();
}
//订单同意退款
PayRefundResponse
refundResponse
=
new
PayRefundResponse
();
refundResponse
.
setPayRefundStatus
(
PayRefundStatus
.
SUCCESS
);
refundResponse
.
setRefundId
(
request
.
getRefundId
());
OrderManagerRequest
omRequest
=
new
OrderManagerRequest
();
omRequest
.
setReason
(
reason
);
omRequest
.
setOperator
(
"支付退款回调系统补偿"
);
saasOrderHandle
.
refundAgree
(
omRequest
,
refundResponse
,
orderBean
);
// 推送pos、微信消息中心
orderBaseService
.
sendMessage
(
orderBean
,
ORDER_AGREE_REFUND
,
reason
);
//todo 可以考虑基于订单回调异步实现
//冲正库存
stockHandle
.
revert
(
omRequest
,
orderBean
);
return
ResponseUtil
.
success
();
}
/**
* @param query
* @param partnerId
...
...
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