Commit aa063bfa by 查志伟

商品支持不可单点下单功能

parent 46d96f62
......@@ -304,6 +304,13 @@ public class CartGoods {
*/
private String linkedId;
/**
* 商品是否可以单点
* 0-可单点
* 1-不可单点
*/
private Integer singleOrder;
@Data
public final static class CartGoodsExtra {
/**
......
package cn.freemud.entities.dto.store;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import java.util.List;
......@@ -20,7 +19,6 @@ public class OrgListTreeResponse {
@Data
@Builder
public static class OrganizationVo {
@ApiModelProperty("排序")
......
......@@ -693,6 +693,7 @@ public class ShoppingCartConvertAdapter {
cartGoods.setTaxId(spuProduct.getTaxId());
// fisherman 订C,“POS编码”让凌顶那边去匹配商品 透传到订单上 保存到 orders_item 表的 extinfo里面
cartGoods.setLinkedId(isSkuProduct ? skuProduct.getLinkedCode() : spuProduct.getLinkedId());
cartGoods.setSingleOrder(spuProduct.getSingleOrder());
String skuSpecName = "";
String skuForeignSpecName = "";
if (isSkuProduct && CollectionUtils.isNotEmpty(skuProduct.getSkuSpecValues())) {
......
......@@ -66,6 +66,13 @@ public class ProductTypeBeanDTO {
* 【订C,“POS编码”让凌顶那边去匹配商品】 https://www.tapd.cn/43862731/prong/stories/view/1143862731001039549
*/
private String linkedId ;
/**
* 商品是否可以单点
* 0-可单点
* 1-不可单点
*/
private Integer singleOrder;
public Integer getMemberDiscountResult() {
return this.openMemberDiscount != null && this.openMemberDiscount == 1 ? this.memberDiscount : 100;
}
......
......@@ -115,6 +115,13 @@ public class ProductBean {
*/
private String linkedId;
/**
* 商品是否可以单点
* 0-可单点
* 1-不可单点
*/
private Integer singleOrder;
@NoArgsConstructor
@Data
public static class SpecificationGroupBean {
......
......@@ -348,6 +348,13 @@ public class CartGoods {
*/
private String linkedId;
/**
* 商品是否可以单点
* 0-可单点
* 1-不可单点
*/
private Integer singleOrder;
@Data
public final static class CartGoodsExtra {
/**
......
......@@ -237,6 +237,12 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
*/
private Long useCouponThreshold ;
/**
* 单点不可下单标识
* true:表示单点不可下单,此时无法创建订单
*/
private Boolean nonSingleOrder;
@Data
public static class chooseGood {
......
......@@ -109,6 +109,7 @@ public enum ResponseResult {
SHOPPING_CART_REPLACE_GOODS("44040", "原有购物车没有商品"),
SHOPPING_CART_REPLACE_GOODS_AND_CLEAR("44041", "因部分商品当前门店暂未售卖,将从购物车移除"),
SHOPPING_CART_COUPON_MUTUAL_EXCLUSION("44042", "代金券和折扣券互斥"),
SHOPPING_CART_NON_SINGLE_ORDER("44043", "购物车中商品不可单点下单"),
/**
* 订单状态码
......
......@@ -84,7 +84,6 @@ import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService;
import com.freemud.sdk.api.assortment.shoppingcart.service.impl.ShoppingCartBaseServiceImpl;
import com.freemud.sdk.api.assortment.shoppingcart.util.ShoppingSdkLogUtil;
import com.google.common.collect.Lists;
import ma.glasnost.orika.MapperFacade;
import org.apache.commons.collections4.CollectionUtils;
......@@ -899,6 +898,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsResponseVo.setUseCouponThreshold(useCouponThreshold);
// 如果有夜间配送费 需要维护划线价 deliveryAmount 字段, ___> 注意, 配送费的优惠是 促销在算(又特么各算一半,这产品真是恶心)
//shoppingCartGoodsResponseVo.setDeliveryAmount(this.responseDataMaintain2DeliverAmount(shoppingCartGoodsResponseVo.getDeliveryAmount(),this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())));
// 设置单点不可下单标志
setNonSingleOrder(shoppingCartGoodsResponseVo);
}
/**
......@@ -1166,9 +1168,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo,
shoppingCartInfoRequestVo.getOrderType(), tableNumber, shoppingCartInfoRequestVo.getMenuType(), shoppingCartBaseService);
ShoppingCartGoodsResponseVo cartGoodsResponseVo = checkCartRequest.getShoppingCartGoodsResponseVo();
// 校验商品券库存
//商品不再售卖状态或价格变动,直接返回报错
if (cartGoodsResponseVo != null) {
if (cartGoodsResponseVo.getCartGoodsStates() != null && cartGoodsResponseVo.getCartGoodsStates().isHasInvalidGoods()) {
......@@ -1180,6 +1179,12 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsResponseVo.setToastMsg(cartGoodsResponseVo.getToastMsg());
}
cartGoodsList = JSONArray.parseArray(JSONObject.toJSONString(checkCartRequest.getCartGoodsList()), CartGoods.class);
boolean cannotOrder = true;
for (CartGoods p : cartGoodsList) {
//singleOrder=1 表示为不可单点商品, 商品全部为不可单点商品时 不可下单
cannotOrder = cannotOrder && Objects.equals(p.getSingleOrder(), 1);
}
if (cannotOrder) return ResponseUtil.error(ResponseResult.SHOPPING_CART_NON_SINGLE_ORDER);
// 多规格的sku商品计算包装费
//this.checkSkuOnVersion(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo);
// 重新存储最新购物车
......@@ -1300,6 +1305,25 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return ResponseUtil.success(shoppingCartGoodsDto);
}
/**
* 设置购物车是否可以下单状态
* @param shoppingCartGoodsResponseVo
*/
private void setNonSingleOrder(ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo) {
// 设置单点不可下单标志
shoppingCartGoodsResponseVo.setNonSingleOrder(false);
if (CollectionUtils.isNotEmpty(shoppingCartGoodsResponseVo.getProducts())) {
boolean flag = true;
for (CartGoods p : shoppingCartGoodsResponseVo.getProducts()) {
//排除赠品
if (Objects.equals(p.getIsSendGoods(), true)) continue;
//singleOrder=1 表示为不可单点商品, 商品全部为不可单点商品时 不可下单
flag = flag && Objects.equals(p.getSingleOrder(), 1);
}
shoppingCartGoodsResponseVo.setNonSingleOrder(flag);
}
}
@Override
public BaseResponse<GetMemberInfoResponseVo> getMemberInfo(GetMemberInfoRequestDto request) {
......
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