Commit 083f9b96 by 周晓航

Merge branch 'KA-起送价是否按照原价计算-20210918-zxh'

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/adapter/SpellGroupOrderAdapter.java
#	order-application-service/src/main/java/cn/freemud/entities/dto/delivery/QueryDeliveryTemplateResponse.java
#	order-application-service/src/main/java/cn/freemud/service/impl/SpellGroupOrderServiceImpl.java
parents 8c30c426 9596b9f0
package cn.freemud.entities.dto.store;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/7/22 下午3:12
* @description :
*/
@Data
public class DeliveryInfoDTO {
/**
* 每增加公里(单位米)
*/
private String addRange;
/**
* 每增加公里增加配送费(单位分)
*/
private Integer addRangeAmount;
/**
* 基础配送费(分)
*/
private Integer deliveryAmount;
/**
* 配送方式:1-三方物流配送、2-商家自配送
*/
private Integer deliveryMethod;
/**
* 配送半径
*/
private Integer deliveryRadius;
/**
* 基础配送距离(单位米)
*/
private String deliveryRange;
/**
* 手绘经纬度集合
*/
private String deliveryScope;
/**
* 外卖起送条件(1:杯数,2:金额)
*/
private Integer deliveryType;
/**
* 起送杯数
*/
private Integer freeDeliveryCup;
/**
* 起送价格(单位分)
*/
private Integer freeDeliveryPrice;
/**
* 所属商户号
*/
private String partnerId;
/**
* 配送范围类型 1 自定义 2 半径
*/
private Integer scopeConfig;
/**
* 扩展字段信息
*/
private DeliveryInfoExpFields expandFields;
}
package cn.freemud.entities.dto.store;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/9/22 下午3:24
* @description :
*/
@Data
public class DeliveryInfoExpFields {
/**
* 外卖起送价规则:1-按原价计算、2-按优惠价计算
*/
private String deliveryAmountType;
}
...@@ -31,4 +31,8 @@ public class ExpandFields { ...@@ -31,4 +31,8 @@ public class ExpandFields {
*/ */
private Integer preOrderSwitch; private Integer preOrderSwitch;
/**
* 派单模式(0-系统自动派单;1-手动派单)
*/
private String dispatchType;
} }
...@@ -10,7 +10,7 @@ public class SoreMixResponseDto { ...@@ -10,7 +10,7 @@ public class SoreMixResponseDto {
private BusinessInfoDto businessInfo; private BusinessInfoDto businessInfo;
private Object deliveryInfo; private DeliveryInfoDTO deliveryInfo;
private Object parentUntilTop; private Object parentUntilTop;
......
...@@ -52,11 +52,8 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome ...@@ -52,11 +52,8 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome
import com.freemud.application.sdk.api.base.BaseResponse; import com.freemud.application.sdk.api.base.BaseResponse;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest; import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
import com.freemud.application.sdk.api.membercenter.request.StatisticalPropertyRequest;
import com.freemud.application.sdk.api.membercenter.response.GetSvcInfoByMemberIdResponse;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse; import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService; import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.membercenter.service.MemberPropertyService;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum; import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService; import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest; import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
...@@ -222,6 +219,22 @@ public class CheckOrder { ...@@ -222,6 +219,22 @@ public class CheckOrder {
} }
/** /**
* 查询门店信息新接口
*/
public SoreMixResponseDto getStoreInfoNew(String partnerId, String shopId, StoreInfoRequestDto.QueryInfo query) {
// 获取门店信息
StoreInfoRequestDto request = new StoreInfoRequestDto();
request.setPartnerId(partnerId);
request.setStoreCode(shopId);
request.setQuery(query);
StoreBaseResponseDto<SoreMixResponseDto> storeInfoNew = storeClient.getStoreInfoNew(request);
if (storeInfoNew == null || storeInfoNew.getBizVO() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
return storeInfoNew.getBizVO();
}
/**
* 下单门店相关校验 * 下单门店相关校验
*/ */
public StoreResponse.BizVO checkOrderByStore(CreateOrderVo createOrderVo, String trackingNo) { public StoreResponse.BizVO checkOrderByStore(CreateOrderVo createOrderVo, String trackingNo) {
...@@ -267,6 +280,19 @@ public class CheckOrder { ...@@ -267,6 +280,19 @@ public class CheckOrder {
} }
/** /**
* 调用该方法 需要自己判断 业务对象是否为null
* @param partnerId
* @param shopId
* @param query
* @return
*/
public SoreMixResponseDto getStoremixDto(String partnerId, String shopId, StoreInfoRequestDto.QueryInfo query) {
// 获取门店信息
SoreMixResponseDto storeInfoNew = getStoreInfoNew(partnerId, shopId, query);
return storeInfoNew;
}
/**
* 下单订单类型校验 * 下单订单类型校验
*/ */
public Integer checkOrderByOrderType(CreateOrderVo createOrderVo, AssortmentCustomerInfoVo userLoginInfoDto, public Integer checkOrderByOrderType(CreateOrderVo createOrderVo, AssortmentCustomerInfoVo userLoginInfoDto,
...@@ -412,10 +438,26 @@ public class CheckOrder { ...@@ -412,10 +438,26 @@ public class CheckOrder {
} }
} }
//订单金额小于起送费提示 //订单金额小于起送费提示
else if ((2 == storeDeliveryInfoDto.getDeliveryCondition() else if (2 == storeDeliveryInfoDto.getDeliveryCondition()
&& storeDeliveryInfoDto.getDeliveryLimitAmount() > shoppingCartGoodsDto.getTotalAmount())
&& !cocoPartnerId.contains(createOrderVo.getPartnerId())) { && !cocoPartnerId.contains(createOrderVo.getPartnerId())) {
throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_FEE); // fisherman 【ID1037103】【野翠山】【B】外卖起送价规则取订单总金额 这特么用sdk就很吊, 得重新调用接口
// 先暂时这么写, 到时候需要优化这一块 对于门店的请求操作
StoreInfoRequestDto.QueryInfo query = new StoreInfoRequestDto.QueryInfo();
query.setQueryDeliveryInfo(Boolean.TRUE);
SoreMixResponseDto storemixDto = this.getStoremixDto(createOrderVo.getPartnerId(), createOrderVo.getShopId(), query);
DeliveryInfoDTO deliveryInfo = storemixDto.getDeliveryInfo();
Long deliveryLimitAmount = storeDeliveryInfoDto.getDeliveryLimitAmount();
Long totalAmount = shoppingCartGoodsDto.getTotalAmount();
if (Objects.nonNull(deliveryInfo) && Objects.nonNull(deliveryInfo.getExpandFields())) {
DeliveryInfoExpFields expandFields = deliveryInfo.getExpandFields();
if (Objects.equals(expandFields.getDeliveryAmountType(),"1")) {
//原价起送
totalAmount = shoppingCartGoodsDto.getOriginalTotalAmount();
}
}
if (deliveryLimitAmount.compareTo(totalAmount) > 0) {
throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_FEE);
}
} }
storeDeliveryInfoDto.setEnableTakeaway(true); storeDeliveryInfoDto.setEnableTakeaway(true);
......
...@@ -186,6 +186,11 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV ...@@ -186,6 +186,11 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
private Long shoppingCartGoodsAmount; private Long shoppingCartGoodsAmount;
/** /**
* 购物车商品原总价
*/
private Long shoppingCartOriginalGoodsAmount;
/**
* 加价购商品总价 * 加价购商品总价
*/ */
private Long sendGoodsAmount; private Long sendGoodsAmount;
......
...@@ -836,11 +836,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -836,11 +836,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
this.addNeedCardAmount(shoppingCartInfoRequestVo, shoppingCartGoodsResponseVo); this.addNeedCardAmount(shoppingCartInfoRequestVo, shoppingCartGoodsResponseVo);
} }
// 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除 // 添加购物车商品总价和加价购商品总价,现在是自己计算,后面需要优化为促销计算, 这段要删除
shoppingCartGoodsResponseVo.setShoppingCartGoodsAmount(0L); // shoppingCartGoodsResponseVo.setShoppingCartGoodsAmount(0L);
if (CollectionUtils.isNotEmpty(shoppingCartGoodsResponseVo.getProducts())) { // if (CollectionUtils.isNotEmpty(shoppingCartGoodsResponseVo.getProducts())) {
long shoppingCartGoodsAmount = shoppingCartGoodsResponseVo.getProducts().stream().mapToLong(CartGoods::getAmount).sum(); // long shoppingCartGoodsAmount = shoppingCartGoodsResponseVo.getProducts().stream().mapToLong(CartGoods::getAmount).sum();
shoppingCartGoodsResponseVo.setShoppingCartGoodsAmount(shoppingCartGoodsAmount); // shoppingCartGoodsResponseVo.setShoppingCartGoodsAmount(shoppingCartGoodsAmount);
} // }
if (CollectionUtils.isNotEmpty(shoppingCartInfoRequestVo.getSendGoods())) { if (CollectionUtils.isNotEmpty(shoppingCartInfoRequestVo.getSendGoods())) {
PremiumExchangeRequestVo request = new PremiumExchangeRequestVo(); PremiumExchangeRequestVo request = new PremiumExchangeRequestVo();
...@@ -873,6 +873,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -873,6 +873,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList()); chooseSendGoodList = products.stream().filter(p -> sendGoodsIdList.contains(p.getSkuId()) || sendGoodsIdList.contains(p.getSpuId())).collect(toList());
long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum(); long sendGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getNowPrice).sum();
shoppingCartGoodsResponseVo.setSendGoodsAmount(sendGoodsAmount); shoppingCartGoodsResponseVo.setSendGoodsAmount(sendGoodsAmount);
// fisherman 需要加上原价-->
long sendOriginalGoodsAmount = chooseSendGoodList.stream().mapToLong(PremiumExchangeResponseVo.PremiumExchangeProduct::getOriginalPrice).sum();
shoppingCartGoodsResponseVo.setShoppingCartOriginalGoodsAmount(shoppingCartGoodsResponseVo.getShoppingCartOriginalGoodsAmount() + sendOriginalGoodsAmount);
} }
updateForPopupWindow(shoppingCartGoodsResponseVo, premiumExchangeResponseVoBaseResponse.getResult().getShowType(), chooseSendGoodList, shoppingCartInfoRequestVo.getSendGoods()); updateForPopupWindow(shoppingCartGoodsResponseVo, premiumExchangeResponseVoBaseResponse.getResult().getShowType(), chooseSendGoodList, shoppingCartInfoRequestVo.getSendGoods());
} }
...@@ -2295,6 +2298,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2295,6 +2298,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if (Objects.isNull(shoppingCartInfoRequestVo)) { if (Objects.isNull(shoppingCartInfoRequestVo)) {
return; return;
} }
// 这两行为了 展示 商品的 原价以及现在的购买价格 不需要包装费, fisherman 目前需求: 是否满足配送 按照商品原价|现价匹配
shoppingCartGoodsResponseVo.setShoppingCartGoodsAmount(shoppingCartGoodsResponseVo.getTotalAmount());
shoppingCartGoodsResponseVo.setShoppingCartOriginalGoodsAmount(shoppingCartGoodsResponseVo.getOriginalTotalAmount());
// 到店自取包装费设为null,外卖要计算包装费,flag为1表示去结算 // 到店自取包装费设为null,外卖要计算包装费,flag为1表示去结算
// 兼容老版本判断null // 兼容老版本判断null
if (Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.COLLECT_GOODS.getCode()) if (Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.COLLECT_GOODS.getCode())
......
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