Commit 3ea5a71d by hanghang.wang

蜜雪新增虚拟业务买券

parent 85a2fd68
...@@ -80,6 +80,7 @@ import org.apache.commons.lang.time.FastDateFormat; ...@@ -80,6 +80,7 @@ import org.apache.commons.lang.time.FastDateFormat;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import tk.mybatis.mapper.util.StringUtil;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
import java.io.*; import java.io.*;
...@@ -2106,6 +2107,14 @@ public class OrderAdapter { ...@@ -2106,6 +2107,14 @@ public class OrderAdapter {
productVo.setCid(orderProductAddInfoDto.getCartGoodsUid()); productVo.setCid(orderProductAddInfoDto.getCartGoodsUid());
// 购物车行父id // 购物车行父id
productVo.setOcid(orderProductAddInfoDto.getOriginalGoodsUid()); productVo.setOcid(orderProductAddInfoDto.getOriginalGoodsUid());
/**
* 蜜雪需求,将extInfo值转为对象返回
*/
Map mapType = JSON.parseObject(productBean.getExtInfo(), Map.class);
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductExtInfo> proList = (List<QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductExtInfo>) mapType.get("productBindingCoupons");
productVo.setProductExtInfo(proList);
} }
productVo.setOriginalPrice(productBean.getPrice()); productVo.setOriginalPrice(productBean.getPrice());
productVo.setFinalPrice(productBean.getSalePrice()); productVo.setFinalPrice(productBean.getSalePrice());
...@@ -2873,6 +2882,7 @@ public class OrderAdapter { ...@@ -2873,6 +2882,7 @@ public class OrderAdapter {
/** /**
* 预支付接口获取类型 * 预支付接口获取类型
*
* @return * @return
*/ */
private String getFoodOrderType(Integer orderType) { private String getFoodOrderType(Integer orderType) {
...@@ -2924,12 +2934,12 @@ public class OrderAdapter { ...@@ -2924,12 +2934,12 @@ public class OrderAdapter {
createOrderResponseVo.setSignType(payOrderBean == null ? "" : payOrderBean.getSignType()); createOrderResponseVo.setSignType(payOrderBean == null ? "" : payOrderBean.getSignType());
createOrderResponseVo.setSign(payOrderBean == null ? "" : payOrderBean.getSign()); createOrderResponseVo.setSign(payOrderBean == null ? "" : payOrderBean.getSign());
//微信新版订阅消息判断新加字段 //微信新版订阅消息判断新加字段
if(orderBean != null && orderBean.getType() != null){ if (orderBean != null && orderBean.getType() != null) {
createOrderResponseVo.setOrderType(getNewOrderType(orderBean.getType(), orderBean.getGmtExpect())); createOrderResponseVo.setOrderType(getNewOrderType(orderBean.getType(), orderBean.getGmtExpect()));
} }
createOrderResponseVo.setOrderStr(payOrderBean == null ? "" : payOrderBean.getAliPayOrder()); createOrderResponseVo.setOrderStr(payOrderBean == null ? "" : payOrderBean.getAliPayOrder());
//抖音支付添加返回OrderInfo //抖音支付添加返回OrderInfo
if(String.valueOf(PayChannelType.TIKTOKPAY.getIndex()).equals(orderBean.getPayChannelType())) { if (String.valueOf(PayChannelType.TIKTOKPAY.getIndex()).equals(orderBean.getPayChannelType())) {
OrderInfo orderInfo = new OrderInfo(); OrderInfo orderInfo = new OrderInfo();
orderInfo.setOrder_id(orderPayResponse.getThirdOrderId()); orderInfo.setOrder_id(orderPayResponse.getThirdOrderId());
orderInfo.setOrder_token(orderPayResponse.getThirdOrderToken()); orderInfo.setOrder_token(orderPayResponse.getThirdOrderToken());
......
...@@ -83,11 +83,6 @@ public class AppCreateOrderVo { ...@@ -83,11 +83,6 @@ public class AppCreateOrderVo {
*/ */
private Integer bizType; private Integer bizType;
/**
* 此字段只针对蜜雪冰城APP下单购买虚拟券时使用,其他商品请入参orderProducts字段
*/
private String skuId;
} }
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
package cn.freemud.entities.vo; package cn.freemud.entities.vo;
import cn.freemud.entities.dto.ProductGroupDto; import cn.freemud.entities.dto.ProductGroupDto;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -200,4 +201,10 @@ public class ProductVo { ...@@ -200,4 +201,10 @@ public class ProductVo {
*/ */
private String ocid; private String ocid;
/**
* 商品拓展字段extInfo转换对象接收
*/
private List<QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductExtInfo> productExtInfo;
} }
...@@ -22,7 +22,6 @@ import com.alibaba.fastjson.JSONObject; ...@@ -22,7 +22,6 @@ import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare; import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.constant.ResponseResultEnum; import com.freemud.application.sdk.api.constant.ResponseResultEnum;
import com.freemud.application.sdk.api.couponcenter.online.domain.ActiveDetailVO;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType; import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
...@@ -37,11 +36,7 @@ import com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQuer ...@@ -37,11 +36,7 @@ import com.freemud.application.sdk.api.paymentcenter.client.response.PaymentQuer
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService; import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO; import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO; import com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO;
import com.freemud.application.sdk.api.productcenter.request.product.GetProductInfoRequest;
import com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest; import com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest;
import com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryInfoResponse;
import com.freemud.application.sdk.api.productcenter.response.product.GetProductInfosResponse;
import com.freemud.application.sdk.api.productcenter.service.MenuService;
import com.freemud.application.sdk.api.productcenter.service.ProductService; import com.freemud.application.sdk.api.productcenter.service.ProductService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
...@@ -55,7 +50,6 @@ import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse; ...@@ -55,7 +50,6 @@ import com.freemud.sdk.api.assortment.order.response.order.CreateOrderResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryRelatedOrderByCodeResp; import com.freemud.sdk.api.assortment.order.response.order.QueryRelatedOrderByCodeResp;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService; import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -64,6 +58,7 @@ import org.springframework.stereotype.Service; ...@@ -64,6 +58,7 @@ import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
...@@ -167,14 +162,14 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -167,14 +162,14 @@ public class AppOrderServiceImpl implements AppOrderService {
} }
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号 // 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder.checkOrderByStore(storeResponse.getBizVO()); checkOrder.checkOrderByStore(storeResponse.getBizVO());
/**蜜雪新增需求-->APP可以购买虚拟商品券业务逻辑**/ /**蜜雪新增需求-->APP可以购买虚拟商品券业务逻辑**/
QueryOrdersResponse.DataBean.OrderBean orderBean = new QueryOrdersResponse.DataBean.OrderBean(); QueryOrdersResponse.DataBean.OrderBean orderBean = new QueryOrdersResponse.DataBean.OrderBean();
if (createOrderReq.getBizType() != null && BizTypeEnum.APP_COUPON.getBizType().equals(createOrderReq.getBizType())) { if (createOrderReq.getBizType() != null && BizTypeEnum.APP_COUPON.getBizType().equals(createOrderReq.getBizType())) {
//现阶段蜜雪卖券业务是能单个,所以默认取0.后续多个的话,也需要调整平台买券取数规则
String skuId = createOrderReq.getOrderProducts().get(0).getSkuId();
//20200107提取虚拟商品券效验方法---》校验虚拟商品,如果正常则返回创建订单对象 //20200107提取虚拟商品券效验方法---》校验虚拟商品,如果正常则返回创建订单对象
BaseResponse createOrderRequestResponse = BaseResponse createOrderRequestResponse =
sellCouponOrderService.checkOrderCoupon(customerInfo,storeResponse,trackingNo,createOrderReq.getMenuType(), Integer.valueOf(createOrderReq.getBizType()), partnerId, shopId, createOrderReq.getSkuId(), null); sellCouponOrderService.checkOrderCoupon(customerInfo, storeResponse, trackingNo, createOrderReq.getMenuType(), Integer.valueOf(createOrderReq.getBizType()), partnerId, shopId, skuId, null);
if (createOrderRequestResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderRequestResponse.getCode()) || createOrderRequestResponse.getResult() == null) { if (createOrderRequestResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderRequestResponse.getCode()) || createOrderRequestResponse.getResult() == null) {
return createOrderRequestResponse; return createOrderRequestResponse;
} }
...@@ -185,7 +180,7 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -185,7 +180,7 @@ public class AppOrderServiceImpl implements AppOrderService {
return ResponseUtil.error(ResponseResult.ORDER_CREATE_ERROR); return ResponseUtil.error(ResponseResult.ORDER_CREATE_ERROR);
} }
orderBean = createOrderResponse.getData(); orderBean = createOrderResponse.getData();
}else{ } else {
/**APP创建实体商品业务逻辑**/ /**APP创建实体商品业务逻辑**/
// 查商品服务确定金额 // 查商品服务确定金额
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrderProduct(partnerId, shopId, createOrderReq.getOrderProducts(), ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrderProduct(partnerId, shopId, createOrderReq.getOrderProducts(),
...@@ -216,7 +211,6 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -216,7 +211,6 @@ public class AppOrderServiceImpl implements AppOrderService {
} }
@Override @Override
public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) { public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) {
String paySuccessCallbackResult = orderservice.paySuccessCallback(message, confirmOrderDto, orderBeans); String paySuccessCallbackResult = orderservice.paySuccessCallback(message, confirmOrderDto, orderBeans);
......
...@@ -144,6 +144,7 @@ import com.freemud.sdk.api.assortment.payment.service.StandardPaymentService; ...@@ -144,6 +144,7 @@ import com.freemud.sdk.api.assortment.payment.service.StandardPaymentService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonElement;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -1485,13 +1486,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1485,13 +1486,7 @@ public class OrderServiceImpl implements Orderservice {
joinPayGift(sessionId, queryOrderResponseVo, partnerId); joinPayGift(sessionId, queryOrderResponseVo, partnerId);
} }
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productList = response.getData().getProductList();
if(productList!=null && productList.size()>0){
productList.stream().forEach(productBean -> {
productList.get(0).getProductExtInfo().add(gson.fromJson(productBean.getExtInfo(), QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductExtInfo.class)
);
});
}
buildQueryOrderResponseVo(queryOrderResponseVo, response, partnerId); buildQueryOrderResponseVo(queryOrderResponseVo, response, partnerId);
...@@ -2496,7 +2491,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2496,7 +2491,7 @@ public class OrderServiceImpl implements Orderservice {
orderClient = OrderClientType.APP; orderClient = OrderClientType.APP;
} }
//抖音小程序 //抖音小程序
if("5".equalsIgnoreCase(createOrderVo.getChannel())) { if ("5".equalsIgnoreCase(createOrderVo.getChannel())) {
createOrderVo.setPayChannelType(PayChannelType.TIKTOKPAY.getIndex()); createOrderVo.setPayChannelType(PayChannelType.TIKTOKPAY.getIndex());
orderClient = OrderClientType.TIKTOKPAY; orderClient = OrderClientType.TIKTOKPAY;
} }
...@@ -2798,7 +2793,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2798,7 +2793,7 @@ public class OrderServiceImpl implements Orderservice {
orderPayResponse.setPayMode(PayChannelType.ALIPAY.getEbcode()); orderPayResponse.setPayMode(PayChannelType.ALIPAY.getEbcode());
} }
//抖音支付 //抖音支付
if(PayChannelType.TIKTOKPAY.getIndex().toString().equalsIgnoreCase(orderBean.getPayChannelType())){ if (PayChannelType.TIKTOKPAY.getIndex().toString().equalsIgnoreCase(orderBean.getPayChannelType())) {
orderPayResponse.setPayMode(PayChannelType.TIKTOKPAY.getEbcode()); orderPayResponse.setPayMode(PayChannelType.TIKTOKPAY.getEbcode());
} }
...@@ -2923,7 +2918,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2923,7 +2918,7 @@ public class OrderServiceImpl implements Orderservice {
orderExtInfoDto.setSendPointActivityCode(sendPoint.getActivityCode()); orderExtInfoDto.setSendPointActivityCode(sendPoint.getActivityCode());
orderExtInfoDto.setSendPointEndTime(sendPoint.getEndTime().getTime() + ""); orderExtInfoDto.setSendPointEndTime(sendPoint.getEndTime().getTime() + "");
orderExtInfoDto.setSendPointSendPoint(sendPoint.getSendPoint()); orderExtInfoDto.setSendPointSendPoint(sendPoint.getSendPoint());
orderExtInfoDto.setSendPointStoreLevel(sendPoint.getStoreLevel()); // orderExtInfoDto.setSendPointStoreLevel(sendPoint.getStoreLevel());
} }
return orderExtInfoDto; return orderExtInfoDto;
} }
......
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