Commit 189f3583 by 姜海波

Merge branch 'feature-2020/5/12-1.9.22-退单增加配送费选项-海波' into develop

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/impl/OrderServiceImpl.java
parents a14d3550 eb08e70d
......@@ -15,6 +15,7 @@ package com.freemud.sdk.api.assortment.order.request.order;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.sdk.api.assortment.order.config.BaseConfig;
import lombok.Builder;
import lombok.Data;
@Data
......@@ -67,5 +68,6 @@ public class CancelOrderRequest extends BaseConfig {
/**
* 是否退配送费
*/
private boolean isRefundDeliveryAmount;
@Builder.Default
private boolean isRefundDeliveryAmount = false;
}
......@@ -1120,28 +1120,31 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.error(ResponseResult.ORDER_NOT_ALLOW_REFUND.getCode(), ResponseResult.ORDER_NOT_ALLOW_REFUND.getMessage());
}
}
List<AssortmentOpenPlatformPartnerWxappConfig> partnerWxappConfigs = cacheOpenPlatformPartnerWxappConfigManager.cacheSelectDefaultPage(userInfo.getWxAppId(), "2");
Map<String, AssortmentOpenPlatformPartnerWxappConfig> configMap = partnerWxappConfigs.stream().collect(Collectors.toMap(AssortmentOpenPlatformPartnerWxappConfig::getAppKey, Function.identity()));
boolean isRefundDeliveryFee = true;
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get(OrderRefundEnum.REFUND_DELIVERY_FEE_ENABLE.getKeyValue());
log.info("refundAgree.refundShippingFee of oid:{}, {}", orderBean.getOid(), (null != refundDeliveryFeeConfig ? ToStringBuilder.reflectionToString(refundDeliveryFeeConfig) : null));
// 0、null表示 关闭 ; 1 表示开启
if (null != refundDeliveryFeeConfig
&& Arrays.asList(OrderStatus.DISTRIBUTION.getCode(),OrderStatus.COMPLETE.getCode()).contains(orderBean.getStatus())
&& (!ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())||PayChannel.SVC.getCode().equals(orderBean.getPayChannel()))) {
isRefundDeliveryFee = false;
}
// 未接单
if (OrderStatus.TAKE_ORDER.getCode().equals(orderBean.getStatus())) {
//商家未接单逻辑处理 1.调用支付退款 2.根据支付退款返回状态组装订单取消参数,调用订单取消接口
BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId,AfterSalesType.USER_CANCEL);
BaseResponse baseResponse = partnerNoTakeOrder(orderRefundVo, orderBean, orderId,AfterSalesType.USER_CANCEL,isRefundDeliveryFee);
if (baseResponse != null) {
return baseResponse;
}
// 删除订单 通知活动添加商品库存
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
} else {
List<AssortmentOpenPlatformPartnerWxappConfig> partnerWxappConfigs = cacheOpenPlatformPartnerWxappConfigManager.cacheSelectDefaultPage(userInfo.getWxAppId(), "2");
Map<String, AssortmentOpenPlatformPartnerWxappConfig> configMap = partnerWxappConfigs.stream().collect(Collectors.toMap(AssortmentOpenPlatformPartnerWxappConfig::getAppKey, Function.identity()));
boolean isRefundDeliveryFee = true;
AssortmentOpenPlatformPartnerWxappConfig refundDeliveryFeeConfig = configMap.get(OrderRefundEnum.REFUND_DELIVERY_FEE_ENABLE.getKeyValue());
log.info("refundAgree.refundShippingFee of oid:{}, {}", orderBean.getOid(), (null != refundDeliveryFeeConfig ? ToStringBuilder.reflectionToString(refundDeliveryFeeConfig) : null));
// 0、null表示 关闭 ; 1 表示开启
if (null != refundDeliveryFeeConfig
&& (!ALLOW_REFUND.equals(refundDeliveryFeeConfig.getAppValue())||PayChannel.SVC.getCode().equals(orderBean.getPayChannel()))) {
isRefundDeliveryFee = false;
}
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
cancelOrderRequest.setStoreId(orderBean.getShopId());
......@@ -1182,7 +1185,7 @@ public class OrderServiceImpl implements Orderservice {
* @param orderRefundVo
* @param orderBean
*/
private BaseResponse partnerNoTakeOrder(OrderRefundVo orderRefundVo, OrderBean orderBean, String fatherOrderId,AfterSalesType afterSalesType) {
private BaseResponse partnerNoTakeOrder(OrderRefundVo orderRefundVo, OrderBean orderBean, String fatherOrderId,AfterSalesType afterSalesType,Boolean isRefundDeliveryFee) {
com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> response = null;
Long refundId = System.currentTimeMillis();
String partnerId = orderBean.getCompanyId();
......@@ -1209,6 +1212,7 @@ public class OrderServiceImpl implements Orderservice {
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent());
}
cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks());
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed");
......@@ -1559,7 +1563,7 @@ public class OrderServiceImpl implements Orderservice {
orderRefundVo.setPartnerId(orderBean.getCompanyId());
orderRefundVo.setReason(refundReason);
//系统异常取消订单
partnerNoTakeOrder(orderRefundVo, orderBean, oid,AfterSalesType.SYSTEM_CANCEL);
partnerNoTakeOrder(orderRefundVo, orderBean, oid,AfterSalesType.SYSTEM_CANCEL,true);
// 发送消息到消息中心推送给pos前端
PushMessageNoticeDto pushMessageNoticeDto = messageNoticeAdapter.convent2PushMessageNoticeDto(2, partnerId, storeId,
null, null, null, null);
......
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