Commit 3cff900e by ping.wu

代码优化

parent ea6d959d
package cn.freemud.adapter;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.Active;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import cn.freemud.entities.dto.pay.PayProductDto;
import cn.freemud.entities.dto.pay.UnifiedOrderRequestDto;
import cn.freemud.entities.dto.product.pointsmall.IntegralProductType;
import cn.freemud.entities.dto.product.pointsmall.PointMallListProductInfoRequest;
import cn.freemud.entities.dto.product.pointsmall.ProductStockRequest;
import cn.freemud.entities.dto.product.pointsmall.UpdatePointsMallStocksRequest;
import cn.freemud.entities.dto.user.UseScoreRequest;
import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.OrderSettlementType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest;
import com.freemud.application.sdk.api.ordercenter.request.create.DeliveryContactInfoCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp;
import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto;
import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponType;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@Component
public class PointsMallOrderAdapter {
public PointMallListProductInfoRequest convent2PointMallListProductInfoRequest(String partnerId, String memberId, String skuId) {
PointMallListProductInfoRequest productInfoRequest = new PointMallListProductInfoRequest();
productInfoRequest.setPartnerId(partnerId);
productInfoRequest.setMemberId(memberId);
productInfoRequest.setProductIdList(Arrays.asList(skuId));
productInfoRequest.setValidateMember(true);
productInfoRequest.setValidateStock(true);
productInfoRequest.setValidateTime(true);
return productInfoRequest;
}
public CreateOrderRequest convent2NEWCreateOrderRequest(Integer orderClient, AssortmentCustomerInfoVo userLoginInfoDto,
String shopId, String cardCode,
String channel, Integer bizType,
IntegralProductType productBean, String skuId,
Active active, WeixinDeliveryAddressDto weixinDeliveryAddress) {
CreateOrderRequest request = new CreateOrderRequest();
String partnerId = userLoginInfoDto.getPartnerId();
request.setOrderClient(orderClient);
request.setPartnerId(partnerId);
request.setStoreId(shopId);
request.setStoreName("虚拟门店");
request.setThirdStoreId("");
//买券虚拟订单 不管APP卖券还是平台,依旧保留传入6
request.setBizType(bizType);
//1:线上支付 2:线下支付
request.setPayType(1);
request.setUserId(userLoginInfoDto.getMemberId());
request.setUserName(userLoginInfoDto.getNickName());
request.setOrderState(1);
request.setPayState(1);
if (StringUtils.isNotBlank(cardCode)) {
request.setPayChannel("10102");
request.setPayChannelName("储值卡支付");
}
//积分价格
Integer integralPrice = productBean.getIntegralPrice() == null ? 0 : productBean.getIntegralPrice();
//现金价格(分)
Integer cashPrice = productBean.getCashPrice() == null ? 0 : productBean.getCashPrice();
// Integer settlementAmount = integralPrice + cashPrice;
//订单原始金额,单位分
//用户在界面上看到的支付金额
request.setSettlementAmount(cashPrice.longValue());
//实际支付现金金额,扣除支付自生优惠,单位分`
request.setActualPayAmount(cashPrice.longValue());
request.setOriginalAmount(cashPrice.longValue());
request.setOrderType(OrderType.GENERAL_DINE_IN.getIndex());
//商品信息赋值
OrderItemCreateReq orderItemCreateReq = convent2OrderItemCreateReq(productBean, partnerId, skuId, active);
request.setOrderItemList(Arrays.asList(orderItemCreateReq));
//积分优惠
OrderSettlementCreateReq orderSettlementCreateReq = convent2OrderSettlementCreateReq(productBean);
request.setOrderSettlementDetailList(Arrays.asList(orderSettlementCreateReq));
//收货人信息转换
List<DeliveryContactInfoCreateReq> deliveryContactInfoList = new ArrayList<>();
DeliveryContactInfoCreateReq deliveryContactInfoCreateReq = new DeliveryContactInfoCreateReq();
//地址类型 1:订单地址 2:售后单地址 3:配送员信息
deliveryContactInfoCreateReq.setRelateObjectType(1);
//联系方式类型 1:取件 2:收件
deliveryContactInfoCreateReq.setInfoType(1);
deliveryContactInfoCreateReq.setContactsName(userLoginInfoDto.getNickName());
deliveryContactInfoCreateReq.setMobile(userLoginInfoDto.getMobile());
deliveryContactInfoCreateReq.setLatitude(null);
deliveryContactInfoCreateReq.setLongitude(null);
deliveryContactInfoCreateReq.setAddressDetail(null);
deliveryContactInfoCreateReq.setProvince(null);
deliveryContactInfoCreateReq.setCity(null);
deliveryContactInfoCreateReq.setRegion(null);
if (weixinDeliveryAddress != null) {
deliveryContactInfoCreateReq.setContactsName(weixinDeliveryAddress.getUserName());
deliveryContactInfoCreateReq.setMobile(weixinDeliveryAddress.getTelNumber());
deliveryContactInfoCreateReq.setProvince(weixinDeliveryAddress.getProvinceName());
deliveryContactInfoCreateReq.setCity(weixinDeliveryAddress.getCityName());
deliveryContactInfoCreateReq.setRegion(weixinDeliveryAddress.getCountyName());
deliveryContactInfoCreateReq.setAddressDetail(weixinDeliveryAddress.getDetailInfo());
}
deliveryContactInfoList.add(deliveryContactInfoCreateReq);
request.setDeliveryContactInfoList(deliveryContactInfoList);
request.setOperator(userLoginInfoDto.getNickName());
request.setAppId(userLoginInfoDto.getWxAppId());
request.setPayChannel(channel);
return request;
}
private OrderItemCreateReq convent2OrderItemCreateReq(IntegralProductType productBean, String partnerId, String skuId,
Active active) {
boolean isCoupon = productBean.getProductType() == 1;
//积分价格
Integer integralPrice = productBean.getIntegralPrice() == null ? 0 : productBean.getIntegralPrice();
//现金价格(分)
Integer cashPrice = productBean.getCashPrice() == null ? 0 : productBean.getCashPrice();
Integer settlementAmount = integralPrice + cashPrice;
OrderItemCreateReq orderItemCreateReq = new OrderItemCreateReq();
orderItemCreateReq.setPartnerId(partnerId);
orderItemCreateReq.setSalePrice(cashPrice.longValue());
orderItemCreateReq.setProductPrice(integralPrice.longValue());
orderItemCreateReq.setSettlementPrice(settlementAmount.longValue());
orderItemCreateReq.setProductId(skuId);
orderItemCreateReq.setProductSpec(skuId);
orderItemCreateReq.setProductName(productBean.getProductName());
orderItemCreateReq.setProductSpecName(productBean.getProductName());
orderItemCreateReq.setProductType(productBean.getProductType());
if (CollectionUtils.isNotEmpty(productBean.getPictureList())) {
orderItemCreateReq.setProductPicUrl(productBean.getPictureList().get(0));
}
orderItemCreateReq.setProductSeq(1);
if (productBean.getEntityProductInfo() != null) {
orderItemCreateReq.setProductCode(productBean.getEntityProductInfo().getProductId());
orderItemCreateReq.setThirdProductId(productBean.getEntityProductInfo().getProductId());
orderItemCreateReq.setProductPicUrl(productBean.getEntityProductInfo().getPicture());
}
if (isCoupon) {
//添加商品绑定的券
OrderProductAddInfoDto orderProductAddInfoDto = new OrderProductAddInfoDto();
List<ProductBindingCouponType> productBindingCoupons = new ArrayList<>();
productBindingCoupons.add(convent2ProductBindingCouponType(active));
orderProductAddInfoDto.setProductBindingCoupons(productBindingCoupons);
orderItemCreateReq.setExtInfo(JSONObject.toJSONString(orderProductAddInfoDto));
}
orderItemCreateReq.setProductQuantity(1);
return orderItemCreateReq;
}
private OrderSettlementCreateReq convent2OrderSettlementCreateReq(IntegralProductType productBean) {
OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq();
orderSettlementCreateReq.setNumber(productBean.getIntegralPrice());
orderSettlementCreateReq.setProductSeq(1);
orderSettlementCreateReq.setExternalObjectId("");
//商家优惠
orderSettlementCreateReq.setShopDiscountAmount(0L);
//结算金额
orderSettlementCreateReq.setSettlementAmount(productBean.getIntegralPrice().longValue());
//是否线上 false:不是 true:是
orderSettlementCreateReq.setIsOnline(true);
orderSettlementCreateReq.setSettlementType(OrderSettlementType.POINTS.getIndex());
return orderSettlementCreateReq;
}
private ProductBindingCouponType convent2ProductBindingCouponType(Active active) {
ProductBindingCouponType productBindingCouponType2 = new ProductBindingCouponType();
productBindingCouponType2.setActivityCode(active.getActiveCode());
productBindingCouponType2.setNum(1);
productBindingCouponType2.setActivityName(active.getActiveName());
return productBindingCouponType2;
}
public UnifiedOrderRequestDto convert2UnifiedOrderRequestDto(OrderInfoReqs orderInfo, String openId, Integer 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.longValue());
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 (CollectionUtils.isNotEmpty(orderInfo.getOrderItemList())) {
for (OrderItemResp orderProductBean : orderInfo.getOrderItemList()) {
PayProductDto productBean = new PayProductDto();
productBean.setId(orderProductBean.getProductId());
productBean.setQuantity(orderProductBean.getProductQuantity());
// productBean.setSeq(orderProductBean.getProductSeq());
// productBean.setSalesType("NORMAL");
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.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 UpdatePointsMallStocksRequest convent2UpdatePointsMallStocksRequest(String partnerId, String memberId, String skuId, String orderCode) {
UpdatePointsMallStocksRequest updatePointsMallStocksRequest = new UpdatePointsMallStocksRequest();
updatePointsMallStocksRequest.setPartnerId(partnerId);
updatePointsMallStocksRequest.setMemberId(memberId);
updatePointsMallStocksRequest.setChangeType(2);
updatePointsMallStocksRequest.setRemark("积分商城兑换");
updatePointsMallStocksRequest.setTransTime(DateUtil.convert2String(new Date(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
updatePointsMallStocksRequest.setTransNo(orderCode);
ProductStockRequest productStockRequest = new ProductStockRequest();
productStockRequest.setProductId(skuId);
productStockRequest.setExchangeNumber(1);
productStockRequest.setStockNumber(1);
updatePointsMallStocksRequest.setProductStocks(Arrays.asList(productStockRequest));
return updatePointsMallStocksRequest;
}
public UseScoreRequest convent2UseScoreRequest(String partnerId, String memberId, String appId, String orderCode, Integer points) {
UseScoreRequest userScoreRequest = new UseScoreRequest();
userScoreRequest.setMemberId(memberId);
userScoreRequest.setPartnerId(partnerId);
userScoreRequest.setChangeScore(points);
userScoreRequest.setOperationType(12);
userScoreRequest.setOperationName("积分兑换");
userScoreRequest.setChangeType(2);
userScoreRequest.setOrderId(orderCode);
userScoreRequest.setOrgCode("");
userScoreRequest.setOrgType(1);
userScoreRequest.setIdempotencyBussinessId(LogThreadLocal.getTrackingNo());
userScoreRequest.setIdempotencyBussinessType("5");
userScoreRequest.setAppId(appId);
return userScoreRequest;
}
}
package cn.freemud.enums.integralproduct;
public enum ExchangeTypeEnum {
/**
* 兑换方式(1积分,2现金,3积分+现金)")
*/
TYPE_1(1, "积分"),
TYPE_2(2, "现金"),
TYPE_3(3, "3积分+现金"),
;
private Integer code;
private String desc;
ExchangeTypeEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package cn.freemud.service.impl; package cn.freemud.service.impl;
import cn.freemud.adapter.PointsMallOrderAdapter;
import cn.freemud.amp.service.SendCouponService; 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;
...@@ -11,7 +12,6 @@ import cn.freemud.entities.dto.BatchQueryActivityInfoResponseDto; ...@@ -11,7 +12,6 @@ import cn.freemud.entities.dto.BatchQueryActivityInfoResponseDto;
import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto; import cn.freemud.entities.dto.delivery.WeixinDeliveryAddressDto;
import cn.freemud.entities.dto.order.FacePayResponseDto; import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.entities.dto.pay.PayOrderDto; 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.pay.UnifiedOrderRequestDto;
import cn.freemud.entities.dto.product.pointsmall.*; import cn.freemud.entities.dto.product.pointsmall.*;
import cn.freemud.entities.dto.user.CustomerPropertyBaseResponse; import cn.freemud.entities.dto.user.CustomerPropertyBaseResponse;
...@@ -22,6 +22,7 @@ import cn.freemud.entities.vo.*; ...@@ -22,6 +22,7 @@ import cn.freemud.entities.vo.*;
import cn.freemud.enums.ChannelEnum; import cn.freemud.enums.ChannelEnum;
import cn.freemud.enums.OrderBeanType; import cn.freemud.enums.OrderBeanType;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.integralproduct.ExchangeTypeEnum;
import cn.freemud.enums.integralproduct.IntegralProductStatusEnum; import cn.freemud.enums.integralproduct.IntegralProductStatusEnum;
import cn.freemud.service.CouponService; import cn.freemud.service.CouponService;
import cn.freemud.service.PointsMallOrderService; import cn.freemud.service.PointsMallOrderService;
...@@ -43,14 +44,12 @@ import com.freemud.application.sdk.api.ordercenter.entities.PayItem; ...@@ -43,14 +44,12 @@ import com.freemud.application.sdk.api.ordercenter.entities.PayItem;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.ProductBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderSettlementType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType; import com.freemud.application.sdk.api.ordercenter.enums.PayChannelType;
import com.freemud.application.sdk.api.ordercenter.request.OrderAffirmReq; import com.freemud.application.sdk.api.ordercenter.request.OrderAffirmReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderUserConditionsReq; import com.freemud.application.sdk.api.ordercenter.request.OrderUserConditionsReq;
import com.freemud.application.sdk.api.ordercenter.request.PaySuccessReq; import com.freemud.application.sdk.api.ordercenter.request.PaySuccessReq;
import com.freemud.application.sdk.api.ordercenter.request.UpdateOrderReq; import com.freemud.application.sdk.api.ordercenter.request.UpdateOrderReq;
import com.freemud.application.sdk.api.ordercenter.request.create.*; import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest;
import com.freemud.application.sdk.api.ordercenter.response.QueryOrderForUserResp; import com.freemud.application.sdk.api.ordercenter.response.QueryOrderForUserResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.DeliveryContactInfoResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.DeliveryContactInfoResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
...@@ -58,8 +57,6 @@ import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemR ...@@ -58,8 +57,6 @@ import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemR
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.sdk.api.assortment.order.request.order.OrderProductAddInfoDto;
import com.freemud.sdk.api.assortment.order.request.order.ProductBindingCouponType;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.gson.Gson; import com.google.gson.Gson;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
...@@ -96,6 +93,9 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -96,6 +93,9 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
@Autowired @Autowired
private AssortmentOpenPlatformIappWxappStoreManager assortmentOpenPlatformIappWxappStoreManager; private AssortmentOpenPlatformIappWxappStoreManager assortmentOpenPlatformIappWxappStoreManager;
@Autowired
private PointsMallOrderAdapter pointsMallOrderAdapter;
@Value("${saas.reverseNotifyiDcUrl}") @Value("${saas.reverseNotifyiDcUrl}")
private String reverseNotifyiDcUrl; private String reverseNotifyiDcUrl;
...@@ -118,16 +118,9 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -118,16 +118,9 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
if (CollectionUtils.isNotEmpty(createOrderVo.getProducts())) { if (CollectionUtils.isNotEmpty(createOrderVo.getProducts())) {
skuId = createOrderVo.getProducts().get(0).getSkuId(); skuId = createOrderVo.getProducts().get(0).getSkuId();
} }
String clientCode = "";
String storeId = getPiontProductPayStoreId(appId,clientCode);
//查询商品信息并且校验用户是否能购买 /product/listProductInfo 查询积分商品详情,可根据入参校验商品 //查询商品信息并且校验用户是否能购买 /product/listProductInfo 查询积分商品详情,可根据入参校验商品
PointMallListProductInfoRequest productInfoRequest = new PointMallListProductInfoRequest(); PointMallListProductInfoRequest productInfoRequest = pointsMallOrderAdapter.convent2PointMallListProductInfoRequest(partnerId,memberId,skuId);
productInfoRequest.setPartnerId(partnerId);
productInfoRequest.setMemberId(memberId);
productInfoRequest.setProductIdList(Arrays.asList(skuId));
productInfoRequest.setValidateMember(true);
productInfoRequest.setValidateStock(true);
productInfoRequest.setValidateTime(true);
PointMallListProductInfoResponse<List<IntegralProductType>> productInfosDto = pointMallProductClient.listProductInfo(productInfoRequest); PointMallListProductInfoResponse<List<IntegralProductType>> productInfosDto = pointMallProductClient.listProductInfo(productInfoRequest);
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, productInfosDto.getStatusCode()) || CollectionUtils.isEmpty(productInfosDto.getResult())) { if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, productInfosDto.getStatusCode()) || CollectionUtils.isEmpty(productInfosDto.getResult())) {
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "商品异常"); return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "商品异常");
...@@ -137,9 +130,7 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -137,9 +130,7 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, message != null ? message.getDesc() : "商品异常"); return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, message != null ? message.getDesc() : "商品异常");
} }
IntegralProductType integralProductType = productInfosDto.getResult().get(0); IntegralProductType integralProductType = productInfosDto.getResult().get(0);
// if (!Objects.equals(1, integralProductType.getExchangeType())) {
// return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "积分商城暂不支持现金兑换");
// }
Integer points = integralProductType.getIntegralPrice(); Integer points = integralProductType.getIntegralPrice();
Integer cashPrice = integralProductType.getCashPrice(); Integer cashPrice = integralProductType.getCashPrice();
Integer exchangeType = integralProductType.getExchangeType(); Integer exchangeType = integralProductType.getExchangeType();
...@@ -148,13 +139,20 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -148,13 +139,20 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
if (!isCoupon && (weixinDeliveryAddress == null || StringUtils.isEmpty(weixinDeliveryAddress.getProvinceName()))) { if (!isCoupon && (weixinDeliveryAddress == null || StringUtils.isEmpty(weixinDeliveryAddress.getProvinceName()))) {
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "收货地址异常"); return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "收货地址异常");
} }
String storeId = "99999";
AssortmentOpenPlatformIappWxappStore wxAppStore = getPointProductPayStoreInfo(appId);
if(wxAppStore == null && !ExchangeTypeEnum.TYPE_1.getCode().equals(exchangeType)){
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "支付门店未配置");
}
if(wxAppStore != null){
storeId = wxAppStore.getStoreId();
}
Active active = null; Active active = null;
if (isCoupon) { if (isCoupon) {
String activityCode = integralProductType.getCouponCode(); String activityCode = integralProductType.getCouponCode();
//券商品查询券活动信息校验券有效  //券商品查询券活动信息校验券有效 
BatchQueryActivityInfoRequestDto queryActivityInfoRequestDto = new BatchQueryActivityInfoRequestDto(); BatchQueryActivityInfoRequestDto queryActivityInfoRequestDto = new BatchQueryActivityInfoRequestDto();
queryActivityInfoRequestDto.setActiveCode(Arrays.asList(activityCode)); queryActivityInfoRequestDto.setActiveCode(Arrays.asList(activityCode));
// queryActivityInfoRequestDto.setActiveCode(Arrays.asList("V1628760321931083"));
queryActivityInfoRequestDto.setPartnerId(Integer.valueOf(partnerId)); queryActivityInfoRequestDto.setPartnerId(Integer.valueOf(partnerId));
BatchQueryActivityInfoResponseDto batchQueryActivityInfoResponseDto = couponService.batchQueryActivityInfo(queryActivityInfoRequestDto); BatchQueryActivityInfoResponseDto batchQueryActivityInfoResponseDto = couponService.batchQueryActivityInfo(queryActivityInfoRequestDto);
if (!Objects.equals("0", batchQueryActivityInfoResponseDto.getStatusCode())) { if (!Objects.equals("0", batchQueryActivityInfoResponseDto.getStatusCode())) {
...@@ -163,7 +161,7 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -163,7 +161,7 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
active = batchQueryActivityInfoResponseDto.getActivities().get(0); active = batchQueryActivityInfoResponseDto.getActivities().get(0);
} }
if (exchangeType != 2) { if (!ExchangeTypeEnum.TYPE_2.getCode().equals(exchangeType)) {
//查询积分信息 //查询积分信息
StatisticalScoreRequestVo statisticalScoreRequest = new StatisticalScoreRequestVo(); StatisticalScoreRequestVo statisticalScoreRequest = new StatisticalScoreRequestVo();
statisticalScoreRequest.setPartnerId(userLoginInfoDto.getPartnerId()); statisticalScoreRequest.setPartnerId(userLoginInfoDto.getPartnerId());
...@@ -177,7 +175,7 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -177,7 +175,7 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
} }
} }
//创建订单 //创建订单
CreateOrderRequest createOrderRequest = convent2NEWCreateOrderRequest(OrderClientType.I_MEMBER.getIndex(), userLoginInfoDto, CreateOrderRequest createOrderRequest = pointsMallOrderAdapter.convent2NEWCreateOrderRequest(OrderClientType.I_MEMBER.getIndex(), userLoginInfoDto,
storeId, "", "", 4, integralProductType, skuId, active, weixinDeliveryAddress); storeId, "", "", 4, integralProductType, skuId, active, weixinDeliveryAddress);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> createOrderResponseDto = orderSdkService.createOrder(createOrderRequest, ""); com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> createOrderResponseDto = orderSdkService.createOrder(createOrderRequest, "");
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, createOrderResponseDto.getCode())) { if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, createOrderResponseDto.getCode())) {
...@@ -189,8 +187,10 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -189,8 +187,10 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
CreateOrderResponseVo createOrderResponseVo = new CreateOrderResponseVo(); CreateOrderResponseVo createOrderResponseVo = new CreateOrderResponseVo();
//线上现金支付,创建预支付订单,唤起支付 //线上现金支付,创建预支付订单,唤起支付
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> response = null; com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> response = null;
if (!Objects.equals(1, exchangeType) && cashPrice != null && cashPrice > 0) { if (!Objects.equals(ExchangeTypeEnum.TYPE_1.getCode(), exchangeType) && cashPrice != null && cashPrice > 0) {
UnifiedOrderRequestDto requestDto = convert2UnifiedOrderRequestDto(result,openId,cashPrice); Long payClientCode = Long.parseLong(wxAppStore.getClientCode());
UnifiedOrderRequestDto requestDto = pointsMallOrderAdapter.convert2UnifiedOrderRequestDto(result,openId,cashPrice,
payClientCode,reverseNotifyiDcUrl,getPartnerPayOvertime(partnerId));
response = paymentNewClient.unifiedOrder(requestDto); response = paymentNewClient.unifiedOrder(requestDto);
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, response.getCode())) { if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, response.getCode())) {
return ResponseUtil.error(createOrderResponseDto.getCode(), "支付异常"); return ResponseUtil.error(createOrderResponseDto.getCode(), "支付异常");
...@@ -213,51 +213,30 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -213,51 +213,30 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
createOrderResponseVo.setOrderStr(payOrder.getAliPayOrder()); createOrderResponseVo.setOrderStr(payOrder.getAliPayOrder());
} }
} }
//保存支付信息
BaseResponse baseResponse1 = updateOrder(orderCode,points, cashPrice,partnerId,storeId,createOrderResponseVo.getFmId(),channel); BaseResponse baseResponse1 = updateOrder(orderCode,points, cashPrice,partnerId,storeId,createOrderResponseVo.getFmId(),channel);
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, baseResponse1.getCode())) { if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, baseResponse1.getCode())) {
return ResponseUtil.error(createOrderResponseDto.getCode(), "更新订单异常"); return ResponseUtil.error(createOrderResponseDto.getCode(), "更新订单异常");
} }
//扣减积分商品商品库存 //扣减积分商品商品库存
UpdatePointsMallStocksRequest updatePointsMallStocksRequest = new UpdatePointsMallStocksRequest(); UpdatePointsMallStocksRequest updatePointsMallStocksRequest = pointsMallOrderAdapter.convent2UpdatePointsMallStocksRequest(partnerId,memberId,skuId,orderCode);
updatePointsMallStocksRequest.setPartnerId(partnerId);
updatePointsMallStocksRequest.setMemberId(memberId);
updatePointsMallStocksRequest.setChangeType(2);
updatePointsMallStocksRequest.setRemark("积分商城兑换");
updatePointsMallStocksRequest.setTransTime(DateUtil.convert2String(new Date(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
updatePointsMallStocksRequest.setTransNo(orderCode);
ProductStockRequest productStockRequest = new ProductStockRequest();
productStockRequest.setProductId(skuId);
productStockRequest.setExchangeNumber(1);
productStockRequest.setStockNumber(1);
updatePointsMallStocksRequest.setProductStocks(Arrays.asList(productStockRequest));
PointMallListProductInfoResponse pointMallListProductInfoResponse = pointMallProductClient.updateStock(updatePointsMallStocksRequest); PointMallListProductInfoResponse pointMallListProductInfoResponse = pointMallProductClient.updateStock(updatePointsMallStocksRequest);
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, pointMallListProductInfoResponse.getStatusCode())) { if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, pointMallListProductInfoResponse.getStatusCode())) {
return ResponseUtil.error(pointMallListProductInfoResponse.getStatusCode().toString(), "扣减库存失败"); return ResponseUtil.error(pointMallListProductInfoResponse.getStatusCode().toString(), "扣减库存失败");
} }
//全积分支付商品,订单完成
if(ExchangeTypeEnum.TYPE_1.getCode().equals(exchangeType)){
//扣减积分 (失败:失败冲正活动库存) //扣减积分 (失败:失败冲正活动库存)
if (points != null && points > 0 ) { if (points != null && points > 0 ) {
UseScoreRequest userScoreRequest = new UseScoreRequest(); UseScoreRequest userScoreRequest = pointsMallOrderAdapter.convent2UseScoreRequest(partnerId, memberId, appId, orderCode,points);
userScoreRequest.setMemberId(memberId);
userScoreRequest.setPartnerId(partnerId);
userScoreRequest.setChangeScore(points);
userScoreRequest.setOperationType(12);
userScoreRequest.setOperationName("积分兑换");
userScoreRequest.setChangeType(2);
userScoreRequest.setOrderId(orderCode);
userScoreRequest.setOrgCode("");
userScoreRequest.setOrgType(1);
userScoreRequest.setIdempotencyBussinessId(LogThreadLocal.getTrackingNo());
userScoreRequest.setIdempotencyBussinessType("5");
userScoreRequest.setAppId(userLoginInfoDto.getAppId());
CustomerPropertyBaseResponse baseResponse = customerPropertyClient.useScore(userScoreRequest); CustomerPropertyBaseResponse baseResponse = customerPropertyClient.useScore(userScoreRequest);
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, baseResponse.getCode())) { if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, baseResponse.getCode())) {
createOrderFail(true, false, partnerId, memberId, orderCode, skuId, points, appId); createOrderFail(true, false, partnerId, memberId, orderCode, skuId, points, appId);
return ResponseUtil.error(baseResponse.getCode(), "扣减积分失败"); return ResponseUtil.error(baseResponse.getCode(), "扣减积分失败");
} }
} }
if(exchangeType == 1){ BaseResponse response1 = orderPaySuccess(createOrderResponseDto.getResult(),false);
BaseResponse response1 = orderPaySuccess(createOrderResponseDto.getResult());
if(!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, response1.getCode())){ if(!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, response1.getCode())){
return response1; return response1;
} }
...@@ -332,7 +311,7 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -332,7 +311,7 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
orderItemList.add(orderItemResp); orderItemList.add(orderItemResp);
} }
orderInfo.setOrderItemList(orderItemList); orderInfo.setOrderItemList(orderItemList);
BaseResponse baseResponse = orderPaySuccess(orderInfo); BaseResponse baseResponse = orderPaySuccess(orderInfo,true);
if(!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, baseResponse.getCode())){ if(!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, baseResponse.getCode())){
return refundFaileMessage(baseResponse.getMessage()); return refundFaileMessage(baseResponse.getMessage());
} }
...@@ -521,167 +500,15 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -521,167 +500,15 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
} }
private ProductBindingCouponType convent2ProductBindingCouponType(Active active) {
ProductBindingCouponType productBindingCouponType2 = new ProductBindingCouponType();
productBindingCouponType2.setActivityCode(active.getActiveCode());
productBindingCouponType2.setNum(1);
productBindingCouponType2.setActivityName(active.getActiveName());
return productBindingCouponType2;
}
private OrderItemCreateReq convent2OrderItemCreateReq(IntegralProductType productBean, String partnerId, String skuId,
Active active) {
boolean isCoupon = productBean.getProductType() == 1;
//积分价格
Integer integralPrice = productBean.getIntegralPrice() == null ? 0 : productBean.getIntegralPrice();
//现金价格(分)
Integer cashPrice = productBean.getCashPrice() == null ? 0 : productBean.getCashPrice();
Integer settlementAmount = integralPrice + cashPrice;
OrderItemCreateReq orderItemCreateReq = new OrderItemCreateReq();
orderItemCreateReq.setPartnerId(partnerId);
orderItemCreateReq.setSalePrice(cashPrice.longValue());
orderItemCreateReq.setProductPrice(integralPrice.longValue());
orderItemCreateReq.setSettlementPrice(settlementAmount.longValue());
orderItemCreateReq.setProductId(skuId);
orderItemCreateReq.setProductSpec(skuId);
orderItemCreateReq.setProductName(productBean.getProductName());
orderItemCreateReq.setProductSpecName(productBean.getProductName());
orderItemCreateReq.setProductType(productBean.getProductType());
if (CollectionUtils.isNotEmpty(productBean.getPictureList())) {
orderItemCreateReq.setProductPicUrl(productBean.getPictureList().get(0));
}
orderItemCreateReq.setProductSeq(1);
if (productBean.getEntityProductInfo() != null) {
orderItemCreateReq.setProductCode(productBean.getEntityProductInfo().getProductId());
orderItemCreateReq.setThirdProductId(productBean.getEntityProductInfo().getProductId());
orderItemCreateReq.setProductPicUrl(productBean.getEntityProductInfo().getPicture());
}
if (isCoupon) {
//添加商品绑定的券
OrderProductAddInfoDto orderProductAddInfoDto = new OrderProductAddInfoDto();
List<ProductBindingCouponType> productBindingCoupons = new ArrayList<>();
productBindingCoupons.add(convent2ProductBindingCouponType(active));
orderProductAddInfoDto.setProductBindingCoupons(productBindingCoupons);
orderItemCreateReq.setExtInfo(JSONObject.toJSONString(orderProductAddInfoDto));
}
orderItemCreateReq.setProductQuantity(1);
return orderItemCreateReq;
}
private OrderSettlementCreateReq convent2OrderSettlementCreateReq(IntegralProductType productBean) {
OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq();
orderSettlementCreateReq.setNumber(productBean.getIntegralPrice());
orderSettlementCreateReq.setProductSeq(1);
orderSettlementCreateReq.setExternalObjectId("");
//商家优惠
orderSettlementCreateReq.setShopDiscountAmount(0L);
//结算金额
orderSettlementCreateReq.setSettlementAmount(productBean.getIntegralPrice().longValue());
//是否线上 false:不是 true:是
orderSettlementCreateReq.setIsOnline(true);
orderSettlementCreateReq.setSettlementType(OrderSettlementType.POINTS.getIndex());
return orderSettlementCreateReq;
}
private CreateOrderRequest convent2NEWCreateOrderRequest(Integer orderClient, AssortmentCustomerInfoVo userLoginInfoDto,
String shopId, String cardCode,
String channel, Integer bizType,
IntegralProductType productBean, String skuId,
Active active, WeixinDeliveryAddressDto weixinDeliveryAddress) {
CreateOrderRequest request = new CreateOrderRequest();
String partnerId = userLoginInfoDto.getPartnerId();
request.setOrderClient(orderClient);
request.setPartnerId(partnerId);
request.setStoreId(shopId);
request.setStoreName("虚拟门店");
request.setThirdStoreId("");
//买券虚拟订单 不管APP卖券还是平台,依旧保留传入6
request.setBizType(bizType);
//1:线上支付 2:线下支付
request.setPayType(1);
request.setUserId(userLoginInfoDto.getMemberId());
request.setUserName(userLoginInfoDto.getNickName());
request.setOrderState(1);
request.setPayState(1);
if (StringUtils.isNotBlank(cardCode)) {
request.setPayChannel("10102");
request.setPayChannelName("储值卡支付");
}
//积分价格
Integer integralPrice = productBean.getIntegralPrice() == null ? 0 : productBean.getIntegralPrice();
//现金价格(分)
Integer cashPrice = productBean.getCashPrice() == null ? 0 : productBean.getCashPrice();
// Integer settlementAmount = integralPrice + cashPrice;
//订单原始金额,单位分
//用户在界面上看到的支付金额
request.setSettlementAmount(cashPrice.longValue());
//实际支付现金金额,扣除支付自生优惠,单位分`
request.setActualPayAmount(cashPrice.longValue());
request.setOriginalAmount(cashPrice.longValue());
request.setOrderType(OrderType.GENERAL_DINE_IN.getIndex());
//商品信息赋值
OrderItemCreateReq orderItemCreateReq = convent2OrderItemCreateReq(productBean, partnerId, skuId, active);
request.setOrderItemList(Arrays.asList(orderItemCreateReq));
//积分优惠
OrderSettlementCreateReq orderSettlementCreateReq = convent2OrderSettlementCreateReq(productBean);
request.setOrderSettlementDetailList(Arrays.asList(orderSettlementCreateReq));
//收货人信息转换
List<DeliveryContactInfoCreateReq> deliveryContactInfoList = new ArrayList<>();
DeliveryContactInfoCreateReq deliveryContactInfoCreateReq = new DeliveryContactInfoCreateReq();
//地址类型 1:订单地址 2:售后单地址 3:配送员信息
deliveryContactInfoCreateReq.setRelateObjectType(1);
//联系方式类型 1:取件 2:收件
deliveryContactInfoCreateReq.setInfoType(1);
deliveryContactInfoCreateReq.setContactsName(userLoginInfoDto.getNickName());
deliveryContactInfoCreateReq.setMobile(userLoginInfoDto.getMobile());
deliveryContactInfoCreateReq.setLatitude(null);
deliveryContactInfoCreateReq.setLongitude(null);
deliveryContactInfoCreateReq.setAddressDetail(null);
deliveryContactInfoCreateReq.setProvince(null);
deliveryContactInfoCreateReq.setCity(null);
deliveryContactInfoCreateReq.setRegion(null);
if (weixinDeliveryAddress != null) {
deliveryContactInfoCreateReq.setContactsName(weixinDeliveryAddress.getUserName());
deliveryContactInfoCreateReq.setMobile(weixinDeliveryAddress.getTelNumber());
deliveryContactInfoCreateReq.setProvince(weixinDeliveryAddress.getProvinceName());
deliveryContactInfoCreateReq.setCity(weixinDeliveryAddress.getCityName());
deliveryContactInfoCreateReq.setRegion(weixinDeliveryAddress.getCountyName());
deliveryContactInfoCreateReq.setAddressDetail(weixinDeliveryAddress.getDetailInfo());
}
deliveryContactInfoList.add(deliveryContactInfoCreateReq);
request.setDeliveryContactInfoList(deliveryContactInfoList);
request.setOperator(userLoginInfoDto.getNickName());
request.setAppId(userLoginInfoDto.getWxAppId());
request.setPayChannel(channel);
return request;
}
/**
* 预支付接口获取类型
*
* @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;
}
/** /**
* 获取商户支付超时时间 * 获取商户支付超时时间
...@@ -708,73 +535,23 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -708,73 +535,23 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
AssortmentOpenPlatformIappWxappStore wxAppStore = assortmentOpenPlatformIappWxappStoreManager.selectWxappStoreByWxAppIdAndStoreId(wxAppId, storeId,payCode); AssortmentOpenPlatformIappWxappStore wxAppStore = assortmentOpenPlatformIappWxappStoreManager.selectWxappStoreByWxAppIdAndStoreId(wxAppId, storeId,payCode);
payCode = wxAppStore != null && StringUtils.isNotBlank(wxAppStore.getPayCode())?wxAppStore.getPayCode():null; // payCode = wxAppStore != null && StringUtils.isNotBlank(wxAppStore.getPayCode())?wxAppStore.getPayCode():null;
String clientCode = wxAppStore != null && StringUtils.isNotBlank(wxAppStore.getClientCode()) ? wxAppStore.getClientCode() : "0"; String clientCode = wxAppStore != null && StringUtils.isNotBlank(wxAppStore.getClientCode()) ? wxAppStore.getClientCode() : "0";
return Long.parseLong(clientCode); return Long.parseLong(clientCode);
} }
private String getPiontProductPayStoreId(String wxAppId,String clientCode){ private AssortmentOpenPlatformIappWxappStore getPointProductPayStoreInfo(String wxAppId){
AssortmentOpenPlatformIappWxappStore wxAppStore = assortmentOpenPlatformIappWxappStoreManager.selectIappWxappStoreByWxAppIdAndAggregationType(wxAppId, "9"); AssortmentOpenPlatformIappWxappStore wxAppStore = assortmentOpenPlatformIappWxappStoreManager.selectIappWxappStoreByWxAppIdAndAggregationType(wxAppId, "9");
String storeId = wxAppStore != null && StringUtils.isNotBlank(wxAppStore.getStoreId())?wxAppStore.getStoreId():null; return wxAppStore;
clientCode = wxAppStore != null && StringUtils.isNotBlank(wxAppStore.getClientCode()) ? wxAppStore.getClientCode() : "0";
return storeId;
}
private UnifiedOrderRequestDto convert2UnifiedOrderRequestDto(OrderInfoReqs orderInfo,String openId, Integer cashPrice){
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.longValue());
String businessDate = DateUtil.convert2String(new Date(), "yyyyMMdd");
requestDto.setBusinessDate(businessDate);
requestDto.setClientCode(getPayClientCode(appId,storeId,null,null));
requestDto.setFoodOrderType(getFoodOrderType(1));
requestDto.setNotifyUrl(reverseNotifyiDcUrl);
requestDto.setOpenId(openId);
requestDto.setPayTimeOutTime(getPartnerPayOvertime(partnerId));
List<PayProductDto> productBeans = new ArrayList<>();
String payProductName ="";
if (CollectionUtils.isNotEmpty(orderInfo.getOrderItemList())) {
for (OrderItemResp orderProductBean : orderInfo.getOrderItemList()){
PayProductDto productBean = new PayProductDto();
productBean.setId(orderProductBean.getProductId());
productBean.setQuantity(orderProductBean.getProductQuantity());
// productBean.setSeq(orderProductBean.getProductSeq());
// productBean.setSalesType("NORMAL");
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.setBody(payProductName);
return requestDto;
} }
//共用支付成功方法 //共用支付成功方法
private BaseResponse orderPaySuccess(OrderInfoReqs orderInfo){ private BaseResponse orderPaySuccess(OrderInfoReqs orderInfo,Boolean isCash){
String nickName= orderInfo.getUserName(); String nickName= orderInfo.getUserName();
String orderCode = orderInfo.getOrderCode(); String orderCode = orderInfo.getOrderCode();
String partnerId =orderInfo.getPartnerId(); String partnerId =orderInfo.getPartnerId();
...@@ -805,6 +582,15 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService { ...@@ -805,6 +582,15 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
createOrderFail(false, true, partnerId, memberId, orderCode, skuId, points, appId); createOrderFail(false, true, partnerId, memberId, orderCode, skuId, points, appId);
return ResponseUtil.error(updateOrderStateResp.getCode(), "更新订单异常"); return ResponseUtil.error(updateOrderStateResp.getCode(), "更新订单异常");
} }
//有现金支付,扣减积分
if (isCash) {
Integer points = orderInfo.getOrderPayItemCreateReqList().get(0).getPayAmount().intValue();
UseScoreRequest userScoreRequest = pointsMallOrderAdapter.convent2UseScoreRequest(partnerId, memberId, appId, orderCode,points);
CustomerPropertyBaseResponse baseResponse = customerPropertyClient.useScore(userScoreRequest);
if (!Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, baseResponse.getCode())) {
return ResponseUtil.error(baseResponse.getCode(), "扣减积分失败");
}
}
return ResponseUtil.success(); return ResponseUtil.success();
} }
......
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