Commit 96a8ce97 by 徐康

Merge branch 'feature/xukang_20210527_麦咖啡p6v9一键下单'

parents 91b6c184 2bac8396
...@@ -3162,6 +3162,9 @@ public class OrderSdkAdapter { ...@@ -3162,6 +3162,9 @@ public class OrderSdkAdapter {
if (StringUtils.isNotBlank(product.getSplitIndex())){ if (StringUtils.isNotBlank(product.getSplitIndex())){
extInfo.setSplitIndex(product.getSplitIndex()); extInfo.setSplitIndex(product.getSplitIndex());
} }
if (null != product.getProductGroupId()) {
extInfo.setProductGroupId(product.getProductGroupId());
}
extInfo.setStapleFood(product.getStapleFood()); extInfo.setStapleFood(product.getStapleFood());
extInfo.setOriginalGoodsUid(product.getOriginalGoodsUid()); extInfo.setOriginalGoodsUid(product.getOriginalGoodsUid());
......
...@@ -133,6 +133,8 @@ public class CreateOrderProductRequest extends BaseConfig { ...@@ -133,6 +133,8 @@ public class CreateOrderProductRequest extends BaseConfig {
*/ */
private Boolean isFixedProduct; private Boolean isFixedProduct;
private Long productGroupId;
/** /**
* 套餐--6 * 套餐--6
*/ */
......
...@@ -97,6 +97,8 @@ public class OrderProductAddInfoDto extends BaseConfig { ...@@ -97,6 +97,8 @@ public class OrderProductAddInfoDto extends BaseConfig {
*/ */
private String splitIndex; private String splitIndex;
private Long productGroupId;
/** /**
* 虚拟商品发券id * 虚拟商品发券id
*/ */
......
...@@ -61,6 +61,8 @@ public class ShoppingCartConstant { ...@@ -61,6 +61,8 @@ public class ShoppingCartConstant {
public static final int PRODUCT_GROUP_EMPTY= 109; public static final int PRODUCT_GROUP_EMPTY= 109;
public static final String CART_PRODUCT_GROUP_EMPTY_STATE = "您选择的【$spuName】商品有未选商品"; public static final String CART_PRODUCT_GROUP_EMPTY_STATE = "您选择的【$spuName】商品有未选商品";
public static final String CART_PRODUCT_NOT_MET_CONDITIONS = "您选择的【$spuName】不满足购买条件";
/** /**
* 可选商品价格校验失败 * 可选商品价格校验失败
*/ */
......
...@@ -14,7 +14,9 @@ package com.freemud.sdk.api.assortment.shoppingcart.domain; ...@@ -14,7 +14,9 @@ package com.freemud.sdk.api.assortment.shoppingcart.domain;
import lombok.Data; import lombok.Data;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@Data @Data
public class ShoppingCartGoodsResponseVo { public class ShoppingCartGoodsResponseVo {
...@@ -63,6 +65,11 @@ public class ShoppingCartGoodsResponseVo { ...@@ -63,6 +65,11 @@ public class ShoppingCartGoodsResponseVo {
* 前端用来提示的信息 * 前端用来提示的信息
*/ */
private String toastMsg; private String toastMsg;
/**
* 前端用来提示的信息
*/
Map<String, List<String>> toastMsgMap = new HashMap<>();
/** /**
* 购物车中商品价格或有效性是否发生变化 * 购物车中商品价格或有效性是否发生变化
*/ */
......
...@@ -252,116 +252,6 @@ public interface ShoppingCartBaseService { ...@@ -252,116 +252,6 @@ public interface ShoppingCartBaseService {
} }
} }
default BaseResponse<CheckCartRequest> checkAllCartGoodsForMCoffee(CheckCartRequest checkCartRequest) {
ShoppingCartAdapter shoppingCartAdapter = SDKCommonBaseContextWare.getBean(ShoppingCartAdapter.class);
ProductService productService = SDKCommonBaseContextWare.getBean(ProductService.class);
try {
ValidateShopProductRequest validateShopProductRequest = shoppingCartAdapter.getValidateShopProductRequest(checkCartRequest);
com.freemud.application.sdk.api.base.BaseResponse<ValiadShopProductResponse> valiadResponse = productService.validateShopProductAboutReason(validateShopProductRequest);
if (valiadResponse == null || !CartResponseConstant.SUCCESS.getCode().equals(valiadResponse.getCode()) || valiadResponse.getData()==null) {
checkCartRequest.getCartGoodsList().clear();
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
return CartResponseUtil.error(valiadResponse.getMessage(),checkCartRequest);
}
ValiadShopProductResponse validateResult = valiadResponse.getData();
CartGoodsStates cartGoodsStates = new CartGoodsStates();
//非法商品(商品是否存在、商品是否处于上架状态)自动移除,返回前端提示
if (CollectionUtils.isNotEmpty(validateResult.getFailureList())){
List<String> invalidSpu = new ArrayList<>();
List<String> notFoundSpu = new ArrayList<>();
List<String> changePriceSpu = new ArrayList<>();
for (int i = 0; i < validateResult.getFailureList().size(); i++) {
ValiadShopProductResult validaProduct = validateResult.getFailureList().get(i);
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
if (cartGoods.getSkuId().equals(validaProduct.getSkuId())) {
String spuName = null == validaProduct.getProductType() ? (StringUtils.isNotEmpty(cartGoods.getSkuName()) ? cartGoods.getSkuName() :
StringUtils.isNotEmpty(cartGoods.getName()) ? cartGoods.getName() : "") : validaProduct.getProductType().getName();
if (PRODUCT_DOWN == validaProduct.getCode()) {
if (StringUtils.isNotEmpty(spuName)){
invalidSpu.add(spuName);
}
cartGoodsStates.setHasInvalidGoods(true);
cartGoods.setCartGoodsUid(null);
break;
}
if (PRODUCT_NOTFOUND == validaProduct.getCode()) {
if (StringUtils.isNotEmpty(spuName)) {
notFoundSpu.add(spuName);
}
cartGoodsStates.setHasInvalidGoods(true);
cartGoods.setCartGoodsUid(null);
break;
}
if (PRODUCT_PRICE_CHANGE == validaProduct.getCode()) {
if (StringUtils.isNotEmpty(spuName)) {
changePriceSpu.add(spuName);
}
List<ProductBeanDTO> productList = validateResult.getFailureList().stream().filter(f-> f.getCode() == PRODUCT_PRICE_CHANGE).map(ValiadShopProductResult::getProductType).collect(Collectors.toList());
shoppingCartAdapter.updateCartGoodsInfoNew(cartGoods, productList);
break;
}
}
}
}
String toastMsg = "";
if (CollectionUtils.isNotEmpty(invalidSpu)){
toastMsg = toastMsg.concat(CART_PRODUCT_INVALID_STATE.replace("$spuName",StringUtils.join(invalidSpu,",")));
}
if (CollectionUtils.isNotEmpty(notFoundSpu)){
toastMsg = toastMsg.concat(CART_PRODUCT_NOT_FOUND.replace("$spuName",StringUtils.join(notFoundSpu,",")));
}
if (CollectionUtils.isNotEmpty(changePriceSpu)){
toastMsg = toastMsg.concat(CART_PRODUCT_PRICE_CHANGE.replace("$spuName",StringUtils.join(changePriceSpu,",")));
}
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(toastMsg);
setToastMsgIfNotExist(checkCartRequest.getShoppingCartGoodsResponseVo(), ShoppingCartConstant.SHOPPING_CART_GOODS_CHANGE);
checkCartRequest.getCartGoodsList().removeIf(k -> StringUtils.isEmpty(k.getCartGoodsUid()));
}
List<ProductBeanDTO> productList = validateResult.getSuccessList().stream().map(ValiadShopProductResult::getProductType).collect(Collectors.toList());
for (CartGoods cartGoods : checkCartRequest.getCartGoodsList()) {
// 当goodsId为空或商品是商品券时直接跳过
if (StringUtils.isEmpty(cartGoods.getGoodsId()) || Objects.equals(cartGoods.getGoodsType(), GoodsTypeEnum.COUPON_GOODS.getGoodsType())) {
continue;
}
shoppingCartAdapter.updateCartGoodsInfoNew(cartGoods, productList);
}
//校验商品券是否有当前点餐方式
cartGoodsStates = updateSpqCartGoodsInfo(checkCartRequest.getCartGoodsList(), checkCartRequest.getOrderWay(), checkCartRequest.getPartnerId(), checkCartRequest.getTrackingNo(), cartGoodsStates
, checkCartRequest.getStoreId());
// 点餐方式改变商品券发生变动
if (cartGoodsStates != null && cartGoodsStates.isOrderWayFlag()) {
setToastMsgIfNotExist(checkCartRequest.getShoppingCartGoodsResponseVo(), ShoppingCartConstant.ORDER_WAY_CHANGE);
}
//若商品详情赋值有异常,直接移除购物车
if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> StringUtils.isEmpty(cart.getCartGoodsUid()))) {
checkCartRequest.getCartGoodsList().removeIf(k -> StringUtils.isEmpty(k.getCartGoodsUid()));
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
}
// if (checkCartRequest.getCartGoodsList().stream().anyMatch(cart -> cart.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()))) {
// checkCartRequest.getCartGoodsList().removeIf(k -> k.getGoodsType().equals(GoodsTypeEnum.EXCEPTION_GOODS.getGoodsType()));
// checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
// checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_MATERIAL_ERROR);
// }
return CartResponseUtil.success(checkCartRequest);
} catch (Exception e) {
ErrorLog.printErrorLog("assortment-shoppingcart-sdk", checkCartRequest.getTrackingNo(), e.getMessage(), "checkAllCartGoods", checkCartRequest, e, Level.ERROR);
checkCartRequest.getShoppingCartGoodsResponseVo().setChanged(true);
checkCartRequest.getShoppingCartGoodsResponseVo().setToastMsg(ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS);
return CartResponseUtil.error(e.getMessage(),checkCartRequest);
}
}
/** /**
* 更新购物车详细信息 * 更新购物车详细信息
* 并check购物车中商品是否价格变更、是否非法(例如商品下架) * 并check购物车中商品是否价格变更、是否非法(例如商品下架)
......
...@@ -2769,6 +2769,7 @@ public class OrderAdapter { ...@@ -2769,6 +2769,7 @@ public class OrderAdapter {
createOrderProductDemoDto.setClassificationId(cartGoodsDetailDto.getClassificationId()); createOrderProductDemoDto.setClassificationId(cartGoodsDetailDto.getClassificationId());
createOrderProductDemoDto.setClassificationName(cartGoodsDetailDto.getClassificationName()); createOrderProductDemoDto.setClassificationName(cartGoodsDetailDto.getClassificationName());
createOrderProductDemoDto.setSplitIndex(cartGoodsDetailDto.getSplitIndex()); createOrderProductDemoDto.setSplitIndex(cartGoodsDetailDto.getSplitIndex());
createOrderProductDemoDto.setProductGroupId(cartGoodsDetailDto.getProductGroupId());
if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getSpecialExtra())) { if(CollectionUtils.isNotEmpty(cartGoodsDetailDto.getSpecialExtra())) {
createOrderProductDemoDto.setSpecialAttrs(new ArrayList<>()); createOrderProductDemoDto.setSpecialAttrs(new ArrayList<>());
cartGoodsDetailDto.getSpecialExtra().stream().forEach(o -> { cartGoodsDetailDto.getSpecialExtra().stream().forEach(o -> {
......
...@@ -98,7 +98,8 @@ public class WebAspect { ...@@ -98,7 +98,8 @@ public class WebAspect {
} }
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(","));
List<String> mcCafeUnauthorizedUrls = Arrays.asList("/MCoffee/mcCafePaySuccessCallback","/openStoreMCCafeQueryPaymentCallback","/MCoffee/mcCafeRefund", List<String> mcCafeUnauthorizedUrls = Arrays.asList("/MCoffee/mcCafePaySuccessCallback","/openStoreMCCafeQueryPaymentCallback","/MCoffee/mcCafeRefund",
"/maCafeQueryOrders","/mcCafeQueryOrderById","/reminder","/listFreeRider","/mcCafePollingPickUpCode","/mcCafe/statusOperate","/MCoffee/mcCafeRefundNotifyCallback"); "/maCafeQueryOrders","/mcCafeQueryOrderById","/reminder","/listFreeRider","/mcCafePollingPickUpCode","/mcCafe/statusOperate",
"/MCoffee/mcCafeRefundNotifyCallback","mcCafeQueryRecentOrder");
if (!unauthorizedUrls.contains(requestUrl) && StringUtils.isEmpty(userInfo.getUnionId()) if (!unauthorizedUrls.contains(requestUrl) && StringUtils.isEmpty(userInfo.getUnionId())
&& mcCafeUnauthorizedUrls.stream().noneMatch(o -> requestUrl.contains(o))) { && mcCafeUnauthorizedUrls.stream().noneMatch(o -> requestUrl.contains(o))) {
throw new CommonServiceException(CommonResponseResult.USER_UNAUTHORIZED); throw new CommonServiceException(CommonResponseResult.USER_UNAUTHORIZED);
......
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.*;
import cn.freemud.monitorcenter.tools.HealthUtil;
import cn.freemud.service.MCCafeOrderService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.Orderservice;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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;
@Slf4j
@RequestMapping("/order")
@RestController
@Validated
public class McCafeController {
@Autowired
private Orderservice orderservice;
@Autowired
private MCCafeOrderService mcCafeOrderService;
@Autowired
private OrderAdapterService orderAdapterService;
/**
* 麦咖啡创建订单
*/
@ApiAnnotation(logMessage = "createMCCafeOrder")
@PostMapping("/MCoffee/createMCCafeOrder")
public BaseResponse createOrderMCCafe(@Validated @LogParams @RequestBody CreateOrderVo createOrderVo) {
return orderAdapterService.createMCCafeOrder(createOrderVo);
}
/**
* 麦咖啡订单支付成功后通知
*/
@ApiAnnotation(logMessage = "mcCafePaySuccessCallback")
@PostMapping({"/MCoffee/mcCafePaySuccessCallback","/openStoreMCCafeQueryPaymentCallback"})
public String mcCafePaySuccessCallback(@LogParams @RequestBody NewPaysuccessNoticeMessage message) {
return mcCafeOrderService.mcCafePaySuccessCallback(message);
}
/**
* 查询麦咖啡订单列表
*/
@ApiAnnotation(logMessage = "maCafeQueryOrders")
@PostMapping("/maCafeQueryOrders")
public BaseResponse maCafeQueryOrders(@Validated @LogParams @RequestBody McCafeQueryOrderVo queryOrderVo) {
return mcCafeOrderService.mcCafeQueryOrders(queryOrderVo);
}
/**
* 麦咖啡 获取订单详情
*/
@ApiAnnotation(logMessage = "mcCafeQueryOrderById")
@PostMapping("/mcCafeQueryOrderById")
public BaseResponse mcCafeQueryOrderById(@Validated @LogParams @RequestBody MaCafeQueryOrderVo queryOrderVo) {
return mcCafeOrderService.mcCafeQueryOrderById(queryOrderVo);
}
/**
* 麦咖啡用户申请退款
*/
@ApiAnnotation(logMessage = "mcCafeRefund")
@PostMapping("/MCoffee/mcCafeRefund")
public BaseResponse mcCafeRefund(@Validated @LogParams @RequestBody OrderRefundVo orderRefundVo) {
return mcCafeOrderService.orderRefund(orderRefundVo);
}
/**
* 退款回掉通知
*/
@ApiAnnotation(logMessage = "mcCafeRefundNotifyCallback")
@PostMapping("/MCoffee/mcCafeRefundNotifyCallback")
public String mcCafeRefundNotifyCallback(@LogParams @RequestBody RefundNotifyCallbackRequestVo requestVo) {
return mcCafeOrderService.mcCafeRefundNotifyCallback(requestVo);
}
/**
* 根据订单号查询订单状态和取餐码
*/
@ApiAnnotation(logMessage = "mcCafePollingPickUpCode")
@PostMapping("/mcCafePollingPickUpCode")
public BaseResponse mcCafePollingPickUpCode(@Validated @LogParams @RequestBody MaCafeQueryOrderVo vo) {
return mcCafeOrderService.mcCafePollingPickUpCode(vo);
}
/**
* 麦咖啡催单
*/
@ApiAnnotation(logMessage = "reminder")
@PostMapping("/reminder")
public BaseResponse reminder(@Validated @LogParams @RequestBody ReminderVo reminderVo) {
return mcCafeOrderService.reminder(reminderVo);
}
/**
* 麦咖啡根据订单号查询骑手位置
*/
@ApiAnnotation(logMessage = "listFreeRider")
@PostMapping("/listFreeRider")
public BaseResponse listFreeRider(@Validated @LogParams @RequestBody FreeRiderPositionVo vo) {
return mcCafeOrderService.listFreeRider(vo);
}
/**
* 查询麦咖啡最近已完成的一单
*/
@ApiAnnotation(logMessage = "mcCafeQueryRecentOrder")
@PostMapping("/mcCafeQueryRecentOrder")
public BaseResponse mcCafeQueryRecentOrder(@Validated @LogParams @RequestBody McCafeQueryOrderVo queryOrderVo) {
return mcCafeOrderService.mcCafeQueryRecentOrder(queryOrderVo);
}
}
...@@ -97,15 +97,6 @@ public class OrderController { ...@@ -97,15 +97,6 @@ public class OrderController {
} }
/** /**
* 麦咖啡创建订单
*/
@ApiAnnotation(logMessage = "createMCCafeOrder")
@PostMapping("/MCoffee/createMCCafeOrder")
public BaseResponse createOrderMCCafe(@Validated @LogParams @RequestBody CreateOrderVo createOrderVo) {
return orderAdapterService.createMCCafeOrder(createOrderVo);
}
/**
* 扫脸支付下单 * 扫脸支付下单
*/ */
@ApiAnnotation(logMessage = "scanFaceCreateOrder") @ApiAnnotation(logMessage = "scanFaceCreateOrder")
...@@ -142,15 +133,6 @@ public class OrderController { ...@@ -142,15 +133,6 @@ public class OrderController {
} }
/** /**
* 麦咖啡订单支付成功后通知
*/
@ApiAnnotation(logMessage = "mcCafePaySuccessCallback")
@PostMapping({"/MCoffee/mcCafePaySuccessCallback","/openStoreMCCafeQueryPaymentCallback"})
public String mcCafePaySuccessCallback(@LogParams @RequestBody NewPaysuccessNoticeMessage message) {
return mcCafeOrderService.mcCafePaySuccessCallback(message);
}
/**
* 退款回掉通知 * 退款回掉通知
*/ */
@ApiAnnotation(logMessage = "refundNotifyCallback") @ApiAnnotation(logMessage = "refundNotifyCallback")
...@@ -169,15 +151,6 @@ public class OrderController { ...@@ -169,15 +151,6 @@ public class OrderController {
} }
/** /**
* 查询麦咖啡订单列表
*/
@ApiAnnotation(logMessage = "maCafeQueryOrders")
@PostMapping("/maCafeQueryOrders")
public BaseResponse maCafeQueryOrders(@Validated @LogParams @RequestBody McCafeQueryOrderVo queryOrderVo) {
return orderservice.mcCafeQueryOrders(queryOrderVo);
}
/**
* 围餐-预览订单 * 围餐-预览订单
* @param queryOrderVo * @param queryOrderVo
* @return * @return
...@@ -224,15 +197,6 @@ public class OrderController { ...@@ -224,15 +197,6 @@ public class OrderController {
/** /**
* 麦咖啡 获取订单详情
*/
@ApiAnnotation(logMessage = "mcCafeQueryOrderById")
@PostMapping("/mcCafeQueryOrderById")
public BaseResponse mcCafeQueryOrderById(@Validated @LogParams @RequestBody MaCafeQueryOrderVo queryOrderVo) {
return orderservice.mcCafeQueryOrderById(queryOrderVo);
}
/**
* 取消支付订单 * 取消支付订单
*/ */
@ApiAnnotation(logMessage = "cancelPayOrder") @ApiAnnotation(logMessage = "cancelPayOrder")
...@@ -270,24 +234,6 @@ public class OrderController { ...@@ -270,24 +234,6 @@ public class OrderController {
} }
/** /**
* 麦咖啡用户申请退款
*/
@ApiAnnotation(logMessage = "mcCafeRefund")
@PostMapping("/MCoffee/mcCafeRefund")
public BaseResponse mcCafeRefund(@Validated @LogParams @RequestBody OrderRefundVo orderRefundVo) {
return mcCafeOrderService.orderRefund(orderRefundVo);
}
/**
* 退款回掉通知
*/
@ApiAnnotation(logMessage = "mcCafeRefundNotifyCallback")
@PostMapping("/MCoffee/mcCafeRefundNotifyCallback")
public String mcCafeRefundNotifyCallback(@LogParams @RequestBody RefundNotifyCallbackRequestVo requestVo) {
return mcCafeOrderService.mcCafeRefundNotifyCallback(requestVo);
}
/**
* 获取订单排队号 * 获取订单排队号
*/ */
@ApiAnnotation(logMessage = "queueIndex") @ApiAnnotation(logMessage = "queueIndex")
...@@ -373,33 +319,6 @@ public class OrderController { ...@@ -373,33 +319,6 @@ public class OrderController {
} }
/** /**
* 麦咖啡催单
*/
@ApiAnnotation(logMessage = "reminder")
@PostMapping("/reminder")
public BaseResponse reminder(@Validated @LogParams @RequestBody ReminderVo reminderVo) {
return orderservice.reminder(reminderVo);
}
/**
* 麦咖啡根据订单号查询骑手位置
*/
@ApiAnnotation(logMessage = "listFreeRider")
@PostMapping("/listFreeRider")
public BaseResponse listFreeRider(@Validated @LogParams @RequestBody FreeRiderPositionVo vo) {
return orderservice.listFreeRider(vo);
}
/**
* 根据订单号查询订单状态和取餐码
*/
@ApiAnnotation(logMessage = "mcCafePollingPickUpCode")
@PostMapping("/mcCafePollingPickUpCode")
public BaseResponse mcCafePollingPickUpCode(@Validated @LogParams @RequestBody MaCafeQueryOrderVo vo) {
return orderservice.mcCafePollingPickUpCode(vo);
}
/**
* timeOutRefund * timeOutRefund
* @param timeOutOrderVo * @param timeOutOrderVo
* @return * @return
......
...@@ -186,6 +186,7 @@ public class ShoppingCartGoodsDto { ...@@ -186,6 +186,7 @@ public class ShoppingCartGoodsDto {
* 是否是套餐内固定商品 * 是否是套餐内固定商品
*/ */
private Boolean isFixedProduct; private Boolean isFixedProduct;
private Long productGroupId;
/** /**
* 三方商品编号 * 三方商品编号
......
package cn.freemud.entities.vo.mccafe;
import cn.freemud.entities.vo.CartGoods;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* All rights Reserved, Designed By sunary.site
*
* @version v1.0
* @Title: IntelliJ IDEA
* @Package cn.freemud.service.impl.mcoffee.entity
* @Description: 请简单描述下这个类是做什么用的
* @author: yu.sun
* @date: 2021-01-26 09:50:21
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
*/
@Data
public class RecentGoodsInfoVo {
@NotEmpty(message = "spuId不能为空")
private String spuId;
private String skuId;
/**
* 数量
*/
@NotNull(message = "商品数量不可为空")
private Integer qty;
/**
* 商品的spuName
*/
private String spuName;
/**
* 商品的skuName
*/
private String skuName;
/**
* 套餐固定商品
*/
private List<ComboGoodsVo> productComboList;
/**
* 套餐可选商品
*/
private List<ComboGoodsVo> productGroupList;
/**
* 加料
*/
private List<MaterialGoodsVo> productMaterialList;
/**
* 麦咖啡定制属性
*/
private List<SpecialExtra> specialExtra;
@Data
public final static class ComboGoodsVo {
/**
* 麦咖啡多规格商品spuid
*/
private String spuId;
private String skuId;
private String productGroupId;
/**
* 商品的spuName
*/
private String spuName;
/**
* 商品的skuName
*/
private String skuName;
private Integer qty;
private List<SpecialExtra> specialExtra;
/**
* 麦咖啡多规格商品加料
*/
private List<MaterialGoodsVo> productMaterialList;
}
@Data
public final static class MaterialGoodsVo {
/**
* 加料商品ID
*/
private String spuId;
private String spuName;
/**
* 数量
*/
private Integer qty;
/**
* 麦咖啡入机键位
*/
private String customerCode;
}
@Data
public final static class SpecialExtra {
/**
* 属性Id
*/
private String attributeId;
/**
* 属性名
*/
private String attributeName;
private String attributeForeignName;
/**
* 麦咖啡特定属性入机code
*/
private String specialCode;
}
}
...@@ -40,5 +40,19 @@ public interface MCCafeOrderService { ...@@ -40,5 +40,19 @@ public interface MCCafeOrderService {
*/ */
String mcCafeRefundNotifyCallback(RefundNotifyCallbackRequestVo message); String mcCafeRefundNotifyCallback(RefundNotifyCallbackRequestVo message);
BaseResponse mcCafeQueryOrderById(MaCafeQueryOrderVo queryOrderVo);
BaseResponse mcCafeQueryOrders(McCafeQueryOrderVo queryOrderVo);
BaseResponse mcCafePollingPickUpCode(MaCafeQueryOrderVo vo);
BaseResponse reminder(ReminderVo reminderVo);
BaseResponse listFreeRider(FreeRiderPositionVo vo);
/**
* 查询麦咖啡最近已完成的一单
*/
BaseResponse mcCafeQueryRecentOrder(McCafeQueryOrderVo queryOrderVo);
} }
...@@ -127,16 +127,6 @@ public interface Orderservice { ...@@ -127,16 +127,6 @@ public interface Orderservice {
*/ */
BaseResponse queryOrderByConditions(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo); BaseResponse queryOrderByConditions(QueryOrderByConditionsRequestVo queryOrderByConditionsRequestVo);
BaseResponse reminder(ReminderVo reminderVo);
BaseResponse listFreeRider(FreeRiderPositionVo vo);
BaseResponse mcCafeQueryOrderById(MaCafeQueryOrderVo queryOrderVo);
BaseResponse mcCafeQueryOrders(McCafeQueryOrderVo queryOrderVo);
BaseResponse mcCafePollingPickUpCode(MaCafeQueryOrderVo vo);
/** /**
* 通过订单号查询订单详情 * 通过订单号查询订单详情
* *
......
...@@ -21,6 +21,7 @@ import cn.freemud.service.thirdparty.DeliveryFeiginClient; ...@@ -21,6 +21,7 @@ import cn.freemud.service.thirdparty.DeliveryFeiginClient;
import cn.freemud.service.thirdparty.EcologyAdminApplicationClient; import cn.freemud.service.thirdparty.EcologyAdminApplicationClient;
import cn.freemud.service.thirdparty.PosClient; import cn.freemud.service.thirdparty.PosClient;
import cn.freemud.utils.DateTimeUtil; import cn.freemud.utils.DateTimeUtil;
import cn.freemud.utils.ExceptionUtils;
import cn.freemud.utils.LogUtil; import cn.freemud.utils.LogUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -462,19 +463,10 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -462,19 +463,10 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
} }
ecologyAdminApplicationClient.subscribeMessage(request); ecologyAdminApplicationClient.subscribeMessage(request);
} catch (Exception e) { } catch (Exception e) {
ApiLog.info("麦咖啡订阅消息推送失败" + orderId + getExceptionInfo(e)); ApiLog.info("麦咖啡订阅消息推送失败" + orderId + ExceptionUtils.getExceptionInfo(e));
} }
} }
private String getExceptionInfo(Exception e) {
StringBuilder sb = new StringBuilder();
StackTraceElement[] trace = e.getStackTrace();
for (StackTraceElement traceElement : trace) {
sb.append("\tat " + traceElement);
}
return sb.toString();
}
/** /**
* 配送消息推送 * 配送消息推送
*/ */
......
package cn.freemud.utils;
public class ExceptionUtils {
public static String getExceptionInfo(Exception e) {
StringBuilder sb = new StringBuilder();
StackTraceElement[] trace = e.getStackTrace();
for (StackTraceElement traceElement : trace) {
sb.append("\tat " + traceElement);
}
return sb.toString();
}
}
...@@ -84,6 +84,7 @@ public class ShoppingCartMccafeAdapter { ...@@ -84,6 +84,7 @@ public class ShoppingCartMccafeAdapter {
List<ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra> cartGoodsExtras = BeanUtil.convertBeans(comboxGoods.getExtra(), ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra::new); List<ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra> cartGoodsExtras = BeanUtil.convertBeans(comboxGoods.getExtra(), ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra::new);
cartGoodsDetailDto.setExtraList(cartGoodsExtras); cartGoodsDetailDto.setExtraList(cartGoodsExtras);
cartGoodsDetailDto.setSpecialExtra(comboxGoods.getSpecialExtra()); cartGoodsDetailDto.setSpecialExtra(comboxGoods.getSpecialExtra());
cartGoodsDetailDto.setProductGroupId(comboxGoods.getProductGroupId());
//小料 //小料
if (CollectionUtils.isNotEmpty(comboxGoods.getProductMaterialList())) { if (CollectionUtils.isNotEmpty(comboxGoods.getProductMaterialList())) {
List<ShoppingCartGoodsDto.CartGoodsDetailDto.MaterialGoods> materialList = new ArrayList<>(0); List<ShoppingCartGoodsDto.CartGoodsDetailDto.MaterialGoods> materialList = new ArrayList<>(0);
......
...@@ -18,6 +18,8 @@ public class ShoppingCartConstant { ...@@ -18,6 +18,8 @@ public class ShoppingCartConstant {
public final static String SHOPPING_CART_INVALIAD_GOODS="因商家变更了商品,导致选购失败,请刷新门店后重新尝试选购商品"; public final static String SHOPPING_CART_INVALIAD_GOODS="因商家变更了商品,导致选购失败,请刷新门店后重新尝试选购商品";
public final static String SHOPPING_CART_EMPTY_GOODS_LIST="因商品变更或其他原因,导致加购失效,无法结算,请重新尝试选购商品"; public final static String SHOPPING_CART_EMPTY_GOODS_LIST="因商品变更或其他原因,导致加购失效,无法结算,请重新尝试选购商品";
public final static String SHOPPING_CART_GOODS_CHANGE = "因商家变更了商品,导致选购失效,请刷新门店后重新尝试选购商品";
public final static String SHOPPING_CART_INVALID_GOODS_EXIST = "有商品不在售卖状态,请重新提交结算"; public final static String SHOPPING_CART_INVALID_GOODS_EXIST = "有商品不在售卖状态,请重新提交结算";
public final static String SHOPPING_CART_ACTIVITY_CHANGE = "商品价格有变动,将按照最新活动价格计算哦"; public final static String SHOPPING_CART_ACTIVITY_CHANGE = "商品价格有变动,将按照最新活动价格计算哦";
......
...@@ -259,6 +259,7 @@ public class ShoppingCartGoodsDto { ...@@ -259,6 +259,7 @@ public class ShoppingCartGoodsDto {
* 是否是套餐内固定商品 * 是否是套餐内固定商品
*/ */
private Boolean isFixedProduct; private Boolean isFixedProduct;
private Long productGroupId;
/** /**
* 是否限制库存 * 是否限制库存
* 用于创建订单时,是否扣减库存 * 用于创建订单时,是否扣减库存
......
...@@ -2,6 +2,10 @@ package cn.freemud.entities.vo; ...@@ -2,6 +2,10 @@ package cn.freemud.entities.vo;
import lombok.Data; import lombok.Data;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* All rights Reserved, Designed By www.freemud.com * All rights Reserved, Designed By www.freemud.com
* *
...@@ -22,6 +26,10 @@ public class ShoppingCartGoodsBaseResponseVo { ...@@ -22,6 +26,10 @@ public class ShoppingCartGoodsBaseResponseVo {
*/ */
private String toastMsg; private String toastMsg;
/** /**
* 前端用来提示的信息
*/
Map<String, List<String>> toastMsgMap = new HashMap<>();
/**
* 购物车中商品价格或有效性是否发生变化 * 购物车中商品价格或有效性是否发生变化
*/ */
private Boolean changed; private Boolean changed;
......
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