Commit 81b62516 by ping.wu

Merge branches 'feature-2020/9/6-fabu-huiyang' and…

Merge branches 'feature-2020/9/6-fabu-huiyang' and 'feature/20200721_麦咖啡购物车_wuping' of http://gitlab.freemud.com/order-group-application/order-group into feature-2020/9/6-fabu-huiyang

# Conflicts:
#	assortment-shoppingcart-sdk/pom.xml
#	shopping-cart-application-service/pom.xml
#	shopping-cart-application-service/src/main/java/cn/freemud/adapter/ShoppingCartConvertAdapter.java
#	shopping-cart-application-service/src/main/java/cn/freemud/enums/GoodsTypeEnum.java
#	shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
parents a2769525 9f7f8e32
...@@ -42,7 +42,8 @@ ...@@ -42,7 +42,8 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>productcenter-sdk</artifactId> <artifactId>productcenter-sdk</artifactId>
<version>3.7.RELEASE</version> <!--<version>3.7.RELEASE</version>-->
<version>3.6.5.SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -283,6 +283,8 @@ public class ShoppingCartAdapter { ...@@ -283,6 +283,8 @@ public class ShoppingCartAdapter {
cartGoods.setMemberDiscount(spuProduct.getMemberDiscountResult()); cartGoods.setMemberDiscount(spuProduct.getMemberDiscountResult());
cartGoods.setClassificationId(spuProduct.getCategory()); cartGoods.setClassificationId(spuProduct.getCategory());
cartGoods.setClassificationName(spuProduct.getCategoryName()); cartGoods.setClassificationName(spuProduct.getCategoryName());
cartGoods.setTax(spuProduct.getTax());
cartGoods.setTaxId(spuProduct.getTaxId());
String skuSpecName = ""; String skuSpecName = "";
if (isSkuProduct && CollectionUtils.isNotEmpty(skuProduct.getSkuSpecValues())) { if (isSkuProduct && CollectionUtils.isNotEmpty(skuProduct.getSkuSpecValues())) {
List<String> skuSpecValus = skuProduct.getSkuSpecValues().stream().map(p -> p.getSpecValue()).collect(Collectors.toList()); List<String> skuSpecValus = skuProduct.getSkuSpecValues().stream().map(p -> p.getSpecValue()).collect(Collectors.toList());
...@@ -477,6 +479,8 @@ public class ShoppingCartAdapter { ...@@ -477,6 +479,8 @@ public class ShoppingCartAdapter {
comboxGoods.setWeightType(isComboxGoods ? CommonsConstant.WEIGHT_PRODUCT.equals(productComboType.getWeightType()) : CommonsConstant.WEIGHT_PRODUCT.equals(groupDetailType.getWeightType())); comboxGoods.setWeightType(isComboxGoods ? CommonsConstant.WEIGHT_PRODUCT.equals(productComboType.getWeightType()) : CommonsConstant.WEIGHT_PRODUCT.equals(groupDetailType.getWeightType()));
comboxGoods.setUnit(isComboxGoods ? productComboType.getUnit() : groupDetailType.getUnit()); comboxGoods.setUnit(isComboxGoods ? productComboType.getUnit() : groupDetailType.getUnit());
comboxGoods.setWeight(isComboxGoods ? productComboType.getWeight() : groupDetailType.getWeight()); comboxGoods.setWeight(isComboxGoods ? productComboType.getWeight() : groupDetailType.getWeight());
comboxGoods.setTax(isComboxGoods ? productComboType.getTax() : groupDetailType.getTax());
comboxGoods.setTaxId(isComboxGoods ? productComboType.getTaxId() : groupDetailType.getTaxId());
} }
private Map<String, String> getAttributes(CartGoods cartGoods, List<CartGoods.CartGoodsExtra> extra, List<ProductBeanDTO.ProductAttributeGroupListBean> attributeGroupListBeanList, List<String> invalidGoodsIdList) { private Map<String, String> getAttributes(CartGoods cartGoods, List<CartGoods.CartGoodsExtra> extra, List<ProductBeanDTO.ProductAttributeGroupListBean> attributeGroupListBeanList, List<String> invalidGoodsIdList) {
......
...@@ -47,6 +47,11 @@ public class CartGoods { ...@@ -47,6 +47,11 @@ public class CartGoods {
*/ */
private String unit; private String unit;
/**
* 商品券code
*/
private String couponCode;
private String spuId; private String spuId;
private String skuId; private String skuId;
/** /**
...@@ -159,6 +164,16 @@ public class CartGoods { ...@@ -159,6 +164,16 @@ public class CartGoods {
private Integer memberDiscount; private Integer memberDiscount;
/** /**
* 税率
*/
private Double tax;
/**
* 税率代码
*/
private String taxId;
/**
* 套餐固定商品 * 套餐固定商品
*/ */
private List<ComboxGoods> productComboList; private List<ComboxGoods> productComboList;
...@@ -269,6 +284,16 @@ public class CartGoods { ...@@ -269,6 +284,16 @@ public class CartGoods {
* 配料或属性 * 配料或属性
*/ */
private List<CartGoodsExtra> extra; private List<CartGoodsExtra> extra;
/**
* 税率
*/
private Double tax;
/**
* 税率代码
*/
private String taxId;
} }
@Override @Override
......
...@@ -167,7 +167,7 @@ public class GetMenuResponseDto { ...@@ -167,7 +167,7 @@ public class GetMenuResponseDto {
private int updateStatus; private int updateStatus;
private boolean valid; private boolean valid;
private int version; private int version;
private List<ProductLabelNameListBean> labelNames; private List<ProductLabelNameBean> labelNames;
private List<ProductAttributeGroupListBean> productAttributeGroupList; private List<ProductAttributeGroupListBean> productAttributeGroupList;
private List<ProductPictureListBean> productPictureList; private List<ProductPictureListBean> productPictureList;
private List<?> productSpecification; private List<?> productSpecification;
...@@ -239,7 +239,7 @@ public class GetMenuResponseDto { ...@@ -239,7 +239,7 @@ public class GetMenuResponseDto {
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class ProductLabelNameListBean { public static class ProductLabelNameBean {
private String id; private String id;
private String name; private String name;
private String partnerId; private String partnerId;
......
...@@ -35,7 +35,8 @@ ...@@ -35,7 +35,8 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>productcenter-sdk</artifactId> <artifactId>productcenter-sdk</artifactId>
<version>3.7.RELEASE</version> <!--<version>3.7.RELEASE</version>-->
<version>3.6.5.SNAPSHOT</version> <!-- //3.6.4-SNAPSHOTE -->
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
...@@ -47,6 +48,12 @@ ...@@ -47,6 +48,12 @@
<artifactId>assortment-shoppingcart-sdk</artifactId> <artifactId>assortment-shoppingcart-sdk</artifactId>
<version>1.1.5.RELEASE</version> <version>1.1.5.RELEASE</version>
</dependency> </dependency>
<!-- 再来一单查询订单信息 -->
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.3.10.RELEASE</version>
</dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>promotioncenter-sdk</artifactId> <artifactId>promotioncenter-sdk</artifactId>
......
...@@ -85,12 +85,14 @@ public class ShoppingCartConvertAdapter { ...@@ -85,12 +85,14 @@ public class ShoppingCartConvertAdapter {
// 设置基础信息 // 设置基础信息
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = new ShoppingCartGoodsDto.CartGoodsDetailDto(); ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = new ShoppingCartGoodsDto.CartGoodsDetailDto();
cartGoodsDetailDto.setCartGoodsUid(cartGoods.getCartGoodsUid()); cartGoodsDetailDto.setCartGoodsUid(cartGoods.getCartGoodsUid());
cartGoodsDetailDto.setTaxId(cartGoods.getTaxId());
cartGoodsDetailDto.setTax(cartGoods.getTax());
cartGoodsDetailDto.setSpuId(cartGoods.getSpuId()); cartGoodsDetailDto.setSpuId(cartGoods.getSpuId());
cartGoodsDetailDto.setSpuName(cartGoods.getSpuName()); cartGoodsDetailDto.setSpuName(cartGoods.getSpuName());
cartGoodsDetailDto.setSkuId(StringUtils.isEmpty(cartGoods.getSkuId()) ? cartGoods.getSpuId() : cartGoods.getSkuId()); cartGoodsDetailDto.setSkuId(StringUtils.isEmpty(cartGoods.getSkuId()) ? cartGoods.getSpuId() : cartGoods.getSkuId());
cartGoodsDetailDto.setSkuName(StringUtils.isEmpty(cartGoods.getSkuName()) ? cartGoods.getSpuName() : cartGoods.getSkuName()); cartGoodsDetailDto.setSkuName(StringUtils.isEmpty(cartGoods.getSkuName()) ? cartGoods.getSpuName() : cartGoods.getSkuName());
cartGoodsDetailDto.setOriginalPrice(cartGoods.getOriginalPrice()); cartGoodsDetailDto.setOriginalPrice(cartGoods.getOriginalPrice());
cartGoodsDetailDto.setTotalDiscountAmount(0); // cartGoodsDetailDto.setTotalDiscountAmount(0);
cartGoodsDetailDto.setSalePrice(cartGoods.getOriginalPrice()); cartGoodsDetailDto.setSalePrice(cartGoods.getOriginalPrice());
cartGoodsDetailDto.setPicture(cartGoods.getPic()); cartGoodsDetailDto.setPicture(cartGoods.getPic());
cartGoodsDetailDto.setQty(cartGoods.getQty()); cartGoodsDetailDto.setQty(cartGoods.getQty());
...@@ -99,6 +101,7 @@ public class ShoppingCartConvertAdapter { ...@@ -99,6 +101,7 @@ public class ShoppingCartConvertAdapter {
cartGoodsDetailDto.setCategoryName(cartGoods.getCategoryName()); cartGoodsDetailDto.setCategoryName(cartGoods.getCategoryName());
cartGoodsDetailDto.setCouponCode(cartGoods.getCouponCode()); cartGoodsDetailDto.setCouponCode(cartGoods.getCouponCode());
cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit()); cartGoodsDetailDto.setStockLimit(cartGoods.isStockLimit());
cartGoodsDetailDto.setProductCode(cartGoods.getCustomerCode());
cartGoodsDetailDto.setCustomerCode(cartGoods.getCustomerCode()); cartGoodsDetailDto.setCustomerCode(cartGoods.getCustomerCode());
cartGoodsDetailDto.setWeight(cartGoods.getWeight()); cartGoodsDetailDto.setWeight(cartGoods.getWeight());
cartGoodsDetailDto.setUnit(cartGoods.getUnit()); cartGoodsDetailDto.setUnit(cartGoods.getUnit());
...@@ -250,6 +253,8 @@ public class ShoppingCartConvertAdapter { ...@@ -250,6 +253,8 @@ public class ShoppingCartConvertAdapter {
Integer tempDiscount = 0; Integer tempDiscount = 0;
for (CartGoods.ComboxGoods comboxGoods : comboxGoodsList) { for (CartGoods.ComboxGoods comboxGoods : comboxGoodsList) {
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = new ShoppingCartGoodsDto.CartGoodsDetailDto(); ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = new ShoppingCartGoodsDto.CartGoodsDetailDto();
cartGoodsDetailDto.setTaxId(cartGoods.getTaxId());
cartGoodsDetailDto.setTax(cartGoods.getTax());
cartGoodsDetailDto.setSpuId(comboxGoods.getGoodsId()); cartGoodsDetailDto.setSpuId(comboxGoods.getGoodsId());
cartGoodsDetailDto.setSpuName(comboxGoods.getSpuName()); cartGoodsDetailDto.setSpuName(comboxGoods.getSpuName());
cartGoodsDetailDto.setSkuId(comboxGoods.getGoodsId()); cartGoodsDetailDto.setSkuId(comboxGoods.getGoodsId());
...@@ -364,6 +369,7 @@ public class ShoppingCartConvertAdapter { ...@@ -364,6 +369,7 @@ public class ShoppingCartConvertAdapter {
cartGoods.setSpuId(spuId); cartGoods.setSpuId(spuId);
cartGoods.setSkuId(skuId); cartGoods.setSkuId(skuId);
cartGoods.setQty(qty); cartGoods.setQty(qty);
cartGoods.setCouponCode(addShoppingCartGoodsRequestVo.getCouponCode());
Integer goodsType = StringUtils.isEmpty(skuId)||ObjectUtils.equals(spuId,skuId) ? GoodsTypeEnum.SPU_GOODS.getGoodsType() : GoodsTypeEnum.SKU_GOODS.getGoodsType(); Integer goodsType = StringUtils.isEmpty(skuId)||ObjectUtils.equals(spuId,skuId) ? GoodsTypeEnum.SPU_GOODS.getGoodsType() : GoodsTypeEnum.SKU_GOODS.getGoodsType();
if (spuId.startsWith(CommonsConstant.COUPON_PREFIX)) { if (spuId.startsWith(CommonsConstant.COUPON_PREFIX)) {
goodsType = GoodsTypeEnum.COUPON_GOODS.getGoodsType(); goodsType = GoodsTypeEnum.COUPON_GOODS.getGoodsType();
......
...@@ -98,7 +98,7 @@ public class WebAspect { ...@@ -98,7 +98,7 @@ public class WebAspect {
throw new CommonServiceException(CommonResponseResult.USER_UNAUTHORIZED); throw new CommonServiceException(CommonResponseResult.USER_UNAUTHORIZED);
} }
List<String> unauthorizedUrls = Arrays.asList(getNotFilterUrl(CommonRedisKeyConstant.SAAS_NOT_AUTHORIZED_URL, NOT_AUTHORIZED_KEY).split(",")); List<String> unauthorizedUrls = Arrays.asList(getNotFilterUrl(CommonRedisKeyConstant.SAAS_NOT_AUTHORIZED_URL, NOT_AUTHORIZED_KEY).split(","));
if (!unauthorizedUrls.contains(requestUrl) && StringUtils.isEmpty(userInfo.getUnionId())) { if (!unauthorizedUrls.contains(requestUrl) && StringUtils.isEmpty(userInfo.getUnionId()) && !requestUrl.contains("MCoffee")) {
throw new CommonServiceException(CommonResponseResult.USER_UNAUTHORIZED); throw new CommonServiceException(CommonResponseResult.USER_UNAUTHORIZED);
} }
} else { } else {
......
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.*;
import cn.freemud.service.impl.mcoffee.ShoppingCartMCoffeeServiceImpl;
import cn.freemud.service.impl.mcoffee.entity.CopyShoppingCartRequestVo;
import cn.freemud.service.impl.mcoffee.entity.MCoffeeAddGoodsRequestVo;
import cn.freemud.service.impl.mcoffee.entity.SwitchShoppingCartRequestVo;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: MCoffeeShoppingCartController
* @Package cn.freemud.controller
* @Description:
* @author: ping1.wu
* @date: 2020/7/21 17:37
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@RestController
@RequestMapping(value = "/shoppingCart/MCoffee", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(value = "购物车 controller", tags = {"购物车管理接口"})
@Slf4j
public class MCoffeeShoppingCartController {
@Autowired
private ShoppingCartMCoffeeServiceImpl shoppingCartMCoffeeService;
/**
* 向购物车中添加商品
*/
@ApiAnnotation(logMessage = "addGoods")
@PostMapping(value = "/addGoods")
public BaseResponse addGoods(@Validated @LogParams @RequestBody MCoffeeAddGoodsRequestVo request) {
return shoppingCartMCoffeeService.addGoods(request);
}
/**
* 修改购物车中商品数量
*/
@ApiAnnotation(logMessage = "updateGoodsQty")
@PostMapping(value = "/updateGoodsQty")
public BaseResponse updateGoodsQty(@Validated @LogParams @RequestBody UpdateShoppingCartGoodsQtyRequestVo request) {
return shoppingCartMCoffeeService.updateGoodsQty(request);
}
/**
* 查询购物车信息
*/
@ApiAnnotation(logMessage = "listCartGoods")
@PostMapping(value = "/listCartGoods")
public BaseResponse listCartGoods(@Validated @LogParams @RequestBody ShoppingCartInfoRequestVo request) {
return shoppingCartMCoffeeService.getGoodsList(request);
}
/**
* 查询购物车可使用优惠券
*/
@ApiAnnotation(logMessage = "availableCoupon")
@PostMapping(value = "/availableCoupon")
public BaseResponse availableCoupon(@Validated @LogParams @RequestBody ShoppingCartInfoRequestVo request) {
return shoppingCartMCoffeeService.availableCoupon(request);
}
/**
* 清空购物车
*/
@ApiAnnotation(logMessage = "clearCartGoods")
@PostMapping(value = "/clearCartGoods")
public BaseResponse clearCartGoods(@Validated @LogParams @RequestBody ShoppingCartClearRequestVo request) {
return shoppingCartMCoffeeService.clear(request);
}
/**
* 获取购物车均摊详情,点 "去支付" 时调用
*/
@ApiAnnotation(logMessage = "getShoppingCartGoodsApportion")
@PostMapping(value = "/getShoppingCartGoodsApportion")
public BaseResponse getShoppingCartGoodsApportion(@Validated @LogParams @RequestBody GetShoppingCartGoodsApportionRequestVo requestVo) {
return shoppingCartMCoffeeService.getShoppingCartGoods(requestVo);
}
/**
* 切换门店购物车,校验商品或者复制原门店购物车到新门店
*/
@ApiAnnotation(logMessage = "switchCartGoods")
@PostMapping(value = "/switchCartGoods")
public BaseResponse switchCartGoods(@Validated @LogParams @RequestBody SwitchShoppingCartRequestVo request) {
return shoppingCartMCoffeeService.switchCartGoods(request);
}
/**
* 再来一单
*/
@ApiAnnotation(logMessage = "copyOrder")
@PostMapping(value = "/copyOrder")
public BaseResponse copyOrder(@Validated @LogParams @RequestBody CopyShoppingCartRequestVo request) {
return shoppingCartMCoffeeService.copyOrder(request);
}
}
...@@ -86,6 +86,10 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -86,6 +86,10 @@ public class ActivityCalculationDiscountRequestDto {
/** /**
* 商品ID * 商品ID
*/ */
private String goodsCode;
/**
* 商品ID
*/
private String goodsId; private String goodsId;
/** /**
* 购物车行uid * 购物车行uid
...@@ -114,6 +118,30 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -114,6 +118,30 @@ public class ActivityCalculationDiscountRequestDto {
private List<Material> smallMaterial; private List<Material> smallMaterial;
private String spuId; private String spuId;
private List<Material> smallMaterial;
@Data
@NoArgsConstructor
static public class Material {
/**
* 加料商品ID
*/
private String goodsId;
/**
* 加料数量
*/
private Integer goodsQuantity;
/**
* 加料单价
*/
private Long originalPrice;
/**
* 1 :小料、2:可选搭配
*/
private int type;
}
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) if (this == o)
...@@ -153,4 +181,5 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -153,4 +181,5 @@ public class ActivityCalculationDiscountRequestDto {
private int type; private int type;
} }
} }
} }
...@@ -193,6 +193,11 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -193,6 +193,11 @@ public class ActivityCalculationDiscountResponseDto {
private Integer actualGoodsNumber; private Integer actualGoodsNumber;
private List<GoodsDiscount> discounts; private List<GoodsDiscount> discounts;
/**
* 活动键位编号
*/
private String artNo;
@Data @Data
public static class GoodsDiscount { public static class GoodsDiscount {
...@@ -296,6 +301,10 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -296,6 +301,10 @@ public class ActivityCalculationDiscountResponseDto {
* 优惠金额(单位分) * 优惠金额(单位分)
*/ */
private Integer discountAmount; private Integer discountAmount;
private Integer activityType;
private String activityName;
} }
@Data @Data
......
...@@ -47,4 +47,14 @@ public class GetMemberCouponListRequestDto { ...@@ -47,4 +47,14 @@ public class GetMemberCouponListRequestDto {
*/ */
private Integer pageSize; private Integer pageSize;
//以下为麦咖啡需要参数
private String appId;
private String unionId;
private String thirdPartyMemberId;
private String tag;
} }
...@@ -21,4 +21,9 @@ public class ActivityDiscountsDto { ...@@ -21,4 +21,9 @@ public class ActivityDiscountsDto {
private String activityName; private String activityName;
private Integer discountAmount; private Integer discountAmount;
private Integer activityType; private Integer activityType;
/**
* 实际参与活动商品数量
*/
private Integer actualActivityGoodsNumber;
} }
...@@ -20,7 +20,7 @@ public class ShoppingCartGoodsDto { ...@@ -20,7 +20,7 @@ public class ShoppingCartGoodsDto {
/** /**
* 购物车实际选择商品,包含加价购商品 * 购物车实际选择商品,包含加价购商品
*/ */
List<CartGoodsDetailDto> products; private List<CartGoodsDetailDto> products;
/** /**
* 购物车版本号 * 购物车版本号
*/ */
...@@ -68,7 +68,7 @@ public class ShoppingCartGoodsDto { ...@@ -68,7 +68,7 @@ public class ShoppingCartGoodsDto {
/** /**
* 请求计算的商品均摊信息 * 请求计算的商品均摊信息
*/ */
List<ShareDiscountActivityDto> shareDiscountActivityDtos; private List<ShareDiscountActivityDto> shareDiscountActivityDtos;
/** /**
* 第一次使用会员卡需多支付的金额 单位为分 * 第一次使用会员卡需多支付的金额 单位为分
...@@ -207,6 +207,10 @@ public class ShoppingCartGoodsDto { ...@@ -207,6 +207,10 @@ public class ShoppingCartGoodsDto {
*/ */
private boolean isStockLimit; private boolean isStockLimit;
/** /**
* 商品货号
*/
private String productCode;
/**
* 第三方商品编码 * 第三方商品编码
*/ */
private String customerCode; private String customerCode;
...@@ -226,6 +230,16 @@ public class ShoppingCartGoodsDto { ...@@ -226,6 +230,16 @@ public class ShoppingCartGoodsDto {
* 统计分类名称 * 统计分类名称
*/ */
private String classificationName; private String classificationName;
/**
* 税率代码
*/
private String taxId;
/**
* 税率
*/
private Double tax;
/** /**
* 配料或属性 * 配料或属性
*/ */
......
...@@ -80,4 +80,14 @@ public class AddShoppingCartGoodsRequestVo extends BaseRequestVo{ ...@@ -80,4 +80,14 @@ public class AddShoppingCartGoodsRequestVo extends BaseRequestVo{
*/ */
private String receiveId; private String receiveId;
/**
* 操作类型 1= 添加商品券 2=加价购
*/
private Integer operationType;
/**
* 优惠券号
*/
private String couponCode;
} }
...@@ -90,6 +90,11 @@ public class CartGoods { ...@@ -90,6 +90,11 @@ public class CartGoods {
* 购物车一行商品的数量 * 购物车一行商品的数量
*/ */
private Integer qty; private Integer qty;
/**
* 参与活动商品数量 前端展示参数
*/
private Integer activityNumber;
/** /**
* 购物车一行商品的名称 * 购物车一行商品的名称
*/ */
...@@ -163,6 +168,17 @@ public class CartGoods { ...@@ -163,6 +168,17 @@ public class CartGoods {
* 例如8折为80 * 例如8折为80
*/ */
private Integer memberDiscount; private Integer memberDiscount;
/**
* 费率
*/
private Double tax;
/**
* 费率代码
*/
private String taxId;
/** /**
* 套餐固定商品 * 套餐固定商品
*/ */
...@@ -270,6 +286,16 @@ public class CartGoods { ...@@ -270,6 +286,16 @@ public class CartGoods {
*/ */
private Long productGroupId; private Long productGroupId;
/**
* 费率
*/
private Double tax;
/**
* 费率代码
*/
private String taxId;
@Override @Override
public int hashCode() { public int hashCode() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
...@@ -301,6 +327,7 @@ public class CartGoods { ...@@ -301,6 +327,7 @@ public class CartGoods {
// 原始字符串 // 原始字符串
StringBuilder originalString = new StringBuilder(); StringBuilder originalString = new StringBuilder();
originalString.append(goodsId); originalString.append(goodsId);
originalString.append(couponCode);
if (CollectionUtils.isNotEmpty(extra)) { if (CollectionUtils.isNotEmpty(extra)) {
extra.stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> originalString.append(e.getAttributeId())); extra.stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> originalString.append(e.getAttributeId()));
} }
...@@ -322,6 +349,7 @@ public class CartGoods { ...@@ -322,6 +349,7 @@ public class CartGoods {
StringBuilder currentString = new StringBuilder(); StringBuilder currentString = new StringBuilder();
currentString.append(cartGoods.getGoodsId()); currentString.append(cartGoods.getGoodsId());
currentString.append(cartGoods.getCouponCode());
if (CollectionUtils.isNotEmpty(cartGoods.getExtra())) { if (CollectionUtils.isNotEmpty(cartGoods.getExtra())) {
cartGoods.getExtra().stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> currentString.append(e.getAttributeId())); cartGoods.getExtra().stream().sorted(Comparator.comparing(CartGoodsExtra::getAttributeId)).forEach(e -> currentString.append(e.getAttributeId()));
} }
......
...@@ -32,7 +32,7 @@ public class UpdateShoppingCartGoodsQtyRequestVo extends BaseRequestVo { ...@@ -32,7 +32,7 @@ public class UpdateShoppingCartGoodsQtyRequestVo extends BaseRequestVo {
private String cartGoodsUid; private String cartGoodsUid;
/** /**
* 商品数量 * 更新后商品数量
*/ */
@NotNull(message = "qty不能为空") @NotNull(message = "qty不能为空")
private Integer qty; private Integer qty;
......
...@@ -25,6 +25,7 @@ public enum ActivityTypeEnum { ...@@ -25,6 +25,7 @@ public enum ActivityTypeEnum {
*/ */
TYPE_2(2, "单品特价"), TYPE_2(2, "单品特价"),
TYPE_21(21, "单品折扣"), TYPE_21(21, "单品折扣"),
TYPE_23(23, "超值加购"),
/** /**
* 优惠券 * 优惠券
*/ */
......
...@@ -20,6 +20,7 @@ public enum GoodsTypeEnum { ...@@ -20,6 +20,7 @@ public enum GoodsTypeEnum {
SET_MEAL_GOODS(3, "套餐商品"), SET_MEAL_GOODS(3, "套餐商品"),
SKU_GOODS(4, "sku商品"), SKU_GOODS(4, "sku商品"),
SPU_GOODS(5, "spu商品"), SPU_GOODS(5, "spu商品"),
REDUCE_PRICE_GOODS(6,"加价购商品"),
MATERIAL(88, "有加料的商品"), MATERIAL(88, "有加料的商品"),
EXCEPTION_GOODS(99, "异常商品:商品菜单变化导致和购物车不商品匹配"); EXCEPTION_GOODS(99, "异常商品:商品菜单变化导致和购物车不商品匹配");
private Integer goodsType; private Integer goodsType;
......
...@@ -16,6 +16,7 @@ public enum ResponseResult { ...@@ -16,6 +16,7 @@ public enum ResponseResult {
NOT_LOGIN("40001", "用户未登录"), NOT_LOGIN("40001", "用户未登录"),
PARAMETER_MISSING("40002", "缺少必要参数"), PARAMETER_MISSING("40002", "缺少必要参数"),
OPERATE_TOO_OFTEN("40003", "忙不过来了,请稍后再试"), OPERATE_TOO_OFTEN("40003", "忙不过来了,请稍后再试"),
NOT_SUPPORTED("40004", "操作不支持"),
/** /**
* 用户信息状态码 * 用户信息状态码
...@@ -83,6 +84,8 @@ public enum ResponseResult { ...@@ -83,6 +84,8 @@ public enum ResponseResult {
SHOPPING_CART_GIFTS_PRODUCT_NOT_EXIST("44018", "买赠商品不存在"), SHOPPING_CART_GIFTS_PRODUCT_NOT_EXIST("44018", "买赠商品不存在"),
SHOPPING_CART_SHOP_ID_NOT_EMPTY("44019", "门店编号不能为空"), SHOPPING_CART_SHOP_ID_NOT_EMPTY("44019", "门店编号不能为空"),
SHOPPING_CART_COUPON_CAN_NOT_USE_THIS_SHOP("44020", "券不适用于该门店"), SHOPPING_CART_COUPON_CAN_NOT_USE_THIS_SHOP("44020", "券不适用于该门店"),
SHOPPING_CART_SEAT_EMPTY("44020", "键位为空"),
/** /**
* 订单状态码 * 订单状态码
*/ */
......
package cn.freemud.enums;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: ShoppingCartOperationType
* @Package cn.freemud.enums
* @Description:
* @author: ping1.wu
* @date: 2020/8/10 18:09
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public enum ShoppingCartOperationType {
ADD_PRODUCT_COUPON(1,"增加商品券"),
ADD_SUPER_PRICE_GOODS(2,"增加超值加购商品"),
UPDATE3(3,"切换门店校验"),
UPDATE4(4,"确认切换门店")
;
private Integer code;
private String message;
ShoppingCartOperationType(Integer code, String message) {
this.code = code;
this.message = message;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
...@@ -41,7 +41,6 @@ import java.util.List; ...@@ -41,7 +41,6 @@ import java.util.List;
@Service @Service
public class AssortmentSdkService { public class AssortmentSdkService {
/** /**
* 调用聚合sdk获取单个商品行信息 * 调用聚合sdk获取单个商品行信息
* *
...@@ -129,8 +128,7 @@ public class AssortmentSdkService { ...@@ -129,8 +128,7 @@ public class AssortmentSdkService {
return JSONArray.parseArray(JSONObject.toJSONString(baseResponse.getResult()), CartGoods.class); return JSONArray.parseArray(JSONObject.toJSONString(baseResponse.getResult()), CartGoods.class);
} }
@Value("${shopping.cart.check.action}")
private String shoppingCartCheckAction;
/** /**
* 调用SDK校验购物车 * 调用SDK校验购物车
......
package cn.freemud.service.impl.mcoffee.entity;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: CopyShoppingCartRequestVo
* @Package cn.freemud.service.impl.mcoffee.entity
* @Description:
* @author: ping1.wu
* @date: 2020/8/10 17:13
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CopyShoppingCartRequestVo {
@NotEmpty(message = "sessionId不能为空")
private String sessionId;
/**
* 商户Id
*/
@NotEmpty(message = "partnerId不能为空")
private String partnerId;
/**
* 微信appId
*/
@NotEmpty(message = "appId不能为空")
private String appId;
/**
* 门店Id
*/
// @NotEmpty(message = "shopId不能为空")
private String shopId;
/**
* 订单号
*/
@NotEmpty(message = "orderId不能为空")
private String orderId;
}
package cn.freemud.service.impl.mcoffee.entity;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: CouponAvailableReq
* @Package cn.freemud.service.impl.mcoffee
* @Description:
* @author: ping1.wu
* @date: 2020/8/4 16:10
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CouponAvailableReq {
//渠道id
private String providerId;
//商户号
private String merchantId;
private String city;
private String storeId;
//组织机构id列表(校验渠道限制)
private List<String> channelIdList;
//组织机构code列表(校验渠道限制)
private List<String> channelCodeList;
//券码列表
private List<String> couponCodes;
private Integer totalAmount;
//核销渠道 枚举: mocoffee_wx : 麦咖啡微信小程序 mocoffee_zfb : 麦咖啡支付宝小程序
private String redeemChannel;
//购物车商品列表
private List<CouponProductVo> productList;
private String stationId;
private String operatorId;
}
package cn.freemud.service.impl.mcoffee.entity;
import com.freemud.card.sdk.vo.coupon.CouponStateVo;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: CouponAvailableResp
* @Package cn.freemud.service.impl.mcoffee
* @Description:
* @author: ping1.wu
* @date: 2020/8/4 16:10
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CouponAvailableResp {
private Integer result;
private String msg;
private List<CouponState> couponStateList;
}
package cn.freemud.service.impl.mcoffee.entity;
import lombok.Data;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: CouponProductVo
* @Package cn.freemud.service.impl.mcoffee
* @Description:
* @author: ping1.wu
* @date: 2020/8/4 16:14
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CouponProductVo {
private String keyProductCode;
private String productId;
private Integer amount;
private Integer quantity;
private String categoryCode;
}
package cn.freemud.service.impl.mcoffee.entity;
import com.freemud.card.sdk.vo.coupon.Product;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: CouponState
* @Package cn.freemud.service.impl.mcoffee.entity
* @Description:
* @author: ping1.wu
* @date: 2020/8/5 18:53
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class CouponState {
private String couponCode;
private Integer type;
private Integer state;
private String message;
private Integer minAmount;
private Integer amount;
private Integer priceDiscount;
private Integer originalPrice;
private Integer discount;
private String limitType;
private List<Product> productList;
//以下为麦咖啡新加字段
private String actName;
private String actDesc;
private String validEndTime;
private String validStartTime;
}
package cn.freemud.service.impl.mcoffee.entity;
import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.ComboxGoodsRequestVo;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: MCoffeeAddGoodsRequestVo
* @Package cn.freemud.service.impl.mcoffee.entity
* @Description:
* @author: ping1.wu
* @date: 2020/8/8 21:04
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class MCoffeeAddGoodsRequestVo {
@NotEmpty(message = "sessionId不能为空")
private String sessionId;
/**
* 商户Id
*/
@NotEmpty(message = "partnerId不能为空")
private String partnerId;
/**
* 微信appId
*/
@NotEmpty(message = "appId不能为空")
private String appId;
/**
* 门店Id
* 商城没有门店id,如果需要门店id必传在业务中进行校验
*/
// @NotEmpty(message = "shopId不能为空")
private String shopId;
/**
* 下单类型 CreateOrderType 外卖、到店、商城
*/
private Integer orderType;
/**
* 渠道类型 OrderChannelType
*/
private String channelType;
@NotEmpty(message = "spuId不能为空")
private String spuId;
private String skuId;
/**
* 商品额外的属性
*/
private List<CartGoods.CartGoodsExtra> extra;
private String version;
/**
* 1.6.0 版本增加 节点ID
*/
private String nodeId;
/**
* 1.6.0 版本增加 分类名
*/
private String categoryName;
/**
* 套餐固定商品
*/
private List<ComboxGoodsRequestVo> productComboList;
/**
* 套餐可选商品
*/
private List<ComboxGoodsRequestVo> productGroupList;
private String appType;
private String tableNumber;
/**
* 数量
*/
private Integer qty;
/**
* 业务类型: 0 : 自提 1:外卖 2:微商城
*/
private String menuType ;
/**
* 收货地址ID、svc卡支付外卖订单必传
*/
private String receiveId;
/**
* 操作类型 1= 添加商品券 2=加价购
*/
private Integer operationType;
/**
* 优惠券号
*/
private String couponCode;
}
package cn.freemud.service.impl.mcoffee.entity;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: SwitchShoppingCartRequestVo
* @Package cn.freemud.service.impl.mcoffee.entity
* @Description:
* @author: ping1.wu
* @date: 2020/8/10 17:12
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class SwitchShoppingCartRequestVo {
@NotEmpty(message = "sessionId不能为空")
private String sessionId;
@NotEmpty(message = "appId不能为空")
private String appId;
/**
* 商户Id
*/
@NotEmpty(message = "partnerId不能为空")
private String partnerId;
/**
* 门店Id
*/
@NotEmpty(message = "fromShopId不能为空")
private String fromShopId;
@NotEmpty(message = "toShopId不能为空")
private String toShopId;
/**
* 下单类型 CreateOrderType 外卖、到店、商城
*/
private Integer orderType;
/**
* 渠道类型 OrderChannelType
*/
private String channelType;
/**
* 优惠券code
*/
private String couponCode;
/**
* 优惠券对应的活动号
*/
private String activityCode;
/**
* 到店类型 orderType 传1的时候 如果reachStoreTyp为空转成订单类型4 如果不为空存储4(打包带走)和5(店内就餐)
*/
private Integer reachStoreType;
/**
* 收货地址ID、svc卡支付外卖订单必传
*/
private String receiveId;
/**
* 业务类型
*/
private String menuType;
/**
* 操作类型 ShoppingCartOperationType 枚举
*/
private Integer operationType;
}
...@@ -46,4 +46,14 @@ public interface ActivityClient { ...@@ -46,4 +46,14 @@ public interface ActivityClient {
*/ */
@PostMapping("/activity/stock/cancelStock") @PostMapping("/activity/stock/cancelStock")
ActivityBaseResponseDto cancelStock(ActivityCancelStockRequestDto activityCancelStockRequestDto); ActivityBaseResponseDto cancelStock(ActivityCancelStockRequestDto activityCancelStockRequestDto);
/**
* 新版优惠均摊计算
* @param activityCalculationDiscountRequestDto
* @return
*/
@PostMapping("/calculation/discount/sharing")
ActivityCalculationDiscountResponseDto calculationDiscountSharing(ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto);
} }
...@@ -13,12 +13,14 @@ ...@@ -13,12 +13,14 @@
package cn.freemud.service.thirdparty; package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.service.impl.mcoffee.entity.CouponAvailableReq;
import cn.freemud.service.impl.mcoffee.entity.CouponAvailableResp;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
// 测试http://115.159.65.101:8002 线上http://10.51.0.37:8002 // 测试http://115.159.65.101:8002 线上http://10.51.0.37:8002
@FeignClient(name = "COUPON",url="${saas.couponclient.feign.url}") @FeignClient(name = "COUPON",url="${saas.couponadapterclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"}) @RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface CouponClient { public interface CouponClient {
...@@ -53,5 +55,11 @@ public interface CouponClient { ...@@ -53,5 +55,11 @@ public interface CouponClient {
@PostMapping("/coupon/verification/notice") @PostMapping("/coupon/verification/notice")
CouponBaseResponseDto verifyNotice(VerifyNoticeRequestDto verifyNoticeRequestDto); CouponBaseResponseDto verifyNotice(VerifyNoticeRequestDto verifyNoticeRequestDto);
/**
* 麦咖啡校验券是否可用
*/
@PostMapping("/mccafe/getCouponsAvailable")
CouponAvailableResp getCouponsAvailable(CouponAvailableReq req);
} }
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