Commit b3d5d5a7 by 王世昌

批量退款bug修复

parent a5c7fa77
......@@ -41,6 +41,7 @@ import cn.freemud.enums.QueryOrderStatus;
import cn.freemud.enums.RefundStatus;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request;
import cn.freemud.redis.RedisCache;
import cn.freemud.request.wechat.dto.SignMessageBuilder;
import cn.freemud.service.impl.OrderCommonService;
......@@ -48,7 +49,6 @@ import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerConfig;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerWxappConfig;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
......@@ -62,7 +62,6 @@ import com.freemud.application.sdk.api.ordercenter.request.AfterOrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderPayItemCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.BaseDownLoadResponse;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.promotioncenter.dto.promotion.GoodsStockDTO;
......@@ -91,10 +90,8 @@ import org.apache.commons.lang.time.FastDateFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import tk.mybatis.mapper.util.StringUtil;
import java.awt.geom.Point2D;
import java.io.*;
import java.math.BigDecimal;
import java.security.NoSuchAlgorithmException;
import java.security.spec.InvalidKeySpecException;
......@@ -4186,7 +4183,7 @@ public class OrderAdapter {
return payTurnoffRefund;
}
public BatchOrderRefundV2Request getBatchOrderRefundV2Request(List<QueryOrdersResponseDto.DataBean.OrderBean> orderBeans,String partnerId,String storeId) {
public BatchOrderRefundV2Request getBatchOrderRefundV2Request(List<QueryOrdersResponseDto.DataBean.OrderBean> orderBeans, String partnerId, String storeId) {
BatchOrderRefundV2Request orderPayRefundRequest = new BatchOrderRefundV2Request();
// 请自行过滤金额为0的订单
List<BatchOrderRefundV2Request.BatchOrderRefundItem> items = orderBeans.stream().map(orderBean ->{
......
......@@ -56,6 +56,7 @@ import cn.freemud.enums.RefundStatus;
import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.OrderType;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request;
import cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse;
import cn.freemud.management.thirdparty.MulitiPaymentClient;
import cn.freemud.manager.SpellGroupOrderDataManager;
......@@ -4196,7 +4197,7 @@ public class OrderServiceImpl implements Orderservice {
SpellGroupBatchOrderRefundVo orderRefundVo = new SpellGroupBatchOrderRefundVo();
orderRefundVo.setPartnerId(orderBeanList.get(0).getCompanyId());
orderRefundVo.setPartnerId(orderBeanList.get(0).getShopId());
orderRefundVo.setStoreId(orderBeanList.get(0).getShopId());
orderRefundVo.setReason(Optional.ofNullable(RefundReasonEnum.getSpellGroupReasonByIndex(refundVo.getReason())).orElse(RefundReasonEnum.Other).getDesc());
// 拼团失败取消 默认为只退款不退货
orderRefundVo.setRefundMode(RefundModeEnum.UN_REFUND_GOODS.getIndex());
......@@ -4298,12 +4299,13 @@ public class OrderServiceImpl implements Orderservice {
// 1.1 组装批量退款参数
BatchOrderRefundV2Request batchOrderRefundV2Request = orderAdapter.getBatchOrderRefundV2Request(payRefundOrderCodes, partnerId, storeId);
// 1.2 调用支付服务退款
response = paymentNewClient.batchRefund(batchOrderRefundV2Request);
response = mulitiPaymentClient.batchRefund(batchOrderRefundV2Request);
} catch (Exception e) {
log.error("拼团批量退款失败!!", e);
}
PayBatchRefundResponse.BatchRefundBatchIdData batchIdData;
if (Objects.isNull(response) || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS, response.getCode())
// 注意响应值是200
if (Objects.isNull(response) || !Objects.equals(ResponseCodeConstant.PAYMENT_RESPONSE_SUCCESS, response.getCode())
|| Objects.isNull(batchIdData = response.getData()) || Objects.isNull(batchIdData.getBatchId())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "批量退款失败");
}
......
......@@ -2,8 +2,6 @@ package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.order.FacePayRequestDto;
import cn.freemud.entities.dto.order.FacePayResponseDto;
import cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse;
import com.freemud.sdk.api.assortment.order.request.order.BatchOrderRefundV2Request;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -31,10 +29,4 @@ public interface PaymentNewClient {
@PostMapping("paymentcenter/facePay")
com.freemud.application.sdk.api.base.BaseResponse<FacePayResponseDto> facePay(@RequestBody FacePayRequestDto orderPayDto);
/**
* 批量支付退款
*/
@PostMapping("/payment/application/batch/refund")
PayBatchRefundResponse batchRefund(BatchOrderRefundV2Request batchOrderRefundV2Request);
}
......@@ -9,7 +9,7 @@ import lombok.Data;
@Data
public class PayBatchRefundResponse {
private int code;
private Integer code;
private BatchRefundBatchIdData data;
......
......@@ -13,6 +13,8 @@
package cn.freemud.management.thirdparty;
import cn.freemud.management.entities.dto.request.BatchOrderRefundV2Request;
import cn.freemud.management.entities.dto.response.pay.PayBatchRefundResponse;
import com.freemud.sdk.api.assortment.order.request.order.MultiOrderRefundRequest;
import com.freemud.sdk.api.assortment.order.response.order.MultiOrderRefundResponse;
import org.springframework.cloud.openfeign.FeignClient;
......@@ -30,4 +32,9 @@ public interface MulitiPaymentClient {
@PostMapping("/payment/application/refund")
MultiOrderRefundResponse paymentApplicationRefund(MultiOrderRefundRequest multiOrderRefundRequest, @RequestHeader("partnerId") String partnerId);
/**
* 批量支付退款
*/
@PostMapping("/payment/application/batch/refund")
PayBatchRefundResponse batchRefund(BatchOrderRefundV2Request batchOrderRefundV2Request);
}
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