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
4c7b22bd
Commit
4c7b22bd
authored
Aug 16, 2023
by
rui.zhu
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/售后单记录支付信息' into qa
parents
b7789716
75867de5
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
150 additions
and
175 deletions
+150
-175
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/MultiOrderRefundResponse.java
+10
-0
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
+2
-13
order-management/src/main/java/cn/freemud/management/adapter/OrderCancelReqAdapter.java
+98
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/RefundSuccessCallbackVo.java
+9
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/OrderRefundResponse.java
+5
-4
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/PayRefundData.java
+17
-0
order-management/src/main/java/cn/freemud/management/service/handle/DemoMain.java
+0
-98
order-management/src/main/java/cn/freemud/management/service/handle/MultiRefundService.java
+4
-14
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+3
-46
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+2
-0
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/response/order/MultiOrderRefundResponse.java
View file @
4c7b22bd
...
@@ -58,5 +58,14 @@ public class MultiOrderRefundResponse<T> {
...
@@ -58,5 +58,14 @@ public class MultiOrderRefundResponse<T> {
@ApiModelProperty
(
value
=
"业务返回消息"
)
@ApiModelProperty
(
value
=
"业务返回消息"
)
private
String
resultMsg
;
private
String
resultMsg
;
@ApiModelProperty
(
value
=
"支付方式编号"
)
private
String
payMethodCode
;
@ApiModelProperty
(
value
=
"现金类型"
)
private
String
cashType
;
@ApiModelProperty
(
value
=
"支付条码"
)
private
String
uniqueCode
;
}
}
}
}
\ No newline at end of file
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
View file @
4c7b22bd
...
@@ -27,6 +27,7 @@ import cn.freemud.enums.PaySuccessSource;
...
@@ -27,6 +27,7 @@ import cn.freemud.enums.PaySuccessSource;
import
cn.freemud.enums.ResponseResult
;
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.adapter.OrderCancelReqAdapter
;
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.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
...
@@ -1445,7 +1446,7 @@ public class PayServiceImpl {
...
@@ -1445,7 +1446,7 @@ public class PayServiceImpl {
refundResponse
.
setMsg
(
refundData
.
getResultMsg
());
refundResponse
.
setMsg
(
refundData
.
getResultMsg
());
refundResponse
.
setRefundAmount
(
refundData
.
getRefundAmount
());
refundResponse
.
setRefundAmount
(
refundData
.
getRefundAmount
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setRefundStatus
(
this
.
getRefundStatus
(
refundData
.
getResultCode
()));
refundResponse
.
setRefundStatus
(
OrderCancelReqAdapter
.
getRefundStatus
(
refundData
.
getResultCode
()));
refundResponse
.
setRefundTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setRefundTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setThirdPartRefundTradeNo
(
refundData
.
getThirdPartRefundTradeNo
());
refundResponse
.
setThirdPartRefundTradeNo
(
refundData
.
getThirdPartRefundTradeNo
());
...
@@ -1462,20 +1463,8 @@ public class PayServiceImpl {
...
@@ -1462,20 +1463,8 @@ public class PayServiceImpl {
return
ResponseUtils
.
error
(
refundNewResponse
.
getCode
(),
refundNewResponse
.
getMessage
());
return
ResponseUtils
.
error
(
refundNewResponse
.
getCode
(),
refundNewResponse
.
getMessage
());
}
}
}
public
Integer
getRefundStatus
(
Integer
resultCode
)
{
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_101_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
{
return
Objects
.
equals
(
resultCode
,
REFUND_RESPONSE_CODE
)
?
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_4
.
getCode
()
:
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_2
.
getCode
();
}
}
}
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
(
String
partnerId
,
String
storeId
,
Long
amount
)
{
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
(
String
partnerId
,
String
storeId
,
Long
amount
)
{
if
(
StringUtils
.
isBlank
(
partnerId
))
{
if
(
StringUtils
.
isBlank
(
partnerId
))
{
return
ResponseUtils
.
error
(
"501"
,
"商户号不能为空"
);
return
ResponseUtils
.
error
(
"501"
,
"商户号不能为空"
);
...
...
order-management/src/main/java/cn/freemud/management/adapter/OrderCancelReqAdapter.java
View file @
4c7b22bd
package
cn
.
freemud
.
management
.
adapter
;
package
cn
.
freemud
.
management
.
adapter
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo
;
import
cn.freemud.management.entities.dto.response.pay.OrderRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundData
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.PaymentRefundStatus
;
import
com.freemud.application.sdk.api.ordercenter.enums.CashTypeEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayMethodEnum
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
import
com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
static
cn
.
freemud
.
management
.
service
.
handle
.
PaymentHandle
.*;
/**
/**
* @author Clover.z
* @author Clover.z
...
@@ -27,4 +40,89 @@ public class OrderCancelReqAdapter {
...
@@ -27,4 +40,89 @@ public class OrderCancelReqAdapter {
return
refundItemList
;
return
refundItemList
;
}
}
public
static
PayRefundResponse
.
PayRefundItem
convert
(
OrderRefundResponse
orderRefundData
)
{
PayRefundResponse
.
PayRefundItem
refundItem
=
new
PayRefundResponse
.
PayRefundItem
();
if
(
orderRefundData
.
getCashType
()
!=
null
)
{
refundItem
.
setPayChannelType
(
Integer
.
valueOf
(
orderRefundData
.
getCashType
()));
refundItem
.
setPayChannelName
(
CashTypeEnum
.
getByCode
(
orderRefundData
.
getCashType
()).
getDesc
());
}
else
{
refundItem
.
setPayChannelType
(
PayMethodEnum
.
getByCode
(
orderRefundData
.
getPayMethodCode
()).
getIndex
());
refundItem
.
setPayChannelName
(
PayMethodEnum
.
getByCode
(
orderRefundData
.
getPayMethodCode
()).
getDesc
());
}
refundItem
.
setAmount
(
orderRefundData
.
getRefundAmount
().
intValue
());
refundItem
.
setRefundTradeNo
(
orderRefundData
.
getRefundTradeNo
());
refundItem
.
setRefundTime
(
DateUtil
.
convert2Date
(
orderRefundData
.
getRefundTime
(),
"yyyy-MM-dd HH:mm:ss"
).
getTime
());
refundItem
.
setCardCode
(
PayMethodEnum
.
TSVC
.
getCode
().
equals
(
orderRefundData
.
getPayMethodCode
())
?
orderRefundData
.
getUniqueCode
()
:
null
);
return
refundItem
;
}
public
static
List
<
PayRefundResponse
.
PayRefundItem
>
convertMultiRefundItem
(
List
<
MultiOrderRefundResponse
.
RefundPlatformResponse
>
orderRefundList
)
{
return
orderRefundList
.
stream
()
.
map
(
r
->
{
PayRefundResponse
.
PayRefundItem
refundItem
=
new
PayRefundResponse
.
PayRefundItem
();
if
(
r
.
getCashType
()
!=
null
)
{
refundItem
.
setPayChannelType
(
Integer
.
valueOf
(
r
.
getCashType
()));
refundItem
.
setPayChannelName
(
CashTypeEnum
.
getByCode
(
r
.
getCashType
()).
getDesc
());
}
else
{
refundItem
.
setPayChannelType
(
PayMethodEnum
.
getByCode
(
r
.
getPayMethodCode
()).
getIndex
());
refundItem
.
setPayChannelName
(
PayMethodEnum
.
getByCode
(
r
.
getPayMethodCode
()).
getDesc
());
}
refundItem
.
setAmount
(
r
.
getSettleRefundAmount
());
refundItem
.
setRefundTradeNo
(
r
.
getRefundTradeNo
());
refundItem
.
setRefundTime
(
DateUtil
.
convert2Date
(
r
.
getRefundTime
(),
"yyyy-MM-dd HH:mm:ss"
).
getTime
());
refundItem
.
setCardCode
(
PayMethodEnum
.
TSVC
.
getCode
().
equals
(
r
.
getPayMethodCode
())
?
r
.
getUniqueCode
()
:
null
);
return
refundItem
;
})
.
collect
(
Collectors
.
toList
());
}
public
static
List
<
PayRefundResponse
.
PayRefundItem
>
convert
(
RefundSuccessCallbackVo
request
)
{
List
<
PayRefundResponse
.
PayRefundItem
>
payRefundItemList
=
Lists
.
newArrayList
();
PayRefundResponse
.
PayRefundItem
payRefundItem
=
new
PayRefundResponse
.
PayRefundItem
();
payRefundItem
.
setRefundTradeNo
(
request
.
getRefundTradeNo
());
if
(
request
.
getCashType
()
!=
null
)
{
payRefundItem
.
setPayChannelType
(
Integer
.
valueOf
(
request
.
getCashType
()));
payRefundItem
.
setPayChannelName
(
CashTypeEnum
.
getByCode
(
request
.
getCashType
()).
getDesc
());
}
else
{
payRefundItem
.
setPayChannelType
(
PayMethodEnum
.
getByCode
(
request
.
getPayMethodCode
()).
getIndex
());
payRefundItem
.
setPayChannelName
(
PayMethodEnum
.
getByCode
(
request
.
getPayMethodCode
()).
getDesc
());
}
payRefundItem
.
setAmount
(
request
.
getRefundAmount
());
payRefundItem
.
setRefundTime
(
DateUtil
.
convert2Date
(
request
.
getRefundTime
(),
"yyyy-MM-dd HH:mm:ss"
).
getTime
());
payRefundItem
.
setCardCode
(
PayMethodEnum
.
TSVC
.
getCode
().
equals
(
request
.
getPayMethodCode
())
?
request
.
getUniqueCode
()
:
null
);
payRefundItemList
.
add
(
payRefundItem
);
return
payRefundItemList
;
}
public
static
OrderRefundResponse
convert
(
PayRefundData
refundData
)
{
OrderRefundResponse
refundResponse
=
new
OrderRefundResponse
();
refundResponse
.
setStatusCode
(
refundData
.
getResultCode
());
refundResponse
.
setMsg
(
refundData
.
getResultMsg
());
refundResponse
.
setRefundAmount
(
refundData
.
getRefundAmount
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setRefundStatus
(
getRefundStatus
(
refundData
.
getResultCode
()));
refundResponse
.
setRefundTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setThirdPartRefundTradeNo
(
refundData
.
getThirdPartRefundTradeNo
());
refundResponse
.
setThirdPartTradeNo
(
refundData
.
getThirdPartTradeNo
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setCashType
(
refundData
.
getCashType
());
refundResponse
.
setPayMethodCode
(
refundData
.
getPayMethodCode
());
refundResponse
.
setUniqueCode
(
refundData
.
getUniqueCode
());
refundResponse
.
setRefundTime
(
refundData
.
getRefundTime
());
return
refundResponse
;
}
public
static
Integer
getRefundStatus
(
Integer
resultCode
)
{
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_101_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
{
return
Objects
.
equals
(
resultCode
,
REFUND_RESPONSE_CODE
)
?
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_4
.
getCode
()
:
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_2
.
getCode
();
}
}
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/RefundSuccessCallbackVo.java
View file @
4c7b22bd
...
@@ -72,4 +72,13 @@ public class RefundSuccessCallbackVo {
...
@@ -72,4 +72,13 @@ public class RefundSuccessCallbackVo {
@ApiModelProperty
(
value
=
"间联退款单号"
)
@ApiModelProperty
(
value
=
"间联退款单号"
)
private
String
refundEndTransId
;
private
String
refundEndTransId
;
@ApiModelProperty
(
value
=
"支付方式编号"
,
position
=
10
)
private
String
payMethodCode
;
@ApiModelProperty
(
value
=
"现金类型"
,
position
=
11
)
private
String
cashType
;
@ApiModelProperty
(
value
=
"支付条码"
,
position
=
12
)
private
String
uniqueCode
;
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/OrderRefundResponse.java
View file @
4c7b22bd
...
@@ -19,10 +19,6 @@ public class OrderRefundResponse {
...
@@ -19,10 +19,6 @@ public class OrderRefundResponse {
* 退款成功时间
* 退款成功时间
*/
*/
private
String
refundTime
;
private
String
refundTime
;
/**
* 支付渠道编号
*/
private
String
payCode
;
/**
/**
* 支付方式
* 支付方式
...
@@ -36,4 +32,9 @@ public class OrderRefundResponse {
...
@@ -36,4 +32,9 @@ public class OrderRefundResponse {
*/
*/
private
String
cashType
;
private
String
cashType
;
/**
* 支付条码, 当支付方式为储值卡的时候,该字段为卡号
*/
private
String
uniqueCode
;
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/PayRefundData.java
View file @
4c7b22bd
...
@@ -25,4 +25,21 @@ public class PayRefundData {
...
@@ -25,4 +25,21 @@ public class PayRefundData {
* 支付渠道编号
* 支付渠道编号
*/
*/
private
String
payCode
;
private
String
payCode
;
/**
* 支付方式
* {@link com.freemud.application.sdk.api.ordercenter.enums.PayMethodEnum}
*/
private
String
payMethodCode
;
/**
* 现金类型, 当payMethodCode为其他的时候,存在该值
* {@link com.freemud.application.sdk.api.ordercenter.enums.CashTypeEnum}
*/
private
String
cashType
;
/**
* 支付条码, 当支付方式为储值卡的时候,该字段为卡号
*/
private
String
uniqueCode
;
}
}
order-management/src/main/java/cn/freemud/management/service/handle/DemoMain.java
deleted
100644 → 0
View file @
b7789716
package
cn
.
freemud
.
management
.
service
.
handle
;
import
cn.freemud.management.entities.dto.response.pay.OrderRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundData
;
import
cn.freemud.management.enums.PaymentRefundStatus
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.util.ResponseUtils
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
org.apache.commons.lang.ObjectUtils
;
import
java.util.Objects
;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/6/13 10:56
* @description :
*/
public
class
DemoMain
{
public
static
void
main
(
String
[]
args
)
{
String
str
=
"{\n"
+
" \"code\": \"100\",\n"
+
" \"data\": {\n"
+
" \"resultCode\": 82004005,\n"
+
" \"resultMsg\": \"当前订单有退款记录没有完成\"\n"
+
" },\n"
+
" \"message\": \"success\"\n"
+
"}"
;
BaseResponse
<
PayRefundData
>
refundNewResponse
=
JSON
.
parseObject
(
str
,
new
TypeReference
<
BaseResponse
<
PayRefundData
>>()
{
});
if
(
Objects
.
equals
(
refundNewResponse
.
getCode
(),
"100"
)
&&
refundNewResponse
.
getData
()
!=
null
)
{
refundNewResponse
.
setCode
(
refundNewResponse
.
getData
().
getResultCode
().
toString
());
refundNewResponse
.
setMessage
(
refundNewResponse
.
getData
().
getResultMsg
());
}
if
(
Objects
.
equals
(
refundNewResponse
.
getCode
(),
"100"
))
{
PayRefundData
refundData
=
refundNewResponse
.
getData
();
if
(
null
!=
refundData
)
{
OrderRefundResponse
refundResponse
=
new
OrderRefundResponse
();
refundResponse
.
setStatusCode
(
refundData
.
getResultCode
());
refundResponse
.
setMsg
(
refundData
.
getResultMsg
());
refundResponse
.
setRefundAmount
(
refundData
.
getRefundAmount
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setRefundStatus
(
getRefundStatus
(
refundData
.
getResultCode
()));
refundResponse
.
setRefundTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setThirdPartRefundTradeNo
(
refundData
.
getThirdPartRefundTradeNo
());
refundResponse
.
setThirdPartTradeNo
(
refundData
.
getThirdPartTradeNo
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
// return ResponseUtils.success(refundResponse);
}
}
BaseResponse
<
OrderRefundResponse
>
orderRefundResponse
=
ResponseUtils
.
error
(
refundNewResponse
.
getCode
(),
refundNewResponse
.
getMessage
());
// Integer refundStatus = PayRefundStatus.SUCCESS;
Integer
refundStatus
=
1
;
if
(
orderRefundResponse
==
null
)
{
// refundStatus = PayRefundStatus.RUNNING;
refundStatus
=
4
;
}
else
{
refundStatus
=
getFinalRefundStatus
(
Integer
.
valueOf
(
orderRefundResponse
.
getCode
()));
}
System
.
out
.
println
(
refundStatus
);
}
private
static
Integer
getFinalRefundStatus
(
Integer
resultCode
)
{
switch
(
resultCode
)
{
// 退款中状态码需要单独处理
case
8200305
:
// return PayRefundStatus.RUNNING;
return
4
;
// 退款成功
case
100
:
// return PayRefundStatus.SUCCESS;
return
1
;
default
:
// return PayRefundStatus.FAIL;
return
2
;
}
}
private
static
final
String
SUCCESS
=
"100"
;
public
static
final
Integer
SUCCESS_RESPONSE_CODE_INT
=
100
;
public
static
final
Integer
SUCCESS_RESPONSE_101_CODE_INT
=
101
;
public
static
final
Integer
REFUND_RESPONSE_CODE
=
8200305
;
public
static
Integer
getRefundStatus
(
Integer
resultCode
)
{
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_101_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
{
return
Objects
.
equals
(
resultCode
,
REFUND_RESPONSE_CODE
)
?
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_4
.
getCode
()
:
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_2
.
getCode
();
}
}
}
order-management/src/main/java/cn/freemud/management/service/handle/MultiRefundService.java
View file @
4c7b22bd
package
cn
.
freemud
.
management
.
service
.
handle
;
package
cn
.
freemud
.
management
.
service
.
handle
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.management.adapter.OrderCancelReqAdapter
;
import
cn.freemud.management.adapter.PaymentSdkAdapter
;
import
cn.freemud.management.adapter.PaymentSdkAdapter
;
import
cn.freemud.management.entities.dto.request.pay.AgentPayRefundReq
;
import
cn.freemud.management.entities.dto.request.pay.AgentPayRefundReq
;
import
cn.freemud.management.entities.dto.response.pay.AgentPayRefundResp
;
import
cn.freemud.management.entities.dto.response.pay.AgentPayRefundResp
;
...
@@ -8,7 +9,9 @@ import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
...
@@ -8,7 +9,9 @@ import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import
cn.freemud.management.thirdparty.MulitiPaymentClient
;
import
cn.freemud.management.thirdparty.MulitiPaymentClient
;
import
cn.freemud.management.util.RedisUtil
;
import
cn.freemud.management.util.RedisUtil
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
com.freemud.application.sdk.api.ordercenter.enums.CashTypeEnum
;
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.PayMethodEnum
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
...
@@ -111,20 +114,7 @@ public class MultiRefundService {
...
@@ -111,20 +114,7 @@ public class MultiRefundService {
PayRefundResponse
payRefundResponse
=
handlePayRefundResponse
(
refundStatus
,
req
.
getRefundTradeNo
());
PayRefundResponse
payRefundResponse
=
handlePayRefundResponse
(
refundStatus
,
req
.
getRefundTradeNo
());
if
(
PayRefundStatus
.
SUCCESS
.
equals
(
refundStatus
))
{
if
(
PayRefundStatus
.
SUCCESS
.
equals
(
refundStatus
))
{
List
<
PayRefundResponse
.
PayRefundItem
>
payRefundItemList
=
resp
.
getData
().
getRefundPlatformResponseList
().
stream
()
payRefundResponse
.
setPayRefundItemList
(
OrderCancelReqAdapter
.
convertMultiRefundItem
(
resp
.
getData
().
getRefundPlatformResponseList
()));
.
map
(
r
->
{
PayRefundResponse
.
PayRefundItem
refundItem
=
new
PayRefundResponse
.
PayRefundItem
();
refundItem
.
setPayChannelType
(
Integer
.
valueOf
(
PayChannelType
.
getByEbcode
(
r
.
getEbcode
()).
getIndex
()));
refundItem
.
setPayChannelName
(
PayChannelType
.
getByEbcode
(
r
.
getEbcode
()).
getName
());
refundItem
.
setAmount
(
r
.
getSettleRefundAmount
());
refundItem
.
setRefundTradeNo
(
r
.
getRefundTradeNo
());
refundItem
.
setRefundTime
(
DateUtil
.
convert2Date
(
r
.
getRefundTime
(),
"yyyy-MM-dd HH:mm:ss"
).
getTime
());
//TODO 混合支付储值卡卡号 这里需要跟支付对接,下游设计中
// refundItem.setCardCode("?");
return
refundItem
;
})
.
collect
(
Collectors
.
toList
());
payRefundResponse
.
setPayRefundItemList
(
payRefundItemList
);
}
}
if
(
StringUtils
.
isNotEmpty
(
message
))
{
if
(
StringUtils
.
isNotEmpty
(
message
))
{
payRefundResponse
.
setMessage
(
message
);
payRefundResponse
.
setMessage
(
message
);
...
...
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
4c7b22bd
package
cn
.
freemud
.
management
.
service
.
handle
;
package
cn
.
freemud
.
management
.
service
.
handle
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.management.adapter.OrderCancelReqAdapter
;
import
cn.freemud.management.adapter.PaymentSdkAdapter
;
import
cn.freemud.management.adapter.PaymentSdkAdapter
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
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
;
...
@@ -201,19 +202,7 @@ public class PaymentHandle {
...
@@ -201,19 +202,7 @@ public class PaymentHandle {
}
else
{
}
else
{
refundStatus
=
this
.
getFinalRefundStatus
(
Integer
.
valueOf
(
orderRefundResponse
.
getCode
()));
refundStatus
=
this
.
getFinalRefundStatus
(
Integer
.
valueOf
(
orderRefundResponse
.
getCode
()));
message
=
orderRefundResponse
.
getMessage
();
message
=
orderRefundResponse
.
getMessage
();
OrderRefundResponse
data
=
orderRefundResponse
.
getData
();
refundItemList
.
add
(
OrderCancelReqAdapter
.
convert
(
orderRefundResponse
.
getData
()));
PayRefundResponse
.
PayRefundItem
refundItem
=
new
PayRefundResponse
.
PayRefundItem
();
if
(
data
.
getCashType
()
!=
null
)
{
refundItem
.
setPayChannelType
(
Integer
.
valueOf
(
data
.
getCashType
()));
refundItem
.
setPayChannelName
(
CashTypeEnum
.
getByCode
(
data
.
getCashType
()).
getDesc
());
}
else
{
refundItem
.
setPayChannelType
(
PayMethodEnum
.
getByCode
(
data
.
getPayMethodCode
()).
getIndex
());
refundItem
.
setPayChannelName
(
PayMethodEnum
.
getByCode
(
data
.
getPayMethodCode
()).
getDesc
());
}
refundItem
.
setAmount
(
data
.
getRefundAmount
().
intValue
());
refundItem
.
setRefundTradeNo
(
data
.
getRefundTradeNo
());
refundItem
.
setRefundTime
(
DateUtil
.
convert2Date
(
data
.
getRefundTime
(),
"yyyy-MM-dd HH:mm:ss"
).
getTime
());
refundItemList
.
add
(
refundItem
);
}
}
PayRefundResponse
payRefundResponse
=
handlePayRefundResponse
(
refundStatus
,
refundReq
.
getRefundId
());
PayRefundResponse
payRefundResponse
=
handlePayRefundResponse
(
refundStatus
,
refundReq
.
getRefundId
());
payRefundResponse
.
setPayRefundItemList
(
refundItemList
);
payRefundResponse
.
setPayRefundItemList
(
refundItemList
);
...
@@ -223,13 +212,6 @@ public class PaymentHandle {
...
@@ -223,13 +212,6 @@ public class PaymentHandle {
return
payRefundResponse
;
return
payRefundResponse
;
}
}
/**
* 代付订单退款
*
*/
private
PayRefundStatus
getFinalRefundStatus
(
Integer
resultCode
)
{
private
PayRefundStatus
getFinalRefundStatus
(
Integer
resultCode
)
{
return
PayRefundStatus
.
getByPayResultCode
(
resultCode
);
return
PayRefundStatus
.
getByPayResultCode
(
resultCode
);
}
}
...
@@ -421,20 +403,7 @@ public class PaymentHandle {
...
@@ -421,20 +403,7 @@ public class PaymentHandle {
if
(
Objects
.
equals
(
refundNewResponse
.
getCode
(),
"100"
))
{
if
(
Objects
.
equals
(
refundNewResponse
.
getCode
(),
"100"
))
{
PayRefundData
refundData
=
refundNewResponse
.
getData
();
PayRefundData
refundData
=
refundNewResponse
.
getData
();
if
(
null
!=
refundData
)
{
if
(
null
!=
refundData
)
{
OrderRefundResponse
refundResponse
=
new
OrderRefundResponse
();
return
ResponseUtils
.
success
(
OrderCancelReqAdapter
.
convert
(
refundData
));
refundResponse
.
setStatusCode
(
refundData
.
getResultCode
());
refundResponse
.
setMsg
(
refundData
.
getResultMsg
());
refundResponse
.
setRefundAmount
(
refundData
.
getRefundAmount
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setRefundStatus
(
this
.
getRefundStatus
(
refundData
.
getResultCode
()));
refundResponse
.
setRefundTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setTradeNo
(
refundData
.
getRefundTradeNo
());
refundResponse
.
setThirdPartRefundTradeNo
(
refundData
.
getThirdPartRefundTradeNo
());
refundResponse
.
setThirdPartTradeNo
(
refundData
.
getThirdPartTradeNo
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setPayCode
(
refundData
.
getPayCode
());
refundResponse
.
setRefundTime
(
refundData
.
getRefundTime
());
return
ResponseUtils
.
success
(
refundResponse
);
}
}
}
}
return
ResponseUtils
.
error
(
refundNewResponse
.
getCode
(),
refundNewResponse
.
getMessage
());
return
ResponseUtils
.
error
(
refundNewResponse
.
getCode
(),
refundNewResponse
.
getMessage
());
...
@@ -452,16 +421,4 @@ public class PaymentHandle {
...
@@ -452,16 +421,4 @@ public class PaymentHandle {
return
ResponseUtils
.
success
();
return
ResponseUtils
.
success
();
}
}
}
}
private
Integer
getRefundStatus
(
Integer
resultCode
)
{
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
if
(
Objects
.
equals
(
resultCode
,
SUCCESS_RESPONSE_101_CODE_INT
))
{
return
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_1
.
getCode
();
}
else
{
return
Objects
.
equals
(
resultCode
,
REFUND_RESPONSE_CODE
)
?
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_4
.
getCode
()
:
PaymentRefundStatus
.
PAYMENT_REFUND_STATUS_2
.
getCode
();
}
}
}
}
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
4c7b22bd
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.management.adapter.OrderCancelReqAdapter
;
import
cn.freemud.management.constant.ResponseCodeConstant
;
import
cn.freemud.management.constant.ResponseCodeConstant
;
import
cn.freemud.management.entities.dto.request.console.*
;
import
cn.freemud.management.entities.dto.request.console.*
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
...
@@ -510,6 +511,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -510,6 +511,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
}
}
refundResponse
.
setPayRefundStatus
(
payRefundStatus
);
refundResponse
.
setPayRefundStatus
(
payRefundStatus
);
refundResponse
.
setRefundId
(
request
.
getRefundId
());
refundResponse
.
setRefundId
(
request
.
getRefundId
());
refundResponse
.
setPayRefundItemList
(
OrderCancelReqAdapter
.
convert
(
request
));
OrderManagerRequest
omRequest
=
new
OrderManagerRequest
();
OrderManagerRequest
omRequest
=
new
OrderManagerRequest
();
omRequest
.
setReason
(
reason
);
omRequest
.
setReason
(
reason
);
...
...
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