Commit 66e68813 by hanghang.wang

蜜雪新增虚拟业务买券

parent 0163d40a
......@@ -76,4 +76,18 @@ public class AppCreateOrderVo {
* 下单渠道 版本号
*/
private String version;
//20210107蜜雪新增APP购买虚拟商品(券)业务--》》新增以下字段 bizType skuId --wanghanghang
/**
* 代表蜜雪APP买虚拟商品(买券)业务标识
*/
private Integer bizType;
/**
* 此字段只针对蜜雪冰城APP下单购买虚拟券时使用,其他商品请入参orderProducts字段
*/
private String skuId;
}
package cn.freemud.enums;
public enum BizTypeEnum {
APP_COUPON(6, "APP买券"),
APP_PRO(1, "未知(目前暂不支持),后续可能预留给正常商品");
private Integer bizType;
private String desc;
BizTypeEnum(Integer bizType, String desc) {
this.bizType = bizType;
this.desc = desc;
}
public static cn.freemud.enums.BizTypeEnum getByCode(Integer code) {
for (cn.freemud.enums.BizTypeEnum payType : values()) {
if (payType.getBizType().equals(code)) {
return payType;
}
}
return null;
}
public Integer getBizType() {
return bizType;
}
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
\ No newline at end of file
......@@ -22,10 +22,14 @@ import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
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.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentCloseUnifiedOrderRequest;
import com.freemud.application.sdk.api.paymentcenter.client.request.PaymentQueryRequest;
import com.freemud.application.sdk.api.paymentcenter.client.response.PaymentCloseUnifiedOrderResponse;
......@@ -33,28 +37,32 @@ 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.productcenter.domain.ProductBeanDTO;
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.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.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest;
import com.freemud.sdk.api.assortment.order.request.order.OrderEditRequest;
import com.freemud.sdk.api.assortment.order.request.order.QueryRelatedOrderByCodeRequest;
import com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse;
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.QueryRelatedOrderByCodeResp;
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.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -99,12 +107,12 @@ public class AppOrderServiceImpl implements AppOrderService {
OrderExtInfoDto extInfo = orderservice.getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//创建订单
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;
}
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto)createOrderOperateDtoResponse.getResult();
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto) createOrderOperateDtoResponse.getResult();
BaseResponse baseResponse = this.updateOrderExtInfo(createOrderOperateDto.getProductOrderBean(), extInfo, trackingNo);
if(baseResponse != null) {
if (baseResponse != null) {
return baseResponse;
}
//返回没创建预支付的结果
......@@ -135,45 +143,74 @@ public class AppOrderServiceImpl implements AppOrderService {
return orderservice.createPrepayOrder(createPrepayRequestDto);
}
@Autowired
private OrderSdkService orderSdkService;
@Autowired
private OrderSdkAdapter orderSdkAdapter;
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
@Override
public BaseResponse createOrder(AppCreateOrderVo createOrderReq,AssortmentCustomerInfoVo customerInfo) {
public BaseResponse createOrder(AppCreateOrderVo createOrderReq, AssortmentCustomerInfoVo customerInfo) {
String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = createOrderReq.getPartnerId();
String shopId = createOrderReq.getShopId();
// 获取门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId,null);
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, shopId, null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
if (storeResponse == null || storeResponse.getBizVO() == null) {
throw new ServiceException(ResponseResult.STORE_NOT_FOUND);
}
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder.checkOrderByStore(storeResponse.getBizVO());
/**蜜雪新增需求-->APP可以购买虚拟商品券业务逻辑**/
QueryOrdersResponse.DataBean.OrderBean orderBean = new QueryOrdersResponse.DataBean.OrderBean();
if (createOrderReq.getBizType() != null && BizTypeEnum.APP_COUPON.getBizType().equals(createOrderReq.getBizType())) {
//20200107提取虚拟商品券效验方法---》校验虚拟商品,如果正常则返回创建订单对象
BaseResponse createOrderRequestResponse =
new SellCouponOrderServiceImpl().checkOrderCoupon(customerInfo,storeResponse,trackingNo,createOrderReq.getMenuType(), Integer.valueOf(createOrderReq.getBizType()), partnerId, shopId, createOrderReq.getSkuId(), null);
if (createOrderRequestResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderRequestResponse.getCode()) || createOrderRequestResponse.getResult() == null) {
return createOrderRequestResponse;
}
CreateOrderRequest createOrderRequest = (CreateOrderRequest) createOrderRequestResponse.getResult();
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> orderInfoReqsBaseResponse = orderSdkService.createOrder(createOrderRequest, trackingNo);
CreateOrderResponse createOrderResponse = orderSdkAdapter.convent2NEWOrderInfoReqs(orderInfoReqsBaseResponse);
if (createOrderResponse == null || createOrderResponse.getErrcode() != 100) {
return ResponseUtil.error(ResponseResult.ORDER_CREATE_ERROR);
}
orderBean = createOrderResponse.getData();
}else{
/**APP创建实体商品业务逻辑**/
// 查商品服务确定金额
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrderProduct(partnerId,shopId,createOrderReq.getOrderProducts(),
createOrderReq.getMenuType(),createOrderReq.getReachStoreType());
ShoppingCartGoodsDto shoppingCartGoodsDto = checkOrderProduct(partnerId, shopId, createOrderReq.getOrderProducts(),
createOrderReq.getMenuType(), createOrderReq.getReachStoreType());
CreateOrderVo createOrderVo = new CreateOrderVo();
BeanUtil.convertBean(createOrderReq,createOrderVo);
BeanUtil.convertBean(createOrderReq, createOrderVo);
createOrderVo.setStoreName(storeResponse.getBizVO().getStoreName());
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满足起送条件
// 查询小程序自提外卖配置信息 校验当前订单类型的下单参数 校验外卖是否满 足起送条件
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, customerInfo, storeResponse.getBizVO(), shoppingCartGoodsDto, trackingNo);
//1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
OrderExtInfoDto extInfo = orderservice.getExtInfo(customerInfo, storeResponse.getBizVO(), pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//创建订单
BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderVo, storeResponse.getBizVO(), shoppingCartGoodsDto, customerInfo);
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;
}
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto)createOrderOperateDtoResponse.getResult();
CreateOrderOperateDto createOrderOperateDto = (CreateOrderOperateDto) createOrderOperateDtoResponse.getResult();
BaseResponse baseResponse = this.updateOrderExtInfo(createOrderOperateDto.getProductOrderBean(), extInfo, trackingNo);
if(baseResponse != null) {
if (baseResponse != null) {
return baseResponse;
}
orderBean = createOrderOperateDto.getProductOrderBean();
}
//返回没创建预支付的结果
CreateOrderResponseVo responseVo = orderAdapter.convent2CreateFatherSonOrderNoPayResponseVo(createOrderOperateDto.getProductOrderBean());
CreateOrderResponseVo responseVo = orderAdapter.convent2CreateFatherSonOrderNoPayResponseVo(orderBean);
return ResponseUtil.success(responseVo);
}
......@@ -196,7 +233,7 @@ public class AppOrderServiceImpl implements AppOrderService {
}
OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
if(extInfo == null || StringUtils.isBlank(extInfo.getSessionId()) || !extInfo.getSessionId().equals(createPrepayVo.getSessionId())) {
if (extInfo == null || StringUtils.isBlank(extInfo.getSessionId()) || !extInfo.getSessionId().equals(createPrepayVo.getSessionId())) {
throw new ServiceException(ResponseResult.ORDER_OWNER_ERROR);
}
}
......@@ -217,19 +254,19 @@ public class AppOrderServiceImpl implements AppOrderService {
return null;
}
private CreateOrderOperateDto getCreateOrderOperateDto(String orderId){
private CreateOrderOperateDto getCreateOrderOperateDto(String orderId) {
QueryRelatedOrderByCodeRequest baseQueryOrderRequest = new QueryRelatedOrderByCodeRequest();
baseQueryOrderRequest.setOrderCode(orderId);
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryRelatedOrderByCodeResp queryOrderByIdResponse = orderCenterSdkService.queryRelatedOrderByCode(baseQueryOrderRequest);
if(queryOrderByIdResponse == null || CollectionUtils.isEmpty(queryOrderByIdResponse.getOrderBeanList())) {
if (queryOrderByIdResponse == null || CollectionUtils.isEmpty(queryOrderByIdResponse.getOrderBeanList())) {
throw new ServiceException(ResponseResult.ORDER_QUERYORDER_ERROR);
}
List<QueryOrdersResponse.DataBean.OrderBean> orderBeanList = queryOrderByIdResponse.getOrderBeanList();
long totalAmount = 0;
QueryOrdersResponse.DataBean.OrderBean fatherBeanListOne = new QueryOrdersResponse.DataBean.OrderBean();
QueryOrdersResponse.DataBean.OrderBean productBeanListOne = new QueryOrdersResponse.DataBean.OrderBean();
if(1 == orderBeanList.size()) {
if (1 == orderBeanList.size()) {
fatherBeanListOne = orderBeanList.get(0);
productBeanListOne = orderBeanList.get(0);
totalAmount = orderBeanList.get(0).getAmount();
......@@ -250,7 +287,7 @@ public class AppOrderServiceImpl implements AppOrderService {
private void closeHistoryPrePay(QueryOrdersResponse.DataBean.OrderBean orderBean) {
OrderExtInfoDto extInfo = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
//判断当前订单是否存在预支付订单
if(extInfo != null && StringUtils.isNotEmpty(extInfo.getFmId())){
if (extInfo != null && StringUtils.isNotEmpty(extInfo.getFmId())) {
//订单状态未支付且存在预支付订单:
// 1.查询预支付订单支付状态
PaymentQueryRequest paymentQueryRequest = new PaymentQueryRequest();
......@@ -258,24 +295,24 @@ public class AppOrderServiceImpl implements AppOrderService {
paymentQueryRequest.setStoreId(orderBean.getShopId());
paymentQueryRequest.setFmId(extInfo.getFmId());
paymentQueryRequest.setVer("2");
com.freemud.application.sdk.api.base.BaseResponse<PaymentQueryResponse> queryResponseBaseResponse = paymentNewService.query(paymentQueryRequest,LogThreadLocal.getTrackingNo());
com.freemud.application.sdk.api.base.BaseResponse<PaymentQueryResponse> queryResponseBaseResponse = paymentNewService.query(paymentQueryRequest, LogThreadLocal.getTrackingNo());
//判断预支付订单状态
if(ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), queryResponseBaseResponse.getCode())){
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), queryResponseBaseResponse.getCode())) {
throw new ServiceException(ResponseResult.ORDER_PAY_GETPRE_MESSAGE_ERROR);
}
//判断当前预支付订单是否已经支付成功
if(ObjectUtils.equals(TradeState.SUCCESS.getCode(), queryResponseBaseResponse.getData().getTradeState())){
if (ObjectUtils.equals(TradeState.SUCCESS.getCode(), queryResponseBaseResponse.getData().getTradeState())) {
throw new ServiceException(ResponseResult.ORDER_HAS_PAID);
}
// 3.取消前一个预支付订单 调用支付取消预支付订单,如果预支付订单已经取消了再调用取消预支付订单接口会报错的
if(ObjectUtils.equals(TradeState.NOTPAY.getCode(), queryResponseBaseResponse.getData().getTradeState())) {
if (ObjectUtils.equals(TradeState.NOTPAY.getCode(), queryResponseBaseResponse.getData().getTradeState())) {
PaymentCloseUnifiedOrderRequest closeUnifiedOrderRequest = new PaymentCloseUnifiedOrderRequest();
closeUnifiedOrderRequest.setFmId(extInfo.getFmId());
closeUnifiedOrderRequest.setVer("2");
closeUnifiedOrderRequest.setPartnerId(orderBean.getCompanyId());
closeUnifiedOrderRequest.setStoreId(orderBean.getShopId());
com.freemud.application.sdk.api.base.BaseResponse<PaymentCloseUnifiedOrderResponse> cancelNewUnifiedOrder = paymentNewService.cancelNewUnifiedOrder(closeUnifiedOrderRequest,LogThreadLocal.getTrackingNo());
if(ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),cancelNewUnifiedOrder.getCode())){
com.freemud.application.sdk.api.base.BaseResponse<PaymentCloseUnifiedOrderResponse> cancelNewUnifiedOrder = paymentNewService.cancelNewUnifiedOrder(closeUnifiedOrderRequest, LogThreadLocal.getTrackingNo());
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getCode())) {
throw new ServiceException(ResponseResult.ORDER_PRE_PAYMENT_CLOSE_FAILED);
}
}
......@@ -287,7 +324,7 @@ public class AppOrderServiceImpl implements AppOrderService {
* 查询商品信息
*/
public ShoppingCartGoodsDto checkOrderProduct(String partnerId, String shopId, List<OrderProductVo> orderProducts,
String menuType,Integer reachStoreType) {
String menuType, Integer reachStoreType) {
ShoppingCartGoodsDto shoppingCartGoodsDto = new ShoppingCartGoodsDto();
......@@ -353,7 +390,7 @@ public class AppOrderServiceImpl implements AppOrderService {
cartGoodsDetailDto.setUnit(productBeanDTO.getUnit());
List<ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(op.getExtra())){
if (CollectionUtils.isNotEmpty(op.getExtra())) {
for (OrderProductExtraVo orderProductExtraVo : op.getExtra()) {
ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra cartGoodsExtra = new ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra();
cartGoodsExtra.setAttributeId(orderProductExtraVo.getAttributeId());
......@@ -401,7 +438,7 @@ public class AppOrderServiceImpl implements AppOrderService {
cartGoodsDetailDto.setUnit(productBeanDTO.getUnit());
List<ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra> extraList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(op.getExtra())){
if (CollectionUtils.isNotEmpty(op.getExtra())) {
for (OrderProductExtraVo orderProductExtraVo : op.getExtra()) {
ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra cartGoodsExtra = new ShoppingCartGoodsDto.CartGoodsDetailDto.CartGoodsExtra();
cartGoodsExtra.setAttributeId(orderProductExtraVo.getAttributeId());
......@@ -418,9 +455,10 @@ public class AppOrderServiceImpl implements AppOrderService {
}
if(StringUtils.isNotBlank(cartGoodsDetailDto.getSpuId()))
if (StringUtils.isNotBlank(cartGoodsDetailDto.getSpuId())) {
products.add(cartGoodsDetailDto);
}
}
shoppingCartGoodsDto.setProducts(products);
......@@ -429,7 +467,7 @@ public class AppOrderServiceImpl implements AppOrderService {
shoppingCartGoodsDto.setTotalAmount(totalAmount);
// shoppingCartGoodsDto.setTotalDiscountAmount(0L);
//堂食无包装费
if(reachStoreType != null && reachStoreType != 5){
if (reachStoreType != null && reachStoreType != 5) {
shoppingCartGoodsDto.setPackageAmount(packageAmount);
}
//积分抵扣
......
......@@ -6,10 +6,7 @@ import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.vo.AppCreateOrderVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.CreatePrepayVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
......@@ -31,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Map;
......@@ -89,6 +87,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
private SellCouponOrderServiceImpl sellCouponOrderService;
@Value("${saas.autoRefund.client}")
private String autoRefundClient;
@Override
public BaseResponse createOrderNew(CreateOrderVo createOrderVo) {
AssortmentCustomerInfoVo assortmentCustomerInfoVo = assortmentCustomerInfoManager.getCustomerInfoByObject(createOrderVo.getSessionId());
......@@ -97,7 +96,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
}
// 扩展字段中存储 sessionKey
createOrderVo.setSessionKey(assortmentCustomerInfoVo.getSessionKey());
if(IappIdType.WC_XCX.getCode().equals(assortmentCustomerInfoVo.getIappId())){ //i围餐
if (IappIdType.WC_XCX.getCode().equals(assortmentCustomerInfoVo.getIappId())) { //i围餐
BaseResponse baseResponse = null;
CreateReserveOrderVo createReserveOrderVo = new CreateReserveOrderVo();
createReserveOrderVo.setCarVer(createOrderVo.getCarVer());
......@@ -107,8 +106,10 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
createReserveOrderVo.setCouponCode(createOrderVo.getCouponCode());
createReserveOrderVo.setUseCustomerScore(createOrderVo.getUseCustomerScore());
createReserveOrderVo.setCardCode(createOrderVo.getCardCode());
if(createOrderVo.getOperation() == null) throw new ServiceException(ResponseResult.ORDER_CREATE_OPERATION_ERROR);
switch (createOrderVo.getOperation()){
if (createOrderVo.getOperation() == null) {
throw new ServiceException(ResponseResult.ORDER_CREATE_OPERATION_ERROR);
}
switch (createOrderVo.getOperation()) {
case 2:// 开台
baseResponse = encircleOrderService.createReserveOrder(createOrderVo);
break;
......@@ -127,7 +128,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
/**
* 商城订单
*/
if(OrderChannelType.SAASMALL.getCode().equals(createOrderVo.getChannelType())) {
if (OrderChannelType.SAASMALL.getCode().equals(createOrderVo.getChannelType())) {
return mallOrderService.createOrder(createOrderVo);
}
......@@ -140,7 +141,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
//原标准点餐程序逻辑处理
BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){
if (ObjectUtils.notEqual(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return baseResponse;
}
......@@ -149,7 +150,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
String createOrderKey = CREATE_ORDER_KEY + assortmentCustomerInfoVo.getMemberId();
try {
Long expire = Long.valueOf(createOrderKeyExpire);
if(!LockUtils.lock(redisCache.getRedisTemplate(),createOrderKey,expire)){
if (!LockUtils.lock(redisCache.getRedisTemplate(), createOrderKey, expire)) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_CREATE_ERROR);
}
return orderService.createOrderNew(createOrderVo);
......@@ -167,7 +168,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if (assortmentCustomerInfoVo == null || StringUtils.isEmpty(assortmentCustomerInfoVo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
if(!mcCafePartnerId.equals(assortmentCustomerInfoVo.getPartnerId())) {
if (!mcCafePartnerId.equals(assortmentCustomerInfoVo.getPartnerId())) {
return ResponseUtil.error(ResponseResult.LOGIN_STORE_ERROR);
}
// 扩展字段中存储 sessionKey
......@@ -175,7 +176,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
//原标准点餐程序逻辑处理
BaseResponse baseResponse = this.checkStandardParamInfo(createOrderVo);
if(ObjectUtils.notEqual(baseResponse.getCode(),ResponseResult.SUCCESS.getCode())){
if (ObjectUtils.notEqual(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return baseResponse;
}
......@@ -184,7 +185,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
String createOrderKey = CREATE_ORDER_KEY + assortmentCustomerInfoVo.getMemberId();
try {
Long expire = Long.valueOf(createOrderKeyExpire);
if(!LockUtils.lock(redisCache.getRedisTemplate(),createOrderKey,expire)){
if (!LockUtils.lock(redisCache.getRedisTemplate(), createOrderKey, expire)) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_CREATE_ERROR);
}
return mcCafeOrderService.createMCCafeOrder(createOrderVo);
......@@ -204,17 +205,17 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createPrepay(createPrepayVo);
}
throw new UnsupportedOperationException("暂不支持渠道:"+assortmentCustomerInfoVo.getChannel());
throw new UnsupportedOperationException("暂不支持渠道:" + assortmentCustomerInfoVo.getChannel());
}
@Override
public String paySuccessCallback(PaysuccessNoticeMessage message) {
if (StringUtils.isEmpty(message.getTrans_id())){
if (StringUtils.isEmpty(message.getTrans_id())) {
return orderAdapter.newSendPayFaileMessage();
}
//添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
String paySuccessKey = PAY_SUCCESS_KEY + message.getTrans_id();
if(!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)){
if (!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)) {
return orderAdapter.newSendPayFaileMessage();
}
try {
......@@ -230,12 +231,12 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
log.error("paySuccessCallback_queryOrderById_faild, trackingNo:{},PaysuccessNoticeMessage:{}", LogTreadLocal.getTrackingNo(), gson.toJson(message));
return gson.toJson(message);
}
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());//todo
// 混合支付失败,取消订单
if (!message.getResult_code().equals(ResponseCodeConstant.RESPONSE_SUCCESS)) {
return orderService.cannelComPayOrder(confirmOrderDto, orderBean);
}
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return orderAdapter.sendPaySuccessNoticeMessage();
}
Integer client = OrderSourceType.getClientByCode(orderBean.getSource());
......@@ -253,21 +254,24 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
/**
* 微商城处理
*/
if(OrderSourceType.SAASMALL.getCode().equals(orderBean.getSource())) {
if (OrderSourceType.SAASMALL.getCode().equals(orderBean.getSource())) {
return mallOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/**
* app订单处理
*/
if(OrderSourceType.APP.getCode().equals(orderBean.getSource())) {
if (OrderSourceType.APP.getCode().equals(orderBean.getSource())) {
if(orderBean.getBizType() == 6){
return sellCouponOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
return appOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
//买券虚拟订单
if(orderBean.getBizType() == 6) {
if (orderBean.getBizType() == 6) {
return sellCouponOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
//麦咖啡订单处理
if(mcCafePartnerId.equals(orderBean.getCompanyId())) {
if (mcCafePartnerId.equals(orderBean.getCompanyId())) {
return mcCafeOrderService.paySuccessCallback(message, confirmOrderDto, orderBeans);
}
/**
......@@ -286,7 +290,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
public String mcCafePaySuccessCallback(PaysuccessNoticeMessage message) {
//添加分布式锁,如果没有取得锁直接返回失败;整个方法执行完毕后会删掉该锁
String paySuccessKey = PAY_SUCCESS_KEY + message.getTrans_id();
if(!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)){
if (!LockUtils.lockAfter(redisCache.getRedisTemplate(), paySuccessKey)) {
return orderAdapter.newSendPayFaileMessage();
}
try {
......@@ -303,7 +307,7 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
return gson.toJson(message);
}
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())){
if (!PayStatus.NOT_PAY.getCode().equals(orderBean.getPayStatus())) {
return orderAdapter.sendPaySuccessNoticeMessage();
}
/**
......@@ -318,34 +322,64 @@ public class OrderAdapterServiceImpl implements OrderAdapterService {
}
}
/**
* APP下单,下单带商品信息,不经过购物车服务,不唤起支付
*/
@Override
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());
if (assortmentCustomerInfoVo == null || StringUtils.isEmpty(assortmentCustomerInfoVo.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
if (UserLoginChannelEnum.APP.getCode().equals(assortmentCustomerInfoVo.getChannel())) {
return appOrderService.createOrder(createOrderVo,assortmentCustomerInfoVo);
return appOrderService.createOrder(createOrderVo, assortmentCustomerInfoVo);
}
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;
// }
/**
* 标准点餐参数校验
*
* @param createOrderVo
* @return
*/
private BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo){
if(StringUtils.isEmpty(createOrderVo.getSessionId())){
private BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo) {
if (StringUtils.isEmpty(createOrderVo.getSessionId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_SESSION_ERROR);
}
if(StringUtils.isEmpty(createOrderVo.getShopId())){
if (StringUtils.isEmpty(createOrderVo.getShopId())) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_STORE_ERROR);
}
if(createOrderVo.getOrderType() == null){
if (createOrderVo.getOrderType() == null) {
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_ORDERTYPE_ERROR);
}
return ResponseUtil.success();
......
......@@ -5,6 +5,7 @@ import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.CommonRedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.Active;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
......@@ -149,44 +150,50 @@ public class SellCouponOrderServiceImpl {
// 查询门店信息 营业时间、营业状态,服务器当前时间在营业时间内 点餐桌号
checkOrder.checkOrderByStore(storeResponseDto);
GetProductInfoRequest request = new GetProductInfoRequest();
request.setChannel(requestVo.getMenuType());
request.setPartnerId(partnerId);
request.setProductInfoType(2);
request.setShopId(storeId);
request.setProductIds(Lists.newArrayList(requestVo.getSkuId()));
//获取商品(里面的活动)
com.freemud.application.sdk.api.base.BaseResponse<GetProductInfosResponse> productInfosByIds = menuService.getProductInfosByIds(request, trackingNo);
if(!SUCCESS.equals(productInfosByIds.getCode()) || productInfosByIds.getData() == null || CollectionUtils.isEmpty(productInfosByIds.getData().getProducts())){
return ResponseUtil.error(ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getCode(),ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getMessage());
}
List<GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType> productBindingCoupons = productInfosByIds.getData().getProducts().get(0).getProductBindingCouponTypes();
if(CollectionUtils.isEmpty(productBindingCoupons)){
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
}
List<String> activityCodes = new ArrayList<>();
for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBindingCoupons){
activityCodes.add(productBindingCouponType.getActivityCode());
}
// GetProductInfoRequest request = new GetProductInfoRequest();
// request.setChannel(requestVo.getMenuType());
// request.setPartnerId(partnerId);
// request.setProductInfoType(2);
// request.setShopId(storeId);
// request.setProductIds(Lists.newArrayList(requestVo.getSkuId()));
// //获取商品(里面的活动)
// com.freemud.application.sdk.api.base.BaseResponse<GetProductInfosResponse> productInfosByIds = menuService.getProductInfosByIds(request, trackingNo);
// if(!SUCCESS.equals(productInfosByIds.getCode()) || productInfosByIds.getData() == null || CollectionUtils.isEmpty(productInfosByIds.getData().getProducts())){
// return ResponseUtil.error(ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getCode(),ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getMessage());
// }
// List<GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType> productBindingCoupons = productInfosByIds.getData().getProducts().get(0).getProductBindingCouponTypes();
// if(CollectionUtils.isEmpty(productBindingCoupons)){
// return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
// }
//
// List<String> activityCodes = new ArrayList<>();
// for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBindingCoupons){
// activityCodes.add(productBindingCouponType.getActivityCode());
// }
//
// List<ActiveDetailVO> activeDetailVOS = batchQueryActivityInfo(partnerId, activityCodes, trackingNo);
// if(CollectionUtils.isEmpty(activeDetailVOS) || activityCodes.size() != activeDetailVOS.size()){
// return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
// }
// Date now = new Date();
// for (ActiveDetailVO activeDetailVO : activeDetailVOS){
// if(activeDetailVO.getEffectiveEndTime() != null && activeDetailVO.getEffectiveEndTime().before(now)){
// return ResponseUtil.error(ResponseResult.COUPON_INVAILD);
// }
// }
BaseResponse createOrderRequestResponse = checkOrderCoupon(userLoginInfoDto, storeResponse, trackingNo, requestVo.getMenuType(), Integer.valueOf(requestVo.getBizType()), partnerId, storeId, requestVo.getSkuId(),requestVo.getCardCode());
if (createOrderRequestResponse == null || !ResponseResult.SUCCESS.getCode().equals(createOrderRequestResponse.getCode()) || createOrderRequestResponse.getResult() == null) {
return createOrderRequestResponse;
}
CreateOrderRequest createOrderRequest = (CreateOrderRequest) createOrderRequestResponse.getResult();
List<ActiveDetailVO> activeDetailVOS = batchQueryActivityInfo(partnerId, activityCodes, trackingNo);
if(CollectionUtils.isEmpty(activeDetailVOS) || activityCodes.size() != activeDetailVOS.size()){
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
}
Date now = new Date();
for (ActiveDetailVO activeDetailVO : activeDetailVOS){
if(activeDetailVO.getEffectiveEndTime() != null && activeDetailVO.getEffectiveEndTime().before(now)){
return ResponseUtil.error(ResponseResult.COUPON_INVAILD);
}
}
CreateOrderRequest createOrderRequest = convent2NEWCreateOrderRequest(requestVo,userLoginInfoDto,productInfosByIds.getData(),activeDetailVOS,storeResponse.getBizVO());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> orderInfoReqsBaseResponse = orderSdkService.createOrder(createOrderRequest, trackingNo);
CreateOrderResponse createOrderResponse = orderSdkAdapter.convent2NEWOrderInfoReqs(orderInfoReqsBaseResponse);
if(createOrderResponse == null || createOrderResponse.getErrcode() != 100){
if (createOrderResponse == null || createOrderResponse.getErrcode() != 100) {
return ResponseUtil.error(ResponseResult.ORDER_CREATE_ERROR);
}
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = new CreatePrepayRequestDto();
createPrepayRequestDto.setPartnerId(partnerId);
......@@ -232,15 +239,75 @@ public class SellCouponOrderServiceImpl {
}
public BaseResponse ngsCouponOrderCreate(NgsSellCouponCreateOrderVo requestVo){
/**
* 效验虚拟商品活动信息
* @param userLoginInfoDto
* @param storeResponse
* @param trackingNo
* @param menuType
* @param bizType
* @param partnerId
* @param storeId
* @param skuId
* @param cardCode
* @return
*/
public BaseResponse checkOrderCoupon(AssortmentCustomerInfoVo userLoginInfoDto,
StoreResponse storeResponse,
String trackingNo,
String menuType,
Integer bizType,
String partnerId,
String storeId,
String skuId,String cardCode) {
GetProductInfoRequest request = new GetProductInfoRequest();
request.setChannel(menuType);
request.setPartnerId(partnerId);
request.setProductInfoType(2);
request.setShopId(storeId);
request.setProductIds(Lists.newArrayList(skuId));
//获取商品(里面的活动)
com.freemud.application.sdk.api.base.BaseResponse<GetProductInfosResponse> productInfosByIds = menuService.getProductInfosByIds(request, trackingNo);
if (!ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(productInfosByIds.getCode()) || productInfosByIds.getData() == null || CollectionUtils.isEmpty(productInfosByIds.getData().getProducts())) {
return ResponseUtil.error(ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getCode(), ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getMessage());
}
//效验商品券是否有效
List<GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType> productBindingCoupons = productInfosByIds.getData().getProducts().get(0).getProductBindingCouponTypes();
if (CollectionUtils.isEmpty(productBindingCoupons)) {
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
}
List<String> activityCodes = new ArrayList<>();
for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBindingCoupons) {
activityCodes.add(productBindingCouponType.getActivityCode());
}
//批量查询活动详情
List<ActiveDetailVO> activeDetailVOS = batchQueryActivityInfo(partnerId, activityCodes, trackingNo);
if (CollectionUtils.isEmpty(activeDetailVOS) || activityCodes.size() != activeDetailVOS.size()) {
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
}
//优惠券是否失效
Date now = new Date();
for (ActiveDetailVO activeDetailVO : activeDetailVOS) {
if (activeDetailVO.getEffectiveEndTime() != null && activeDetailVO.getEffectiveEndTime().before(now)) {
return ResponseUtil.error(ResponseResult.COUPON_INVAILD);
}
}
//转换CreateOrderRequest对象
CreateOrderRequest createOrderRequest = convent2NEWCreateOrderRequest(userLoginInfoDto,
productInfosByIds.getData(),
activeDetailVOS,
storeResponse.getBizVO(),storeId,cardCode,skuId,menuType,bizType);
return ResponseUtil.success(createOrderRequest);
}
public BaseResponse ngsCouponOrderCreate(NgsSellCouponCreateOrderVo requestVo){
// 查询用户信息、校验svc卡
AssortmentCustomerInfoVo userLoginInfoDto = checkOrder.getMemberNew(requestVo.getSessionId());
String trackingNo = LogThreadLocal.getTrackingNo();
String partnerId = userLoginInfoDto.getPartnerId();
// 构建创建订单入参
CreateOrderRequest createOrderRequest = ngsConvent2NEWCreateOrderRequest(requestVo,userLoginInfoDto);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> orderInfoReqsBaseResponse = orderSdkService.createOrder(createOrderRequest, trackingNo);
......@@ -248,8 +315,6 @@ public class SellCouponOrderServiceImpl {
if(createOrderResponse == null || createOrderResponse.getErrcode() != 100){
return ResponseUtil.error(ResponseResult.ORDER_CREATE_ERROR);
}
//创建支付
CreatePrepayRequestDto createPrepayRequestDto = new CreatePrepayRequestDto();
createPrepayRequestDto.setPartnerId(partnerId);
......@@ -262,11 +327,9 @@ public class SellCouponOrderServiceImpl {
createPrepayRequestDto.setProductOrderBean(createOrderResponse.getData());
createPrepayRequestDto.setTotalAmount(createOrderRequest.getSettlementAmount());
createPrepayRequestDto.setCardAmount(0);
OrderExtInfoDto orderExtInfoDto = new OrderExtInfoDto();
String deliveryHoursDayStart = "";
String deliveryHoursDayEnd = "";
orderExtInfoDto.setDeliveryHoursDayStart(deliveryHoursDayStart);
orderExtInfoDto.setDeliveryHoursDayEnd(deliveryHoursDayEnd);
orderExtInfoDto.setOpenid(userLoginInfoDto.getOpenId());
......@@ -399,9 +462,27 @@ public class SellCouponOrderServiceImpl {
return appKey;
}
private CreateOrderRequest convent2NEWCreateOrderRequest(SellCouponCreateOrderVo requestVo,AssortmentCustomerInfoVo userLoginInfoDto,
/**
* 转换对象,从购买优惠券业务提出重写
* @param userLoginInfoDto
* @param productInfosResponse
* @param activeDetailVOS
* @param storeInfo
* @param shopId
* @param cardCode
* @param skuId
* @param channel
* @param bizType
* @return
*/
private CreateOrderRequest convent2NEWCreateOrderRequest(AssortmentCustomerInfoVo userLoginInfoDto,
GetProductInfosResponse productInfosResponse,List<ActiveDetailVO> activeDetailVOS,
StoreResponse.BizVO storeInfo){
StoreResponse.BizVO storeInfo,
String shopId,
String cardCode,
String skuId,
String channel,
Integer bizType){
CreateOrderRequest request = new CreateOrderRequest();
Integer orderClient = OrderClientType.SAAS.getIndex();
if(UserLoginChannelEnum.ALIPAY.getCode().equals(userLoginInfoDto.getChannel())){
......@@ -411,16 +492,16 @@ public class SellCouponOrderServiceImpl {
orderClient = OrderClientType.APP.getIndex();
}
//抖音小程序
if("5".equalsIgnoreCase(requestVo.getChannel())) {
if("5".equalsIgnoreCase(channel)) {
request.setPayChannel(PayChannelType.TIKTOKPAY.getIndex().toString());
orderClient = OrderClientType.TIKTOKPAY.getIndex();
}
String partnerId = userLoginInfoDto.getPartnerId();
request.setOrderClient(orderClient);
request.setPartnerId(partnerId);
request.setStoreId(requestVo.getShopId());
request.setStoreId(shopId);
//买券虚拟订单
request.setBizType(6);
request.setBizType(bizType == null ? 6 : bizType);
//1:线上支付 2:线下支付
request.setPayType(1);
request.setUserId(userLoginInfoDto.getMemberId());
......@@ -429,7 +510,7 @@ public class SellCouponOrderServiceImpl {
request.setThirdStoreId(storeInfo.getThirdPartCode());
request.setOrderState(1);
request.setPayState(1);
if(StringUtils.isNotBlank(requestVo.getCardCode())){
if(StringUtils.isNotBlank(cardCode)){
request.setPayChannel("10102");
request.setPayChannelName("储值卡支付");
}
......@@ -448,8 +529,8 @@ public class SellCouponOrderServiceImpl {
orderItemCreateReq.setProductPrice(productBean.getOriginalPrice());
orderItemCreateReq.setSettlementPrice(productBean.getFinalPrice());
orderItemCreateReq.setPartnerId(partnerId);
orderItemCreateReq.setProductId(requestVo.getSkuId());
orderItemCreateReq.setProductSpec(requestVo.getSkuId());
orderItemCreateReq.setProductId(skuId);
orderItemCreateReq.setProductSpec(skuId);
orderItemCreateReq.setProductName(productBean.getName());
orderItemCreateReq.setProductSpecName(productBean.getName());
orderItemCreateReq.setProductPicUrl(productBean.getPicture());
......@@ -499,10 +580,10 @@ public class SellCouponOrderServiceImpl {
request.setOrderExtended(orderAdapter.saveStoreInfo(storeInfo));
request.setOperator(userLoginInfoDto.getNickName());
request.setAppId(userLoginInfoDto.getWxAppId());
if("5".equalsIgnoreCase(requestVo.getChannel().toString())){
if("5".equalsIgnoreCase(channel)){
request.setPayChannelType(PayChannelType.TIKTOKPAY.getIndex());
}
request.setPayChannel(requestVo.getChannel());
request.setPayChannel(channel);
return request;
}
......
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