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 {
//积分商品活动使用总积分
private Long score;
//多规格商品的spu商品 商品货号,单规格即为单规格商品货号
private String spuProductCode;
/**
* 【订C,“POS编码”让凌顶那边去匹配商品】 https://www.tapd.cn/43862731/prong/stories/view/1143862731001039549
*/
private String linkedId;
//多规格商品的spu商品 商品货号,单规格即为单规格商品货号
private String spuProductCode;
}
......@@ -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("排序")
......
......@@ -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.response.orderInfo.OrderInfoReqs;
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.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
......
......@@ -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", "购物车中商品不可单点下单"),
SHOPPING_CART_IS_OVERDELIVERY_ERR("44111", "校验配送范围失败"),
/**
......
......@@ -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.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;
......@@ -890,6 +889,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartGoodsResponseVo.setUseCouponThreshold(useCouponThreshold);
// 如果有夜间配送费 需要维护划线价 deliveryAmount 字段, ___> 注意, 配送费的优惠是 促销在算(又特么各算一半,这产品真是恶心)
//shoppingCartGoodsResponseVo.setDeliveryAmount(this.responseDataMaintain2DeliverAmount(shoppingCartGoodsResponseVo.getDeliveryAmount(),this.getNightDistributionFee(shoppingCartGoodsResponseVo.getDeliveryAmountList())));
// 设置单点不可下单标志
setNonSingleOrder(shoppingCartGoodsResponseVo);
}
/**
......@@ -1156,9 +1158,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()) {
......@@ -1170,6 +1169,14 @@ 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);
// 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, assortmentCustomerInfoVo.getSessionId(), tableNumber, this.shoppingCartBaseService,bizType);
......@@ -1288,6 +1295,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) {
......
......@@ -99,12 +99,12 @@ public class CalculationSharingDiscountService {
, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo, Integer bizType, Integer accountFlag, DiscountSharingDto sharingDto, long nightDistributionFee) {
deliveryAmount = Objects.isNull(deliveryAmount) ? 0L : deliveryAmount;
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.setTrackingNo(Objects.nonNull(shoppingCartInfoRequestVo) ?
StringUtils.isNotBlank(shoppingCartInfoRequestVo.getTrackingNo()) ? shoppingCartInfoRequestVo.getTrackingNo() : LogThreadLocal.getTrackingNo()
: LogThreadLocal.getTrackingNo());
// 校验后有效的商品券map
HashMap<String, CheckSpqInfoResponseDto> validCouponMap = new HashMap<>(16);
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