Commit 2c5600b5 by 姜海波

订单计算满额减配送费

parent 001782c0
......@@ -34,6 +34,7 @@ public enum OldOrderAccountType {
SET_MEAL(211, "套餐商品优惠", "SET_MEAL"),
CARD_DISCOUNT_AMOUNT(26, "会员卡优惠金额", "CARD_DISCOUNT_AMOUNT"),
XY_DISCOUNT(104, "x件y折", "XY_DISCOUNT"),
FULL_DISTRIBUTION_FEE(1014, "满减配送费", "FULL_DISTRIBUTION_FEE"),
TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT");
private Integer code;
......
......@@ -6,6 +6,7 @@ import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
import com.freemud.sdk.api.assortment.order.config.BaseConfig;
import com.freemud.sdk.api.assortment.order.enums.*;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
......@@ -199,5 +200,35 @@ public class BaseCreateOrderRequest extends BaseConfig {
private String ruleId;
}
private List<OrderSettlement> orderSettlements;
@Data
@Builder
public static class OrderSettlement{
/**
* 优惠结算类型
*/
private OldOrderAccountType settlementType;
/**
* 平台优惠
*/
private Long platformDiscountAmount;
/**
* 商家优惠
*/
private Long shopDiscountAmount;
/**
* 结算金额
*/
private Long settlementAmount;
/**
* 备注
*/
private String note;
}
}
......@@ -5,6 +5,7 @@ import com.freemud.application.sdk.api.promotioncenter.request.promotion.Activit
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.sdk.api.assortment.order.config.BaseConfig;
import com.freemud.sdk.api.assortment.order.enums.*;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
......@@ -160,5 +161,35 @@ public class CreateFatherSonOrderRequest extends BaseConfig {
//预订单任务
private OrderTaskReq orderTask;
private List<OrderSettlement> orderSettlements;
@Data
@Builder
public static class OrderSettlement{
/**
* 优惠结算类型
*/
private OldOrderAccountType settlementType;
/**
* 平台优惠
*/
private Long platformDiscountAmount;
/**
* 商家优惠
*/
private Long shopDiscountAmount;
/**
* 结算金额
*/
private Long settlementAmount;
/**
* 备注
*/
private String note;
}
}
}
......@@ -123,15 +123,27 @@ public class OrderAdapter {
UserDeliveryInfoDto deliveryInfoDto = createOrderVo.getUserDeliveryInfoDto();
BaseCreateOrderRequest createOrderDto = getCreateOrderDto(createOrderVo);
long deliveryAmount = 0;
long discountDeliveryAmount = 0;
if (deliveryInfoDto != null) {
deliveryAmount = getUserRealDeliveryAmount(deliveryInfoDto.getStoreDeliveryInfoDto(), deliveryInfoDto.getUserLongitude(), deliveryInfoDto.getUserLatitude());
if(shoppingCartGoodsDto.getIsDiscountDelivery()){
discountDeliveryAmount = shoppingCartGoodsDto.getDiscountDeliveryAmount();
BaseCreateOrderRequest.OrderSettlement settlement=
BaseCreateOrderRequest.OrderSettlement.builder().settlementAmount(deliveryAmount-discountDeliveryAmount)
.settlementType(OldOrderAccountType.FULL_DISTRIBUTION_FEE)
.note(OldOrderAccountType.FULL_DISTRIBUTION_FEE.getDesc()).build();
createOrderDto.setOrderSettlements(Arrays.asList(settlement));
}
}
if(createOrderDto.getGmtExpect() != null && createOrderDto.getGmtExpect() != 0){
//预订单任务
createOrderDto.setOrderTask(saveOrderTaskReq(orderWarnTime,createOrderDto.getGmtExpect()));
}
Long packageAmount = shoppingCartGoodsDto.getPackageAmount() == null ? 0L : shoppingCartGoodsDto.getPackageAmount();
createOrderDto.setAmount(shoppingCartGoodsDto.getTotalAmount() + deliveryAmount + packageAmount);
createOrderDto.setAmount(shoppingCartGoodsDto.getTotalAmount() + discountDeliveryAmount + packageAmount);
// 解析购物车信息
List<ShoppingCartGoodsDto.CartGoodsDetailDto> cartGoodsDetailDtos = shoppingCartGoodsDto.getProducts();
List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos();
......@@ -570,12 +582,26 @@ public class OrderAdapter {
.append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
}
long deliveryAmount = 0;
long discountDeliveryAmount = 0;
if (userDeliveryInfoDto != null) {
deliveryAmount = getUserRealDeliveryAmount(userDeliveryInfoDto.getStoreDeliveryInfoDto(), userDeliveryInfoDto.getUserLongitude(), userDeliveryInfoDto.getUserLatitude());
if(shoppingCartGoodsDto.getIsDiscountDelivery()){
discountDeliveryAmount = shoppingCartGoodsDto.getDiscountDeliveryAmount();
CreateFatherSonOrderRequest.OrderInfo.OrderSettlement settlement=
CreateFatherSonOrderRequest.OrderInfo.OrderSettlement.builder().settlementAmount(deliveryAmount-discountDeliveryAmount)
.settlementType(OldOrderAccountType.FULL_DISTRIBUTION_FEE)
.note(OldOrderAccountType.FULL_DISTRIBUTION_FEE.getDesc()).build();
productOrderInfo.setOrderSettlements(Arrays.asList(settlement));
}
}
Long cardDiscountAmount = shoppingCartGoodsDto.getCardDiscountAmount() != null ? shoppingCartGoodsDto.getCardDiscountAmount() : 0L;
Long packageAmount = shoppingCartGoodsDto.getPackageAmount() == null ? 0L : shoppingCartGoodsDto.getPackageAmount();
productOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + deliveryAmount + packageAmount
productOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + discountDeliveryAmount + packageAmount
- shoppingCartGoodsDto.getCardOriginalAmount() + cardDiscountAmount);
// 解析购物车信息
List<ShoppingCartGoodsDto.CartGoodsDetailDto> cartGoodsDetailDtos = shoppingCartGoodsDto.getProducts();
......
......@@ -3,6 +3,7 @@ package cn.freemud.entities.dto.shoppingCart;
import cn.freemud.entities.dto.OrderProductAddInfo;
import cn.freemud.entities.vo.SubtractStockVO;
import com.alibaba.fastjson.JSON;
import lombok.Builder;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
......@@ -67,6 +68,27 @@ public class ShoppingCartGoodsDto {
*/
private List<SubtractStockVO> stocks;
/**
* 配送费
*/
private Long deliveryAmount;
/**
* 减免后配送费
*/
private Long discountDeliveryAmount;
/**
* 满多少额度 减免
*/
private Long thresholdAmount;
/**
* 是否参加满额减免
*/
@Builder.Default
private Boolean isDiscountDelivery = false;
@Data
public static class CartGoodsDetailDto {
/**
......
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