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
6111c8d6
Commit
6111c8d6
authored
Jun 13, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增 未接单的退款售后处理逻辑
parent
269947c8
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
127 additions
and
106 deletions
+127
-106
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/PayRefundStatus.java
+2
-1
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
+1
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+19
-41
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/PayRefundResponse.java
+6
-0
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
+52
-42
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+27
-0
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+20
-22
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/enums/PayRefundStatus.java
View file @
6111c8d6
...
@@ -19,7 +19,8 @@ public enum PayRefundStatus {
...
@@ -19,7 +19,8 @@ public enum PayRefundStatus {
/**
/**
* 额外状态码 用于判断逻辑,
* 额外状态码 用于判断逻辑,
*/
*/
NOT_SUFFICIENT_FUNDS
(
8200201
,
"余额不足"
);
NOT_SUFFICIENT_FUNDS
(
8200201
,
"余额不足"
),
COMPATIBILITY_STATUS
(
9999999
,
"兼容爱马哥报错"
);
private
Integer
code
;
private
Integer
code
;
private
String
desc
;
private
String
desc
;
...
...
order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
View file @
6111c8d6
...
@@ -206,6 +206,7 @@ public enum ResponseResult {
...
@@ -206,6 +206,7 @@ public enum ResponseResult {
*/
*/
PAY_BACKEND_CONFIG_ERROR
(
"58003"
,
"支付交易异常"
,
"Abnormal payment transaction"
),
PAY_BACKEND_CONFIG_ERROR
(
"58003"
,
"支付交易异常"
,
"Abnormal payment transaction"
),
PAY_SVC_CONFIG_ERROR
(
"58004"
,
"不支持储值卡支付"
,
""
),
PAY_SVC_CONFIG_ERROR
(
"58004"
,
"不支持储值卡支付"
,
""
),
PAY_REFUND_ERROR
(
"58005"
,
"退款已受理,请等待"
,
""
),
/**
/**
* 优惠券活动
* 优惠券活动
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
6111c8d6
...
@@ -2018,9 +2018,9 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2018,9 +2018,9 @@ public class OrderServiceImpl implements Orderservice {
BaseResponse
baseResponse
=
partnerNoTakeOrder
(
orderRefundVo
,
orderBean
,
orderId
,
AfterSalesType
.
USER_CANCEL
,
isRefundDeliveryFee
);
BaseResponse
baseResponse
=
partnerNoTakeOrder
(
orderRefundVo
,
orderBean
,
orderId
,
AfterSalesType
.
USER_CANCEL
,
isRefundDeliveryFee
);
if
(
baseResponse
!=
null
)
{
if
(
baseResponse
!=
null
)
{
return
baseResponse
;
return
baseResponse
;
}
}
// 删除订单 通知活动添加商品库存
// 删除订单 通知活动添加商品库存
orderQueueService
.
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
(),
orderBean
.
getPayStatus
());
orderQueueService
.
backOrdersStatusChange
(
orderBean
.
getOid
(),
orderBean
.
getStatus
(),
orderBean
.
getPayStatus
());
}
else
{
}
else
{
CancelOrderRequest
cancelOrderRequest
=
new
CancelOrderRequest
();
CancelOrderRequest
cancelOrderRequest
=
new
CancelOrderRequest
();
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
...
@@ -2074,50 +2074,24 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2074,50 +2074,24 @@ public class OrderServiceImpl implements Orderservice {
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
)
{
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()
>
0
)
{
OrderManagerRequest
orderManagerRequest
=
new
OrderManagerRequest
();
//调用支付退款
orderManagerRequest
.
setReason
(
orderRefundVo
.
getReason
());
MultiOrderRefundRequest
multiOrderRefundRequest
=
orderAdapter
.
getMultiOrderPayRefundRequest
(
orderBean
,
refundId
);
PayRefundResponse
refundResponse
=
paymentHandle
.
getCommonPayRefundResponse
(
orderManagerRequest
,
orderBean
);
MultiOrderRefundResponse
multiOrderRefundResponse
=
payServiceImpl
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
orderBean
.
getCompanyId
());
state
=
refundResponse
.
getPayRefundStatus
().
getCode
();
if
(
multiOrderRefundResponse
==
null
||
multiOrderRefundResponse
.
getData
()
==
null
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
ORDER_PAY_RESPONSE_SUCCESS
.
equals
(
multiOrderRefundResponse
.
getCode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
MULTIORDER__ERRORREFUND
.
getCode
(),
"multiOrderRefund_failed"
);
}
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
);
}
//获取支付返回退款状态
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
}
else
{
OrderExtendedReq
ext
=
orderBean
.
getOrderExtended
();
if
(
StringUtils
.
isNotBlank
(
ext
.
getAgentPayerId
())
&&
!
Objects
.
equals
(
ext
.
getAgentPayerId
(),
orderBean
.
getUserId
()))
{
//代付人信息不为空 并且和订单创建人不一样,表示代付单
PayRefundResponse
resp
=
paymentHandle
.
agentPayRefund
(
orderBean
);
state
=
resp
.
getPayRefundStatus
().
getCode
();
}
else
{
//调用支付退款
PayRefundRequestDto
orderPayRefundRequest
=
orderAdapter
.
getOrderPayRefundRequest
(
orderBean
,
refundId
,
fatherOrderId
);
//抖音支付退款必传
orderPayRefundRequest
.
setRefundDesc
(
orderRefundVo
.
getReason
()
==
null
?
"用户退款"
:
orderRefundVo
.
getReason
());
response
=
payServiceImpl
.
orderRefund
(
orderPayRefundRequest
);
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"
);
}
//获取支付返回退款状态
state
=
response
.
getData
().
getRefundStatus
()
==
null
?
PayRefundStatus
.
SUCCESS
.
getCode
()
:
response
.
getData
().
getRefundStatus
();
}
}
}
}
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
CancelOrderRequest
cancelOrderRequest
=
orderAdapter
.
convent2CancelOrderRequest
(
orderBean
.
getOid
(),
partnerId
,
afterSalesType
,
orderRefundVo
.
getReason
(),
LogThreadLocal
.
getTrackingNo
(),
refundId
.
toString
());
partnerId
,
afterSalesType
,
orderRefundVo
.
getReason
(),
LogThreadLocal
.
getTrackingNo
(),
refundId
.
toString
());
cancelOrderRequest
.
setOperator
(
orderBean
.
getUserName
());
cancelOrderRequest
.
setOperator
(
orderBean
.
getUserName
());
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
cancelOrderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
if
(
Objects
.
equals
(
PayRefundStatus
.
RUNNING
.
getCode
(),
state
))
{
if
(
Objects
.
equals
(
PayRefundStatus
.
FAIL
.
getCode
(),
state
))
{
// 退款中
// 退款中
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
RETURN_COMPLETE
.
getCreateEvent
());
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
RETURN_COMPLETE
.
getCreateEvent
());
}
else
if
(
Objects
.
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
(),
state
))
{
}
else
if
(
Objects
.
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
(),
state
))
{
//退款成功
//退款成功
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
cancelOrderRequest
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
}
else
if
(
Objects
.
equals
(
PayRefundStatus
.
RUNNING
.
getCode
(),
state
))
{
cancelOrderRequest
.
setCreateEvent
(
null
);
}
}
cancelOrderRequest
.
setReqRemark
(
orderRefundVo
.
getRemarks
());
cancelOrderRequest
.
setReqRemark
(
orderRefundVo
.
getRemarks
());
cancelOrderRequest
.
setRefundDeliveryAmount
(
isRefundDeliveryFee
);
cancelOrderRequest
.
setRefundDeliveryAmount
(
isRefundDeliveryFee
);
...
@@ -2130,6 +2104,11 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2130,6 +2104,11 @@ public class OrderServiceImpl implements Orderservice {
if
(
baseOrderResponse
==
null
||
!
ObjectUtils
.
equals
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE
,
baseOrderResponse
.
getErrcode
()))
{
if
(
baseOrderResponse
==
null
||
!
ObjectUtils
.
equals
(
ResponseConstant
.
SUCCESS_RESPONSE_CODE
,
baseOrderResponse
.
getErrcode
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"orderRefund_failed"
);
}
}
if
(
state
==
PayRefundStatus
.
RUNNING
.
getCode
().
intValue
())
{
// 如果退款中, 直接来个申请记录, 退款回调进行处理
return
ResponseUtil
.
error
(
ResponseResult
.
PAY_REFUND_ERROR
);
}
return
null
;
return
null
;
}
}
...
@@ -2336,7 +2315,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -2336,7 +2315,7 @@ public class OrderServiceImpl implements Orderservice {
messageTemplateRequest
.
setMessageEventType
(
messageEventType
);
messageTemplateRequest
.
setMessageEventType
(
messageEventType
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
baseResponse
=
this
.
messageTemplatePushService
.
sendTemplateMsg
(
messageTemplateRequest
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
baseResponse
=
this
.
messageTemplatePushService
.
sendTemplateMsg
(
messageTemplateRequest
);
if
(!
Objects
.
equals
(
baseResponse
.
getCode
(),
ResponseResultEnum
.
SUCCESS
.
getCode
()))
{
if
(!
Objects
.
equals
(
baseResponse
.
getCode
(),
ResponseResultEnum
.
SUCCESS
.
getCode
()))
{
AppLogUtil
.
errorLog
(
"发送支付成功模板消息 失败"
,
orderBean
.
getOid
(),
JSON
.
toJSONString
(
baseResponse
),
null
);
AppLogUtil
.
errorLog
(
"发送支付成功模板消息 失败"
,
orderBean
.
getOid
(),
JSON
.
toJSONString
(
baseResponse
),
null
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"sendTemplateMsg_error"
,
JSONObject
.
toJSONString
(
orderBean
),
JSONObject
.
toJSONString
(
messageTemplateRequest
),
e
);
AppLogUtil
.
errorLog
(
"sendTemplateMsg_error"
,
JSONObject
.
toJSONString
(
orderBean
),
JSONObject
.
toJSONString
(
messageTemplateRequest
),
e
);
...
@@ -3592,7 +3571,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3592,7 +3571,7 @@ public class OrderServiceImpl implements Orderservice {
}
else
{
}
else
{
resultMap
.
put
(
orderCode
,
resp
.
getMessage
());
resultMap
.
put
(
orderCode
,
resp
.
getMessage
());
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
resultMap
.
put
(
orderCode
,
e
.
getMessage
());
resultMap
.
put
(
orderCode
,
e
.
getMessage
());
}
}
});
});
...
@@ -3623,7 +3602,7 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3623,7 +3602,7 @@ public class OrderServiceImpl implements Orderservice {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"订单已取消,无法退款"
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"订单已取消,无法退款"
);
}
}
// fisherman 仅仅支持 餐饮类订单进行操作
// fisherman 仅仅支持 餐饮类订单进行操作
if
(
BizTypeEnum
.
ORDINARY
.
getBizType
().
compareTo
(
orderBean
.
getBizType
())
!=
0
)
{
if
(
BizTypeEnum
.
ORDINARY
.
getBizType
().
compareTo
(
orderBean
.
getBizType
())
!=
0
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"仅支持餐饮订单操作"
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER__ERRORREFUND
.
getCode
(),
"仅支持餐饮订单操作"
);
}
}
...
@@ -3682,9 +3661,9 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3682,9 +3661,9 @@ public class OrderServiceImpl implements Orderservice {
Long
bLong
=
Long
.
valueOf
(
o2
.
getCreateTime
());
Long
bLong
=
Long
.
valueOf
(
o2
.
getCreateTime
());
if
(
bLong
>
aLong
)
{
if
(
bLong
>
aLong
)
{
return
1
;
return
1
;
}
else
if
(
bLong
<
aLong
)
{
}
else
if
(
bLong
<
aLong
)
{
return
-
1
;
return
-
1
;
}
else
{
}
else
{
return
0
;
return
0
;
}
}
});
});
...
@@ -3931,5 +3910,4 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -3931,5 +3910,4 @@ public class OrderServiceImpl implements Orderservice {
}
}
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/PayRefundResponse.java
View file @
6111c8d6
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
pay
;
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
pay
;
import
cn.freemud.management.enums.ResponseResult
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -28,4 +29,9 @@ public class PayRefundResponse {
...
@@ -28,4 +29,9 @@ public class PayRefundResponse {
* 退款序列号
* 退款序列号
*/
*/
private
String
refundId
;
private
String
refundId
;
/**
* 兼容爱马哥退款报错的字段 ,其他场景不会有值
*/
private
ResponseResult
result
;
}
}
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
View file @
6111c8d6
...
@@ -11,6 +11,7 @@ import cn.freemud.management.service.handle.OrderVerifyHandle;
...
@@ -11,6 +11,7 @@ import cn.freemud.management.service.handle.OrderVerifyHandle;
import
cn.freemud.management.util.ResponseUtil
;
import
cn.freemud.management.util.ResponseUtil
;
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.BizTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.NewOrderStatus
;
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.enums.orderv1.OrderTypeV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderTypeV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.orderv1.RefundStatusV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.orderv1.RefundStatusV1
;
...
@@ -58,11 +59,12 @@ public class OrderManagerAdapter {
...
@@ -58,11 +59,12 @@ public class OrderManagerAdapter {
}
}
}
}
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderConfirm
(
request
,
orderBean
);
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderConfirm
(
request
,
orderBean
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
}
}
/**
/**
* 制作完成
* 制作完成
*
* @param request
* @param request
* @return
* @return
*/
*/
...
@@ -75,14 +77,15 @@ public class OrderManagerAdapter {
...
@@ -75,14 +77,15 @@ public class OrderManagerAdapter {
//订单接单参数校验
//订单接单参数校验
BaseResponse
verifyResponse
=
orderVerifyHandle
.
orderDoneVerify
(
orderBean
,
request
);
BaseResponse
verifyResponse
=
orderVerifyHandle
.
orderDoneVerify
(
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
).
orderDone
(
request
,
orderBean
);
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderDone
(
request
,
orderBean
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
}
}
/**
/**
* 送出
* 送出
*
* @param request
* @param request
* @return
* @return
*/
*/
...
@@ -101,19 +104,20 @@ public class OrderManagerAdapter {
...
@@ -101,19 +104,20 @@ public class OrderManagerAdapter {
//订单接单参数校验
//订单接单参数校验
BaseResponse
verifyResponse
=
orderVerifyHandle
.
orderDeliveryVerify
(
orderBean
,
request
);
BaseResponse
verifyResponse
=
orderVerifyHandle
.
orderDeliveryVerify
(
orderBean
,
request
);
if
(
ObjectUtils
.
notEqual
(
verifyResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
if
(
ObjectUtils
.
notEqual
(
verifyResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
return
StringUtils
.
equals
(
verifyResponse
.
getCode
(),
ResponseResult
.
ORDER_IS_COMPLETE_CAN_NOT_DELIVERY
.
getCode
())
?
handleResponse
(
request
,
orderBean
,
ResponseUtil
.
success
())
:
handleResponse
(
request
,
orderBean
,
verifyResponse
);
return
StringUtils
.
equals
(
verifyResponse
.
getCode
(),
ResponseResult
.
ORDER_IS_COMPLETE_CAN_NOT_DELIVERY
.
getCode
())
?
handleResponse
(
request
,
orderBean
,
ResponseUtil
.
success
())
:
handleResponse
(
request
,
orderBean
,
verifyResponse
);
}
}
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderDelivery
(
request
,
orderBean
);
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderDelivery
(
request
,
orderBean
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
}
}
/**
/**
* 完成
* 完成
*
* @param request
* @param request
* @return
* @return
*/
*/
public
BaseResponse
<
OrderManagerResponse
>
orderAffirm
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
public
BaseResponse
<
OrderManagerResponse
>
orderAffirm
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
if
(
orderBean
==
null
)
{
if
(
orderBean
==
null
)
{
//查询订单
//查询订单
orderBean
=
orderBaseService
.
getByOrderCode
(
request
.
getOrderId
());
orderBean
=
orderBaseService
.
getByOrderCode
(
request
.
getOrderId
());
if
(
null
==
orderBean
)
{
if
(
null
==
orderBean
)
{
...
@@ -123,10 +127,10 @@ public class OrderManagerAdapter {
...
@@ -123,10 +127,10 @@ public class OrderManagerAdapter {
//订单接单参数校验
//订单接单参数校验
BaseResponse
verifyResponse
=
orderVerifyHandle
.
orderAffirmVerify
(
orderBean
,
request
);
BaseResponse
verifyResponse
=
orderVerifyHandle
.
orderAffirmVerify
(
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
).
orderAffirm
(
request
,
orderBean
);
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderAffirm
(
request
,
orderBean
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
}
}
/**
/**
...
@@ -143,9 +147,9 @@ public class OrderManagerAdapter {
...
@@ -143,9 +147,9 @@ public class OrderManagerAdapter {
}
}
//订单接单参数校验
//订单接单参数校验
BaseResponse
verifyResponse
;
BaseResponse
verifyResponse
;
if
(
BizTypeEnum
.
MALL
.
getBizType
().
compareTo
(
orderBean
.
getBizType
())
==
0
)
{
if
(
BizTypeEnum
.
MALL
.
getBizType
().
compareTo
(
orderBean
.
getBizType
())
==
0
)
{
verifyResponse
=
orderVerifyHandle
.
mallOrderRejectVerify
(
orderBean
,
request
);
verifyResponse
=
orderVerifyHandle
.
mallOrderRejectVerify
(
orderBean
,
request
);
}
else
{
}
else
{
if
(!
macCafePartnerId
.
equals
(
orderBean
.
getCompanyId
()))
{
if
(!
macCafePartnerId
.
equals
(
orderBean
.
getCompanyId
()))
{
verifyResponse
=
orderVerifyHandle
.
orderRejectVerify
(
orderBean
,
request
);
verifyResponse
=
orderVerifyHandle
.
orderRejectVerify
(
orderBean
,
request
);
}
else
{
}
else
{
...
@@ -153,14 +157,15 @@ public class OrderManagerAdapter {
...
@@ -153,14 +157,15 @@ public class OrderManagerAdapter {
}
}
}
}
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
).
orderReject
(
request
,
orderBean
);
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderReject
(
request
,
orderBean
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
}
}
/**
/**
* 同意退款
* 同意退款
*
* @param request
* @param request
* @return
* @return
*/
*/
...
@@ -172,16 +177,16 @@ public class OrderManagerAdapter {
...
@@ -172,16 +177,16 @@ public class OrderManagerAdapter {
}
}
//订单接单参数校验
//订单接单参数校验
BaseResponse
verifyResponse
;
BaseResponse
verifyResponse
;
if
(
BizTypeEnum
.
MALL
.
getBizType
()==
orderBean
.
getBizType
())
{
if
(
BizTypeEnum
.
MALL
.
getBizType
()
==
orderBean
.
getBizType
())
{
verifyResponse
=
orderVerifyHandle
.
mallOrderAgreeRefund
(
orderBean
,
request
);
verifyResponse
=
orderVerifyHandle
.
mallOrderAgreeRefund
(
orderBean
,
request
);
}
else
{
}
else
{
verifyResponse
=
orderVerifyHandle
.
orderAgreeRefund
(
orderBean
,
request
);
verifyResponse
=
orderVerifyHandle
.
orderAgreeRefund
(
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
);
}
}
/**
/**
...
@@ -193,22 +198,23 @@ public class OrderManagerAdapter {
...
@@ -193,22 +198,23 @@ public class OrderManagerAdapter {
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
);
}
}
}
}
/**
/**
* 拒绝退款
* 拒绝退款
*
* @param request
* @param request
* @return
* @return
*/
*/
...
@@ -220,22 +226,23 @@ public class OrderManagerAdapter {
...
@@ -220,22 +226,23 @@ public class OrderManagerAdapter {
}
}
//订单接单参数校验
//订单接单参数校验
BaseResponse
verifyResponse
;
BaseResponse
verifyResponse
;
if
(
BizTypeEnum
.
MALL
.
getBizType
()==
orderBean
.
getBizType
())
{
if
(
BizTypeEnum
.
MALL
.
getBizType
()
==
orderBean
.
getBizType
())
{
verifyResponse
=
orderVerifyHandle
.
mallOrderRejectRefund
(
orderBean
,
request
);
verifyResponse
=
orderVerifyHandle
.
mallOrderRejectRefund
(
orderBean
,
request
);
}
else
{
}
else
{
verifyResponse
=
orderVerifyHandle
.
orderRejectRefund
(
orderBean
,
request
);
verifyResponse
=
orderVerifyHandle
.
orderRejectRefund
(
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
);
}
}
/**
/**
* 取消订单
* 取消订单
*
* @param request
* @param request
* @return
* @return
*/
*/
...
@@ -246,11 +253,12 @@ public class OrderManagerAdapter {
...
@@ -246,11 +253,12 @@ public class OrderManagerAdapter {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
}
}
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
);
}
}
/**
/**
* 拒绝退款
* 拒绝退款
*
* @param request
* @param request
* @return
* @return
*/
*/
...
@@ -263,20 +271,20 @@ public class OrderManagerAdapter {
...
@@ -263,20 +271,20 @@ public class OrderManagerAdapter {
//订单接单参数校验
//订单接单参数校验
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
)
{
if
(
orderBean
==
null
)
{
if
(
orderBean
==
null
)
{
return
result
;
return
result
;
}
}
RefundStatusV1
refundStatus
=
CollectionUtils
.
isNotEmpty
(
orderBean
.
getRefundList
())
?
RefundStatusV1
.
getRefundStatusByCodeV1
(
orderBean
.
getRefundList
().
get
(
0
).
getStatus
())
:
null
;
RefundStatusV1
refundStatus
=
CollectionUtils
.
isNotEmpty
(
orderBean
.
getRefundList
())
?
RefundStatusV1
.
getRefundStatusByCodeV1
(
orderBean
.
getRefundList
().
get
(
0
).
getStatus
())
:
null
;
OrderStatusV1
orderStatus
=
OrderStatusV1
.
getByCode
(
orderBean
.
getStatus
());
OrderStatusV1
orderStatus
=
OrderStatusV1
.
getByCode
(
orderBean
.
getStatus
());
if
(
ObjectUtils
.
equals
(
ResponseResult
.
SUCCESS
.
getCode
(),
result
.
getCode
()))
{
if
(
ObjectUtils
.
equals
(
ResponseResult
.
SUCCESS
.
getCode
(),
result
.
getCode
()))
{
OperateType
byOpType
=
OperateType
.
getByOpType
(
request
.
getOperateType
());
OperateType
byOpType
=
OperateType
.
getByOpType
(
request
.
getOperateType
());
if
(
byOpType
!=
null
)
{
if
(
byOpType
!=
null
)
{
switch
(
byOpType
)
{
switch
(
byOpType
)
{
...
@@ -303,14 +311,15 @@ public class OrderManagerAdapter {
...
@@ -303,14 +311,15 @@ public class OrderManagerAdapter {
default
:
default
:
}
}
}
}
return
ResponseUtil
.
success
(
new
OrderManagerResponse
(
orderStatus
,
refundStatus
));
return
ResponseUtil
.
success
(
new
OrderManagerResponse
(
orderStatus
,
refundStatus
));
}
}
result
.
setResult
(
new
OrderManagerResponse
(
orderStatus
,
refundStatus
));
result
.
setResult
(
new
OrderManagerResponse
(
orderStatus
,
refundStatus
));
return
result
;
return
result
;
}
}
/**
/**
* 创建配送单
* 创建配送单
*
* @param request
* @param request
* @return
* @return
*/
*/
...
@@ -326,10 +335,10 @@ public class OrderManagerAdapter {
...
@@ -326,10 +335,10 @@ public class OrderManagerAdapter {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
}
}
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderCreateDelivery
(
request
,
orderBean
);
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderCreateDelivery
(
request
,
orderBean
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
}
}
private
BaseResponse
<
OrderBeanV1
>
getOrderBean
(
String
orderId
){
private
BaseResponse
<
OrderBeanV1
>
getOrderBean
(
String
orderId
)
{
//查询订单
//查询订单
OrderBeanV1
orderBean
=
orderBaseService
.
getByOrderCode
(
orderId
);
OrderBeanV1
orderBean
=
orderBaseService
.
getByOrderCode
(
orderId
);
// 防止NPE
// 防止NPE
...
@@ -341,6 +350,7 @@ public class OrderManagerAdapter {
...
@@ -341,6 +350,7 @@ public class OrderManagerAdapter {
/**
/**
* 取消配送
* 取消配送
*
* @param request
* @param request
* @return
* @return
*/
*/
...
@@ -352,14 +362,14 @@ public class OrderManagerAdapter {
...
@@ -352,14 +362,14 @@ public class OrderManagerAdapter {
}
}
OrderBeanV1
orderBean
=
orderBeanResp
.
getResult
();
OrderBeanV1
orderBean
=
orderBeanResp
.
getResult
();
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderCancelDelivery
(
request
,
orderBean
);
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderCancelDelivery
(
request
,
orderBean
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
}
}
/**
/**
* @see OrderManagerAdapter#orderAgreeRefund(cn.freemud.management.entities.dto.request.order.OrderManagerRequest)
* @param request
* @param request
* @return 改操作 无需校验订单参数 直接退款
* @return 改操作 无需校验订单参数 直接退款
* 使用该方法 请先进行报备, 因为不暴露给外部使用, 不属于业务代码
* 使用该方法 请先进行报备, 因为不暴露给外部使用, 不属于业务代码
* @see OrderManagerAdapter#orderAgreeRefund(cn.freemud.management.entities.dto.request.order.OrderManagerRequest)
*/
*/
public
BaseResponse
developRefund
(
OrderManagerRequest
request
)
{
public
BaseResponse
developRefund
(
OrderManagerRequest
request
)
{
//查询订单
//查询订单
...
@@ -368,9 +378,9 @@ public class OrderManagerAdapter {
...
@@ -368,9 +378,9 @@ public class OrderManagerAdapter {
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_NOT_EXIST
);
}
}
// 设置退款金额
// 设置退款金额
orderBean
.
setAmount
(
orderVerifyHandle
.
getRefundAmount
(
orderBean
,
false
).
longValue
());
orderBean
.
setAmount
(
orderVerifyHandle
.
getRefundAmount
(
orderBean
,
false
).
longValue
());
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
);
}
}
...
...
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
6111c8d6
...
@@ -21,6 +21,7 @@ import com.freemud.application.sdk.api.log.ErrorLog;
...
@@ -21,6 +21,7 @@ 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.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.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
...
@@ -85,6 +86,32 @@ public class PaymentHandle {
...
@@ -85,6 +86,32 @@ public class PaymentHandle {
@Autowired
@Autowired
private
LogUtil
logUtil
;
private
LogUtil
logUtil
;
public
PayRefundResponse
getCommonPayRefundResponse
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
PayRefundResponse
refundResponse
;
try
{
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()
>
0
)
{
// payment/application/refund
refundResponse
=
this
.
multiRefund
(
orderBean
);
}
else
{
OrderExtendedReq
ext
=
orderBean
.
getOrderExtended
();
if
(
StringUtils
.
isNotBlank
(
ext
.
getAgentPayerId
())
&&
!
Objects
.
equals
(
ext
.
getAgentPayerId
(),
orderBean
.
getUserId
()))
{
//代付人信息不为空 并且和订单创建人不一样,表示代付单 payment/application/agentRefund
refundResponse
=
this
.
agentPayRefund
(
orderBean
);
}
else
{
//正常订单现金退款 paymentcenter/refund
refundResponse
=
this
.
refund
(
request
,
orderBean
);
}
}
}
catch
(
OrderServiceException
orderEx
)
{
// 爱马哥兼容,不抛错
ResponseResult
result
=
orderEx
.
getResult
();
refundResponse
=
new
PayRefundResponse
();
refundResponse
.
setPayRefundStatus
(
PayRefundStatus
.
COMPATIBILITY_STATUS
);
refundResponse
.
setResult
(
result
);
return
refundResponse
;
}
return
refundResponse
;
}
/**
/**
* 退款
* 退款
*
*
...
...
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
6111c8d6
...
@@ -243,25 +243,11 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -243,25 +243,11 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
//取消配送单
//取消配送单
deliveryHandle
.
cancelDelivery
(
orderBean
,
request
);
deliveryHandle
.
cancelDelivery
(
orderBean
,
request
);
//支付退款
//支付退款
PayRefundResponse
refundResponse
;
PayRefundResponse
refundResponse
=
this
.
getPayRefundResponse
(
request
,
orderBean
);
try
{
// 爱马哥报错
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()
>
0
)
{
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
COMPATIBILITY_STATUS
.
getCode
())
==
0
)
{
// payment/application/refund
return
ResponseUtil
.
error
(
refundResponse
.
getResult
());
refundResponse
=
paymentHandle
.
multiRefund
(
orderBean
);
}
else
{
OrderExtendedReq
ext
=
orderBean
.
getOrderExtended
();
if
(
StringUtils
.
isNotBlank
(
ext
.
getAgentPayerId
())
&&
!
Objects
.
equals
(
ext
.
getAgentPayerId
(),
orderBean
.
getUserId
()))
{
//代付人信息不为空 并且和订单创建人不一样,表示代付单 payment/application/agentRefund
refundResponse
=
paymentHandle
.
agentPayRefund
(
orderBean
);
}
else
{
//正常订单现金退款 paymentcenter/refund
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
}
}
}
catch
(
OrderServiceException
orderEx
)
{
// 爱马哥兼容,不抛错
return
ResponseUtil
.
error
(
orderEx
.
getResult
());
}
}
// fisherman --> 退款中的状态 阻止后续流程 等待支付回调
// fisherman --> 退款中的状态 阻止后续流程 等待支付回调
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
RUNNING
.
getCode
())
==
0
)
{
if
(
refundResponse
.
getPayRefundStatus
().
getCode
().
compareTo
(
PayRefundStatus
.
RUNNING
.
getCode
())
==
0
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
REFUND_FAIL_WAIT_CALLBACK
);
return
ResponseUtil
.
error
(
ResponseResult
.
REFUND_FAIL_WAIT_CALLBACK
);
...
@@ -278,6 +264,17 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -278,6 +264,17 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
}
}
/**
/**
* 提出 退款公共代码
*
* @param request
* @param orderBean
* @return
*/
private
PayRefundResponse
getPayRefundResponse
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
return
paymentHandle
.
getCommonPayRefundResponse
(
request
,
orderBean
);
}
/**
* 拒绝退款
* 拒绝退款
*
*
* @param request
* @param request
...
@@ -449,7 +446,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -449,7 +446,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
String
refundStatus
=
request
.
getRefundStatus
();
String
refundStatus
=
request
.
getRefundStatus
();
PayRefundStatus
payRefundStatus
=
PayRefundStatus
.
SUCCESS
;
PayRefundStatus
payRefundStatus
=
PayRefundStatus
.
SUCCESS
;
if
(!
Objects
.
equals
(
refundStatus
,
"100"
))
{
if
(!
Objects
.
equals
(
refundStatus
,
"100"
))
{
payRefundStatus
=
PayRefundStatus
.
FAIL
;
payRefundStatus
=
PayRefundStatus
.
FAIL
;
}
}
refundResponse
.
setPayRefundStatus
(
payRefundStatus
);
refundResponse
.
setPayRefundStatus
(
payRefundStatus
);
...
@@ -459,9 +456,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -459,9 +456,10 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
omRequest
.
setReason
(
reason
);
omRequest
.
setReason
(
reason
);
omRequest
.
setOperator
(
"支付退款回调系统补偿"
);
omRequest
.
setOperator
(
"支付退款回调系统补偿"
);
saasOrderHandle
.
refundAgree
(
omRequest
,
refundResponse
,
orderBean
);
saasOrderHandle
.
refundAgree
(
omRequest
,
refundResponse
,
orderBean
);
// 推送pos、微信消息中心
// 推送pos、微信消息中心 未接单前 不需要推送pos
if
(!
NewOrderStatus
.
PLACE_AN_ORDER
.
getIndex
().
equals
(
orderBean
.
getStatusV2
()))
{
orderBaseService
.
sendMessage
(
orderBean
,
ORDER_AGREE_REFUND
,
reason
);
orderBaseService
.
sendMessage
(
orderBean
,
ORDER_AGREE_REFUND
,
reason
);
}
//todo 可以考虑基于订单回调异步实现
//todo 可以考虑基于订单回调异步实现
//冲正库存
//冲正库存
stockHandle
.
revert
(
omRequest
,
orderBean
);
stockHandle
.
revert
(
omRequest
,
orderBean
);
...
...
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