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
e0c68566
Commit
e0c68566
authored
Apr 29, 2022
by
查志伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代付退款支持
parent
e4f15ceb
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
206 additions
and
13 deletions
+206
-13
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+2
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/pay/AgentPayQueryReq.java
+21
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/pay/AgentPayRefundReq.java
+25
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/AgentPayQueryResp.java
+43
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/AgentPayRefundResp.java
+43
-0
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+30
-0
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+10
-5
order-management/src/main/java/cn/freemud/management/thirdparty/MulitiPaymentClient.java
+19
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/adapter/OrderCenterSdkAdapter.java
+2
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExtendedReq.java
+11
-8
No files found.
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
e0c68566
...
...
@@ -1423,6 +1423,8 @@ public class OrderSdkAdapter {
.
spellGroupCode
(
orderExtended
.
getSpellGroupCode
())
.
userPhone
(
orderExtended
.
getUserPhone
())
.
sendWord
(
orderExtended
.
getSendWord
())
.
agentPayerId
(
orderExtended
.
getAgentPayerId
())
.
agentPayerName
(
orderExtended
.
getAgentPayerName
())
.
build
();
}
...
...
order-management/src/main/java/cn/freemud/management/entities/dto/request/pay/AgentPayQueryReq.java
0 → 100644
View file @
e0c68566
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
pay
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
@NoArgsConstructor
@Data
public
class
AgentPayQueryReq
{
private
String
outOrderNo
;
private
String
partnerId
;
private
String
storeId
;
private
String
fmTradeNo
;
private
String
platformTradeNo
;
private
String
endTransTradeNo
;
private
String
ver
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/request/pay/AgentPayRefundReq.java
0 → 100644
View file @
e0c68566
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
pay
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
@NoArgsConstructor
@Data
public
class
AgentPayRefundReq
{
private
String
refundTradeNo
;
private
String
partnerId
;
private
String
storeId
;
private
String
fmTradeNo
;
private
String
outOrderNo
;
private
String
endTransTradeNo
;
private
String
platformTradeNo
;
private
Long
refundAmount
;
private
String
refundDesc
;
private
String
notifyUrl
;
private
String
ver
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/AgentPayQueryResp.java
0 → 100644
View file @
e0c68566
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
pay
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Objects
;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
@NoArgsConstructor
@Data
public
class
AgentPayQueryResp
{
private
Integer
code
;
private
DataDTO
data
;
private
String
msg
;
@NoArgsConstructor
@Data
public
static
class
DataDTO
{
private
String
ebCode
;
private
String
fmTradeNo
;
private
String
transId
;
private
String
platformTradeNo
;
private
String
outOrderNo
;
private
Integer
payAmount
;
private
String
endTransTradeNo
;
private
Integer
mcouponAmount
;
private
Integer
pcouponAmount
;
private
String
status
;
private
String
ver
;
private
String
openId
;
private
String
transCurrency
;
private
String
tradeTime
;
private
String
platformMchId
;
}
public
boolean
isOk
()
{
return
Objects
.
equals
(
code
,
100
);
}
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/AgentPayRefundResp.java
0 → 100644
View file @
e0c68566
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
pay
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Objects
;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
@NoArgsConstructor
@Data
public
class
AgentPayRefundResp
{
private
Integer
code
;
private
DataDTO
data
;
private
String
msg
;
@NoArgsConstructor
@Data
public
static
class
DataDTO
{
private
String
fmTradeNo
;
private
String
endTransTradeNo
;
private
String
platformTradeNo
;
private
String
fmRefundNo
;
private
String
refundEndTransTradeNo
;
private
Integer
refundAmount
;
private
Integer
settleRefundAmount
;
private
Integer
mcouponAmount
;
private
Integer
pcouponAmount
;
private
Integer
totalAmount
;
private
String
refundCurrency
;
private
String
refundDesc
;
private
String
refundTime
;
private
String
transId
;
private
String
ebcode
;
}
public
boolean
isOk
()
{
return
Objects
.
equals
(
code
,
100
);
}
}
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
e0c68566
...
...
@@ -2,6 +2,7 @@ package cn.freemud.management.service.handle;
import
cn.freemud.management.adapter.PaymentSdkAdapter
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.pay.AgentPayRefundReq
;
import
cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto
;
import
cn.freemud.management.entities.dto.request.pay.PaymentQueryOrderRequestDto
;
import
cn.freemud.management.entities.dto.response.pay.*
;
...
...
@@ -12,6 +13,7 @@ import cn.freemud.management.thirdparty.MulitiPaymentClient;
import
cn.freemud.management.thirdparty.OMSPaymentClient
;
import
cn.freemud.management.util.RedisUtil
;
import
cn.freemud.redis.RedisCache
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformIappWxappStore
;
import
com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformIappWxappStoreManager
;
...
...
@@ -118,6 +120,34 @@ public class PaymentHandle {
}
/**
* 代付订单退款
*
* @param request
* @param orderBean
* @return
*/
public
PayRefundResponse
agentPayRefund
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
PayRefundResponse
ret
=
new
PayRefundResponse
();
try
{
OrderExtInfoDto
ext
=
JSON
.
parseObject
(
orderBean
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
AgentPayRefundReq
req
=
new
AgentPayRefundReq
();
req
.
setPartnerId
(
orderBean
.
getCompanyId
());
req
.
setStoreId
(
orderBean
.
getShopId
());
req
.
setFmTradeNo
(
ext
.
getPayTransId
());
req
.
setOutOrderNo
(
orderBean
.
getOid
());
req
.
setVer
(
"V1"
);
AgentPayRefundResp
resp
=
mulitiPaymentClient
.
agentPayRefund
(
req
);
if
(!
resp
.
isOk
())
throw
new
Exception
(
"退款失败"
);
ret
.
setRefundId
(
resp
.
getData
().
getFmRefundNo
());
ret
.
setPayRefundStatus
(
PayRefundStatus
.
SUCCESS
);
}
catch
(
Throwable
e
)
{
ret
.
setPayRefundStatus
(
PayRefundStatus
.
FAIL
);
}
return
ret
;
}
/**
* 卖券调用退款
* @param reason
* @param orderBean
...
...
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
e0c68566
...
...
@@ -6,8 +6,8 @@ import cn.freemud.management.entities.dto.request.console.*;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderManagerResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.*
;
import
cn.freemud.management.enums.OperateType
;
import
cn.freemud.management.enums.*
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.OrderManagerService
;
...
...
@@ -15,7 +15,6 @@ import cn.freemud.management.service.handle.*;
import
cn.freemud.management.thirdparty.ConsoleApiClient
;
import
cn.freemud.management.thirdparty.OrderCallbackClient
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
...
...
@@ -28,14 +27,13 @@ import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExpressReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq
;
import
com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.util.LogUtil
;
import
com.freemud.application.sdk.api.service.EmailAlertService
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.io.ByteOrderMark
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -246,7 +244,14 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
if
(
null
!=
orderBean
.
getOrderPayItem
()
&&
orderBean
.
getOrderPayItem
().
size
()>
0
){
refundResponse
=
paymentHandle
.
multiRefund
(
orderBean
);
}
else
{
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
OrderExtendedReq
ext
=
orderBean
.
getOrderExtended
();
if
(
StringUtils
.
isNotBlank
(
ext
.
getAgentPayerId
())
&&
!
Objects
.
equals
(
ext
.
getAgentPayerId
(),
orderBean
.
getUserId
()))
{
//代付人信息不为空 并且和订单创建人不一样,表示代付单
refundResponse
=
paymentHandle
.
agentPayRefund
(
request
,
orderBean
);
}
else
{
//正常订单现金退款
refundResponse
=
paymentHandle
.
refund
(
request
,
orderBean
);
}
}
}
catch
(
OrderServiceException
orderEx
){
// 爱马哥兼容,不抛错
return
ResponseUtil
.
error
(
orderEx
.
getResult
());
...
...
order-management/src/main/java/cn/freemud/management/thirdparty/MulitiPaymentClient.java
View file @
e0c68566
...
...
@@ -17,6 +17,10 @@ import cn.freemud.management.annotations.LogIgnoreFeign;
import
cn.freemud.management.constant.ResponseCodeConstant
;
import
cn.freemud.management.constant.ResponseCodeKeyConstant
;
import
cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request
;
import
cn.freemud.management.entities.dto.request.pay.AgentPayQueryReq
;
import
cn.freemud.management.entities.dto.request.pay.AgentPayRefundReq
;
import
cn.freemud.management.entities.dto.response.pay.AgentPayQueryResp
;
import
cn.freemud.management.entities.dto.response.pay.AgentPayRefundResp
;
import
cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse
;
...
...
@@ -42,4 +46,19 @@ public interface MulitiPaymentClient {
@PostMapping
(
"/payment/application/batch/refund"
)
@LogIgnoreFeign
(
excludeStatusCodes
=
{
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
},
messageFieldName
=
ResponseCodeKeyConstant
.
MSG
,
printLog
=
true
)
PayBatchRefundResponse
batchRefund
(
BatchOrderRefundV2Request
batchOrderRefundV2Request
);
/**
* 代付退款
*/
@PostMapping
(
"/payment/application/agentRefund"
)
@LogIgnoreFeign
(
excludeStatusCodes
=
{
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
},
messageFieldName
=
ResponseCodeKeyConstant
.
MSG
,
printLog
=
true
)
AgentPayRefundResp
agentPayRefund
(
AgentPayRefundReq
req
);
/**
* 代付查询
*/
@PostMapping
(
"/payment/application/agentQuery"
)
@LogIgnoreFeign
(
excludeStatusCodes
=
{
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
},
messageFieldName
=
ResponseCodeKeyConstant
.
MSG
,
printLog
=
true
)
AgentPayQueryResp
agentPayQuery
(
AgentPayQueryReq
req
);
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/adapter/OrderCenterSdkAdapter.java
View file @
e0c68566
...
...
@@ -696,6 +696,8 @@ public class OrderCenterSdkAdapter {
.
spellGroupCode
(
orderExtended
.
getSpellGroupCode
())
.
userPhone
(
orderExtended
.
getUserPhone
())
.
sendWord
(
orderExtended
.
getSendWord
())
.
agentPayerId
(
orderExtended
.
getAgentPayerId
())
.
agentPayerName
(
orderExtended
.
getAgentPayerName
())
.
build
();
}
...
...
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/request/OrderExtendedReq.java
View file @
e0c68566
...
...
@@ -48,15 +48,18 @@ public class OrderExtendedReq {
*/
private
String
sendWord
;
/**
* 代付人userId
*/
private
String
agentPayerId
;
/**
* 代付人用户名称
*/
private
String
agentPayerName
;
public
OrderExtendedReq
()
{
}
public
OrderExtendedReq
(
String
orderClientGroup
,
String
orderClientGroupCode
,
String
storeNameEn
,
String
spellGroupCode
,
String
userPhone
,
String
sendWord
)
{
this
.
orderClientGroup
=
orderClientGroup
;
this
.
orderClientGroupCode
=
orderClientGroupCode
;
this
.
storeNameEn
=
storeNameEn
;
this
.
spellGroupCode
=
spellGroupCode
;
this
.
userPhone
=
userPhone
;
this
.
sendWord
=
sendWord
;
}
}
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