Commit 90fa0485 by ping.wu

Merge branches 'develop' and 'feature-yu.sun-material-20201030' of…

Merge branches 'develop' and 'feature-yu.sun-material-20201030' of http://gitlab.freemud.com/order-group-application/order-group into develop

# Conflicts:
#	assortment-ordercenter-sdk/pom.xml
#	assortment-ordercenter-sdk/readme.md
#	assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
#	order-application-service/pom.xml
#	order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
#	ordercenter-sdk/pom.xml
#	ordercenter-sdk/readme.md
#	shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/ActivityCalculationDiscountRequestDto.java
#	shopping-cart-application-service/src/main/java/cn/freemud/entities/dto/activity/ActivityDiscountsDto.java
#	shopping-cart-application-service/src/main/java/cn/freemud/entities/vo/ShoppingCartInfoRequestVo.java
#	shopping-cart-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/mcoffee/ShoppingCartMCoffeeServiceImpl.java
parents d915f195 5b116545
......@@ -806,6 +806,8 @@ public class OrderSdkAdapter {
accountBean.setSequence(orderSettlementResp.getProductSeq());
accountBean.setType(getOldOrderAccountType(orderSettlementResp.getSettlementType()));
accountBean.setAddInfo(orderSettlementResp.getExtInfo());
// accountBean.setAddInfo("");
accountBean.setAddInfo(orderSettlementResp.getExtInfo());
accountBean.setPlatformDiscountAmount(orderSettlementResp.getPlatformDiscountAmount());
accountBean.setShopDiscountAmount(orderSettlementResp.getShopDiscountAmount());
accountList.add(accountBean);
......
......@@ -17,7 +17,8 @@ public enum GoodsTypeEnum {
COMMON_GOODS(1, "正常商品"),
COUPON_GOODS(2, "商品券"),
SET_MEAL_GOODS(3,"套餐商品"),
HG_COUPON_GOODS(7, "换购券"),
SET_MEAL_GOODS(3, "套餐商品"),
SKU_GOODS(4, "sku商品"),
SPU_GOODS(5, "spu商品"),
EXCEPTION_GOODS(99, "异常商品:商品菜单变化导致和购物车不商品匹配");
......
......@@ -380,5 +380,9 @@ public class CartGoods {
* 购物车一行商品的总现价
*/
private Long amount;
/**
* 麦咖啡入机键位
*/
private String keyWord;
}
}
......@@ -80,16 +80,6 @@ public interface ShoppingCartBaseService {
BaseResponse<List<CartGoods>> getCartGoodsList(CartParamDto cartParamDto, String trackingNo);
/**
* 获取购物车商品代金券
*
* @param cartParamDto
* @return
*/
default BaseResponse<String> getCartCouponCode(CartParamDto cartParamDto, String trackingNo) {
return null;
}
/**
* 设置购物车商品行集合信息
*
* @param cartParamDto
......@@ -191,7 +181,7 @@ public interface ShoppingCartBaseService {
CartGoodsStates cartGoodsStates = new CartGoodsStates();
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
// 当goodsId为空或商品是商品券时直接跳过
if (StringUtils.isEmpty(cartGoods.getGoodsId()) || Objects.equals(cartGoods.getGoodsType(), GoodsTypeEnum.COUPON_GOODS.getGoodsType())) {
if (StringUtils.isEmpty(cartGoods.getGoodsId()) || Objects.equals(cartGoods.getGoodsType(), GoodsTypeEnum.COUPON_GOODS.getGoodsType()) || Objects.equals(cartGoods.getGoodsType(), GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType())) {
continue;
}
shoppingCartAdapter.updateCartGoodsInfoNew(cartGoods, productList);
......
......@@ -92,7 +92,7 @@ public class OrderCallBackMQService {
//上报发票信息
sendInvoiceReportMQ(body);
//未支付超时关单,发送队列冲正积分、券码等,停车场订单走单独逻辑
if (checkParkingOrders(orderInfoReqs)) {
if (checkParkingOrders(JSONObject.parseObject(body.getContent(), OrderInfoReqs.class))) {
revertParkingOrders(body);
}else{
revert(body);
......
......@@ -40,6 +40,7 @@ import cn.freemud.redis.RedisCache;
import cn.freemud.request.wechat.dto.SignMessageBuilder;
import cn.freemud.service.impl.OrderCommonService;
import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
......@@ -2317,7 +2318,8 @@ public class OrderAdapter {
return createOrderProductDemoDto;
}
public CreateOrderProductRequest convent2MCCafeOrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
// public CreateOrderProductRequest convent2MCCafeOrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto) {
public CreateOrderProductRequest convent2MCCafeOrderProductDemo(ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto, Integer productType) {
CreateOrderProductRequest createOrderProductDemoDto = new CreateOrderProductRequest();
createOrderProductDemoDto.setProductId(cartGoodsDetailDto.getSpuId());
createOrderProductDemoDto.setProductName(cartGoodsDetailDto.getSpuName());
......@@ -2329,6 +2331,7 @@ public class OrderAdapter {
} else {
createOrderProductDemoDto.setPrice(cartGoodsDetailDto.getOriginalPrice());
}
// createOrderProductDemoDto.setPrice(cartGoodsDetailDto.getOriginalPrice());
createOrderProductDemoDto.setSalePrice(cartGoodsDetailDto.getOriginalPrice());
createOrderProductDemoDto.setTotalDiscountAmount(cartGoodsDetailDto.getTotalDiscountAmount() == null ? 0 : cartGoodsDetailDto.getTotalDiscountAmount().longValue());
createOrderProductDemoDto.setNumber(cartGoodsDetailDto.getQty());
......@@ -3551,4 +3554,10 @@ public class OrderAdapter {
}
return payChannelName;
}
public DeleteOrderDto convent2DeleteOrderDto(String oId) {
DeleteOrderDto deleteOrderDto = new DeleteOrderDto();
deleteOrderDto.setOrderId(oId);
return deleteOrderDto;
}
}
......@@ -219,6 +219,15 @@ public class OrderController {
}
/**
* 取消支付删除订单
*/
@ApiAnnotation(logMessage = "deleteOrderById")
@PostMapping("/deleteOrderById")
public BaseResponse deleteOrderById(@Validated @LogParams @RequestBody DeleteOrderVo deleteOrderVo) {
return orderservice.deleteOrderById(deleteOrderVo);
}
/**
* 用户申请退款
*/
@ApiAnnotation(logMessage = "refund")
......
......@@ -54,7 +54,7 @@ public interface Orderservice {
* @param oid 订单ID
* @return
*/
BaseResponse queryOrderById(Integer operation,String sessionId, String oid, String partnerId,String channel);
BaseResponse queryOrderById(Integer operation, String sessionId, String oid, String partnerId, String channel);
/**
* 支付取消删除订单
......@@ -62,6 +62,11 @@ public interface Orderservice {
BaseResponse deleteOrder(DeleteOrderVo deleteOrderVo);
/**
* 支付取消删除订单
*/
BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo);
/**
* 订单申请退款
*/
BaseResponse orderRefund(OrderRefundVo orderRefundVo);
......
......@@ -1476,6 +1476,44 @@ public class OrderServiceImpl implements Orderservice {
}
@Override
public BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo) {
if (StringUtils.isBlank(deleteOrderVo.getOid())) {
return ResponseUtil.error(ResponseResult.PARAMETER_MISSING.getCode(), "oid不能为空");
}
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(deleteOrderVo.getOid());
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
String string = JSONObject.toJSONString(queryOrderByIdResponse);
JSONObject jsonObject = JSONObject.parseObject(string);
QueryOrderByIdResponseDto responseDto = jsonObject.toJavaObject(QueryOrderByIdResponseDto.class);
if (!RESPONSE_SUCCESS_CODE.equals(responseDto.getErrcode()) || responseDto.getData() == null) {
return ResponseUtil.error(ResponseResult.ORDER_QUERYORDER_ERROR);
}
OrderBean orderBean = responseDto.getData();
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除");
}
if (!OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR.getCode(), "订单状态不允许删除");
}
DeleteOrderDto deleteOrderDto = orderAdapter.convent2DeleteOrderDto(deleteOrderVo.getOid());
//
DeleteOrderRequest var1 = new DeleteOrderRequest();
var1.setOrderId(deleteOrderDto.getOrderId());
var1.setTrackingNo(LogTreadLocal.getTrackingNo());
var1.setOperator("未支付删除");
BaseOrderResponse baseOrderResponse = orderCenterSdkService.deleteOrder(var1);
if (!RESPONSE_SUCCESS_CODE.equals(baseOrderResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER_DELETE_ERROR);
}
// TODO: 2019/9/10 删除订单通知
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
return ResponseUtil.success();
}
@Override
public BaseResponse orderRefund(OrderRefundVo orderRefundVo) {
if (StringUtils.isEmpty(orderRefundVo.getReason())) {
orderRefundVo.setReason("退款");
......
......@@ -20,4 +20,10 @@
| 1.4.35-SNAPSHOT | 麦咖啡| 谌会阳 |2020-08-08
| 1.4.36-SNAPSHOT | 修复queryRelatedOrderByCode反序列化报错| 肖家炜 |2020-08-25
| 1.4.37-SNAPSHOT | 麦咖啡汇集回调,调用基础服务方法 | 徐康 | 2020-09-02 |
| 1.4.38-SNAPSHOT | 麦咖啡加料 | 徐康 | 2020-09-28 |
\ No newline at end of file
| 1.4.38-SNAPSHOT | 麦咖啡加料 | 徐康 | 2020-09-28 |
| 1.3.11.RELEASE | 新增常量类转化 | 张志恒 | 2020-08-04 |
| 1.3.12.RELEASE | 加料商品 | 梁崇福 | 2020-08-24 |
| 1.3.13.RELEASE | 麦咖啡 | 徐康 | 2020-09-07 |
| 1.3.14.RELEASE | 修复查询订单时transId为null的问题 | 肖家炜 | 2020-09-08 |
| 1.3.15.RELEASE | 停车场订单撤单 | 张志恒 | 2020-09-28 |
| 1.3.16.RELEASE | 麦咖啡多规格 | 徐康 | 2020-10-09 |
......@@ -497,7 +497,10 @@ public class ShoppingCartConvertAdapter {
}
ValidateShopProductType productType = new ValidateShopProductType();
productType.setSpuId(cartGoods.getSpuId());
productType.setSkuId(ObjectUtils.equals(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.SKU_GOODS.getGoodsType(), cartGoods.getGoodsType()) ? cartGoods.getSkuId() : cartGoods.getSpuId());
// 多规格商品券
productType.setSkuId((ObjectUtils.equals(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.SKU_GOODS.getGoodsType(), cartGoods.getGoodsType())
|| ObjectUtils.equals(com.freemud.sdk.api.assortment.shoppingcart.constant.GoodsTypeEnum.COUPON_GOODS.getGoodsType(), cartGoods.getGoodsType()))
? cartGoods.getSkuId() : cartGoods.getSpuId());
// 应产品要求
// 普通商品,取商品的finalePrice(普通商品售价);套餐商品,取originalPrice(套餐价格)
productType.setPrice(cartGoods.getFinalPrice() == null ? 0 : cartGoods.getFinalPrice().intValue());
......@@ -695,7 +698,7 @@ public class ShoppingCartConvertAdapter {
comboxGoods.setTax(isComboxGoods ? productComboType.getTax() : groupDetailType.getTax());
comboxGoods.setTaxId(isComboxGoods ? productComboType.getTaxId() : groupDetailType.getTaxId());
//套餐内商品加料
// TODO: 2020/10/22 套餐内可选商品加料,暂无
if(CollectionUtils.isNotEmpty(comboxGoods.getProductMaterialList())){
List<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods> productMaterialList = new ArrayList<>();
com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods materialGoods = new com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods();
......@@ -727,7 +730,10 @@ public class ShoppingCartConvertAdapter {
}
//提取加料信息
List<String> materialSpu = new ArrayList<>();
List<ProductBeanDTO.ProductGroupType.GroupDetailType> groupDetail = spuProduct.getAdditionalGroupList().get(0).getGroupDetail();
List<ProductBeanDTO.ProductGroupType.GroupDetailType> groupDetail = new ArrayList<>();
for (ProductBeanDTO.ProductGroupType productGroupType : spuProduct.getAdditionalGroupList()){
groupDetail.addAll(productGroupType.getGroupDetail());
}
HashMap<String, ProductBeanDTO.ProductGroupType.GroupDetailType> materialHash = new HashMap<>();
for (ProductBeanDTO.ProductGroupType.GroupDetailType groupDetailType : groupDetail) {
materialHash.put(groupDetailType.getProductId(), groupDetailType);
......@@ -755,6 +761,7 @@ public class ShoppingCartConvertAdapter {
//原行单价*数量
material.setOriginalAmount(detail.getProductFinalPrice().longValue() * cartGoods.getQty());
material.setOriginalPrice(detail.getProductFinalPrice().longValue());
material.setKeyWord(materialGoods.getKeyWord());
materialGoodsList.add(material);
materialAmount += detail.getProductFinalPrice().longValue() * cartGoods.getQty();
originalMaterAmount += detail.getProductFinalPrice().longValue() * cartGoods.getQty();
......@@ -907,28 +914,25 @@ public class ShoppingCartConvertAdapter {
//套餐内商品加料
if(CollectionUtils.isNotEmpty(comboxGoods.getProductMaterialList())){
if (CollectionUtils.isNotEmpty(productBeanDTO.getAdditionalGroupList())) {
List<ProductBeanDTO.ProductGroupType.GroupDetailType> groupDetail = productBeanDTO.getAdditionalGroupList().get(0).getGroupDetail();
ProductBeanDTO.ProductGroupType.GroupDetailType groupDetailType1 = null;
for (com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods productMaterialList :comboxGoods.getProductMaterialList()){
List<ProductBeanDTO.ProductGroupType.GroupDetailType> groupDetail = new ArrayList<>();
for (ProductBeanDTO.ProductGroupType productGroupType : productBeanDTO.getAdditionalGroupList()){
groupDetail.addAll(productGroupType.getGroupDetail());
}
List<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods> productMaterialList = new ArrayList<>();
for (com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods productMaterial :comboxGoods.getProductMaterialList()){
for (ProductBeanDTO.ProductGroupType.GroupDetailType groupDetailType : groupDetail){
if(groupDetailType.getProductId().equals(productMaterialList.getSpuId())){
groupDetailType1 = groupDetailType;
break;
if(groupDetailType.getProductId().equals(productMaterial.getSpuId()) && productMaterial.getAmount() == null){
productMaterial.setSpuId(groupDetailType.getProductId());
productMaterial.setAmount(groupDetailType.getProductPrice().longValue());
productMaterial.setFinalPrice(groupDetailType.getProductFinalPrice().longValue());
productMaterial.setOriginalAmount(groupDetailType.getProductPrice().longValue());
productMaterial.setOriginalPrice(groupDetailType.getProductPrice().longValue());
productMaterial.setSpuName(groupDetailType.getProductName());
productMaterial.setKeyWord(productMaterial.getKeyWord());
productMaterialList.add(productMaterial);
}
}
}
if(groupDetailType1 == null){
return;
}
List<com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods> productMaterialList = new ArrayList<>();
com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods materialGoods = new com.freemud.sdk.api.assortment.shoppingcart.domain.CartGoods.MaterialGoods();
materialGoods.setSpuId(groupDetailType1.getProductId());
materialGoods.setAmount(groupDetailType1.getProductPrice().longValue());
materialGoods.setFinalPrice(groupDetailType1.getProductFinalPrice().longValue());
materialGoods.setOriginalAmount(groupDetailType1.getProductPrice().longValue());
materialGoods.setOriginalPrice(groupDetailType1.getProductPrice().longValue());
materialGoods.setSpuName(groupDetailType1.getProductName());
productMaterialList.add(materialGoods);
comboxGoods.setProductMaterialList(productMaterialList);
}
}
......
......@@ -157,10 +157,14 @@ public class ActivityCalculationDiscountRequestDto {
*/
private Integer goodsQuantity;
/**
* 加料
* 加料
*/
private Long originalPrice;
/**
* 加料现价
*/
private Integer nowPrice;
/**
* 1 :小料、2:可选搭配
*/
private int type;
......
......@@ -206,6 +206,10 @@ public class ActivityCalculationDiscountResponseDto {
*/
private String artNo;
/**
* 小料节点
*/
private List<GoodsMaterial> smallMaterial;
@Data
public static class GoodsDiscount {
......@@ -240,6 +244,38 @@ public class ActivityCalculationDiscountResponseDto {
*/
private Integer actualGoodsNumber;
}
@Data
public static class GoodsMaterial{
/**
* 子商品类型:1-小料;2-可选商品
*/
private Integer type;
/**
* 小料商品ID
*/
private String goodsId;
/**
* 小料数量
*/
private Integer goodsQuantity;
/**
* 商品原价(单位:分)
*/
private Integer originalPrice;
/**
* 商品现价(单位:分)
*/
private Integer nowPrice;
/**
* 分摊到商品上的优惠总金额
*/
private Integer discountAmount;
/**
* 商品实付金额
*/
private Integer realAmount;
}
}
@Data
......
package cn.freemud.entities.dto;
import cn.freemud.entities.vo.CartGoods;
import lombok.Data;
import java.util.List;
@Data
public class CheckSpqInfoResponseDto {
private String spuId;
......@@ -26,4 +29,7 @@ public class CheckSpqInfoResponseDto {
private String couponCode;
private Long price;
private String picture;
private String defaultSpecId;
private String defaultSpecName;
private List<CartGoods.CartGoodsExtra> extras;
}
......@@ -301,6 +301,8 @@ public class ShoppingCartGoodsDto {
* 商品行优惠总金额=数量*单个商品优惠金额
*/
private Integer totalDiscountAmount;
private String keyWord;
/**
* 当前商品享受的促销活动
*/
......
......@@ -376,6 +376,9 @@ public class CartGoods {
if (CollectionUtils.isNotEmpty(goods.getSpecialExtra())) {
goods.getSpecialExtra().stream().sorted(Comparator.comparing(SpecialExtra::getAttributeId)).forEach(e -> originalString.append(e.getAttributeId()));
}
if (CollectionUtils.isNotEmpty(goods.getProductMaterialList())) {
goods.getProductMaterialList().stream().sorted(Comparator.comparing(MaterialGoods::getSpuId)).forEach(e -> originalString.append(e.getSpuId()));
}
}
}
if (CollectionUtils.isNotEmpty(productGroupList)) {
......@@ -404,6 +407,9 @@ public class CartGoods {
if (CollectionUtils.isNotEmpty(goods.getSpecialExtra())) {
goods.getSpecialExtra().stream().sorted(Comparator.comparing(SpecialExtra::getAttributeId)).forEach(e -> currentString.append(e.getAttributeId()));
}
if (CollectionUtils.isNotEmpty(goods.getProductMaterialList())) {
goods.getProductMaterialList().stream().sorted(Comparator.comparing(MaterialGoods::getSpuId)).forEach(e -> currentString.append(e.getSpuId()));
}
}
}
if (CollectionUtils.isNotEmpty(cartGoods.getProductGroupList())) {
......@@ -467,6 +473,10 @@ public class CartGoods {
*/
private String spuId;
/**
* 加料组id(对应入机键位)
*/
private String groupId;
/**
* 加料名称
*/
private String spuName;
......@@ -486,5 +496,10 @@ public class CartGoods {
* 购物车一行商品的现价*数量
*/
private Long amount;
/**
* 麦咖啡入机键位
*/
private String keyWord;
}
}
......@@ -45,4 +45,7 @@ public class GetProductsVo {
* 分类名称
*/
private String categoryName;
private String defaultSpecId;
private String defaultSpecName;
private List<CartGoods.CartGoodsExtra> extra;
}
\ No newline at end of file
......@@ -20,4 +20,8 @@ public class MaterialRequestVo {
* 加料商品ID
*/
private String spuId;
/**
* 加料商品组ID
*/
private String groupId;
}
......@@ -126,7 +126,7 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
}
/**
* 运费卡券
* 运费券code
*/
private String freightCouponCode;
......
......@@ -60,6 +60,9 @@ public enum ResponseResult {
STORE_NOT_ENABLE_COLLECT_GOODS("43011", "门店不支持到店"),
STORE_MALL_NOT_FOUND("43012", "商城门店不存在"),
STORE_DELIVERY_AMOUNT_ERROR("43013", "配送费错误"),
//麦咖啡专用提示
CART_STORE_CLOSE("43014","您选择的【$storeName】门店已关闭,请选择其他门店。"),
CART_STORE_REST("43015","您选择的【$storeName】门店已打烊,请选择其他门店。"),
/**
* 购物车状态码
......@@ -88,11 +91,15 @@ public enum ResponseResult {
SHOPPING_CART_COUPON_USED("44021", "优惠券已加入餐盘"),
SHOPPING_CART_GOODS_COUPON_CAN_NOT_USE("44022", "已加入同样优惠券,第二张暂不可用"),
SHOPPING_CART_LIMIT_ADD("44025", "加购数量超过限制"),
SHOPPING_CART_GOODS_CHECK_ERROR("44023", "当前餐盘中没有可用券的饮品"),
SHOPPING_CART_PRODUCT_CAN_NOT_USE("44023", "商品不可用"),
SHOPPING_CART_COUPON_CAN_NOT_USE("44024", "商品券不可用"),
SHOPPING_CART_HG_COUPON_NOT_EXIST("44027", "换购券不存在"),
SHOPPING_CART_LIMIT_ADD("44025", "加购数量超过限制"),
// SHOPPING_CART_GOODS_CHECK_ERROR("44023", "当前餐盘中没有可用券的饮品"),
SHOPPING_CART_GOODS_CHECK_ERROR("44028", "当前餐盘中没有可用券的饮品"),
// SHOPPING_CART_PRODUCT_CAN_NOT_USE("44023", "商品不可用"),
// SHOPPING_CART_COUPON_CAN_NOT_USE("44024", "商品券不可用"),
/**
* 订单状态码
*/
......
......@@ -149,7 +149,7 @@ public interface ShoppingCartNewService {
CouponService couponService = SDKCommonBaseContextWare.getBean(CouponService.class);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = couponService.checkSpqInfo(checkSpqInfoRequestDto, goodsId);
if (checkSpqInfoResponseDto == null) {
throw new ServiceException(ResponseResult.SHOPPING_CART_COUPON_NOT_EXIST);
throw new ServiceException(ResponseResult.SHOPPING_CART_HG_COUPON_NOT_EXIST);
}
productIds.add(Long.parseLong(checkSpqInfoResponseDto.getSkuId()));
spuId2 = checkSpqInfoResponseDto.getSkuId();
......
......@@ -213,7 +213,7 @@ public class AssortmentSdkService {
checkCartRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
checkCartRequest.setMenuType(BusinessTypeEnum.getByType(menuType).getCode());
BaseResponse<CheckCartRequest> baseResponse ;
baseResponse= shoppingCartService.checkAllCartGoodsForMCoffee(checkCartRequest);
baseResponse= shoppingCartService.checkAllCartGoodsNew(checkCartRequest);
if (baseResponse == null) {
return null;
}
......
......@@ -91,6 +91,9 @@ public class CouponPromotionService implements IPromotionService {
cartGoods.setQty(1);
cartGoods.setCouponCode(checkSpqInfoResponseDto.getCouponCode());
cartGoods.setSpuName(checkSpqInfoResponseDto.getSpuName());
cartGoods.setSpecProductId(checkSpqInfoResponseDto.getDefaultSpecId());
cartGoods.setSubName(checkSpqInfoResponseDto.getDefaultSpecName());
cartGoods.setExtra(checkSpqInfoResponseDto.getExtras());
if (GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Goods discountGoods = calculationDiscountResult.getGoods()
.stream()
......@@ -102,8 +105,8 @@ public class CouponPromotionService implements IPromotionService {
} else {
cartGoods.setAmount(checkSpqInfoResponseDto.getPrice());
}
cartGoods.setOriginalAmount(checkSpqInfoResponseDto.getPrice());
}
cartGoods.setOriginalAmount(checkSpqInfoResponseDto.getPrice());
}
}
}
......
......@@ -732,7 +732,7 @@ public class CouponServiceImpl implements CouponService {
}
}
if (CollectionUtils.isNotEmpty(couPonstoreIds) && !couPonstoreIds.contains(storeId)) {
// return null;
return null;
}
......@@ -757,6 +757,9 @@ public class CouponServiceImpl implements CouponService {
dto.setSkuId(productsVo.getSkuId());
dto.setSkuName(StringUtils.isNotBlank(productsVo.getSkuName()) ? productsVo.getSkuName() : productsVo.getSpuName());
dto.setPicture(productsVo.getSpuPicture());
dto.setDefaultSpecName(productsVo.getDefaultSpecName());
dto.setDefaultSpecId(productsVo.getDefaultSpecId());
dto.setExtras(productsVo.getExtra());
log.info("dto***" + dto);
return dto;
}
......
......@@ -18,6 +18,7 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.GetMenuResponseDto.DataBean.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean;
import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.GetProductsVo;
import cn.freemud.enums.ProductInfoType;
import cn.freemud.enums.ResponseResult;
......@@ -32,6 +33,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.gson.Gson;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -201,7 +203,26 @@ public class ItemServiceImpl implements ItemService {
String picture = CollectionUtils.isNotEmpty(product.getProductPictureList())
? product.getProductPictureList().get(0).getUrl() : product.getPicture();
getProductsVo.setSpuPicture(picture);
getProductsVo.setStatus(product.getStatus());
//getProductsVo.setStatus(product.getStatus());
if (CollectionUtils.isNotEmpty(product.getProductAttributeGroupList())
&& CollectionUtils.isNotEmpty(product.getProductAttributeGroupList().get(0).getAttributeValues())) {
List<CartGoods.CartGoodsExtra> extras = new ArrayList<>();
List<String> specId = new ArrayList<>();
List<String> specName = new ArrayList<>();
for (ProductListDto.DataBean.ProductAttributeGroupListBean bean : product.getProductAttributeGroupList()) {
for (ProductListDto.DataBean.ProductAttributeGroupListBean.AttributeValueBean attr : bean.getAttributeValues()) {
CartGoods.CartGoodsExtra extra = new CartGoods.CartGoodsExtra();
extra.setAttributeId(attr.getAttributeId());
extra.setAttributeName(attr.getAttributeValue());
specName.add(attr.getAttributeValue());
specId.add(attr.getAttributeId());
break;
}
}
getProductsVo.setExtra(extras);
getProductsVo.setDefaultSpecName(StringUtils.join(specName, "/"));
getProductsVo.setDefaultSpecId(StringUtils.join(specId, "/"));
}
resultMap.put(skuProductBean.getSkuId(), getProductsVo);
}
});
......
......@@ -160,7 +160,7 @@ public class SetMealServiceImpl implements IPromotionService {
return number - cartGoods.getQty() < 0 ? "该商品限" + number + "份优惠 超出按照原价计算哦" : "";
} else {
cartGoods.setAmount((cartGoods.getFinalPrice() + productGroupAmount) * cartGoods.getQty());
return "该商品限" + goodsMap.get(cartGoods.getGoodsId()).getDiscounts().get(0).getActualGoodsNumber() + "份优惠 超出按照原价计算哦";
return "";
}
}
}
......@@ -248,6 +248,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
//校验券是否有效
if (StringUtils.isNotBlank(skuId)) {
spuId2 = validCoupon(partnerId, storeId, spuId, productIds, BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode(), skuId);
cartGoods.setGoodsId(spuId);
} else {
spuId2 = validCoupon(partnerId, storeId, spuId, productIds, BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode());
}
......@@ -286,9 +287,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult
=getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,userLoginInfoDto.getWxAppid(),orderType,assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount);
sendGoodsQtyCheck(productsCount,appId,partnerId, userId, storeId,tableNumber, oldCartGoodsList,shoppingCartBaseService,calculationDiscountResult.getSendGoods());
= getCalculationDiscountResult(menuType, partnerId, storeId, userId, appId, userLoginInfoDto.getWxAppid(), orderType, assortmentCustomerInfoVo.isMemberPaid(), allCartGoodsList, new ArrayList(), new ArrayList<>(), null, deliveryAmount);
if (calculationDiscountResult != null && CollectionUtils.isNotEmpty(calculationDiscountResult.getSendGoods())) {
sendGoodsQtyCheck(productsCount, appId, partnerId, userId, storeId, tableNumber, oldCartGoodsList, shoppingCartBaseService, calculationDiscountResult.getSendGoods());
}
// 当商品数量被设为0时
if (Objects.equals(cartGoods.getQty(), 0)) {
assortmentSdkService.updateGoodsQtyBySdk(partnerId, userId, storeId, cartGoods.getCartGoodsUid(), 0, "", shoppingCartBaseService);
......@@ -778,7 +780,12 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if (checkSpqInfoResponseDto == null) {
cartGoodsList.remove(i);
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, null, null, this.shoppingCartBaseService);
throw new ServiceException(ResponseResult.SHOPPING_CART_COUPON_NOT_EXIST);
if (GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
throw new ServiceException(ResponseResult.SHOPPING_CART_HG_COUPON_NOT_EXIST);
} else {
throw new ServiceException(ResponseResult.SHOPPING_CART_COUPON_NOT_EXIST);
}
}
validCouponMap.put(spqId, checkSpqInfoResponseDto);
cartGoods.setName(checkSpqInfoResponseDto.getCouponName());
......
......@@ -76,6 +76,8 @@ public class CalculationServiceImpl {
private SetMealCalculation setMealCalculation;
@Autowired
private MaterialCalculation materialCalculation;
@Autowired
private ShoppingCartConvertAdapter shoppingCartConvertAdapter;
/**
......@@ -106,6 +108,8 @@ public class CalculationServiceImpl {
//套餐
setMealCalculation.updateShoppingCartGoodsDiscount(calculationDiscount,cartGoodsList,shoppingCartGoodsResponseVo);
//加料
materialCalculation.updateShoppingCartGoodsApportion(calculationDiscount,cartGoodsList);
return calculationDiscount;
}
......@@ -420,7 +424,8 @@ public class CalculationServiceImpl {
material.setType(1);
material.setGoodsId(materialGoods.getSpuId());
material.setGoodsQuantity(cartGoods.getQty());
material.setOriginalPrice(materialGoods.getFinalPrice());
material.setOriginalPrice(materialGoods.getOriginalPrice());
material.setNowPrice(materialGoods.getFinalPrice().intValue());
materials.add(material);
}
}
......
......@@ -182,7 +182,9 @@ public class CouponDiscountCalculation {
}
//商品券键位编号为空
if(StringUtils.isBlank(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo())){
throw new ServiceException(ResponseResult.SHOPPING_CART_SEAT_EMPTY);
//直接抛出异常导致同一个 普通商品 和万能券商品 校验有问题,故促销未返回,默认为空
// throw new ServiceException(ResponseResult.SHOPPING_CART_SEAT_EMPTY);
cartGoods.setCustomerCode("");
}
cartGoods.setCustomerCode(goodsMap.get(cartGoods.getCartGoodsUid()).getArtNo());
}
......
package cn.freemud.service.impl.mcoffee.entity;
import lombok.Data;
/**
* 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 MCoffeeProductIdsVo {
private String spuId;
private String skuId;
}
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