Commit 3fe7d457 by zhiheng.zhang

Merge remote-tracking branch 'origin/develop' into develop

parents be8a4f99 99b086aa
......@@ -128,4 +128,4 @@
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
</project>
......@@ -144,4 +144,4 @@
| 2.1.10-RELEASE | coco | 刘鹏飞 | 2020-12-17 |
| 2.1.11-RELEASE | 农工商添加设备号 | 梁崇福 | 2020-12-17 |
| 2.1.12-RELEASE | coco定制优惠券核销 | 刘鹏飞 | 2020-12-24 |
| 2.1.26-SNAPSHOT | 增加配送类型字段 | 王航航 | 2020-12-24 |
\ No newline at end of file
| 2.1.26-SNAPSHOT | 增加配送类型字段 | 王航航 | 2020-12-24 |
......@@ -1407,6 +1407,9 @@ public class OrderSdkAdapter {
case "BUY3_SEND1":
type=35;
break;
case "COCO_PRODUCT_CASH_COUPON":
type=36;
break;
default:
break;
}
......@@ -2017,6 +2020,8 @@ public class OrderSdkAdapter {
case 99:
newOrderAccountType=OldOrderAccountType.FREIGHT_COUPON.getCode();
break;
case 36:
newOrderAccountType=OldOrderAccountType.COCO_PRODUCT_CASH_COUPON.getCode();
default:
break;
}
......
......@@ -45,7 +45,8 @@ public enum OldOrderAccountType {
PRICE_DEDUCTION_COUPON(103, "抵价券", "PRICE_DEDUCTION_COUPON"),
TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT"),
GATHER_SPOT(221, "集点活动","GATHER_SPOT"),
MEMBER_PRICE_DISCOUNT(220, "会员价优惠", "MEMBER_PRICE_DISCOUNT");
MEMBER_PRICE_DISCOUNT(220, "会员价优惠", "MEMBER_PRICE_DISCOUNT"),
COCO_PRODUCT_CASH_COUPON(36, "coco商品代金券","COCO_PRODUCT_CASH_COUPON");
private Integer code;
private String desc;
......
......@@ -45,6 +45,7 @@ public enum QueryOrderAccountType {
WITH_ORDER_BUY3_SEND1_FEE("WITH_ORDER_BUY3_SEND1_FEE", "随单购买3赠1券"),
WITH_ORDER_BUY_COUPON_FEE("WITH_ORDER_BUY_COUPON_FEE", "随单购月卡"),
MCCAFE_MONTH_CARD("MCCAFE_MONTH_CARD","麦咖啡月卡"),
COCO_PRODUCT_CASH_COUPON("COCO_PRODUCT_CASH_COUPON", "coco商品代金券"),
;
private String code;
......
......@@ -87,8 +87,8 @@
<!-- 商户门店sdk -->
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>storecenter-sdk</artifactId>
<version>3.3.5-SNAPSHOT</version>
<artifactId>storecenter-sdk</artifactId>
</dependency>
<dependency>
<groupId>cn.freemud</groupId>
......
......@@ -1283,7 +1283,7 @@ public class OrderAdapter {
responseVo.setAfterRefundInterval(false);
}
//商品信息转换
convent2ProductVos(ordersBean.getProductList(), responseVo);
convent2ProductVos(ordersBean.getProductList(), responseVo,ordersBean.getCompanyId());
responseVo.setOrderAccounts(convent2OrderAccountVo(ordersBean.getApportionDetails()));
if(CollectionUtils.isNotEmpty(ordersBean.getOrderCostDetailList())) {
ordersBean.getOrderCostDetailList().forEach(o -> {
......@@ -1955,7 +1955,7 @@ public class OrderAdapter {
return orderAccountVos;
}
public void convent2ProductVos(List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productBeans, QueryOrderResponseVo responseVo) {
public void convent2ProductVos(List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productBeans, QueryOrderResponseVo responseVo, String partnerId) {
if (CollectionUtils.isEmpty(productBeans)) {
return;
}
......@@ -1990,16 +1990,28 @@ public class OrderAdapter {
}
if (ObjectUtils.equals(ProductTypeEnum.MATERIAL_PRODUCT.getCode(), productBean.getProductType())) {
List<ProductVo> setMaterialProducts = new ArrayList<>();
productBean.getMaterialProduct().forEach(product -> {
ProductVo material = convent2ProductVo(product);
material.setOriginalTotalAmount(new BigDecimal(material.getOriginalPrice()).multiply(new BigDecimal(productVo.getQty())).longValue());
material.setSaleTotalAmount(new BigDecimal(material.getFinalPrice()).multiply(new BigDecimal(productVo.getQty())).longValue());
setMaterialProducts.add(material);
productVo.setOriginalPrice(new BigDecimal(productVo.getOriginalPrice()).add(new BigDecimal(material.getOriginalPrice())).longValue());
productVo.setFinalPrice(new BigDecimal(productVo.getFinalPrice()).add(new BigDecimal(material.getFinalPrice())).longValue());
productVo.setOriginalTotalAmount(new BigDecimal(productVo.getOriginalTotalAmount()).add(new BigDecimal(material.getOriginalTotalAmount())).longValue());
productVo.setSaleTotalAmount(new BigDecimal(productVo.getSaleTotalAmount()).add(new BigDecimal(material.getSaleTotalAmount())).longValue());
});
if(mcCafePartnerId.equals(partnerId)) {
productBean.getMaterialProduct().forEach(product -> {
ProductVo material = convent2ProductVo(product);
setMaterialProducts.add(material);
material.setOriginalTotalAmount(new BigDecimal(material.getOriginalPrice()).multiply(new BigDecimal(productVo.getQty())).longValue());
material.setSaleTotalAmount(new BigDecimal(material.getFinalPrice()).multiply(new BigDecimal(productVo.getQty())).longValue());
productVo.setOriginalPrice(new BigDecimal(productVo.getOriginalPrice()).add(new BigDecimal(material.getOriginalPrice())).longValue());
productVo.setFinalPrice(new BigDecimal(productVo.getFinalPrice()).add(new BigDecimal(material.getFinalPrice())).longValue());
productVo.setOriginalTotalAmount(new BigDecimal(productVo.getOriginalTotalAmount()).add(new BigDecimal(material.getOriginalTotalAmount())).longValue());
productVo.setSaleTotalAmount(new BigDecimal(productVo.getSaleTotalAmount()).add(new BigDecimal(material.getSaleTotalAmount())).longValue());
});
}
else {
productBean.getMaterialProduct().forEach(product -> {
ProductVo material = convent2ProductVo(product);
setMaterialProducts.add(material);
productVo.setOriginalPrice(new BigDecimal(productVo.getOriginalPrice()).subtract(new BigDecimal(material.getOriginalPrice())).longValue());
productVo.setFinalPrice(new BigDecimal(productVo.getFinalPrice()).subtract(new BigDecimal(material.getFinalPrice())).longValue());
productVo.setOriginalTotalAmount(new BigDecimal(productVo.getOriginalTotalAmount()).subtract(new BigDecimal(material.getOriginalTotalAmount())).longValue());
productVo.setSaleTotalAmount(new BigDecimal(productVo.getSaleTotalAmount()).subtract(new BigDecimal(product.getSettlementPrice())).longValue());
});
}
productVo.setSetMaterialProducts(setMaterialProducts);
}
productVos.add(productVo);
......@@ -2161,6 +2173,22 @@ public class OrderAdapter {
return orderPayRefundRequest;
}
public MultiOrderRefundRequest getMultiOrderPayRefundRequest(QueryOrdersResponseDto.DataBean.OrderBean orderBean, Long refundId) {
MultiOrderRefundRequest multiQueryRequest = new MultiOrderRefundRequest();
multiQueryRequest.setStationId("1");
multiQueryRequest.setPartnerId(orderBean.getCompanyId());
multiQueryRequest.setStoreId(orderBean.getShopId());
multiQueryRequest.setFmId("");
multiQueryRequest.setRefundAmount(orderBean.getAmount());
multiQueryRequest.setRefundTradeNo(String.valueOf(refundId));
multiQueryRequest.setStoreId(orderBean.getShopId());
multiQueryRequest.setNotifyUrl(refundNotifyCallback);
multiQueryRequest.setVer("V1");
multiQueryRequest.setVer3(false);
multiQueryRequest.setOutOrderNo(orderBean.getOid());
return multiQueryRequest;
}
public CancelOrderRequest convent2CancelOrderRequest(String orderId, String partnerId, AfterSalesType afterSalesType,
String reason, String trackingNo, String refundId) {
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
......@@ -2410,7 +2438,7 @@ public class OrderAdapter {
public CreateOrderProductRequest convent2OrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
CreateOrderProductRequest createOrderProductDemoDto = new CreateOrderProductRequest();
createOrderProductDemoDto.setProductId(cartGoodsDetailDto.getSpuId());
createOrderProductDemoDto.setProductId(StringUtils.isNotBlank(cartGoodsDetailDto.getSpuId()) ? cartGoodsDetailDto.getSpuId() : cartGoodsDetailDto.getSkuId());
createOrderProductDemoDto.setProductName(cartGoodsDetailDto.getSpuName());
createOrderProductDemoDto.setSpecification(cartGoodsDetailDto.getSkuId());
createOrderProductDemoDto.setSpecificationName(cartGoodsDetailDto.getSkuName());
......@@ -2542,6 +2570,17 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_23.getCode().equals(activityType)){
return OldOrderAccountType.SUPER_PURCHASE;
}
if (ActivityTypeEnum.TYPE_221.getCode().equals(activityType)){
return OldOrderAccountType.GATHER_SPOT;
}
if (ActivityTypeEnum.TYPE_221.getCode().equals(activityType)){
return OldOrderAccountType.GATHER_SPOT;
}
// coco商品代金券
if (ActivityTypeEnum.TYPE_36.getCode().equals(activityType)){
return OldOrderAccountType.COCO_PRODUCT_CASH_COUPON;
}
return OldOrderAccountType.BUYM_SENDN;
}
......@@ -3842,20 +3881,4 @@ public class OrderAdapter {
return responseDto;
}
public MultiOrderRefundRequest getMultiOrderPayRefundRequest(QueryOrdersResponseDto.DataBean.OrderBean orderBean, Long refundId) {
MultiOrderRefundRequest multiQueryRequest = new MultiOrderRefundRequest();
multiQueryRequest.setStationId("1");
multiQueryRequest.setPartnerId(orderBean.getCompanyId());
multiQueryRequest.setStoreId(orderBean.getShopId());
multiQueryRequest.setFmId("");
multiQueryRequest.setRefundAmount(orderBean.getAmount());
multiQueryRequest.setRefundTradeNo(String.valueOf(refundId));
multiQueryRequest.setStoreId(orderBean.getShopId());
multiQueryRequest.setNotifyUrl(refundNotifyCallback);
multiQueryRequest.setVer("V1");
multiQueryRequest.setVer3(false);
multiQueryRequest.setOutOrderNo(orderBean.getOid());
return multiQueryRequest;
}
}
......@@ -135,6 +135,10 @@ public class QueryOrdersResponseDto {
*/
private Integer orderType;
/**
* 销售类型或营销活动类型 1普通订单 2秒杀订单 3推广活动 4拼单订单
*/
private Byte marketingType;
/**
* 取餐码
*/
private String otherCode;
......
......@@ -55,7 +55,8 @@ public enum ActivityTypeEnum {
TYPE_DELIVERY(901, "配送费"),
TYPE_211(211, "套餐优惠"),
TYPE_221(221, "集点活动"),
TYPE_320(320, "会员价优惠");
TYPE_320(320, "会员价优惠"),
TYPE_36(36, "coco商品代金券");
private Integer code;
......
......@@ -28,7 +28,7 @@ public enum OrderAccountType {
CARD_ORIGINAL_AMOUNT(25, "会员卡原价"),
CARD_DISCOUNT_AMOUNT(26, "会员卡优惠金额"),
BUY3_SEND1(35, "买三赠1券"),
;
COCO_PRODUCT_CASH_COUPON(36, "coco商品代金券");
private Integer code;
private String desc;
......
......@@ -510,25 +510,27 @@ public class OrderServiceImpl implements Orderservice {
takeCode = payAccessResponse.getData().getTakeCode();
daySeq = payAccessResponse.getData().getDaySeq();
//TODO 清空购物车
NewShoppingCartClearDto newShoppingCartClearDto = new NewShoppingCartClearDto();
newShoppingCartClearDto.setPartnerId(partnerId);
newShoppingCartClearDto.setShopId(storeId);
newShoppingCartClearDto.setUserId(userId);
newShoppingCartClearDto.setAppId(wxappid);
newShoppingCartClearDto.setSessionId(sessionId);
newShoppingCartClearDto.setOperationType(1);
shoppingCartClient.clearShoppingCart(newShoppingCartClearDto);
// 清空拼单购物车
CollageOrderDto collageOrderDto = new CollageOrderDto();
collageOrderDto.setSessionId(StringUtils.isBlank(sessionId) ? oid : sessionId);
collageOrderDto.setPartnerId(partnerId);
collageOrderDto.setShopId(storeId);
collageOrderDto.setCreateCollageUserId(userId);
collageOrderDto.setOrderCode(oid);
collageOrderDto.setStatus(1);
shoppingCartClient.updateCollageOrder(collageOrderDto);
if (null != orderBean.getMarketingType() && OrderMarketType.COLLAGE.getIndex() == orderBean.getMarketingType()) {
// 更新拼单购物车状态
CollageOrderDto collageOrderDto = new CollageOrderDto();
collageOrderDto.setSessionId(StringUtils.isBlank(sessionId) ? oid : sessionId);
collageOrderDto.setPartnerId(partnerId);
collageOrderDto.setShopId(storeId);
collageOrderDto.setCreateCollageUserId(userId);
collageOrderDto.setOrderCode(oid);
collageOrderDto.setStatus(1);
shoppingCartClient.updateCollageOrder(collageOrderDto);
} else {
//TODO 清空购物车
NewShoppingCartClearDto newShoppingCartClearDto = new NewShoppingCartClearDto();
newShoppingCartClearDto.setPartnerId(partnerId);
newShoppingCartClearDto.setShopId(storeId);
newShoppingCartClearDto.setUserId(userId);
newShoppingCartClearDto.setAppId(wxappid);
newShoppingCartClearDto.setSessionId(sessionId);
newShoppingCartClearDto.setOperationType(1);
shoppingCartClient.clearShoppingCart(newShoppingCartClearDto);
}
if (StringUtils.isNotBlank(daySeq) && orderExtInfoDto != null && !OrderType.TAKE_OUT.getCode().equals(orderBean.getType())) {
String storeAddress = StringUtils.isNotBlank(orderBean.getAddress()) ? orderBean.getAddress() : "";
......
......@@ -26,7 +26,6 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import javafx.util.Pair;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......
......@@ -22,7 +22,6 @@ import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
......
......@@ -127,7 +127,11 @@ public class ShoppingCartMccafeAdapter {
if (StringUtils.isEmpty(cartGoods.getCouponCode()) && GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
return cartGoodsDetailDtos;
} else {
cartGoodsDetailDtos.add(convertCartGoods2DetailGoods(cartGoods, apportionGoodsList, duplicateGoodsMap));
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = convertCartGoods2DetailGoods(cartGoods, apportionGoodsList, duplicateGoodsMap);
if(GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
cartGoodsDetailDto.setComboProducts(this.convertComboxGoods2DetailGoods(cartGoods,cartGoodsDetailDto.getTotalDiscountAmount()));
}
cartGoodsDetailDtos.add(cartGoodsDetailDto);
}
return cartGoodsDetailDtos;
}
......@@ -170,6 +174,7 @@ public class ShoppingCartMccafeAdapter {
} else if (cartGoods.isWeightType()) {
cartGoodsDetailDto.setProductType(ProductType.WEIGHT_PRODUCT.getCode());
}
//小料
if (CollectionUtils.isNotEmpty(cartGoods.getProductMaterialList())) {
List<ShoppingCartGoodsDto.CartGoodsDetailDto.MaterialGoods> materialList = new ArrayList<>(0);
......
......@@ -80,8 +80,12 @@ public class CalculationServiceImpl {
@Autowired
private MaterialCalculation materialCalculation;
// @Autowired
// private ShoppingCartConvertAdapter shoppingCartConvertAdapter;
@Autowired
private ShoppingCartMccafeAdapter shoppingCartMccafeAdapter;
// @Autowired
// private ItemServiceImpl itemService;
/**
* 更新购物车行优惠信息
......
......@@ -474,32 +474,36 @@ public class CouponDiscountCalculation {
private Long createProductRequest(List<CartGoods> cartGoods, List<CouponProductVo> productList) {
Long totalAmount = 0L;
for (CartGoods cartGood : cartGoods) {
// 剔除商品券得商品
if (StringUtils.isEmpty(cartGood.getSkuId()) && StringUtils.isEmpty(cartGood.getSpuId())) {
continue;
}
// 剔除商品券得商品,麦咖啡逻辑
if(StringUtils.isNotEmpty(cartGood.getCouponCode())){
continue;
}
CouponProductVo product = new CouponProductVo();
product.setKeyProductCode(cartGood.getCustomerCode());
product.setProductId(StringUtils.isEmpty(cartGood.getSkuId()) ? cartGood.getSpuId() : cartGood.getSkuId());
// 普通商品价格
product.setAmount(Integer.valueOf(cartGood.getOriginalPrice() + ""));
// 套餐价格为: 套餐价+可选商品总价格
if (ObjectUtils.equals(GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(), cartGood.getGoodsType())) {
Long finalPrice = cartGood.getFinalPrice();
if (CollectionUtils.isNotEmpty(cartGood.getProductGroupList())){
finalPrice+=cartGood.getProductGroupList().stream().mapToLong(group->group.getFinalPrice()*group.getQty()).sum();
try {
for (CartGoods cartGood : cartGoods) {
// 剔除商品券得商品
if (StringUtils.isEmpty(cartGood.getSkuId()) && StringUtils.isEmpty(cartGood.getSpuId())) {
continue;
}
// 剔除商品券得商品,麦咖啡逻辑
if(StringUtils.isNotEmpty(cartGood.getCouponCode())){
continue;
}
CouponProductVo product = new CouponProductVo();
product.setKeyProductCode(cartGood.getCustomerCode());
product.setProductId(StringUtils.isEmpty(cartGood.getSkuId()) ? cartGood.getSpuId() : cartGood.getSkuId());
// 普通商品价格
product.setAmount(Integer.valueOf(cartGood.getOriginalPrice() + ""));
// 套餐价格为: 套餐价+可选商品总价格
if (ObjectUtils.equals(GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(), cartGood.getGoodsType())) {
Long finalPrice = cartGood.getFinalPrice();
if (CollectionUtils.isNotEmpty(cartGood.getProductGroupList())){
finalPrice+=cartGood.getProductGroupList().stream().mapToLong(group->group.getFinalPrice()*group.getQty()).sum();
}
product.setAmount(finalPrice.intValue());
}
product.setAmount(finalPrice.intValue());
// 数量
product.setQuantity(cartGood.getQty());
productList.add(product);
totalAmount = totalAmount +product.getAmount() * cartGood.getQty();
}
// 数量
product.setQuantity(cartGood.getQty());
productList.add(product);
totalAmount = totalAmount +product.getAmount() * cartGood.getQty();
} catch (NumberFormatException e) {
throw new ServiceException(ResponseResult.SYSTEM_ERROR);
}
return totalAmount;
}
......
......@@ -108,14 +108,18 @@ public class SetMealCalculation {
}
Long amount = null != cartGoods.getFinalPrice() ? cartGoods.getFinalPrice()*cartGoods.getQty() + productGroupTotalAmount + materialPrice :
productGroupTotalAmount + productComboTotalAmount + materialPrice;
//如果是商品券商品,不重新计算套餐价格
if (StringUtils.isEmpty(cartGoods.getCouponCode())) {
Long amount = null != cartGoods.getFinalPrice() ?
cartGoods.getFinalPrice() * cartGoods.getQty() + productGroupTotalAmount + materialPrice :
productGroupTotalAmount + productComboTotalAmount + materialPrice;
cartGoods.setAmount(amount);
}
Long comboOriginalPriceAmount = null != cartGoods.getOriginalAmount() ? cartGoods.getOriginalAmount() :
productComboTotalAmount;
cartGoods.setOriginalAmount(productGroupTotalAmount + comboOriginalPriceAmount + materialPrice);
cartGoods.setOriginalPrice(null != cartGoods.getOriginalPrice() ? cartGoods.getOriginalPrice() :
productComboTotalAmount);
cartGoods.setAmount(amount);
cartGoods.setFinalPrice(null != cartGoods.getFinalPrice() ? cartGoods.getFinalPrice() :
productComboTotalAmount);
......@@ -153,7 +157,7 @@ public class SetMealCalculation {
});
// 套餐优惠明细
for (CartGoods cartGoods : shoppingCartGoodsResponseVo.getProducts()) {
if (ObjectUtils.equals(GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(), cartGoods.getGoodsType())) {
if (ObjectUtils.equals(GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(), cartGoods.getGoodsType()) && StringUtils.isBlank(cartGoods.getCouponCode())) {
// discountAmount=(套餐原价-套餐售价)*数量
// productGroupDiscountAmount=可选商品现价总和
// discountAmount-productGroupDiscountAmount: 当前商品行套餐商品总优惠= 套餐原总价-套餐现总价-套餐可选商品的现总价
......
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