Commit ec773d91 by 查志伟

Merge branch '20210928-美团POS支持-zhiwei.zha' into qa

parents ba82ddae aa007249
...@@ -25,12 +25,10 @@ import com.freemud.application.sdk.api.util.DateUtil; ...@@ -25,12 +25,10 @@ import com.freemud.application.sdk.api.util.DateUtil;
import com.freemud.sdk.api.assortment.order.constant.CommonConstant; import com.freemud.sdk.api.assortment.order.constant.CommonConstant;
import com.freemud.sdk.api.assortment.order.domain.OrderStatesVO; import com.freemud.sdk.api.assortment.order.domain.OrderStatesVO;
import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant; import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import com.freemud.sdk.api.assortment.order.entities.OrderEditInfo;
import com.freemud.sdk.api.assortment.order.enums.*; import com.freemud.sdk.api.assortment.order.enums.*;
import com.freemud.sdk.api.assortment.order.request.order.OrderDownloadRequest; import com.freemud.sdk.api.assortment.order.request.order.OrderDownloadRequest;
import com.freemud.sdk.api.assortment.order.request.order.*; import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*; import com.freemud.sdk.api.assortment.order.response.order.*;
//import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
import com.freemud.sdk.api.assortment.order.util.AssortOrderLogUtil; import com.freemud.sdk.api.assortment.order.util.AssortOrderLogUtil;
import com.freemud.sdk.api.assortment.order.util.ClassUtils; import com.freemud.sdk.api.assortment.order.util.ClassUtils;
import com.freemud.sdk.api.assortment.order.util.WeightUtils; import com.freemud.sdk.api.assortment.order.util.WeightUtils;
...@@ -245,6 +243,8 @@ public class OrderSdkAdapter { ...@@ -245,6 +243,8 @@ public class OrderSdkAdapter {
List<OrderCostCreateReq> orderCostCreateReqs = new ArrayList<>(); List<OrderCostCreateReq> orderCostCreateReqs = new ArrayList<>();
// 更新订单商品详情信息 // 更新订单商品详情信息
originalAmount = updateOrderItemsAndSettlements(orderItemList, orderSettlementCreateReqList, orderCostCreateReqs, requestVO.getProducts(), requestVO.getAccounts(), requestVO.getCompanyId()); originalAmount = updateOrderItemsAndSettlements(orderItemList, orderSettlementCreateReqList, orderCostCreateReqs, requestVO.getProducts(), requestVO.getAccounts(), requestVO.getCompanyId());
//将优惠信息中的活动优惠按优先级排个序 (对接美团Pos需要)
orderSettlementCreateReqList = this.sortSettlementCreateList(orderSettlementCreateReqList, requestVO);
//增加总优惠记录 //增加总优惠记录
if (!CollectionUtils.isEmpty(requestVO.getAccounts())) { if (!CollectionUtils.isEmpty(requestVO.getAccounts())) {
addTotalDisaccountData(orderSettlementCreateReqList, requestVO); addTotalDisaccountData(orderSettlementCreateReqList, requestVO);
...@@ -306,6 +306,32 @@ public class OrderSdkAdapter { ...@@ -306,6 +306,32 @@ public class OrderSdkAdapter {
return request; return request;
} }
/**
* 美团Pos对接的时候,需要将优惠信息排序
* @param orderSettlementCreateReqList
* @param requestVo
* @return List<OrderSettlementCreateReq> 排序后
*/
private List<OrderSettlementCreateReq> sortSettlementCreateList(List<OrderSettlementCreateReq> orderSettlementCreateReqList, BaseCreateOrderRequest requestVo) {
List<OrderSettlementCreateReq> result = new ArrayList<>();
//订单参与的活动信息,这个list是已经按照活动优先级排好了
List<CreateOrderAccountRequest> accountList = requestVo.getAccounts();
if (CollectionUtils.isEmpty(accountList)) return result;
for (CreateOrderAccountRequest account : accountList) {
Iterator<OrderSettlementCreateReq> iterator = orderSettlementCreateReqList.iterator();
while (iterator.hasNext()) {
OrderSettlementCreateReq coa = iterator.next();
if (Objects.equals(coa.getExternalObjectId(), account.getAccountId())) {
result.add(coa);
iterator.remove();
}
}
}
//此时iterator中还有元素的话,就是非促销的优惠数据,追加到后面
result.addAll(orderSettlementCreateReqList);
return result;
}
private void addTotalDisaccountData(List<OrderSettlementCreateReq> orderSettlementCreateReqList, BaseCreateOrderRequest requestVO) { private void addTotalDisaccountData(List<OrderSettlementCreateReq> orderSettlementCreateReqList, BaseCreateOrderRequest requestVO) {
OrderSettlementCreateReq createReq = new OrderSettlementCreateReq(); OrderSettlementCreateReq createReq = new OrderSettlementCreateReq();
createReq.setProductId("0"); createReq.setProductId("0");
...@@ -3066,6 +3092,7 @@ public class OrderSdkAdapter { ...@@ -3066,6 +3092,7 @@ public class OrderSdkAdapter {
orderItemCreateReq.setProductCode(product.getProductCode()); orderItemCreateReq.setProductCode(product.getProductCode());
orderItemCreateReq.setCategoryId(product.getCategoryId()); orderItemCreateReq.setCategoryId(product.getCategoryId());
orderItemCreateReq.setCategoryName(product.getCategoryName()); orderItemCreateReq.setCategoryName(product.getCategoryName());
orderItemCreateReq.setThirdCategoryCode(product.getThirdCategoryId());
//套餐商品 //套餐商品
if (StringUtils.isNotEmpty(parentProductId)) { if (StringUtils.isNotEmpty(parentProductId)) {
orderItemCreateReq.setParentProductId(parentProductId); //套餐类商品父级商品id orderItemCreateReq.setParentProductId(parentProductId); //套餐类商品父级商品id
......
...@@ -247,6 +247,10 @@ public class CartGoods { ...@@ -247,6 +247,10 @@ public class CartGoods {
*/ */
private String categoryName; private String categoryName;
/** /**
* 第三方的分类编码 第三方使用
*/
private String customerCategoryCode;
/**
* 统计分类编号 * 统计分类编号
*/ */
private String classificationId; private String classificationId;
......
...@@ -2838,6 +2838,10 @@ public class OrderAdapter { ...@@ -2838,6 +2838,10 @@ public class OrderAdapter {
createOrderProductDemoDto.setCartGoodsUid(cartGoodsDetailDto.getCartGoodsUid()); createOrderProductDemoDto.setCartGoodsUid(cartGoodsDetailDto.getCartGoodsUid());
createOrderProductDemoDto.setOriginalGoodsUid(cartGoodsDetailDto.getOriginalGoodsUid()); createOrderProductDemoDto.setOriginalGoodsUid(cartGoodsDetailDto.getOriginalGoodsUid());
createOrderProductDemoDto.setScore(cartGoodsDetailDto.getScore()); createOrderProductDemoDto.setScore(cartGoodsDetailDto.getScore());
// 商品所在的菜单分类信息
createOrderProductDemoDto.setThirdCategoryId(cartGoodsDetailDto.getCustomerCategoryCode());
createOrderProductDemoDto.setCategoryId(cartGoodsDetailDto.getNodeId());
createOrderProductDemoDto.setCategoryName(cartGoodsDetailDto.getCategoryName());
return createOrderProductDemoDto; return createOrderProductDemoDto;
} }
......
...@@ -29,4 +29,8 @@ public class ActivityDiscountsDto { ...@@ -29,4 +29,8 @@ public class ActivityDiscountsDto {
*/ */
private Integer extendType; private Integer extendType;
private String cartGoodsUid; private String cartGoodsUid;
/**
* 享受优惠点优先级, 值越大表示优惠优先级高
*/
private Integer priority;
} }
...@@ -188,6 +188,10 @@ public class ShoppingCartGoodsDto { ...@@ -188,6 +188,10 @@ public class ShoppingCartGoodsDto {
*/ */
private String nodeId; private String nodeId;
/** /**
* 第三方的分类编码 三方订单使用
*/
private String customerCategoryCode;
/**
* 1.6.0 版本增加 分类名 * 1.6.0 版本增加 分类名
*/ */
private String categoryName; private String categoryName;
......
...@@ -117,7 +117,7 @@ public class OrderItemCreateReq { ...@@ -117,7 +117,7 @@ public class OrderItemCreateReq {
/** /**
* 第三方商品分类 * 第三方商品分类
*/ */
private String thirdCategoryId; private String thirdCategoryCode;
//商品分类ID //商品分类ID
private String categoryId; private String categoryId;
......
...@@ -123,6 +123,7 @@ public class ShoppingCartConvertAdapter { ...@@ -123,6 +123,7 @@ public class ShoppingCartConvertAdapter {
cartGoodsDetailDto.setActivityType(cartGoods.getActivityType()); cartGoodsDetailDto.setActivityType(cartGoods.getActivityType());
cartGoodsDetailDto.setNodeId(cartGoods.getNodeId()); cartGoodsDetailDto.setNodeId(cartGoods.getNodeId());
cartGoodsDetailDto.setCategoryName(cartGoods.getCategoryName()); cartGoodsDetailDto.setCategoryName(cartGoods.getCategoryName());
cartGoodsDetailDto.setCustomerCategoryCode(cartGoods.getCustomerCategoryCode());
cartGoodsDetailDto.setCouponCode(cartGoods.getCouponCode()); cartGoodsDetailDto.setCouponCode(cartGoods.getCouponCode());
cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit()); cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit());
cartGoodsDetailDto.setProductCode(cartGoods.getCustomerCode()); cartGoodsDetailDto.setProductCode(cartGoods.getCustomerCode());
...@@ -438,6 +439,7 @@ public class ShoppingCartConvertAdapter { ...@@ -438,6 +439,7 @@ public class ShoppingCartConvertAdapter {
cartGoods.setExtra(addShoppingCartGoodsRequestVo.getExtra()); cartGoods.setExtra(addShoppingCartGoodsRequestVo.getExtra());
cartGoods.setNodeId(addShoppingCartGoodsRequestVo.getNodeId()); cartGoods.setNodeId(addShoppingCartGoodsRequestVo.getNodeId());
cartGoods.setCategoryName(addShoppingCartGoodsRequestVo.getCategoryName()); cartGoods.setCategoryName(addShoppingCartGoodsRequestVo.getCategoryName());
cartGoods.setCustomerCategoryCode(addShoppingCartGoodsRequestVo.getCustomerCategoryCode());
List<CartGoods.ComboxGoods> productComboList = new ArrayList<>(); List<CartGoods.ComboxGoods> productComboList = new ArrayList<>();
List<CartGoods.ComboxGoods> productGroupList = new ArrayList<>(); List<CartGoods.ComboxGoods> productGroupList = new ArrayList<>();
List<CartGoods.MaterialGoods> materialGoodsList = new ArrayList<>(); List<CartGoods.MaterialGoods> materialGoodsList = new ArrayList<>();
......
...@@ -35,4 +35,8 @@ public class ActivityDiscountsDto { ...@@ -35,4 +35,8 @@ public class ActivityDiscountsDto {
* 购物车商品行uid * 购物车商品行uid
*/ */
private String cartGoodsUid; private String cartGoodsUid;
/**
* 享受优惠点优先级, 值越大表示优惠优先级高
*/
private Integer priority;
} }
...@@ -240,6 +240,10 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -240,6 +240,10 @@ public class ActivityCalculationDiscountResponseDto {
* 购物车商品行uid * 购物车商品行uid
*/ */
private String cartGoodsUid; private String cartGoodsUid;
/**
* 活动优先级 值越大越先参与计算
*/
private Integer priority;
} }
@Data @Data
......
...@@ -259,6 +259,10 @@ public class ShoppingCartGoodsDto { ...@@ -259,6 +259,10 @@ public class ShoppingCartGoodsDto {
* 1.6.0 版本增加 分类名 * 1.6.0 版本增加 分类名
*/ */
private String categoryName; private String categoryName;
/**
* 第三方的分类编码 三方订单使用
*/
private String customerCategoryCode;
/** /**
* 套餐--父级商品Id * 套餐--父级商品Id
......
...@@ -63,6 +63,11 @@ public class AddShoppingCartGoodsRequestVo extends BaseRequestVo{ ...@@ -63,6 +63,11 @@ public class AddShoppingCartGoodsRequestVo extends BaseRequestVo{
*/ */
private String categoryName; private String categoryName;
/** /**
* 第三方的分类编码
*/
@ApiModelProperty(value = "第三方的分类编码")
private String customerCategoryCode;
/**
* 套餐固定商品 * 套餐固定商品
*/ */
private List<ComboxGoodsRequestVo> productComboList; private List<ComboxGoodsRequestVo> productComboList;
......
...@@ -237,6 +237,10 @@ public class CartGoods { ...@@ -237,6 +237,10 @@ public class CartGoods {
* 1.6.0 版本增加 分类名 * 1.6.0 版本增加 分类名
*/ */
private String categoryName; private String categoryName;
/**
* 第三方的分类编码 第三方使用
*/
private String customerCategoryCode;
/** /**
* 统计分类编号 * 统计分类编号
......
...@@ -24,6 +24,7 @@ import cn.freemud.demo.controller.ShoppingCartDemoController; ...@@ -24,6 +24,7 @@ import cn.freemud.demo.controller.ShoppingCartDemoController;
import cn.freemud.demo.entities.dto.goods.add.list.BaseListCartGoodsVO; import cn.freemud.demo.entities.dto.goods.add.list.BaseListCartGoodsVO;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean; import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto; import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.activity.ActivityQueryResponseDto; import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
import cn.freemud.entities.dto.activity.DiscountSharingDto; import cn.freemud.entities.dto.activity.DiscountSharingDto;
...@@ -2101,6 +2102,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -2101,6 +2102,26 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
IPromotionService fullMCountNFoldService = PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.FULL_M_COUNT_N_FOLD); IPromotionService fullMCountNFoldService = PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.FULL_M_COUNT_N_FOLD);
fullMCountNFoldService.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto, premiumExchangeActivity, shoppingCartInfoRequestVo); fullMCountNFoldService.updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto, premiumExchangeActivity, shoppingCartInfoRequestVo);
// 美团Pos需求,针对优惠信息进行排序
List<ActivityDiscountsDto> discounts = shoppingCartGoodsDto.getActivityDiscountsDtos();
discounts.forEach(discount -> {
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount rd : calculationDiscountResult.getDiscounts()) {
// 一定要先判断套餐,不清楚为什么套餐设置的活动是221-集点活动,不先判断的话,可能会匹配成集点的优先级了
if (discount.getActivityCode().equals("setMeal")) {
// 套餐优惠不是促销返回的,这里和促销新算价保持一直,优先级设置为0
discount.setPriority(0);
break;
}
if (discount.getActivityType().equals(rd.getType())) {
discount.setPriority(rd.getPriority());
break;
}
}
// 未匹配上的优惠,设置默认值0
if (null == discount.getPriority()) discount.setPriority(0);
});
discounts.sort((a1, a2) -> a2.getPriority() - a1.getPriority());
shoppingCartGoodsDto.setActivityDiscountsDtos(discounts);
} }
......
...@@ -419,6 +419,7 @@ public class CalculationCommonService { ...@@ -419,6 +419,7 @@ public class CalculationCommonService {
cartGoodsDetailDto.setActivityType(cartGoods.getActivityType()); cartGoodsDetailDto.setActivityType(cartGoods.getActivityType());
cartGoodsDetailDto.setNodeId(cartGoods.getNodeId()); cartGoodsDetailDto.setNodeId(cartGoods.getNodeId());
cartGoodsDetailDto.setCategoryName(cartGoods.getCategoryName()); cartGoodsDetailDto.setCategoryName(cartGoods.getCategoryName());
cartGoodsDetailDto.setCustomerCategoryCode(cartGoods.getCustomerCategoryCode());
cartGoodsDetailDto.setCouponCode(cartGoods.getCouponCode()); cartGoodsDetailDto.setCouponCode(cartGoods.getCouponCode());
cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit()); cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit());
cartGoodsDetailDto.setProductCode(cartGoods.getCustomerCode()); cartGoodsDetailDto.setProductCode(cartGoods.getCustomerCode());
......
...@@ -219,13 +219,15 @@ public class CalculationSharingEquallyService { ...@@ -219,13 +219,15 @@ public class CalculationSharingEquallyService {
activityDiscountsDto.setActivityName(discount.getActivityName()); activityDiscountsDto.setActivityName(discount.getActivityName());
activityDiscountsDto.setActivityType(calculationCommonService.convertType(discountType)); activityDiscountsDto.setActivityType(calculationCommonService.convertType(discountType));
activityDiscountsDto.setDiscountAmount(0 - discountAmount); activityDiscountsDto.setDiscountAmount(0 - discountAmount);
activityDiscountsDto.setPriority(discount.getPriority());
activityDiscountsDtos.add(activityDiscountsDto); activityDiscountsDtos.add(activityDiscountsDto);
} }
} }
//美团POS需求,将优惠信息按照优惠优先级排序
activityDiscountsDtos.sort((a1, a2) -> a2.getPriority() - a1.getPriority());
shoppingCartGoodsDto.setActivityDiscountsDtos(activityDiscountsDtos); shoppingCartGoodsDto.setActivityDiscountsDtos(activityDiscountsDtos);
} }
/** /**
* 库存扣减加价购商品 要过滤掉没有换购的商品 * 库存扣减加价购商品 要过滤掉没有换购的商品
* *
......
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