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
b41d1ccc
Commit
b41d1ccc
authored
Aug 07, 2023
by
查志伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单售后单退款记录退款信息
parent
179cedad
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
249 additions
and
9 deletions
+249
-9
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/BaseQueryOrderRequest.java
+7
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
+2
-0
order-application-service/src/main/java/cn/freemud/entities/vo/RefundNotifyCallbackRequestVo.java
+15
-0
order-application-service/src/main/java/cn/freemud/service/RefundService.java
+12
-0
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
+10
-0
order-management/src/main/java/cn/freemud/management/adapter/OrderCancelReqAdapter.java
+30
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/OrderRefundResponse.java
+8
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/PayRefundData.java
+11
-1
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/PayRefundResponse.java
+36
-0
order-management/src/main/java/cn/freemud/management/service/handle/MultiRefundService.java
+31
-4
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+15
-4
order-management/src/main/java/cn/freemud/management/service/handle/SaasOrderHandle.java
+3
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/AfterSalesOperateReq.java
+35
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderCancelReq.java
+34
-0
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/BaseQueryOrderRequest.java
View file @
b41d1ccc
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
request
.
order
;
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
request
.
order
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
import
com.freemud.sdk.api.assortment.order.config.BaseConfig
;
import
com.freemud.sdk.api.assortment.order.config.BaseConfig
;
import
lombok.Data
;
import
lombok.Data
;
...
@@ -94,4 +95,10 @@ public class BaseQueryOrderRequest extends BaseConfig {
...
@@ -94,4 +95,10 @@ public class BaseQueryOrderRequest extends BaseConfig {
* 1是服务端自动接单
* 1是服务端自动接单
*/
*/
private
Integer
acceptMode
;
private
Integer
acceptMode
;
/**
* 对退款明细的记录
*/
private
List
<
OrderCancelReq
.
PayRefundItem
>
payRefundItemList
;
}
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
View file @
b41d1ccc
...
@@ -1124,6 +1124,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
...
@@ -1124,6 +1124,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request
.
setOperator
(
baseQueryOrderRequest
.
getOperator
());
request
.
setOperator
(
baseQueryOrderRequest
.
getOperator
());
request
.
setOperationClient
(
baseQueryOrderRequest
.
getOperationClient
());
request
.
setOperationClient
(
baseQueryOrderRequest
.
getOperationClient
());
request
.
setRefundState
(
baseQueryOrderRequest
.
getRefundState
());
request
.
setRefundState
(
baseQueryOrderRequest
.
getRefundState
());
request
.
setPayRefundItemList
(
baseQueryOrderRequest
.
getPayRefundItemList
());
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
OrderBaseResp
response
=
orderSdkService
.
adultApproveWithRefundComplete
(
request
,
baseQueryOrderRequest
.
getTrackingNo
());
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
OrderBaseResp
response
=
orderSdkService
.
adultApproveWithRefundComplete
(
request
,
baseQueryOrderRequest
.
getTrackingNo
());
return
orderSdkAdapter
.
convent2BaseOrderResponse
(
response
);
return
orderSdkAdapter
.
convent2BaseOrderResponse
(
response
);
}
}
...
@@ -1139,6 +1140,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
...
@@ -1139,6 +1140,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request
.
setAfterSerialNo
(
baseQueryOrderRequest
.
getRefundSerialNo
());
request
.
setAfterSerialNo
(
baseQueryOrderRequest
.
getRefundSerialNo
());
request
.
setOperationClient
(
baseQueryOrderRequest
.
getOperationClient
());
request
.
setOperationClient
(
baseQueryOrderRequest
.
getOperationClient
());
request
.
setRefundState
(
baseQueryOrderRequest
.
getRefundState
());
request
.
setRefundState
(
baseQueryOrderRequest
.
getRefundState
());
request
.
setPayRefundItemList
(
baseQueryOrderRequest
.
getPayRefundItemList
());
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
OrderBaseResp
response
=
orderSdkService
.
adultWithRefundComplete
(
request
,
baseQueryOrderRequest
.
getTrackingNo
());
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
OrderBaseResp
response
=
orderSdkService
.
adultWithRefundComplete
(
request
,
baseQueryOrderRequest
.
getTrackingNo
());
return
orderSdkAdapter
.
convent2BaseOrderResponse
(
response
);
return
orderSdkAdapter
.
convent2BaseOrderResponse
(
response
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/entities/vo/RefundNotifyCallbackRequestVo.java
View file @
b41d1ccc
...
@@ -49,4 +49,19 @@ public class RefundNotifyCallbackRequestVo {
...
@@ -49,4 +49,19 @@ public class RefundNotifyCallbackRequestVo {
* 退款流水号
* 退款流水号
*/
*/
private
String
refundId
;
private
String
refundId
;
/**
* 退款发起时间
*/
private
String
businessDate
;
/**
* 支付渠道编号
*/
private
String
payCode
;
/**
* 退款时间 格式:yyyyMMddHHmmss
*/
private
String
refundTime
;
}
}
order-application-service/src/main/java/cn/freemud/service/RefundService.java
View file @
b41d1ccc
...
@@ -27,6 +27,7 @@ import cn.freemud.service.store.StoreManager;
...
@@ -27,6 +27,7 @@ import cn.freemud.service.store.StoreManager;
import
cn.freemud.service.thirdparty.DeliveryFeiginClient
;
import
cn.freemud.service.thirdparty.DeliveryFeiginClient
;
import
cn.freemud.service.thirdparty.EcologyAdminApplicationClient
;
import
cn.freemud.service.thirdparty.EcologyAdminApplicationClient
;
import
cn.freemud.service.thirdparty.FMAssistantCloudPrintClient
;
import
cn.freemud.service.thirdparty.FMAssistantCloudPrintClient
;
import
cn.freemud.utils.BeanUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentCloudPrinter
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentCloudPrinter
;
import
com.freemud.api.assortment.datamanager.manager.AssortmentCloudPrinterManager
;
import
com.freemud.api.assortment.datamanager.manager.AssortmentCloudPrinterManager
;
...
@@ -51,6 +52,7 @@ import lombok.RequiredArgsConstructor;
...
@@ -51,6 +52,7 @@ import lombok.RequiredArgsConstructor;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
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.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
...
@@ -281,9 +283,17 @@ public class RefundService {
...
@@ -281,9 +283,17 @@ public class RefundService {
*/
*/
private
void
refundOrder
(
OrderInfoReqs
order
,
String
reason
,
String
remark
,
Boolean
isRefundDeliveryFee
,
Byte
refundMode
)
{
private
void
refundOrder
(
OrderInfoReqs
order
,
String
reason
,
String
remark
,
Boolean
isRefundDeliveryFee
,
Byte
refundMode
)
{
int
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
int
state
=
PayRefundStatus
.
SUCCESS
.
getCode
();
List
<
OrderCancelReq
.
PayRefundItem
>
refundItemList
=
new
ArrayList
<>();
if
(
order
.
getSettlementAmount
().
longValue
()
>
0
)
{
if
(
order
.
getSettlementAmount
().
longValue
()
>
0
)
{
PayRefundResponse
refundResponse
=
paymentHandle
.
getCommonPayRefundResponse
(
order
,
reason
);
PayRefundResponse
refundResponse
=
paymentHandle
.
getCommonPayRefundResponse
(
order
,
reason
);
state
=
refundResponse
.
getPayRefundStatus
().
getCode
();
state
=
refundResponse
.
getPayRefundStatus
().
getCode
();
if
(
CollectionUtils
.
isNotEmpty
(
refundResponse
.
getPayRefundItemList
()))
{
refundResponse
.
getPayRefundItemList
().
forEach
(
item
->
{
OrderCancelReq
.
PayRefundItem
refundItem
=
new
OrderCancelReq
.
PayRefundItem
();
BeanUtils
.
copyProperties
(
item
,
refundItem
);
refundItemList
.
add
(
refundItem
);
});
}
}
}
OrderCancelReq
req
=
OrderCancelReqAdapter
.
convert
(
order
,
UUID
.
randomUUID
().
toString
(),
OrderCancelReq
req
=
OrderCancelReqAdapter
.
convert
(
order
,
UUID
.
randomUUID
().
toString
(),
...
@@ -292,6 +302,8 @@ public class RefundService {
...
@@ -292,6 +302,8 @@ public class RefundService {
if
(
Objects
.
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
(),
state
))
{
if
(
Objects
.
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
(),
state
))
{
//退款成功
//退款成功
req
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
req
.
setCreateEvent
(
AfterSalesOrderCreateEventEnum
.
REFUND_COMPLETE
.
getCreateEvent
());
// 设置退款信息
req
.
setPayRefundItemList
(
refundItemList
);
}
else
if
(
Objects
.
equals
(
PayRefundStatus
.
RUNNING
.
getCode
(),
state
))
{
}
else
if
(
Objects
.
equals
(
PayRefundStatus
.
RUNNING
.
getCode
(),
state
))
{
req
.
setCreateEvent
(
null
);
req
.
setCreateEvent
(
null
);
req
.
setRefundState
(
AfterSalesRefunStateEnum
.
STATE_2
.
getIndex
());
req
.
setRefundState
(
AfterSalesRefunStateEnum
.
STATE_2
.
getIndex
());
...
...
order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
View file @
b41d1ccc
...
@@ -55,6 +55,7 @@ import cn.freemud.enums.*;
...
@@ -55,6 +55,7 @@ import cn.freemud.enums.*;
import
cn.freemud.handler.MemberBlacklistHandler
;
import
cn.freemud.handler.MemberBlacklistHandler
;
import
cn.freemud.handler.WeChatLiveMsgHandle
;
import
cn.freemud.handler.WeChatLiveMsgHandle
;
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
;
...
@@ -620,6 +621,15 @@ public class OrderServiceImpl implements Orderservice {
...
@@ -620,6 +621,15 @@ public class OrderServiceImpl implements Orderservice {
request
.
setTrackingNo
(
trackingNo
);
request
.
setTrackingNo
(
trackingNo
);
request
.
setOperationClient
(
OperationClientEnum
.
STATE_6
.
getIndex
());
request
.
setOperationClient
(
OperationClientEnum
.
STATE_6
.
getIndex
());
request
.
setRefundState
(
AfterSalesRefunStateEnum
.
STATE_4
.
getIndex
());
request
.
setRefundState
(
AfterSalesRefunStateEnum
.
STATE_4
.
getIndex
());
List
<
OrderCancelReq
.
PayRefundItem
>
refundItemList
=
new
ArrayList
<>();
OrderCancelReq
.
PayRefundItem
refundItem
=
new
OrderCancelReq
.
PayRefundItem
();
refundItem
.
setPayChannelType
(
Integer
.
valueOf
(
PayChannelType
.
getByEbcode
(
requestVo
.
getPayCode
()).
getIndex
()));
refundItem
.
setPayChannelName
(
PayChannelType
.
getByEbcode
(
requestVo
.
getPayCode
()).
getName
());
refundItem
.
setAmount
(
requestVo
.
getRefundAmount
());
refundItem
.
setRefundTradeNo
(
requestVo
.
getRefundTradeNo
());
refundItem
.
setRefundDate
(
DateUtil
.
convert2Date
(
requestVo
.
getRefundTime
(),
"yyyyMMddHHmmss"
).
getTime
());
refundItemList
.
add
(
refundItem
);
request
.
setPayRefundItemList
(
refundItemList
);
BaseOrderResponse
response
=
orderCenterSdkService
.
orderRefundComplete
(
request
);
BaseOrderResponse
response
=
orderCenterSdkService
.
orderRefundComplete
(
request
);
if
(
response
==
null
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
response
.
getErrcode
()))
{
if
(
response
==
null
||
!
Objects
.
equals
(
ResponseCodeConstant
.
RESPONSE_SUCCESS
,
response
.
getErrcode
()))
{
return
refundFaileMessage
(
"orderRefundComplete fail"
+
response
);
return
refundFaileMessage
(
"orderRefundComplete fail"
+
response
);
...
...
order-management/src/main/java/cn/freemud/management/adapter/OrderCancelReqAdapter.java
0 → 100644
View file @
b41d1ccc
package
cn
.
freemud
.
management
.
adapter
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
public
class
OrderCancelReqAdapter
{
public
static
List
<
OrderCancelReq
.
PayRefundItem
>
convert
(
List
<
PayRefundResponse
.
PayRefundItem
>
list
)
{
List
<
OrderCancelReq
.
PayRefundItem
>
refundItemList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
list
))
{
list
.
forEach
(
item
->
{
OrderCancelReq
.
PayRefundItem
refundItem
=
new
OrderCancelReq
.
PayRefundItem
();
BeanUtils
.
copyProperties
(
item
,
refundItem
);
refundItemList
.
add
(
refundItem
);
});
}
return
refundItemList
;
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/OrderRefundResponse.java
View file @
b41d1ccc
...
@@ -14,5 +14,13 @@ public class OrderRefundResponse {
...
@@ -14,5 +14,13 @@ public class OrderRefundResponse {
private
Long
refundAmount
;
private
Long
refundAmount
;
private
Long
totalAmount
;
private
Long
totalAmount
;
private
Integer
refundStatus
;
private
Integer
refundStatus
;
/**
* 退款成功时间
*/
private
String
refundTime
;
/**
* 支付渠道编号
*/
private
String
payCode
;
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/PayRefundData.java
View file @
b41d1ccc
...
@@ -11,8 +11,18 @@ public class PayRefundData {
...
@@ -11,8 +11,18 @@ public class PayRefundData {
private
String
tradeNo
;
private
String
tradeNo
;
private
String
refundTradeNo
;
private
String
refundTradeNo
;
private
String
thirdPartRefundTradeNo
;
private
String
thirdPartRefundTradeNo
;
/**
* 申请退款金额
*/
private
Long
refundAmount
;
private
Long
refundAmount
;
private
Long
totalAmount
;
private
Long
totalAmount
;
private
Integer
refundStatus
;
private
Integer
refundStatus
;
/**
* 退款成功时间
*/
private
String
refundTime
;
/**
* 支付渠道编号
*/
private
String
payCode
;
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/PayRefundResponse.java
View file @
b41d1ccc
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
pay
;
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
pay
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.enums.ResponseResult
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
/**
/**
* All rights Reserved, Designed By www.freemud.cn
* All rights Reserved, Designed By www.freemud.cn
*
*
...
@@ -43,4 +46,37 @@ public class PayRefundResponse {
...
@@ -43,4 +46,37 @@ public class PayRefundResponse {
* 是否为部分退款订单
* 是否为部分退款订单
*/
*/
private
Boolean
partRefund
=
false
;
private
Boolean
partRefund
=
false
;
/**
* 对退款明细的记录
*/
private
List
<
PayRefundItem
>
payRefundItemList
;
@Data
public
static
class
PayRefundItem
{
/**
* 退款支付渠道
*/
private
Integer
payChannelType
;
/**
* 退款支付渠道名称
*/
private
String
payChannelName
;
/**
* 退款金额
*/
private
Integer
amount
;
/**
* 退款流水编号
*/
private
String
refundTradeNo
;
/**
* 退款时间 单位毫秒
*/
private
Long
refundDate
;
/**
* 退款储值卡卡号(退款渠道为储值卡时,则必须传递)
*/
private
String
cardCode
;
}
}
}
order-management/src/main/java/cn/freemud/management/service/handle/MultiRefundService.java
View file @
b41d1ccc
package
cn
.
freemud
.
management
.
service
.
handle
;
package
cn
.
freemud
.
management
.
service
.
handle
;
import
cn.freemud.base.util.DateUtil
;
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
;
...
@@ -7,6 +8,8 @@ import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
...
@@ -7,6 +8,8 @@ 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.PayChannelType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
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
;
...
@@ -17,10 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -17,10 +20,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Arrays
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
@Component
@Component
public
class
MultiRefundService
{
public
class
MultiRefundService
{
...
@@ -109,6 +111,21 @@ public class MultiRefundService {
...
@@ -109,6 +111,21 @@ public class MultiRefundService {
}
}
PayRefundResponse
payRefundResponse
=
handlePayRefundResponse
(
refundStatus
,
req
.
getRefundTradeNo
());
PayRefundResponse
payRefundResponse
=
handlePayRefundResponse
(
refundStatus
,
req
.
getRefundTradeNo
());
if
(
PayRefundStatus
.
SUCCESS
.
equals
(
refundStatus
))
{
resp
.
getData
().
getRefundPlatformResponseList
().
stream
()
.
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
.
getRefundAmount
());
refundItem
.
setRefundTradeNo
(
r
.
getRefundTradeNo
());
refundItem
.
setRefundDate
(
DateUtil
.
convert2Date
(
r
.
getRefundTime
(),
"yyyy-MM-dd HH:mm:ss"
).
getTime
());
//TODO 混合支付储值卡卡号 这里需要跟支付对接,下游设计中
// refundItem.setCardCode("?");
return
refundItem
;
})
.
collect
(
Collectors
.
toList
());
}
if
(
StringUtils
.
isNotEmpty
(
message
))
{
if
(
StringUtils
.
isNotEmpty
(
message
))
{
payRefundResponse
.
setMessage
(
message
);
payRefundResponse
.
setMessage
(
message
);
}
}
...
@@ -122,6 +139,7 @@ public class MultiRefundService {
...
@@ -122,6 +139,7 @@ public class MultiRefundService {
public
PayRefundResponse
agentPayRefund
(
String
partnerId
,
String
storeCode
,
String
orderCode
,
BigDecimal
refundAmount
,
String
fmTradeNo
)
{
public
PayRefundResponse
agentPayRefund
(
String
partnerId
,
String
storeCode
,
String
orderCode
,
BigDecimal
refundAmount
,
String
fmTradeNo
)
{
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
String
fmRefundNo
=
""
;
String
fmRefundNo
=
""
;
List
<
PayRefundResponse
.
PayRefundItem
>
refundItems
=
new
ArrayList
<>();
try
{
try
{
AgentPayRefundReq
req
=
paymentSdkAdapter
.
getAgentPayRefundReq
(
partnerId
,
storeCode
,
orderCode
,
refundAmount
,
fmTradeNo
);
AgentPayRefundReq
req
=
paymentSdkAdapter
.
getAgentPayRefundReq
(
partnerId
,
storeCode
,
orderCode
,
refundAmount
,
fmTradeNo
);
AgentPayRefundResp
resp
=
mulitiPaymentClient
.
agentPayRefund
(
req
);
AgentPayRefundResp
resp
=
mulitiPaymentClient
.
agentPayRefund
(
req
);
...
@@ -132,11 +150,20 @@ public class MultiRefundService {
...
@@ -132,11 +150,20 @@ public class MultiRefundService {
if
(
Objects
.
nonNull
(
data
))
{
if
(
Objects
.
nonNull
(
data
))
{
refundStatus
=
this
.
getFinalRefundStatus
(
data
.
getResultCode
());
refundStatus
=
this
.
getFinalRefundStatus
(
data
.
getResultCode
());
fmRefundNo
=
data
.
getFmRefundNo
();
fmRefundNo
=
data
.
getFmRefundNo
();
PayRefundResponse
.
PayRefundItem
refundItem
=
new
PayRefundResponse
.
PayRefundItem
();
refundItem
.
setPayChannelType
(
Integer
.
valueOf
(
PayChannelType
.
getByEbcode
(
data
.
getEbcode
()).
getIndex
()));
refundItem
.
setPayChannelName
(
PayChannelType
.
getByEbcode
(
data
.
getEbcode
()).
getName
());
refundItem
.
setAmount
(
data
.
getRefundAmount
());
refundItem
.
setRefundTradeNo
(
data
.
getRefundEndTransTradeNo
());
refundItem
.
setRefundDate
(
DateUtil
.
convert2Date
(
data
.
getRefundTime
(),
"yyyy-MM-dd HH:mm:ss"
).
getTime
());
refundItems
.
add
(
refundItem
);
}
}
}
catch
(
Throwable
e
)
{
}
catch
(
Throwable
e
)
{
refundStatus
=
PayRefundStatus
.
FAIL
;
refundStatus
=
PayRefundStatus
.
FAIL
;
}
}
return
this
.
handlePayRefundResponse
(
refundStatus
,
fmRefundNo
);
PayRefundResponse
payRefundResponse
=
this
.
handlePayRefundResponse
(
refundStatus
,
fmRefundNo
);
payRefundResponse
.
setPayRefundItemList
(
refundItems
);
return
payRefundResponse
;
}
}
...
...
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
b41d1ccc
package
cn
.
freemud
.
management
.
service
.
handle
;
package
cn
.
freemud
.
management
.
service
.
handle
;
import
cn.freemud.base.util.DateUtil
;
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
;
...
@@ -18,6 +19,7 @@ import com.freemud.application.sdk.api.base.BaseResponse;
...
@@ -18,6 +19,7 @@ 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.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.enums.PayChannelType
;
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
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
...
@@ -34,10 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -34,10 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.HashMap
;
import
java.util.*
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
/**
/**
...
@@ -195,13 +194,23 @@ public class PaymentHandle {
...
@@ -195,13 +194,23 @@ public class PaymentHandle {
}
}
BaseResponse
<
OrderRefundResponse
>
orderRefundResponse
=
this
.
orderPayRefund
(
refundReq
);
BaseResponse
<
OrderRefundResponse
>
orderRefundResponse
=
this
.
orderPayRefund
(
refundReq
);
String
message
=
null
;
String
message
=
null
;
List
<
PayRefundResponse
.
PayRefundItem
>
refundItemList
=
new
ArrayList
<>();
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
();
message
=
orderRefundResponse
.
getMessage
();
OrderRefundResponse
data
=
orderRefundResponse
.
getData
();
PayRefundResponse
.
PayRefundItem
refundItem
=
new
PayRefundResponse
.
PayRefundItem
();
refundItem
.
setPayChannelType
(
Integer
.
valueOf
(
PayChannelType
.
getByEbcode
(
data
.
getPayCode
()).
getIndex
()));
refundItem
.
setPayChannelName
(
PayChannelType
.
getByEbcode
(
data
.
getPayCode
()).
getName
());
refundItem
.
setAmount
(
data
.
getRefundAmount
().
intValue
());
refundItem
.
setRefundTradeNo
(
data
.
getRefundTradeNo
());
refundItem
.
setRefundDate
(
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
);
if
(
message
!=
null
)
{
if
(
message
!=
null
)
{
payRefundResponse
.
setMessage
(
message
);
payRefundResponse
.
setMessage
(
message
);
}
}
...
@@ -422,6 +431,8 @@ public class PaymentHandle {
...
@@ -422,6 +431,8 @@ public class PaymentHandle {
refundResponse
.
setThirdPartRefundTradeNo
(
refundData
.
getThirdPartRefundTradeNo
());
refundResponse
.
setThirdPartRefundTradeNo
(
refundData
.
getThirdPartRefundTradeNo
());
refundResponse
.
setThirdPartTradeNo
(
refundData
.
getThirdPartTradeNo
());
refundResponse
.
setThirdPartTradeNo
(
refundData
.
getThirdPartTradeNo
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setTotalAmount
(
refundData
.
getTotalAmount
());
refundResponse
.
setPayCode
(
refundData
.
getPayCode
());
refundResponse
.
setRefundTime
(
refundData
.
getRefundTime
());
return
ResponseUtils
.
success
(
refundResponse
);
return
ResponseUtils
.
success
(
refundResponse
);
}
}
}
}
...
...
order-management/src/main/java/cn/freemud/management/service/handle/SaasOrderHandle.java
View file @
b41d1ccc
...
@@ -2,6 +2,7 @@ package cn.freemud.management.service.handle;
...
@@ -2,6 +2,7 @@ package cn.freemud.management.service.handle;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.adapter.BaseQueryOrderRequestAdapter
;
import
cn.freemud.management.adapter.BaseQueryOrderRequestAdapter
;
import
cn.freemud.management.adapter.OrderCancelReqAdapter
;
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.pay.PayRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.AfterSalesApplyClientEnum
;
import
cn.freemud.management.enums.AfterSalesApplyClientEnum
;
...
@@ -243,6 +244,7 @@ public class SaasOrderHandle {
...
@@ -243,6 +244,7 @@ public class SaasOrderHandle {
refundAgreeRequest
.
setOperationClient
(
request
.
getOperationClient
());
refundAgreeRequest
.
setOperationClient
(
request
.
getOperationClient
());
BaseOrderResponse
baseOrderResponse
=
null
;
BaseOrderResponse
baseOrderResponse
=
null
;
if
(
PayRefundStatus
.
SUCCESS
.
equals
(
refundResponse
.
getPayRefundStatus
()))
{
if
(
PayRefundStatus
.
SUCCESS
.
equals
(
refundResponse
.
getPayRefundStatus
()))
{
refundAgreeRequest
.
setPayRefundItemList
(
OrderCancelReqAdapter
.
convert
(
refundResponse
.
getPayRefundItemList
()));
// fisherman 判断是否在退款中, 如果是退款中 调用退货完成
// fisherman 判断是否在退款中, 如果是退款中 调用退货完成
if
(
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesStatus
().
compareTo
(
AfterSalesRefunStateEnum
.
STATE_1
.
getIndex
())
!=
0
)
{
if
(
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesStatus
().
compareTo
(
AfterSalesRefunStateEnum
.
STATE_1
.
getIndex
())
!=
0
)
{
baseOrderResponse
=
orderCenterSdkService
.
orderRefundComplete
(
refundAgreeRequest
);
baseOrderResponse
=
orderCenterSdkService
.
orderRefundComplete
(
refundAgreeRequest
);
...
@@ -274,6 +276,7 @@ public class SaasOrderHandle {
...
@@ -274,6 +276,7 @@ public class SaasOrderHandle {
refundAgreeRequest
.
setOperationClient
(
request
.
getOperationClient
());
refundAgreeRequest
.
setOperationClient
(
request
.
getOperationClient
());
PayRefundStatus
payRefundStatus
=
refundResponse
.
getPayRefundStatus
();
PayRefundStatus
payRefundStatus
=
refundResponse
.
getPayRefundStatus
();
if
(
payRefundStatus
.
getCode
().
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
()))
{
if
(
payRefundStatus
.
getCode
().
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
()))
{
refundAgreeRequest
.
setPayRefundItemList
(
OrderCancelReqAdapter
.
convert
(
refundResponse
.
getPayRefundItemList
()));
// 退款成功 调用 -> /afterSales/v2/adultRefundComplete
// 退款成功 调用 -> /afterSales/v2/adultRefundComplete
orderCenterSdkService
.
orderRefundComplete
(
refundAgreeRequest
);
orderCenterSdkService
.
orderRefundComplete
(
refundAgreeRequest
);
}
else
{
}
else
{
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/AfterSalesOperateReq.java
View file @
b41d1ccc
...
@@ -14,6 +14,8 @@ package com.freemud.application.sdk.api.ordercenter.request;
...
@@ -14,6 +14,8 @@ package com.freemud.application.sdk.api.ordercenter.request;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
@Data
@Data
public
class
AfterSalesOperateReq
{
public
class
AfterSalesOperateReq
{
...
@@ -55,4 +57,37 @@ public class AfterSalesOperateReq {
...
@@ -55,4 +57,37 @@ public class AfterSalesOperateReq {
* 售后退款状态 0:未定义(存量数据) 1:未退款 2:退款中 3:退款失败 4:已退款
* 售后退款状态 0:未定义(存量数据) 1:未退款 2:退款中 3:退款失败 4:已退款
*/
*/
private
Integer
refundState
;
private
Integer
refundState
;
/**
* 对退款明细的记录
*/
private
List
<
OrderCancelReq
.
PayRefundItem
>
payRefundItemList
;
@Data
public
static
class
PayRefundItem
{
/**
* 退款支付渠道
*/
private
Integer
payChannelType
;
/**
* 退款支付渠道名称
*/
private
String
payChannelName
;
/**
* 退款金额
*/
private
Integer
amount
;
/**
* 退款流水编号
*/
private
String
refundTradeNo
;
/**
* 退款时间 单位毫秒
*/
private
Long
refundDate
;
/**
* 退款储值卡卡号(退款渠道为储值卡时,则必须传递)
*/
private
String
cardCode
;
}
}
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderCancelReq.java
View file @
b41d1ccc
...
@@ -16,6 +16,7 @@ import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
...
@@ -16,6 +16,7 @@ import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import
lombok.Data
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Data
@Data
public
class
OrderCancelReq
{
public
class
OrderCancelReq
{
...
@@ -97,4 +98,37 @@ public class OrderCancelReq {
...
@@ -97,4 +98,37 @@ public class OrderCancelReq {
* 是否部分退,默认否(全退)
* 是否部分退,默认否(全退)
*/
*/
private
Boolean
isPartRefund
=
false
;
private
Boolean
isPartRefund
=
false
;
/**
* 对退款明细的记录
*/
private
List
<
PayRefundItem
>
payRefundItemList
;
@Data
public
static
class
PayRefundItem
{
/**
* 退款支付渠道
*/
private
Integer
payChannelType
;
/**
* 退款支付渠道名称
*/
private
String
payChannelName
;
/**
* 退款金额
*/
private
Integer
amount
;
/**
* 退款流水编号
*/
private
String
refundTradeNo
;
/**
* 退款时间 单位毫秒
*/
private
Long
refundDate
;
/**
* 退款储值卡卡号(退款渠道为储值卡时,则必须传递)
*/
private
String
cardCode
;
}
}
}
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