Commit 9750797d by ping.wu

下单接口优化,StoreResponse.BizVO对象统一

parent b93d453c
......@@ -13,12 +13,9 @@
package cn.freemud.adapter;
import cn.freemud.base.constant.Version;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.order.CreateOrderDto;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.PremiumExchangeResponseVo;
import cn.freemud.enums.*;
import cn.freemud.utils.PropertyConvertUtil;
import cn.freemud.entities.dto.ActivityCancelStockRequestDto;
import cn.freemud.entities.dto.CouponCodeVerificationProductDto;
import cn.freemud.enums.OrderAccountType;
import com.freemud.application.sdk.api.ordercenter.entities.v1.AccountBeanV1;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1;
......
......@@ -3,6 +3,7 @@ package cn.freemud.adapter;
import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.CustomerScoreConstant;
import cn.freemud.entities.bo.CreateOrderBo;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.pay.CombPayResponse;
......@@ -439,7 +440,7 @@ public class CreateOrderAdapter {
CreateOrderBaseVo createOrderVo = createOrderBo.getCreateOrderBaseVo();
ShoppingCartGoodsDto shoppingCartGoodsDto = createOrderBo.getShoppingCartGoodsDto();
AssortmentCustomerInfoVo userLoginInfoDto = createOrderBo.getUserLoginInfoDto();
StoreResponse.BizVO storeResponseDto = createOrderBo.getStoreResponseDto();
StoreResponseDto storeResponseDto = createOrderBo.getStoreResponseDto();
CreateOrderRequest request = new CreateOrderRequest();
request.setPartnerId(createOrderVo.getPartnerId());
......@@ -653,7 +654,7 @@ public class CreateOrderAdapter {
* @return 订单金额
*/
private Long updateOrderItemsAndSettlements(List<OrderItemCreateReq> orderItemList, List<OrderSettlementCreateReq> orderSettlementCreateReqList, List<OrderCostCreateReq> orderCostCreateReqs,
CreateOrderBaseVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto, StoreResponse.BizVO storeResponseDto, Map<String, GetProductsVo> productsMap) {
CreateOrderBaseVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto, StoreResponseDto storeResponseDto, Map<String, GetProductsVo> productsMap) {
Long originalAmount = 0L;
// 更新订单费用信息
originalAmount = convertCreateOrderCost(originalAmount, orderSettlementCreateReqList, orderCostCreateReqs, createOrderVo, shoppingCartGoodsDto, storeResponseDto);
......@@ -1292,7 +1293,7 @@ public class CreateOrderAdapter {
}
private Long convertCreateOrderCost(Long originalAmount, List<OrderSettlementCreateReq> orderSettlementCreateReqList, List<OrderCostCreateReq> orderCostCreateReqs,
CreateOrderBaseVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto, StoreResponse.BizVO storeResponseDto) {
CreateOrderBaseVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto, StoreResponseDto storeResponseDto) {
boolean hasDeliveryMonthCard = false;
for (ActivityDiscountsDto activityDiscountsDto : shoppingCartGoodsDto.getActivityDiscountsDtos()) {
......
......@@ -112,11 +112,11 @@ public class OrderController {
/**
* 扫脸支付下单
*/
@ApiAnnotation(logMessage = "scanFaceCreateOrder")
@PostMapping("/scanFaceCreateOrder")
public BaseResponse scanFaceCreateOrder(@Validated @LogParams @RequestBody CreateOrderVo createOrderVo) {
return orderservice.scanFaceCreateOrder(createOrderVo);
}
// @ApiAnnotation(logMessage = "scanFaceCreateOrder")
// @PostMapping("/scanFaceCreateOrder")
// public BaseResponse scanFaceCreateOrder(@Validated @LogParams @RequestBody CreateOrderVo createOrderVo) {
// return orderservice.scanFaceCreateOrder(createOrderVo);
// }
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
......
package cn.freemud.entities.bo;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.CreateOrderVo;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import lombok.Data;
@Data
public class CreateOrderBONew {
private CreateOrderVo createOrderVo;
private AssortmentCustomerInfoVo customerInfoVo;
private StoreMixResponseDto storeMixResponseDto;
private ShoppingCartGoodsDto shoppingCartGoodsDto;
private AssortmentCustomerInfoVo userLoginInfoDto;
private OrderExtInfoDto extInfo;
public CreateOrderBONew() {
}
public CreateOrderBONew(CreateOrderVo createOrderVo) {
this.createOrderVo = createOrderVo;
}
}
package cn.freemud.entities.bo;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CreateOrderBaseVo;
......@@ -28,7 +29,7 @@ public class CreateOrderBo {
private ShoppingCartGoodsDto shoppingCartGoodsDto;
private StoreResponse.BizVO storeResponseDto;
private StoreResponseDto storeResponseDto;
private OrderExtInfoDto extInfo;
......
......@@ -144,4 +144,12 @@ public class StoreResponseDto {
* 最大接单量,单位笔
*/
private Integer maxOrderQuantity;
private String businessType;
private String thirdPartCode;
private String storeNameEn;
private String benefitCardDiscountAmount;
}
......@@ -87,6 +87,7 @@ public class CreateOrderVo {
/**
* 渠道 1 saas 2 支付宝 3. iwc i围餐 5 头条
* @see cn.freemud.enums.ChannelEnum
*/
private String channel;
/**
......
......@@ -29,7 +29,7 @@ public interface Orderservice extends OrderFactoryService{
*/
// BaseResponse createOrderNew(CreateOrderVo createOrderVo);
BaseResponse scanFaceCreateOrder(CreateOrderVo createOrderVo);
// BaseResponse scanFaceCreateOrder(CreateOrderVo createOrderVo);
/**
* 支付回调
......
package cn.freemud.service.adapter;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
......@@ -20,4 +21,19 @@ public abstract class AbstractOrderCheck implements OrderCheck {
}
}
/**
* 校验门店状态
* @param bizVO
*/
void doStoreStateCheck(StoreResponseDto bizVO) {
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if (!Objects.equals(bizVO.getState(), "1")) {
throw new ServiceException(ResponseResult.STORE_MAKE_AN_APPOINTMENT_STOP_BUSINESS);
// 营业
} else {
throw new ServiceException(ResponseResult.STORE_MAKE_AN_APPOINTMENT_OPEN_BUSINESS);
}
}
}
package cn.freemud.service.adapter;
import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.CreateOrderType;
import cn.freemud.interceptor.ServiceException;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
/**
* 订单检查
......@@ -20,7 +21,10 @@ public interface OrderCheck {
/**
* 检查
* @param vo
* @param storeResponse
* @param storeMixResponseDto
*/
void check(CreateOrderVo vo, StoreResponse storeResponse) throws ServiceException;
void check(CreateOrderVo vo, StoreMixResponseDto storeMixResponseDto) throws ServiceException;
void check(CreateOrderBONew vo) throws ServiceException;
}
package cn.freemud.service.adapter;
import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.store.BusinessInfoDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.interceptor.ServiceException;
......@@ -19,13 +22,51 @@ public class OrderCheckAdapter {
static ArrayList<OrderCheck> orderCheckList = Lists.newArrayList(new ToStoreCheck(), new TakeOutOrderCheck());
// /***
// * 校验预约单门店数据
// * @param vo
// * @param storeResponse
// * @throws ServiceException 抛出异常校验异常数据
// */
// public static void check(CreateOrderVo vo, StoreResponse storeResponse) throws ServiceException {
// // fisherman-ka 预定单的校验 未完成 --> 这里移动了位置
//// if (Objects.nonNull(vo.getBizType())
//// && BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(vo.getBizType()) == 0) {
//// // 伪代码 判断 门店是否开启了 预定单服务
//// // 开启了预定单服务, 不走下面的检验
//// // 没开启 抛出异常
//// }
// //非预约单的过滤
// if (Objects.isNull(vo.getOrderType()) ||
// (!Objects.equals(vo.getTakeMealFlag(), "1"))) {
// return;
// }
// // 预定单 不校验 下面的预约单
// if (Objects.nonNull(vo.getBizType())
// && BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(vo.getBizType()) == 0) {
// return;
// }
// StoreResponse.Configuration configuration = storeResponse.getBizVO().getStoreConfig();
// if(Objects.isNull(configuration)){
// //针对老数据没有配置 预约单默认支持,直接返回不校验
// AppLogUtil.infoLog("商户:{} shopId:{},没有配置预约单",vo.getPartnerId(),vo.getShopId());
// return;
// }
// for (OrderCheck orderCheck : orderCheckList) {
// if (orderCheck.support(vo.getOrderType())) {
// orderCheck.check(vo, storeResponse);
// return;
// }
// }
// }
/***
* 校验预约单门店数据
* @param vo
* @param storeResponse
* @throws ServiceException 抛出异常校验异常数据
*/
public static void check(CreateOrderVo vo, StoreResponse storeResponse) throws ServiceException {
public static void check(CreateOrderBONew createOrderBo) throws ServiceException {
// fisherman-ka 预定单的校验 未完成 --> 这里移动了位置
// if (Objects.nonNull(vo.getBizType())
// && BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(vo.getBizType()) == 0) {
......@@ -33,6 +74,10 @@ public class OrderCheckAdapter {
// // 开启了预定单服务, 不走下面的检验
// // 没开启 抛出异常
// }
CreateOrderVo vo = createOrderBo.getCreateOrderVo();
StoreMixResponseDto storeMixResponseDto = createOrderBo.getStoreMixResponseDto();
BusinessInfoDto businessInfo = storeMixResponseDto.getBusinessInfo();
//非预约单的过滤
if (Objects.isNull(vo.getOrderType()) ||
(!Objects.equals(vo.getTakeMealFlag(), "1"))) {
......@@ -43,39 +88,41 @@ public class OrderCheckAdapter {
&& BizTypeEnum.ADVANCE_ORDER.getBizType().compareTo(vo.getBizType()) == 0) {
return;
}
StoreResponse.Configuration configuration = storeResponse.getBizVO().getStoreConfig();
if(Objects.isNull(configuration)){
if(Objects.isNull(businessInfo)){
//针对老数据没有配置 预约单默认支持,直接返回不校验
AppLogUtil.infoLog("商户:{} shopId:{},没有配置预约单",vo.getPartnerId(),vo.getShopId());
return;
}
for (OrderCheck orderCheck : orderCheckList) {
if (orderCheck.support(vo.getOrderType())) {
orderCheck.check(vo, storeResponse);
orderCheck.check(createOrderBo);
return;
}
}
}
/***
* 校验预约单门店数据 优化订单接口冗余方法
* @param vo
* @param storeResponse
* @param storeMixResponseDto
* @throws ServiceException 抛出异常校验异常数据
*/
public static void check(CreateOrderBaseVo vo, StoreResponse storeResponse) throws ServiceException {
public static void check(CreateOrderBaseVo vo, StoreMixResponseDto storeMixResponseDto) throws ServiceException {
//非预约单的过滤
if (Objects.isNull(vo.getOrderType()) ||
(!Objects.equals(vo.getTakeMealFlag(), "1"))) {
return;
}
StoreResponse.Configuration configuration = storeResponse.getBizVO().getStoreConfig();
if(Objects.isNull(configuration)){
BusinessInfoDto businessInfo = storeMixResponseDto.getBusinessInfo();
if(Objects.isNull(businessInfo)){
//针对老数据没有配置 预约单默认支持,直接返回不校验
return;
}
for (OrderCheck orderCheck : orderCheckList) {
if (orderCheck.support(vo.getOrderType())) {
orderCheck.check(null, storeResponse);
orderCheck.check(null, storeMixResponseDto);
return;
}
}
......
package cn.freemud.service.adapter;
import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.store.BusinessInfoDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.CreateOrderType;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import java.util.Objects;
......@@ -15,16 +18,27 @@ public class TakeOutOrderCheck extends AbstractOrderCheck {
public boolean support(int orderType) {
return CreateOrderType.TAKE_OUT.getCode() == orderType;
}
@Override
public void check(CreateOrderVo vo, StoreResponse storeResponse) {
StoreResponse.BizVO bizVO = storeResponse.getBizVO();
StoreResponse.Configuration storeConfig = bizVO.getStoreConfig();
public void check(CreateOrderVo vo, StoreMixResponseDto storeMixResponseDto) {
StoreResponseDto storeInfo = storeMixResponseDto.getStoreInfo();
BusinessInfoDto businessInfo = storeMixResponseDto.getBusinessInfo();
// 关闭预约单
if (Objects.equals(storeConfig.getDeliveryAppoint(), 0)) {
super.doStoreStateCheck(bizVO);
if (Objects.equals(businessInfo.getDeliveryAppoint(), 0)) {
super.doStoreStateCheck(storeInfo);
}
}
@Override
public void check(CreateOrderBONew createOrderBONew) {
StoreMixResponseDto storeMixResponseDto = createOrderBONew.getStoreMixResponseDto();
StoreResponseDto storeInfo = storeMixResponseDto.getStoreInfo();
BusinessInfoDto businessInfo = storeMixResponseDto.getBusinessInfo();
// 关闭预约单
if (Objects.equals(businessInfo.getDeliveryAppoint(), 0)) {
super.doStoreStateCheck(storeInfo);
}
}
}
package cn.freemud.service.adapter;
import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.store.BusinessInfoDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.enums.CreateOrderType;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import java.util.Objects;
......@@ -16,12 +19,24 @@ public class ToStoreCheck extends AbstractOrderCheck {
}
@Override
public void check(CreateOrderVo vo, StoreResponse storeResponse) {
StoreResponse.BizVO bizVO = storeResponse.getBizVO();
StoreResponse.Configuration storeConfig = bizVO.getStoreConfig();
public void check(CreateOrderVo vo, StoreMixResponseDto storeMixResponseDto) {
StoreResponseDto storeInfo = storeMixResponseDto.getStoreInfo();
BusinessInfoDto businessInfo = storeMixResponseDto.getBusinessInfo();
// 关闭预约单
if (Objects.equals(storeConfig.getSelfMentionSwitch(), 0)) {
super.doStoreStateCheck(bizVO);
if (Objects.equals(businessInfo.getSelfMentionSwitch(), 0)) {
super.doStoreStateCheck(storeInfo);
}
}
@Override
public void check(CreateOrderBONew createOrderBONew) {
StoreMixResponseDto storeMixResponseDto = createOrderBONew.getStoreMixResponseDto();
StoreResponseDto storeInfo = storeMixResponseDto.getStoreInfo();
BusinessInfoDto businessInfo = storeMixResponseDto.getBusinessInfo();
// 关闭预约单
if (Objects.equals(businessInfo.getSelfMentionSwitch(), 0)) {
super.doStoreStateCheck(storeInfo);
}
}
......
......@@ -218,7 +218,6 @@ public class OrderBusinessServiceImpl implements OrderBusinessService {
public CreateOrderResponse createOrderFlow(CreateOrderRequest config) {
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest request = orderSdkAdapter.convent2NEWCreateOrderRequest(config.getBaseCreateOrderRequest());
// AssortOrderLogUtil.info("fisherman 请求基础服务,最终构建 04",config!=null?JSON.toJSONString(config):null);
// fisherman 创建订单 extinfo 存储 信息,有数上报需要使用, 更新接口直接重新覆盖就行
request.setExtInfo(this.getTempExtInfoMsg(config.getOpenId(),config.getBaseCreateOrderRequest().getAppId()));
OrderBaseResp<OrderInfoReqs> order = orderSdkService.createOrder(request, config.getTrackingNo());
......
......@@ -3,13 +3,16 @@ package cn.freemud.service.impl;
import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.coupon.InvalidCouponsRequestDto;
import cn.freemud.entities.dto.coupon.InvalidCouponsResponseDto;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.OrderStatus;
import cn.freemud.enums.PayStatus;
......@@ -18,6 +21,7 @@ import cn.freemud.enums.TradeState;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.AppOrderService;
import cn.freemud.service.StoreService;
import cn.freemud.service.thirdparty.CouponOnlineClient;
import cn.freemud.utils.BeanUtil;
import cn.freemud.utils.RedisUtil;
......@@ -89,9 +93,8 @@ public class AppOrderServiceImpl implements AppOrderService {
@Autowired
private RedisService redisService;
//门店SDK
@Autowired
private StoreCenterService storeCenterService;
private StoreServiceImpl storeService;
@Autowired
private OrderSdkService orderSdkService;
......@@ -112,14 +115,17 @@ public class AppOrderServiceImpl implements AppOrderService {
@Override
public BaseResponse createOrder(CreateOrderVo createOrderVo) {
String trackingNo = LogThreadLocal.getTrackingNo();
CreateOrderBONew createOrderBO = new CreateOrderBONew(createOrderVo);
// 查询用户信息
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo, trackingNo);
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo);
createOrderBO.setUserLoginInfoDto(userLoginInfoDto);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse.BizVO storeResponseDto = checkOrder.checkOrderByStore(createOrderVo, trackingNo);
StoreResponseDto storeResponseDto = checkOrder.checkOrderByStore(createOrderBO).getStoreInfo();
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrder.getShoppingCartGoodsDto(createOrderVo);
createOrderBO.setShoppingCartGoodsDto(shoppingCartGoodsDto);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderBO);
//1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
// 下单前检查优惠券是否可用
......@@ -135,9 +141,9 @@ public class AppOrderServiceImpl implements AppOrderService {
}
}
OrderExtInfoDto extInfo = orderservice.getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDto extInfo = orderservice.setOrderExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//创建订单
BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderBO);
if (createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null) {
return createOrderOperateDtoResponse;
}
......@@ -184,13 +190,13 @@ public class AppOrderServiceImpl implements AppOrderService {
String partnerId = createOrderReq.getPartnerId();
String shopId = createOrderReq.getShopId();
// 获取门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId, null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) {
StoreMixResponseDto storeMixResponseDto = storeService.getStoreInfoNew(partnerId, shopId, false);
if (storeMixResponseDto == null || storeMixResponseDto.getStoreInfo() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
StoreResponseDto storeResponse = storeMixResponseDto.getStoreInfo();
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder.checkOrderByStore(storeResponse.getBizVO());
checkOrder.checkOrderByStore(storeResponse);
/**蜜雪新增需求-->APP可以购买虚拟商品券业务逻辑**/
OrderBeanV1 orderBean = new OrderBeanV1();
if (createOrderReq.getBizType() != null && BizTypeEnum.SALE_COUPON.getBizType().equals(createOrderReq.getBizType())) {
......@@ -224,14 +230,18 @@ public class AppOrderServiceImpl implements AppOrderService {
createOrderReq.getMenuType(), createOrderReq.getReachStoreType());
CreateOrderVo createOrderVo = new CreateOrderVo();
BeanUtil.convertBean(createOrderReq, createOrderVo);
createOrderVo.setStoreName(storeResponse.getBizVO().getStoreName());
CreateOrderBONew createOrderBO = new CreateOrderBONew(createOrderVo);
createOrderBO.setCustomerInfoVo(customerInfo);
createOrderBO.setStoreMixResponseDto(storeMixResponseDto);
createOrderBO.setShoppingCartGoodsDto(shoppingCartGoodsDto);
createOrderVo.setStoreName(storeResponse.getStoreName());
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满 足起送条件
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, customerInfo, storeResponse.getBizVO(), shoppingCartGoodsDto, trackingNo);
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderBO);
//1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDto extInfo = orderservice.getExtInfo(customerInfo, storeResponse.getBizVO(), pushOrderTime, createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDto extInfo = orderAdapter.setOrderExtInfo(customerInfo, storeResponse, createOrderVo, shoppingCartGoodsDto);
//创建订单
BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderVo, storeResponse.getBizVO(), shoppingCartGoodsDto, customerInfo);
BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderBO);
if (createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null) {
return createOrderOperateDtoResponse;
}
......
......@@ -18,6 +18,7 @@ import cn.freemud.constant.StoreConstant;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.delivery.MCCafeDeliveryBaseResponse;
import cn.freemud.entities.dto.delivery.MCCafeDeliveryGetStoreIdResponse;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.enums.*;
import cn.freemud.management.entities.dto.request.order.MCCafeCouponRequest;
import cn.freemud.entities.dto.order.BusinessDate;
......@@ -79,6 +80,8 @@ public class CheckMCCafeOrder {
//门店SDK
@Autowired
private StoreCenterService storeCenterService;
@Autowired
private StoreServiceImpl storeService;
//会员SDK
@Autowired
private MemberCenterService memberCenterService;
......@@ -138,17 +141,16 @@ public class CheckMCCafeOrder {
/**
* 下单门店相关校验
*/
public StoreResponse.BizVO checkOrderByStore(CreateOrderVo createOrderVo, String trackingNo) {
public StoreResponseDto checkOrderByStore(CreateOrderVo createOrderVo) {
String partnerId = createOrderVo.getPartnerId();
String shopId = createOrderVo.getShopId();
// 获取门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId,null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) {
StoreMixResponseDto storeMixResponseDto = storeService.getStoreInfoNew(partnerId, shopId, true);
if (storeMixResponseDto == null || storeMixResponseDto.getStoreInfo() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
StoreResponse.BizVO storeResponseDto = storeResponse.getBizVO();
StoreResponseDto storeResponseDto = storeMixResponseDto.getStoreInfo();
// 校验门店是否营业
if (storeResponseDto.getActiveFlag() == null || storeResponseDto.getActiveFlag() != 1 || storeResponseDto.getState() == null || storeResponseDto.getState().equals("3")) {
throw new ServiceException(ResponseResult.STORE_CLOSED_FOREVER);
......@@ -166,7 +168,7 @@ public class CheckMCCafeOrder {
* 下单订单类型校验
*/
public Integer checkOrderByOrderType(CreateOrderVo createOrderVo, AssortmentCustomerInfoVo userLoginInfoDto,
StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, String trackingNo) {
StoreResponseDto storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, String trackingNo) {
Integer pushOrderTime = 0;
//非到店或者外卖,类型错误
if (!(CreateOrderType.COLLECT_GOODS.getCode().equals(createOrderVo.getOrderType()) ||
......@@ -300,7 +302,7 @@ public class CheckMCCafeOrder {
return pushOrderTime;
}
public void checkOrderExpectTime(StoreResponse.BizVO storeResponseDto, Date takeMealDateTime) {
public void checkOrderExpectTime(StoreResponseDto storeResponseDto, Date takeMealDateTime) {
if (takeMealDateTime == null) {
return;
}
......@@ -330,7 +332,7 @@ public class CheckMCCafeOrder {
* @param storeResponseDto 店铺信息
* @param expectTime 预约单送达时间/即时单下单时间
*/
private void checkTakeOutTime(StoreResponse.BizVO storeResponseDto, Date expectTime) {
private void checkTakeOutTime(StoreResponseDto storeResponseDto, Date expectTime) {
//获取门店预约当天外卖时间
List<String> deliveryTimes = storeCenterService.getBusinessTimeByDate(com.freemud.application.sdk.api.util.DateUtil.convert2String
(expectTime, com.freemud.application.sdk.api.util.DateUtil.FORMAT_yyyyMMdd_date), storeResponseDto.getDeliveryHours());
......@@ -640,7 +642,7 @@ public class CheckMCCafeOrder {
/**
* 获取门店配送信息
*/
public StoreDeliveryInfoDto getNewStoreDeliveryInfo(StoreResponse.BizVO storeResponseDto,
public StoreDeliveryInfoDto getNewStoreDeliveryInfo(StoreResponseDto storeResponseDto,
AssortmentOpenPlatformIappWxappConfig openPlatformIappWxappConfig, String wxAppid, String trackingNo) {
StoreDeliveryInfoDto storeDeliveryInfoDto = new StoreDeliveryInfoDto();
storeDeliveryInfoDto.setPartnerId(storeResponseDto.getPartnerId());
......
......@@ -18,10 +18,12 @@ import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.StoreConstant;
import cn.freemud.entities.dto.GetCouponDetailResponseDto;
import cn.freemud.entities.dto.StoreDeliveryInfoDto;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.GetMemberCouponRequestVo;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
......@@ -69,6 +71,8 @@ public class CheckMallOrder {
@Autowired
private StoreCenterService storeCenterService;
@Autowired
private StoreServiceImpl storeService;
@Autowired
private CouponService couponService;
/**
......@@ -98,16 +102,16 @@ public class CheckMallOrder {
/**
* 下单门店相关校验
*/
public StoreResponse.BizVO checkOrderByStore(CreateOrderVo createOrderVo, String trackingNo) {
public StoreResponseDto checkOrderByStore(CreateOrderVo createOrderVo, String trackingNo) {
String partnerId = createOrderVo.getPartnerId();
String shopId = createOrderVo.getShopId();
// 获取门店信息
StoreResponse storeResponse = getStoreInfo(partnerId, shopId, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) {
StoreMixResponseDto storeMixResponseDto = storeService.getStoreInfoNew(partnerId, shopId, false);
if (storeMixResponseDto == null || storeMixResponseDto.getStoreInfo() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
StoreResponse.BizVO storeResponseDto = storeResponse.getBizVO();
StoreResponseDto storeResponseDto= storeMixResponseDto.getStoreInfo();
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if (storeResponseDto.getActiveFlag() == null || storeResponseDto.getActiveFlag() != 1) {
throw new ServiceException(ResponseResult.STORE_ITEM_STOP_BUSINESS);
......@@ -145,7 +149,7 @@ public class CheckMallOrder {
* 下单配送相关校验
*/
public void checkOrderByDelivery(CreateOrderVo createOrderVo, AssortmentCustomerInfoVo userLoginInfoDto,
StoreResponse.BizVO storeResponseDto,Long totalAmount, String trackingNo) {
StoreResponseDto storeResponseDto,Long totalAmount, String trackingNo) {
// StoreDeliveryInfoDto storeDeliveryInfoDto = this.getStoreDeliveryInfo(storeResponseDto, userLoginInfoDto.getWxAppId());
// //订单金额小于起送费提示
// if (storeDeliveryInfoDto.getDeliveryLimitAmount() > totalAmount) {
......
......@@ -5,6 +5,7 @@ import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.StoreConstant;
import cn.freemud.entities.bo.CreateOrderBo;
import cn.freemud.entities.dto.StoreDeliveryInfoDto;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import cn.freemud.entities.dto.ecology.VirtualBindStoreResponse;
......@@ -72,11 +73,11 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
* @return
*/
@Override
protected StoreResponse.BizVO checkOrderByStore(CreateOrderBo createOrderBo, String trackingNo, boolean isCheck) {
protected StoreResponseDto checkOrderByStore(CreateOrderBo createOrderBo, String trackingNo, boolean isCheck) {
// 设置门店id为商城的虚拟门店id
this.change2BindMallShopId(createOrderBo.getCreateOrderBaseVo(), createOrderBo.getUserLoginInfoDto().getWxAppId());
StoreResponse.BizVO storeResponseDto = super.checkOrderByStore(createOrderBo, trackingNo, false);
StoreResponseDto storeResponseDto = super.checkOrderByStore(createOrderBo, trackingNo, false);
if (!StoreConstant.BUSINESS.equals(storeResponseDto.getState())) {
throw new ServiceException(ResponseResult.STORE_ITEM_CHECK_CLOSE);
......@@ -104,7 +105,7 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
createOrderBaseVo.setShopId(virtualBindStoreResponse.getResult().getStoreId());
}
private void setBeginAndEndTime(StoreResponse.BizVO storeResponseDto) {
private void setBeginAndEndTime(StoreResponseDto storeResponseDto) {
String businessHourStr = storeResponseDto.getBusinessHoursDay().replace("-", ",").replace("_", ",");
String[] businessHours = businessHourStr.split(",");
if (businessHours.length != 2) {
......@@ -150,7 +151,7 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
@Override
public void checkCustomCreateOrderParam(CreateOrderBo createOrderBo) {
// 查询商城的配送模板信息,校验订单是否满足配送条件
StoreResponse.BizVO storeResponseDto = createOrderBo.getStoreResponseDto();
StoreResponseDto storeResponseDto = createOrderBo.getStoreResponseDto();
CreateOrderBaseVo createOrderBaseVo = createOrderBo.getCreateOrderBaseVo();
AssortmentCustomerInfoVo userLoginInfoDto = createOrderBo.getUserLoginInfoDto();
ShoppingCartGoodsDto shoppingCartGoodsDto = createOrderBo.getShoppingCartGoodsDto();
......@@ -162,7 +163,7 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
}
private void checkOrderByDelivery(CreateOrderBaseVo createOrderBaseVo, AssortmentCustomerInfoVo userLoginInfoDto, StoreResponse.BizVO storeResponseDto, Long totalAmount, String trackingNo) {
private void checkOrderByDelivery(CreateOrderBaseVo createOrderBaseVo, AssortmentCustomerInfoVo userLoginInfoDto, StoreResponseDto storeResponseDto, Long totalAmount, String trackingNo) {
StoreDeliveryInfoDto storeDeliveryInfoDto = this.getStoreDeliveryInfo(storeResponseDto, userLoginInfoDto.getWxAppId());
//订单金额小于起送费提示
if (storeDeliveryInfoDto.getDeliveryLimitAmount() > totalAmount) {
......@@ -203,7 +204,7 @@ public class CheckOrderSaasMall extends CheckOrderUniversal {
createOrderVo.setUserDeliveryInfoDto(userDeliveryInfoDto);
}
private StoreDeliveryInfoDto getStoreDeliveryInfo(StoreResponse.BizVO storeResponseDto, String wxAppId) {
private StoreDeliveryInfoDto getStoreDeliveryInfo(StoreResponseDto storeResponseDto, String wxAppId) {
StoreDeliveryInfoDto storeDeliveryInfoDto = new StoreDeliveryInfoDto();
storeDeliveryInfoDto.setPartnerId(storeResponseDto.getPartnerId());
storeDeliveryInfoDto.setStoreId(storeResponseDto.getStoreCode());
......
......@@ -5,6 +5,7 @@ import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.UpdateReserveOrderResponseVo;
import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto;
......@@ -173,7 +174,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
//查询门店服务获取门店信息(营业时间,营业状态)
createOrderVo.setPartnerId(assortmentCustomerInfoVo.getPartnerId());
createOrderVo.setShopId(assortmentCustomerInfoVo.getStoreId());
StoreResponse.BizVO storeResponseDto = checkOrder.checkOrderByStore(createOrderVo, LogThreadLocal.getTrackingNo());
CreateOrderBONew createOrderBO = new CreateOrderBONew(createOrderVo);
StoreResponseDto storeResponseDto = checkOrder.checkOrderByStore(createOrderBO).getStoreInfo();
//桌号状态已锁定则给出对应状态码
GetStoreTableRequest storeTableListRequest = new GetStoreTableRequest();
storeTableListRequest.setPartnerId(createOrderVo.getPartnerId());
......@@ -256,7 +258,8 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
* 创建预订单
* @return
*/
private CreateOrderResponse createGroupOrderInfo(CreateOrderVo createOrderVo,AssortmentCustomerInfoVo assortmentCustomerInfoVo,ShopBaseResponseDto<List<ProductListDto.DataBean>> dishWareProductList,StoreResponse.BizVO storeResponseDto){
private CreateOrderResponse createGroupOrderInfo(CreateOrderVo createOrderVo,AssortmentCustomerInfoVo assortmentCustomerInfoVo,
ShopBaseResponseDto<List<ProductListDto.DataBean>> dishWareProductList,StoreResponseDto storeResponseDto){
//组装预订单(未支付订单)信息 调用订单订单基础服务创建预订单--调用订单基础服务新开接口
AssortmentGroupCreateOrderRequest groupCreateOrderRequest = new AssortmentGroupCreateOrderRequest();
groupCreateOrderRequest.setDinersNumber(createOrderVo.getPeopleNumber());
......
......@@ -339,7 +339,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto shoppingCartGoodsDto = checkMCCafeOrder.getMCCafeShoppingCartGoodsDto(createOrderVo, userLoginInfoDto);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内
StoreResponse.BizVO storeResponseDto = checkMCCafeOrder.checkOrderByStore(createOrderVo, trackingNo);
StoreResponseDto storeResponseDto = checkMCCafeOrder.checkOrderByStore(createOrderVo);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer pushOrderTime = checkMCCafeOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo);
......@@ -351,7 +351,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto)createOrderOperateDtoResponse.getResult();
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = orderAdapter.convertToCreatePrepayRequestDto(createOrderVo.getPartnerId(), userLoginInfoDto.getWxAppId(), userLoginInfoDto.getOpenId(),
createOrderVo.getFaceCode(), createOrderVo.getCardCode(), null,
null, createOrderVo.getCardCode(), null,
createOrderOperateDto.getFatherOrderBean(), createOrderOperateDto.getProductOrderBean(),
createOrderOperateDto.getTotalAmount() == null ? 0 : createOrderOperateDto.getTotalAmount(),
createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount(), extInfo,
......@@ -633,10 +633,10 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
*
* @return
*/
public BaseResponse sdkCreateOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
public BaseResponse sdkCreateOrder(CreateOrderVo createOrderVo, StoreResponseDto storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
AssortmentCustomerInfoVo userLoginInfoDto) {
CreateOrderOperateDto response = new CreateOrderOperateDto();
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfoNew(storeResponseDto);
OrderClientType orderClient = OrderClientType.SAAS;
String appId = userLoginInfoDto.getWxAppId();
if(UserLoginChannelEnum.ALIPAY.getCode().equals(userLoginInfoDto.getChannel()) ){
......@@ -717,7 +717,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
/**
* 创建普通订单
*/
public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponseDto storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
OrderExtendedReq orderExtendedReq, OrderClientType orderClient,String appId) {
// processRepeatGoodsWithSeedCoupon(shoppingCartGoodsDto);
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
......@@ -896,7 +896,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return paymentRequest;
}
private OrderExtInfoDto getExtInfo(AssortmentCustomerInfoVo userLoginInfoDto, StoreResponse.BizVO storeResponseDto,
private OrderExtInfoDto getExtInfo(AssortmentCustomerInfoVo userLoginInfoDto, StoreResponseDto storeResponseDto,
Integer pushOrderTime, CreateOrderVo createOrderVo) {
Integer serviceTime = storeResponseDto.getServiceTime();
......
......@@ -172,7 +172,7 @@ public class MallOrderServiceImpl implements MallOrderService {
// 设置门店id为商城的虚拟门店id
this.change2BindMallShopId(createOrderVo, userLoginInfoDto.getWxAppId());
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse.BizVO storeResponseDto = checkMallOrder.checkOrderByStore(createOrderVo, trackingNo);
StoreResponseDto storeResponseDto = checkMallOrder.checkOrderByStore(createOrderVo, trackingNo);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto shoppingCartGoodsDto = checkMallOrder.getShoppingCartGoodsDto(createOrderVo);
// 查询商城的配送模板信息,校验订单是否满足配送条件
......@@ -259,7 +259,7 @@ public class MallOrderServiceImpl implements MallOrderService {
createOrderVo.setShopId(virtualBindStoreResponse.getResult().getStoreId());
}
private OrderExtInfoDto getExtInfo(AssortmentCustomerInfoVo userLoginInfoDto, StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo) {
private OrderExtInfoDto getExtInfo(AssortmentCustomerInfoVo userLoginInfoDto, StoreResponseDto storeResponseDto, CreateOrderVo createOrderVo) {
String sessionId = createOrderVo.getSessionId();
String version = createOrderVo.getVersion();
......@@ -272,8 +272,8 @@ public class MallOrderServiceImpl implements MallOrderService {
return orderExtInfoDto;
}
private BaseResponse sdkCreateOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, AssortmentCustomerInfoVo userLoginInfoDto, OrderExtInfoDto orderExtInfoDTO) {
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
private BaseResponse sdkCreateOrder(CreateOrderVo createOrderVo, StoreResponseDto storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, AssortmentCustomerInfoVo userLoginInfoDto, OrderExtInfoDto orderExtInfoDTO) {
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfoNew(storeResponseDto);
//创建普通订单
Function<Object, CreateOrderResponse> createOrder = (var -> {
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto,storeResponseDto);
......
......@@ -189,7 +189,6 @@ public class OrderAdapterServiceImpl {
if (!"wc".equals(createOrderVo.getChannelType()) &&
!partnerIds.isEmpty() && partnerIds.contains(createOrderVo.getPartnerId())
&& !storeIds.isEmpty() && storeIds.contains(createOrderVo.getShopId())) {
// AppLogUtil.infoLog("进入新订单创建流程", createOrderVo,null);
return this.createOrderUniversal(com.freemud.application.sdk.api.util.MapUtils.java2Map(createOrderVo));
}
// 添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
......
......@@ -165,6 +165,9 @@ public class PayServiceImpl {
} else if (totalAmount > 0 && Objects.nonNull(createPrepayRequestDto.getUnionPayCard())) {
// 电子风味卡支付
orderPayResponse = uSvcPay(createPrepayRequestDto.getFatherOrderBean(), paymentRequest, transId, LogThreadLocal.getTrackingNo(), createPrepayRequestDto.getUnionPayCard());
// } else if (totalAmount > 0 && StringUtils.isNotBlank(createPrepayRequestDto.getFaceCode())) {
//扫脸支付
// orderPayResponse = facePay(createPrepayRequestDto.getFaceCode(), createPrepayRequestDto.getProductOrderBean(), paymentRequest, LogThreadLocal.getTrackingNo());
} else if (totalAmount > 0 && StringUtils.isBlank(cardCode)) {
//现金线上支付
String partnerPayOvertime = this.getPartnerPayOvertime(createPrepayRequestDto.getPartnerId());
......@@ -230,65 +233,6 @@ public class PayServiceImpl {
}
/**
* 下单支付 扫脸支付 (目前不在使用)
*/
// TODO: 21-9-17 待合并
public BaseResponse createOrderPay(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
AssortmentCustomerInfoVo userLoginInfoDto, OrderExtInfoDto orderExtInfoDTO, CreateOrderOperateDto operateDto) {
//创建订单--包括下单购买会员卡创建父子订单
long totalAmount = operateDto.getTotalAmount();
int cardAmount = operateDto.getCardAmount();
OrderBeanV1 fatherOrderBean = operateDto.getFatherOrderBean();
OrderBeanV1 productOrderBean = operateDto.getProductOrderBean();
//支付-- 包含商品券无需支付、唤起微信支付、储值卡支付直接支付、扫脸支付
OrderPayResponse orderPayResponse = pay(userLoginInfoDto, createOrderVo, totalAmount, cardAmount, fatherOrderBean);
// 默认支付成功必有非码订单号
if (orderPayResponse == null || Objects.isNull(orderPayResponse.getFmId())) {
if (createOrderVo.getFaceCode() != null) {
createOrderVo.setCardCode(createOrderVo.getFaceCode());
}
BaseResponse baseResponse = failPreOrderPay(LogThreadLocal.getTrackingNo(), productOrderBean, createOrderVo.getCardCode(), null,
Objects.isNull(orderPayResponse) ? null : orderPayResponse.getMsg());
// 电子风味卡需要给用户特殊的返回
if (totalAmount > 0 && Objects.nonNull(createOrderVo.getUnionPayCard())) {
baseResponse.setMessage(Objects.nonNull(orderPayResponse) &&
(ResponseCodeConstant.PASSWORD_WRONG.equals(orderPayResponse.getPayTransId())
|| ResponseCodeConstant.NOT_SUFFICIENT_FUND.equals(orderPayResponse.getPayTransId())) ?
orderPayResponse.getMsg() : "支付失败");
}
return baseResponse;
}
//更新订单extinfo信息
BaseResponse baseEditResponse = this.updateOrderInfo(orderPayResponse, orderExtInfoDTO, productOrderBean, LogThreadLocal.getTrackingNo());
if (baseEditResponse != null) {
return baseEditResponse;
}
CreateOrderResponseVo createOrderResponse = orderAdapter.convent2CreateFatherSonOrderResponseVo(orderPayResponse, productOrderBean);
//设置是否唤起微信支付
if (totalAmount > 0 && StringUtils.isBlank(createOrderVo.getCardCode()) && StringUtils.isBlank(createOrderVo.getFaceCode())) {
createOrderResponse.setPaySuccess(false);
} else {
createOrderResponse.setPaySuccess(true);
}
if (!createOrderResponse.getPaySuccess()) {
return ResponseUtil.success(createOrderResponse);
} else {
//如果是商品券支付0元,调用回调接口
PaysuccessNoticeMessage message = new PaysuccessNoticeMessage();
message.setResult_code(100);
message.setOut_trade_no(createOrderResponse.getFmId());
message.setTrans_id(createOrderResponse.getOid());
message.setTotal_fee(0);
message.setOpenid(userLoginInfoDto.getOpenId());
message.setPlatform_coupon(0);
message.setMerchant_coupon(0);
//0元订单内部调支付成功
orderAdapterService.paySuccessCallback(message);
return ResponseUtil.success(createOrderResponse);
}
}
/**
* 创建预支付信息 (围餐用)
......@@ -372,53 +316,6 @@ public class PayServiceImpl {
return createOrderResponseVo;
}
/**
* 支付
* 包含唤起微信支付、储值卡支付直接支付、扫脸支付、商品券无需支付
*/
private OrderPayResponse pay(AssortmentCustomerInfoVo userLoginInfoDto, CreateOrderVo createOrderVo, long totalAmount, int cardAmount,
OrderBeanV1 fatherBeanListOne) {
//<!---创建订单公共方法执行逻辑--->
OrderPayResponse orderPayResponse = null;
String appId = userLoginInfoDto.getWxAppId();
PaymentRequest paymentRequest = orderBodyConvertToPaymentBody(userLoginInfoDto.getOpenId(), createOrderVo.getPartnerId(), appId, null, fatherBeanListOne.getShopId());
//支付金额异常
if (totalAmount < 0) {
throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR);
}
//电子风味卡支付
if (totalAmount > 0 && Objects.nonNull(createOrderVo.getUnionPayCard())) {
return uSvcPay(fatherBeanListOne, paymentRequest, fatherBeanListOne.getOid(), LogThreadLocal.getTrackingNo(), createOrderVo.getUnionPayCard());
}
//唤起微信支付
if (totalAmount > 0 && StringUtils.isBlank(createOrderVo.getCardCode()) && StringUtils.isBlank(createOrderVo.getFaceCode())) {
String partnerPayOvertime = this.getPartnerPayOvertime(createOrderVo.getPartnerId());
orderPayResponse = getPreOrderPay(fatherBeanListOne, paymentRequest, LogThreadLocal.getTrackingNo(), cardAmount, fatherBeanListOne.getOid(), partnerPayOvertime, null);
return orderPayResponse;
}
//储值卡支付
if (totalAmount > 0 && StringUtils.isNotBlank(createOrderVo.getCardCode())) {
//svc卡支付
orderPayResponse = svcPay(createOrderVo.getCardCode(), fatherBeanListOne, paymentRequest, fatherBeanListOne.getOid(), LogThreadLocal.getTrackingNo());
return orderPayResponse;
}
//扫脸支付
if (totalAmount > 0 && StringUtils.isNotBlank(createOrderVo.getFaceCode())) {
//svc卡支付
orderPayResponse = facePay(createOrderVo.getFaceCode(), fatherBeanListOne, paymentRequest, LogThreadLocal.getTrackingNo());
return orderPayResponse;
}
//0元订单,商品券订单等等
if (totalAmount == 0) {
// 0元订单如果不需要支付,自定义支付单号
String fmId = "SPAY" + ValidationCode.getRandomUuid();
orderPayResponse = orderAdapter.getOrderPayResponse(fatherBeanListOne.getCompanyId(), paymentRequest, fatherBeanListOne.getOid(), fmId);
return orderPayResponse;
}
return orderPayResponse;
}
/**
* 扫脸支付
*/
......@@ -437,11 +334,9 @@ public class PayServiceImpl {
request.setOperatorId("1");
request.setVer("2");
//支付服务扫脸付接口
AppLogUtil.infoLog("facePay_request", JSONObject.toJSON(request), null);
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> responseDto = null;
try {
responseDto = paymentNewClient.facePay(request);
AppLogUtil.infoLog("facePay_response", null, JSONObject.toJSON(responseDto));
} catch (Exception e) {
AppLogUtil.errorLog("facePay_error", null, null, e);
}
......
......@@ -16,6 +16,7 @@ import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.product.ValidateProductInfosDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.*;
import cn.freemud.enums.integralproduct.IntegralProductStatusEnum;
......@@ -117,7 +118,8 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
@Autowired
private OrderServiceImpl orderservice;
@Autowired
private StoreCenterService storeCenterService;
// private StoreCenterService storeCenterService;
private StoreServiceImpl storeService;
@Autowired
private OrderAdapter orderAdapter;
@Autowired
......@@ -167,6 +169,9 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
@Autowired
private PayServiceImpl payService;
public SellCouponOrderServiceImpl() {
}
/**
* 抖音卖券
......@@ -193,12 +198,12 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "支付门店未配置");
}
String storeId = wxAppStore.getStoreId();
//查询门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, storeId,null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getStatusCode() != 100 || storeResponse.getBizVO() == null) {
// 获取门店信息
StoreMixResponseDto storeMixResponseDto = storeService.getStoreInfoNew(partnerId, storeId, false);
if (storeMixResponseDto == null || storeMixResponseDto.getStoreInfo() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
StoreResponseDto storeResponse = storeMixResponseDto.getStoreInfo();
GetProductInfoDto getProductInfoDto = new GetProductInfoDto();
getProductInfoDto.setPartnerId(partnerId);
......@@ -305,13 +310,13 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
if (StringUtils.isNotBlank(requestVo.getCardCode()) && CollectionUtils.isNotEmpty(virtualProductSvcPayPartnerId) && !virtualProductSvcPayPartnerId.contains(partnerId)) {
return ResponseUtil.error(ResponseResult.PAY_SVC_CONFIG_ERROR);
}
//查询门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, storeId,null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getStatusCode() != 100 || storeResponse.getBizVO() == null) {
// 获取门店信息
StoreMixResponseDto storeMixResponseDto = storeService.getStoreInfoNew(partnerId, storeId, false);
if (storeMixResponseDto == null || storeMixResponseDto.getStoreInfo() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
StoreResponse.BizVO storeResponseDto = storeResponse.getBizVO();
StoreResponseDto storeResponseDto = storeMixResponseDto.getStoreInfo();
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder.checkOrderByStore(storeResponseDto);
......@@ -343,7 +348,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
}
//卖券订单biztype默认传入6
BaseResponse createOrderRequestResponse = checkOrderCoupon(userLoginInfoDto, storeResponse, trackingNo, requestVo.getMenuType(), 6, partnerId, storeId, requestVo.getSkuId(),requestVo.getCardCode());
BaseResponse createOrderRequestResponse = checkOrderCoupon(userLoginInfoDto, storeResponseDto, trackingNo, requestVo.getMenuType(), 6, partnerId, storeId, requestVo.getSkuId(),requestVo.getCardCode());
if (createOrderRequestResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderRequestResponse.getCode()) || createOrderRequestResponse.getResult() == null) {
return createOrderRequestResponse;
}
......@@ -456,7 +461,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
* @return
*/
public BaseResponse checkOrderCoupon(AssortmentCustomerInfoVo userLoginInfoDto,
StoreResponse storeResponse,
StoreResponseDto storeResponse,
String trackingNo,
String menuType,
Integer bizType,
......@@ -535,7 +540,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
CreateOrderRequest createOrderRequest = convent2NEWCreateOrderRequest(userLoginInfoDto,
productInfosByIds.getData(),
activeDetailVOS,
storeResponse.getBizVO(),storeId,cardCode,skuId,menuType,bizType);
storeResponse,storeId,cardCode,skuId,menuType,bizType);
return ResponseUtil.success(createOrderRequest);
}
......@@ -716,7 +721,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
*/
private CreateOrderRequest convent2NEWCreateOrderRequest(AssortmentCustomerInfoVo userLoginInfoDto,
GetProductInfosResponse productInfosResponse,List<ActiveDetailVO> activeDetailVOS,
StoreResponse.BizVO storeInfo,
StoreResponseDto storeInfo,
String shopId,
String cardCode,
String skuId,
......@@ -822,7 +827,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
deliveryContactInfoList.add(deliveryContactInfoCreateReq);
request.setDeliveryContactInfoList(deliveryContactInfoList);
//保存门店渠道信息
request.setOrderExtended(orderAdapter.saveStoreInfo(storeInfo));
request.setOrderExtended(orderAdapter.saveStoreInfoNew(storeInfo));
request.setOperator(userLoginInfoDto.getNickName());
request.setAppId(userLoginInfoDto.getWxAppId());
return request;
......
......@@ -3,9 +3,15 @@ package cn.freemud.service.impl;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.StoreDeliveryInfoDto;
import cn.freemud.entities.dto.UserDeliveryInfoDto;
import cn.freemud.entities.dto.store.StoreBaseResponseDto;
import cn.freemud.entities.dto.store.StoreInfoRequestDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.ScopeConfigType;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.StoreService;
import cn.freemud.service.thirdparty.StoreClient;
import cn.freemud.utils.SpringBeanUtil;
import cn.freemud.utils.WebUtil;
import com.freemud.application.sdk.api.base.BaseResponse;
......@@ -31,11 +37,52 @@ public class StoreServiceImpl implements StoreService {
private static Gson gson = new Gson();
// @Autowired
// private StoreClient storeClient;
@Autowired
private StoreClient storeClient;
@Autowired
private RedisCache redisCache;
/**
* 查询门店信息新接口
*/
public StoreMixResponseDto getStoremixDto(String partnerId, String shopId, StoreInfoRequestDto.QueryInfo query) {
// 获取门店信息
StoreInfoRequestDto request = new StoreInfoRequestDto();
request.setPartnerId(partnerId);
request.setStoreCode(shopId);
request.setQuery(query);
StoreBaseResponseDto<StoreMixResponseDto> storeInfoNew = storeClient.getStoreInfoNew(request);
if (storeInfoNew == null || storeInfoNew.getBizVO() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
return storeInfoNew.getBizVO();
}
/**
* 查询门店信息新接口
*/
public StoreMixResponseDto getStoreInfoNew(String partnerId, String shopId, Boolean queryBusinessInfo) {
// 获取门店信息
StoreInfoRequestDto request = new StoreInfoRequestDto();
request.setPartnerId(partnerId);
request.setStoreCode(shopId);
StoreInfoRequestDto.QueryInfo query = new StoreInfoRequestDto.QueryInfo();
// query.setQueryStoreInfo(true);
query.setQueryBusinessInfo(queryBusinessInfo);
request.setQuery(query);
StoreBaseResponseDto<StoreMixResponseDto> storeInfoNew = storeClient.getStoreInfoNew(request);
if (storeInfoNew == null || storeInfoNew.getBizVO() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
if (queryBusinessInfo && storeInfoNew.getBizVO().getBusinessInfo() == null) {
throw new ServiceException(ResponseResult.STORE_DATE_ERROR);
}
return storeInfoNew.getBizVO();
}
/**
* 查询商户下的所有门店,按照距离排序缓存1分钟
* @param nearStoreRequestDto
......
......@@ -12,10 +12,10 @@
package cn.freemud.service.order;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
public interface OrderRelationService {
......@@ -24,14 +24,14 @@ public interface OrderRelationService {
* 创建订单的时间检查
* @param
*/
void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo);
// void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo);
/**
* 创建订单的时间检查 订单优化使用
* @param
*/
void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderBaseVo createOrderVo);
void createOrderTimeCheck(StoreResponseDto storeResponseDto, CreateOrderBaseVo createOrderVo);
/**
......
......@@ -13,6 +13,7 @@
package cn.freemud.service.order.impl;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.order.BusinessDate;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
......@@ -52,8 +53,8 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
@Autowired
private CheckOrder checkOrder;
@Override
public void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo) {
// @Override
public void createOrderTimeCheck(StoreResponseDto storeResponseDto, CreateOrderVo createOrderVo) {
// 只有外卖单才做下单时间判断
if (!CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType())){
......@@ -88,8 +89,8 @@ public class CocoOrderRelationServiceImpl implements OrderRelationService {
}
}
@Override
public void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderBaseVo createOrderVo) {
// @Override
public void createOrderTimeCheck(StoreResponseDto storeResponseDto, CreateOrderBaseVo createOrderVo) {
// 只有外卖单才做下单时间判断
if (!CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType())){
return;
......
......@@ -12,6 +12,7 @@
package cn.freemud.service.order.impl;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.vo.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
......@@ -25,11 +26,7 @@ public class PlatformOrderRelationServiceImpl implements OrderRelationService {
@Override
public void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderVo createOrderVo) {
}
@Override
public void createOrderTimeCheck(StoreResponse.BizVO storeResponseDto, CreateOrderBaseVo createOrderVo) {
public void createOrderTimeCheck(StoreResponseDto storeResponseDto, CreateOrderBaseVo createOrderVo) {
}
......
......@@ -10,6 +10,7 @@ import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.bo.CreateOrderBo;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.SvcComPayRequestDto;
import cn.freemud.entities.dto.SvcComPayResponseDto;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
......@@ -634,7 +635,7 @@ public abstract class UniversalOrderService {
public OrderExtInfoDto getExtInfoUniversal(CreateOrderBo createOrderBo) {
CreateOrderBaseVo createOrderBaseVo = createOrderBo.getCreateOrderBaseVo();
StoreResponse.BizVO storeResponseDto = createOrderBo.getStoreResponseDto();
StoreResponseDto storeResponseDto = createOrderBo.getStoreResponseDto();
AssortmentCustomerInfoVo userLoginInfoDto = createOrderBo.getUserLoginInfoDto();
ShoppingCartGoodsDto shoppingCartGoodsDto = createOrderBo.getShoppingCartGoodsDto();
......
......@@ -220,7 +220,7 @@ public class SaasMallOrderService extends UniversalOrderService {
*/
@Override
protected BaseResponse createSharedOrder(CreateOrderBo createOrderBo) {
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(createOrderBo.getStoreResponseDto());
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfoNew(createOrderBo.getStoreResponseDto());
CreateOrderBaseVo createOrderBaseVo = createOrderBo.getCreateOrderBaseVo();
ShoppingCartGoodsDto shoppingCartGoodsDto = createOrderBo.getShoppingCartGoodsDto();
//创建普通订单
......
package cn.freemud.service.impl;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.entities.dto.StoreResponseDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
......@@ -74,7 +75,7 @@ public class MallOrderServiceImplTest {
@Test
public void f1() {
mcCafeOrderService.createOrder(JSON.parseObject("{\"buyType\":0,\"cardKeyCode\":\"509835\",\"channelType\":\"saas\",\"couponCode\":\"\",\"menuType\":\"saas\",\"needInvoice\":1,\"orderRemark\":\"\",\"orderType\":1,\"partnerId\":\"1628\",\"payChannelType\":1,\"receiveId\":\"\",\"sessionId\":\"18459edce0b4c5a5794e855b988d45e0b54ba705\",\"shopId\":\"1950512\",\"takeMealFlag\":\"0\"}", CreateOrderVo.class),
new StoreResponse.BizVO(),
new StoreResponseDto(),
JSON.parseObject("{\"activityDiscountsDtos\":[{\"activityCode\":\"618535339440866\",\"activityName\":\"五元冰中杯拿铁\",\"activityType\":32,\"cartGoodsUid\":\"\",\"discountAmount\":0,\"extendType\":0},{\"activityCode\":\"601817311288933\",\"activityName\":\"麦咖啡6折月卡\",\"activityType\":38,\"cartGoodsUid\":\"\",\"discountAmount\":0,\"extendType\":12}],\"deliveryAmount\":0,\"discountDeliveryAmount\":0,\"isDiscountDelivery\":false,\"monthCardDiscount\":{\"couponCode\":\"601817311288933\",\"discountAmount\":0,\"discountDesc\":\"麦咖啡6折月卡\",\"discountLogo\":\"https://img0.sandload.cn/mcd_4ac948fb-e271-495c-8b59-02a2552b0385.png\"},\"originalTotalAmount\":1490,\"packageAmount\":0,\"payCardFee\":0,\"products\":[{\"activityDiscountsDtos\":[{\"activityCode\":\"618535339440866\",\"activityName\":\"五元冰中杯拿铁\",\"activityType\":32,\"discountAmount\":0,\"extendType\":0,\"tenderId\":\"510097\"}],\"attributeNames\":\"{\\\"attributeForeignNames\\\":\\\"\\\",\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"fba23e82-f373-4efe-b269-3f894b7518d9\",\"classificationId\":\"\",\"classificationName\":\"\",\"comboProducts\":[{\"attributeNames\":\"{\\\"attributeForeignNames\\\":\\\"\\\",\\\"attributeNames\\\":\\\"\\\"}\",\"customerCode\":\"4284\",\"extraList\":[],\"hasProductCoupon\":false,\"isB3S1Coupon\":0,\"isB3S1CouponGoods\":0,\"isFixedProduct\":true,\"isMonthCard\":0,\"isTableware\":0,\"materialList\":[],\"originalPrice\":1900,\"parentProductId\":\"204906623301330748\",\"picture\":\"https://picture.sandload.cn/1608184940077.png\",\"productType\":6,\"qty\":1,\"skuId\":\"190075426702468663\",\"skuName\":\"冰拿铁中杯\",\"spuName\":\"冰拿铁中杯\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0}],\"couponCode\":\"618535339440866\",\"customerCode\":\"510097\",\"extraList\":[],\"hasProductCoupon\":false,\"isB3S1Coupon\":0,\"isB3S1CouponGoods\":0,\"isMonthCard\":0,\"isTableware\":0,\"materialList\":[],\"originalPrice\":500,\"picture\":\"https://picture.sandload.cn/1625639691765.png\",\"productCode\":\"510097\",\"productType\":6,\"qty\":1,\"skuId\":\"204906623301330748\",\"skuName\":\"五元冰中杯拿铁\",\"spuId\":\"204906623301330748\",\"spuName\":\"五元冰中杯拿铁\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0},{\"activityDiscountsDtos\":[],\"attributeNames\":\"{\\\"attributeForeignNames\\\":\\\"\\\",\\\"attributeNames\\\":\\\"\\\"}\",\"cartGoodsUid\":\"f6ef0233-9801-4eb5-b6c4-62edd9070ec4\",\"classificationId\":\"\",\"classificationName\":\"\",\"extraList\":[],\"hasProductCoupon\":false,\"isB3S1Coupon\":0,\"isB3S1CouponGoods\":0,\"isMonthCard\":1,\"isTableware\":0,\"materialList\":[],\"monthCardInfo\":{\"cardCode\":\"601817311288933\",\"cardNo\":\"MQYK4872D6896B41011BAEFD21C5C557F0A1\"},\"originalPrice\":990,\"picture\":\"https://picture.sandload.cn/1618542683267.png\",\"productCode\":\"509835\",\"productType\":9,\"qty\":1,\"skuId\":\"205155790621999679\",\"skuName\":\"麦咖啡6折月卡\",\"spuId\":\"205155790621999679\",\"spuName\":\"麦咖啡6折月卡\",\"stockLimit\":false,\"tax\":0.01,\"taxId\":\"26\",\"totalDiscountAmount\":0,\"unit\":\"\",\"weight\":0.0}],\"totalAmount\":1490,\"totalDiscountAmount\":0}", ShoppingCartGoodsDto.class),
new OrderExtendedReq(),
OrderClientType.SAAS,"www");
......
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