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
ed597807
Commit
ed597807
authored
Jun 23, 2022
by
ping.wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支付退款代码整理
parent
622d5753
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
643 additions
and
572 deletions
+643
-572
order-application-service/src/main/java/cn/freemud/controller/delivery/DeliveryController.java
+2
-1
order-application-service/src/main/java/cn/freemud/service/ThirdDeliveryService.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/delivery/ThirdDeliveryServiceImpl.java
+70
-70
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+1
-1
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
+14
-7
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+8
-3
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
+34
-17
order-application-service/src/main/java/cn/freemud/service/thirdparty/PaymentNewClient.java
+1
-0
order-management/src/main/java/cn/freemud/management/service/adapter/OrderBeanFactory.java
+3
-3
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
+33
-33
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+100
-116
order-management/src/main/java/cn/freemud/management/service/impl/MallOrderMangerServiceImpl.java
+42
-19
order-management/src/main/java/cn/freemud/management/service/impl/McCafeMangerServiceImpl.java
+260
-260
order-management/src/main/java/cn/freemud/management/service/impl/NewMallOrderMangerServiceImpl.java
+59
-25
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+15
-16
No files found.
order-application-service/src/main/java/cn/freemud/controller/delivery/DeliveryController.java
View file @
ed597807
...
@@ -55,7 +55,8 @@ public class DeliveryController {
...
@@ -55,7 +55,8 @@ public class DeliveryController {
@ApiOperation
(
value
=
"麦咖啡配送回调"
,
notes
=
"麦咖啡配送回调"
,
produces
=
"application/json"
)
@ApiOperation
(
value
=
"麦咖啡配送回调"
,
notes
=
"麦咖啡配送回调"
,
produces
=
"application/json"
)
@PostMapping
(
"/delivery/macCafeCallback"
)
@PostMapping
(
"/delivery/macCafeCallback"
)
public
BaseResponse
macCafeCallback
(
@Valid
@LogParams
@RequestBody
MacCafeCallbackUrlRequestDto
request
)
{
public
BaseResponse
macCafeCallback
(
@Valid
@LogParams
@RequestBody
MacCafeCallbackUrlRequestDto
request
)
{
return
deliveryService
.
macCafeCallbackUrl
(
request
);
// return deliveryService.macCafeCallbackUrl(request);
return
new
BaseResponse
(
"1"
,
"101"
);
}
}
@ApiAnnotation
(
logMessage
=
"商城配送回调"
)
@ApiAnnotation
(
logMessage
=
"商城配送回调"
)
@ApiOperation
(
value
=
"商城配送回调"
,
notes
=
"商城配送回调"
,
produces
=
"application/json"
)
@ApiOperation
(
value
=
"商城配送回调"
,
notes
=
"商城配送回调"
,
produces
=
"application/json"
)
...
...
order-application-service/src/main/java/cn/freemud/service/ThirdDeliveryService.java
View file @
ed597807
...
@@ -20,7 +20,7 @@ public interface ThirdDeliveryService {
...
@@ -20,7 +20,7 @@ public interface ThirdDeliveryService {
/**
/**
* 配送回调
* 配送回调
*/
*/
BaseResponse
macCafeCallbackUrl
(
MacCafeCallbackUrlRequestDto
request
);
//
BaseResponse macCafeCallbackUrl(MacCafeCallbackUrlRequestDto request);
/**
/**
...
...
order-application-service/src/main/java/cn/freemud/service/delivery/ThirdDeliveryServiceImpl.java
View file @
ed597807
...
@@ -212,76 +212,76 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
...
@@ -212,76 +212,76 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
*
*
* @param request
* @param request
*/
*/
@Override
//
@Override
public
BaseResponse
macCafeCallbackUrl
(
MacCafeCallbackUrlRequestDto
request
)
{
//
public BaseResponse macCafeCallbackUrl(MacCafeCallbackUrlRequestDto request) {
OrderManagerRequest
orderManagerRequest
=
new
OrderManagerRequest
();
//
OrderManagerRequest orderManagerRequest = new OrderManagerRequest();
orderManagerRequest
.
setPartnerId
(
request
.
getPartnerId
());
//
orderManagerRequest.setPartnerId(request.getPartnerId());
orderManagerRequest
.
setOrderId
(
request
.
getOrderId
());
//
orderManagerRequest.setOrderId(request.getOrderId());
if
(
"1"
.
equals
(
request
.
getCancelApplicant
()))
{
//
if ("1".equals(request.getCancelApplicant())) {
orderManagerRequest
.
setReason
(
StringUtils
.
isNotBlank
(
request
.
getCancelReason
())
?
request
.
getCancelReason
()
:
"餐道主动取消"
);
//
orderManagerRequest.setReason(StringUtils.isNotBlank(request.getCancelReason()) ? request.getCancelReason() : "餐道主动取消");
}
else
{
//
} else {
orderManagerRequest
.
setReason
(
null
);
//
orderManagerRequest.setReason(null);
}
//
}
orderManagerRequest
.
setOperator
(
"配送回调"
);
//
orderManagerRequest.setOperator("配送回调");
//
//
Integer
reviewStatus
=
request
.
getReviewStatus
();
//
Integer reviewStatus = request.getReviewStatus();
int
deliveryStatus
=
request
.
getDeliveryStatus
();
//
int deliveryStatus = request.getDeliveryStatus();
if
(
reviewStatus
!=
null
&&
reviewStatus
.
equals
(
DeliveryReviewStatus
.
AGREE
.
getCode
()))
{
//
if (reviewStatus != null && reviewStatus.equals(DeliveryReviewStatus.AGREE.getCode())) {
orderManagerRequest
.
setOperateType
(
OperateType
.
ORDER_AGREE_REFUND
.
getOpType
());
//
orderManagerRequest.setOperateType(OperateType.ORDER_AGREE_REFUND.getOpType());
orderManagerRequest
.
setReason
(
"配送回调-同意退款"
);
//
orderManagerRequest.setReason("配送回调-同意退款");
return
orderManagerAdapter
.
orderPayRefund
(
orderManagerRequest
);
//
return orderManagerAdapter.orderPayRefund(orderManagerRequest);
}
//
}
if
(
reviewStatus
!=
null
&&
reviewStatus
.
equals
(
DeliveryReviewStatus
.
REJECT
.
getCode
()))
{
//
if (reviewStatus != null && reviewStatus.equals(DeliveryReviewStatus.REJECT.getCode())) {
orderManagerRequest
.
setOperateType
(
OperateType
.
ORDER_REJECT_REFUND
.
getOpType
());
//
orderManagerRequest.setOperateType(OperateType.ORDER_REJECT_REFUND.getOpType());
orderManagerRequest
.
setReason
(
"配送回调-拒绝退款"
);
//
orderManagerRequest.setReason("配送回调-拒绝退款");
return
orderManagerAdapter
.
mcCafeOrderRejectRefund
(
orderManagerRequest
);
//
return orderManagerAdapter.mcCafeOrderRejectRefund(orderManagerRequest);
}
//
}
if
(
deliveryStatus
==
DeliveryStatus
.
RIDERGETMEAL
.
getCode
()
||
deliveryStatus
==
DeliveryStatus
.
RIDERSTARTDELIVERY
.
getCode
())
{
//
if (deliveryStatus == DeliveryStatus.RIDERGETMEAL.getCode() || deliveryStatus == DeliveryStatus.RIDERSTARTDELIVERY.getCode()) {
orderManagerRequest
.
setOperateType
(
OperateType
.
ORDER_SEND
.
getOpType
());
//
orderManagerRequest.setOperateType(OperateType.ORDER_SEND.getOpType());
BaseResponse
<
OrderManagerResponse
>
baseResponse
=
orderManagerAdapter
.
orderDelivery
(
orderManagerRequest
);
//
BaseResponse<OrderManagerResponse> baseResponse = orderManagerAdapter.orderDelivery(orderManagerRequest);
if
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE_STR
.
equals
(
baseResponse
.
getCode
()))
{
//
if (ResponseConstant.SUCCESS_RESPONSE_CODE_STR.equals(baseResponse.getCode())) {
updateDeliveryStatus
(
request
);
//
updateDeliveryStatus(request);
}
//
}
sendMcCafeMicroMessage
(
request
.
getPartnerId
(),
request
.
getOrderId
(),
request
.
getDeliveryStatus
());
//
sendMcCafeMicroMessage(request.getPartnerId(), request.getOrderId(), request.getDeliveryStatus());
return
baseResponse
;
//
return baseResponse;
}
else
if
(
deliveryStatus
==
DeliveryStatus
.
DELIVERYARRIVED
.
getCode
())
{
//
} else if (deliveryStatus == DeliveryStatus.DELIVERYARRIVED.getCode()) {
orderManagerRequest
.
setOperateType
(
OperateType
.
ORDER_AFFIRM
.
getOpType
());
//
orderManagerRequest.setOperateType(OperateType.ORDER_AFFIRM.getOpType());
BaseResponse
<
OrderManagerResponse
>
baseResponse
=
orderManagerAdapter
.
orderAffirm
(
orderManagerRequest
,
null
);
//
BaseResponse<OrderManagerResponse> baseResponse = orderManagerAdapter.orderAffirm(orderManagerRequest, null);
if
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE_STR
.
equals
(
baseResponse
.
getCode
()))
{
//
if (ResponseConstant.SUCCESS_RESPONSE_CODE_STR.equals(baseResponse.getCode())) {
updateDeliveryStatus
(
request
);
//
updateDeliveryStatus(request);
}
//
}
sendMcCafeMicroMessage
(
request
.
getPartnerId
(),
request
.
getOrderId
(),
request
.
getDeliveryStatus
());
//
sendMcCafeMicroMessage(request.getPartnerId(), request.getOrderId(), request.getDeliveryStatus());
return
baseResponse
;
//
return baseResponse;
}
else
if
(
deliveryStatus
==
DeliveryStatus
.
WATINGORDER
.
getCode
()
||
deliveryStatus
==
DeliveryStatus
.
SYSTEMGETORDER
.
getCode
()
//
} else if (deliveryStatus == DeliveryStatus.WATINGORDER.getCode() || deliveryStatus == DeliveryStatus.SYSTEMGETORDER.getCode()
||
deliveryStatus
==
DeliveryStatus
.
ALLOTRIDER
.
getCode
()
||
deliveryStatus
==
DeliveryStatus
.
RIDERARRIVESTORE
.
getCode
())
{
//
|| deliveryStatus == DeliveryStatus.ALLOTRIDER.getCode() || deliveryStatus == DeliveryStatus.RIDERARRIVESTORE.getCode()) {
updateDeliveryStatus
(
request
);
//
updateDeliveryStatus(request);
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
else
if
(
deliveryStatus
==
DeliveryStatus
.
COLLECTING
.
getCode
())
{
//
} else if (deliveryStatus == DeliveryStatus.COLLECTING.getCode()) {
//推送订单到拉单队列
//
//推送订单到拉单队列
OrderCollectReq
orderCollectReq
=
new
OrderCollectReq
();
//
OrderCollectReq orderCollectReq = new OrderCollectReq();
orderCollectReq
.
setOrderCode
(
request
.
getOrderId
());
//
orderCollectReq.setOrderCode(request.getOrderId());
orderCollectReq
.
setPartnerId
(
request
.
getPartnerId
());
//
orderCollectReq.setPartnerId(request.getPartnerId());
OrderBaseResp
baseResponse
=
orderSdkService
.
collectOrder
(
orderCollectReq
,
LogThreadLocal
.
getTrackingNo
());
//
OrderBaseResp baseResponse = orderSdkService.collectOrder(orderCollectReq, LogThreadLocal.getTrackingNo());
if
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE_STR
.
equals
(
baseResponse
.
getCode
()))
{
//
if (ResponseConstant.SUCCESS_RESPONSE_CODE_STR.equals(baseResponse.getCode())) {
ResponseUtil
.
error
(
ResponseResult
.
ORDER_COLLECT_FAILED
);
//
ResponseUtil.error(ResponseResult.ORDER_COLLECT_FAILED);
}
//
}
//回调成功,记录汇集状态
//
//回调成功,记录汇集状态
updateDeliveryStatus
(
request
);
//
updateDeliveryStatus(request);
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
else
if
(
deliveryStatus
==
DeliveryStatus
.
DELIVERYERROR
.
getCode
())
{
//
} else if (deliveryStatus == DeliveryStatus.DELIVERYERROR.getCode()) {
AssortmentUpdateDeliveryAbnormalRequest
assortmentUpdateDeliveryAbnormalRequest
=
AssortmentUpdateDeliveryAbnormalRequest
.
builder
()
//
AssortmentUpdateDeliveryAbnormalRequest assortmentUpdateDeliveryAbnormalRequest = AssortmentUpdateDeliveryAbnormalRequest.builder()
.
abnormalDesc
(
request
.
getRemark
())
//
.abnormalDesc(request.getRemark())
.
deliveryId
(
request
.
getDeliveryId
())
//
.deliveryId(request.getDeliveryId())
.
orderCode
(
request
.
getOrderId
())
//
.orderCode(request.getOrderId())
.
partnerId
(
request
.
getPartnerId
())
//
.partnerId(request.getPartnerId())
.
operator
(
"餐道"
)
//
.operator("餐道")
.
build
();
//
.build();
orderCenterSdkService
.
updateDeliveryAbnormal
(
assortmentUpdateDeliveryAbnormalRequest
);
//
orderCenterSdkService.updateDeliveryAbnormal(assortmentUpdateDeliveryAbnormalRequest);
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
//
}
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_DELIVERY_CALL_BACK_FAILED
);
//
return ResponseUtil.error(ResponseResult.ORDER_DELIVERY_CALL_BACK_FAILED);
}
//
}
private
OrderBaseResponse
updateDeliveryStatus
(
MacCafeCallbackUrlRequestDto
request
)
{
private
OrderBaseResponse
updateDeliveryStatus
(
MacCafeCallbackUrlRequestDto
request
)
{
UpdateDeliveryInfoByIdRequest
updateDeliveryInfoByIdRequest
=
new
UpdateDeliveryInfoByIdRequest
();
UpdateDeliveryInfoByIdRequest
updateDeliveryInfoByIdRequest
=
new
UpdateDeliveryInfoByIdRequest
();
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
ed597807
...
@@ -1329,7 +1329,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
...
@@ -1329,7 +1329,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
extendParams
.
put
(
"mealType"
,
"pickup"
);
extendParams
.
put
(
"mealType"
,
"pickup"
);
}
}
orderPayRefundRequest
.
setExtendParams
(
extendParams
);
orderPayRefundRequest
.
setExtendParams
(
extendParams
);
response
=
payService
.
orderRefund
(
orderPayRefundRequest
);
//
response = payService.orderRefund(orderPayRefundRequest);
if
(
response
==
null
||
response
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
response
.
getCode
()))
{
if
(
response
==
null
||
response
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
response
.
getCode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/service/impl/MallOrderServiceImpl.java
View file @
ed597807
...
@@ -27,8 +27,10 @@ import cn.freemud.entities.vo.*;
...
@@ -27,8 +27,10 @@ import cn.freemud.entities.vo.*;
import
cn.freemud.enums.*
;
import
cn.freemud.enums.*
;
import
cn.freemud.handler.MemberBlacklistHandler
;
import
cn.freemud.handler.MemberBlacklistHandler
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
cn.freemud.management.entities.dto.response.pay.OrderRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.OrderRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.manager.SpellGroupOrderDataManager
;
import
cn.freemud.manager.SpellGroupOrderDataManager
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.service.BuriedPointService
;
import
cn.freemud.service.BuriedPointService
;
...
@@ -683,19 +685,24 @@ public class MallOrderServiceImpl implements MallOrderService {
...
@@ -683,19 +685,24 @@ public class MallOrderServiceImpl implements MallOrderService {
* @param orderBean
* @param orderBean
*/
*/
private
BaseResponse
partnerNoTakeOrder
(
OrderRefundVo
orderRefundVo
,
OrderBeanV1
orderBean
,
String
fatherOrderId
)
{
private
BaseResponse
partnerNoTakeOrder
(
OrderRefundVo
orderRefundVo
,
OrderBeanV1
orderBean
,
String
fatherOrderId
)
{
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
response
=
null
;
// PayRefundResponse
response = null;
Long
refundId
=
System
.
currentTimeMillis
();
Long
refundId
=
System
.
currentTimeMillis
();
String
partnerId
=
orderBean
.
getCompanyId
();
String
partnerId
=
orderBean
.
getCompanyId
();
int
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
int
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
if
(
orderBean
.
getAmount
()
!=
0
)
{
if
(
orderBean
.
getAmount
()
!=
0
)
{
//调用支付退款
//调用支付退款
PayRefundRequestDto
orderPayRefundRequest
=
orderAdapter
.
getOrderPayRefundRequest
(
orderBean
,
refundId
,
fatherOrderId
);
// PayRefundRequestDto orderPayRefundRequest = orderAdapter.getOrderPayRefundRequest(orderBean, refundId, fatherOrderId);
response
=
payServiceImpl
.
orderRefund
(
orderPayRefundRequest
);
// response = payServiceImpl.orderRefund(orderPayRefundRequest);
if
(
response
==
null
||
response
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
.
equals
(
response
.
getCode
()))
{
// if (response == null || response.getData() == null || !com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(response.getCode())) {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
// return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed");
}
// }
//获取支付返回退款状态
// state = response.getData().getRefundStatus() == null ? PayRefundStatus.SUCCESS.getCode() : response.getData().getRefundStatus();
OrderManagerRequest
request
=
new
OrderManagerRequest
();
request
.
setReason
(
orderRefundVo
.
getReason
());
PayRefundResponse
payRefundResponse
=
payServiceImpl
.
payRefundCommon
(
request
,
orderBean
);
//获取支付返回退款状态
//获取支付返回退款状态
state
=
response
.
getData
().
getRefundStatus
()
==
null
?
PayRefundStatus
.
SUCCESS
.
getCode
()
:
response
.
getData
().
getRefundStatus
();
state
=
payRefundResponse
.
getPayRefundStatus
()
==
null
?
PayRefundStatus
.
SUCCESS
.
getCode
()
:
payRefundResponse
.
getPayRefundStatus
().
getCode
();
}
}
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
partnerId
,
AfterSalesType
.
USER_CANCEL
,
orderRefundVo
.
getReason
(),
LogThreadLocal
.
getTrackingNo
(),
refundId
.
toString
());
partnerId
,
AfterSalesType
.
USER_CANCEL
,
orderRefundVo
.
getReason
(),
LogThreadLocal
.
getTrackingNo
(),
refundId
.
toString
());
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
ed597807
...
@@ -2081,7 +2081,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2081,7 +2081,7 @@ public class OrderServiceImpl implements Orderservice {
if
(
orderBean
.
getAmount
()
!=
0
)
{
if
(
orderBean
.
getAmount
()
!=
0
)
{
OrderManagerRequest
orderManagerRequest
=
new
OrderManagerRequest
();
OrderManagerRequest
orderManagerRequest
=
new
OrderManagerRequest
();
orderManagerRequest
.
setReason
(
orderRefundVo
.
getReason
());
orderManagerRequest
.
setReason
(
orderRefundVo
.
getReason
());
PayRefundResponse
refundResponse
=
pay
mentHandle
.
getCommonPayRefundResponse
(
orderManagerRequest
,
orderBean
);
PayRefundResponse
refundResponse
=
pay
ServiceImpl
.
payRefundCommon
(
orderManagerRequest
,
orderBean
);
state
=
refundResponse
.
getPayRefundStatus
().
getCode
();
state
=
refundResponse
.
getPayRefundStatus
().
getCode
();
}
}
...
@@ -2824,7 +2824,11 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2824,7 +2824,11 @@ public class OrderServiceImpl implements Orderservice {
String
desc
=
"支付未及时回调"
;
String
desc
=
"支付未及时回调"
;
PayRefundRequestDto
orderPayRefundRequest
=
orderAdapter
.
getOrderPayRefundRequest
(
orderBean
,
refundId
,
orderBean
.
getOid
());
PayRefundRequestDto
orderPayRefundRequest
=
orderAdapter
.
getOrderPayRefundRequest
(
orderBean
,
refundId
,
orderBean
.
getOid
());
// TODO: 22-6-23 待联调修改
response
=
payServiceImpl
.
orderRefund
(
orderPayRefundRequest
);
response
=
payServiceImpl
.
orderRefund
(
orderPayRefundRequest
);
// OrderManagerRequest request = new OrderManagerRequest();
// request.setReason(desc);
// PayRefundResponse response = payServiceImpl.payRefundCommon(request, orderBean);
if
(
response
!=
null
&&
noPay
.
equals
(
response
.
getCode
()))
{
if
(
response
!=
null
&&
noPay
.
equals
(
response
.
getCode
()))
{
return
;
return
;
}
}
...
@@ -3517,6 +3521,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3517,6 +3521,7 @@ public class OrderServiceImpl implements Orderservice {
if
(
Integer
.
valueOf
(
1
).
equals
(
queryRefundFailuresListDto
.
getLastFailureType
())
||
Integer
.
valueOf
(
2
).
equals
(
queryRefundFailuresListDto
.
getLastFailureType
()))
{
if
(
Integer
.
valueOf
(
1
).
equals
(
queryRefundFailuresListDto
.
getLastFailureType
())
||
Integer
.
valueOf
(
2
).
equals
(
queryRefundFailuresListDto
.
getLastFailureType
()))
{
Long
refundId
=
System
.
currentTimeMillis
();
Long
refundId
=
System
.
currentTimeMillis
();
// TODO: 22-6-23 退款逻辑待合并
if
(
orderBean
.
getAmount
()
!=
0
)
{
if
(
orderBean
.
getAmount
()
!=
0
)
{
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()
>
0
)
{
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()
>
0
)
{
//调用支付退款
//调用支付退款
...
@@ -3778,8 +3783,9 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3778,8 +3783,9 @@ public class OrderServiceImpl implements Orderservice {
PayRefundResponse
refundResponse
;
PayRefundResponse
refundResponse
;
try
{
try
{
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()
>
0
)
{
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()
>
0
)
{
refundResponse
=
pay
mentHandle
.
multiRefund
(
orderBean
);
refundResponse
=
pay
ServiceImpl
.
payRefundCommon
(
null
,
orderBean
);
}
else
{
}
else
{
// TODO: 22-6-23 待考虑合并到上面一起
refundResponse
=
paymentHandle
.
refund
(
"用户买券订单-申请退款"
,
orderBean
);
refundResponse
=
paymentHandle
.
refund
(
"用户买券订单-申请退款"
,
orderBean
);
}
}
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
...
@@ -3936,5 +3942,4 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3936,5 +3942,4 @@ public class OrderServiceImpl implements Orderservice {
this
.
sendPaySuccessMessage
(
orderBean
);
this
.
sendPaySuccessMessage
(
orderBean
);
}
}
}
}
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
View file @
ed597807
...
@@ -28,13 +28,13 @@ import cn.freemud.enums.ResponseResult;
...
@@ -28,13 +28,13 @@ import cn.freemud.enums.ResponseResult;
import
cn.freemud.enums.TradeState
;
import
cn.freemud.enums.TradeState
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.interceptor.ServiceException
;
import
cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request
;
import
cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
cn.freemud.management.entities.dto.request.pay.PaymentQueryOrderRequestDto
;
import
cn.freemud.management.entities.dto.request.pay.PaymentQueryOrderRequestDto
;
import
cn.freemud.management.entities.dto.response.pay.OrderRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.*
;
import
cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundData
;
import
cn.freemud.management.entities.dto.response.pay.PaymentQueryOrderResponseDto
;
import
cn.freemud.management.entities.dto.response.pay.PaymentQueryOrderResponseDto
;
import
cn.freemud.management.enums.PaymentRefundStatus
;
import
cn.freemud.management.enums.PaymentRefundStatus
;
import
cn.freemud.management.service.handle.PaymentHandle
;
import
cn.freemud.management.thirdparty.MulitiPaymentClient
;
import
cn.freemud.management.thirdparty.MulitiPaymentClient
;
import
cn.freemud.management.thirdparty.OMSPaymentClient
;
import
cn.freemud.management.thirdparty.OMSPaymentClient
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
...
@@ -100,6 +100,8 @@ public class PayServiceImpl {
...
@@ -100,6 +100,8 @@ public class PayServiceImpl {
private
PaymentNewClient
paymentNewClient
;
private
PaymentNewClient
paymentNewClient
;
@Autowired
@Autowired
private
OMSPaymentClient
omsPaymentClient
;
private
OMSPaymentClient
omsPaymentClient
;
@Autowired
private
PaymentHandle
paymentHandle
;
@Autowired
@Autowired
private
AssortmentOpenPlatformWxappManager
openPlatformWxappManager
;
private
AssortmentOpenPlatformWxappManager
openPlatformWxappManager
;
...
@@ -861,20 +863,6 @@ public class PayServiceImpl {
...
@@ -861,20 +863,6 @@ public class PayServiceImpl {
/**
/**
* 支付退款
*/
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
orderRefund
(
PayRefundRequestDto
orderPayRefundRequest
)
{
return
orderPayRefund
(
orderPayRefundRequest
);
}
/**
* 混合支付退款接口
*/
public
MultiOrderRefundResponse
paymentApplicationRefund
(
MultiOrderRefundRequest
multiOrderRefundRequest
,
String
partnerId
)
{
return
mulitiPaymentClient
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
partnerId
);
}
/**
* 批量支付退款
* 批量支付退款
*/
*/
public
PayBatchRefundResponse
batchRefund
(
BatchOrderRefundV2Request
batchOrderRefundV2Request
)
{
public
PayBatchRefundResponse
batchRefund
(
BatchOrderRefundV2Request
batchOrderRefundV2Request
)
{
...
@@ -1644,4 +1632,33 @@ public class PayServiceImpl {
...
@@ -1644,4 +1632,33 @@ public class PayServiceImpl {
return
orderPayResponse
;
return
orderPayResponse
;
}
}
/**
* 支付退款
*/
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
orderRefund
(
PayRefundRequestDto
orderPayRefundRequest
)
{
return
orderPayRefund
(
orderPayRefundRequest
);
}
/**
* 混合支付退款接口
*/
public
MultiOrderRefundResponse
paymentApplicationRefund
(
MultiOrderRefundRequest
multiOrderRefundRequest
,
String
partnerId
)
{
return
mulitiPaymentClient
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
partnerId
);
}
/**
* 提取 退款公共代码
*
* @param request
* @param orderBean
* @return
*/
public
PayRefundResponse
payRefundCommon
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
PayRefundResponse
refundResponse
=
paymentHandle
.
getCommonPayRefundResponse
(
request
,
orderBean
);
return
refundResponse
;
}
}
}
order-application-service/src/main/java/cn/freemud/service/thirdparty/PaymentNewClient.java
View file @
ed597807
...
@@ -72,6 +72,7 @@ public interface PaymentNewClient {
...
@@ -72,6 +72,7 @@ public interface PaymentNewClient {
/**
/**
* 支付查询
* 支付查询
* 关闭预支付使用
*/
*/
@LogIgnoreFeign
(
logMessage
=
"payQuery"
)
@LogIgnoreFeign
(
logMessage
=
"payQuery"
)
@PostMapping
(
"paymentcenter/query"
)
@PostMapping
(
"paymentcenter/query"
)
...
...
order-management/src/main/java/cn/freemud/management/service/adapter/OrderBeanFactory.java
View file @
ed597807
...
@@ -34,9 +34,9 @@ public class OrderBeanFactory {
...
@@ -34,9 +34,9 @@ public class OrderBeanFactory {
// String source = orderBean.getSource();
// String source = orderBean.getSource();
String
orderClient
=
orderBean
.
getOrderClient
();
String
orderClient
=
orderBean
.
getOrderClient
();
String
companyId
=
orderBean
.
getCompanyId
();
String
companyId
=
orderBean
.
getCompanyId
();
if
(
macCafePartnerId
.
equals
(
companyId
)){
//
if (macCafePartnerId.equals(companyId)){
return
applicationContext
.
getBean
(
McCafeMangerServiceImpl
.
class
);
//
return applicationContext.getBean(McCafeMangerServiceImpl.class);
}
//
}
// if (OrderSource.BDWM.getSource().equals(source) || OrderSource.JDWM.getSource().equals(source)
// if (OrderSource.BDWM.getSource().equals(source) || OrderSource.JDWM.getSource().equals(source)
// || OrderSource.MTWM.getSource().equals(source) || OrderSource.ELEME.getSource().equals(source)
// || OrderSource.MTWM.getSource().equals(source) || OrderSource.ELEME.getSource().equals(source)
// || OrderSource.FMWD.getSource().equals(source) || OrderSource.EBAI.getSource().equals(source)
// || OrderSource.FMWD.getSource().equals(source) || OrderSource.EBAI.getSource().equals(source)
...
...
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
View file @
ed597807
...
@@ -194,25 +194,25 @@ public class OrderManagerAdapter {
...
@@ -194,25 +194,25 @@ public class OrderManagerAdapter {
/**
/**
* 同意退款或者取消订单
* 同意退款或者取消订单
*/
*/
public
BaseResponse
orderPayRefund
(
OrderManagerRequest
request
)
{
//
public BaseResponse orderPayRefund(OrderManagerRequest request) {
//查询订单
//
//查询订单
OrderBeanV1
orderBean
=
orderBaseService
.
getByOrderCode
(
request
.
getOrderId
());
//
OrderBeanV1 orderBean = orderBaseService.getByOrderCode(request.getOrderId());
if
(
null
==
orderBean
)
{
//
if (null == orderBean) {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
//
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
//
}
if
(
CollectionUtils
.
isNotEmpty
(
orderBean
.
getRefundList
()))
{
//
if (CollectionUtils.isNotEmpty(orderBean.getRefundList())) {
//订单接单参数校验
//
//订单接单参数校验
BaseResponse
verifyResponse
=
orderVerifyHandle
.
orderAgreeRefundMCCafe
(
orderBean
,
request
);
//
BaseResponse verifyResponse = orderVerifyHandle.orderAgreeRefundMCCafe(orderBean, request);
if
(
ObjectUtils
.
notEqual
(
verifyResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
//
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return
handleResponse
(
request
,
orderBean
,
verifyResponse
);
//
return handleResponse(request, orderBean, verifyResponse);
}
//
}
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderAgreeRefund
(
request
,
orderBean
);
//
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderAgreeRefund(request, orderBean);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
//
return handleResponse(request, orderBean, orderManagerResponse);
}
else
{
//
} else {
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderCancel
(
request
,
orderBean
);
//
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCancel(request, orderBean);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
//
return handleResponse(request, orderBean, orderManagerResponse);
}
//
}
}
//
}
/**
/**
* 拒绝退款
* 拒绝退款
...
@@ -264,20 +264,20 @@ public class OrderManagerAdapter {
...
@@ -264,20 +264,20 @@ public class OrderManagerAdapter {
* @param request
* @param request
* @return
* @return
*/
*/
public
BaseResponse
mcCafeOrderRejectRefund
(
OrderManagerRequest
request
)
{
//
public BaseResponse mcCafeOrderRejectRefund(OrderManagerRequest request) {
//查询订单
//
//查询订单
OrderBeanV1
orderBean
=
orderBaseService
.
getByOrderCode
(
request
.
getOrderId
());
//
OrderBeanV1 orderBean = orderBaseService.getByOrderCode(request.getOrderId());
if
(
null
==
orderBean
)
{
//
if (null == orderBean) {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
//
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
//
}
//订单接单参数校验
//
//订单接单参数校验
BaseResponse
verifyResponse
=
orderVerifyHandle
.
mcCafeOrderRejectRefund
(
orderBean
,
request
);
//
BaseResponse verifyResponse = orderVerifyHandle.mcCafeOrderRejectRefund(orderBean, request);
if
(
ObjectUtils
.
notEqual
(
verifyResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
//
if (ObjectUtils.notEqual(verifyResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return
handleResponse
(
request
,
orderBean
,
verifyResponse
);
//
return handleResponse(request, orderBean, verifyResponse);
}
//
}
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderRejectRefund
(
request
,
orderBean
);
//
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderRejectRefund(request, orderBean);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
//
return handleResponse(request, orderBean, orderManagerResponse);
}
//
}
private
BaseResponse
<
OrderManagerResponse
>
handleResponse
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
,
BaseResponse
result
)
{
private
BaseResponse
<
OrderManagerResponse
>
handleResponse
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
,
BaseResponse
result
)
{
...
...
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
ed597807
...
@@ -19,6 +19,7 @@ import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformIapp
...
@@ -19,6 +19,7 @@ import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformIapp
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayChannelType
;
import
com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderTypeV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderTypeV1
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
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.request.OrderExtendedReq
;
...
@@ -64,9 +65,6 @@ public class PaymentHandle {
...
@@ -64,9 +65,6 @@ public class PaymentHandle {
public
static
final
Integer
REFUND_RESPONSE_CODE
=
8200305
;
public
static
final
Integer
REFUND_RESPONSE_CODE
=
8200305
;
@Value
(
"${mccafe.partner.id}"
)
private
String
macCafePartnerId
;
@Autowired
@Autowired
private
PaymentSdkAdapter
paymentSdkAdapter
;
private
PaymentSdkAdapter
paymentSdkAdapter
;
@Autowired
@Autowired
...
@@ -75,8 +73,6 @@ public class PaymentHandle {
...
@@ -75,8 +73,6 @@ public class PaymentHandle {
private
MulitiPaymentClient
mulitiPaymentClient
;
private
MulitiPaymentClient
mulitiPaymentClient
;
@Autowired
@Autowired
private
RedisCache
redisCache
;
private
RedisCache
redisCache
;
// @Autowired
// private PaymentNewService paymentNewService;
@Autowired
@Autowired
private
OMSPaymentClient
paymentNewClient
;
private
OMSPaymentClient
paymentNewClient
;
...
@@ -86,6 +82,14 @@ public class PaymentHandle {
...
@@ -86,6 +82,14 @@ public class PaymentHandle {
@Autowired
@Autowired
private
LogUtil
logUtil
;
private
LogUtil
logUtil
;
/**
* 点餐订单退款入口
* 支付退款,包含纯现金,代付,混合支付
*
* @param request
* @param orderBean
* @return
*/
public
PayRefundResponse
getCommonPayRefundResponse
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
public
PayRefundResponse
getCommonPayRefundResponse
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
PayRefundResponse
refundResponse
;
PayRefundResponse
refundResponse
;
try
{
try
{
...
@@ -99,43 +103,118 @@ public class PaymentHandle {
...
@@ -99,43 +103,118 @@ public class PaymentHandle {
refundResponse
=
this
.
agentPayRefund
(
orderBean
);
refundResponse
=
this
.
agentPayRefund
(
orderBean
);
}
else
{
}
else
{
//正常订单现金退款 paymentcenter/refund
//正常订单现金退款 paymentcenter/refund
refundResponse
=
this
.
refund
(
request
,
orderBean
);
refundResponse
=
this
.
payRefund
(
request
.
getReason
()
,
orderBean
);
}
}
}
}
}
catch
(
OrderServiceException
orderEx
)
{
}
catch
(
OrderServiceException
orderEx
)
{
ResponseResult
result
=
orderEx
.
getResult
();
ResponseResult
result
=
orderEx
.
getResult
();
refundResponse
=
new
PayRefundResponse
();
refundResponse
=
new
PayRefundResponse
();
refundResponse
.
setPayRefundStatus
(
PayRefundStatus
.
COMPATIBILITY_STATUS
);
refundResponse
.
setPayRefundStatus
(
PayRefundStatus
.
COMPATIBILITY_STATUS
);
refundResponse
.
setMessage
(
result
.
getMessage
());
refundResponse
.
setResult
(
result
);
refundResponse
.
setResult
(
result
);
return
refundResponse
;
return
refundResponse
;
}
catch
(
Exception
e
)
{
refundResponse
=
new
PayRefundResponse
();
refundResponse
.
setPayRefundStatus
(
PayRefundStatus
.
COMPATIBILITY_STATUS
);
refundResponse
.
setMessage
(
"请稍后再试!"
);
refundResponse
.
setResult
(
ResponseResult
.
SYSTEM_ERROR
);
return
refundResponse
;
}
}
return
refundResponse
;
return
refundResponse
;
}
}
/**
/**
* 退款
*
纯现金支付退款,非代付和混合支付
退款
*
*
* @param re
quest
* @param re
ason 退款原因
* @param orderBean
* @param orderBean
* @return
* @return
*/
*/
p
ublic
PayRefundResponse
refund
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
p
rivate
PayRefundResponse
payRefund
(
String
reason
,
OrderBeanV1
orderBean
)
{
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
PayRefundRequestDto
orderRefundRequest
=
paymentSdkAdapter
.
getOrderRefundRequest
(
orderBean
,
getRefundAmount
(
orderBean
));
PayRefundRequestDto
orderRefundRequest
=
paymentSdkAdapter
.
getOrderRefundRequest
(
orderBean
,
getRefundAmount
(
orderBean
));
//抖音支付必传
//抖音支付必传
orderRefundRequest
.
setRefundDesc
(
re
quest
.
getReason
()
==
null
?
"商家退款"
:
request
.
getReason
()
);
orderRefundRequest
.
setRefundDesc
(
re
ason
==
null
?
"商家退款"
:
reason
);
if
(
ObjectUtils
.
equals
(
orderBean
.
getAmount
(),
0L
))
{
if
(
ObjectUtils
.
equals
(
orderBean
.
getAmount
(),
0L
))
{
return
handlePayRefundResponse
(
refundStatus
,
orderRefundRequest
.
getRefundId
());
return
handlePayRefundResponse
(
refundStatus
,
orderRefundRequest
.
getRefundId
());
}
}
BaseResponse
<
OrderRefundResponse
>
orderRefundResponse
=
this
.
orderPayRefund
(
orderRefundRequest
);
BaseResponse
<
OrderRefundResponse
>
orderRefundResponse
=
this
.
orderPayRefund
(
orderRefundRequest
);
String
message
=
null
;
if
(
orderRefundResponse
==
null
)
{
if
(
orderRefundResponse
==
null
)
{
refundStatus
=
PayRefundStatus
.
RUNNING
;
refundStatus
=
PayRefundStatus
.
RUNNING
;
}
else
{
}
else
{
refundStatus
=
this
.
getFinalRefundStatus
(
Integer
.
valueOf
(
orderRefundResponse
.
getCode
()));
refundStatus
=
this
.
getFinalRefundStatus
(
Integer
.
valueOf
(
orderRefundResponse
.
getCode
()));
message
=
orderRefundResponse
.
getMessage
();
}
}
return
handlePayRefundResponse
(
refundStatus
,
orderRefundRequest
.
getRefundId
());
PayRefundResponse
payRefundResponse
=
handlePayRefundResponse
(
refundStatus
,
orderRefundRequest
.
getRefundId
());
if
(
message
!=
null
){
payRefundResponse
.
setMessage
(
message
);
}
return
payRefundResponse
;
}
/**
* 混合支付退款
*/
private
PayRefundResponse
multiRefund
(
OrderBeanV1
orderBean
)
{
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
MultiOrderRefundRequest
multiOrderRefundRequest
=
paymentSdkAdapter
.
getMultiOrderPayRefundRequest
(
orderBean
,
getRefundAmount
(
orderBean
));
MultiOrderRefundResponse
multiOrderRefundResponse
=
mulitiPaymentClient
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
orderBean
.
getCompanyId
());
if
(
multiOrderRefundResponse
==
null
||
multiOrderRefundResponse
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
ORDER_PAY_RESPONSE_SUCCESS
.
equals
(
multiOrderRefundResponse
.
getCode
()))
{
// fisherman 退款异常 也当做 退款中处理
refundStatus
=
PayRefundStatus
.
RUNNING
;
}
else
{
List
<
MultiOrderRefundResponse
.
RefundPlatformResponse
>
refundPlatformResponseList
=
multiOrderRefundResponse
.
getData
().
refundPlatformResponseList
;
if
(
null
!=
refundPlatformResponseList
&&
refundPlatformResponseList
.
size
()
>
0
)
{
redisCache
.
save
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
refundPlatformResponseList
.
get
(
0
).
getTransId
()),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
}
if
(
CollectionUtils
.
isNotEmpty
(
refundPlatformResponseList
))
{
long
refundError
=
refundPlatformResponseList
.
stream
()
.
filter
(
s
->
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUNDED_RESULTCODE
)
!=
0
&&
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUND_SUCCESS
)
!=
0
)
.
count
();
if
(
refundError
>
0L
)
{
refundStatus
=
PayRefundStatus
.
FAIL
;
}
// 退款中
long
refunded
=
refundPlatformResponseList
.
stream
()
.
filter
(
s
->
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUNDED_RESULTCODE
)
==
0
)
.
count
();
if
(
refunded
>
0L
)
{
refundStatus
=
PayRefundStatus
.
RUNNING
;
}
}
}
return
handlePayRefundResponse
(
refundStatus
,
multiOrderRefundRequest
.
getRefundTradeNo
());
}
}
/**
* 代付订单退款
*
* @param orderBean
* @return
*/
private
PayRefundResponse
agentPayRefund
(
OrderBeanV1
orderBean
)
{
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
String
fmRefundNo
=
""
;
try
{
AgentPayRefundReq
req
=
paymentSdkAdapter
.
getAgentPayefundReq
(
orderBean
,
this
.
getRefundAmount
(
orderBean
));
AgentPayRefundResp
resp
=
mulitiPaymentClient
.
agentPayRefund
(
req
);
if
(!
resp
.
isOk
())
{
refundStatus
=
PayRefundStatus
.
RUNNING
;
}
AgentPayRefundResp
.
DataDTO
data
=
resp
.
getData
();
if
(
Objects
.
nonNull
(
data
))
{
refundStatus
=
this
.
getFinalRefundStatus
(
data
.
getResultCode
());
}
fmRefundNo
=
resp
.
getData
().
getFmRefundNo
();
}
catch
(
Throwable
e
)
{
refundStatus
=
PayRefundStatus
.
FAIL
;
}
return
this
.
handlePayRefundResponse
(
refundStatus
,
fmRefundNo
);
}
private
PayRefundStatus
getFinalRefundStatus
(
Integer
resultCode
)
{
private
PayRefundStatus
getFinalRefundStatus
(
Integer
resultCode
)
{
switch
(
resultCode
)
{
switch
(
resultCode
)
{
// 退款中状态码需要单独处理
// 退款中状态码需要单独处理
...
@@ -153,6 +232,9 @@ public class PaymentHandle {
...
@@ -153,6 +232,9 @@ public class PaymentHandle {
}
}
/**
* 查询退款配置
*/
private
PayRefundRequestDto
queryWxAppStore
(
BaseResponse
<
PaymentQueryOrderResponseDto
>
payQueryOrderResponse
,
PayRefundRequestDto
refundRequest
)
{
private
PayRefundRequestDto
queryWxAppStore
(
BaseResponse
<
PaymentQueryOrderResponseDto
>
payQueryOrderResponse
,
PayRefundRequestDto
refundRequest
)
{
String
payCode
=
null
;
String
payCode
=
null
;
if
(
Objects
.
equals
(
payQueryOrderResponse
.
getCode
(),
"100"
)
&&
payQueryOrderResponse
.
getData
()
!=
null
)
{
if
(
Objects
.
equals
(
payQueryOrderResponse
.
getCode
(),
"100"
)
&&
payQueryOrderResponse
.
getData
()
!=
null
)
{
...
@@ -208,32 +290,6 @@ public class PaymentHandle {
...
@@ -208,32 +290,6 @@ public class PaymentHandle {
return
payQueryOrderResponse
;
return
payQueryOrderResponse
;
}
}
/**
* 代付订单退款
*
* @param orderBean
* @return
*/
public
PayRefundResponse
agentPayRefund
(
OrderBeanV1
orderBean
)
{
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
String
fmRefundNo
=
""
;
try
{
AgentPayRefundReq
req
=
paymentSdkAdapter
.
getAgentPayefundReq
(
orderBean
,
this
.
getRefundAmount
(
orderBean
));
AgentPayRefundResp
resp
=
mulitiPaymentClient
.
agentPayRefund
(
req
);
if
(!
resp
.
isOk
())
{
refundStatus
=
PayRefundStatus
.
RUNNING
;
}
AgentPayRefundResp
.
DataDTO
data
=
resp
.
getData
();
if
(
Objects
.
nonNull
(
data
))
{
refundStatus
=
this
.
getFinalRefundStatus
(
data
.
getResultCode
());
}
fmRefundNo
=
resp
.
getData
().
getFmRefundNo
();
}
catch
(
Throwable
e
)
{
refundStatus
=
PayRefundStatus
.
FAIL
;
}
return
this
.
handlePayRefundResponse
(
refundStatus
,
fmRefundNo
);
}
/**
/**
* 卖券调用退款
* 卖券调用退款
...
@@ -269,7 +325,7 @@ public class PaymentHandle {
...
@@ -269,7 +325,7 @@ public class PaymentHandle {
}
}
/**
/**
* 退款
*
线下pos下单使用储值卡支付,储值卡
退款
*
*
* @param orderBean
* @param orderBean
* @return
* @return
...
@@ -280,10 +336,8 @@ public class PaymentHandle {
...
@@ -280,10 +336,8 @@ public class PaymentHandle {
if
(
ObjectUtils
.
equals
(
orderBean
.
getAmount
(),
0L
))
{
if
(
ObjectUtils
.
equals
(
orderBean
.
getAmount
(),
0L
))
{
return
handlePayRefundResponse
(
refundStatus
,
refundRequest
.
getRefundId
());
return
handlePayRefundResponse
(
refundStatus
,
refundRequest
.
getRefundId
());
}
}
// com.freemud.application.sdk.api.base.BaseResponse<RefundNewResponse> orderRefundResponse;
BaseResponse
<
PayRefundData
>
orderRefundResponse
;
BaseResponse
<
PayRefundData
>
orderRefundResponse
;
try
{
try
{
// orderRefundResponse = paymentNewService.newOrderRefund(refundRequest, LogThreadLocal.getTrackingNo());
orderRefundResponse
=
paymentNewClient
.
payRefund
(
refundRequest
);
orderRefundResponse
=
paymentNewClient
.
payRefund
(
refundRequest
);
}
catch
(
Exception
ex
)
{
}
catch
(
Exception
ex
)
{
ErrorLog
.
errorConvertJson
(
this
.
getClass
(),
"paymentNewService.newOrderRefundError"
,
ex
);
ErrorLog
.
errorConvertJson
(
this
.
getClass
(),
"paymentNewService.newOrderRefundError"
,
ex
);
...
@@ -304,45 +358,6 @@ public class PaymentHandle {
...
@@ -304,45 +358,6 @@ public class PaymentHandle {
}
}
/**
/**
* 麦咖啡退款
*
* @param request
* @param orderBean
* @return
*/
public
PayRefundResponse
mcCafeRefund
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
// PayRefundStatus refundStatus = PayRefundStatus.SUCCESS;
PayRefundRequestDto
orderRefundRequest
=
paymentSdkAdapter
.
getOrderRefundRequest
(
orderBean
,
new
BigDecimal
(
orderBean
.
getAmount
()));
// if (ObjectUtils.equals(orderBean.getAmount(), 0L)) {
// return handlePayRefundResponse(refundStatus, orderRefundRequest.getRefundId());
// }
// if (macCafePartnerId.equals(orderBean.getCompanyId())) {
// Map<String, String> extendParams = new HashMap<>();
// if (OrderTypeV1.TAKE_OUT.getCode().equals(orderBean.getOrderType())) {
// extendParams.put("mealType", "delivery");
// } else {
// extendParams.put("mealType", "pickup");
// }
// orderRefundRequest.setExtendParams(extendParams);
// }
// BaseResponse<OrderRefundResponse> orderRefundResponse = null;
// try {
//// orderRefundResponse = standardPaymentService.orderRefund(orderRefundRequest, "");
//// orderRefundResponse = this.orderPayRefund(orderRefundRequest);
// } catch (Exception ex) {
// ErrorLog.errorConvertJson(this.getClass(), "refundError", ex);
// return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId());
// }
// if (orderRefundResponse == null || ObjectUtils.notEqual(orderRefundResponse.getCode(), SUCCESS)) {
// return handlePayRefundResponse(PayRefundStatus.FAIL, orderRefundRequest.getRefundId());
// }
// refundStatus = ObjectUtils.equals(PayRefundStatus.SUCCESS.getCode(), orderRefundResponse.getData().getRefundStatus()) ? PayRefundStatus.SUCCESS : PayRefundStatus.FAIL;
// return handlePayRefundResponse(refundStatus, orderRefundRequest.getRefundId());
return
handlePayRefundResponse
(
PayRefundStatus
.
FAIL
,
orderRefundRequest
.
getRefundId
());
}
/**
* 获取退款金额
* 获取退款金额
*
*
* @param data
* @param data
...
@@ -361,48 +376,17 @@ public class PaymentHandle {
...
@@ -361,48 +376,17 @@ public class PaymentHandle {
PayRefundResponse
payRefundResponse
=
new
PayRefundResponse
();
PayRefundResponse
payRefundResponse
=
new
PayRefundResponse
();
payRefundResponse
.
setPayRefundStatus
(
refundStatus
);
payRefundResponse
.
setPayRefundStatus
(
refundStatus
);
payRefundResponse
.
setRefundId
(
refundId
);
payRefundResponse
.
setRefundId
(
refundId
);
payRefundResponse
.
setMessage
(
refundStatus
.
getDesc
());
return
payRefundResponse
;
return
payRefundResponse
;
}
}
public
PayRefundResponse
multiRefund
(
OrderBeanV1
orderBean
)
{
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
MultiOrderRefundRequest
multiOrderRefundRequest
=
paymentSdkAdapter
.
getMultiOrderPayRefundRequest
(
orderBean
,
getRefundAmount
(
orderBean
));
MultiOrderRefundResponse
multiOrderRefundResponse
=
mulitiPaymentClient
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
orderBean
.
getCompanyId
());
if
(
multiOrderRefundResponse
==
null
||
multiOrderRefundResponse
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
ORDER_PAY_RESPONSE_SUCCESS
.
equals
(
multiOrderRefundResponse
.
getCode
()))
{
// fisherman 退款异常 也当做 退款中处理
refundStatus
=
PayRefundStatus
.
RUNNING
;
}
else
{
List
<
MultiOrderRefundResponse
.
RefundPlatformResponse
>
refundPlatformResponseList
=
multiOrderRefundResponse
.
getData
().
refundPlatformResponseList
;
if
(
null
!=
refundPlatformResponseList
&&
refundPlatformResponseList
.
size
()
>
0
)
{
redisCache
.
save
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
refundPlatformResponseList
.
get
(
0
).
getTransId
()),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
}
if
(
CollectionUtils
.
isNotEmpty
(
refundPlatformResponseList
))
{
long
refundError
=
refundPlatformResponseList
.
stream
()
.
filter
(
s
->
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUNDED_RESULTCODE
)
!=
0
&&
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUND_SUCCESS
)
!=
0
)
.
count
();
if
(
refundError
>
0L
)
{
refundStatus
=
PayRefundStatus
.
FAIL
;
}
// 退款中
long
refunded
=
refundPlatformResponseList
.
stream
()
.
filter
(
s
->
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUNDED_RESULTCODE
)
==
0
)
.
count
();
if
(
refunded
>
0L
)
{
refundStatus
=
PayRefundStatus
.
RUNNING
;
}
}
}
return
handlePayRefundResponse
(
refundStatus
,
multiOrderRefundRequest
.
getRefundTradeNo
());
}
/**
/**
* 支付退款
*
纯现金支付退款,非代付和混合
支付退款
*/
*/
p
ublic
BaseResponse
<
OrderRefundResponse
>
orderPayRefund
(
PayRefundRequestDto
refundRequest
)
{
p
rivate
BaseResponse
<
OrderRefundResponse
>
orderPayRefund
(
PayRefundRequestDto
refundRequest
)
{
// step1 查询支付
// step1 查询支付
结果
BaseResponse
<
PaymentQueryOrderResponseDto
>
paymentQueryOrderResponseDtoBaseResponse
=
this
.
queryPayOrder
(
refundRequest
);
BaseResponse
<
PaymentQueryOrderResponseDto
>
paymentQueryOrderResponseDtoBaseResponse
=
this
.
queryPayOrder
(
refundRequest
);
if
(
Objects
.
isNull
(
paymentQueryOrderResponseDtoBaseResponse
))
{
if
(
Objects
.
isNull
(
paymentQueryOrderResponseDtoBaseResponse
))
{
throw
new
OrderServiceException
(
ResponseResult
.
REFUND_EXCEPTION
);
throw
new
OrderServiceException
(
ResponseResult
.
REFUND_EXCEPTION
);
...
@@ -451,7 +435,7 @@ public class PaymentHandle {
...
@@ -451,7 +435,7 @@ public class PaymentHandle {
}
}
p
ublic
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
(
String
partnerId
,
String
storeId
,
Long
amount
,
AssortmentOpenPlatformIappWxappStore
wxAppStore
)
{
p
rivate
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
(
String
partnerId
,
String
storeId
,
Long
amount
,
AssortmentOpenPlatformIappWxappStore
wxAppStore
)
{
if
(
StringUtils
.
isBlank
(
partnerId
))
{
if
(
StringUtils
.
isBlank
(
partnerId
))
{
return
ResponseUtils
.
error
(
"501"
,
"商户号不能为空"
);
return
ResponseUtils
.
error
(
"501"
,
"商户号不能为空"
);
}
else
if
(
StringUtils
.
isBlank
(
storeId
))
{
}
else
if
(
StringUtils
.
isBlank
(
storeId
))
{
...
@@ -464,7 +448,7 @@ public class PaymentHandle {
...
@@ -464,7 +448,7 @@ public class PaymentHandle {
}
}
p
ublic
Integer
getRefundStatus
(
Integer
resultCode
)
{
p
rivate
Integer
getRefundStatus
(
Integer
resultCode
)
{
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_CODE_INT
))
{
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_101_CODE_INT
))
{
}
else
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_101_CODE_INT
))
{
...
...
order-management/src/main/java/cn/freemud/management/service/impl/MallOrderMangerServiceImpl.java
View file @
ed597807
...
@@ -14,12 +14,16 @@ import cn.freemud.management.service.handle.*;
...
@@ -14,12 +14,16 @@ import cn.freemud.management.service.handle.*;
import
cn.freemud.management.util.ResponseUtil
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.constant.ResponseConstant
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.RefundModeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.RefundModeEnum
;
import
com.freemud.application.sdk.api.ordercenter.request.AfterOrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.AfterOrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.AfterSalesRefundFailReq
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -52,6 +56,8 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
...
@@ -52,6 +56,8 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
private
StockHandle
stockHandle
;
private
StockHandle
stockHandle
;
@Autowired
@Autowired
private
ActivityHandle
activityHandle
;
private
ActivityHandle
activityHandle
;
@Autowired
private
OrderSdkService
orderSdkService
;
/**
/**
* 同意退款
* 同意退款
...
@@ -89,11 +95,10 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
...
@@ -89,11 +95,10 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
}
}
//支付退款
//支付退款
PayRefundResponse
refundResponse
=
new
PayRefundResponse
();
PayRefundResponse
refundResponse
=
this
.
payRefundCommon
(
request
,
orderBean
);
try
{
//fisherman --> 退款中的状态 阻止后续流程 等待支付回调 不是退款成功 都终止下面的退款流程
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
}
catch
(
OrderServiceException
orderEx
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
REFUND_FAIL
);
return
ResponseUtil
.
error
(
orderEx
.
getResult
());
}
}
//订单同意退款
//订单同意退款
mallOrderHandle
.
refundAgree
(
request
,
refundResponse
,
orderBean
);
mallOrderHandle
.
refundAgree
(
request
,
refundResponse
,
orderBean
);
...
@@ -117,11 +122,10 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
...
@@ -117,11 +122,10 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
}
}
//支付退款
//支付退款
PayRefundResponse
refundResponse
=
new
PayRefundResponse
();
PayRefundResponse
refundResponse
=
this
.
payRefundCommon
(
request
,
orderBean
);
try
{
//fisherman --> 退款中的状态 阻止后续流程 等待支付回调 不是退款成功 都终止下面的退款流程
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
}
catch
(
OrderServiceException
orderEx
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
REFUND_FAIL
);
return
ResponseUtil
.
error
(
orderEx
.
getResult
());
}
}
//订单同意退款
//订单同意退款
mallOrderHandle
.
refundAgree
(
request
,
refundResponse
,
orderBean
);
mallOrderHandle
.
refundAgree
(
request
,
refundResponse
,
orderBean
);
...
@@ -161,15 +165,10 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
...
@@ -161,15 +165,10 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
@Override
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderReject
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
public
BaseResponse
<
OrderManagerResponse
>
orderReject
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//支付退款
//支付退款
PayRefundResponse
refundResponse
=
new
PayRefundResponse
();
PayRefundResponse
refundResponse
=
this
.
payRefundCommon
(
request
,
orderBean
);
try
{
//fisherman --> 退款中的状态 阻止后续流程 等待支付回调 不是退款成功 都终止下面的退款流程
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()>
0
){
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
refundResponse
=
paymentHandle
.
multiRefund
(
orderBean
);
return
ResponseUtil
.
error
(
ResponseResult
.
REFUND_FAIL
);
}
else
{
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
}
}
catch
(
OrderServiceException
orderEx
){
// 爱马哥兼容,不抛错
return
ResponseUtil
.
error
(
orderEx
.
getResult
());
}
}
//订单拒单
//订单拒单
mallOrderHandle
.
mallOrderReject
(
request
,
refundResponse
,
orderBean
);
mallOrderHandle
.
mallOrderReject
(
request
,
refundResponse
,
orderBean
);
...
@@ -181,4 +180,28 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
...
@@ -181,4 +180,28 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
/**
* 提取 退款公共代码
*
* @param request
* @param orderBean
* @return
*/
private
PayRefundResponse
payRefundCommon
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
PayRefundResponse
refundResponse
=
paymentHandle
.
getCommonPayRefundResponse
(
request
,
orderBean
);
//同意退款失败记录到订单售后单
if
(
orderBean
.
getAfterSalesOrderResp
()
!=
null
&&
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
AfterSalesRefundFailReq
refundFailReq
=
new
AfterSalesRefundFailReq
();
refundFailReq
.
setOrderCode
(
orderBean
.
getOid
());
refundFailReq
.
setPartnerId
(
orderBean
.
getCompanyId
());
refundFailReq
.
setRefundFailReason
(
"退款失败或退款中,"
+
refundResponse
.
getMessage
());
refundFailReq
.
setAfterSalesCode
(
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesCode
());
refundFailReq
.
setOperationClient
(
request
.
getAfterSalesApplyClient
());
refundFailReq
.
setOperator
(
request
.
getOperator
());
orderSdkService
.
refundFail
(
refundFailReq
,
LogThreadLocal
.
getTrackingNo
());
}
return
refundResponse
;
}
}
}
order-management/src/main/java/cn/freemud/management/service/impl/McCafeMangerServiceImpl.java
View file @
ed597807
package
cn
.
freemud
.
management
.
service
.
impl
;
//
package cn.freemud.management.service.impl;
//
import
cn.freemud.base.entity.BaseResponse
;
//
import cn.freemud.base.entity.BaseResponse;
import
cn.freemud.base.util.DateUtil
;
//
import cn.freemud.base.util.DateUtil;
import
cn.freemud.management.entities.dto.request.delivery.DeliveryOrderAssemblyackRequest
;
//
import cn.freemud.management.entities.dto.request.delivery.DeliveryOrderAssemblyackRequest;
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.entities.dto.response.order.OrderManagerResponse;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
//
import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import
cn.freemud.management.enums.ResponseResult
;
//
import cn.freemud.management.enums.ResponseResult;
import
cn.freemud.management.service.OrderManagerService
;
//
import cn.freemud.management.service.OrderManagerService;
import
cn.freemud.management.service.handle.*
;
//
import cn.freemud.management.service.handle.*;
import
cn.freemud.management.thirdparty.DeliveryMCCafeClient
;
//
import cn.freemud.management.thirdparty.DeliveryMCCafeClient;
import
cn.freemud.management.util.ResponseUtil
;
//
import cn.freemud.management.util.ResponseUtil;
import
com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto
;
//
import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseDto;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
//
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import
com.freemud.application.sdk.api.ordercenter.enums.AbnormalStateEnum
;
//
import com.freemud.application.sdk.api.ordercenter.enums.AbnormalStateEnum;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
//
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import
com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1
;
//
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1;
import
com.freemud.application.sdk.api.ordercenter.request.SdkUpdateAbnormalState
;
//
import com.freemud.application.sdk.api.ordercenter.request.SdkUpdateAbnormalState;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
//
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import
com.freemud.sdk.api.assortment.message.enums.OrderType
;
//
import com.freemud.sdk.api.assortment.message.enums.OrderType;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
//
import com.freemud.sdk.api.assortment.order.enums.PayRefundStatus;
import
org.apache.commons.lang.StringUtils
;
//
import org.apache.commons.lang.StringUtils;
import
org.springframework.beans.BeanUtils
;
//
import org.springframework.beans.BeanUtils;
import
org.springframework.beans.factory.annotation.Value
;
//
import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Service
;
//
import org.springframework.stereotype.Service;
//
import
javax.annotation.Resource
;
//
import javax.annotation.Resource;
import
java.text.SimpleDateFormat
;
//
import java.text.SimpleDateFormat;
import
java.util.Date
;
//
import java.util.Date;
import
java.util.Objects
;
//
import java.util.Objects;
//
/**
/
//
**
* All rights Reserved, Designed By www.freemud.cn
//
* All rights Reserved, Designed By www.freemud.cn
*
//
*
* @version V1.0
//
* @version V1.0
* @Title: McoffeMangerServiceImpl
//
* @Title: McoffeMangerServiceImpl
* @Package cn.freemud.management.service.impl
//
* @Package cn.freemud.management.service.impl
* @Description:
//
* @Description:
* @author: shuhu.hou
//
* @author: shuhu.hou
* @date: 2020/8/9 15:26
//
* @date: 2020/8/9 15:26
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
//
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
//
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
//
*/
@Service
//
@Service
public
class
McCafeMangerServiceImpl
implements
OrderManagerService
{
//
public class McCafeMangerServiceImpl implements OrderManagerService {
@Resource
//
@Resource
private
SaasOrderHandle
saasOrderHandle
;
//
private SaasOrderHandle saasOrderHandle;
@Resource
//
@Resource
private
CouponHandle
couponHandle
;
//
private CouponHandle couponHandle;
@Resource
//
@Resource
private
DeliveryHandle
deliveryHandle
;
//
private DeliveryHandle deliveryHandle;
@Resource
//
@Resource
private
PaymentHandle
paymentHandle
;
//
private PaymentHandle paymentHandle;
@Resource
//
@Resource
private
StockHandle
stockHandle
;
//
private StockHandle stockHandle;
@Resource
//
@Resource
private
DeliveryMCCafeClient
deliveryMCCafeClient
;
//
private DeliveryMCCafeClient deliveryMCCafeClient;
@Resource
//
@Resource
private
OrderSdkService
orderSdkService
;
//
private OrderSdkService orderSdkService;
//
@Value
(
"${mccafe.partner.id}"
)
//
@Value("${mccafe.partner.id}")
private
String
macCafePartnerId
;
//
private String macCafePartnerId;
@Value
(
"${mcCafe.withOrderBuy.cardId}"
)
//
@Value("${mcCafe.withOrderBuy.cardId}")
private
String
macCafeCardId
;
//
private String macCafeCardId;
//
@Override
//
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderConfirm
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//
public BaseResponse<OrderManagerResponse> orderConfirm(OrderManagerRequest request, OrderBeanV1 orderBean) {
if
(
orderBean
==
null
)
{
//
if (orderBean == null) {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
//
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
//
}
OrderManagerRequest
orderManagerRequest
=
new
OrderManagerRequest
();
//
OrderManagerRequest orderManagerRequest =new OrderManagerRequest();
BeanUtils
.
copyProperties
(
request
,
orderManagerRequest
);
//
BeanUtils.copyProperties(request,orderManagerRequest);
if
(!
OrderStatusV1
.
TAKE_ORDER
.
getV2Code
().
equals
(
orderBean
.
getStatusV2
())
&&
!
OrderStatusV1
.
RECEIPT
.
getV2Code
().
equals
(
orderBean
.
getStatusV2
())){
//
if (!OrderStatusV1.TAKE_ORDER.getV2Code().equals(orderBean.getStatusV2()) && !OrderStatusV1.RECEIPT.getV2Code().equals(orderBean.getStatusV2())){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_STATUS_FAILED
);
//
return ResponseUtil.error(ResponseResult.ORDER_STATUS_FAILED);
}
//
}
if
(
StringUtils
.
isNotEmpty
(
request
.
getPickUpGoodsNo
())){
//
if (StringUtils.isNotEmpty(request.getPickUpGoodsNo())){
//更新取餐码
//
//更新取餐码
BaseResponse
baseResponse
=
saasOrderHandle
.
updatePickUpGoodNo
(
request
,
orderBean
);
//
BaseResponse baseResponse = saasOrderHandle.updatePickUpGoodNo(request, orderBean);
if
(!
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
baseResponse
.
getCode
())){
//
if (!ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode())){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_UPDATE_PICKUP_FAILED
);
//
return ResponseUtil.error(ResponseResult.ORDER_UPDATE_PICKUP_FAILED);
}
//
}
}
//
}
if
(
OrderStatusV1
.
TAKE_ORDER
.
getV2Code
().
equals
(
orderBean
.
getStatusV2
()))
{
//
if (OrderStatusV1.TAKE_ORDER.getV2Code().equals(orderBean.getStatusV2())) {
// 订单接单
//
// 订单接单
saasOrderHandle
.
orderConfirm
(
orderManagerRequest
,
orderBean
);
//
saasOrderHandle.orderConfirm(orderManagerRequest, orderBean);
}
//
}
if
(!
Objects
.
equals
(
orderBean
.
getOrderType
(),
OrderType
.
TAKE_OUT
.
getCode
()))
{
//
if (!Objects.equals(orderBean.getOrderType(), OrderType.TAKE_OUT.getCode())) {
// 异步核销券码
//
// 异步核销券码
couponHandle
.
asyncVerificationCoupon
(
orderBean
);
//
couponHandle.asyncVerificationCoupon(orderBean);
}
//
}
if
(
StringUtils
.
isNotEmpty
(
request
.
getPickUpGoodsNo
())){
//
if (StringUtils.isNotEmpty(request.getPickUpGoodsNo())){
//
if
(
Objects
.
equals
(
orderBean
.
getOrderType
(),
OrderType
.
TAKE_OUT
.
getCode
()))
{
//
if (Objects.equals(orderBean.getOrderType(), OrderType.TAKE_OUT.getCode())) {
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd'T'HH:mm:ss'Z'"
);
//
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
DeliveryOrderAssemblyackRequest
assemblyAckRequest
=
new
DeliveryOrderAssemblyackRequest
();
//
DeliveryOrderAssemblyackRequest assemblyAckRequest = new DeliveryOrderAssemblyackRequest();
assemblyAckRequest
.
setOrderKey
(
request
.
getOrderId
());
//
assemblyAckRequest.setOrderKey(request.getOrderId());
assemblyAckRequest
.
setDisplayOrderNumber
(
request
.
getPickUpGoodsNo
());
//
assemblyAckRequest.setDisplayOrderNumber(request.getPickUpGoodsNo());
assemblyAckRequest
.
setAssemblyTimeUTC
(
dateFormat
.
format
(
DateUtil
.
addHours
(
new
Date
(),
-
8
)));
//
assemblyAckRequest.setAssemblyTimeUTC(dateFormat.format(DateUtil.addHours(new Date(), -8)));
assemblyAckRequest
.
setStoreId
(
orderBean
.
getShopId
());
//
assemblyAckRequest.setStoreId(orderBean.getShopId());
//入机成功通知配送
//
//入机成功通知配送
DeliveryResponseDto
deliveryResponse
=
deliveryMCCafeClient
.
assemblyAck
(
assemblyAckRequest
);
//
DeliveryResponseDto deliveryResponse = deliveryMCCafeClient.assemblyAck(assemblyAckRequest);
if
(
deliveryResponse
==
null
||
!
StringUtils
.
equals
(
ResponseResult
.
SUCCESS
.
getCode
(),
deliveryResponse
.
getCode
()
+
""
))
{
//
if (deliveryResponse == null || !StringUtils.equals(ResponseResult.SUCCESS.getCode(), deliveryResponse.getCode() + "")) {
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_ASSEMBLY_ACK_ERROR
);
//
return ResponseUtil.error(ResponseResult.DELIVERY_ASSEMBLY_ACK_ERROR);
}
//
}
}
//
}
}
//
}
//
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
//
}
//
@Override
//
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderReject
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//
public BaseResponse<OrderManagerResponse> orderReject(OrderManagerRequest request, OrderBeanV1 orderBean) {
OrderManagerRequest
orderManagerRequest
=
new
OrderManagerRequest
();
//
OrderManagerRequest orderManagerRequest =new OrderManagerRequest();
BeanUtils
.
copyProperties
(
request
,
orderManagerRequest
);
//
BeanUtils.copyProperties(request,orderManagerRequest);
//根据是否是外卖单来判断
//
//根据是否是外卖单来判断
if
(
Objects
.
equals
(
orderBean
.
getOrderType
(),
OrderType
.
TAKE_OUT
.
getCode
()))
{
//
if (Objects.equals(orderBean.getOrderType(), OrderType.TAKE_OUT.getCode())) {
// 订单接单
//
// 订单接单
BaseResponse
<
OrderManagerResponse
>
orderManagerResponseBaseResponse
=
orderConfirm
(
request
,
orderBean
);
//
BaseResponse<OrderManagerResponse> orderManagerResponseBaseResponse = orderConfirm(request, orderBean);
if
(
ResponseResult
.
SUCCESS
.
getCode
().
equals
(
orderManagerResponseBaseResponse
.
getCode
())){
//
if (ResponseResult.SUCCESS.getCode().equals(orderManagerResponseBaseResponse.getCode())){
//通知配送服务停单
//
//通知配送服务停单
deliveryHandle
.
haltedDelivery
(
orderBean
);
//
deliveryHandle.haltedDelivery(orderBean);
}
//
}
//
}
else
{
//
}else {
//支付退款
//
//支付退款
PayRefundResponse
refundResponse
=
paymentHandle
.
mcCafeRefund
(
orderManagerRequest
,
orderBean
);
//
PayRefundResponse refundResponse = paymentHandle.mcCafeRefund(orderManagerRequest, orderBean);
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
()))
{
//
if(refundResponse.getPayRefundStatus().getCode().equals(PayRefundStatus.SUCCESS.getCode())) {
//订单拒单
//
//订单拒单
saasOrderHandle
.
mcCafeOrderReject
(
orderManagerRequest
,
refundResponse
,
orderBean
);
//
saasOrderHandle.mcCafeOrderReject(orderManagerRequest, refundResponse, orderBean);
//冲正库存
//
//冲正库存
stockHandle
.
revert
(
orderManagerRequest
,
orderBean
);
//
stockHandle.revert(orderManagerRequest, orderBean);
}
else
{
//
} else {
SdkUpdateAbnormalState
sdkUpdateAbnormalState
=
new
SdkUpdateAbnormalState
();
//
SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState();
sdkUpdateAbnormalState
.
setOrderCode
(
request
.
getOrderId
());
//
sdkUpdateAbnormalState.setOrderCode(request.getOrderId());
sdkUpdateAbnormalState
.
setPartnerId
(
request
.
getPartnerId
());
//
sdkUpdateAbnormalState.setPartnerId(request.getPartnerId());
sdkUpdateAbnormalState
.
setAbnormalState
(
AbnormalStateEnum
.
ABNORMAL
.
getCode
());
//
sdkUpdateAbnormalState.setAbnormalState(AbnormalStateEnum.ABNORMAL.getCode());
sdkUpdateAbnormalState
.
setAbnormalDesc
(
"支付退款失败,订单入机失败回调异常"
);
//
sdkUpdateAbnormalState.setAbnormalDesc("支付退款失败,订单入机失败回调异常");
sdkUpdateAbnormalState
.
setOrderClient
(
OrderClientType
.
SAAS
.
getIndex
());
//
sdkUpdateAbnormalState.setOrderClient(OrderClientType.SAAS.getIndex());
sdkUpdateAbnormalState
.
setOperator
(
request
.
getOperator
());
//
sdkUpdateAbnormalState.setOperator(request.getOperator());
orderSdkService
.
updateAbnormalState
(
sdkUpdateAbnormalState
);
//
orderSdkService.updateAbnormalState(sdkUpdateAbnormalState);
}
//
}
}
//
}
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
//
}
//
/**
//
/**
* 制作完成
//
* 制作完成
*
//
*
* @param request
//
* @param request
* @param orderBean
//
* @param orderBean
* @return
//
* @return
*/
//
*/
@Override
//
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderDone
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//
public BaseResponse<OrderManagerResponse> orderDone(OrderManagerRequest request, OrderBeanV1 orderBean) {
// 订单制作完成
//
// 订单制作完成
saasOrderHandle
.
orderDone
(
request
,
orderBean
);
//
saasOrderHandle.orderDone(request, orderBean);
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
//
}
//
/**
//
/**
* 订单配送
//
* 订单配送
*
//
*
* @param request
//
* @param request
* @param orderBean
//
* @param orderBean
* @return
//
* @return
*/
//
*/
@Override
//
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderDelivery
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//
public BaseResponse<OrderManagerResponse> orderDelivery(OrderManagerRequest request, OrderBeanV1 orderBean) {
// 订单配送
//
// 订单配送
saasOrderHandle
.
orderDelivery
(
request
,
orderBean
);
//
saasOrderHandle.orderDelivery(request, orderBean);
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
//
}
//
/**
//
/**
* 订单完成
//
* 订单完成
*
//
*
* @param request
//
* @param request
* @param orderBean
//
* @param orderBean
* @return
//
* @return
*/
//
*/
@Override
//
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderAffirm
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//
public BaseResponse<OrderManagerResponse> orderAffirm(OrderManagerRequest request, OrderBeanV1 orderBean) {
// 订单完成
//
// 订单完成
saasOrderHandle
.
orderAffirm
(
request
,
orderBean
);
//
saasOrderHandle.orderAffirm(request, orderBean);
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
//
}
//
//
//
/**
//
/**
* 同意退款
//
* 同意退款
*
//
*
* @param request
//
* @param request
* @param orderBean
//
* @param orderBean
* @return
//
* @return
*/
//
*/
@Override
//
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderAgreeRefund
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//
public BaseResponse<OrderManagerResponse> orderAgreeRefund(OrderManagerRequest request, OrderBeanV1 orderBean) {
//支付退款
//
//支付退款
PayRefundResponse
refundResponse
=
paymentHandle
.
mcCafeRefund
(
request
,
orderBean
);
//
PayRefundResponse refundResponse = paymentHandle.mcCafeRefund(request, orderBean);
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
()))
{
//
if(refundResponse.getPayRefundStatus().getCode().equals(PayRefundStatus.SUCCESS.getCode())) {
//订单拒单
//
//订单拒单
saasOrderHandle
.
mcCafeRefundAgree
(
request
,
refundResponse
,
orderBean
);
//
saasOrderHandle.mcCafeRefundAgree(request, refundResponse, orderBean);
//冲正库存
//
//冲正库存
stockHandle
.
revert
(
request
,
orderBean
);
//
stockHandle.revert(request, orderBean);
}
else
{
//
} else {
SdkUpdateAbnormalState
sdkUpdateAbnormalState
=
new
SdkUpdateAbnormalState
();
//
SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState();
sdkUpdateAbnormalState
.
setOrderCode
(
request
.
getOrderId
());
//
sdkUpdateAbnormalState.setOrderCode(request.getOrderId());
sdkUpdateAbnormalState
.
setPartnerId
(
request
.
getPartnerId
());
//
sdkUpdateAbnormalState.setPartnerId(request.getPartnerId());
sdkUpdateAbnormalState
.
setAbnormalState
(
AbnormalStateEnum
.
ABNORMAL
.
getCode
());
//
sdkUpdateAbnormalState.setAbnormalState(AbnormalStateEnum.ABNORMAL.getCode());
sdkUpdateAbnormalState
.
setAbnormalDesc
(
"支付退款失败,订单入机失败回调异常"
);
//
sdkUpdateAbnormalState.setAbnormalDesc("支付退款失败,订单入机失败回调异常");
sdkUpdateAbnormalState
.
setOrderClient
(
OrderClientType
.
SAAS
.
getIndex
());
//
sdkUpdateAbnormalState.setOrderClient(OrderClientType.SAAS.getIndex());
sdkUpdateAbnormalState
.
setOperator
(
request
.
getOperator
());
//
sdkUpdateAbnormalState.setOperator(request.getOperator());
orderSdkService
.
updateAbnormalState
(
sdkUpdateAbnormalState
);
//
orderSdkService.updateAbnormalState(sdkUpdateAbnormalState);
}
//
}
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
//
}
//
/**
//
/**
* 拒绝退款
//
* 拒绝退款
*
//
*
* @param request
//
* @param request
* @param orderBean
//
* @param orderBean
* @return
//
* @return
*/
//
*/
@Override
//
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderRejectRefund
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//
public BaseResponse<OrderManagerResponse> orderRejectRefund(OrderManagerRequest request, OrderBeanV1 orderBean) {
//拒绝退款
//
//拒绝退款
saasOrderHandle
.
mcCafeRefundReject
(
request
,
orderBean
);
//
saasOrderHandle.mcCafeRefundReject(request,orderBean);
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
//
}
//
//
/**
//
/**
* 商家取消
//
* 商家取消
*/
//
*/
@Override
//
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderCancel
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//
public BaseResponse<OrderManagerResponse> orderCancel(OrderManagerRequest request, OrderBeanV1 orderBean) {
//支付退款
//
//支付退款
PayRefundResponse
refundResponse
=
paymentHandle
.
mcCafeRefund
(
request
,
orderBean
);
//
PayRefundResponse refundResponse = paymentHandle.mcCafeRefund(request, orderBean);
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
()))
{
//
if(refundResponse.getPayRefundStatus().getCode().equals(PayRefundStatus.SUCCESS.getCode())) {
//订单拒单
//
//订单拒单
saasOrderHandle
.
orderCancel
(
request
,
refundResponse
,
orderBean
);
//
saasOrderHandle.orderCancel(request, refundResponse, orderBean);
//冲正库存
//
//冲正库存
stockHandle
.
revert
(
request
,
orderBean
);
//
stockHandle.revert(request, orderBean);
}
else
{
//
} else {
SdkUpdateAbnormalState
sdkUpdateAbnormalState
=
new
SdkUpdateAbnormalState
();
//
SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState();
sdkUpdateAbnormalState
.
setOrderCode
(
request
.
getOrderId
());
//
sdkUpdateAbnormalState.setOrderCode(request.getOrderId());
sdkUpdateAbnormalState
.
setPartnerId
(
request
.
getPartnerId
());
//
sdkUpdateAbnormalState.setPartnerId(request.getPartnerId());
sdkUpdateAbnormalState
.
setAbnormalState
(
AbnormalStateEnum
.
ABNORMAL
.
getCode
());
//
sdkUpdateAbnormalState.setAbnormalState(AbnormalStateEnum.ABNORMAL.getCode());
sdkUpdateAbnormalState
.
setAbnormalDesc
(
"支付退款失败,订单入机失败回调异常"
);
//
sdkUpdateAbnormalState.setAbnormalDesc("支付退款失败,订单入机失败回调异常");
sdkUpdateAbnormalState
.
setOrderClient
(
OrderClientType
.
SAAS
.
getIndex
());
//
sdkUpdateAbnormalState.setOrderClient(OrderClientType.SAAS.getIndex());
sdkUpdateAbnormalState
.
setOperator
(
request
.
getOperator
());
//
sdkUpdateAbnormalState.setOperator(request.getOperator());
orderSdkService
.
updateAbnormalState
(
sdkUpdateAbnormalState
);
//
orderSdkService.updateAbnormalState(sdkUpdateAbnormalState);
}
//
}
return
ResponseUtil
.
success
();
//
return ResponseUtil.success();
}
//
}
//
}
//
}
order-management/src/main/java/cn/freemud/management/service/impl/NewMallOrderMangerServiceImpl.java
View file @
ed597807
...
@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
...
@@ -4,6 +4,7 @@ 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.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.handle.ActivityHandle
;
import
cn.freemud.management.service.handle.ActivityHandle
;
import
cn.freemud.management.service.handle.MallOrderHandle
;
import
cn.freemud.management.service.handle.MallOrderHandle
;
...
@@ -11,12 +12,16 @@ import cn.freemud.management.service.handle.PaymentHandle;
...
@@ -11,12 +12,16 @@ import cn.freemud.management.service.handle.PaymentHandle;
import
cn.freemud.management.service.handle.StockHandle
;
import
cn.freemud.management.service.handle.StockHandle
;
import
cn.freemud.management.util.ResponseUtil
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayChannelType
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayChannelType
;
import
com.freemud.application.sdk.api.ordercenter.enums.RefundModeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.RefundModeEnum
;
import
com.freemud.application.sdk.api.ordercenter.request.AfterOrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.AfterOrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.AfterSalesRefundFailReq
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -45,6 +50,8 @@ public class NewMallOrderMangerServiceImpl implements OrderManagerService {
...
@@ -45,6 +50,8 @@ public class NewMallOrderMangerServiceImpl implements OrderManagerService {
private
StockHandle
stockHandle
;
private
StockHandle
stockHandle
;
@Autowired
@Autowired
private
ActivityHandle
activityHandle
;
private
ActivityHandle
activityHandle
;
@Autowired
private
OrderSdkService
orderSdkService
;
/**
/**
* 同意退款
* 同意退款
...
@@ -67,34 +74,37 @@ public class NewMallOrderMangerServiceImpl implements OrderManagerService {
...
@@ -67,34 +74,37 @@ public class NewMallOrderMangerServiceImpl implements OrderManagerService {
// 修改售后单状态为退货中
// 修改售后单状态为退货中
mallOrderHandle
.
mallOrderAgreeApply
(
request
,
orderBean
);
mallOrderHandle
.
mallOrderAgreeApply
(
request
,
orderBean
);
}
else
{
}
else
{
//支付退款
//支付退款
PayRefundResponse
refundResponse
;
PayRefundResponse
refundResponse
=
this
.
payRefundCommon
(
request
,
orderBean
);
boolean
cashPay
=
false
;
// 退款异常
boolean
svcPay
=
false
;
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
COMPATIBILITY_STATUS
.
getCode
())
==
0
)
{
if
(
CollectionUtils
.
isNotEmpty
(
orderBean
.
getOrderPayItem
())){
return
ResponseUtil
.
error
(
refundResponse
.
getResult
());
for
(
OrderPayItemResp
payItemResp
:
orderBean
.
getOrderPayItem
()){
if
(
Objects
.
equals
(
payItemResp
.
getPayChannelType
(),(
int
)
PayChannelType
.
SVC
.
getIndex
())){
svcPay
=
true
;
}
if
(
Objects
.
equals
(
payItemResp
.
getPayChannelType
(),(
int
)
PayChannelType
.
WECHAT
.
getIndex
())){
cashPay
=
true
;
}
if
(
Objects
.
equals
(
payItemResp
.
getPayChannelType
(),(
int
)
PayChannelType
.
ALIPAY
.
getIndex
())){
cashPay
=
true
;
}
}
}
}
if
(
cashPay
&&
svcPay
)
{
// fisherman --> 退款中的状态 阻止后续流程 等待支付回调 不是退款成功 都终止下面的退款流程
refundResponse
=
paymentHandle
.
multiRefund
(
orderBean
);
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
}
else
{
return
ResponseUtil
.
error
(
ResponseResult
.
REFUND_FAIL_WAIT_CALLBACK
);
// OrderExtendedReq ext = orderBean.getOrderExtended();
// if (StringUtils.isNotBlank(ext.getAgentPayerId()) && !Objects.equals(ext.getAgentPayerId(), orderBean.getUserId())) {
// //代付人信息不为空 并且和订单创建人不一样,表示代付单
// refundResponse = paymentHandle.agentPayRefund(orderBean);
// }
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
}
}
// PayRefundResponse refundResponse;
// boolean cashPay = false;
// boolean svcPay = false;
// if(CollectionUtils.isNotEmpty(orderBean.getOrderPayItem())){
// for (OrderPayItemResp payItemResp : orderBean.getOrderPayItem()){
// if(Objects.equals(payItemResp.getPayChannelType(),(int)PayChannelType.SVC.getIndex())){
// svcPay = true;
// }
// if(Objects.equals(payItemResp.getPayChannelType(),(int)PayChannelType.WECHAT.getIndex())){
// cashPay = true;
// }
// if(Objects.equals(payItemResp.getPayChannelType(),(int)PayChannelType.ALIPAY.getIndex())){
// cashPay = true;
// }
// }
// }
// if (cashPay && svcPay) {
// refundResponse = paymentHandle.multiRefund(orderBean);
// } else {
// refundResponse = paymentHandle.getCommonPayRefundResponse(request, orderBean);
// }
//订单同意退款
//订单同意退款
mallOrderHandle
.
refundAgree
(
request
,
refundResponse
,
orderBean
);
mallOrderHandle
.
refundAgree
(
request
,
refundResponse
,
orderBean
);
//冲正库存
//冲正库存
...
@@ -129,4 +139,28 @@ public class NewMallOrderMangerServiceImpl implements OrderManagerService {
...
@@ -129,4 +139,28 @@ public class NewMallOrderMangerServiceImpl implements OrderManagerService {
return
ResponseUtil
.
error
(
"501"
,
"暂无"
);
return
ResponseUtil
.
error
(
"501"
,
"暂无"
);
}
}
/**
* 提取 退款公共代码
*
* @param request
* @param orderBean
* @return
*/
private
PayRefundResponse
payRefundCommon
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
PayRefundResponse
refundResponse
=
paymentHandle
.
getCommonPayRefundResponse
(
request
,
orderBean
);
//同意退款失败记录到订单售后单
if
(
orderBean
.
getAfterSalesOrderResp
()
!=
null
&&
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
AfterSalesRefundFailReq
refundFailReq
=
new
AfterSalesRefundFailReq
();
refundFailReq
.
setOrderCode
(
orderBean
.
getOid
());
refundFailReq
.
setPartnerId
(
orderBean
.
getCompanyId
());
refundFailReq
.
setRefundFailReason
(
"退款失败或退款中,"
+
refundResponse
.
getMessage
());
refundFailReq
.
setAfterSalesCode
(
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesCode
());
refundFailReq
.
setOperationClient
(
request
.
getAfterSalesApplyClient
());
refundFailReq
.
setOperator
(
request
.
getOperator
());
orderSdkService
.
refundFail
(
refundFailReq
,
LogThreadLocal
.
getTrackingNo
());
}
return
refundResponse
;
}
}
}
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
ed597807
...
@@ -207,15 +207,14 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -207,15 +207,14 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
@Override
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderReject
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
public
BaseResponse
<
OrderManagerResponse
>
orderReject
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
//支付退款
//支付退款
PayRefundResponse
refundResponse
;
PayRefundResponse
refundResponse
=
this
.
payRefundCommon
(
request
,
orderBean
);
try
{
// 退款异常
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()
>
0
)
{
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
COMPATIBILITY_STATUS
.
getCode
())
==
0
)
{
refundResponse
=
paymentHandle
.
multiRefund
(
orderBean
);
return
ResponseUtil
.
error
(
refundResponse
.
getResult
());
}
else
{
}
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
// fisherman --> 退款中的状态 阻止后续流程 等待支付回调 不是退款成功 都终止下面的退款流程
}
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
}
catch
(
OrderServiceException
orderEx
)
{
// 爱马哥兼容,不抛错
return
ResponseUtil
.
error
(
ResponseResult
.
REFUND_FAIL_WAIT_CALLBACK
);
return
ResponseUtil
.
error
(
orderEx
.
getResult
());
}
}
//订单拒单
//订单拒单
saasOrderHandle
.
orderReject
(
request
,
refundResponse
,
orderBean
);
saasOrderHandle
.
orderReject
(
request
,
refundResponse
,
orderBean
);
...
@@ -240,7 +239,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -240,7 +239,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
//取消配送单
//取消配送单
deliveryHandle
.
cancelDelivery
(
orderBean
,
request
);
deliveryHandle
.
cancelDelivery
(
orderBean
,
request
);
//支付退款
//支付退款
PayRefundResponse
refundResponse
=
this
.
getPayRefundResponse
(
request
,
orderBean
);
PayRefundResponse
refundResponse
=
this
.
payRefundCommon
(
request
,
orderBean
);
// 退款异常
// 退款异常
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
COMPATIBILITY_STATUS
.
getCode
())
==
0
)
{
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
COMPATIBILITY_STATUS
.
getCode
())
==
0
)
{
return
ResponseUtil
.
error
(
refundResponse
.
getResult
());
return
ResponseUtil
.
error
(
refundResponse
.
getResult
());
...
@@ -261,20 +260,20 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -261,20 +260,20 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
}
}
/**
/**
* 提
出
退款公共代码
* 提
取
退款公共代码
*
*
* @param request
* @param request
* @param orderBean
* @param orderBean
* @return
* @return
*/
*/
private
PayRefundResponse
getPayRefundResponse
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
private
PayRefundResponse
payRefundCommon
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
PayRefundResponse
refundResponse
=
paymentHandle
.
getCommonPayRefundResponse
(
request
,
orderBean
);
PayRefundResponse
refundResponse
=
paymentHandle
.
getCommonPayRefundResponse
(
request
,
orderBean
);
//退款失败记录到订单售后单
//
同意
退款失败记录到订单售后单
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
if
(
orderBean
.
getAfterSalesOrderResp
()
!=
null
&&
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
AfterSalesRefundFailReq
refundFailReq
=
new
AfterSalesRefundFailReq
();
AfterSalesRefundFailReq
refundFailReq
=
new
AfterSalesRefundFailReq
();
refundFailReq
.
setOrderCode
(
orderBean
.
getOid
());
refundFailReq
.
setOrderCode
(
orderBean
.
getOid
());
refundFailReq
.
setPartnerId
(
orderBean
.
getCompanyId
());
refundFailReq
.
setPartnerId
(
orderBean
.
getCompanyId
());
refundFailReq
.
setRefundFailReason
(
"退款失败
"
);
refundFailReq
.
setRefundFailReason
(
"退款失败
或退款中,"
+
refundResponse
.
getMessage
()
);
refundFailReq
.
setAfterSalesCode
(
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesCode
());
refundFailReq
.
setAfterSalesCode
(
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesCode
());
refundFailReq
.
setOperationClient
(
request
.
getAfterSalesApplyClient
());
refundFailReq
.
setOperationClient
(
request
.
getAfterSalesApplyClient
());
refundFailReq
.
setOperator
(
request
.
getOperator
());
refundFailReq
.
setOperator
(
request
.
getOperator
());
...
@@ -322,7 +321,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -322,7 +321,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
}
else
if
(
OrderSourceV1
.
POS
.
getCode
().
equals
(
orderBean
.
getSource
()))
{
}
else
if
(
OrderSourceV1
.
POS
.
getCode
().
equals
(
orderBean
.
getSource
()))
{
return
posCancel
(
orderBean
);
return
posCancel
(
orderBean
);
}
}
return
ResponseUtil
.
success
(
);
return
ResponseUtil
.
error
(
"501"
,
"暂不支持"
);
}
}
/**
/**
...
...
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