Commit 91070139 by shuhu.hou@freemud.cn

订单非完成状态也要支持退配送费

parent c3455215
...@@ -21,16 +21,16 @@ public class RefundConfig { ...@@ -21,16 +21,16 @@ public class RefundConfig {
*/ */
private boolean isRefundDeliveryFee; private boolean isRefundDeliveryFee;
/** /**
* 是否支持订单完成退款 * 订单是否支持退款
*/ */
private boolean isFinishRefund; private boolean isCanRefund;
public RefundConfig(){ public RefundConfig(){
} }
public RefundConfig(boolean isFinishRefund,boolean isRefundDeliveryFee){ public RefundConfig(boolean isCanRefund, boolean isRefundDeliveryFee){
this.isFinishRefund=isFinishRefund; this.isCanRefund = isCanRefund;
this.isRefundDeliveryFee=isRefundDeliveryFee; this.isRefundDeliveryFee=isRefundDeliveryFee;
} }
} }
...@@ -160,7 +160,7 @@ public enum ResponseResult { ...@@ -160,7 +160,7 @@ public enum ResponseResult {
REJECT_ORDER_FAIL("45075", "拒单失败"), REJECT_ORDER_FAIL("45075", "拒单失败"),
AGREE_REFUND_ORDER_FAIL("45076", "同意退款失败"), AGREE_REFUND_ORDER_FAIL("45076", "同意退款失败"),
ORDER_REFUND_NOT_APPLY("45077","用户未申请退款"), ORDER_REFUND_NOT_APPLY("45077","用户未申请退款"),
ORDER_HAD_AFFIRM_CAN_NOT_REFUND("45078","订单已经完成,不能申请退款"), ORDER_HAD_AFFIRM_CAN_NOT_REFUND("45078","当前订单不允许退款,请前往B端后台设置"),
ORDER_REJECT_REFUND_REPETITION("45079","重复操作,订单已拒绝退款"), ORDER_REJECT_REFUND_REPETITION("45079","重复操作,订单已拒绝退款"),
ORDER_REJECT_REFUND_STATUS_NOT("45080","订单不是申请退款中,不能操作"), ORDER_REJECT_REFUND_STATUS_NOT("45080","订单不是申请退款中,不能操作"),
ORDER_REJECT_REFUND_STATUS_END("45081","订单未接单或者已取消,不能操作"), ORDER_REJECT_REFUND_STATUS_END("45081","订单未接单或者已取消,不能操作"),
......
...@@ -14,12 +14,9 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa ...@@ -14,12 +14,9 @@ import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPa
import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager; import com.freemud.api.assortment.datamanager.manager.cache.CacheOpenPlatformPartnerWxappConfigManager;
import com.freemud.application.sdk.api.ordercenter.enums.OperateClient; import com.freemud.application.sdk.api.ordercenter.enums.OperateClient;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType; import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.enums.OldOrderType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
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.builder.ToStringBuilder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -221,18 +218,20 @@ public class OrderVerifyHandle { ...@@ -221,18 +218,20 @@ public class OrderVerifyHandle {
|| orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() != 1) { || orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getStatus() != 1) {
return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY); return ResponseUtil.error(ResponseResult.ORDER_REFUND_NOT_APPLY);
} }
boolean isFinishRefund = false; //订单是否支持退款
boolean isCanRefund = false;
//订单
boolean isRefundDeliveryFee=false; boolean isRefundDeliveryFee=false;
//saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款 //saas渠道订单,已完成的订单不能操作, 商户配置已完成订单可退款可退款
if (ObjectUtils.equals(orderBean.getSource(), OrderSource.SAAS.getSource())) { if (ObjectUtils.equals(orderBean.getSource(), OrderSource.SAAS.getSource())) {
RefundConfig refundConfig = getRefundConfig(orderBean); RefundConfig refundConfig = getRefundConfig(orderBean);
isFinishRefund=refundConfig.isFinishRefund(); isCanRefund=refundConfig.isCanRefund();
isRefundDeliveryFee=refundConfig.isRefundDeliveryFee(); isRefundDeliveryFee=refundConfig.isRefundDeliveryFee();
if (!isFinishRefund) { if (!isCanRefund) {
return ResponseUtil.error(ResponseResult.ORDER_HAD_AFFIRM_CAN_NOT_REFUND); return ResponseUtil.error(ResponseResult.ORDER_HAD_AFFIRM_CAN_NOT_REFUND);
} }
} }
if (isFinishRefund) { if (isCanRefund) {
orderBean.setAmount(getRefundAmount(orderBean,isRefundDeliveryFee).longValue()); orderBean.setAmount(getRefundAmount(orderBean,isRefundDeliveryFee).longValue());
} }
return ResponseUtil.success(); return ResponseUtil.success();
...@@ -373,8 +372,7 @@ public class OrderVerifyHandle { ...@@ -373,8 +372,7 @@ public class OrderVerifyHandle {
return refundAmount; return refundAmount;
} }
List<QueryOrdersResponse.DataBean.OrderBean.AccountBean> accountList = data.getAccountList(); List<QueryOrdersResponse.DataBean.OrderBean.AccountBean> accountList = data.getAccountList();
//外卖订单,已完成,不退配送费 if (CollectionUtils.isNotEmpty(accountList)) {
if (data.getStatus() == OldOrderStatus.COMPLETE.getCode() && data.getType() == OldOrderType.TAKE_OUT.getCode()) {
for (QueryOrdersResponse.DataBean.OrderBean.AccountBean orderCostResp : accountList) { for (QueryOrdersResponse.DataBean.OrderBean.AccountBean 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());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment