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
c3455215
Commit
c3455215
authored
May 07, 2020
by
shuhu.hou@freemud.cn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
退款退配送费
parent
dcdee5d1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
74 additions
and
10 deletions
+74
-10
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/RefundConfig.java
+36
-0
order-management/src/main/java/cn/freemud/management/enums/OrderRefundEnum.java
+2
-1
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
+36
-9
No files found.
order-management/src/main/java/cn/freemud/management/entities/dto/response/pay/RefundConfig.java
0 → 100644
View file @
c3455215
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
pay
;
import
lombok.Data
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: RefundConfig
* @Package cn.freemud.management.entities.dto.response.pay
* @Description:
* @author: shuhu.hou
* @date: 2020/5/7 17:18
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public
class
RefundConfig
{
/**
* 是否退配送费
*/
private
boolean
isRefundDeliveryFee
;
/**
* 是否支持订单完成退款
*/
private
boolean
isFinishRefund
;
public
RefundConfig
(){
}
public
RefundConfig
(
boolean
isFinishRefund
,
boolean
isRefundDeliveryFee
){
this
.
isFinishRefund
=
isFinishRefund
;
this
.
isRefundDeliveryFee
=
isRefundDeliveryFee
;
}
}
order-management/src/main/java/cn/freemud/management/enums/OrderRefundEnum.java
View file @
c3455215
...
...
@@ -18,7 +18,8 @@ public enum OrderRefundEnum {
REFUND_DATA_RANGE
(
"refundDateRange"
,
"退款允许日期"
),
TAKEORDER_REFUND
(
"takeOrderRefund"
,
"未接单是否支持退款"
),
RECEIPTORDER_REFUND
(
"receiptOrderRefund"
,
"已接单是否支持退款"
),
COMPLETEMAKEORDER_REFUND
(
"completeMakeOrderRefund"
,
"制作完成是否支持退款"
);
COMPLETEMAKEORDER_REFUND
(
"completeMakeOrderRefund"
,
"制作完成是否支持退款"
),
REFUND_DELIVERY_FEE_ENABLE
(
"refundShippingFee"
,
"商家同意退款时是否退配送费"
);
private
String
keyValue
;
...
...
order-management/src/main/java/cn/freemud/management/service/handle/OrderVerifyHandle.java
View file @
c3455215
...
...
@@ -3,6 +3,7 @@ package cn.freemud.management.service.handle;
import
cn.freemud.base.entity.BaseResponse
;
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.RefundConfig
;
import
cn.freemud.management.enums.OrderRefundEnum
;
import
cn.freemud.management.enums.OrderSource
;
import
cn.freemud.management.enums.OrderStatus
;
...
...
@@ -18,6 +19,7 @@ import com.freemud.sdk.api.assortment.order.enums.OldOrderType;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.apache.commons.lang.builder.ToStringBuilder
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
...
...
@@ -45,7 +47,11 @@ public class OrderVerifyHandle {
/**
* 允许退款
*/
public
static
final
String
ALLOW_REFUND
=
"1"
;
private
static
final
String
ALLOW_REFUND
=
"1"
;
/**
* svc储值卡支付,可用于判断订单是否用储值卡支付
*/
private
static
final
String
PAY_CODE_10102
=
"10102"
;
@Autowired
private
CacheOpenPlatformPartnerWxappConfigManager
cacheOpenPlatformPartnerWxappConfigManager
;
...
...
@@ -215,16 +221,19 @@ public class OrderVerifyHandle {
||
orderBean
.
getRefundList
().
get
(
orderBean
.
getRefundList
().
size
()
-
1
).
getStatus
()
!=
1
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_REFUND_NOT_APPLY
);
}
boolean
isCanRefund
=
false
;
boolean
isFinishRefund
=
false
;
boolean
isRefundDeliveryFee
=
false
;
//saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款
if
(
ObjectUtils
.
equals
(
orderBean
.
getSource
(),
OrderSource
.
SAAS
.
getSource
()))
{
isCanRefund
=
isCanRefund
(
orderBean
);
if
(!
isCanRefund
)
{
RefundConfig
refundConfig
=
getRefundConfig
(
orderBean
);
isFinishRefund
=
refundConfig
.
isFinishRefund
();
isRefundDeliveryFee
=
refundConfig
.
isRefundDeliveryFee
();
if
(!
isFinishRefund
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_HAD_AFFIRM_CAN_NOT_REFUND
);
}
}
if
(
is
Can
Refund
)
{
orderBean
.
setAmount
(
getRefundAmount
(
orderBean
).
longValue
());
if
(
is
Finish
Refund
)
{
orderBean
.
setAmount
(
getRefundAmount
(
orderBean
,
isRefundDeliveryFee
).
longValue
());
}
return
ResponseUtil
.
success
();
}
...
...
@@ -302,7 +311,7 @@ public class OrderVerifyHandle {
* @param data
* @return true=可同意退款
*/
private
boolean
isCanRefund
(
QueryOrdersResponse
.
DataBean
.
OrderBean
data
)
{
private
RefundConfig
getRefundConfig
(
QueryOrdersResponse
.
DataBean
.
OrderBean
data
)
{
boolean
isFinishRefund
=
false
;
com
.
freemud
.
application
.
sdk
.
api
.
ordercenter
.
request
.
OrderExtInfoDto
extInfo
=
null
;
JSONObject
jsonObject1
=
JSONObject
.
parseObject
(
data
.
getExtInfo
());
...
...
@@ -345,15 +354,24 @@ public class OrderVerifyHandle {
break
;
}
return
isFinishRefund
;
boolean
isRefundDeliveryFee
=
false
;
AssortmentOpenPlatformPartnerWxappConfig
refundDeliveryFeeConfig
=
configMap
.
get
(
OrderRefundEnum
.
REFUND_DELIVERY_FEE_ENABLE
.
getKeyValue
());
// 0、null表示 关闭 ; 1 表示开启
if
(
null
!=
refundDeliveryFeeConfig
&&
ALLOW_REFUND
.
equals
(
refundDeliveryFeeConfig
.
getAppValue
()))
{
isRefundDeliveryFee
=
true
;
}
return
new
RefundConfig
(
isFinishRefund
,
isRefundDeliveryFee
);
}
/**
* 获取已完成订单退款金额
*/
private
BigDecimal
getRefundAmount
(
QueryOrdersResponse
.
DataBean
.
OrderBean
data
)
{
private
BigDecimal
getRefundAmount
(
QueryOrdersResponse
.
DataBean
.
OrderBean
data
,
boolean
isRefundDeliveryFee
)
{
//是否配置已完成订单可退款
BigDecimal
refundAmount
=
new
BigDecimal
(
data
.
getAmount
());
if
(
isRefundDeliveryFee
||
isPayBySVC
(
data
)){
return
refundAmount
;
}
List
<
QueryOrdersResponse
.
DataBean
.
OrderBean
.
AccountBean
>
accountList
=
data
.
getAccountList
();
//外卖订单,已完成,不退配送费
if
(
data
.
getStatus
()
==
OldOrderStatus
.
COMPLETE
.
getCode
()
&&
data
.
getType
()
==
OldOrderType
.
TAKE_OUT
.
getCode
())
{
...
...
@@ -365,4 +383,13 @@ public class OrderVerifyHandle {
}
return
refundAmount
;
}
/**
* 订单是否使用储值卡支付(储值卡支付的订单,不支持部分退款)
*
* @param order
* @return true-是,false-不是
*/
private
boolean
isPayBySVC
(
QueryOrdersResponse
.
DataBean
.
OrderBean
order
)
{
return
PAY_CODE_10102
.
equalsIgnoreCase
(
order
.
getPayChannel
());
}
}
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