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()) {
......
......@@ -17,11 +17,11 @@ import cn.freemud.constant.CommonsConstant;
import cn.freemud.constant.CustomerScoreConstant;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.dto.order.CreateOrderAccountDto;
import cn.freemud.entities.dto.order.CreateOrderProductDto;
import cn.freemud.entities.dto.order.*;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.pay.CombPayResponse;
import cn.freemud.entities.dto.pay.OrderPayResponse;
import cn.freemud.entities.dto.promotion.OrderBeanRequest;
......@@ -79,7 +79,6 @@ import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest;
import com.freemud.sdk.api.assortment.order.request.payment.PayPlatformVO;
import com.freemud.sdk.api.assortment.order.request.payment.ProductVO;
import com.freemud.sdk.api.assortment.order.response.order.CreateOrderFlowResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.freemud.sdk.api.assortment.payment.request.UnifiedOrderRequest;
......@@ -179,7 +178,8 @@ public class OrderAdapter {
* @param shoppingCartGoodsDto
* @return
*/
public BaseCreateOrderRequest convent2CreateOrderDto(CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto, StoreResponse.BizVO storeResponseDto) {
public BaseCreateOrderRequest convent2CreateOrderDto(CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto,
StoreResponseDto storeResponseDto) {
BaseCreateOrderRequest createOrderDto = getCreateOrderDto(createOrderVo);
ArrayList<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>();
long deliveryAmount = 0;
......@@ -226,10 +226,6 @@ public class OrderAdapter {
products.add(getMcCafeWithOrderVirtualProduct(shoppingCartGoodsDto, createOrderVo));
}
// Set<String> withOrderBuyCouponCodeSet = new HashSet<>();
// withOrderBuyCouponCodeSet.add(withOrderBuyCouponCode);
// cartGoodsDetailDtos.stream().filter(o -> ProductTypeEnum.getVirtualProductType().contains(o.getProductType())).map(o -> withOrderBuyCouponCodeSet.add(o.getMonthCardInfo().getCardCode()));
// 根据购物车商品信息获取优惠信息
int orderAccountIndex = 0;
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : cartGoodsDetailDtos) {
......@@ -615,24 +611,24 @@ public class OrderAdapter {
return WebUtil.IsPtInPoly(point2D, points);
}
public List<ShareDiscountActivityDto.ApportionGood> getApportionGoodsBySkuId(CreateOrderProductDemoDto createOrderProductDemoDto, List<ShareDiscountActivityDto> newShareDiscountActivityDtos) {
List<ShareDiscountActivityDto.ApportionGood> list = Lists.newArrayList();
if (CollectionUtils.isEmpty(newShareDiscountActivityDtos)) {
return list;
}
String skuId = createOrderProductDemoDto.getSpecification();
boolean hasProductCoupon = createOrderProductDemoDto.getHasProductCoupon();
Iterator<ShareDiscountActivityDto> iterator = newShareDiscountActivityDtos.iterator();
while (iterator.hasNext()) {
ShareDiscountActivityDto shareDiscountActivityDto = iterator.next();
if (skuId.equals(shareDiscountActivityDto.getGoodsId()) && shareDiscountActivityDto.getHasProductCoupon().equals(hasProductCoupon)) {
list = shareDiscountActivityDto.getApportionGoods();
iterator.remove();
break;
}
}
return list;
}
// public List<ShareDiscountActivityDto.ApportionGood> getApportionGoodsBySkuId(CreateOrderProductDemoDto createOrderProductDemoDto, List<ShareDiscountActivityDto> newShareDiscountActivityDtos) {
// List<ShareDiscountActivityDto.ApportionGood> list = Lists.newArrayList();
// if (CollectionUtils.isEmpty(newShareDiscountActivityDtos)) {
// return list;
// }
// String skuId = createOrderProductDemoDto.getSpecification();
// boolean hasProductCoupon = createOrderProductDemoDto.getHasProductCoupon();
// Iterator<ShareDiscountActivityDto> iterator = newShareDiscountActivityDtos.iterator();
// while (iterator.hasNext()) {
// ShareDiscountActivityDto shareDiscountActivityDto = iterator.next();
// if (skuId.equals(shareDiscountActivityDto.getGoodsId()) && shareDiscountActivityDto.getHasProductCoupon().equals(hasProductCoupon)) {
// list = shareDiscountActivityDto.getApportionGoods();
// iterator.remove();
// break;
// }
// }
// return list;
// }
public List<ShareDiscountActivityDto.ApportionGood> getApportionGoodsBySkuIdNew(CreateOrderProductRequest createOrderProductDemoDto, List<ShareDiscountActivityDto> newShareDiscountActivityDtos, Boolean hasProductCoupon) {
List<ShareDiscountActivityDto.ApportionGood> list = Lists.newArrayList();
......@@ -655,29 +651,29 @@ public class OrderAdapter {
/**
* 统计参与优惠的商品
*/
public List<CreateAccountProductDto> getAccountProducts(CreateOrderAccountDto createOrderAccountDto, List<CreateOrderProductDto> createOrderProductDtos) {
Map<String, CreateAccountProductDto> productDtoMap = Maps.newTreeMap();
createOrderProductDtos.forEach(createOrderProductDto -> {
if (CollectionUtils.isNotEmpty(createOrderProductDto.getDiscountList())) {
createOrderProductDto.getDiscountList().forEach(productDiscount -> {
if (createOrderAccountDto.getOldOrderAccountType().equals(productDiscount.getOldOrderAccountType())) {
if (!productDtoMap.containsKey(productDiscount.getProductId())) {
CreateAccountProductDto createAccountProductDto = CreateAccountProductDto.builder()
.productId(productDiscount.getProductId())
.discountQty(productDiscount.getDiscountQty())
.build();
productDtoMap.put(productDiscount.getProductId(), createAccountProductDto);
} else {
CreateAccountProductDto oldCreateAccountProductDto = productDtoMap.get(productDiscount.getProductId());
oldCreateAccountProductDto.setDiscountQty(oldCreateAccountProductDto.getDiscountQty() + productDiscount.getDiscountQty());
productDtoMap.put(productDiscount.getProductId(), oldCreateAccountProductDto);
}
}
});
}
});
return new ArrayList<>(productDtoMap.values());
}
// public List<CreateAccountProductDto> getAccountProducts(CreateOrderAccountDto createOrderAccountDto, List<CreateOrderProductDto> createOrderProductDtos) {
// Map<String, CreateAccountProductDto> productDtoMap = Maps.newTreeMap();
// createOrderProductDtos.forEach(createOrderProductDto -> {
// if (CollectionUtils.isNotEmpty(createOrderProductDto.getDiscountList())) {
// createOrderProductDto.getDiscountList().forEach(productDiscount -> {
// if (createOrderAccountDto.getOldOrderAccountType().equals(productDiscount.getOldOrderAccountType())) {
// if (!productDtoMap.containsKey(productDiscount.getProductId())) {
// CreateAccountProductDto createAccountProductDto = CreateAccountProductDto.builder()
// .productId(productDiscount.getProductId())
// .discountQty(productDiscount.getDiscountQty())
// .build();
// productDtoMap.put(productDiscount.getProductId(), createAccountProductDto);
// } else {
// CreateAccountProductDto oldCreateAccountProductDto = productDtoMap.get(productDiscount.getProductId());
// oldCreateAccountProductDto.setDiscountQty(oldCreateAccountProductDto.getDiscountQty() + productDiscount.getDiscountQty());
// productDtoMap.put(productDiscount.getProductId(), oldCreateAccountProductDto);
// }
// }
// });
// }
// });
// return new ArrayList<>(productDtoMap.values());
// }
/**
* 通过CreateOrderVo 创建 CreateOrderDto
......@@ -3199,42 +3195,6 @@ public class OrderAdapter {
}
/**
* 转换第三方配送信息
*/
public BaseCreateOrderRequest.DeliveryTypeInfo convent2DeliveryTypeInfo(CreateOrderDto.DeliveryTypeInfo oldDeliveryTypeInfo) {
if (oldDeliveryTypeInfo == null || StringUtils.isBlank(oldDeliveryTypeInfo.getDeliveryType())) {
return null;
}
BaseCreateOrderRequest.DeliveryTypeInfo newDeliveryTypeInfo = new BaseCreateOrderRequest.DeliveryTypeInfo();
if (QueryDeliveryType.SELF.getCode().equals(oldDeliveryTypeInfo.getDeliveryType())) {
newDeliveryTypeInfo.setDeliveryType(QueryDeliveryType.SELF);
}
if (QueryDeliveryType.THIRD.getCode().equals(oldDeliveryTypeInfo.getDeliveryType())) {
newDeliveryTypeInfo.setDeliveryType(QueryDeliveryType.THIRD);
}
return newDeliveryTypeInfo;
}
/**
* 转换创建订单新
*/
public CreateOrderResponseVo convent2CreateOrderResponseVo(CreateOrderFlowResponse.CreateOrderResponseVo createOrderResponseVo) {
if (createOrderResponseVo == null) {
return null;
}
CreateOrderResponseVo createOrder = new CreateOrderResponseVo();
createOrder.setOid(createOrderResponseVo.getOrderId());
createOrder.setFmId(createOrderResponseVo.getFmId());
createOrder.setWxappId(createOrderResponseVo.getWxAppid());
createOrder.setTimestamp(createOrderResponseVo.getTimestamp());
createOrder.setNonceStr(createOrderResponseVo.getNonceStr());
createOrder.setPackageX(createOrderResponseVo.getPackageX());
createOrder.setSignType(createOrderResponseVo.getSignType());
createOrder.setSign(createOrderResponseVo.getSign());
createOrder.setPaySuccess(createOrderResponseVo.getPaySuccess());
return createOrder;
}
public UnifiedOrderRequest convent2UnifiedOrderRequest(OrderBeanV1 orderBean, PaymentRequest paymentRequest, Long amount, Integer cardAmount, String transId) {
return convent2UnifiedOrderRequest(orderBean, paymentRequest, amount, cardAmount, transId, null);
......@@ -3842,6 +3802,18 @@ public class OrderAdapter {
return orderExtended;
}
/**
* 门店渠道信息保存
*
* @return
*/
public OrderExtendedReq saveStoreInfoNew(StoreResponseDto storeResponseDto) {
OrderExtendedReq orderExtended = new OrderExtendedReq();
orderExtended.setOrderClientGroupCode(storeResponseDto.getParentCode());
orderExtended.setOrderClientGroup(storeResponseDto.getParentName());
return orderExtended;
}
// public OrderTaskReq saveOrderTaskReq(String orderWarnTime, Long gmtExpect) {
// OrderTaskReq orderTaskReq = new OrderTaskReq();
......@@ -3951,59 +3923,29 @@ public class OrderAdapter {
return requestDto;
}
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(AssortmentCustomerInfoVo userLoginInfoDto, CreateOrderVo createOrderVo,
CreateOrderOperateDto createOrderOperateDto, OrderExtInfoDto orderExtInfoDTO) {
return this.convertToCreatePrepayRequestDto(createOrderVo.getPartnerId()
, userLoginInfoDto.getWxAppId()
, userLoginInfoDto.getOpenId()
, createOrderVo.getFaceCode()
, createOrderVo.getCardCode()
, null
, createOrderOperateDto.getFatherOrderBean()
, createOrderOperateDto.getProductOrderBean()
, createOrderOperateDto.getTotalAmount() == null ? 0 : createOrderOperateDto.getTotalAmount()
, createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount()
, orderExtInfoDTO
, createOrderOperateDto.getFatherOrderBean().getOid()
, null
, createOrderVo.getUnionPayCard()
, createOrderVo.getShopId()
, createOrderVo.getChannel() == null ? "" : createOrderVo.getChannel()
);
}
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(String partnerId
, String wxAppId, String openId
, String faceCode
, String cardCode
, String payCode
, OrderBeanV1 fatherOrderBean
, OrderBeanV1 productOrderBean
, long totalAmount
, int cardAmount
, OrderExtInfoDto orderExtInfoDTO
, String transId
, OrderClientType orderClient
, CreateOrderVo.UnionPayCard unionPayCard
, String storeId
, String channel) {
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(CreateOrderBONew createOrderBO,CreateOrderOperateDto createOrderOperateDto) {
AssortmentCustomerInfoVo userLoginInfoDto = createOrderBO.getUserLoginInfoDto();
CreateOrderVo createOrderVo =createOrderBO.getCreateOrderVo();
OrderExtInfoDto orderExtInfoDTO = createOrderBO.getExtInfo();
CreatePrepayRequestDto requestDto = new CreatePrepayRequestDto();
requestDto.setPartnerId(partnerId);
requestDto.setWxAppId(wxAppId);
requestDto.setOpenId(openId);
requestDto.setFaceCode(faceCode);
requestDto.setCardCode(cardCode);
requestDto.setPayCode(payCode);
requestDto.setFatherOrderBean(fatherOrderBean);
requestDto.setProductOrderBean(productOrderBean);
requestDto.setTotalAmount(totalAmount);
requestDto.setCardAmount(cardAmount);
requestDto.setPartnerId(createOrderVo.getPartnerId());
requestDto.setWxAppId(userLoginInfoDto.getWxAppId());
requestDto.setOpenId( userLoginInfoDto.getOpenId());
requestDto.setFaceCode(createOrderVo.getFaceCode());
requestDto.setCardCode(createOrderVo.getCardCode());
requestDto.setPayCode(null);
requestDto.setFatherOrderBean(createOrderOperateDto.getFatherOrderBean());
requestDto.setProductOrderBean(createOrderOperateDto.getProductOrderBean());
requestDto.setTotalAmount(createOrderOperateDto.getTotalAmount() == null ? 0 : createOrderOperateDto.getTotalAmount());
requestDto.setCardAmount(createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount());
requestDto.setOrderExtInfoDTO(orderExtInfoDTO);
requestDto.setTransId(transId);
requestDto.setOrderClient(orderClient);
requestDto.setUnionPayCard(unionPayCard);
requestDto.setStoreId(storeId);
requestDto.setChannel(channel);
requestDto.setTransId(createOrderOperateDto.getFatherOrderBean().getOid());
requestDto.setOrderClient(null);
requestDto.setUnionPayCard(createOrderVo.getUnionPayCard());
requestDto.setStoreId(createOrderVo.getShopId());
requestDto.setChannel(createOrderVo.getChannel() == null ? "" : createOrderVo.getChannel());
return requestDto;
}
......@@ -4641,4 +4583,73 @@ public class OrderAdapter {
return applicationType;
}
/**
* 设置创建订单的 extInfo字段
* @return
*/
public OrderExtInfoDto setOrderExtInfo(AssortmentCustomerInfoVo userLoginInfoDto, StoreResponseDto storeResponseDto,
CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto) {
Integer serviceTime = storeResponseDto.getServiceTime();
String sessionId = createOrderVo.getSessionId();
String version = createOrderVo.getVersion();
CreateOrderVo.BuyMemberCard memberCard = createOrderVo.getBuyMemberCard();
String deliveryHoursDayStart = "";
String deliveryHoursDayEnd = "";
if (StringUtils.isNotBlank(storeResponseDto.getDeliveryHoursDay())) {
String[] days = storeResponseDto.getDeliveryHoursDay().split("-");
if (days.length == 2) {
deliveryHoursDayStart = DateUtil.convert2String(new Date(), DateUtil.FORMAT_yyyyMMdd_date) + " " + days[0] + ":00";
// deliveryHoursDayEnd = DateUtil.convert2String(new Date(), DateUtil.FORMAT_yyyyMMdd_date) + " " + days[1] + ":00";
}
}
OrderExtInfoDto orderExtInfoDto = new OrderExtInfoDto();
orderExtInfoDto.setDeliveryHoursDayStart(deliveryHoursDayStart);
orderExtInfoDto.setDeliveryHoursDayEnd(deliveryHoursDayEnd);
orderExtInfoDto.setOpenid(userLoginInfoDto.getOpenId());
//todo 字段多余,订单对象已有该字段
orderExtInfoDto.setAppid(userLoginInfoDto.getWxAppId());
orderExtInfoDto.setSessionId(sessionId);
if (Objects.equals(serviceTime, null)) {
serviceTime = 50;
}
orderExtInfoDto.setServiceTime(serviceTime);
orderExtInfoDto.setPushOrderTime(0);
orderExtInfoDto.setVersion(version);
if (memberCard != null && memberCard.getRuleId() != null) {
orderExtInfoDto.setRuleId(memberCard.getRuleId());
}
// 扩展字段中存储 sessionKey
orderExtInfoDto.setSessionKey(createOrderVo.getSessionKey());
orderExtInfoDto.setFormId(createOrderVo.getFormId());
//todo 多余字段
orderExtInfoDto.setFromAppId(userLoginInfoDto.getWxAppId());
if (StringUtils.isNotBlank(createOrderVo.getScene())) {
orderExtInfoDto.setScene(createOrderVo.getScene());
}
if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getSendPoint()) {
ShoppingCartGoodsDto.SendPoint sendPoint = shoppingCartGoodsDto.getSendPoint();
orderExtInfoDto.setSendPointValidityDateDays(sendPoint.getValidityDateDays());
orderExtInfoDto.setSendPointMaxNum(sendPoint.getMaxNum());
orderExtInfoDto.setSendPointActivityCode(sendPoint.getActivityCode());
orderExtInfoDto.setSendPointEndTime(sendPoint.getEndTime().getTime() + "");
orderExtInfoDto.setSendPointSendPoint(sendPoint.getSendPoint());
orderExtInfoDto.setSendPointStoreLevel(sendPoint.getStoreLevel());
orderExtInfoDto.setIsContinueExchange(sendPoint.getIsContinueExchange());
}
if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getTotalScore()) {
orderExtInfoDto.setTotalScore(shoppingCartGoodsDto.getTotalScore());
}
if (null != shoppingCartGoodsDto && null != shoppingCartGoodsDto.getPackageAmountCollectType()) {
orderExtInfoDto.setPackageAmountCollectType(shoppingCartGoodsDto.getPackageAmountCollectType());
}
orderExtInfoDto.setUnDistribution(createOrderVo.getUnDistribution());
return orderExtInfoDto;
}
}
......@@ -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;
/**
......
......@@ -17,6 +17,7 @@ import cn.freemud.constant.ResponseCodeConstant;
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.DeliveryBaseResponse;
import cn.freemud.entities.dto.delivery.GetDeliveryFlagRequest;
......@@ -24,6 +25,7 @@ import cn.freemud.entities.dto.delivery.GetDeliveryFlagResponseDto;
import cn.freemud.entities.dto.order.BusinessDate;
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.CreateOrderBaseVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.GetProductsVo;
......@@ -159,7 +161,7 @@ public abstract class CheckOrderUniversal {
// end
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号 主流程
StoreResponse.BizVO storeResponseDto = checkOrderByStore(createOrderBo, trackingNo, true);
StoreResponseDto storeResponseDto = checkOrderByStore(createOrderBo, trackingNo, true);
createOrderBo.setStoreResponseDto(storeResponseDto);
......@@ -204,21 +206,21 @@ public abstract class CheckOrderUniversal {
/**
* 下单门店相关校验
*/
protected StoreResponse.BizVO checkOrderByStore(CreateOrderBo createOrderBo, String trackingNo, boolean isCheck) {
protected StoreResponseDto checkOrderByStore(CreateOrderBo createOrderBo, String trackingNo, boolean isCheck) {
CreateOrderBaseVo createOrderBaseVo = createOrderBo.getCreateOrderBaseVo();
String partnerId = createOrderBaseVo.getPartnerId();
String shopId = createOrderBaseVo.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);
}
StoreResponseDto storeResponseDto = storeMixResponseDto.getStoreInfo();
if (isCheck) {
//订单预约单检查
OrderCheckAdapter.check(createOrderBaseVo, storeResponse);
OrderCheckAdapter.check(createOrderBaseVo, storeMixResponseDto);
}
StoreResponse.BizVO storeResponseDto = storeResponse.getBizVO();
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if (storeResponseDto.getActiveFlag() == null || storeResponseDto.getActiveFlag() != 1) {
throw new ServiceException(ResponseResult.STORE_ITEM_STOP_BUSINESS);
......@@ -362,7 +364,7 @@ public abstract class CheckOrderUniversal {
*/
protected void checkOrderByOrderType(CreateOrderBo createOrderBo) {
CreateOrderBaseVo createOrderVo = createOrderBo.getCreateOrderBaseVo();
StoreResponse.BizVO storeResponseDto = createOrderBo.getStoreResponseDto();
StoreResponseDto storeResponseDto = createOrderBo.getStoreResponseDto();
AssortmentCustomerInfoVo userLoginInfoDto = createOrderBo.getUserLoginInfoDto();
ShoppingCartGoodsDto shoppingCartGoodsDto = createOrderBo.getShoppingCartGoodsDto();
......@@ -550,7 +552,7 @@ public abstract class CheckOrderUniversal {
/**
* 获取门店配送信息
*/
public StoreDeliveryInfoDto getStoreDeliveryInfo(StoreResponse.BizVO storeResponseDto,
public StoreDeliveryInfoDto getStoreDeliveryInfo(StoreResponseDto storeResponseDto,
AssortmentOpenPlatformIappWxappConfig openPlatformIappWxappConfig, String wxAppid) {
StoreDeliveryInfoDto storeDeliveryInfoDto = new StoreDeliveryInfoDto();
storeDeliveryInfoDto.setPartnerId(storeResponseDto.getPartnerId());
......@@ -616,7 +618,7 @@ public abstract class CheckOrderUniversal {
/**
* 获取门店配送信息
*/
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());
......@@ -707,7 +709,7 @@ public abstract class CheckOrderUniversal {
return point2DList;
}
public void checkOrderExpectTime(CreateOrderBaseVo createOrderVo, StoreResponse.BizVO storeResponseDto, Date takeMealDateTime) {
public void checkOrderExpectTime(CreateOrderBaseVo createOrderVo, StoreResponseDto storeResponseDto, Date takeMealDateTime) {
if (takeMealDateTime == null) {
return;
}
......@@ -773,7 +775,7 @@ public abstract class CheckOrderUniversal {
* @param takeMealDateTime 预约单送达时间/即时单下单时间
* @param expectTimeInTodayBusinessTime 是否在当日营业时间内
*/
protected void checkTakeOutTime(StoreResponse.BizVO storeResponseDto, Date now, Date takeMealDateTime, boolean expectTimeInTodayBusinessTime) {
protected void checkTakeOutTime(StoreResponseDto storeResponseDto, Date now, Date takeMealDateTime, boolean expectTimeInTodayBusinessTime) {
String deliveryStr = storeResponseDto.getDeliveryHoursDay().replace("-", ",")
.replace("_", ",");
String[] deliverys = deliveryStr.split(",");
......@@ -807,7 +809,7 @@ public abstract class CheckOrderUniversal {
}
public Date getOrderExpectTime(String takeMealFlag, String takeMealTimes, String expectTime,
CreateOrderType createOrderType, Integer serviceTime, StoreResponse.BizVO storeResponseDto) {
CreateOrderType createOrderType, Integer serviceTime, StoreResponseDto storeResponseDto) {
Date takeMealDateTime = null;
//0=到店单我已到店、外卖单尽快送出
if (StringUtils.isNotBlank(takeMealFlag) && "0".equals(takeMealFlag)) {
......@@ -867,7 +869,7 @@ public abstract class CheckOrderUniversal {
* @param toDay true 今日,false 明天
* @return
*/
protected BusinessDate getStoreBusinessDate(StoreResponse.BizVO storeResponseDto, boolean toDay) {
protected BusinessDate getStoreBusinessDate(StoreResponseDto storeResponseDto, boolean toDay) {
List<String> todayBusinessTimes = storeCenterService.getTodayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay());
if (CollectionUtils.isEmpty(todayBusinessTimes)) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
......@@ -876,63 +878,7 @@ public abstract class CheckOrderUniversal {
return businessDate;
}
public void checkOrderExpectTime(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, Date takeMealDateTime) {
if (takeMealDateTime == null) {
return;
}
//获取门店当天营业时间
Date todayEndDate = null;
List<String> todayBusinessTimes = storeCenterService.getTodayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay());
if (CollectionUtils.isEmpty(todayBusinessTimes)) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
}
BusinessDate businessDate = getStoreBusinessDate(todayBusinessTimes.get(todayBusinessTimes.size() - 1), true);
todayEndDate = businessDate.getEndDate();
//在当天营业时间内
boolean expectTimeInTodayBusinessTime = true;
Date date = new Date();
Date newDate = DateUtil.convert2Date(date, DateUtil.FORMAT_yyyyMMdd_date);
newDate = DateUtil.addDays(newDate, 1);
//隔天预约(在明日凌晨之后且在门店营业结束之后)
if (takeMealDateTime.after(todayEndDate) && takeMealDateTime.after(newDate)) {
expectTimeInTodayBusinessTime = false;
}
if (expectTimeInTodayBusinessTime) {
boolean inTodayBusinessTime = true;
for (String todayTime : todayBusinessTimes) {
//每段营业时间校验
BusinessDate businessDate2 = getStoreBusinessDate(todayTime, true);
if (takeMealDateTime.getTime() >= businessDate2.getStartDate().getTime()
&& takeMealDateTime.getTime() <= businessDate2.getEndDate().getTime()) {
inTodayBusinessTime = false;
break;
}
}
if (inTodayBusinessTime) {
throw new ServiceException(ResponseResult.ORDER_TAKEMEALTIME_INVAILD);
}
}
//隔天预约
if (!expectTimeInTodayBusinessTime) {
List<String> nextDayBusinessTimes = storeCenterService.getNextDayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay());
boolean inNextDayBusinessTime = true;
for (String nextDayTime : nextDayBusinessTimes) {
BusinessDate storeNextBusinessDate = getStoreBusinessDate(nextDayTime, false);
if (takeMealDateTime.getTime() >= storeNextBusinessDate.getStartDate().getTime()
&& takeMealDateTime.getTime() <= storeNextBusinessDate.getEndDate().getTime()) {
inNextDayBusinessTime = false;
break;
}
}
if (inNextDayBusinessTime) {
throw new ServiceException(ResponseResult.ORDER_TAKEMEALTIME_INVALID);
}
}
if (CreateOrderType.TAKE_OUT.getCode().equals(createOrderVo.getOrderType())) {
checkTakeOutTime(storeResponseDto, date, takeMealDateTime, expectTimeInTodayBusinessTime);
}
}
public BusinessDate getStoreBusinessDate(String businessHoursDay, boolean today) {
BusinessDate businessDate = new BusinessDate();
......
......@@ -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) {
......
......@@ -16,8 +16,10 @@ import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.StoreConstant;
import cn.freemud.entities.bo.CreateOrderBONew;
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.DeliveryBaseResponse;
import cn.freemud.entities.dto.delivery.GetDeliveryFlagRequest;
......@@ -42,6 +44,7 @@ import cn.freemud.service.order.OrderRelationFactory;
import cn.freemud.service.order.OrderRelationService;
import cn.freemud.service.thirdparty.*;
import cn.freemud.utils.AppLogUtil;
import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformIappWxappConfig;
......@@ -56,6 +59,7 @@ import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressR
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.ordercenter.enums.BizTypeEnum;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
......@@ -147,10 +151,67 @@ public class CheckOrder {
@Value("${card.pay.unDistribution.applyId:}")
private List<Integer> unDistributions;
/**
* 创建订单前参数校验与数据获取
*/
public cn.freemud.base.entity.BaseResponse checkCreateOrderInfo(CreateOrderBONew createOrderBO){
CreateOrderVo createOrderVo = createOrderBO.getCreateOrderVo();
//原标准点餐程序逻辑处理
cn.freemud.base.entity.BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if (ObjectUtils.notEqual(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return baseResponse;
}
// 查询用户信息、校验svc卡,余额购物车校验
AssortmentCustomerInfoVo userLoginInfoDto = this.checkOrderByMember(createOrderVo);
createOrderBO.setUserLoginInfoDto(userLoginInfoDto);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreMixResponseDto storeMixResponseDto = this.checkOrderByStore(createOrderBO);
createOrderBO.setStoreMixResponseDto(storeMixResponseDto);
StoreResponseDto storeInfo = storeMixResponseDto.getStoreInfo();
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto shoppingCartGoodsDto = this.getShoppingCartGoodsDto(createOrderVo);
createOrderBO.setShoppingCartGoodsDto(shoppingCartGoodsDto);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
checkOrderByOrderType(createOrderBO);
//更新订单使用
OrderExtInfoDto extInfo = orderAdapter.setOrderExtInfo(userLoginInfoDto, storeInfo, createOrderBO.getCreateOrderVo(), shoppingCartGoodsDto);
createOrderBO.setExtInfo(extInfo);
return ResponseUtil.success();
}
/**
* 标准点餐参数校验
*
* @param createOrderVo
* @return
*/
private cn.freemud.base.entity.BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo) {
if (StringUtils.isEmpty(createOrderVo.getSessionId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_SESSION_ERROR);
}
if (StringUtils.isEmpty(createOrderVo.getShopId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_STORE_ERROR);
}
if (createOrderVo.getOrderType() == null) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_ORDERTYPE_ERROR);
}
return ResponseUtil.success();
}
/**
* 下单会员相关校验
*/
public AssortmentCustomerInfoVo checkOrderByMember(CreateOrderVo createOrderVo, String trackingNo) {
public AssortmentCustomerInfoVo checkOrderByMember(CreateOrderVo createOrderVo) {
// 通过sessionId查询缓存中会员id
String sessionId = createOrderVo.getSessionId();
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
......@@ -223,29 +284,6 @@ public class CheckOrder {
/**
* 查询门店信息新接口
*/
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();
}
/**
* 查询门店信息新接口
*/
public StoreMixResponseDto getStoreInfoNew(String partnerId, String shopId, StoreInfoRequestDto.QueryInfo query) {
// 获取门店信息
StoreInfoRequestDto request = new StoreInfoRequestDto();
......@@ -262,19 +300,18 @@ public class CheckOrder {
/**
* 下单门店相关校验
*/
public StoreResponse.BizVO checkOrderByStore(CreateOrderVo createOrderVo, String trackingNo) {
public StoreMixResponseDto checkOrderByStore(CreateOrderBONew createOrderBO) {
CreateOrderVo createOrderVo = createOrderBO.getCreateOrderVo();
String partnerId = createOrderVo.getPartnerId();
String shopId = createOrderVo.getShopId();
// 获取门店信息
StoreResponse storeResponse = getStoreInfo(partnerId, shopId, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
//订单预约单检查&预定单检查
StoreMixResponseDto storeMixResponseDto = storeService.getStoreInfoNew(partnerId, shopId, true);
createOrderBO.setStoreMixResponseDto(storeMixResponseDto);
OrderCheckAdapter.check(createOrderVo, storeResponse);
StoreResponse.BizVO storeResponseDto = storeResponse.getBizVO();
StoreResponseDto storeResponseDto = storeMixResponseDto.getStoreInfo();
//订单预约单检查&预定单检查
OrderCheckAdapter.check(createOrderBO);
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if (storeResponseDto.getActiveFlag() == null || storeResponseDto.getActiveFlag() != 1) {
throw new ServiceException(ResponseResult.STORE_ITEM_STOP_BUSINESS);
......@@ -287,7 +324,7 @@ public class CheckOrder {
createOrderVo.setStoreAddress(storeResponseDto.getAddress());
createOrderVo.setThirdShopId(storeResponseDto.getThirdPartCode());
createOrderVo.setStoreNameEn(storeResponseDto.getStoreNameEn());
return storeResponseDto;
return storeMixResponseDto;
}
/**
......@@ -298,7 +335,7 @@ public class CheckOrder {
String shopId = createOrderVo.getShopId();
// 获取门店信息
StoreMixResponseDto storeInfoNew = getStoreInfoNew(partnerId, shopId, true);
StoreMixResponseDto storeInfoNew = storeService.getStoreInfoNew(partnerId, shopId, true);
BusinessInfoDto businessInfo = storeInfoNew.getBusinessInfo();
return businessInfo;
......@@ -320,12 +357,13 @@ public class CheckOrder {
/**
* 下单订单类型校验
*/
public Integer checkOrderByOrderType(CreateOrderVo createOrderVo, AssortmentCustomerInfoVo userLoginInfoDto,
StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto, String trackingNo) {
public Integer checkOrderByOrderType(CreateOrderBONew createOrderBO) {
CreateOrderVo createOrderVo = createOrderBO.getCreateOrderVo();
AssortmentCustomerInfoVo userLoginInfoDto = createOrderBO.getUserLoginInfoDto();
StoreMixResponseDto storeMixResponseDto = createOrderBO.getStoreMixResponseDto();
StoreResponseDto storeResponseDto = storeMixResponseDto.getStoreInfo();
ShoppingCartGoodsDto shoppingCartGoodsDto = createOrderBO.getShoppingCartGoodsDto();
// 下单时间校验
OrderRelationService orderRelationService = orderRelationFactory.getCreateOrderTimeCheckService(createOrderVo.getPartnerId());
orderRelationService.createOrderTimeCheck(storeResponseDto, createOrderVo);
Integer pushOrderTime = 0;
//非到店或者外卖,类型错误
if (!(CreateOrderType.COLLECT_GOODS.getCode().equals(createOrderVo.getOrderType()) ||
......@@ -432,7 +470,7 @@ public class CheckOrder {
if (storeDeliveryUseOld) {
storeDeliveryInfoDto = getStoreDeliveryInfo(storeResponseDto, config, appId);
} else {
storeDeliveryInfoDto = getNewStoreDeliveryInfo(storeResponseDto, config, appId, trackingNo);
storeDeliveryInfoDto = getNewStoreDeliveryInfo(appId,storeResponseDto, config);
}
//coco自配送提前45分钟,禁止下单
if (cocoPartnerId.equals(createOrderVo.getPartnerId()) &&
......@@ -469,7 +507,7 @@ public class CheckOrder {
// 先暂时这么写, 到时候需要优化这一块 对于门店的请求操作
StoreInfoRequestDto.QueryInfo query = new StoreInfoRequestDto.QueryInfo();
query.setQueryDeliveryInfo(Boolean.TRUE);
StoreMixResponseDto storemixDto = this.getStoremixDto(createOrderVo.getPartnerId(), createOrderVo.getShopId(), query);
StoreMixResponseDto storemixDto = storeService.getStoremixDto(createOrderVo.getPartnerId(), createOrderVo.getShopId(), query);
DeliveryInfoDTO deliveryInfo = storemixDto.getDeliveryInfo();
Long deliveryLimitAmount = storeDeliveryInfoDto.getDeliveryLimitAmount();
Long totalAmount = shoppingCartGoodsDto.getTotalAmount();
......@@ -502,7 +540,7 @@ public class CheckOrder {
* @param queryBusinessInfoNew
* @param storeResponseDto
*/
private void checkAdvanceOrderExpectTime(BusinessInfoDto queryBusinessInfoNew, StoreResponse.BizVO storeResponseDto, Date takeMealDateTime) {
private void checkAdvanceOrderExpectTime(BusinessInfoDto queryBusinessInfoNew, StoreResponseDto storeResponseDto, Date takeMealDateTime) {
if (Objects.isNull(queryBusinessInfoNew)) {
return;
}
......@@ -549,7 +587,7 @@ public class CheckOrder {
* @param toDay true 今日,false 明天
* @return
*/
private BusinessDate getStoreBusinessDate(StoreResponse.BizVO storeResponseDto, boolean toDay) {
private BusinessDate getStoreBusinessDate(StoreResponseDto storeResponseDto, boolean toDay) {
List<String> todayBusinessTimes = storeCenterService.getTodayBusinessTime(Integer.parseInt(storeResponseDto.getBusinessType()), storeResponseDto.getBusinessHoursDay());
if (CollectionUtils.isEmpty(todayBusinessTimes)) {
throw new ServiceException(ResponseResult.STORE_BUSINESS_HOUR_ERROR);
......@@ -558,7 +596,7 @@ public class CheckOrder {
return businessDate;
}
public void checkOrderExpectTime(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, Date takeMealDateTime) {
public void checkOrderExpectTime(CreateOrderVo createOrderVo, StoreResponseDto storeResponseDto, Date takeMealDateTime) {
if (takeMealDateTime == null) {
return;
}
......@@ -624,7 +662,7 @@ public class CheckOrder {
* @param takeMealDateTime 预约单送达时间/即时单下单时间
* @param expectTimeInTodayBusinessTime 是否在当日营业时间内
*/
private void checkTakeOutTime(StoreResponse.BizVO storeResponseDto, Date now, Date takeMealDateTime, boolean expectTimeInTodayBusinessTime) {
private void checkTakeOutTime(StoreResponseDto storeResponseDto, Date now, Date takeMealDateTime, boolean expectTimeInTodayBusinessTime) {
String deliveryStr = storeResponseDto.getDeliveryHoursDay().replace("-", ",")
.replace("_", ",");
String[] deliverys = deliveryStr.split(",");
......@@ -658,7 +696,7 @@ public class CheckOrder {
}
public Date getOrderExpectTime(String takeMealFlag, String takeMealTimes, String expectTime,
CreateOrderType createOrderType, Integer serviceTime, StoreResponse.BizVO storeResponseDto) {
CreateOrderType createOrderType, Integer serviceTime, StoreResponseDto storeResponseDto) {
Date takeMealDateTime = null;
//0=到店单我已到店、外卖单尽快送出
if (StringUtils.isNotBlank(takeMealFlag) && "0".equals(takeMealFlag)) {
......@@ -901,7 +939,7 @@ public class CheckOrder {
/**
* 获取门店配送信息
*/
public StoreDeliveryInfoDto getStoreDeliveryInfo(StoreResponse.BizVO storeResponseDto,
public StoreDeliveryInfoDto getStoreDeliveryInfo(StoreResponseDto storeResponseDto,
AssortmentOpenPlatformIappWxappConfig openPlatformIappWxappConfig, String wxAppid) {
StoreDeliveryInfoDto storeDeliveryInfoDto = new StoreDeliveryInfoDto();
storeDeliveryInfoDto.setPartnerId(storeResponseDto.getPartnerId());
......@@ -967,8 +1005,9 @@ public class CheckOrder {
/**
* 获取门店配送信息
*/
public StoreDeliveryInfoDto getNewStoreDeliveryInfo(StoreResponse.BizVO storeResponseDto,
AssortmentOpenPlatformIappWxappConfig openPlatformIappWxappConfig, String wxAppid, String trackingNo) {
public StoreDeliveryInfoDto getNewStoreDeliveryInfo(String wxAppid,StoreResponseDto storeResponseDto,
AssortmentOpenPlatformIappWxappConfig openPlatformIappWxappConfig) {
String trackingNo = LogThreadLocal.getTrackingNo();
StoreDeliveryInfoDto storeDeliveryInfoDto = new StoreDeliveryInfoDto();
storeDeliveryInfoDto.setPartnerId(storeResponseDto.getPartnerId());
storeDeliveryInfoDto.setStoreId(storeResponseDto.getStoreCode());
......@@ -1170,7 +1209,7 @@ public class CheckOrder {
return responseDTO.getData();
}
public void checkOrderByStore(StoreResponse.BizVO storeResponseDto) {
public void checkOrderByStore(StoreResponseDto storeResponseDto) {
// 校验门店是否停业 1 营业 2 停业 3 繁忙置休
if (storeResponseDto.getActiveFlag() == null || storeResponseDto.getActiveFlag() != 1) {
throw new ServiceException(ResponseResult.STORE_ITEM_STOP_BUSINESS);
......
......@@ -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));
}
// 添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
......
......@@ -18,6 +18,7 @@ import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.OrderRefundConstant;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.PayAccessResponse;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto;
......@@ -37,6 +38,7 @@ import cn.freemud.entities.dto.promotion.QueryHistoryGroupVO;
import cn.freemud.entities.dto.shoppingCart.CollageOrderDto;
import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.store.StoreMixResponseDto;
import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.order.CreateOrderInvoiceRequest;
import cn.freemud.entities.vo.order.OrderAppealVo;
......@@ -308,55 +310,23 @@ public class OrderServiceImpl implements Orderservice {
// 原来saas
@Override
public BaseResponse createOrder(CreateOrderVo createOrderVo) {
//原标准点餐程序逻辑处理
BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if (ObjectUtils.notEqual(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return baseResponse;
CreateOrderBONew createOrderBONew = new CreateOrderBONew(createOrderVo);
//创建订单前参数校验与数据获取
BaseResponse checkResponse = checkOrder.checkCreateOrderInfo(createOrderBONew);
if (checkResponse != null && !ResponseResult.SUCCESS.getCode().equals(checkResponse.getCode()) ) {
return checkResponse;
}
String trackingNo = LogThreadLocal.getTrackingNo();
// 查询用户信息、校验svc卡,余额购物车校验
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo, trackingNo);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse.BizVO storeResponseDto = checkOrder.checkOrderByStore(createOrderVo, trackingNo);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrder.getShoppingCartGoodsDto(createOrderVo);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//1.9.2套餐需求同步优化创建订单代码
BaseResponse createOrderOperateDtoResponse = this.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
//创建订单调用集成,不区分订单类型
BaseResponse createOrderOperateDtoResponse = this.sdkCreateOrder(createOrderBONew);
if (createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null) {
return createOrderOperateDtoResponse;
}
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto) createOrderOperateDtoResponse.getResult();
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = orderAdapter.convertToCreatePrepayRequestDto(userLoginInfoDto, createOrderVo, createOrderOperateDto, extInfo);
CreatePrepayRequestDto createPrepayRequestDto = orderAdapter.convertToCreatePrepayRequestDto(createOrderBONew, createOrderOperateDto);
return ResponseUtil.success(payServiceImpl.createPrepayOrder(createPrepayRequestDto));
}
/**
* 扫脸支付下单
*/
@Override
public BaseResponse scanFaceCreateOrder(CreateOrderVo createOrderVo) {
String trackingNo = LogThreadLocal.getTrackingNo();
// 查询用户信息、校验svc卡,余额购物车校验
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.checkOrderByMember(createOrderVo, trackingNo);
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
StoreResponse.BizVO storeResponseDto = checkOrder.checkOrderByStore(createOrderVo, trackingNo);
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrder.getShoppingCartGoodsDto(createOrderVo);
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
//1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDto extInfo = getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//下单并支付
CreateOrderOperateDto operateDto = createOrderForFace(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto.getWxAppId(), userLoginInfoDto.getOpenId());
return payServiceImpl.createOrderPay(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto, extInfo, operateDto);
}
@Override
public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, OrderBeanV1> orderBeans) {
OrderBeanV1 orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
......@@ -1631,7 +1601,7 @@ public class OrderServiceImpl implements Orderservice {
// 目前只有coco在订单详情参加支付有礼,且不检查订单的状态
if (cocoPartnerId.contains(partnerId)) {
joinPayGift(sessionId, queryOrderResponseVo, partnerId, null);
} else if(BizTypeEnum.SALE_COUPON.getBizType().equals(orderBean.getBizType())) {
} else if (BizTypeEnum.SALE_COUPON.getBizType().equals(orderBean.getBizType())) {
joinPayGift(sessionId, queryOrderResponseVo, partnerId, payGiftVer);
}
......@@ -1785,7 +1755,7 @@ public class OrderServiceImpl implements Orderservice {
if (CollectionUtils.isEmpty(deletePartnerId) || deletePartnerId.contains("") || deletePartnerId.contains(partnerId)) {
String reason = "用户取消支付";
CancelOrderRequest cancelOrderRequest = orderAdapter.convent2CancelOrderRequest(orderBean.getOid(),
partnerId, AfterSalesType.USER_CANCEL, reason, LogThreadLocal.getTrackingNo(), System.currentTimeMillis()+"");
partnerId, AfterSalesType.USER_CANCEL, reason, LogThreadLocal.getTrackingNo(), System.currentTimeMillis() + "");
cancelOrderRequest.setOperator(orderBean.getUserName());
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
cancelOrderRequest.setCreateEvent(AfterSalesOrderCreateEventEnum.REFUND_COMPLETE.getCreateEvent());
......@@ -1793,7 +1763,7 @@ public class OrderServiceImpl implements Orderservice {
try {
orderBusinessService.orderCancel(cancelOrderRequest);
// orderSdkService.deleteOrder(var1,LogThreadLocal.getTrackingNo());
}catch (Exception e) {
} catch (Exception e) {
ErrorLog.printErrorLog("删除订单失败", "order/v2/cancel", JSONObject.toJSONString(cancelOrderRequest), e);
}
}
......@@ -2357,56 +2327,6 @@ public class OrderServiceImpl implements Orderservice {
/**
* 获取父子订单商品第三方商品编号
*
* @param
* @return
*/
private CreateFatherSonOrderRequest getProductCustomerCodeNew(CreateFatherSonOrderRequest fatherSonOrderRequest) {
List<String> pids = new ArrayList<>();
List<CreateFatherSonOrderRequest.OrderInfo> productOrderInfoList = fatherSonOrderRequest.getOrderInfoList().stream().filter(orderInfo -> orderInfo.getProducts() != null).collect(Collectors.toList());
if (CollectionUtils.isEmpty(productOrderInfoList)) {
return fatherSonOrderRequest;
}
for (CreateOrderProductRequest productDto : productOrderInfoList.get(0).getProducts()) {
pids.add(productDto.getProductId());
}
Map<String, GetProductsVo> products = itemService.getSpuProducts(pids, fatherSonOrderRequest.getPartnerId(), productOrderInfoList.get(0).getShopId(), fatherSonOrderRequest.getMenuType());
if (products.isEmpty()) {
return fatherSonOrderRequest;
}
for (CreateOrderProductRequest productDto : productOrderInfoList.get(0).getProducts()) {
if (StringUtils.isNotEmpty(productDto.getSpecification()) && products.get(productDto.getSpecification()) != null) {
productDto.setCustomerCode(products.get(productDto.getSpecification()).getCustomerCode());
productDto.setProductCode(products.get(productDto.getSpecification()).getProductCode());
productDto.setThirdProductSpecId(products.get(productDto.getSpecification()).getThirdProductSpecId());
productDto.setThirdProductPropertyId(getThirdPropertyId(products.get(productDto.getSpecification()).getProductAttributeGroupList(), productDto.getAddInfo()));
} else {
productDto.setCustomerCode("");
productDto.setProductCode("");
AppLogUtil.infoLog("getProducts_exception", JSONObject.toJSONString(pids), JSONObject.toJSONString(products));
}
//套餐子商品
if (CollectionUtils.isNotEmpty(productDto.getComboProduct())) {
for (CreateOrderProductRequest comboProduct : productDto.getComboProduct()) {
String comboSkuId = comboProduct.getSpecification();
if (products.get(comboSkuId) != null) {
comboProduct.setCustomerCode(products.get(comboSkuId).getCustomerCode());
comboProduct.setProductCode(products.get(comboSkuId).getProductCode());
comboProduct.setThirdProductSpecId(products.get(comboSkuId).getThirdProductSpecId());
comboProduct.setThirdProductPropertyId(getThirdPropertyId(products.get(comboSkuId).getProductAttributeGroupList(), comboProduct.getAddInfo()));
} else {
comboProduct.setCustomerCode("");
comboProduct.setProductCode("");
AppLogUtil.errorLog("getProducts_exception", JSONObject.toJSONString(comboSkuId), JSONObject.toJSONString(products), null);
}
}
}
}
return fatherSonOrderRequest;
}
/**
* 获取商品第三方商品编号
*
* @param createOrderDto
......@@ -2517,22 +2437,28 @@ public class OrderServiceImpl implements Orderservice {
*
* @return
*/
public BaseResponse sdkCreateOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
AssortmentCustomerInfoVo userLoginInfoDto) {
public BaseResponse sdkCreateOrder(CreateOrderBONew createOrderBO) {
CreateOrderVo createOrderVo = createOrderBO.getCreateOrderVo();
StoreMixResponseDto storeMixResponseDto = createOrderBO.getStoreMixResponseDto();
StoreResponseDto storeResponseDto = storeMixResponseDto.getStoreInfo();
ShoppingCartGoodsDto shoppingCartGoodsDto = createOrderBO.getShoppingCartGoodsDto();
AssortmentCustomerInfoVo userLoginInfoDto = createOrderBO.getUserLoginInfoDto();
//更新订单使用
CreateOrderOperateDto response = new CreateOrderOperateDto();
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
//订单扩展表保存门店组织结构信息
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfoNew(storeResponseDto);
// fisherman 爱马哥蛋糕 预定 额外字段存储
orderExtendedReq.setUserPhone(createOrderVo.getUserPhone());
orderExtendedReq.setSendWord(createOrderVo.getSendWord());
OrderClientType orderClient = OrderClientType.SAAS;
String appId = userLoginInfoDto.getWxAppId();
if ("2".equals(userLoginInfoDto.getChannel())) {
if (ChannelEnum.TYPE_2.getCode().equals(userLoginInfoDto.getChannel())) {
orderClient = OrderClientType.ALIPAY;
} else if (UserLoginChannelEnum.APP.getCode().equals(userLoginInfoDto.getChannel())) {
orderClient = OrderClientType.APP;
}
//抖音小程序
if ("5".equalsIgnoreCase(createOrderVo.getChannel())) {
if (ChannelEnum.TYPE_5.getCode().equalsIgnoreCase(createOrderVo.getChannel())) {
createOrderVo.setPayChannelType(PayChannelType.TIKTOKPAY.getIndex());
orderClient = OrderClientType.TIKTOKPAY;
}
......@@ -2542,51 +2468,7 @@ public class OrderServiceImpl implements Orderservice {
orderClient = OrderClientType.BEAUTIFUL;
}
long totalAmount = 0;
int cardAmount = 0;
OrderBeanV1 fatherBeanListOne = new OrderBeanV1();
OrderBeanV1 productBeanListOne = new OrderBeanV1();
if (createOrderVo.getBuyMemberCard() != null && StringUtils.isNotEmpty(createOrderVo.getBuyMemberCard().getRuleId()) && StringUtils.isNotEmpty(createOrderVo.getBuyMemberCard().getPaidId())) {
//父子订单
int cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() == null ? 0 : shoppingCartGoodsDto.getCardOriginalAmount();
int cardDiscountAmount = shoppingCartGoodsDto.getCardDiscountAmount() == null ? 0 : shoppingCartGoodsDto.getCardDiscountAmount();
cardAmount = cardOriginalAmount - cardDiscountAmount;
CreateFatherSonOrderResponse createFatherSonOrderResponse = createFatherSonOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq, appId, userLoginInfoDto.getOpenId());
if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createFatherSonOrderResponse.getErrcode())) {
return ResponseUtil.error(createFatherSonOrderResponse.getErrcode().toString(), createFatherSonOrderResponse.getErrmsg());
}
List<OrderBeanV1> orderBeanList = createFatherSonOrderResponse.getOrderBeanList();
List<OrderBeanV1> fatherBeanList = orderBeanList.stream().filter(orderBeanTemp -> orderBeanTemp.getIsParent()).collect(Collectors.toList());
List<OrderBeanV1> productBeanList = orderBeanList.stream().filter(orderBeanTemp -> 1 == orderBeanTemp.getBizType()).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(fatherBeanList)) fatherBeanListOne = fatherBeanList.get(0);
if (CollectionUtils.isNotEmpty(productBeanList)) productBeanListOne = productBeanList.get(0);
//订单总金额 商品+会员卡
totalAmount = orderBeanList.stream().mapToLong(OrderBeanV1::getAmount).count();
fatherBeanList.get(0).setShopId(storeResponseDto.getStoreCode());
fatherBeanList.get(0).setCompanyId(createOrderVo.getPartnerId());
} else {
//普通订单
CreateOrderResponse createOrderFlowResponse = createOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, orderExtendedReq, orderClient, appId, userLoginInfoDto.getOpenId());
if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createOrderFlowResponse.getErrcode())) {
return ResponseUtil.error(createOrderFlowResponse.getErrcode().toString(), createOrderFlowResponse.getErrmsg());
}
fatherBeanListOne = createOrderFlowResponse.getData();
productBeanListOne = createOrderFlowResponse.getData();
totalAmount = createOrderFlowResponse.getData().getAmount();
}
response.setTotalAmount(totalAmount);
response.setCardAmount(cardAmount);
response.setFatherOrderBean(fatherBeanListOne);
response.setProductOrderBean(productBeanListOne);
return ResponseUtil.success(response);
}
/**
* 创建普通订单 saas会走 app会走
*/
public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
OrderExtendedReq orderExtendedReq, OrderClientType orderClient, String appId, String openId) {
//组装老的创建订单数据模型
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
// 预先前置 设置 支付方式
this.preSetPayChannelType(baseCreateOrderRequest, createOrderVo);
......@@ -2597,12 +2479,25 @@ public class OrderServiceImpl implements Orderservice {
baseCreateOrderRequest.setOrderExtended(orderExtendedReq);
baseCreateOrderRequest.setOrderClient(orderClient);
baseCreateOrderRequest.setAppId(appId);
CreateOrderRequest createOrderRequest = new CreateOrderRequest();
baseCreateOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
CreateOrderRequest createOrderRequest = new CreateOrderRequest();
createOrderRequest.setBaseCreateOrderRequest(baseCreateOrderRequest);
createOrderRequest.setOpenId(openId);
createOrderRequest.setOpenId( userLoginInfoDto.getOpenId());
createOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
return orderBusinessService.createOrderFlow(createOrderRequest);
CreateOrderResponse createOrderFlowResponse = orderBusinessService.createOrderFlow(createOrderRequest);
if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createOrderFlowResponse.getErrcode())) {
return ResponseUtil.error(createOrderFlowResponse.getErrcode().toString(), createOrderFlowResponse.getErrmsg());
}
OrderBeanV1 fatherBeanListOne = createOrderFlowResponse.getData();
OrderBeanV1 productBeanListOne = createOrderFlowResponse.getData();
long totalAmount = createOrderFlowResponse.getData().getAmount();
response.setTotalAmount(totalAmount);
response.setCardAmount(0);
response.setFatherOrderBean(fatherBeanListOne);
response.setProductOrderBean(productBeanListOne);
return ResponseUtil.success(response);
}
private void preSetPayChannelType(BaseCreateOrderRequest request, CreateOrderVo createOrderVo) {
......@@ -2635,20 +2530,7 @@ public class OrderServiceImpl implements Orderservice {
request.setPayChannelName(channelType.getName());
}
/**
* 创建父子订单
*/
public CreateFatherSonOrderResponse createFatherSonOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto,
ShoppingCartGoodsDto shoppingCartGoodsDto, OrderExtendedReq orderExtendedReq,
String appId, String openId) {
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq, storeResponseDto, appId);
//查询第三方商品编号
createFatherSonOrderRequest = getProductCustomerCodeNew(createFatherSonOrderRequest);
createFatherSonOrderRequest.setOpenId(openId);
return orderCenterSdkService.createFatherSonOrder(createFatherSonOrderRequest);
}
public OrderExtInfoDto getExtInfo(AssortmentCustomerInfoVo userLoginInfoDto, StoreResponse.BizVO storeResponseDto,
public OrderExtInfoDto setOrderExtInfo(AssortmentCustomerInfoVo userLoginInfoDto, StoreResponseDto storeResponseDto,
Integer pushOrderTime, CreateOrderVo createOrderVo, ShoppingCartGoodsDto shoppingCartGoodsDto) {
Integer serviceTime = storeResponseDto.getServiceTime();
......@@ -2802,76 +2684,6 @@ public class OrderServiceImpl implements Orderservice {
}
}
/**
* 创建订单
*/
private CreateOrderOperateDto createOrderForFace(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto,
ShoppingCartGoodsDto shoppingCartGoodsDto, String appId, String openId) {
CreateOrderOperateDto response = new CreateOrderOperateDto();
OrderExtendedReq orderExtendedReq = orderAdapter.saveStoreInfo(storeResponseDto);
//创建普通订单
Function<Object, CreateOrderResponse> createOrder = (var -> {
BaseCreateOrderRequest baseCreateOrderRequest = orderAdapter.convent2CreateOrderDto(createOrderVo, shoppingCartGoodsDto, storeResponseDto);
//查询第三方商品编号
baseCreateOrderRequest = getProductCustomerCode(baseCreateOrderRequest);
//保存门店渠道信息
baseCreateOrderRequest.setOrderExtended(orderExtendedReq);
baseCreateOrderRequest.setAppId(appId);
CreateOrderRequest createOrderRequest = new CreateOrderRequest();
baseCreateOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
createOrderRequest.setBaseCreateOrderRequest(baseCreateOrderRequest);
createOrderRequest.setOpenId(openId);
createOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
return orderBusinessService.createOrderFlow(createOrderRequest);
});
//创建父子订单
Function<Object, CreateFatherSonOrderResponse> createFatherSonOrder = (var -> {
CreateFatherSonOrderRequest createFatherSonOrderRequest = orderAdapter.convertFatherSonOrderRequest(createOrderVo, shoppingCartGoodsDto, orderExtendedReq, storeResponseDto, appId);
//查询第三方商品编号
createFatherSonOrderRequest = getProductCustomerCodeNew(createFatherSonOrderRequest);
createFatherSonOrderRequest.setOpenId(openId);
return orderCenterSdkService.createFatherSonOrder(createFatherSonOrderRequest);
});
long totalAmount = 0;
int cardAmount = 0;
OrderBeanV1 fatherBeanListOne = new OrderBeanV1();
OrderBeanV1 productBeanListOne = new OrderBeanV1();
if (createOrderVo.getBuyMemberCard() != null && StringUtils.isNotEmpty(createOrderVo.getBuyMemberCard().getRuleId()) && StringUtils.isNotEmpty(createOrderVo.getBuyMemberCard().getPaidId())) {
//父子订单
int cardOriginalAmount = shoppingCartGoodsDto.getCardOriginalAmount() == null ? 0 : shoppingCartGoodsDto.getCardOriginalAmount();
int cardDiscountAmount = shoppingCartGoodsDto.getCardDiscountAmount() == null ? 0 : shoppingCartGoodsDto.getCardDiscountAmount();
cardAmount = cardOriginalAmount - cardDiscountAmount;
//创建父子订单
CreateFatherSonOrderResponse createFatherSonOrderResponse = createFatherSonOrder.apply(null);
if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createFatherSonOrderResponse.getErrcode())) {
throw new ServiceException(ResponseResult.ORDER_CREATE_ERROR);
}
List<OrderBeanV1> orderBeanList = createFatherSonOrderResponse.getOrderBeanList();
List<OrderBeanV1> fatherBeanList = orderBeanList.stream().filter(orderBeanTemp -> orderBeanTemp.getIsParent()).collect(Collectors.toList());
List<OrderBeanV1> productBeanList = orderBeanList.stream().filter(orderBeanTemp -> 1 == orderBeanTemp.getBizType()).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(fatherBeanList)) fatherBeanListOne = fatherBeanList.get(0);
if (CollectionUtils.isNotEmpty(productBeanList)) productBeanListOne = productBeanList.get(0);
//订单总金额 商品+会员卡
totalAmount = orderBeanList.stream().mapToLong(OrderBeanV1::getAmount).count();
} else {
//创建普通订单
CreateOrderResponse createOrderFlowResponse = createOrder.apply(null);
if (ObjectUtils.notEqual(Integer.valueOf(ResponseResult.SUCCESS.getCode()), createOrderFlowResponse.getErrcode())) {
throw new ServiceException(ResponseResult.ORDER_CREATE_ERROR);
}
fatherBeanListOne = createOrderFlowResponse.getData();
productBeanListOne = createOrderFlowResponse.getData();
totalAmount = productBeanListOne.getAmount();
}
response.setTotalAmount(totalAmount);
response.setCardAmount(cardAmount);
response.setFatherOrderBean(fatherBeanListOne);
response.setProductOrderBean(productBeanListOne);
return response;
}
/**
* 历史判断围餐是从userLoginInfoDto判断iappid的。
* 商城订单从前端传channelType区分,
......@@ -3456,23 +3268,6 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(responseVo);
}
/**
* 标准点餐参数校验
*
* @param createOrderVo
* @return
*/
private BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo) {
if (StringUtils.isEmpty(createOrderVo.getSessionId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_SESSION_ERROR);
}
if (StringUtils.isEmpty(createOrderVo.getShopId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_STORE_ERROR);
}
if (createOrderVo.getOrderType() == null) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_ORDERTYPE_ERROR);
}
return ResponseUtil.success();
}
}
......@@ -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