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
1d534cd1
Commit
1d534cd1
authored
Jul 01, 2021
by
zhiheng.zhang
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'remotes/origin/feature/20210610-开放平台取消订单接口移动-张志恒'
parents
e985febb
3cabbc9e
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
269 additions
and
4 deletions
+269
-4
order-management/pom.xml
+5
-0
order-management/src/main/java/cn/freemud/management/adapter/PaymentSdkAdapter.java
+16
-0
order-management/src/main/java/cn/freemud/management/controller/OrderManagerController.java
+2
-0
order-management/src/main/java/cn/freemud/management/enums/OperateType.java
+2
-2
order-management/src/main/java/cn/freemud/management/enums/ResponseResult.java
+3
-0
order-management/src/main/java/cn/freemud/management/enums/SettlementTypeEnum.java
+28
-0
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
+12
-0
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
+22
-0
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
+36
-0
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+141
-1
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OperateType.java
+2
-1
No files found.
order-management/pom.xml
View file @
1d534cd1
...
...
@@ -75,6 +75,11 @@
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
paymentcenter-sdk
</artifactId>
<version>
2.9.8.RELEASE
</version>
</dependency>
<dependency>
<artifactId>
structure-center-sdk
</artifactId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<version>
1.2.3.RELEASE
</version>
...
...
order-management/src/main/java/cn/freemud/management/adapter/PaymentSdkAdapter.java
View file @
1d534cd1
...
...
@@ -2,6 +2,7 @@ package cn.freemud.management.adapter;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.OrderRefundNewRequest
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
lombok.SneakyThrows
;
...
...
@@ -9,6 +10,7 @@ import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.util.UUID
;
/**
* All rights Reserved, Designed By www.freemud.cn
...
...
@@ -43,6 +45,20 @@ public class PaymentSdkAdapter {
return
refundRequestDTO
;
}
public
OrderRefundNewRequest
convert2OrderRefundNewRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
order
,
OrderExtInfoDto
orderExtInfoDto
)
{
OrderRefundNewRequest
refundRequest
=
new
OrderRefundNewRequest
();
refundRequest
.
setPartnerId
(
order
.
getCompanyId
());
refundRequest
.
setVer
(
2
);
refundRequest
.
setStoreId
(
order
.
getShopId
());
refundRequest
.
setStationId
(
"1"
);
refundRequest
.
setTransId
(
order
.
getOid
());
refundRequest
.
setFmId
(
orderExtInfoDto
.
getFmId
());
refundRequest
.
setRefundId
(
UUID
.
randomUUID
().
toString
());
refundRequest
.
setTotalAmount
(
Long
.
valueOf
(
orderExtInfoDto
.
getSvcAmount
()));
refundRequest
.
setRefundAmount
(
Long
.
valueOf
(
orderExtInfoDto
.
getSvcAmount
()));
return
refundRequest
;
}
@SneakyThrows
public
MultiOrderRefundRequest
getMultiOrderPayRefundRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
BigDecimal
refundAmount
)
{
MultiOrderRefundRequest
multiQueryRequest
=
new
MultiOrderRefundRequest
();
...
...
order-management/src/main/java/cn/freemud/management/controller/OrderManagerController.java
View file @
1d534cd1
...
...
@@ -62,6 +62,8 @@ public class OrderManagerController {
return
orderManagerAdapter
.
orderAgreeRefund
(
request
);
case
ORDER_REJECT_REFUND:
return
orderManagerAdapter
.
orderRejectRefund
(
request
);
case
ORDER_CANCEL:
return
orderManagerAdapter
.
orderCancel
(
request
);
default
:
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_OPERATE_TYPE_NOT_VALIDATE
);
}
...
...
order-management/src/main/java/cn/freemud/management/enums/OperateType.java
View file @
1d534cd1
...
...
@@ -10,8 +10,8 @@ public enum OperateType {
ORDER_SEND
(
"orderSend"
,
"送出"
),
ORDER_AFFIRM
(
"orderAffirm"
,
"完成"
),
ORDER_AGREE_REFUND
(
"orderAgreeRefund"
,
"同意退款"
),
ORDER_REJECT_REFUND
(
"orderRejectRefund"
,
"拒绝退款"
)
;
ORDER_REJECT_REFUND
(
"orderRejectRefund"
,
"拒绝退款"
)
,
ORDER_CANCEL
(
"orderCancel"
,
"订单取消"
);
/**
* 操作类型
...
...
order-management/src/main/java/cn/freemud/management/enums/ResponseResult.java
View file @
1d534cd1
...
...
@@ -170,6 +170,9 @@ public enum ResponseResult {
ORDER_STATUS_FAILED
(
"45085"
,
"订单状态错误"
),
ORDER_MOVE_FAILED
(
"45086"
,
"三方配送正在进行,不允许操作"
),
AGREE_REFUND_APPLY_ORDER_FAIL
(
"45087"
,
"同意退款申请失败"
),
AGREE_REFUND_APPLY_ORDER_NOT_ALLOW
(
"45088"
,
"商户配置不允许退款,请检查商户配置"
),
PARTNER_ORDER_CANCEL_ERROR
(
"45089"
,
"取消订单失败"
),
/**
* 支付
*/
...
...
order-management/src/main/java/cn/freemud/management/enums/SettlementTypeEnum.java
0 → 100644
View file @
1d534cd1
package
cn
.
freemud
.
management
.
enums
;
public
enum
SettlementTypeEnum
{
OFFLINE_PAY
(
219
,
"线下支付"
),
POINTS
(
200
,
"积分抵扣"
),
CASH_COUPON
(
10
,
"代金券"
),
DISCOUNT_COUPON
(
208
,
"折扣券"
),
PRODUCT_COUPON
(
118
,
"商品券"
),
;
private
int
settlementType
;
private
String
desc
;
SettlementTypeEnum
(
int
settlementType
,
String
desc
)
{
this
.
settlementType
=
settlementType
;
this
.
desc
=
desc
;
}
public
int
getSettlementType
()
{
return
settlementType
;
}
public
String
getDesc
()
{
return
desc
;
}
}
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
View file @
1d534cd1
...
...
@@ -207,6 +207,18 @@ public class OrderManagerAdapter {
}
/**
* 取消订单
* @param request
* @return
*/
public
BaseResponse
orderCancel
(
OrderManagerRequest
request
)
{
//查询订单
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
orderBaseService
.
getByOrderCode
(
request
.
getOrderId
());
BaseResponse
<
OrderManagerResponse
>
orderManagerResponse
=
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderCancel
(
request
,
orderBean
);
return
handleResponse
(
request
,
orderBean
,
orderManagerResponse
);
}
/**
* 拒绝退款
* @param request
* @return
...
...
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
View file @
1d534cd1
...
...
@@ -17,11 +17,13 @@ import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import
com.freemud.sdk.api.assortment.message.enums.OrderType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.enums.OrderSourceType
;
import
com.freemud.sdk.api.assortment.order.enums.RefundStatus
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -418,6 +420,26 @@ public class OrderVerifyHandle {
}
/**
* 取消退款
* @param orderBean
* @param request
* @return
*/
public
BaseResponse
orderCancel
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
OrderManagerRequest
request
,
String
opType
)
{
List
<
String
>
standardPaymentRefundSourceList
=
Lists
.
newArrayList
(
OrderSourceType
.
SAAS
.
getCode
(),
OrderSourceType
.
APP
.
getCode
(),
OrderSourceType
.
ALIPAY
.
getCode
());
// 商家同意退款时,校验订单是否能退款(B端后台"订单退款设置")
boolean
isCanRefund
=
true
;
if
(
Objects
.
equals
(
OperateType
.
ORDER_AGREE_REFUND
,
opType
)
&&
standardPaymentRefundSourceList
.
contains
(
orderBean
.
getSource
()))
{
isCanRefund
=
getRefundConfig
(
orderBean
);
if
(!
isCanRefund
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
AGREE_REFUND_APPLY_ORDER_NOT_ALLOW
);
}
}
return
ResponseUtil
.
success
();
}
/**
* 拒绝退款
* @param orderBean
* @param request
...
...
order-management/src/main/java/cn/freemud/management/service/handle/PaymentHandle.java
View file @
1d534cd1
...
...
@@ -10,8 +10,13 @@ import cn.freemud.management.util.RedisUtil;
import
cn.freemud.redis.RedisCache
;
import
com.freemud.application.sdk.api.base.BaseResponse
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.paymentcenter.client.request.OrderRefundNewRequest
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.RefundNewResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
import
com.freemud.sdk.api.assortment.order.enums.OldOrderType
;
import
com.freemud.sdk.api.assortment.order.enums.PayRefundStatus
;
import
com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest
;
...
...
@@ -62,6 +67,9 @@ public class PaymentHandle {
private
MulitiPaymentClient
mulitiPaymentClient
;
@Autowired
private
RedisCache
redisCache
;
@Autowired
private
PaymentNewService
paymentNewService
;
/**
* 退款
* @param request
...
...
@@ -91,6 +99,34 @@ public class PaymentHandle {
return
handlePayRefundResponse
(
refundStatus
,
orderRefundRequest
.
getRefundId
());
}
/**
* 退款
* @param orderBean
* @return
*/
public
PayRefundResponse
newOrderRefund
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
OrderExtInfoDto
orderExtInfoDto
){
PayRefundStatus
refundStatus
=
PayRefundStatus
.
SUCCESS
;
OrderRefundNewRequest
refundRequest
=
paymentSdkAdapter
.
convert2OrderRefundNewRequest
(
orderBean
,
orderExtInfoDto
);
if
(
ObjectUtils
.
equals
(
orderBean
.
getAmount
(),
0L
))
{
return
handlePayRefundResponse
(
refundStatus
,
refundRequest
.
getRefundId
());
}
com
.
freemud
.
application
.
sdk
.
api
.
base
.
BaseResponse
<
RefundNewResponse
>
orderRefundResponse
;
try
{
orderRefundResponse
=
paymentNewService
.
newOrderRefund
(
refundRequest
,
LogThreadLocal
.
getTrackingNo
());
}
catch
(
Exception
ex
){
ErrorLog
.
errorConvertJson
(
this
.
getClass
(),
"paymentNewService.newOrderRefundError"
,
ex
);
throw
new
OrderServiceException
(
ResponseResult
.
REFUND_EXCEPTION
);
}
if
(
orderRefundResponse
==
null
){
throw
new
OrderServiceException
(
ResponseResult
.
REFUND_EXCEPTION
);
}
if
(
ObjectUtils
.
notEqual
(
orderRefundResponse
.
getCode
(),
SUCCESS
)){
throw
new
OrderServiceException
(
ResponseResult
.
REFUND_FAIL
,
orderRefundResponse
.
getMessage
());
}
refundStatus
=
ObjectUtils
.
equals
(
PayRefundStatus
.
SUCCESS
.
getCode
(),
orderRefundResponse
.
getData
().
getCode
())?
PayRefundStatus
.
SUCCESS
:
PayRefundStatus
.
FAIL
;
return
handlePayRefundResponse
(
refundStatus
,
refundRequest
.
getRefundId
());
}
/**
* 麦咖啡退款
* @param request
* @param orderBean
...
...
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
View file @
1d534cd1
...
...
@@ -6,19 +6,51 @@ import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import
cn.freemud.management.entities.dto.response.pay.PayRefundResponse
;
import
cn.freemud.management.enums.OperateType
;
import
cn.freemud.management.enums.RefundStatus
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.enums.SettlementTypeEnum
;
import
cn.freemud.management.intercept.OrderServiceException
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.handle.*
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig
;
import
com.freemud.application.sdk.api.couponcenter.offline.domain.TransactionVO
;
import
com.freemud.application.sdk.api.couponcenter.offline.request.CouponRequest
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.ordercenter.enums.AbnormalStateEnum
;
import
com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType
;
import
com.freemud.application.sdk.api.ordercenter.enums.OrderClientType
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderCancelReq
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.ordercenter.request.SdkUpdateAbnormalState
;
import
com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp
;
import
com.freemud.application.sdk.api.ordercenter.service.OrderSdkService
;
import
com.freemud.application.sdk.api.service.EmailAlertService
;
import
com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.application.sdk.api.storecenter.service.StoreCenterService
;
import
com.freemud.sdk.api.assortment.order.enums.*
;
import
com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.google.common.collect.Lists
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
static
cn
.
freemud
.
management
.
enums
.
OperateType
.
ORDER_AGREE_REFUND
;
import
static
cn
.
freemud
.
management
.
enums
.
OperateType
.
ORDER_CANCEL
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
...
...
@@ -46,6 +78,13 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
private
StockHandle
stockHandle
;
@Autowired
private
DeliveryHandle
deliveryHandle
;
@Autowired
private
OrderVerifyHandle
orderVerifyHandle
;
@Autowired
private
OrderSdkService
orderSdkService
;
@Autowired
private
EmailAlertService
emailAlertService
;
private
static
final
int
SUCCESS
=
100
;
/**
* 接单
...
...
@@ -174,7 +213,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
//订单同意退款
saasOrderHandle
.
refundAgree
(
request
,
refundResponse
,
orderBean
);
// 推送pos、微信消息中心
orderBaseService
.
sendMessage
(
orderBean
,
O
perateType
.
O
RDER_AGREE_REFUND
,
request
.
getReason
());
orderBaseService
.
sendMessage
(
orderBean
,
ORDER_AGREE_REFUND
,
request
.
getReason
());
//todo 可以考虑基于订单回调异步实现
//冲正库存
stockHandle
.
revert
(
request
,
orderBean
);
...
...
@@ -197,4 +236,105 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
return
ResponseUtil
.
success
();
}
/**
* 取消订单
*/
@Override
public
BaseResponse
<
OrderManagerResponse
>
orderCancel
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
List
<
Integer
>
oldOrderStatusList
=
Arrays
.
asList
(
OldOrderStatus
.
RECEIPT
.
getCode
(),
OldOrderStatus
.
COMPLETE
.
getCode
(),
OldOrderStatus
.
COMPLETE_MAKE
.
getCode
());
List
<
String
>
sourceList
=
Arrays
.
asList
(
OrderSourceType
.
SAAS
.
getCode
(),
OrderSourceType
.
ALIPAY
.
getCode
(),
OrderSourceType
.
APP
.
getCode
());
if
(
sourceList
.
contains
(
orderBean
.
getSource
())
&&
oldOrderStatusList
.
contains
(
orderBean
.
getStatus
()))
{
return
executeRefund
(
request
,
orderBean
,
OperateType
.
ORDER_REJECT
.
getOpType
());
}
else
if
(
OrderSourceType
.
MEAL
.
getCode
().
equals
(
orderBean
.
getSource
()))
{
if
(
OldOrderStatus
.
WAIT_PAY
.
getCode
().
equals
(
orderBean
.
getStatus
())
||
PayType
.
CASH_ON_DELIVERY
.
getCode
()
==
orderBean
.
getPayType
())
{
return
executeCancel
(
request
,
orderBean
,
PayRefundStatus
.
SUCCESS
.
getCode
(),
AfterSalesType
.
SYSTEM_CANCEL
.
getIndex
(),
Integer
.
valueOf
(
orderBean
.
getOrderClient
()));
}
else
{
return
executeRefund
(
request
,
orderBean
,
OperateType
.
ORDER_REJECT
.
getOpType
());
}
}
else
if
(
OrderSourceType
.
POS
.
getCode
().
equals
(
orderBean
.
getSource
()))
{
return
posCancel
(
orderBean
);
}
return
ResponseUtil
.
success
();
}
/**
* 退款操作
* @param request
* @param orderBean
* @param operationType
* @return
*/
private
BaseResponse
<
OrderManagerResponse
>
executeRefund
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
String
operationType
)
{
//订单接单参数校验
BaseResponse
verifyResponse
=
orderVerifyHandle
.
orderCancel
(
orderBean
,
request
,
OperateType
.
ORDER_AGREE_REFUND
.
getOpType
());
if
(
ObjectUtils
.
notEqual
(
verifyResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
return
ResponseUtil
.
error
(
verifyResponse
.
getCode
());
}
BaseResponse
<
OrderManagerResponse
>
baseResponse
=
null
;
//调用oms拒绝订单
if
(
operationType
.
equalsIgnoreCase
(
OperateType
.
ORDER_REJECT
.
getOpType
()))
{
baseResponse
=
this
.
orderReject
(
request
,
orderBean
);
}
if
(
null
==
baseResponse
||
!
ObjectUtils
.
equals
(
SUCCESS
,
Integer
.
valueOf
(
baseResponse
.
getCode
()))){
emailAlertService
.
sendEmailAlert
(
"商家取消订单失败"
,
"请求json:"
+
JSONObject
.
toJSONString
(
orderBean
)
+
"返回msg:"
+
baseResponse
.
getMessage
());
return
ResponseUtil
.
error
(
ResponseResult
.
PARTNER_ORDER_CANCEL_ERROR
);
}
return
ResponseUtil
.
success
();
}
/**
* 拒单在支付退款后的取消订单操作
*
* @param order 订单详情
* @param refundStatus 支付退款状态
* @return
*/
private
BaseResponse
<
OrderManagerResponse
>
executeCancel
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
order
,
Integer
refundStatus
,
Integer
afterSalesType
,
Integer
orderClient
)
{
Integer
createEvent
;
if
(
PayRefundStatus
.
RUNNING
.
getCode
().
equals
(
refundStatus
))
{
createEvent
=
5
;
}
else
if
(
PayRefundStatus
.
SUCCESS
.
getCode
().
equals
(
refundStatus
))
{
createEvent
=
4
;
}
else
{
createEvent
=
5
;
}
OrderCancelReq
orderCancelReq
=
new
OrderCancelReq
();
orderCancelReq
.
setPartnerId
(
order
.
getCompanyId
());
orderCancelReq
.
setOrderCode
(
order
.
getOid
());
orderCancelReq
.
setCancelReason
(
request
.
getReason
());
orderCancelReq
.
setAfterSalesType
(
afterSalesType
);
orderCancelReq
.
setCreateEvent
(
createEvent
);
orderCancelReq
.
setOrderClient
(
orderClient
==
null
?
OrderClientType
.
SAAS
.
getIndex
()
:
orderClient
);
orderCancelReq
.
setOperator
(
request
.
getOperator
());
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
baseResponse
=
orderSdkService
.
cancelOrder
(
orderCancelReq
,
UUID
.
randomUUID
().
toString
());
if
(!
ObjectUtils
.
equals
(
SUCCESS
,
Integer
.
valueOf
(
baseResponse
.
getCode
())))
{
return
ResponseUtil
.
error
(
ResponseResult
.
PARTNER_ORDER_CANCEL_ERROR
);
}
return
ResponseUtil
.
success
();
}
public
BaseResponse
<
OrderManagerResponse
>
posCancel
(
QueryOrdersResponse
.
DataBean
.
OrderBean
order
)
{
//调用cancel接口,商家退款
OrderCancelReq
orderCancelReq
=
new
OrderCancelReq
();
orderCancelReq
.
setPartnerId
(
order
.
getCompanyId
());
orderCancelReq
.
setOrderCode
(
order
.
getOid
());
orderCancelReq
.
setCancelReason
(
"商家取消"
);
orderCancelReq
.
setAfterSalesType
(
AfterSalesType
.
PARTNER_CANCEL
.
getIndex
());
orderCancelReq
.
setCreateEvent
(
4
);
orderCancelReq
.
setOrderClient
(
OrderClientType
.
POS
.
getIndex
());
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
response
.
BaseResponse
baseResponse
=
orderSdkService
.
cancelOrder
(
orderCancelReq
,
UUID
.
randomUUID
().
toString
());
if
(!
Objects
.
equals
(
SUCCESS
,
Integer
.
valueOf
(
baseResponse
.
getCode
()))){
return
ResponseUtil
.
error
(
ResponseResult
.
PARTNER_ORDER_CANCEL_ERROR
);
}
// 储值卡退款
OrderExtInfoDto
orderExtInfoDto
=
JSONObject
.
parseObject
(
order
.
getExtInfo
(),
OrderExtInfoDto
.
class
)
==
null
?
new
OrderExtInfoDto
()
:
JSONObject
.
parseObject
(
order
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
//支付退款
if
(
orderExtInfoDto
!=
null
&&
orderExtInfoDto
.
getSvcAmount
()!=
null
&&
StringUtils
.
isNotEmpty
(
orderExtInfoDto
.
getSvcCardCode
())
&&
order
.
getPayStatus
()
>
1
){
PayRefundResponse
refundResponse
=
paymentHandle
.
newOrderRefund
(
order
,
orderExtInfoDto
);
if
(
ObjectUtils
.
equals
(
PayRefundStatus
.
SUCCESS
,
refundResponse
.
getPayRefundStatus
())){
return
ResponseUtil
.
error
(
ResponseResult
.
PARTNER_ORDER_CANCEL_ERROR
);
}
}
return
ResponseUtil
.
success
();
}
}
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/enums/OperateType.java
View file @
1d534cd1
...
...
@@ -10,7 +10,8 @@ public enum OperateType {
ORDER_SEND
(
"orderSend"
,
"送出"
),
ORDER_AFFIRM
(
"orderAffirm"
,
"完成"
),
ORDER_AGREE_REFUND
(
"orderAgreeRefund"
,
"同意退款"
),
ORDER_REJECT_REFUND
(
"orderRejectRefund"
,
"拒绝退款"
);
ORDER_REJECT_REFUND
(
"orderRejectRefund"
,
"拒绝退款"
),
ORDER_CANCEL
(
"orderCancel"
,
"订单取消"
);
/**
...
...
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