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
b7771235
Commit
b7771235
authored
Sep 02, 2022
by
周晓航
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/zxh/重新对接支付退款响应-20220824' into develop
parents
bf7a6f92
5261c948
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
178 additions
and
50 deletions
+178
-50
call-back-service/src/main/java/cn/freemud/amp/config/OrderCallBackConfig.java
+1
-1
order-application-service/src/main/java/cn/freemud/config/FeignSupportConfig.java
+19
-0
order-application-service/src/main/java/cn/freemud/interceptor/FeignInterceptor.java
+63
-0
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
+4
-4
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
+12
-11
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+14
-15
order-management/src/main/java/cn/freemud/management/service/handle/SaasOrderHandle.java
+60
-11
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+1
-7
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingEquallyService.java
+4
-1
No files found.
call-back-service/src/main/java/cn/freemud/amp/config/OrderCallBackConfig.java
View file @
b7771235
...
@@ -130,7 +130,7 @@ public class OrderCallBackConfig {
...
@@ -130,7 +130,7 @@ public class OrderCallBackConfig {
/**
/**
*
有数上报/ 支付门店 queue 绑定
*
task-center-order-consumer服务 订单状态处理中心queue 优化原有相同queue代码
*
*
* @return
* @return
*/
*/
...
...
order-application-service/src/main/java/cn/freemud/config/FeignSupportConfig.java
0 → 100644
View file @
b7771235
package
cn
.
freemud
.
config
;
import
cn.freemud.interceptor.FeignInterceptor
;
import
feign.RequestInterceptor
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
@Configuration
public
class
FeignSupportConfig
{
/**
* feign请求拦截器
*
* @return
*/
@Bean
public
RequestInterceptor
requestInterceptor
(){
return
new
FeignInterceptor
();
}
}
order-application-service/src/main/java/cn/freemud/interceptor/FeignInterceptor.java
0 → 100644
View file @
b7771235
package
cn
.
freemud
.
interceptor
;
import
cn.freemud.utils.AppLogUtil
;
import
com.alibaba.fastjson.JSON
;
import
feign.RequestInterceptor
;
import
feign.RequestTemplate
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.web.context.request.RequestContextHolder
;
import
org.springframework.web.context.request.ServletRequestAttributes
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.*
;
@Configuration
public
class
FeignInterceptor
implements
RequestInterceptor
{
@Value
(
"${forward.feign.headers:x-forwarded-for, x-real-ip}"
)
private
Set
<
String
>
needHeaders
;
@Override
public
void
apply
(
RequestTemplate
requestTemplate
)
{
HttpServletRequest
httpServletRequest
=
this
.
getHttpServletRequest
();
if
(
Objects
.
nonNull
(
httpServletRequest
))
{
Map
<
String
,
String
>
headers
=
getHeaders
(
httpServletRequest
);
for
(
String
headerName
:
headers
.
keySet
())
{
requestTemplate
.
header
(
headerName
,
getHeaders
(
getHttpServletRequest
()).
get
(
headerName
));
}
}
}
private
HttpServletRequest
getHttpServletRequest
()
{
try
{
ServletRequestAttributes
requestAttributes
=
(
ServletRequestAttributes
)
RequestContextHolder
.
getRequestAttributes
();
if
(
Objects
.
isNull
(
requestAttributes
))
{
return
null
;
}
return
requestAttributes
.
getRequest
();
}
catch
(
Exception
e
)
{
AppLogUtil
.
errorLog
(
"FeignInterceptor error {}"
,
""
,
""
,
e
);
return
null
;
}
}
private
Map
<
String
,
String
>
getHeaders
(
HttpServletRequest
request
)
{
Map
<
String
,
String
>
map
=
new
LinkedHashMap
<>();
Enumeration
<
String
>
enumeration
=
request
.
getHeaderNames
();
while
(
enumeration
.
hasMoreElements
())
{
String
key
=
enumeration
.
nextElement
();
if
(
needThisHeader
(
key
))
{
String
value
=
request
.
getHeader
(
key
);
map
.
put
(
key
,
value
);
}
}
AppLogUtil
.
printLog
(
"clientIp for feign client info:"
+
JSON
.
toJSONString
(
map
),
""
,
""
);
return
map
;
}
private
boolean
needThisHeader
(
String
headerName
)
{
// TODO:过滤哪些header需要传递,千万不能把所有的header传下去
return
needHeaders
.
contains
(
headerName
);
}
}
order-application-service/src/main/java/cn/freemud/service/impl/PayServiceImpl.java
View file @
b7771235
...
@@ -1409,7 +1409,7 @@ public class PayServiceImpl {
...
@@ -1409,7 +1409,7 @@ public class PayServiceImpl {
refundRequest
.
setTotalAmount
(
refundRequest
.
getRefundAmount
());
refundRequest
.
setTotalAmount
(
refundRequest
.
getRefundAmount
());
}
}
AssortmentOpenPlatformIappWxappStore
wxAppStore
=
this
.
assortmentOpenPlatformIappWxappStoreManager
.
selectWxappStoreByWxAppIdAndStoreId
(
refundRequest
.
getAppId
(),
refundRequest
.
getStoreId
(),
payCode
);
//
AssortmentOpenPlatformIappWxappStore wxAppStore = this.assortmentOpenPlatformIappWxappStoreManager.selectWxappStoreByWxAppIdAndStoreId(refundRequest.getAppId(), refundRequest.getStoreId(), payCode);
PayRefundRequestDto
request
=
new
PayRefundRequestDto
();
PayRefundRequestDto
request
=
new
PayRefundRequestDto
();
request
.
setStoreId
(
refundRequest
.
getStoreId
());
request
.
setStoreId
(
refundRequest
.
getStoreId
());
request
.
setStationId
(
refundRequest
.
getStationId
());
request
.
setStationId
(
refundRequest
.
getStationId
());
...
@@ -1425,7 +1425,7 @@ public class PayServiceImpl {
...
@@ -1425,7 +1425,7 @@ public class PayServiceImpl {
request
.
setPartnerId
(
refundRequest
.
getPartnerId
());
request
.
setPartnerId
(
refundRequest
.
getPartnerId
());
request
.
setVer
(
2
);
request
.
setVer
(
2
);
request
.
setExtendParams
(
refundRequest
.
getExtendParams
());
request
.
setExtendParams
(
refundRequest
.
getExtendParams
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
=
this
.
checkParam
(
refundRequest
.
getPartnerId
(),
refundRequest
.
getStoreId
(),
refundRequest
.
getRefundAmount
()
,
wxAppStore
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
=
this
.
checkParam
(
refundRequest
.
getPartnerId
(),
refundRequest
.
getStoreId
(),
refundRequest
.
getRefundAmount
());
if
(!
Objects
.
equals
(
checkParam
.
getCode
(),
"100"
))
{
if
(!
Objects
.
equals
(
checkParam
.
getCode
(),
"100"
))
{
return
checkParam
;
return
checkParam
;
}
else
{
}
else
{
...
@@ -1478,7 +1478,7 @@ public class PayServiceImpl {
...
@@ -1478,7 +1478,7 @@ public class PayServiceImpl {
}
}
public
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
(
String
partnerId
,
String
storeId
,
Long
amount
,
AssortmentOpenPlatformIappWxappStore
wxAppStore
)
{
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"
,
"商户号不能为空"
);
}
else
if
(
StringUtils
.
isBlank
(
storeId
))
{
}
else
if
(
StringUtils
.
isBlank
(
storeId
))
{
...
@@ -1486,7 +1486,7 @@ public class PayServiceImpl {
...
@@ -1486,7 +1486,7 @@ public class PayServiceImpl {
}
else
if
(
amount
==
null
)
{
}
else
if
(
amount
==
null
)
{
return
ResponseUtils
.
error
(
"501"
,
"金额不能为空"
);
return
ResponseUtils
.
error
(
"501"
,
"金额不能为空"
);
}
else
{
}
else
{
return
wxAppStore
==
null
?
ResponseUtils
.
error
(
"500"
,
"支付信息没有配置"
)
:
ResponseUtils
.
success
();
return
ResponseUtils
.
success
();
}
}
}
}
...
...
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
View file @
b7771235
...
@@ -650,21 +650,22 @@ public class OrderVerifyHandle {
...
@@ -650,21 +650,22 @@ public class OrderVerifyHandle {
/**
/**
* 获取已完成订单退款金额
* 获取已完成订单退款金额
* isRefundDeliveryFee 退款是否退配送费已在申请退款传到订单基础服务,取订单售后单中退款金额 actualAmount
*/
*/
public
BigDecimal
getRefundAmount
(
OrderBeanV1
data
,
boolean
isRefundDeliveryFee
)
{
public
BigDecimal
getRefundAmount
(
OrderBeanV1
data
,
boolean
isRefundDeliveryFee
)
{
//是否配置已完成订单可退款
//是否配置已完成订单可退款
BigDecimal
refundAmount
=
new
BigDecimal
(
data
.
getAmount
());
BigDecimal
refundAmount
=
new
BigDecimal
(
data
.
getAmount
());
if
(
isRefundDeliveryFee
||
isPayBySVC
(
data
)){
//
if (isRefundDeliveryFee || isPayBySVC(data)){
return
refundAmount
;
//
return refundAmount;
}
//
}
List
<
AccountBeanV1
>
accountList
=
data
.
getAccountList
();
//
List<AccountBeanV1> accountList = data.getAccountList();
if
(
CollectionUtils
.
isNotEmpty
(
accountList
))
{
//
if (CollectionUtils.isNotEmpty(accountList)) {
for
(
AccountBeanV1
orderCostResp
:
accountList
)
{
//
for (AccountBeanV1 orderCostResp : accountList) {
if
(
orderCostResp
.
getType
()
==
OldOrderAccountType
.
DELIVERY_AMOUNT
.
getCode
())
{
//
if (orderCostResp.getType() == OldOrderAccountType.DELIVERY_AMOUNT.getCode()) {
refundAmount
=
new
BigDecimal
(
data
.
getAmount
().
intValue
()
-
orderCostResp
.
getPrice
());
//
refundAmount = new BigDecimal(data.getAmount().intValue() - orderCostResp.getPrice());
}
//
}
}
//
}
}
//
}
return
refundAmount
;
return
refundAmount
;
}
}
/**
/**
...
...
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
b7771235
...
@@ -14,7 +14,6 @@ import cn.freemud.management.thirdparty.OMSPaymentClient;
...
@@ -14,7 +14,6 @@ import cn.freemud.management.thirdparty.OMSPaymentClient;
import
cn.freemud.management.util.RedisUtil
;
import
cn.freemud.management.util.RedisUtil
;
import
cn.freemud.redis.RedisCache
;
import
cn.freemud.redis.RedisCache
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformIappWxappStore
;
import
com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformIappWxappStoreManager
;
import
com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformIappWxappStoreManager
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
...
@@ -159,17 +158,16 @@ public class PaymentHandle {
...
@@ -159,17 +158,16 @@ public class PaymentHandle {
MultiOrderRefundRequest
multiOrderRefundRequest
=
paymentSdkAdapter
.
getMultiOrderPayRefundRequest
(
orderBean
,
getRefundAmount
(
orderBean
));
MultiOrderRefundRequest
multiOrderRefundRequest
=
paymentSdkAdapter
.
getMultiOrderPayRefundRequest
(
orderBean
,
getRefundAmount
(
orderBean
));
MultiOrderRefundResponse
multiOrderRefundResponse
=
mulitiPaymentClient
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
orderBean
.
getCompanyId
());
MultiOrderRefundResponse
multiOrderRefundResponse
=
mulitiPaymentClient
.
paymentApplicationRefund
(
multiOrderRefundRequest
,
orderBean
.
getCompanyId
());
String
message
=
""
;
String
message
=
""
;
if
(
multiOrderRefundResponse
==
null
if
(
Objects
.
isNull
(
multiOrderRefundResponse
)
||
multiOrderRefundResponse
.
getCode
()
!=
200
)
{
||
multiOrderRefundResponse
.
getData
()
==
null
refundStatus
=
PayRefundStatus
.
FAIL
;
||
!
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
ORDER_PAY_RESPONSE_SUCCESS
.
equals
(
multiOrderRefundResponse
.
getCode
()))
{
// fisherman 退款异常 也当做 退款中处理
refundStatus
=
PayRefundStatus
.
RUNNING
;
}
else
{
}
else
{
List
<
MultiOrderRefundResponse
.
RefundPlatformResponse
>
refundPlatformResponseList
=
multiOrderRefundResponse
.
getData
().
refundPlatformResponseList
;
MultiOrderRefundResponse
.
RefundPlatform
data
=
multiOrderRefundResponse
.
getData
();
if
(
null
!=
refundPlatformResponseList
&&
refundPlatformResponseList
.
size
()
>
0
)
{
if
(
Objects
.
isNull
(
data
)
||
CollectionUtils
.
isEmpty
(
data
.
refundPlatformResponseList
))
{
refundStatus
=
PayRefundStatus
.
FAIL
;
}
else
{
List
<
MultiOrderRefundResponse
.
RefundPlatformResponse
>
refundPlatformResponseList
=
data
.
refundPlatformResponseList
;
redisCache
.
save
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
refundPlatformResponseList
.
get
(
0
).
getTransId
()),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
redisCache
.
save
(
RedisUtil
.
getPaymentTransIdSequenceKey
(
refundPlatformResponseList
.
get
(
0
).
getTransId
()),
orderBean
.
getOid
(),
1L
,
TimeUnit
.
DAYS
);
}
if
(
CollectionUtils
.
isNotEmpty
(
refundPlatformResponseList
))
{
long
refundError
=
refundPlatformResponseList
.
stream
()
long
refundError
=
refundPlatformResponseList
.
stream
()
.
filter
(
s
->
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUNDED_RESULTCODE
)
!=
0
.
filter
(
s
->
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUNDED_RESULTCODE
)
!=
0
&&
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUND_SUCCESS
)
!=
0
)
&&
s
.
getResultCode
().
compareTo
(
MultiOrderRefundResponse
.
RefundPlatformResponse
.
REFUND_SUCCESS
)
!=
0
)
...
@@ -191,6 +189,7 @@ public class PaymentHandle {
...
@@ -191,6 +189,7 @@ public class PaymentHandle {
}
}
}
}
}
}
PayRefundResponse
payRefundResponse
=
handlePayRefundResponse
(
refundStatus
,
multiOrderRefundRequest
.
getRefundTradeNo
());
PayRefundResponse
payRefundResponse
=
handlePayRefundResponse
(
refundStatus
,
multiOrderRefundRequest
.
getRefundTradeNo
());
if
(
StringUtils
.
isNotEmpty
(
message
))
{
if
(
StringUtils
.
isNotEmpty
(
message
))
{
payRefundResponse
.
setMessage
(
message
);
payRefundResponse
.
setMessage
(
message
);
...
@@ -211,7 +210,7 @@ public class PaymentHandle {
...
@@ -211,7 +210,7 @@ public class PaymentHandle {
AgentPayRefundReq
req
=
paymentSdkAdapter
.
getAgentPayefundReq
(
orderBean
,
this
.
getRefundAmount
(
orderBean
));
AgentPayRefundReq
req
=
paymentSdkAdapter
.
getAgentPayefundReq
(
orderBean
,
this
.
getRefundAmount
(
orderBean
));
AgentPayRefundResp
resp
=
mulitiPaymentClient
.
agentPayRefund
(
req
);
AgentPayRefundResp
resp
=
mulitiPaymentClient
.
agentPayRefund
(
req
);
if
(!
resp
.
isOk
())
{
if
(!
resp
.
isOk
())
{
refundStatus
=
PayRefundStatus
.
RUNNING
;
refundStatus
=
PayRefundStatus
.
FAIL
;
}
}
AgentPayRefundResp
.
DataDTO
data
=
resp
.
getData
();
AgentPayRefundResp
.
DataDTO
data
=
resp
.
getData
();
if
(
Objects
.
nonNull
(
data
))
{
if
(
Objects
.
nonNull
(
data
))
{
...
@@ -243,7 +242,7 @@ public class PaymentHandle {
...
@@ -243,7 +242,7 @@ public class PaymentHandle {
if
(
refundRequest
.
getTotalAmount
()
==
null
||
refundRequest
.
getTotalAmount
()
==
0L
)
{
if
(
refundRequest
.
getTotalAmount
()
==
null
||
refundRequest
.
getTotalAmount
()
==
0L
)
{
refundRequest
.
setTotalAmount
(
refundRequest
.
getRefundAmount
());
refundRequest
.
setTotalAmount
(
refundRequest
.
getRefundAmount
());
}
}
AssortmentOpenPlatformIappWxappStore
wxAppStore
=
this
.
assortmentOpenPlatformIappWxappStoreManager
.
selectWxappStoreByWxAppIdAndStoreId
(
refundRequest
.
getAppId
(),
refundRequest
.
getStoreId
(),
payCode
);
//
AssortmentOpenPlatformIappWxappStore wxAppStore = this.assortmentOpenPlatformIappWxappStoreManager.selectWxappStoreByWxAppIdAndStoreId(refundRequest.getAppId(), refundRequest.getStoreId(), payCode);
PayRefundRequestDto
request
=
new
PayRefundRequestDto
();
PayRefundRequestDto
request
=
new
PayRefundRequestDto
();
request
.
setStoreId
(
refundRequest
.
getStoreId
());
request
.
setStoreId
(
refundRequest
.
getStoreId
());
request
.
setStationId
(
refundRequest
.
getStationId
());
request
.
setStationId
(
refundRequest
.
getStationId
());
...
@@ -259,7 +258,7 @@ public class PaymentHandle {
...
@@ -259,7 +258,7 @@ public class PaymentHandle {
request
.
setPartnerId
(
refundRequest
.
getPartnerId
());
request
.
setPartnerId
(
refundRequest
.
getPartnerId
());
request
.
setVer
(
2
);
request
.
setVer
(
2
);
request
.
setExtendParams
(
refundRequest
.
getExtendParams
());
request
.
setExtendParams
(
refundRequest
.
getExtendParams
());
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
=
this
.
checkParam
(
refundRequest
.
getPartnerId
(),
refundRequest
.
getStoreId
(),
refundRequest
.
getRefundAmount
()
,
wxAppStore
);
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
=
this
.
checkParam
(
refundRequest
.
getPartnerId
(),
refundRequest
.
getStoreId
(),
refundRequest
.
getRefundAmount
());
if
(!
Objects
.
equals
(
checkParam
.
getCode
(),
"100"
))
{
if
(!
Objects
.
equals
(
checkParam
.
getCode
(),
"100"
))
{
return
null
;
return
null
;
}
}
...
@@ -433,7 +432,7 @@ public class PaymentHandle {
...
@@ -433,7 +432,7 @@ public class PaymentHandle {
}
}
private
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
OrderRefundResponse
>
checkParam
(
String
partnerId
,
String
storeId
,
Long
amount
,
AssortmentOpenPlatformIappWxappStore
wxAppStore
)
{
private
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"
,
"商户号不能为空"
);
}
else
if
(
StringUtils
.
isBlank
(
storeId
))
{
}
else
if
(
StringUtils
.
isBlank
(
storeId
))
{
...
@@ -441,7 +440,7 @@ public class PaymentHandle {
...
@@ -441,7 +440,7 @@ public class PaymentHandle {
}
else
if
(
amount
==
null
)
{
}
else
if
(
amount
==
null
)
{
return
ResponseUtils
.
error
(
"501"
,
"金额不能为空"
);
return
ResponseUtils
.
error
(
"501"
,
"金额不能为空"
);
}
else
{
}
else
{
return
wxAppStore
==
null
?
ResponseUtils
.
error
(
"500"
,
"支付信息没有配置"
)
:
ResponseUtils
.
success
();
return
ResponseUtils
.
success
();
}
}
}
}
...
...
order-management/src/main/java/cn/freemud/management/service/handle/SaasOrderHandle.java
View file @
b7771235
...
@@ -3,6 +3,7 @@ package cn.freemud.management.service.handle;
...
@@ -3,6 +3,7 @@ package cn.freemud.management.service.handle;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.AfterSalesApplyClientEnum
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.util.ResponseUtil
;
import
cn.freemud.management.util.ResponseUtil
;
...
@@ -11,12 +12,14 @@ import com.freemud.application.sdk.api.log.LogThreadLocal;
...
@@ -11,12 +12,14 @@ import com.freemud.application.sdk.api.log.LogThreadLocal;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1
;
import
com.freemud.application.sdk.api.ordercenter.entities.vo.OrderCallBackRequestVo
;
import
com.freemud.application.sdk.api.ordercenter.entities.vo.OrderCallBackRequestVo
;
import
com.freemud.application.sdk.api.ordercenter.enums.orderv1.RefundStatusV1
;
import
com.freemud.application.sdk.api.ordercenter.enums.orderv1.RefundStatusV1
;
import
com.freemud.application.sdk.api.ordercenter.request.AfterSalesRefundFailReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCodeReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCodeReq
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.entities.other.OtherParamDTO
;
import
com.freemud.sdk.api.assortment.order.entities.other.OtherParamDTO
;
import
com.freemud.sdk.api.assortment.order.enums.AfterSalesRefunStateEnum
;
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.BaseQueryOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
...
@@ -75,7 +78,7 @@ public class SaasOrderHandle {
...
@@ -75,7 +78,7 @@ public class SaasOrderHandle {
dto
.
setDispatchTimeout
(
request
.
getDispatchTimeout
());
dto
.
setDispatchTimeout
(
request
.
getDispatchTimeout
());
BaseQueryOrderRequest
orderConfirmRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
,
dto
);
BaseQueryOrderRequest
orderConfirmRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
,
dto
);
orderSdkAdapter
.
convert2wmDeliveryTimeOut
(
orderConfirmRequest
,
this
.
wmDeliveryTimeOut
);
orderSdkAdapter
.
convert2wmDeliveryTimeOut
(
orderConfirmRequest
,
this
.
wmDeliveryTimeOut
);
if
(
Objects
.
nonNull
(
request
.
getTimeout
()))
{
if
(
Objects
.
nonNull
(
request
.
getTimeout
()))
{
orderConfirmRequest
.
setPreTimeout
(
request
.
getTimeout
());
orderConfirmRequest
.
setPreTimeout
(
request
.
getTimeout
());
}
}
...
@@ -97,13 +100,14 @@ public class SaasOrderHandle {
...
@@ -97,13 +100,14 @@ public class SaasOrderHandle {
/**
/**
* 更新取餐码
* 更新取餐码
*
* @param request
* @param request
* @param orderBean
* @param orderBean
* @return
* @return
*/
*/
public
BaseResponse
updatePickUpGoodNo
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
public
BaseResponse
updatePickUpGoodNo
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
// 更新取餐码
// 更新取餐码
OrderModifyRelatingCodeReq
relatingCodeReq
=
new
OrderModifyRelatingCodeReq
();
OrderModifyRelatingCodeReq
relatingCodeReq
=
new
OrderModifyRelatingCodeReq
();
relatingCodeReq
.
setOrderCode
(
orderBean
.
getOid
());
relatingCodeReq
.
setOrderCode
(
orderBean
.
getOid
());
relatingCodeReq
.
setOperator
(
request
.
getOperator
());
relatingCodeReq
.
setOperator
(
request
.
getOperator
());
relatingCodeReq
.
setPartnerId
(
request
.
getPartnerId
());
relatingCodeReq
.
setPartnerId
(
request
.
getPartnerId
());
...
@@ -145,7 +149,7 @@ public class SaasOrderHandle {
...
@@ -145,7 +149,7 @@ public class SaasOrderHandle {
*/
*/
public
BaseResponse
orderDelivery
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
public
BaseResponse
orderDelivery
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
BaseQueryOrderRequest
orderDeliveryRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
);
BaseQueryOrderRequest
orderDeliveryRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
);
orderDeliveryRequest
=
orderSdkAdapter
.
convert2wmDeliveryTimeOut
(
orderDeliveryRequest
,
this
.
wmDeliveryTimeOut
);
orderDeliveryRequest
=
orderSdkAdapter
.
convert2wmDeliveryTimeOut
(
orderDeliveryRequest
,
this
.
wmDeliveryTimeOut
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderSend
(
orderDeliveryRequest
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderSend
(
orderDeliveryRequest
);
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
()))
{
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_FAIL
);
return
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_FAIL
);
...
@@ -220,11 +224,16 @@ public class SaasOrderHandle {
...
@@ -220,11 +224,16 @@ 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
()))
{
baseOrderResponse
=
orderCenterSdkService
.
refundComplete
(
refundAgreeRequest
);
// fisherman 判断是否在退款中, 如果是退款中 调用退货完成
}
else
if
(
PayRefundStatus
.
RUNNING
.
equals
(
refundResponse
.
getPayRefundStatus
())
&&
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesStatus
()
!=
4
){
if
(
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesStatus
().
compareTo
(
AfterSalesRefunStateEnum
.
STATE_1
.
getIndex
())
!=
0
)
{
baseOrderResponse
=
orderCenterSdkService
.
orderRefundComplete
(
refundAgreeRequest
);
}
else
{
baseOrderResponse
=
orderCenterSdkService
.
refundComplete
(
refundAgreeRequest
);
}
}
else
if
(
PayRefundStatus
.
RUNNING
.
equals
(
refundResponse
.
getPayRefundStatus
())
&&
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesStatus
()
!=
4
)
{
//退款中, 基础服务售后状态不能为4,等待商家再次发起同意退款
//退款中, 基础服务售后状态不能为4,等待商家再次发起同意退款
baseOrderResponse
=
orderCenterSdkService
.
refundReturn
(
refundAgreeRequest
);
baseOrderResponse
=
orderCenterSdkService
.
refundReturn
(
refundAgreeRequest
);
}
else
{
}
else
{
return
ResponseUtil
.
success
();
return
ResponseUtil
.
success
();
}
}
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
()))
{
if
(
baseOrderResponse
==
null
||
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
baseOrderResponse
.
getErrcode
().
toString
()))
{
...
@@ -234,6 +243,42 @@ public class SaasOrderHandle {
...
@@ -234,6 +243,42 @@ public class SaasOrderHandle {
}
}
/**
/**
* 处理支付 退款回调 订单业务处理
*
* @param request
* @param refundResponse
* @param orderBean
*/
public
void
refundAgreeByCallback
(
OrderManagerRequest
request
,
PayRefundResponse
refundResponse
,
OrderBeanV1
orderBean
)
{
BaseQueryOrderRequest
refundAgreeRequest
=
orderSdkAdapter
.
getRefundAgreeRequest
(
refundResponse
.
getRefundId
(),
request
.
getReason
(),
request
.
getOperator
(),
orderBean
);
refundAgreeRequest
.
setRefundState
(
PayRefundStatus
.
SUCCESS
.
getCode
().
equals
(
refundResponse
.
getPayRefundStatus
().
getCode
())
?
4
:
2
);
refundAgreeRequest
.
setOperationClient
(
request
.
getOperationClient
());
PayRefundStatus
payRefundStatus
=
refundResponse
.
getPayRefundStatus
();
if
(
payRefundStatus
.
getCode
().
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
()))
{
// 退款成功 调用 -> /afterSales/v2/adultRefundComplete
orderCenterSdkService
.
orderRefundComplete
(
refundAgreeRequest
);
}
else
{
// 退款失败 只记录失败日志
AfterSalesRefundFailReq
refundFailReq
=
this
.
getAfterSalesRefundFailReq
(
orderBean
,
"refundSuccessCallback"
,
AfterSalesApplyClientEnum
.
STATE_6
.
getIndex
(),
refundResponse
.
getMessage
());
orderSdkService
.
refundFail
(
refundFailReq
,
LogThreadLocal
.
getTrackingNo
());
}
}
private
AfterSalesRefundFailReq
getAfterSalesRefundFailReq
(
OrderBeanV1
orderBean
,
String
operator
,
Integer
operationClient
,
String
refundFailReason
)
{
AfterSalesRefundFailReq
refundFailReq
=
new
AfterSalesRefundFailReq
();
refundFailReq
.
setOrderCode
(
orderBean
.
getOid
());
refundFailReq
.
setPartnerId
(
orderBean
.
getCompanyId
());
refundFailReq
.
setRefundFailReason
(
refundFailReason
);
refundFailReq
.
setAfterSalesCode
(
orderBean
.
getAfterSalesOrderResp
().
getAfterSalesCode
());
refundFailReq
.
setOperationClient
(
operationClient
);
refundFailReq
.
setOperator
(
operator
);
return
refundFailReq
;
}
/**
* 麦咖啡同意退款
* 麦咖啡同意退款
*
*
* @param request
* @param request
...
@@ -287,6 +332,7 @@ public class SaasOrderHandle {
...
@@ -287,6 +332,7 @@ public class SaasOrderHandle {
/**
/**
* 拒绝退款
* 拒绝退款
*
* @param request
* @param request
* @param orderBean
* @param orderBean
* @return
* @return
...
@@ -303,6 +349,7 @@ public class SaasOrderHandle {
...
@@ -303,6 +349,7 @@ public class SaasOrderHandle {
/**
/**
* 麦咖啡拒绝退款
* 麦咖啡拒绝退款
*
* @param request
* @param request
* @param orderBean
* @param orderBean
* @return
* @return
...
@@ -310,7 +357,7 @@ public class SaasOrderHandle {
...
@@ -310,7 +357,7 @@ public class SaasOrderHandle {
public
BaseResponse
mcCafeRefundReject
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
public
BaseResponse
mcCafeRefundReject
(
OrderManagerRequest
request
,
OrderBeanV1
orderBean
)
{
CancelOrderRequest
rejectRefundRequest
=
orderSdkAdapter
.
getRejectRefundRequest
(
request
.
getOperator
(),
request
.
getReason
(),
orderBean
);
CancelOrderRequest
rejectRefundRequest
=
orderSdkAdapter
.
getRejectRefundRequest
(
request
.
getOperator
(),
request
.
getReason
(),
orderBean
);
BaseOrderResponse
baseOrderResponse
=
null
;
BaseOrderResponse
baseOrderResponse
=
null
;
for
(
int
i
=
0
;
i
<
orderBean
.
getRefundList
().
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
orderBean
.
getRefundList
().
size
();
i
++)
{
if
(
RefundStatusV1
.
APPLY_REFUND
.
getCodeV1
().
equals
(
orderBean
.
getRefundList
().
get
(
i
).
getStatus
()))
{
if
(
RefundStatusV1
.
APPLY_REFUND
.
getCodeV1
().
equals
(
orderBean
.
getRefundList
().
get
(
i
).
getStatus
()))
{
rejectRefundRequest
.
setAfterSalesCode
(
orderBean
.
getRefundList
().
get
(
i
).
getRid
());
rejectRefundRequest
.
setAfterSalesCode
(
orderBean
.
getRefundList
().
get
(
i
).
getRid
());
...
@@ -333,7 +380,7 @@ public class SaasOrderHandle {
...
@@ -333,7 +380,7 @@ public class SaasOrderHandle {
* 取消订单
* 取消订单
*/
*/
@Deprecated
@Deprecated
public
BaseResponse
orderCancel
(
OrderManagerRequest
request
,
PayRefundResponse
refundResponse
,
OrderBeanV1
orderBean
)
{
public
BaseResponse
orderCancel
(
OrderManagerRequest
request
,
PayRefundResponse
refundResponse
,
OrderBeanV1
orderBean
)
{
//作废订单
//作废订单
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
getCancelOrderRequest
(
request
.
getOperator
(),
request
.
getReason
(),
refundResponse
.
getPayRefundStatus
(),
refundResponse
.
getRefundId
(),
orderBean
);
CancelOrderRequest
cancelOrderRequest
=
orderSdkAdapter
.
getCancelOrderRequest
(
request
.
getOperator
(),
request
.
getReason
(),
refundResponse
.
getPayRefundStatus
(),
refundResponse
.
getRefundId
(),
orderBean
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
BaseOrderResponse
baseOrderResponse
=
orderCenterSdkService
.
orderCancel
(
cancelOrderRequest
);
...
@@ -345,10 +392,11 @@ public class SaasOrderHandle {
...
@@ -345,10 +392,11 @@ public class SaasOrderHandle {
/**
/**
* 转换成callback消息体
* 转换成callback消息体
* @param orderCode 订单编号
*
* @param orderState cn.freemud.shared.order.enums.order.OrderStatus.API_DESC="订单状态 1:待支付 2:下单 3:已接单 4:制作完成(待发货) 5:配送中 6:已完 7:已关闭";
* @param orderCode 订单编号
* @param orderState cn.freemud.shared.order.enums.order.OrderStatus.API_DESC="订单状态 1:待支付 2:下单 3:已接单 4:制作完成(待发货) 5:配送中 6:已完 7:已关闭";
* @param operateType 操作类型 0= 其他信息修改,1=订单正向操作,2=订单逆向操作,3=通知消息
* @param operateType 操作类型 0= 其他信息修改,1=订单正向操作,2=订单逆向操作,3=通知消息
* @param msgType 消息类型 MsgType() 1:订单信息变化通知通知
* @param msgType
消息类型 MsgType() 1:订单信息变化通知通知
* @return
* @return
*/
*/
public
OrderCallBackRequestVo
convert2CallbackReq
(
String
orderCode
,
Integer
orderState
,
Integer
operateType
,
String
msgType
)
{
public
OrderCallBackRequestVo
convert2CallbackReq
(
String
orderCode
,
Integer
orderState
,
Integer
operateType
,
String
msgType
)
{
...
@@ -377,4 +425,5 @@ public class SaasOrderHandle {
...
@@ -377,4 +425,5 @@ public class SaasOrderHandle {
return
notifyDto
;
return
notifyDto
;
}
}
}
}
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
b7771235
...
@@ -473,12 +473,6 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -473,12 +473,6 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
PayRefundStatus
payRefundStatus
=
PayRefundStatus
.
SUCCESS
;
PayRefundStatus
payRefundStatus
=
PayRefundStatus
.
SUCCESS
;
if
(!
Objects
.
equals
(
refundStatus
,
"100"
))
{
if
(!
Objects
.
equals
(
refundStatus
,
"100"
))
{
payRefundStatus
=
PayRefundStatus
.
FAIL
;
payRefundStatus
=
PayRefundStatus
.
FAIL
;
// 告知基础服务 退款失败
AfterSalesRefundFailReq
refundFailReq
=
this
.
getAfterSalesRefundFailReq
(
orderBean
,
"refundSuccessCallback"
,
AfterSalesApplyClientEnum
.
STATE_6
.
getIndex
(),
refundResponse
.
getMessage
());
orderSdkService
.
refundFail
(
refundFailReq
,
LogThreadLocal
.
getTrackingNo
());
}
}
refundResponse
.
setPayRefundStatus
(
payRefundStatus
);
refundResponse
.
setPayRefundStatus
(
payRefundStatus
);
refundResponse
.
setRefundId
(
request
.
getRefundId
());
refundResponse
.
setRefundId
(
request
.
getRefundId
());
...
@@ -486,7 +480,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
...
@@ -486,7 +480,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
OrderManagerRequest
omRequest
=
new
OrderManagerRequest
();
OrderManagerRequest
omRequest
=
new
OrderManagerRequest
();
omRequest
.
setReason
(
reason
);
omRequest
.
setReason
(
reason
);
omRequest
.
setOperator
(
"支付退款回调系统补偿"
);
omRequest
.
setOperator
(
"支付退款回调系统补偿"
);
saasOrderHandle
.
refundAgree
(
omRequest
,
refundResponse
,
orderBean
);
saasOrderHandle
.
refundAgree
ByCallback
(
omRequest
,
refundResponse
,
orderBean
);
// 退款失败 不应该走 冲正逻辑
// 退款失败 不应该走 冲正逻辑
if
(
payRefundStatus
.
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
if
(
payRefundStatus
.
getCode
().
compareTo
(
PayRefundStatus
.
SUCCESS
.
getCode
())
!=
0
)
{
...
...
shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingEquallyService.java
View file @
b7771235
...
@@ -121,7 +121,10 @@ public class CalculationSharingEquallyService {
...
@@ -121,7 +121,10 @@ public class CalculationSharingEquallyService {
Goods
find
=
null
;
Goods
find
=
null
;
for
(
CartGoods
product
:
shoppingCartGoodsResponseVo
.
getProducts
())
{
for
(
CartGoods
product
:
shoppingCartGoodsResponseVo
.
getProducts
())
{
if
(
goods
!=
null
)
{
if
(
goods
!=
null
)
{
find
=
goods
.
stream
().
filter
((
k
)
->
k
.
getCartGoodsUid
().
equals
(
product
.
getCartGoodsUid
())).
findFirst
().
orElseGet
(
null
);
Optional
<
Goods
>
first
=
goods
.
stream
().
filter
((
k
)
->
k
.
getCartGoodsUid
().
equals
(
product
.
getCartGoodsUid
())).
findFirst
();
if
(
first
.
isPresent
())
{
find
=
first
.
get
();
}
}
}
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoodsDetailDto
=
calculationCommonService
.
convertCartGoods2DetailGoodsList
(
find
,
product
,
shoppingCartInfoRequestVo
.
getPartnerId
());
ShoppingCartGoodsDto
.
CartGoodsDetailDto
cartGoodsDetailDto
=
calculationCommonService
.
convertCartGoods2DetailGoodsList
(
find
,
product
,
shoppingCartInfoRequestVo
.
getPartnerId
());
cartGoodsDetailDtoList
.
add
(
cartGoodsDetailDto
);
cartGoodsDetailDtoList
.
add
(
cartGoodsDetailDto
);
...
...
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