Commit 233e1a24 by 查志伟

Merge branch '202112310-增加商品单点不可下单功能-zhiwei.zha' into qa

# Conflicts:
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/request/order/OrderProductAddInfoDto.java
#	order-application-service/src/main/java/cn/freemud/service/impl/CheckOrder.java
#	shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/calculate/CalculationSharingDiscountService.java
parents 50020ef7 aa063bfa
...@@ -125,11 +125,11 @@ public class OrderProductAddInfoDto extends BaseConfig { ...@@ -125,11 +125,11 @@ public class OrderProductAddInfoDto extends BaseConfig {
//积分商品活动使用总积分 //积分商品活动使用总积分
private Long score; private Long score;
//多规格商品的spu商品 商品货号,单规格即为单规格商品货号
private String spuProductCode;
/** /**
* 【订C,“POS编码”让凌顶那边去匹配商品】 https://www.tapd.cn/43862731/prong/stories/view/1143862731001039549 * 【订C,“POS编码”让凌顶那边去匹配商品】 https://www.tapd.cn/43862731/prong/stories/view/1143862731001039549
*/ */
private String linkedId; private String linkedId;
//多规格商品的spu商品 商品货号,单规格即为单规格商品货号
private String spuProductCode;
} }
...@@ -304,6 +304,13 @@ public class CartGoods { ...@@ -304,6 +304,13 @@ public class CartGoods {
*/ */
private String linkedId; private String linkedId;
/**
* 商品是否可以单点
* 0-可单点
* 1-不可单点
*/
private Integer singleOrder;
@Data @Data
public final static class CartGoodsExtra { public final static class CartGoodsExtra {
/** /**
......
package cn.freemud.entities.dto.store; package cn.freemud.entities.dto.store;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -20,7 +19,6 @@ public class OrgListTreeResponse { ...@@ -20,7 +19,6 @@ public class OrgListTreeResponse {
@Data @Data
@Builder
public static class OrganizationVo { public static class OrganizationVo {
@ApiModelProperty("排序") @ApiModelProperty("排序")
......
...@@ -66,6 +66,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; ...@@ -66,6 +66,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum; import com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
......
...@@ -693,6 +693,7 @@ public class ShoppingCartConvertAdapter { ...@@ -693,6 +693,7 @@ public class ShoppingCartConvertAdapter {
cartGoods.setTaxId(spuProduct.getTaxId()); cartGoods.setTaxId(spuProduct.getTaxId());
// fisherman 订C,“POS编码”让凌顶那边去匹配商品 透传到订单上 保存到 orders_item 表的 extinfo里面 // fisherman 订C,“POS编码”让凌顶那边去匹配商品 透传到订单上 保存到 orders_item 表的 extinfo里面
cartGoods.setLinkedId(isSkuProduct ? skuProduct.getLinkedCode() : spuProduct.getLinkedId()); cartGoods.setLinkedId(isSkuProduct ? skuProduct.getLinkedCode() : spuProduct.getLinkedId());
cartGoods.setSingleOrder(spuProduct.getSingleOrder());
String skuSpecName = ""; String skuSpecName = "";
String skuForeignSpecName = ""; String skuForeignSpecName = "";
if (isSkuProduct && CollectionUtils.isNotEmpty(skuProduct.getSkuSpecValues())) { if (isSkuProduct && CollectionUtils.isNotEmpty(skuProduct.getSkuSpecValues())) {
......
...@@ -66,6 +66,13 @@ public class ProductTypeBeanDTO { ...@@ -66,6 +66,13 @@ public class ProductTypeBeanDTO {
* 【订C,“POS编码”让凌顶那边去匹配商品】 https://www.tapd.cn/43862731/prong/stories/view/1143862731001039549 * 【订C,“POS编码”让凌顶那边去匹配商品】 https://www.tapd.cn/43862731/prong/stories/view/1143862731001039549
*/ */
private String linkedId ; private String linkedId ;
/**
* 商品是否可以单点
* 0-可单点
* 1-不可单点
*/
private Integer singleOrder;
public Integer getMemberDiscountResult() { public Integer getMemberDiscountResult() {
return this.openMemberDiscount != null && this.openMemberDiscount == 1 ? this.memberDiscount : 100; return this.openMemberDiscount != null && this.openMemberDiscount == 1 ? this.memberDiscount : 100;
} }
......
...@@ -115,6 +115,13 @@ public class ProductBean { ...@@ -115,6 +115,13 @@ public class ProductBean {
*/ */
private String linkedId; private String linkedId;
/**
* 商品是否可以单点
* 0-可单点
* 1-不可单点
*/
private Integer singleOrder;
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class SpecificationGroupBean { public static class SpecificationGroupBean {
......
...@@ -348,6 +348,13 @@ public class CartGoods { ...@@ -348,6 +348,13 @@ public class CartGoods {
*/ */
private String linkedId; private String linkedId;
/**
* 商品是否可以单点
* 0-可单点
* 1-不可单点
*/
private Integer singleOrder;
@Data @Data
public final static class CartGoodsExtra { public final static class CartGoodsExtra {
/** /**
......
...@@ -237,6 +237,12 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV ...@@ -237,6 +237,12 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
*/ */
private Long useCouponThreshold ; private Long useCouponThreshold ;
/**
* 单点不可下单标识
* true:表示单点不可下单,此时无法创建订单
*/
private Boolean nonSingleOrder;
@Data @Data
public static class chooseGood { public static class chooseGood {
......
...@@ -109,6 +109,7 @@ public enum ResponseResult { ...@@ -109,6 +109,7 @@ public enum ResponseResult {
SHOPPING_CART_REPLACE_GOODS("44040", "原有购物车没有商品"), SHOPPING_CART_REPLACE_GOODS("44040", "原有购物车没有商品"),
SHOPPING_CART_REPLACE_GOODS_AND_CLEAR("44041", "因部分商品当前门店暂未售卖,将从购物车移除"), SHOPPING_CART_REPLACE_GOODS_AND_CLEAR("44041", "因部分商品当前门店暂未售卖,将从购物车移除"),
SHOPPING_CART_COUPON_MUTUAL_EXCLUSION("44042", "代金券和折扣券互斥"), SHOPPING_CART_COUPON_MUTUAL_EXCLUSION("44042", "代金券和折扣券互斥"),
SHOPPING_CART_NON_SINGLE_ORDER("44043", "购物车中商品不可单点下单"),
SHOPPING_CART_IS_OVERDELIVERY_ERR("44111", "校验配送范围失败"), SHOPPING_CART_IS_OVERDELIVERY_ERR("44111", "校验配送范围失败"),
/** /**
......
...@@ -83,7 +83,6 @@ import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant; ...@@ -83,7 +83,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.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService; 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.service.impl.ShoppingCartBaseServiceImpl;
import com.freemud.sdk.api.assortment.shoppingcart.util.ShoppingSdkLogUtil;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import ma.glasnost.orika.MapperFacade; import ma.glasnost.orika.MapperFacade;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -890,6 +889,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -890,6 +889,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsResponseVo.setUseCouponThreshold(useCouponThreshold); shoppingCartGoodsResponseVo.setUseCouponThreshold(useCouponThreshold);
// 如果有夜间配送费 需要维护划线价 deliveryAmount 字段, ___> 注意, 配送费的优惠是 促销在算(又特么各算一半,这产品真是恶心) // 如果有夜间配送费 需要维护划线价 deliveryAmount 字段, ___> 注意, 配送费的优惠是 促销在算(又特么各算一半,这产品真是恶心)
//shoppingCartGoodsResponseVo.setDeliveryAmount(this.responseDataMaintain2DeliverAmount(shoppingCartGoodsResponseVo.getDeliveryAmount(),this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList()))); //shoppingCartGoodsResponseVo.setDeliveryAmount(this.responseDataMaintain2DeliverAmount(shoppingCartGoodsResponseVo.getDeliveryAmount(),this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())));
// 设置单点不可下单标志
setNonSingleOrder(shoppingCartGoodsResponseVo);
} }
/** /**
...@@ -1156,9 +1158,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1156,9 +1158,6 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo, CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo,
shoppingCartInfoRequestVo.getOrderType(), tableNumber, shoppingCartInfoRequestVo.getMenuType(), shoppingCartBaseService); shoppingCartInfoRequestVo.getOrderType(), tableNumber, shoppingCartInfoRequestVo.getMenuType(), shoppingCartBaseService);
ShoppingCartGoodsResponseVo cartGoodsResponseVo = checkCartRequest.getShoppingCartGoodsResponseVo(); ShoppingCartGoodsResponseVo cartGoodsResponseVo = checkCartRequest.getShoppingCartGoodsResponseVo();
// 校验商品券库存
//商品不再售卖状态或价格变动,直接返回报错 //商品不再售卖状态或价格变动,直接返回报错
if (cartGoodsResponseVo != null) { if (cartGoodsResponseVo != null) {
if (cartGoodsResponseVo.getCartGoodsStates() != null && cartGoodsResponseVo.getCartGoodsStates().isHasInvalidGoods()) { if (cartGoodsResponseVo.getCartGoodsStates() != null && cartGoodsResponseVo.getCartGoodsStates().isHasInvalidGoods()) {
...@@ -1170,6 +1169,14 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1170,6 +1169,14 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsResponseVo.setToastMsg(cartGoodsResponseVo.getToastMsg()); shoppingCartGoodsResponseVo.setToastMsg(cartGoodsResponseVo.getToastMsg());
} }
cartGoodsList = JSONArray.parseArray(JSONObject.toJSONString(checkCartRequest.getCartGoodsList()), CartGoods.class); 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);
// 重新存储最新购物车 // 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), tableNumber, this.shoppingCartBaseService,bizType); assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), tableNumber, this.shoppingCartBaseService,bizType);
...@@ -1288,6 +1295,25 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1288,6 +1295,25 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return ResponseUtil.success(shoppingCartGoodsDto); 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 @Override
public BaseResponse<GetMemberInfoResponseVo> getMemberInfo(GetMemberInfoRequestDto request) { public BaseResponse<GetMemberInfoResponseVo> getMemberInfo(GetMemberInfoRequestDto request) {
......
...@@ -99,12 +99,12 @@ public class CalculationSharingDiscountService { ...@@ -99,12 +99,12 @@ public class CalculationSharingDiscountService {
, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo, Integer bizType, Integer accountFlag, DiscountSharingDto sharingDto, long nightDistributionFee) { , ShoppingCartInfoRequestVo shoppingCartInfoRequestVo, Integer bizType, Integer accountFlag, DiscountSharingDto sharingDto, long nightDistributionFee) {
deliveryAmount = Objects.isNull(deliveryAmount) ? 0L : deliveryAmount; deliveryAmount = Objects.isNull(deliveryAmount) ? 0L : deliveryAmount;
ActivityCalculationDiscountRequestDto calculationSharingDiscountRequestDto = this.commonSharingDto(partnerId, storeId, userId, appId, orderType); ActivityCalculationDiscountRequestDto calculationSharingDiscountRequestDto = this.commonSharingDto(partnerId, storeId, userId, appId, orderType);
calculationSharingDiscountRequestDto.setTrackingNo(Objects.nonNull(shoppingCartInfoRequestVo) ?
StringUtils.isNotBlank(shoppingCartInfoRequestVo.getTrackingNo()) ? shoppingCartInfoRequestVo.getTrackingNo() : LogThreadLocal.getTrackingNo()
: LogThreadLocal.getTrackingNo());
// 是否有夜间配送费 设置 // 是否有夜间配送费 设置
calculationSharingDiscountRequestDto.setNightDistributionFee(nightDistributionFee); calculationSharingDiscountRequestDto.setNightDistributionFee(nightDistributionFee);
calculationSharingDiscountRequestDto.setTrackingNo(Objects.nonNull(shoppingCartInfoRequestVo) ?
StringUtils.isNotBlank(shoppingCartInfoRequestVo.getTrackingNo()) ? shoppingCartInfoRequestVo.getTrackingNo() : LogThreadLocal.getTrackingNo()
: LogThreadLocal.getTrackingNo());
// 校验后有效的商品券map // 校验后有效的商品券map
HashMap<String, CheckSpqInfoResponseDto> validCouponMap = new HashMap<>(16); HashMap<String, CheckSpqInfoResponseDto> validCouponMap = new HashMap<>(16);
List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>();
......
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