Commit 52bc5641 by ping.wu

Merge branches 'feature/20220622_退款失败记录到订单_wuping' and 'qa' of…

Merge branches 'feature/20220622_退款失败记录到订单_wuping' and 'qa' of http://gitlab.freemud.com/order-group-application/order-group into qa
parents 3e149c72 af8037ef
...@@ -78,4 +78,13 @@ public class CombPayRequest { ...@@ -78,4 +78,13 @@ public class CombPayRequest {
* 下单所用小程序类型:1微信,2支付宝,3抖音") * 下单所用小程序类型:1微信,2支付宝,3抖音")
*/ */
private Integer applicationType; private Integer applicationType;
/**
* 小程序appid
*/
private String subAppid;
/**
* 支付类型编码 TWX:微信 TZFB:支付宝
*/
private String payTypeCode;
} }
...@@ -80,4 +80,13 @@ public class MultiPayRequest { ...@@ -80,4 +80,13 @@ public class MultiPayRequest {
//储值卡支付列表 //储值卡支付列表
private List<String> cardItems; private List<String> cardItems;
/**
* 小程序appid
*/
private String subAppid;
/**
* 支付类型编码 TWX:微信 TZFB:支付宝
*/
private String payTypeCode;
} }
...@@ -145,8 +145,8 @@ public class OrderCallBackMQService { ...@@ -145,8 +145,8 @@ public class OrderCallBackMQService {
OrderCallBackConfig.QUEUE_ROUTING_KEY, OrderCallBackConfig.QUEUE_NAME); OrderCallBackConfig.QUEUE_ROUTING_KEY, OrderCallBackConfig.QUEUE_NAME);
MQMessage<WechatReportOrderDto> message = new MQMessage<>(header, wechatReportOrderDto); MQMessage<WechatReportOrderDto> message = new MQMessage<>(header, wechatReportOrderDto);
mqService.convertAndSend(OrderCallBackConfig.TOPIC_EXCHANGE_NAME, OrderCallBackConfig.WECHAT_ORDER_REPORT_QUEUE_ROUTING_KEY, message); mqService.convertAndSend(OrderCallBackConfig.TOPIC_EXCHANGE_NAME, OrderCallBackConfig.WECHAT_ORDER_REPORT_QUEUE_ROUTING_KEY, message);
ApiLog.infoMessage("sendWechatReportMQ end orderCode:{}", JSONObject.toJSONString(wechatReportOrderDto));
} }
ApiLog.infoMessage("sendWechatReportMQ end orderCode:{}", body.getOrderCode());
} catch (Exception e) { } catch (Exception e) {
ApiLog.infoMessage("sendWechatReportMQ Error orderCode:{} e:{}", body.getOrderCode(), ExceptionUtils.getFullStackTrace(e)); ApiLog.infoMessage("sendWechatReportMQ Error orderCode:{} e:{}", body.getOrderCode(), ExceptionUtils.getFullStackTrace(e));
} }
......
...@@ -3472,6 +3472,8 @@ public class OrderAdapter { ...@@ -3472,6 +3472,8 @@ public class OrderAdapter {
orderPayDto.setOut_order_no(orderBean.getOid()); orderPayDto.setOut_order_no(orderBean.getOid());
orderPayDto.setCardCode(cardNo); orderPayDto.setCardCode(cardNo);
orderPayDto.setApplicationType(getPayApplicationType(orderBean.getOrderClient())); orderPayDto.setApplicationType(getPayApplicationType(orderBean.getOrderClient()));
orderPayDto.setSubAppid(orderBean.getAppId());
orderPayDto.setPayTypeCode(convertPayTypeCode(orderBean.getOrderClient()));
return orderPayDto; return orderPayDto;
} }
...@@ -3864,6 +3866,24 @@ public class OrderAdapter { ...@@ -3864,6 +3866,24 @@ public class OrderAdapter {
} }
/** /**
* 支付类型编码 TWX:微信 TZFB:支付宝
*/
public String convertPayTypeCode(String orderClient) {
String payTypeCode = "";
switch (orderClient) {
case "2":
payTypeCode = "TWX";
break;
case "3":
payTypeCode = "TZFB";
break;
default:
break;
}
return payTypeCode;
}
/**
* 礼品卡支付参数转化 * 礼品卡支付参数转化
*/ */
public Integer getPayApplicationType(String orderClient) { public Integer getPayApplicationType(String orderClient) {
...@@ -4092,6 +4112,8 @@ public class OrderAdapter { ...@@ -4092,6 +4112,8 @@ public class OrderAdapter {
orderPayDto.setOut_order_no(orderBean.getOid()); orderPayDto.setOut_order_no(orderBean.getOid());
orderPayDto.setCardItems(cardCodes);//多卡支付 orderPayDto.setCardItems(cardCodes);//多卡支付
orderPayDto.setApplicationType(getPayApplicationType(orderBean.getOrderClient())); orderPayDto.setApplicationType(getPayApplicationType(orderBean.getOrderClient()));
orderPayDto.setSubAppid(orderBean.getAppId());
orderPayDto.setPayTypeCode(convertPayTypeCode(orderBean.getOrderClient()));
return orderPayDto; return orderPayDto;
} }
......
...@@ -16,6 +16,7 @@ import cn.freemud.entities.vo.CreateOrderResponseVo; ...@@ -16,6 +16,7 @@ import cn.freemud.entities.vo.CreateOrderResponseVo;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
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.OrderSettlementType;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType; 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.CreateOrderRequest;
...@@ -30,10 +31,7 @@ import org.apache.commons.collections.CollectionUtils; ...@@ -30,10 +31,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@Component @Component
public class PointsMallOrderAdapter { public class PointsMallOrderAdapter {
...@@ -233,10 +231,31 @@ public class PointsMallOrderAdapter { ...@@ -233,10 +231,31 @@ public class PointsMallOrderAdapter {
} }
requestDto.setProducts(productBeans); requestDto.setProducts(productBeans);
requestDto.setBody(payProductName); requestDto.setBody(payProductName);
requestDto.setSubAppid(orderInfo.getAppId());
requestDto.setPayTypeCode(convertPayTypeCode(orderInfo.getOrderClient().toString()));
return requestDto; return requestDto;
} }
/** /**
* 支付类型编码 TWX:微信 TZFB:支付宝
*/
public String convertPayTypeCode(String orderClient) {
String payTypeCode = "";
switch (orderClient) {
case "2":
payTypeCode = "TWX";
break;
case "3":
payTypeCode = "TZFB";
break;
default:
break;
}
return payTypeCode;
}
/**
* 预支付接口获取类型 * 预支付接口获取类型
* *
* @return * @return
......
...@@ -43,4 +43,13 @@ public class UnifiedOrderRequestDto { ...@@ -43,4 +43,13 @@ public class UnifiedOrderRequestDto {
private String payTimeOutTime; private String payTimeOutTime;
private Long merchantDiscount; private Long merchantDiscount;
/**
* 小程序appid
*/
private String subAppid;
/**
* 支付类型编码 TWX:微信 TZFB:支付宝
*/
private String payTypeCode;
} }
...@@ -63,6 +63,7 @@ import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddress ...@@ -63,6 +63,7 @@ import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddress
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.enums.MarketTypeEnum; import com.freemud.application.sdk.api.ordercenter.enums.MarketTypeEnum;
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.OrderExtInfoDto;
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;
...@@ -1548,10 +1549,31 @@ public class CheckOrder { ...@@ -1548,10 +1549,31 @@ public class CheckOrder {
} }
requestDto.setProducts(productBeans); requestDto.setProducts(productBeans);
requestDto.setBody(payProductName); requestDto.setBody(payProductName);
requestDto.setSubAppid(orderInfo.getAppId());
//支付类型编码 TWX:微信 TZFB:支付宝
requestDto.setPayTypeCode(convertPayTypeCode(orderInfo.getOrderClient().toString()));
return requestDto; return requestDto;
} }
/** /**
* 支付类型编码 TWX:微信 TZFB:支付宝
*/
public String convertPayTypeCode(String orderClient) {
String payTypeCode = "";
switch (orderClient) {
case "2":
payTypeCode = "TWX";
break;
case "3":
payTypeCode = "TZFB";
break;
default:
break;
}
return payTypeCode;
}
/**
* 预支付接口获取类型 * 预支付接口获取类型
* @return * @return
*/ */
......
...@@ -18,7 +18,7 @@ import cn.freemud.entities.vo.order.PaymentConfigVo; ...@@ -18,7 +18,7 @@ import cn.freemud.entities.vo.order.PaymentConfigVo;
import cn.freemud.entities.vo.order.PlugInParameter; import cn.freemud.entities.vo.order.PlugInParameter;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.management.entities.dto.request.order.RefundSuccessCallbackVo; import cn.freemud.management.service.handle.PaymentHandle;
import cn.freemud.management.service.handle.SaasOrderHandle; import cn.freemud.management.service.handle.SaasOrderHandle;
import cn.freemud.management.thirdparty.OrderCallbackClient; import cn.freemud.management.thirdparty.OrderCallbackClient;
import cn.freemud.manager.OpenPlatformOrderConfigManager; import cn.freemud.manager.OpenPlatformOrderConfigManager;
...@@ -169,6 +169,8 @@ public class OrderAdapterServiceImpl { ...@@ -169,6 +169,8 @@ public class OrderAdapterServiceImpl {
private EcologyProgramApplicationClient ecologyProgramApplicationClient; private EcologyProgramApplicationClient ecologyProgramApplicationClient;
@Autowired @Autowired
private EmailAlertService emailAlertService; private EmailAlertService emailAlertService;
@Autowired
private PaymentHandle paymentHandle;
//获取下单实现对象 //获取下单实现对象
private OrderFactoryService getCreateOrderBean(AssortmentCustomerInfoVo assortmentCustomerInfoVo, CreateOrderVo createOrderVo) { private OrderFactoryService getCreateOrderBean(AssortmentCustomerInfoVo assortmentCustomerInfoVo, CreateOrderVo createOrderVo) {
...@@ -327,10 +329,17 @@ public class OrderAdapterServiceImpl { ...@@ -327,10 +329,17 @@ public class OrderAdapterServiceImpl {
return orderAdapter.sendPaySuccessNoticeMessage(); return orderAdapter.sendPaySuccessNoticeMessage();
} }
Integer client = Integer.parseInt(orderBean.getOrderClient()); Integer client = Integer.parseInt(orderBean.getOrderClient());
//若是app订单超时回调了 订单已取消则做退款处理 //若是订单超时回调了 订单已取消则做退款处理
if (NewOrderStatus.CLOSED.getIndex().equals(orderBean.getStatusV2()) && Arrays.asList(autoRefundClient.split(",")).contains(client.toString()) if (NewOrderStatus.CLOSED.getIndex().equals(orderBean.getStatusV2())
&& Arrays.asList(autoRefundClient.split(",")).contains(client.toString())
&& Arrays.asList(autoRefundPartnerId.split(",")).contains(orderBean.getCompanyId())) { && Arrays.asList(autoRefundPartnerId.split(",")).contains(orderBean.getCompanyId())) {
orderServiceImpl.timeOutRefund(orderBean); cn.freemud.management.entities.dto.request.order.OrderManagerRequest request = new cn.freemud.management.entities.dto.request.order.OrderManagerRequest();
request.setOrderId(orderBean.getOid());
request.setPartnerId(orderBean.getCompanyId());
request.setReason("处理订单已关闭,支付未及时回调");
request.setOperator("order-application-service");
// 直接退款就行, 其他的资产已经被退回
paymentHandle.getCommonPayRefundResponse(request,orderBean);
return orderAdapter.sendPaySuccessNoticeMessage(); return orderAdapter.sendPaySuccessNoticeMessage();
} }
// 支付成功处理 // 支付成功处理
...@@ -486,6 +495,7 @@ public class OrderAdapterServiceImpl { ...@@ -486,6 +495,7 @@ public class OrderAdapterServiceImpl {
} }
/** /**
* 微信低碳活动上报,活动结束即可删除 * 微信低碳活动上报,活动结束即可删除
* @param message * @param message
...@@ -573,5 +583,4 @@ public class OrderAdapterServiceImpl { ...@@ -573,5 +583,4 @@ public class OrderAdapterServiceImpl {
} }
return false; return false;
} }
} }
...@@ -25,7 +25,6 @@ import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto; ...@@ -25,7 +25,6 @@ import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto;
import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj; import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj;
import cn.freemud.entities.dto.activity.PayGitCheckAndJoinRequestDto; import cn.freemud.entities.dto.activity.PayGitCheckAndJoinRequestDto;
import cn.freemud.entities.dto.blacklist.BlacklistDto; import cn.freemud.entities.dto.blacklist.BlacklistDto;
import cn.freemud.entities.dto.blacklist.OrderBlacklistResp;
import cn.freemud.entities.dto.coupon.CheckAndCancelRequest; import cn.freemud.entities.dto.coupon.CheckAndCancelRequest;
import cn.freemud.entities.dto.coupon.CheckAndCancelResponseDTO; import cn.freemud.entities.dto.coupon.CheckAndCancelResponseDTO;
import cn.freemud.entities.dto.coupon.CouponResponseDTO; import cn.freemud.entities.dto.coupon.CouponResponseDTO;
...@@ -96,7 +95,6 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome ...@@ -96,7 +95,6 @@ import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustome
import com.freemud.api.assortment.datamanager.meal.MealCacheManager; import com.freemud.api.assortment.datamanager.meal.MealCacheManager;
import com.freemud.application.sdk.api.constant.ResponseConstant; import com.freemud.application.sdk.api.constant.ResponseConstant;
import com.freemud.application.sdk.api.constant.ResponseResultEnum; import com.freemud.application.sdk.api.constant.ResponseResultEnum;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.ErrorLog; import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.common.OrderAndShoppingCommonRedisKey; import com.freemud.application.sdk.api.ordercenter.common.OrderAndShoppingCommonRedisKey;
...@@ -104,8 +102,6 @@ import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1; ...@@ -104,8 +102,6 @@ import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.entities.v1.RefundBeanV1; import com.freemud.application.sdk.api.ordercenter.entities.v1.RefundBeanV1;
import com.freemud.application.sdk.api.ordercenter.enums.*; import com.freemud.application.sdk.api.ordercenter.enums.*;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.*; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.*;
import com.freemud.application.sdk.api.ordercenter.enums.OrderType;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderStatusV1;
import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderTypeV1; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderTypeV1;
import com.freemud.application.sdk.api.ordercenter.request.*; import com.freemud.application.sdk.api.ordercenter.request.*;
...@@ -2324,7 +2320,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2324,7 +2320,7 @@ public class OrderServiceImpl implements Orderservice {
messageTemplateRequest.setMessageEventType(messageEventType); messageTemplateRequest.setMessageEventType(messageEventType);
com.freemud.application.sdk.api.base.BaseResponse baseResponse = this.messageTemplatePushService.sendTemplateMsg(messageTemplateRequest); com.freemud.application.sdk.api.base.BaseResponse baseResponse = this.messageTemplatePushService.sendTemplateMsg(messageTemplateRequest);
if (!Objects.equals(baseResponse.getCode(), ResponseResultEnum.SUCCESS.getCode())) { if (!Objects.equals(baseResponse.getCode(), ResponseResultEnum.SUCCESS.getCode())) {
AppLogUtil.errorLog("发送支付成功模板消息 失败", orderBean.getOid(), JSON.toJSONString(baseResponse), null); AppLogUtil.printLog("发送支付成功模板消息 失败", orderBean.getOid(), JSON.toJSONString(baseResponse));
} }
} catch (Exception e) { } catch (Exception e) {
AppLogUtil.errorLog("sendTemplateMsg_error", JSONObject.toJSONString(orderBean), JSONObject.toJSONString(messageTemplateRequest), e); AppLogUtil.errorLog("sendTemplateMsg_error", JSONObject.toJSONString(orderBean), JSONObject.toJSONString(messageTemplateRequest), e);
...@@ -2815,30 +2811,23 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2815,30 +2811,23 @@ public class OrderServiceImpl implements Orderservice {
if (abState.equals(orderBean.getAbnormalState())) { if (abState.equals(orderBean.getAbnormalState())) {
return; return;
} }
com.freemud.application.sdk.api.base.BaseResponse<OrderRefundResponse> response = null; OrderManagerRequest request = new OrderManagerRequest();
Long refundId = System.currentTimeMillis(); request.setReason("订单已关闭,支付未及时回调");
OrderExtInfoDto orderExtInfoDTO = gson.fromJson(orderBean.getExtInfo(), OrderExtInfoDto.class); Integer state = com.freemud.sdk.api.assortment.order.enums.PayRefundStatus.SUCCESS.getCode();
if (orderExtInfoDTO == null || StringUtils.isBlank(orderExtInfoDTO.getFmId())) { PayRefundResponse commonPayRefundResponse = paymentHandle.getCommonPayRefundResponse(request, orderBean);
return; com.freemud.sdk.api.assortment.order.enums.PayRefundStatus payRefundStatus = commonPayRefundResponse.getPayRefundStatus();
}
Integer state = PayRefundStatus.SUCCESS.getCode();
orderBean.setPayVoucher(orderExtInfoDTO.getFmId());
SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState(); SdkUpdateAbnormalState sdkUpdateAbnormalState = new SdkUpdateAbnormalState();
String desc = "支付未及时回调"; String desc = "支付未及时回调";
switch (payRefundStatus){
PayRefundRequestDto orderPayRefundRequest = orderAdapter.getOrderPayRefundRequest(orderBean, refundId, orderBean.getOid()); case SUCCESS:
// TODO: 22-6-23 待联调修改 sdkUpdateAbnormalState.setAbnormalDesc(desc + ",退款成功");
response = payServiceImpl.orderRefund(orderPayRefundRequest); break;
// OrderManagerRequest request = new OrderManagerRequest(); case FAIL:
// request.setReason(desc); sdkUpdateAbnormalState.setAbnormalDesc(desc + ",退款失败");
// PayRefundResponse response = payServiceImpl.payRefundCommon(request, orderBean); break;
if (response != null && noPay.equals(response.getCode())) { default:
return; sdkUpdateAbnormalState.setAbnormalDesc(desc + ",等待支付回调中");
}
if (response != null || state.equals(response.getData().getRefundStatus())) {
sdkUpdateAbnormalState.setAbnormalDesc(desc + ",退款成功");
} else {
sdkUpdateAbnormalState.setAbnormalDesc(desc + ",退款失败");
} }
sdkUpdateAbnormalState.setPartnerId(orderBean.getCompanyId()); sdkUpdateAbnormalState.setPartnerId(orderBean.getCompanyId());
sdkUpdateAbnormalState.setAbnormalState(4); sdkUpdateAbnormalState.setAbnormalState(4);
......
...@@ -1276,7 +1276,8 @@ public class PayServiceImpl { ...@@ -1276,7 +1276,8 @@ public class PayServiceImpl {
} }
orderPayDto.setFoodOrderType(orderAdapter.getFoodOrderType(orderBean.getOrderType())); orderPayDto.setFoodOrderType(orderAdapter.getFoodOrderType(orderBean.getOrderType()));
// orderPayDto.setMerchantDiscount(orderBean.getOriginalAmount().longValue()-orderBean.getAmount()); // orderPayDto.setMerchantDiscount(orderBean.getOriginalAmount().longValue()-orderBean.getAmount());
orderPayDto.setSubAppid(orderBean.getAppId());
orderPayDto.setPayTypeCode(convertPayTypeCode(orderBean.getOrderClient()));
return orderPayDto; return orderPayDto;
} }
...@@ -1635,6 +1636,24 @@ public class PayServiceImpl { ...@@ -1635,6 +1636,24 @@ public class PayServiceImpl {
return orderPayResponse; return orderPayResponse;
} }
/**
* 支付类型编码 TWX:微信 TZFB:支付宝
*/
public String convertPayTypeCode(String orderClient) {
String payTypeCode = "";
switch (orderClient) {
case "2":
payTypeCode = "TWX";
break;
case "3":
payTypeCode = "TZFB";
break;
default:
break;
}
return payTypeCode;
}
......
...@@ -18,7 +18,7 @@ public enum OperateType { ...@@ -18,7 +18,7 @@ public enum OperateType {
* 该操作无校验, 直接退款, 如果使用 请联系SE 进行报备, * 该操作无校验, 直接退款, 如果使用 请联系SE 进行报备,
* 该类型不给外部人员使用, 不对外部暴露接口 * 该类型不给外部人员使用, 不对外部暴露接口
*/ */
ORDER_DEVELOPER_AGREE_REFUND("orderDeveloperAgreeRefund","售后人员同意退款"); ORDER_DEVELOPER_AGREE_REFUND("orderDeveloperAgreeRefund","重试售后单退款"),;
/** /**
* 操作类型 * 操作类型
......
...@@ -398,6 +398,10 @@ public class OrderManagerAdapter { ...@@ -398,6 +398,10 @@ public class OrderManagerAdapter {
if (null == orderBean) { if (null == orderBean) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST); return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
} }
// 是否是卖券订单 卖券订单有自己的逻辑补偿,不走支付回调
if (orderBean.getBizType().compareTo(BizTypeEnum.SALE_COUPON.getBizType()) == 0) {
return ResponseUtil.success();
}
// step 2 检查订单状态 // step 2 检查订单状态
//已取消的订单不能操作 //已取消的订单不能操作
if (ObjectUtils.equals(OrderStatusV1.CANCEL.getV2Code(), orderBean.getStatusV2())) { if (ObjectUtils.equals(OrderStatusV1.CANCEL.getV2Code(), orderBean.getStatusV2())) {
......
...@@ -731,7 +731,6 @@ public class ShoppingCartConvertAdapter { ...@@ -731,7 +731,6 @@ public class ShoppingCartConvertAdapter {
Long newOrigOriginalPrice = 0L; Long newOrigOriginalPrice = 0L;
if (isSetMealProduct) { if (isSetMealProduct) {
newOrigOriginalPrice += cartGoods.getProductComboList().stream().mapToLong(t -> t.getOriginalAmount()).sum(); newOrigOriginalPrice += cartGoods.getProductComboList().stream().mapToLong(t -> t.getOriginalAmount()).sum();
newOrigOriginalPrice += cartGoods.getProductGroupList().stream().mapToLong(t -> t.getOriginalAmount()).sum();
} else { } else {
newOrigOriginalPrice = isSkuProduct ? skuProduct.getFinalPrice() : spuProduct.getFinalPrice(); newOrigOriginalPrice = isSkuProduct ? skuProduct.getFinalPrice() : spuProduct.getFinalPrice();
} }
......
...@@ -359,7 +359,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -359,7 +359,7 @@ public class CouponServiceImpl implements CouponService {
if (Objects.equals(couponStateVo.getType(), CouponTypeEnum.TYPE_1.getCode())) { if (Objects.equals(couponStateVo.getType(), CouponTypeEnum.TYPE_1.getCode())) {
activityCouponBean.setDiscountAmount(couponStateVo.getOriginalPrice() + ""); activityCouponBean.setDiscountAmount(couponStateVo.getOriginalPrice() + "");
} else if (Objects.equals(couponStateVo.getType(), CouponTypeEnum.TYPE_3.getCode())) { } else if (Objects.equals(couponStateVo.getType(), CouponTypeEnum.TYPE_3.getCode())) {
// TODO 折扣券 百分值10 乘以10 前端统一除以100作为操作依据 // TODO 折扣券 百分值10 乘以10 前端统一除以100作为操作依据 _> 废弃, 现在默认 不乘10
activityCouponBean.setDiscountAmount(couponStateVo.getDiscount() != null ? couponStateVo.getDiscount() * 10 + "" : "0"); activityCouponBean.setDiscountAmount(couponStateVo.getDiscount() != null ? couponStateVo.getDiscount() * 10 + "" : "0");
}else if (Objects.equals(couponStateVo.getType(), CouponTypeEnum.TYPE_5.getCode())) { }else if (Objects.equals(couponStateVo.getType(), CouponTypeEnum.TYPE_5.getCode())) {
// 这里需要加入 配送券逻辑 如果为null 表示 配送券金额 全免, 否则就是部分减免 // 这里需要加入 配送券逻辑 如果为null 表示 配送券金额 全免, 否则就是部分减免
......
...@@ -1833,6 +1833,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1833,6 +1833,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
calculationDiscountGoods.setCartGoodsUid(cartGoods.getCartGoodsUid()); calculationDiscountGoods.setCartGoodsUid(cartGoods.getCartGoodsUid());
calculationDiscountGoods.setAddCartTime(cartGoods.getAddCartTime() == null ? 0 : cartGoods.getAddCartTime()); calculationDiscountGoods.setAddCartTime(cartGoods.getAddCartTime() == null ? 0 : cartGoods.getAddCartTime());
calculationDiscountGoods.setGoodsQuantity(cartGoods.getQty()); calculationDiscountGoods.setGoodsQuantity(cartGoods.getQty());
// fisherman --> 老算价套餐子商品总价遗漏
calculationDiscountGoods.setOriginalPrice(cartGoods.getFinalPrice()); calculationDiscountGoods.setOriginalPrice(cartGoods.getFinalPrice());
calculationDiscountGoods.setMemberDiscount(cartGoods.getMemberDiscount()); calculationDiscountGoods.setMemberDiscount(cartGoods.getMemberDiscount());
calculationDiscountGoods.setSpuId(cartGoods.getSpuId()); calculationDiscountGoods.setSpuId(cartGoods.getSpuId());
......
...@@ -479,8 +479,17 @@ public class CalculationCommonService { ...@@ -479,8 +479,17 @@ public class CalculationCommonService {
activityDiscountsDto.setActivityCode(discount.getActivityCode()); activityDiscountsDto.setActivityCode(discount.getActivityCode());
activityDiscountsDto.setActivityName(this.convertName(discount.getType(), discount.getActivityName())); activityDiscountsDto.setActivityName(this.convertName(discount.getType(), discount.getActivityName()));
activityDiscountsDto.setActivityType(this.convertType(discount.getType())); activityDiscountsDto.setActivityType(this.convertType(discount.getType()));
activityDiscountsDto.setDiscountAmount(discount.getDiscount().intValue()); if (cartGoodsDetailDto.getIsSendGoods()) {
activityDiscountsDto.setActualActivityGoodsNumber(discount.getActualGoodsNumber()); // 这里不直接取促销返回的discount是因为如果是赠品的情况下, 如果赠品有属性,会进行拆行
// 例如:赠品*2, 会被拆为 2个 赠品*1, 每个赠品都可以选不同属性, 这样赠品的优惠信息需要将优惠金额也要拆到每一行上去
activityDiscountsDto.setDiscountAmount(discount.getDiscount().intValue() / discount.getActualGoodsNumber() * cartGoods.getQty());
activityDiscountsDto.setActualActivityGoodsNumber(1);
} else {
// 这里不直接取促销返回的discount是因为如果是赠品的情况下, 如果赠品有属性,会进行拆行
// 例如:赠品*2, 会被拆为 2个 赠品*1, 每个赠品都可以选不同属性, 这样赠品的优惠信息需要将优惠金额也要拆到每一行上去
activityDiscountsDto.setDiscountAmount(discount.getDiscount().intValue());
activityDiscountsDto.setActualActivityGoodsNumber(discount.getActualGoodsNumber());
}
activityDiscountsDtoList.add(activityDiscountsDto); activityDiscountsDtoList.add(activityDiscountsDto);
} }
} else if (CollectionUtils.isNotEmpty(calculationGoods.getSmallMaterial())) { } else if (CollectionUtils.isNotEmpty(calculationGoods.getSmallMaterial())) {
......
...@@ -121,7 +121,7 @@ public class CalculationSharingEquallyService { ...@@ -121,7 +121,7 @@ public class CalculationSharingEquallyService {
Goods find = null; Goods find = null;
for (CartGoods product : shoppingCartGoodsResponseVo.getProducts()) { for (CartGoods product : shoppingCartGoodsResponseVo.getProducts()) {
if (goods!=null) { if (goods!=null) {
find = goods.stream().filter((k) -> k.getCartGoodsUid().equals(product.getCartGoodsUid())).findFirst().get(); find = goods.stream().filter((k) -> k.getCartGoodsUid().equals(product.getCartGoodsUid())).findFirst().orElseGet(null);
} }
ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = calculationCommonService.convertCartGoods2DetailGoodsList(find, product,shoppingCartInfoRequestVo.getPartnerId()); ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto = calculationCommonService.convertCartGoods2DetailGoodsList(find, product,shoppingCartInfoRequestVo.getPartnerId());
cartGoodsDetailDtoList.add(cartGoodsDetailDto); cartGoodsDetailDtoList.add(cartGoodsDetailDto);
......
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