Commit 8238ccab by zhiheng.zhang

Merge branch 'feature/20210513-申请退款按钮关闭-张志恒'

parents 5e14d013 d02569c3
......@@ -64,6 +64,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSalesOrderResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.promotioncenter.dto.promotion.GoodsStockDTO;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
......@@ -88,6 +89,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.FastDateFormat;
import org.junit.After;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
......@@ -1490,10 +1492,9 @@ public class OrderAdapter {
responseVo.setRefundMode(afterOrderExtInfoDto.getRefundMode());
}
}
// responseVo.setRefundButtonDisable(AfterSalesStatus.CANCEL.getIndex() == ordersBean.getAfterSalesOrderResp().getAfterSalesStatus() ? false : true);
//有售后单不显示按钮
responseVo.setRefundButtonDisable(false);
}
//是否展示申请退款按钮 true 展示 false 不展示
responseVo.setRefundButtonDisable(getRefundButtonDisable(ordersBean));
responseVo.setExpressChannelCode(ordersBean.getExpressChannelCode());
responseVo.setExpressChannelName(ordersBean.getExpressChannelName());
responseVo.setExpressNo(ordersBean.getExpressNo());
......@@ -4389,4 +4390,41 @@ public class OrderAdapter {
}
return refundStatusDesc;
}
private boolean getRefundButtonDisable(QueryOrdersResponse.DataBean.OrderBean orderBean){
boolean refundButtonDisable = true;
//订单状态为 2:已支付 3:已接单 4:已发货 5:已收货/已完成(C端展示的订单状态),这些状态订单展示申请退款按钮(未有售后单或者售后单已经取消)
// 正常订单,未发生售后单的订单,以发货的时间节点为基准,30天后,关闭C端申请退款入口(未有售后单或者售后单已经取消)
//以最新的发起售后单的时间节点为基准(售后单最后申请的时间,同意申请不会更新申请的时间),30天后,关闭订单状态为已完成,退款状态为未处理的退款单,B端不展示退款处理按钮
//未发货订单,申请退款商家未处理,以售后单发起时间+30天后,自动退款。
//校验有没有售后单,一笔订单只会存在一笔售后单,售后单展示为取消展示申请退款按钮
AfterSalesOrderResp afterSalesOrderResp = orderBean.getAfterSalesOrderResp();
List<Integer> orderStatusList = Arrays.asList(OrderStatus.WAIT_PAY.getCode(),OrderStatus.RECEIPT.getCode(),OrderStatus.DISTRIBUTION.getCode(),OrderStatus.COMPLETE.getCode());
List<Integer> afterSaleStatusList = Arrays.asList(AfterSalesStatus.PENDING.getIndex(),AfterSalesStatus.COMPLETE.getIndex(),AfterSalesStatus.REJECTED.getIndex());
//已发货
if(null != orderBean.getGmtDelivery()){
if(orderStatusList.contains(orderBean.getStatus()) && (null == afterSalesOrderResp || (null !=afterSalesOrderResp && AfterSalesStatus.CANCEL.getIndex() == afterSalesOrderResp.getAfterSalesStatus()))){
refundButtonDisable = true;
}
if(null == orderBean.getAfterSalesOrderResp() && null != orderBean.getGmtDelivery() && (DateUtil.addDays(new Date(orderBean.getGmtDelivery()),30)).compareTo(new Date()) == -1){
refundButtonDisable = false;
}
if(null != orderBean.getAfterSalesOrderResp() && afterSaleStatusList.contains( orderBean.getAfterSalesOrderResp().getAfterSalesStatus())){
refundButtonDisable = false;
}
if(null == orderBean.getAfterSalesOrderResp() && (DateUtil.addDays(new Date(orderBean.getGmtDelivery()),30)).compareTo(new Date()) == -1){
refundButtonDisable = false;
}
}else{
List<Integer> noDeliveryAfterSalesStatus = Arrays.asList(AfterSalesStatus.PENDING.getIndex(),AfterSalesStatus.COMPLETE.getIndex());
if(orderStatusList.contains(orderBean.getStatus()) && (null == afterSalesOrderResp || (null !=afterSalesOrderResp && AfterSalesStatus.CANCEL.getIndex() == afterSalesOrderResp.getAfterSalesStatus()))){
refundButtonDisable = true;
}
if(null != orderBean.getAfterSalesOrderResp() && noDeliveryAfterSalesStatus.contains( orderBean.getAfterSalesOrderResp().getAfterSalesStatus())){
refundButtonDisable = false;
}
}
return refundButtonDisable;
}
}
......@@ -1053,6 +1053,7 @@ public class MallOrderServiceImpl implements MallOrderService {
request.setOrderCode(baseQueryOrderRequest.getOrderId());
request.setOrderState(NewOrderStatus.COMPLETE.getIndex());
request.setOperator(assortmentCustomerInfoVo.getNickName());
request.setTaskType(Arrays.asList((byte) 5));
request.setRemark("已完成");
orderSdkService.updateOrderState(request, baseQueryOrderRequest.getTrackingNo());
orderSdkService.completeBookingTask(request, baseQueryOrderRequest.getTrackingNo());
......
......@@ -2220,7 +2220,8 @@ public class OrderServiceImpl implements Orderservice {
if (RefundStatus.APPLY_REFUND.getCode().equals(refundBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "商家正在处理中,请稍后……");
}
if (RefundStatus.REFUSE_REFUND.getCode().equals(refundBean.getStatus())) {
//商城订单可二次发起退款
if (!com.freemud.sdk.api.assortment.order.enums.OrderSourceType.SAASMALL.getCode().equalsIgnoreCase(orderBean.getSource()) && RefundStatus.REFUSE_REFUND.getCode().equals(refundBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "您的申请已被商家拒绝,请联系门店沟通。");
}
}
......@@ -2239,7 +2240,6 @@ public class OrderServiceImpl implements Orderservice {
boolean isRefundDeliveryFee = true;
//商城查询配送费
if (com.freemud.sdk.api.assortment.order.enums.OrderSourceType.SAASMALL.getCode().equalsIgnoreCase(orderBean.getSource()) && StringUtils.isNotEmpty(orderBean.getExtInfo())){
JSONObject extInfoJsonObject = JSONObject.parseObject(orderBean.getExtInfo());
OrderExtInfoDto orderExtInfoDto = extInfoJsonObject.toJavaObject(OrderExtInfoDto.class);
if(null != orderExtInfoDto && null != orderExtInfoDto.getProvince()){
......
package com.freemud.application.sdk.api.ordercenter.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.com
*
......@@ -21,4 +24,8 @@ public class OrderChangeStateReq {
private String remark;
//操作人
private String operator;
@ApiModelProperty(value = "操作任务类型")
private List<Byte> taskType;
}
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