Commit fc39afd0 by hanghang.wang

Merge branch 'feature/20210107_蜜雪新增APP购买虚拟商品(券)业务_wanghanghang' into develop

# Conflicts:
#	order-application-service/pom.xml
#	order-application-service/src/main/java/cn/freemud/service/impl/AppOrderServiceImpl.java
parents 824053fb 3ea5a71d
...@@ -46,8 +46,8 @@ ...@@ -46,8 +46,8 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.2.31-SNAPSHOT</version> <version>2.2.31-RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>productcenter-sdk</artifactId> <artifactId>productcenter-sdk</artifactId>
...@@ -352,6 +352,18 @@ ...@@ -352,6 +352,18 @@
<groupId>org.apache.skywalking</groupId> <groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId> <artifactId>apm-toolkit-logback-1.x</artifactId>
</dependency> </dependency>
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.9.5-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.freemud.sdk.api.assortment</groupId>
<artifactId>assortment-orderdistributor-sdk</artifactId>
<version>3.5.5.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
......
...@@ -83,6 +83,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -83,6 +83,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
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.*;
...@@ -2122,6 +2123,14 @@ public class OrderAdapter { ...@@ -2122,6 +2123,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());
...@@ -2893,6 +2902,7 @@ public class OrderAdapter { ...@@ -2893,6 +2902,7 @@ public class OrderAdapter {
/** /**
* 预支付接口获取类型 * 预支付接口获取类型
*
* @return * @return
*/ */
private String getFoodOrderType(Integer orderType) { private String getFoodOrderType(Integer orderType) {
...@@ -2944,12 +2954,12 @@ public class OrderAdapter { ...@@ -2944,12 +2954,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;
...@@ -196,4 +197,10 @@ public class ProductVo { ...@@ -196,4 +197,10 @@ public class ProductVo {
*/ */
private String ocid; private String ocid;
/**
* 商品拓展字段extInfo转换对象接收
*/
private List<QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductExtInfo> productExtInfo;
} }
...@@ -65,6 +65,7 @@ import org.springframework.stereotype.Service; ...@@ -65,6 +65,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
...@@ -115,12 +116,12 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -115,12 +116,12 @@ public class AppOrderServiceImpl implements AppOrderService {
OrderExtInfoDto extInfo = orderservice.getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto); OrderExtInfoDto extInfo = orderservice.getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//创建订单 //创建订单
BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto); BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
if(createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null ) { if (createOrderOperateDtoResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderOperateDtoResponse.getCode()) || createOrderOperateDtoResponse.getResult() == null) {
return createOrderOperateDtoResponse; return createOrderOperateDtoResponse;
} }
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto)createOrderOperateDtoResponse.getResult(); CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto) createOrderOperateDtoResponse.getResult();
BaseResponse baseResponse = this.updateOrderExtInfo(createOrderOperateDto.getProductOrderBean(), extInfo, trackingNo); BaseResponse baseResponse = this.updateOrderExtInfo(createOrderOperateDto.getProductOrderBean(), extInfo, trackingNo);
if(baseResponse != null) { if (baseResponse != null) {
return baseResponse; return baseResponse;
} }
//返回没创建预支付的结果 //返回没创建预支付的结果
...@@ -151,16 +152,6 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -151,16 +152,6 @@ public class AppOrderServiceImpl implements AppOrderService {
return orderservice.createPrepayOrder(createPrepayRequestDto); return orderservice.createPrepayOrder(createPrepayRequestDto);
} }
@Override
public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) {
String paySuccessCallbackResult = orderservice.paySuccessCallback(message, confirmOrderDto, orderBeans);
// QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
// // 删除订单自增缓存
// redisCache.delete(RedisUtil.getPaymentTransIdSequenceKey(orderBean.getOid()));
// // 删除支付交易号订单关系缓存
// redisCache.delete(RedisUtil.getPaymentTransIdOrderKey(message.getTrans_id()));
return paySuccessCallbackResult;
}
/** /**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付 * APP下单,下单带商品信息,不经过购物车服务,不唤起支付
...@@ -178,14 +169,14 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -178,14 +169,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;
} }
...@@ -196,7 +187,7 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -196,7 +187,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(),
...@@ -227,6 +218,17 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -227,6 +218,17 @@ public class AppOrderServiceImpl implements AppOrderService {
} }
@Override
public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) {
String paySuccessCallbackResult = orderservice.paySuccessCallback(message, confirmOrderDto, orderBeans);
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
// 删除订单自增缓存
//redisCache.delete(RedisUtil.getPaymentTransIdSequenceKey(orderBean.getOid()));
// 删除支付交易号订单关系缓存
//redisCache.delete(RedisUtil.getPaymentTransIdOrderKey(message.getTrans_id()));
return paySuccessCallbackResult;
}
private void checkOrderBefore(CreatePrepayVo createPrepayVo, QueryOrdersResponse.DataBean.OrderBean orderBean) { private void checkOrderBefore(CreatePrepayVo createPrepayVo, QueryOrdersResponse.DataBean.OrderBean orderBean) {
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus()) || !OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) { if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus()) || !OrderStatus.WAIT_PAY.getCode().equals(orderBean.getStatus())) {
throw new ServiceException(ResponseResult.ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT); throw new ServiceException(ResponseResult.ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT);
......
...@@ -334,44 +334,16 @@ public class OrderAdapterServiceImpl implements OrderAdapterService { ...@@ -334,44 +334,16 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
*/ */
@Override @Override
public BaseResponse appCreateOrder(AppCreateOrderVo createOrderVo) { public BaseResponse appCreateOrder(AppCreateOrderVo createOrderVo) {
//蜜雪业务新增APP购买虚拟券,此处判断分支->蜜雪买券逻辑走平台买券逻辑20210108 向下还存在发起支付分之判断 wanghanghang
// if("6".equals(createOrderVo.getBizType())){
// SellCouponCreateOrderVo sellCouponCreateOrderVo = conversionObjByAppCreateOrderVo(createOrderVo);
// return sellCouponOrderService.createOrder(sellCouponCreateOrderVo);
// }
AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderVo.getSessionId()); AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderVo.getSessionId());
if (assortmentCustomerInfoVo == null || StringUtils.isEmpty(assortmentCustomerInfoVo.getMemberId())) { if (assortmentCustomerInfoVo == null || StringUtils.isEmpty(assortmentCustomerInfoVo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN); return ResponseUtil.error(ResponseResult.NOT_LOGIN);
} }
// if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) { if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createOrder(createOrderVo, assortmentCustomerInfoVo); return appOrderService.createOrder(createOrderVo, assortmentCustomerInfoVo);
// } }
// return ResponseUtil.error(ResponseResult.PARAMETER_MISSING); return ResponseUtil.error(ResponseResult.PARAMETER_MISSING);
} }
/**
* 20210107 wanghanghang
* 蜜雪业务新增APP购买虚拟券,此处在APP下单时,调用平台买券业务进行对象转换
*
* @param createOrderVo
* @return
*/
// private SellCouponCreateOrderVo conversionObjByAppCreateOrderVo(AppCreateOrderVo createOrderVo) {
// SellCouponCreateOrderVo sellCouponCreateOrderVo = new SellCouponCreateOrderVo();
// sellCouponCreateOrderVo.setBizType(createOrderVo.getBizType() + "");
// sellCouponCreateOrderVo.setSessionId(createOrderVo.getSessionId());
// sellCouponCreateOrderVo.setShopId(createOrderVo.getShopId());
// //获取商品集合里的虚拟商品skuid
// //sellCouponCreateOrderVo.setSkuId(createOrderVo.getOrderProducts().get(0).getSkuId());
// sellCouponCreateOrderVo.setSkuId(createOrderVo.getSkuId());
// sellCouponCreateOrderVo.setCardCode(null);
// sellCouponCreateOrderVo.setMenuType(createOrderVo.getMenuType());
// sellCouponCreateOrderVo.setChannel("");
// sellCouponCreateOrderVo.setVersion(createOrderVo.getVersion());
// return sellCouponCreateOrderVo;
// }
/** /**
* 标准点餐参数校验 * 标准点餐参数校验
* *
......
...@@ -142,6 +142,7 @@ import com.freemud.sdk.api.assortment.payment.service.StandardPaymentService; ...@@ -142,6 +142,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;
...@@ -1502,13 +1503,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1502,13 +1503,7 @@ public class OrderServiceImpl implements Orderservice {
joinPayGift(sessionId, queryOrderResponseVo, partnerId,null); joinPayGift(sessionId, queryOrderResponseVo, partnerId,null);
} }
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productList = response.getData().getProductList();
if(productList!=null && productList.size()>0){
productList.stream().forEach(productBean -> {
gson.fromJson(productBean.getExtInfo(), OrderExtInfoDto.class);
});
}
buildQueryOrderResponseVo(queryOrderResponseVo, response, partnerId); buildQueryOrderResponseVo(queryOrderResponseVo, response, partnerId);
...@@ -2513,7 +2508,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2513,7 +2508,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;
} }
...@@ -2815,7 +2810,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2815,7 +2810,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());
} }
...@@ -2940,7 +2935,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2940,7 +2935,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