Commit e4ff8908 by 蒋小洋

Merge branches 'ka-券包资金分账-20211020-jxy' and 'qa' of…

Merge branches 'ka-券包资金分账-20211020-jxy' and 'qa' of http://gitlab.freemud.com/order-group-application/order-group into qa

 Conflicts:
	order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
	order-application-service/src/main/java/cn/freemud/service/impl/SellCouponOrderServiceImpl.java
parents 28e91975 ca473a20
...@@ -34,4 +34,11 @@ public class ProductBindingCouponType { ...@@ -34,4 +34,11 @@ public class ProductBindingCouponType {
*/ */
// private int sequence; // private int sequence;
//是否开启分账(0不开启,1开启)
private Integer isSplitAccount;
//最大核销次数"
private Integer maxRedeemTimes;
//券单价(分)
private Integer price;
} }
...@@ -22,8 +22,7 @@ import cn.freemud.entities.dto.activity.ShareDiscountActivityDto; ...@@ -22,8 +22,7 @@ import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.dto.order.CreateOrderAccountDto; import cn.freemud.entities.dto.order.CreateOrderAccountDto;
import cn.freemud.entities.dto.order.CreateOrderProductDto; import cn.freemud.entities.dto.order.CreateOrderProductDto;
import cn.freemud.entities.dto.order.*; import cn.freemud.entities.dto.order.*;
import cn.freemud.entities.dto.pay.CombPayResponse; import cn.freemud.entities.dto.pay.*;
import cn.freemud.entities.dto.pay.OrderPayResponse;
import cn.freemud.entities.dto.promotion.OrderBeanRequest; import cn.freemud.entities.dto.promotion.OrderBeanRequest;
import cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse; import cn.freemud.entities.dto.promotion.ShoppingCartGoodsResponse;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto; import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
...@@ -70,6 +69,7 @@ import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSales ...@@ -70,6 +69,7 @@ import com.freemud.application.sdk.api.ordercenter.response.orderInfo.AfterSales
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.*;
import com.freemud.application.sdk.api.promotioncenter.dto.promotion.GoodsStockDTO; import com.freemud.application.sdk.api.promotioncenter.dto.promotion.GoodsStockDTO;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest; import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
......
...@@ -231,6 +231,7 @@ public class PointsMallOrderAdapter { ...@@ -231,6 +231,7 @@ public class PointsMallOrderAdapter {
productBeans.add(productBean); productBeans.add(productBean);
} }
} }
requestDto.setProducts(productBeans);
requestDto.setBody(payProductName); requestDto.setBody(payProductName);
return requestDto; return requestDto;
} }
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
package cn.freemud.entities.dto.product; package cn.freemud.entities.dto.product;
import cn.freemud.entities.dto.ProductComboListDto; import cn.freemud.entities.dto.ProductComboListDto;
import cn.freemud.entities.dto.ProductGroupDto; import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponType;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -84,4 +84,8 @@ public class ProductInfo { ...@@ -84,4 +84,8 @@ public class ProductInfo {
//用于标识虚拟商品是否限制购买数量,0-否、1-是 //用于标识虚拟商品是否限制购买数量,0-否、1-是
private Integer isLimitNumProduct; private Integer isLimitNumProduct;
//虚拟商品的券信息集合
private List<ProductBindingCouponType> productBindingCouponTypes;
} }
...@@ -23,12 +23,17 @@ import cn.freemud.entities.dto.delivery.DeliveryBaseResponse; ...@@ -23,12 +23,17 @@ import cn.freemud.entities.dto.delivery.DeliveryBaseResponse;
import cn.freemud.entities.dto.delivery.GetDeliveryFlagRequest; import cn.freemud.entities.dto.delivery.GetDeliveryFlagRequest;
import cn.freemud.entities.dto.delivery.GetDeliveryFlagResponseDto; import cn.freemud.entities.dto.delivery.GetDeliveryFlagResponseDto;
import cn.freemud.entities.dto.order.BusinessDate; import cn.freemud.entities.dto.order.BusinessDate;
import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.pay.PayOrderDto;
import cn.freemud.entities.dto.pay.PayProductDto;
import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto;
import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto; import cn.freemud.entities.dto.shoppingCart.GetShoppingCartGoodsApportionDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.store.*; import cn.freemud.entities.dto.store.*;
import cn.freemud.entities.dto.user.CustomerPropertyBaseResponse; import cn.freemud.entities.dto.user.CustomerPropertyBaseResponse;
import cn.freemud.entities.dto.user.GetSvcInfoByMemberIdResponseVo; import cn.freemud.entities.dto.user.GetSvcInfoByMemberIdResponseVo;
import cn.freemud.entities.dto.user.StatisticalScoreRequestVo; import cn.freemud.entities.dto.user.StatisticalScoreRequestVo;
import cn.freemud.entities.vo.CreateOrderResponseVo;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.GetMemberCouponRequestVo; import cn.freemud.entities.vo.GetMemberCouponRequestVo;
import cn.freemud.entities.vo.ShoppingCartInfoRequestVo; import cn.freemud.entities.vo.ShoppingCartInfoRequestVo;
...@@ -55,6 +60,8 @@ import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressR ...@@ -55,6 +60,8 @@ 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.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService; 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.enums.BizTypeEnum;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp;
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.storecenter.request.QueryDeliveryRequest; import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
...@@ -1342,5 +1349,90 @@ public class CheckOrder { ...@@ -1342,5 +1349,90 @@ public class CheckOrder {
} }
} }
public UnifiedOrderRequestDto convert2UnifiedOrderRequestDto(OrderInfoReqs orderInfo, String openId, Long cashPrice,
Long clientCode, String reverseNotifyiDcUrl, String payTimeOutTime) {
String partnerId = orderInfo.getPartnerId();
String storeId = orderInfo.getStoreId();
String appId = orderInfo.getAppId();
//现金支付唤起线上支付
UnifiedOrderRequestDto requestDto = new UnifiedOrderRequestDto();
requestDto.setTransId(orderInfo.getOrderCode());
requestDto.setPartnerId(partnerId);
requestDto.setStoreId(storeId);
requestDto.setAmount(cashPrice);
String businessDate = DateUtil.convert2String(new Date(), "yyyyMMdd");
requestDto.setBusinessDate(businessDate);
requestDto.setClientCode(clientCode);
requestDto.setFoodOrderType(getFoodOrderType(1));
requestDto.setNotifyUrl(reverseNotifyiDcUrl);
requestDto.setOpenId(openId);
requestDto.setPayTimeOutTime(payTimeOutTime);
List<PayProductDto> productBeans = new ArrayList<>();
String payProductName = "";
if (org.apache.commons.collections.CollectionUtils.isNotEmpty(orderInfo.getOrderItemList())) {
for (OrderItemResp orderProductBean : orderInfo.getOrderItemList()) {
PayProductDto productBean = new PayProductDto();
productBean.setId(orderProductBean.getProductId());
productBean.setQuantity(orderProductBean.getProductQuantity());
productBean.setPrice(orderProductBean.getProductPrice().longValue());
if (StringUtils.isNotBlank(payProductName)) {
payProductName = orderProductBean.getProductName();
} else if (payProductName.endsWith("...")) {
//不处理
} else {
payProductName = payProductName + "...";
}
productBean.setName(orderProductBean.getProductName());
productBeans.add(productBean);
}
}
requestDto.setProducts(productBeans);
requestDto.setBody(payProductName);
return requestDto;
}
/**
* 预支付接口获取类型
* @return
*/
private String getFoodOrderType(Integer orderType) {
//1=外卖 4=自提,5=堂食
//qr_order(店内扫码点餐),pre_order(预点到店自提),home_delivery (外送到家)
String foodOrderType;
switch (orderType) {
case 1:
foodOrderType = "home_delivery";
break;
case 4:
foodOrderType = "pre_order";
break;
case 5:
default:
foodOrderType = "qr_order";
break;
}
return foodOrderType;
}
public void convent2CreateOrderResponseVo(CreateOrderResponseVo createOrderResponseVo, String appId, FacePayResponseDto response){
createOrderResponseVo.setWxappId(appId);
createOrderResponseVo.setFmId(response.getFmId());
createOrderResponseVo.setPaySuccess(false);
String payOrderDto = response.getPayOrder();
PayOrderDto payOrder = JSONObject.parseObject(payOrderDto, PayOrderDto.class);
if (payOrder != null) {
createOrderResponseVo.setTimestamp(payOrder.getTimestamp());
createOrderResponseVo.setNonceStr(payOrder.getNonceStr());
createOrderResponseVo.setPackageX(payOrder.getPackageX());
createOrderResponseVo.setSignType(payOrder.getSignType());
createOrderResponseVo.setSign(payOrder.getPaySign());
createOrderResponseVo.setOrderStr(payOrder.getAliPayOrder());
}
}
} }
...@@ -7,19 +7,19 @@ import cn.freemud.amp.service.SendCouponService; ...@@ -7,19 +7,19 @@ import cn.freemud.amp.service.SendCouponService;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.CommonRedisKeyConstant; import cn.freemud.constant.CommonRedisKeyConstant;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.Active; import cn.freemud.entities.Active;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto; import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto;
import cn.freemud.entities.dto.product.GetValidateProductInfoDto; import cn.freemud.entities.dto.product.GetValidateProductInfoDto;
import cn.freemud.entities.dto.product.ProductInfo; import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.entities.dto.product.ValidateProductInfosDto; import cn.freemud.entities.dto.product.ValidateProductInfosDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto; import cn.freemud.entities.dto.promotion.CalculationDiscountGoodsDto;
import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto; import cn.freemud.entities.dto.promotion.CalculationDiscountRequestDto;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.NgsSellCouponCreateOrderVo;
import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.SellCouponCreateOrderVo;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.manager.BuyProductOnceManager; import cn.freemud.manager.BuyProductOnceManager;
...@@ -27,15 +27,17 @@ import cn.freemud.redis.RedisCache; ...@@ -27,15 +27,17 @@ import cn.freemud.redis.RedisCache;
import cn.freemud.service.CouponService; import cn.freemud.service.CouponService;
import cn.freemud.service.OrderFactoryService; import cn.freemud.service.OrderFactoryService;
import cn.freemud.service.business.OrderBusinessService; import cn.freemud.service.business.OrderBusinessService;
import cn.freemud.service.thirdparty.PaymentNewClient;
import cn.freemud.service.thirdparty.PromotionDiscountClient; import cn.freemud.service.thirdparty.PromotionDiscountClient;
import cn.freemud.service.thirdparty.StoreItemClient; import cn.freemud.service.thirdparty.StoreItemClient;
import cn.freemud.utils.AppLogUtil; import cn.freemud.utils.AppLogUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformIappWxappStore; import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformIappWxappStore;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerConfig;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerConfigManager;
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.couponcenter.online.domain.ActiveDetailVO; import com.freemud.application.sdk.api.couponcenter.online.domain.ActiveDetailVO;
import com.freemud.application.sdk.api.couponcenter.online.domain.AppKeyVO; import com.freemud.application.sdk.api.couponcenter.online.domain.AppKeyVO;
import com.freemud.application.sdk.api.couponcenter.online.request.ActiveBatchQueryRequest; import com.freemud.application.sdk.api.couponcenter.online.request.ActiveBatchQueryRequest;
...@@ -57,9 +59,6 @@ import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp; ...@@ -57,9 +59,6 @@ import com.freemud.application.sdk.api.ordercenter.response.OrderBaseResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.productcenter.request.product.GetProductInfoRequest;
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.MenuService;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest; import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
import com.freemud.application.sdk.api.promotioncenter.response.PromotionResponseDTO; import com.freemud.application.sdk.api.promotioncenter.response.PromotionResponseDTO;
...@@ -165,6 +164,12 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -165,6 +164,12 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
@Autowired @Autowired
private PayServiceImpl payService; private PayServiceImpl payService;
@Autowired
private PaymentNewClient paymentNewClient;
@Value("${saas.reverseNotifyiDcUrl}")
private String reverseNotifyiDcUrl;
@Autowired
private AssortmentOpenPlatformPartnerConfigManager openPlatformPartnerConfigManager;
/** /**
* 抖音卖券 * 抖音卖券
...@@ -283,6 +288,9 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -283,6 +288,9 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
String partnerId = userLoginInfoDto.getPartnerId(); String partnerId = userLoginInfoDto.getPartnerId();
String storeId = requestVo.getShopId(); String storeId = requestVo.getShopId();
String userId = userLoginInfoDto.getMemberId(); String userId = userLoginInfoDto.getMemberId();
String openId = userLoginInfoDto.getOpenId();
String appId = userLoginInfoDto.getAppId();
//查询门店信息 //查询门店信息
StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, storeId,null); StoreInfoRequest storeInfoRequest = new StoreInfoRequest(partnerId, storeId,null);
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo); StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest, trackingNo);
...@@ -329,7 +337,13 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -329,7 +337,13 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
CreateOrderRequest createOrderRequest = (CreateOrderRequest) createOrderRequestResponse.getResult(); CreateOrderRequest createOrderRequest = (CreateOrderRequest) createOrderRequestResponse.getResult();
//标准化平台虚拟商品特价活动计算,不包含蜜雪APP买虚拟商品 //标准化平台虚拟商品特价活动计算,不包含蜜雪APP买虚拟商品
List<ActivityUpdateStockRequest.StockBeanDto> stockBeanDtos = calculationDiscount(partnerId, storeId, userLoginInfoDto.getMemberId(), productInfosDto.getData().getProducts().get(0), createOrderRequest); List<ActivityUpdateStockRequest.StockBeanDto> stockBeanDtos = calculationDiscount(partnerId, storeId, userLoginInfoDto.getMemberId(), productInfosDto.getData().getProducts().get(0), createOrderRequest);
//查询虚拟商品卖券支付配置中的分账门店信息
//11-虚拟卖券门店
AssortmentOpenPlatformIappWxappStore wxAppStore = payService.getIappWxappStoreInfo(userLoginInfoDto.getWxAppId(),"11");
if ((wxAppStore == null || wxAppStore.getClientCode() == null)) {
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "支付门店未配置");
}
createOrderRequest.setStoreId(wxAppStore.getStoreId());
OrderBaseResp<OrderInfoReqs> orderInfoReqsBaseResponse = orderSdkService.createOrder(createOrderRequest, trackingNo); OrderBaseResp<OrderInfoReqs> orderInfoReqsBaseResponse = orderSdkService.createOrder(createOrderRequest, trackingNo);
CreateOrderResponse createOrderResponse = orderSdkAdapter.convent2NEWOrderInfoReqs(orderInfoReqsBaseResponse); CreateOrderResponse createOrderResponse = orderSdkAdapter.convent2NEWOrderInfoReqs(orderInfoReqsBaseResponse);
if (createOrderResponse == null || createOrderResponse.getErrcode() != 100) { if (createOrderResponse == null || createOrderResponse.getErrcode() != 100) {
...@@ -416,7 +430,28 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -416,7 +430,28 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
orderExtInfoDto.setFromAppId(userLoginInfoDto.getWxAppId()); orderExtInfoDto.setFromAppId(userLoginInfoDto.getWxAppId());
createPrepayRequestDto.setOrderExtInfoDTO(orderExtInfoDto); createPrepayRequestDto.setOrderExtInfoDTO(orderExtInfoDto);
return ResponseUtil.success(payService.createPrepayOrder(createPrepayRequestDto));
//创建卖券预支付
OrderInfoReqs result = orderInfoReqsBaseResponse.getResult();
String orderCode = result.getOrderCode();
CreateOrderResponseVo createOrderResponseVo = new CreateOrderResponseVo();
createOrderResponseVo.setOid(orderCode);
//线上现金支付,创建预支付订单,唤起支付
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> response = null;
Long payClientCode = Long.parseLong(wxAppStore.getClientCode());
//实际支付金额
Long cashPrice = createOrderRequest.getActualPayAmount();
UnifiedOrderRequestDto requestDto = checkOrder.convert2UnifiedOrderRequestDto(result, openId, cashPrice, payClientCode, reverseNotifyiDcUrl, getPartnerPayOvertime(partnerId));
response = paymentNewClient.unifiedOrder(requestDto);
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, response.getCode())) {
return ResponseUtil.error(orderInfoReqsBaseResponse.getCode(), "支付异常");
}
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, response.getData().getResultCode())) {
return ResponseUtil.error(orderInfoReqsBaseResponse.getCode(), "支付异常," + response.getData().getResultMsg());
}
//唤起支付返回参数
checkOrder.convent2CreateOrderResponseVo(createOrderResponseVo, appId, response.getData());
return ResponseUtil.success(createOrderResponseVo);
} }
...@@ -457,7 +492,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -457,7 +492,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_VAILD_ERROR); return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_VAILD_ERROR);
} }
GetProductInfoRequest request = new GetProductInfoRequest(); /*GetProductInfoRequest request = new GetProductInfoRequest();
request.setChannel(menuType); request.setChannel(menuType);
request.setPartnerId(partnerId); request.setPartnerId(partnerId);
request.setProductInfoType(ProductInfoType.ALL.getCode()); request.setProductInfoType(ProductInfoType.ALL.getCode());
...@@ -467,14 +502,24 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -467,14 +502,24 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
com.freemud.application.sdk.api.base.BaseResponse<GetProductInfosResponse> productInfosByIds = menuService.getProductInfosByIds(request, trackingNo); 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())) { 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()); return ResponseUtil.error(ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getCode(), ResponseResultEnum.GET_PRODUCT_INFOS_ERROR.getMessage());
} }*/
//查询商品信息sdk改feign
GetProductInfoDto request = new GetProductInfoDto();
request.setPartnerId(partnerId);
request.setShopId(storeId);
request.setProductInfoType(ProductInfoType.ALL.getCode());
request.setProductIds(productIds);
request.setChannel(menuType);
ProductInfosDto productInfos = storeItemClient.listProductInfos(request);
//获取虚拟商品中的券信息
//效验商品券是否有效 //效验商品券是否有效
List<GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType> productBindingCoupons = productInfosByIds.getData().getProducts().get(0).getProductBindingCouponTypes(); List<ProductBindingCouponType> productBindingCoupons = productInfos.getData().getProducts().get(0).getProductBindingCouponTypes();
if (CollectionUtils.isEmpty(productBindingCoupons)) { if (CollectionUtils.isEmpty(productBindingCoupons)) {
return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD); return ResponseUtil.error(ResponseResult.STORE_ITEM_CHECK_INVAILD);
} }
List<String> activityCodes = new ArrayList<>(); List<String> activityCodes = new ArrayList<>();
for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBindingCoupons) { for (ProductBindingCouponType productBindingCouponType : productBindingCoupons) {
activityCodes.add(productBindingCouponType.getActivityCode()); activityCodes.add(productBindingCouponType.getActivityCode());
} }
//批量查询活动详情 //批量查询活动详情
...@@ -491,7 +536,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -491,7 +536,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
} }
//转换CreateOrderRequest对象 //转换CreateOrderRequest对象
CreateOrderRequest createOrderRequest = convent2NEWCreateOrderRequest(userLoginInfoDto, CreateOrderRequest createOrderRequest = convent2NEWCreateOrderRequest(userLoginInfoDto,
productInfosByIds.getData(), productInfos.getData(),
activeDetailVOS, activeDetailVOS,
storeResponse.getBizVO(),storeId,cardCode,skuId,menuType,bizType); storeResponse.getBizVO(),storeId,cardCode,skuId,menuType,bizType);
return ResponseUtil.success(createOrderRequest); return ResponseUtil.success(createOrderRequest);
...@@ -662,7 +707,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -662,7 +707,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
/** /**
* 转换对象,从购买优惠券业务提出重写 * 转换对象,从购买优惠券业务提出重写
* @param userLoginInfoDto * @param userLoginInfoDto
* @param productInfosResponse * @param dataBean
* @param activeDetailVOS * @param activeDetailVOS
* @param storeInfo * @param storeInfo
* @param shopId * @param shopId
...@@ -673,7 +718,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -673,7 +718,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
* @return * @return
*/ */
private CreateOrderRequest convent2NEWCreateOrderRequest(AssortmentCustomerInfoVo userLoginInfoDto, private CreateOrderRequest convent2NEWCreateOrderRequest(AssortmentCustomerInfoVo userLoginInfoDto,
GetProductInfosResponse productInfosResponse,List<ActiveDetailVO> activeDetailVOS, ProductInfosDto.DataBean dataBean,List<ActiveDetailVO> activeDetailVOS,
StoreResponse.BizVO storeInfo, StoreResponse.BizVO storeInfo,
String shopId, String shopId,
String cardCode, String cardCode,
...@@ -716,7 +761,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -716,7 +761,7 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
request.setPayChannel("10102"); request.setPayChannel("10102");
request.setPayChannelName("储值卡支付"); request.setPayChannelName("储值卡支付");
} }
GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean productBean = productInfosResponse.getProducts().get(0); ProductInfo productBean = dataBean.getProducts().get(0);
//订单原始金额,单位分 //订单原始金额,单位分
//用户在界面上看到的支付金额 //用户在界面上看到的支付金额
request.setSettlementAmount(productBean.getFinalPrice()); request.setSettlementAmount(productBean.getFinalPrice());
...@@ -746,13 +791,17 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -746,13 +791,17 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
OrderProductAddInfoDto orderProductAddInfoDto = new OrderProductAddInfoDto(); OrderProductAddInfoDto orderProductAddInfoDto = new OrderProductAddInfoDto();
List<ProductBindingCouponType> productBindingCoupons = new ArrayList<>(); List<ProductBindingCouponType> productBindingCoupons = new ArrayList<>();
for (GetMenuCategoryInfoResponse.RootNodeBean.ChildrenBeanFirst.ChildrenBeanSecond.ProductBean.ProductBindingCouponType productBindingCouponType : productBean.getProductBindingCouponTypes()){ for (ProductBindingCouponType productBindingCouponType : productBean.getProductBindingCouponTypes()){
for (ActiveDetailVO activeDetailVO : activeDetailVOS){ for (ActiveDetailVO activeDetailVO : activeDetailVOS){
if(productBindingCouponType.getActivityCode().equals(activeDetailVO.getActiveCode())){ if(productBindingCouponType.getActivityCode().equals(activeDetailVO.getActiveCode())){
ProductBindingCouponType productBindingCouponType2 = new ProductBindingCouponType(); ProductBindingCouponType productBindingCouponType2 = new ProductBindingCouponType();
productBindingCouponType2.setActivityCode(productBindingCouponType.getActivityCode()); productBindingCouponType2.setActivityCode(productBindingCouponType.getActivityCode());
productBindingCouponType2.setNum(productBindingCouponType.getNum()); productBindingCouponType2.setNum(productBindingCouponType.getNum());
productBindingCouponType2.setActivityName(activeDetailVO.getActiveName()); productBindingCouponType2.setActivityName(activeDetailVO.getActiveName());
//新增是否分账,核销次数和券单价
productBindingCouponType2.setIsSplitAccount(productBindingCouponType.getIsSplitAccount());
productBindingCouponType2.setMaxRedeemTimes(productBindingCouponType.getMaxRedeemTimes());
productBindingCouponType2.setPrice(productBindingCouponType.getPrice());
productBindingCoupons.add(productBindingCouponType2); productBindingCoupons.add(productBindingCouponType2);
break; break;
} }
...@@ -1033,4 +1082,19 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService { ...@@ -1033,4 +1082,19 @@ public class SellCouponOrderServiceImpl implements OrderFactoryService {
sendCouponService.sendCouponMq(orderInfo); sendCouponService.sendCouponMq(orderInfo);
return result; return result;
} }
/**
* 获取商户支付超时时间
* @param partnerId 商户Id
* @return 超时时间
*/
private String getPartnerPayOvertime(String partnerId) {
return Optional.ofNullable(openPlatformPartnerConfigManager.selectPartnerConfigByPartnerKey(partnerId, RedisKeyConstant.PARTNER_PAY_OVERTIME))
.orElseGet(() -> {
AssortmentOpenPlatformPartnerConfig config = new AssortmentOpenPlatformPartnerConfig();
config.setPartnerValue("30");
openPlatformPartnerConfigManager.addPartnerConfig(partnerId, RedisKeyConstant.PARTNER_PAY_OVERTIME, config);
return config;
}).getPartnerValue();
}
} }
...@@ -106,4 +106,5 @@ ...@@ -106,4 +106,5 @@
| 1.3.67.RELEASE | 新增爱马哥需求代码改动 | 周晓航 | 2021-08-23 | | 1.3.67.RELEASE | 新增爱马哥需求代码改动 | 周晓航 | 2021-08-23 |
| 1.3.68.RELEASE | 新增维护商品类型同步商品服务 | 周晓航 | 2021-09-03 | | 1.3.68.RELEASE | 新增维护商品类型同步商品服务 | 周晓航 | 2021-09-03 |
| 1.3.69.RELEASE | 升级sdk | 伍平 | 2021-09-16 | | 1.3.69.RELEASE | 升级sdk | 伍平 | 2021-09-16 |
| 1.3.70.RELEASE | 升级sdk | 伍平 | 2021-10-11 | | 1.3.70.RELEASE | 升级sdk | 伍平 | 2021-10-11 |
\ No newline at end of file | 1.3.71.RELEASE | 升级sdk | 蒋小洋 | 2021-10-27 |
\ No newline at end of file
...@@ -22,4 +22,11 @@ public class ProductBindingCouponType { ...@@ -22,4 +22,11 @@ public class ProductBindingCouponType {
*/ */
// private int sequence; // private int sequence;
//是否开启分账(0不开启,1开启)
private Integer isSplitAccount;
//最大核销次数"
private Integer maxRedeemTimes;
//券单价(分)
private Integer price;
} }
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