Commit 13a1533f by yu.sun

Merge branch 'feature-yu.sun-material-20201030' of…

Merge branch 'feature-yu.sun-material-20201030' of gitlab.freemud.com:order-group-application/order-group into feature-yu.sun-material-20201030
parents d4acd63c 37088832
......@@ -801,7 +801,6 @@ public class OrderSdkAdapter {
}
accountBean.setSequence(orderSettlementResp.getProductSeq());
accountBean.setType(getOldOrderAccountType(orderSettlementResp.getSettlementType()));
// accountBean.setAddInfo("");
accountBean.setAddInfo(orderSettlementResp.getExtInfo());
accountBean.setPlatformDiscountAmount(orderSettlementResp.getPlatformDiscountAmount());
accountBean.setShopDiscountAmount(orderSettlementResp.getShopDiscountAmount());
......@@ -922,7 +921,7 @@ public class OrderSdkAdapter {
productDiscount.setDiscountAmount(orderSettlementResp.getShopDiscountAmount());
//无数据
productDiscount.setCustomerCode("");
productDiscount.setAddInfo("");
productDiscount.setAddInfo(orderSettlementResp.getExtInfo());
productDiscount.setProductId(orderSettlementResp.getProductId());
discountList.add(productDiscount);
}
......@@ -1915,6 +1914,8 @@ public class OrderSdkAdapter {
newOrderAccountType=OldOrderAccountType.TOTAL_DISCOUNT.getCode();
case 220:
newOrderAccountType=OldOrderAccountType.MEMBER_PRICE_DISCOUNT.getCode();
case 99:
newOrderAccountType=OldOrderAccountType.FREIGHT_COUPON.getCode();
default:
break;
}
......@@ -2609,6 +2610,7 @@ public class OrderSdkAdapter {
return originalAmount;
}
Integer index = 1;
Integer comboIndex = 1;
for (CreateOrderProductRequest productRequest : products) {
// 普通商品 订单转换
productRequest.setOpid(index);
......@@ -2618,7 +2620,6 @@ public class OrderSdkAdapter {
// 父类商品productId=productId+seq
String parentProductId = productRequest.getProductId() + "_" + index;
if (CollectionUtils.isNotEmpty(productRequest.getComboProduct())) {
Integer comboIndex = 1;
for(CreateOrderProductRequest combo : productRequest.getComboProduct()) {
combo.setOpid(comboIndex);
updateOrderItemAndSettlement(orderItemList, orderSettlementCreateReqList, combo, partnerId, parentProductId, false);
......@@ -2767,9 +2768,6 @@ public class OrderSdkAdapter {
extInfo.setThirdCensusCategoryId(product.getClassificationId());
extInfo.setThirdCensusCategoryName(product.getClassificationName());
}
if(CollectionUtils.isNotEmpty(product.getSpecialCodes())) {
extInfo.setSpecialCodes(product.getSpecialCodes());
}
if(CollectionUtils.isNotEmpty(product.getSpecialAttrs())) {
extInfo.setSpecialAttrs(product.getSpecialAttrs());
}
......@@ -2821,6 +2819,7 @@ public class OrderSdkAdapter {
orderSettlementCreateReq.setIsOnline(true);
orderSettlementCreateReq.setSettlementType(getDiscountType(accountRequest.getAccountType()));
orderSettlementCreateReq.setNote(accountRequest.getName());
orderSettlementCreateReq.setExtInfo(accountRequest.getAddInfo());
orderSettlementCreateReqList.add(orderSettlementCreateReq);
}
......
......@@ -177,7 +177,5 @@ public class CreateOrderProductRequest extends BaseConfig {
private String taxId;
private List<String> specialCodes;
private List<OrderSpecialExtraAttrRequest> specialAttrs;
}
......@@ -71,7 +71,5 @@ public class OrderProductAddInfoDto extends BaseConfig {
private String taxId;
private List<String> specialCodes;
private List<OrderSpecialExtraAttrRequest> specialAttrs;
}
......@@ -11,6 +11,10 @@ import java.util.List;
@NoArgsConstructor
public class OrderSpecialExtraAttrRequest {
/**
* 属性id
*/
private String attributeId;
/**
* 属性名
*/
private String attributeName;
......
......@@ -18,4 +18,6 @@ public class CommonsConstant {
public final static Integer WEIGHT_PRODUCT = 1;
public final static Integer COUPON_TYPE = 0;
}
......@@ -32,6 +32,7 @@ import cn.freemud.management.enums.OrderSource;
import cn.freemud.service.mccafe.CouponClientService;
import cn.freemud.utils.BeanUtil;
import cn.freemud.utils.LogUtil;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
......@@ -671,8 +672,15 @@ public class CouponAdapter {
}
MCCafeProductRedeemVo mcCafeProductRedeemVo = new MCCafeProductRedeemVo();
mcCafeProductRedeemVo.setPid(pid);
mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
String extInfo = productDiscount.getAddInfo();
Integer extendType = StringUtils.isBlank(extInfo)?null: JSON.parseObject(extInfo).getInteger("extendType");
if(extendType != null && extendType == 4) {
mcCafeProductRedeemVo.setKeyProductCode(JSON.parseObject(extInfo).getString("tenderId"));
mcCafeProductRedeemVo.setCustomer_code(JSON.parseObject(extInfo).getString("tenderId"));
} else {
mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
}
mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty());
mcCafeProductRedeemVo.setSeq(i + 1);
if(null != coupon && CollectionUtils.isNotEmpty(coupon.getCodeInfo().getGroups())) {
......
......@@ -18,6 +18,7 @@ import com.freemud.sdk.api.assortment.order.enums.QueryOrderAccountType;
import com.freemud.sdk.api.assortment.order.request.order.CreateOrderProductRequest;
import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto;
import com.freemud.sdk.api.assortment.order.request.order.OrderSpecialExtraAttrRequest;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;
......@@ -191,14 +192,20 @@ public class DeliveryAdapter {
String attr = "";
for (OrderSpecialExtraAttrRequest special : extInfo.getSpecialAttrs()) {
if(special.getAttributeName().indexOf("冰") >= 0) {
attr += special.getAttributeName()+",";
attr = special.getAttributeName();
break;
}
}
if(attr.length() > 0) {
attr = attr.substring(0, attr.length()-1);
productName += "("+attr+")";
}
}
if(CollectionUtils.isNotEmpty(productList.getMaterialProduct())) {
for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean material : productList.getMaterialProduct()) {
productName += "/"+material.getSpecificationName();
}
}
deliveryProductInfo.setProductName(productName);
deliveryProductInfo.setProductNumber(productList.getNumber());
deliveryProductInfo.setProductPrice(productList.getSalePrice().intValue());
......@@ -221,14 +228,20 @@ public class DeliveryAdapter {
String attr = "";
for (OrderSpecialExtraAttrRequest special : extInfoCombo.getSpecialAttrs()) {
if(special.getAttributeName().indexOf("冰") >= 0) {
attr += special.getAttributeName()+",";
attr = special.getAttributeName();
break;
}
}
if(attr.length() > 0) {
attr = attr.substring(0, attr.length()-1);
productNameCombo += "("+attr+")";
}
}
if(CollectionUtils.isNotEmpty(comboProduct.getMaterialProduct())) {
for (QueryOrdersResponseDto.DataBean.OrderBean.ProductBean material : comboProduct.getMaterialProduct()) {
productNameCombo += "/"+material.getSpecificationName();
}
}
deliveryComboProductInfo.setProductName(productNameCombo);
deliveryComboProductInfo.setProductNumber(comboProduct.getNumber()/productList.getNumber());
deliveryComboProductInfo.setProductPrice(comboProduct.getSalePrice().intValue());
......@@ -241,12 +254,35 @@ public class DeliveryAdapter {
deliveryComboProductInfo.setParentCode(Long.valueOf(comboProduct.getParentProductId().replace("_", "")));
deliveryProductInfo.setProductCode(deliveryComboProductInfo.getParentCode()+"");
if(CollectionUtils.isNotEmpty(comboProduct.getMaterialProduct())) {
comboProduct.getMaterialProduct().forEach(o -> {
deliveryComboProductInfo.setProductPrice(deliveryComboProductInfo.getProductPrice() + o.getSalePrice().intValue());
//餐道使用
deliveryComboProductInfo.setCumulatedTotal(deliveryComboProductInfo.getCumulatedTotal() + comboProduct.getNumber() * o.getSalePrice().intValue());
deliveryProductInfo.setProductPrice(deliveryProductInfo.getProductPrice() + o.getSalePrice().intValue());
//餐道使用
deliveryProductInfo.setCumulatedTotal(deliveryProductInfo.getCumulatedTotal() + comboProduct.getNumber() * o.getSalePrice().intValue());
});
}
productInfos.add(deliveryComboProductInfo);
});
}
if(CollectionUtils.isNotEmpty(productList.getMaterialProduct())) {
productList.getMaterialProduct().forEach(o -> {
deliveryProductInfo.setProductPrice(deliveryProductInfo.getProductPrice() + o.getSalePrice().intValue());
//餐道使用
deliveryProductInfo.setCumulatedTotal(deliveryProductInfo.getCumulatedTotal() + productList.getNumber() * o.getSalePrice().intValue());
});
}
});
deliveryOrderRequestDto.setProductTotal(productInfos.stream().mapToInt(t -> t.getCumulatedTotal()).sum());
}
deliveryOrderRequestDto.setProductInfos(productInfos);
deliveryOrderRequestDto.setOrderSource(OrderSourceType.ALIPAY.getCode().equals(order.getSource())?"Alipay":"freemud");
if(CollectionUtils.isNotEmpty(order.getAccountList())) {
......
......@@ -23,4 +23,8 @@ public class ActivityDiscountsDto {
private Integer activityType;
private Integer actualActivityGoodsNumber;
private String tenderId;
/**
* 1-运费券 2-运费月卡券 3-月卡券 4-万能券 5-啡常月享卡 6-通用券
*/
private Integer extendType;
}
......@@ -42,6 +42,8 @@ public class ProductVo {
* 商品spu名称
*/
private String spuName;
private String couponName;
/**
* 商品的规格信息加属性信息
*/
......
......@@ -99,6 +99,14 @@ public class QueryOrderResponseVo {
*/
private Long deliveryAmount;
/**
* 配送费原价
*/
private Long originalDeliveryAmount;
/**
* 运费券名称
*/
private String freightCouponName;
/**
* 限时折扣优惠金额
*/
private Long discountLimitAmount;
......
......@@ -215,7 +215,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
return sellCouponOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
//麦咖啡订单处理
if(mcCafePartnerId.equals(orderBean.getOid())) {
if(mcCafePartnerId.equals(orderBean.getCompanyId())) {
return mcCafeOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/**
......
......@@ -1222,9 +1222,9 @@ public class OrderServiceImpl implements Orderservice {
&& queryOrderResponseVo.getRefundStatus() != null && queryOrderResponseVo.getRefundStatus() == 1) {
Integer automaticRefund = storeInfo.getBizVO().getStoreConfig().getAutomaticRefund();
if(automaticRefund != null && automaticRefund == 1){
queryOrderResponseVo.setRefundTips("若48小时后商家未处理,自动同意");
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
}else {
queryOrderResponseVo.setRefundTips("若48小时后商家未处理,拒绝退款");
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
}
}
......@@ -1349,9 +1349,9 @@ public class OrderServiceImpl implements Orderservice {
&& queryOrderResponseVo.getRefundStatus() != null && queryOrderResponseVo.getRefundStatus() == 1) {
Integer automaticRefund = storeInfo.getBizVO().getStoreConfig().getAutomaticRefund();
if(automaticRefund != null && automaticRefund == 1){
queryOrderResponseVo.setRefundTips("若48小时后商家未处理,自动同意");
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
}else {
queryOrderResponseVo.setRefundTips("若48小时后商家未处理,拒绝退款");
queryOrderResponseVo.setRefundTips("若48小时内未成功退款,请联系商家人工处理");
}
}
......
......@@ -65,7 +65,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.0.17-SNAPSHOT</version>
<version>2.0.13-RELEASE</version>
<scope>provided</scope>
</dependency>
<dependency>
......
......@@ -8,6 +8,7 @@ import cn.freemud.management.enums.CouponReqTypeEnum;
import cn.freemud.management.enums.MCCafeChannelEnum;
import cn.freemud.management.enums.OrderSource;
import cn.freemud.management.thirdparty.CouponOfflineMCCafeClient;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
......@@ -90,8 +91,15 @@ public class McCafeCouponAdapter {
}
MCCafeProductRedeemVo mcCafeProductRedeemVo = new MCCafeProductRedeemVo();
mcCafeProductRedeemVo.setPid(pid);
mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
String extInfo = productDiscount.getAddInfo();
Integer extendType = StringUtils.isBlank(extInfo)?null: JSON.parseObject(extInfo).getInteger("extendType");
if(extendType != null && extendType == 4) {
mcCafeProductRedeemVo.setKeyProductCode(JSON.parseObject(extInfo).getString("tenderId"));
mcCafeProductRedeemVo.setCustomer_code(JSON.parseObject(extInfo).getString("tenderId"));
} else {
mcCafeProductRedeemVo.setKeyProductCode(productBean.getCustomerCode());
mcCafeProductRedeemVo.setCustomer_code(productBean.getCustomerCode());
}
mcCafeProductRedeemVo.setConsume_num(productDiscount.getDiscountQty());
mcCafeProductRedeemVo.setSeq(i + 1);
if(null != coupon && CollectionUtils.isNotEmpty(coupon.getCodeInfo().getGroups())) {
......
......@@ -158,6 +158,10 @@ public class ActivityCalculationDiscountResponseDto {
* 运费月卡入机字段
*/
private String tenderId;
/**
* 1-运费券 2-运费月卡券 3-月卡券 4-万能券 5-啡常月享卡 6-通用券
*/
private Integer extendType;
}
@Data
......
......@@ -22,6 +22,10 @@ public class ActivityDiscountsDto {
private Integer discountAmount;
private Integer activityType;
private String tenderId;
/**
* 1-运费券 2-运费月卡券 3-月卡券 4-万能券 5-啡常月享卡 6-通用券
*/
private Integer extendType;
/**
* 实际参与活动商品数量
......
......@@ -22,6 +22,7 @@ public enum GoodsTypeEnum {
SKU_GOODS(4, "sku商品"),
SPU_GOODS(5, "spu商品"),
REDUCE_PRICE_GOODS(6,"超值加购商品"),
ALL_COUPON_GOODS(8, "万能券商品"),
MATERIAL(88, "有加料的商品"),
EXCEPTION_GOODS(99, "异常商品:商品菜单变化导致和购物车不商品匹配");
private Integer goodsType;
......
......@@ -297,10 +297,14 @@ public class ShoppingCartMCoffeeServiceImpl {
// 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, sessionId, "", shoppingCartBaseService);
String couponCode = assortmentSdkService.getShoppingCartCoupon(partnerId, storeId, userId, shoppingCartBaseService, SaveCouponType.COUPON.getCode());
String freightCouponCode = assortmentSdkService.getShoppingCartCoupon(partnerId, storeId, userId, shoppingCartBaseService, SaveCouponType.FREIGHT_COUPON.getCode());
// 当couponCode不为空时,需参与价格计算
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = getCoupon(null, null, cartGoodsList,null);
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons = getCoupon(couponCode, null, cartGoodsList,freightCouponCode);
// 促销活动的优惠金额计算
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, null,
calculationService.updateShoppingCartGoodsDiscount(partnerId, storeId, userId, appId, orderType, assortmentCustomerInfoVo.isMemberPaid(), menuType, receiveId, couponCode,
cartGoodsList, coupons, new ArrayList<>(), shoppingCartGoodsResponseVo);
//设置更新响应信息
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), ShoppingCartConstant.ADD_AND_UPDATE, null);
......@@ -335,7 +339,7 @@ public class ShoppingCartMCoffeeServiceImpl {
// 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, sessionId, "", shoppingCartBaseService);
log.info("cartGoodsList: {}",JSONObject.toJSONString(cartGoodsList));
// 如果购物车商品不为空, 则check购物车中所有商品
if (CollectionUtils.isNotEmpty(cartGoodsList)) {
// check购物车中所有商品
......@@ -538,6 +542,7 @@ public class ShoppingCartMCoffeeServiceImpl {
// 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, tableNumber, shoppingCartBaseService);
log.info("cartGoodsList: {}",JSONObject.toJSONString(cartGoodsList));
if (cartGoodsList == null || CollectionUtils.isEmpty(cartGoodsList)) {
throw new ServiceException(ResponseResult.SHOPPING_CART_GETINFO_INVAILD);
}
......@@ -788,6 +793,7 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoods.setFinalPrice(orderItem.getProductPrice().longValue());
cartGoods.setOriginalAmount(cartGoods.getOriginalPrice() * cartGoods.getQty());
cartGoods.setAmount(cartGoods.getFinalPrice() * cartGoods.getQty());
cartGoods.setPic(orderItem.getProductPicUrl());
if(6 == orderItem.getProductType()) {
cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType());
} else if(10 ==orderItem.getProductType()) {
......@@ -798,7 +804,7 @@ public class ShoppingCartMCoffeeServiceImpl {
cartGoods.setGoodsType(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.COMMON_GOODS.getGoodsType());
}
if(("早餐啡常搭".equals(orderItem.getProductName()) && "早餐啡常搭".equals(orderItem.getProductSpecName()))
|| ("啡常搭".equals(orderItem.getProductName()) && "啡常搭".equals(orderItem.getProductSpecName()))) {
|| ("啡常搭".equals(orderItem.getProductName()) && "啡常搭".equals(orderItem.getProductSpecName()))) {
cartGoods.setName(orderItem.getProductName());
cartGoods.setSpuName(orderItem.getProductName());
cartGoods.setSkuName(orderItem.getProductName());
......@@ -855,6 +861,7 @@ public class ShoppingCartMCoffeeServiceImpl {
comboxGoods.setQty(orderItemResp.getProductQuantity());
comboxGoods.setOriginalPrice(orderItemResp.getProductPrice().longValue());
comboxGoods.setFinalPrice(orderItemResp.getSalePrice().longValue());
comboxGoods.setPic(orderItemResp.getProductPicUrl());
comboxGoods.setOriginalAmount(comboxGoods.getOriginalPrice() * comboxGoods.getQty());
comboxGoods.setAmount(comboxGoods.getFinalPrice() * comboxGoods.getQty());
if (StringUtils.isNotBlank(orderItemResp.getProductProperty())) {
......@@ -966,11 +973,6 @@ public class ShoppingCartMCoffeeServiceImpl {
List<CartGoods> nowCartGoodsList = new ArrayList<>();
//判断当前商品在购物车是否已存在,存在则数量+1,不存在商品行 + 1
allCartGoodsList.forEach(oldCartGoods -> {
if(oldCartGoods.getSpuId().equals(addCartGoods.getSpuId())) {
oldCartGoods.setSpuName(addCartGoods.getSpuName());
oldCartGoods.setSkuName(addCartGoods.getSpuName());
oldCartGoods.setName(addCartGoods.getName());
}
int index;
if ((index = nowCartGoodsList.indexOf(oldCartGoods)) >= 0) {
nowCartGoodsList.get(index).setQty(nowCartGoodsList.get(index).getQty() + addCartGoods.getQty());
......@@ -1195,6 +1197,9 @@ public class ShoppingCartMCoffeeServiceImpl {
} else if (CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductComboList()) || CollectionUtils.isNotEmpty(addShoppingCartGoodsRequestVo.getProductGroupList())) {
goodsType = GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType();
}
/*else if (CommonsConstant.COUPON_TYPE == addShoppingCartGoodsRequestVo.getCouponType()){
goodsType = GoodsTypeEnum.ALL_COUPON_GOODS.getGoodsType();
}*/
if (addShoppingCartGoodsRequestVo.getOperationType() != null && addShoppingCartGoodsRequestVo.getOperationType() == 2) {
goodsType = GoodsTypeEnum.REDUCE_PRICE_GOODS.getGoodsType();
}
......
......@@ -204,6 +204,7 @@ public class CalculationServiceImpl {
activityDiscountsDto.setActivityType(discountType);
activityDiscountsDto.setDiscountAmount(0 - discountAmount);
activityDiscountsDto.setTenderId(discount.getTenderId());
activityDiscountsDto.setExtendType(discount.getExtendType());
activityDiscountsDtos.add(activityDiscountsDto);
}
}
......@@ -247,7 +248,7 @@ public class CalculationServiceImpl {
// couponPromotionVO.setOrderType(orderType);
// couponPromotionVO.setFlg(CouponFlag.YES.getCode());
//优惠券
couponDiscountCalculation.updateShoppingCartGoodsApportion(calculationDiscountResult, shoppingCartGoodsDto);
couponDiscountCalculation.updateShoppingCartGoodsApportion(calculationDiscountResult, shoppingCartGoodsDto, shoppingCartInfoRequestVo);
setMealCalculation.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto);
......@@ -446,9 +447,9 @@ public class CalculationServiceImpl {
long totalPackgeAmount = 0L;
for (CartGoods cartGoods : cartGoodsList) {
// 设置商品原价与商品现价的初始值
long originalAmount = null != cartGoods.getOriginalPrice() ? cartGoods.getOriginalPrice() : 0;
long amount = null != cartGoods.getOriginalPrice() ? cartGoods.getOriginalPrice() : 0;
long packAmount = null != cartGoods.getPackPrice() ? cartGoods.getPackPrice() : 0;
long originalAmount = null != cartGoods.getOriginalPrice() ? cartGoods.getOriginalPrice()* cartGoods.getQty() : 0;
long amount = null != cartGoods.getOriginalPrice() ? cartGoods.getOriginalPrice()* cartGoods.getQty() : 0;
long packAmount = null != cartGoods.getPackPrice() ? cartGoods.getPackPrice()* cartGoods.getQty() : 0;
totalOriginalAmount += originalAmount;
totalAmount += amount;
totalPackgeAmount += packAmount;
......
package cn.freemud.service.impl.mcoffee.calculation;
import cn.freemud.adapter.CouponAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
......@@ -9,6 +10,7 @@ import cn.freemud.entities.vo.*;
import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.CommonService;
import cn.freemud.service.impl.ItemServiceImpl;
import cn.freemud.service.impl.mcoffee.entity.CouponAvailableReq;
import cn.freemud.service.impl.mcoffee.entity.CouponAvailableResp;
import cn.freemud.service.impl.mcoffee.entity.CouponProductVo;
......@@ -49,7 +51,8 @@ public class CouponDiscountCalculation {
@Autowired
private CustomerExtendClient customerExtendClient;
@Autowired
private ItemServiceImpl itemService;
@Autowired
private CommonService commonService;
......@@ -133,7 +136,7 @@ public class CouponDiscountCalculation {
/**
* 商品均摊
*/
public void updateShoppingCartGoodsApportion(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, ShoppingCartGoodsDto shoppingCartGoodsDto){
public void updateShoppingCartGoodsApportion(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, ShoppingCartGoodsDto shoppingCartGoodsDto, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo){
if (calculationDiscountResult == null || CollectionUtils.isEmpty(calculationDiscountResult.getDiscounts())
|| !calculationDiscountResult.getDiscounts().stream().anyMatch(discount -> (ActivityTypeEnum.TYPE_3.getCode().equals(discount.getType())
......@@ -159,6 +162,10 @@ public class CouponDiscountCalculation {
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoods : shoppingCartGoodsDto.getProducts()) {
//商品券商品
if (StringUtils.isNotEmpty(cartGoods.getCouponCode())) {
if (goodsMap.get(cartGoods.getCartGoodsUid()) == null) {
continue;
}
List<ActivityDiscountsDto> productActivityDiscountsDtos = new ArrayList<>();
if (CollectionUtils.isNotEmpty(discounts)) {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount couponDiscount : discounts) {
......@@ -168,8 +175,24 @@ public class CouponDiscountCalculation {
activityDiscountsDto.setActivityName(couponDiscount.getActivityName());
activityDiscountsDto.setActivityType(couponDiscount.getType());
activityDiscountsDto.setDiscountAmount(0 - couponDiscount.getDiscount());
Integer extendType = couponDiscount.getExtendType();
activityDiscountsDto.setExtendType(extendType);
activityDiscountsDto.setTenderId(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo());
productActivityDiscountsDtos.add(activityDiscountsDto);
if (extendType != null && extendType == 4 ) {
//调用商品的接口获取商品键位
List<String> productIds=Arrays.asList(cartGoods.getSkuId());
BaseResponse<Map<String, GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean>> baseResponse = itemService.getProducts(shoppingCartInfoRequestVo.getPartnerId(),
shoppingCartInfoRequestVo.getShopId(), productIds, false, shoppingCartInfoRequestVo.getMenuType());
if (ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode()) && baseResponse.getResult() != null){
GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean productBean = baseResponse.getResult().get(cartGoods.getSkuId());
cartGoods.setCustomerCode(productBean.getCustomerCode());
}
}else {
cartGoods.setCustomerCode(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo());
}
cartGoods.setTotalDiscountAmount(-activityDiscountsDto.getDiscountAmount());
cartGoods.setSalePrice(0L);
cartGoods.setActivityDiscountsDtos(productActivityDiscountsDtos);
......@@ -177,16 +200,6 @@ public class CouponDiscountCalculation {
}
}
if (goodsMap.get(cartGoods.getCartGoodsUid()) == null) {
continue;
}
//商品券键位编号为空
if(StringUtils.isBlank(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo())){
//直接抛出异常导致同一个 普通商品 和万能券商品 校验有问题,故促销未返回,默认为空
// throw new ServiceException(ResponseResult.SHOPPING_CART_SEAT_EMPTY);
cartGoods.setCustomerCode("");
}
cartGoods.setCustomerCode(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo());
}
}
......
......@@ -119,6 +119,11 @@ public class MCoffeeAddGoodsRequestVo {
private Integer operationType;
/**
* 券类型 0:商品券
*/
private Integer couponType;
/**
* 优惠券号
*/
private String couponCode;
......
package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.CouponCodeResponseDto;
import cn.freemud.entities.dto.CouponCodeVerificationMCCafeDto;
import com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
@FeignClient(name = "COUPONMCCafe",url="http://coupon-api-gateway-koderover-dev-coupon.api-ingress.sandload.cn")
public interface CouponOfflineMCCafeClient {
@PostMapping("/mccafe/redeem")
CouponRedeemResponse redeem(CouponCodeVerificationMCCafeDto couponCodeVerificationMCCafeDto);
@PostMapping("/mccafe/cancelRedeem")
CouponRedeemResponse cancelRedeem(CouponCodeVerificationMCCafeDto couponCodeVerificationMCCafeDto);
@PostMapping("/mccafe/query")
CouponRedeemResponse query(CouponCodeVerificationMCCafeDto couponCodeVerificationMCCafeDto);
@PostMapping("/mccafe/lock")
CouponRedeemResponse lock(CouponCodeVerificationMCCafeDto couponCodeVerificationMCCafeDto);
@PostMapping("/mccafe/unlock")
CouponRedeemResponse unlock(CouponCodeVerificationMCCafeDto couponCodeVerificationMCCafeDto);
}
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