Authored by qinchao

Merge branch 'hotfix_买家赔偿金低于商品售价' into test6.8.4

... ... @@ -7,6 +7,8 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Builder;
import java.math.BigDecimal;
/**
* Created by chao.chen on 2018/11/14.
*/
... ... @@ -26,4 +28,7 @@ public class BeforeDepotReceiveEvent extends Event {
private int sellerUid;
private int skup;
//订单的实付金额(货款+运费)
private BigDecimal amount;
}
... ...
... ... @@ -5,6 +5,8 @@ import com.yohoufo.common.alarm.Event;
import lombok.*;
import lombok.experimental.Builder;
import java.math.BigDecimal;
/**
* Created by chao.chen on 2018/11/14.
*/
... ... @@ -24,4 +26,7 @@ public class BeforeSellerDeliverEvent extends Event {
private int sellerUid;
private int skup;
//订单的实付金额(货款+运费)
private BigDecimal amount;
}
... ...
... ... @@ -85,8 +85,13 @@ public class BuyerOrderCancelService {
public void cancel(BeforeSellerDeliverEvent bsdEvent){
OrderDynamicConfig.BuyerCancelCompensateNode compensate = orderDynamicConfig.getBeforeSellerDeliverBCCN();
logger.info("in buyer cancel BeforeSellerDeliver, event {} compensate {}", bsdEvent, compensate);
//买家实付金额(货款+运费)小于赔偿金的额度,不够赔偿的,则不允许取消
if(bsdEvent.getAmount()==null||bsdEvent.getAmount().compareTo(compensate.getBuyerCompensateMoney()) < 0){
logger.warn("in buyer cancel BeforeSellerDeliver not allow cancel cause of buyer amount lower than BuyerCompensateMoney, event {} compensate {}", bsdEvent, compensate);
throw new com.yohoufo.common.exception.UfoServiceException(400,"买家赔偿金低于商品售价,不允许取消");
}
int buyerUid = bsdEvent.getBuyerUid();
int sellerUid = bsdEvent.getSellerUid();
long orderCode = bsdEvent.getOrderCode();
... ... @@ -136,6 +141,11 @@ public class BuyerOrderCancelService {
OrderDynamicConfig.BuyerCancelCompensateNode compensate = orderDynamicConfig.getBeforeDepotReceiveBCCN();
logger.info("in buyer cancel BeforeDepotReceive, event {} compensate {}", bdrEvent, compensate);
//买家实付金额(货款+运费)小于赔偿金的额度,不够赔偿的,则不允许取消
if(bdrEvent.getAmount()==null||bdrEvent.getAmount().compareTo(compensate.getBuyerCompensateMoney()) < 0){
logger.warn("in buyer cancel BeforeDepotReceive not allow cancel cause of buyer amount lower than BuyerCompensateMoney, event {} compensate {}", bdrEvent, compensate);
throw new com.yohoufo.common.exception.UfoServiceException(400,"买家赔偿金低于商品售价,不允许取消");
}
OrderStatus target = bdrEvent.getTarget();
OrderStatus expected = bdrEvent.getExpected();
int buyerUid = bdrEvent.getBuyerUid();
... ...
... ... @@ -325,6 +325,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
BeforeSellerDeliverEvent bsde = BeforeSellerDeliverEvent.builder()
.buyerUid(orderRequest.getUid()).orderCode(orderRequest.getOrderCode())
.expected(expectStatus).target(targetStatus).skup(skup).sellerUid(buyerOrder.getSellerUid())
.amount(buyerOrder.getAmount())
.build();
buyerOrderCancelService.cancel(bsde);
break;
... ... @@ -336,6 +337,7 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
BeforeDepotReceiveEvent bdre = BeforeDepotReceiveEvent.builder()
.buyerUid(orderRequest.getUid()).orderCode(orderRequest.getOrderCode())
.expected(expectStatus).target(targetStatus).skup(skup).sellerUid(buyerOrder.getSellerUid())
.amount(buyerOrder.getAmount())
.build();
buyerOrderCancelService.cancel(bdre);
break;
... ...