Commit 13f48a9a by ping.wu

Merge branches 'feature/20220606_支付退款状态码_wuping' and 'pre' of…

Merge branches 'feature/20220606_支付退款状态码_wuping' and 'pre' of http://gitlab.freemud.com/order-group-application/order-group into pre
parents b8007707 760f8f67
......@@ -5,7 +5,7 @@ import lombok.Data;
@Data
public class CloseUnifiedOrderResult {
private Integer resultCode;
private String resultCode;
private String resultMsg;
}
package cn.freemud.entities.dto.pay;
public class PaymentCloseUnifiedOrderResponse {
private Integer code;
private String message;
private CloseUnifiedOrderResult data;
}
//package cn.freemud.entities.dto.pay;
//
//public class PaymentCloseUnifiedOrderResponse {
//
// private Integer code;
// private String message;
// private CloseUnifiedOrderResult data;
//
//}
......@@ -10,10 +10,7 @@ import cn.freemud.entities.dto.coupon.InvalidCouponsRequestDto;
import cn.freemud.entities.dto.coupon.InvalidCouponsResponseDto;
import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.pay.PaymentCloseUnifiedOrderRequest;
import cn.freemud.entities.dto.pay.PaymentCloseUnifiedOrderResponse;
import cn.freemud.entities.dto.pay.PaymentQueryRequestDto;
import cn.freemud.entities.dto.pay.PaymentQueryResponseDto;
import cn.freemud.entities.dto.pay.*;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*;
......@@ -339,8 +336,9 @@ public class AppOrderServiceImpl implements AppOrderService {
closeUnifiedOrderRequest.setVer("2");
closeUnifiedOrderRequest.setPartnerId(orderBean.getCompanyId());
closeUnifiedOrderRequest.setStoreId(orderBean.getShopId());
com.freemud.application.sdk.api.base.BaseResponse<PaymentCloseUnifiedOrderResponse> cancelNewUnifiedOrder = payServiceimpl.cancelNewUnifiedOrder(closeUnifiedOrderRequest);
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getCode())) {
com.freemud.application.sdk.api.base.BaseResponse<CloseUnifiedOrderResult> cancelNewUnifiedOrder = payServiceimpl.cancelNewUnifiedOrder(closeUnifiedOrderRequest);
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getCode())
|| ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getData().getResultCode())) {
throw new ServiceException(ResponseResult.ORDER_PRE_PAYMENT_CLOSE_FAILED);
}
}
......
......@@ -7,10 +7,7 @@ import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.entities.UpdateReserveOrderResponseVo;
import cn.freemud.entities.bo.CreateOrderBONew;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.pay.PaymentCloseUnifiedOrderRequest;
import cn.freemud.entities.dto.pay.PaymentCloseUnifiedOrderResponse;
import cn.freemud.entities.dto.pay.PaymentQueryRequestDto;
import cn.freemud.entities.dto.pay.PaymentQueryResponseDto;
import cn.freemud.entities.dto.pay.*;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountRequestDto;
import cn.freemud.entities.dto.pay.svc.SVCCardAmountResponseDto;
import cn.freemud.entities.dto.promotion.CouponPromotionDto;
......@@ -587,9 +584,10 @@ public class EncircleOrderServiceImpl implements EncircleOrderService {
closeUnifiedOrderRequest.setVer("2");
closeUnifiedOrderRequest.setPartnerId(assortmentCustomerInfoVo.getPartnerId());
closeUnifiedOrderRequest.setStoreId(assortmentCustomerInfoVo.getStoreId());
com.freemud.application.sdk.api.base.BaseResponse<PaymentCloseUnifiedOrderResponse> cancelNewUnifiedOrder = payService.cancelNewUnifiedOrder(closeUnifiedOrderRequest);
if(ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(),cancelNewUnifiedOrder.getCode())){
return ResponseUtil.error(ResponseResult.ENCIRCLEORDER_PRE_PAYMENT_CLOSE_FAILED);
com.freemud.application.sdk.api.base.BaseResponse<CloseUnifiedOrderResult> cancelNewUnifiedOrder = payService.cancelNewUnifiedOrder(closeUnifiedOrderRequest);
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getCode())
|| ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getData().getResultCode())) {
throw new ServiceException(ResponseResult.ORDER_PRE_PAYMENT_CLOSE_FAILED);
}
}
}
......
......@@ -848,7 +848,7 @@ public class PayServiceImpl {
/**
* 关闭预支付订单
*/
public com.freemud.application.sdk.api.base.BaseResponse<PaymentCloseUnifiedOrderResponse> cancelNewUnifiedOrder( PaymentCloseUnifiedOrderRequest request){
public com.freemud.application.sdk.api.base.BaseResponse<CloseUnifiedOrderResult> cancelNewUnifiedOrder( PaymentCloseUnifiedOrderRequest request){
return paymentNewClient.cancelNewUnifiedOrder(request);
}
......@@ -944,8 +944,9 @@ public class PayServiceImpl {
closeUnifiedOrderRequest.setVer("2");
closeUnifiedOrderRequest.setPartnerId(orderBean.getCompanyId());
closeUnifiedOrderRequest.setStoreId(orderBean.getShopId());
com.freemud.application.sdk.api.base.BaseResponse<PaymentCloseUnifiedOrderResponse> cancelNewUnifiedOrder = this.cancelNewUnifiedOrder(closeUnifiedOrderRequest);
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getCode())) {
com.freemud.application.sdk.api.base.BaseResponse<CloseUnifiedOrderResult> cancelNewUnifiedOrder = this.cancelNewUnifiedOrder(closeUnifiedOrderRequest);
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getCode())
|| ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getData().getResultCode())) {
throw new ServiceException(ResponseResult.ORDER_PRE_PAYMENT_CLOSE_FAILED);
}
}
......@@ -983,8 +984,9 @@ public class PayServiceImpl {
closeUnifiedOrderRequest.setVer("2");
closeUnifiedOrderRequest.setPartnerId(orderBean.getCompanyId());
closeUnifiedOrderRequest.setStoreId(orderBean.getShopId());
com.freemud.application.sdk.api.base.BaseResponse<PaymentCloseUnifiedOrderResponse> cancelNewUnifiedOrder = this.cancelNewUnifiedOrder(closeUnifiedOrderRequest);
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getCode())) {
com.freemud.application.sdk.api.base.BaseResponse<CloseUnifiedOrderResult> cancelNewUnifiedOrder = this.cancelNewUnifiedOrder(closeUnifiedOrderRequest);
if (ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getCode())
|| ObjectUtils.notEqual(ResponseResult.SUCCESS.getCode(), cancelNewUnifiedOrder.getData().getResultCode())) {
throw new ServiceException(ResponseResult.ORDER_PRE_PAYMENT_CLOSE_FAILED);
}
}
......
......@@ -68,7 +68,7 @@ public interface PaymentNewClient {
*/
@LogIgnoreFeign(logMessage="payClose")
@PostMapping("paymentcenter/close")
com.freemud.application.sdk.api.base.BaseResponse<PaymentCloseUnifiedOrderResponse> cancelNewUnifiedOrder(@RequestBody PaymentCloseUnifiedOrderRequest request);
com.freemud.application.sdk.api.base.BaseResponse<CloseUnifiedOrderResult> cancelNewUnifiedOrder(@RequestBody PaymentCloseUnifiedOrderRequest request);
/**
* 支付查询
......
......@@ -25,7 +25,6 @@ public interface SvcAppClient {
//批量查询卡配置规则
@PostMapping(value = "/svc/cardapply/multi-info")
@LogIgnoreFeign(logMessage = "/svc/cardapply/multi-info")
BaseResponse<List<CardApplyRes>> multiInfo(@RequestBody List<BatchSvcInfoRequest> requestList);
}
......@@ -5,19 +5,23 @@ import cn.freemud.management.entities.dto.request.console.ConsoleResponseDTO;
import cn.freemud.management.entities.dto.request.console.StoreInfoDTO;
import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto;
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.enums.OrderType;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Date;
import java.util.LinkedList;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
@Component
public class DeliverySdkAdapter {
@Value("${calculate.depatch.weight.partnerId:}")
private List<String> calculateWeightPartnerId;
/**
* 创建配送单请求对象
*
......@@ -28,9 +32,8 @@ public class DeliverySdkAdapter {
*/
public CreateDeliveryOrderRequestDto buildDeliveryOrderRequestDto(OrderBeanV1 order
, ConsoleResponseDTO<BizDTO> bizDTO, String deliveryCallBackUrl) {
StoreInfoDTO storeInfo = bizDTO.getBizVO().getStoreInfo();
CreateDeliveryOrderRequestDto deliveryOrderRequestDto = new CreateDeliveryOrderRequestDto();
deliveryOrderRequestDto.setDepatchWeight(new BigDecimal(1));
deliveryOrderRequestDto.setDepatchWeight(this.getDepatchWeightByOrder(order.getProductList(), order.getCompanyId()));
deliveryOrderRequestDto.setSerialNumber(order.getOtherCode());
deliveryOrderRequestDto.setOrderId(order.getOid());
deliveryOrderRequestDto.setOrderRemark(order.getRemark());
......@@ -38,6 +41,7 @@ public class DeliverySdkAdapter {
deliveryOrderRequestDto.setOrderActualAmount(order.getAmount().intValue());
deliveryOrderRequestDto.setPartnerId(order.getCompanyId());
deliveryOrderRequestDto.setOrderChannel(order.getSource());
StoreInfoDTO storeInfo = bizDTO.getBizVO().getStoreInfo();
deliveryOrderRequestDto.setStoreId(storeInfo.getStoreId());
deliveryOrderRequestDto.setStoreCode(storeInfo.getStoreCode());
StringBuffer address = new StringBuffer(storeInfo.getCity())
......@@ -78,4 +82,46 @@ public class DeliverySdkAdapter {
}).collect(Collectors.toCollection(LinkedList::new))));
return deliveryOrderRequestDto;
}
private BigDecimal getDepatchWeightByOrder(List<ProductBeanV1> productList, String partnerId) {
if (CollectionUtils.isEmpty(calculateWeightPartnerId) || !calculateWeightPartnerId.contains(partnerId)) {
// 原始逻辑,都是默认传递 1kg给到配送
return new BigDecimal("1");
}
if (CollectionUtils.isEmpty(productList)) {
return new BigDecimal("0.5");
}
BigDecimal result = BigDecimal.ZERO;
for (ProductBeanV1 p : productList) {
// if (p.getIsSendGoods()) {
// continue;
// }
BigDecimal sum = p.getWeight().multiply(new BigDecimal(p.getNumber()));
BigDecimal comboSum = this.sumWeightByProduct(p.getComboProduct());
BigDecimal materSum = this.sumWeightByProduct(p.getMaterialProduct());
// BigDecimal sendSum = this.sumWeightByProduct(p.getSendProduct());
// result = result.add(sum).add(comboSum).add(materSum).add(sendSum);
result = result.add(sum).add(comboSum).add(materSum);
}
if (result.compareTo(BigDecimal.ZERO) <= 0) {
return new BigDecimal("0.5");
}
// 这里 计算的结果是 g 需要变成 kg 给接口 保留3位小数 后面多余直接舍弃
return result.divide(new BigDecimal("1000"), 3, BigDecimal.ROUND_DOWN);
}
private BigDecimal sumWeightByProduct(List<ProductBeanV1> productBeanV) {
BigDecimal result = BigDecimal.ZERO;
if (CollectionUtils.isEmpty(productBeanV)) {
return result;
}
for (ProductBeanV1 p : productBeanV) {
BigDecimal weight = p.getWeight();
int number = p.getNumber();
BigDecimal multiply = weight.multiply(new BigDecimal(number));
result = result.add(multiply);
}
return result;
}
}
......@@ -21,6 +21,7 @@ import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.util.LogUtil;
import com.freemud.application.sdk.api.service.EmailAlertService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
......@@ -70,7 +71,8 @@ public class DeliveryHandle {
private DeliveryMCCafeClient deliveryMCCafeClient;
@Autowired
private EmailAlertService emailAlertService;
@Autowired
private LogUtil logUtil;
/**
* 创建配送单
......
......@@ -366,6 +366,11 @@ public class PaymentHandle {
return null;
}
logUtil.info("paymentcenter/refund", JSONObject.toJSONString(request),JSONObject.toJSONString(refundNewResponse));
//支付状态码取内部值
if(Objects.equals(refundNewResponse.getCode(), "100") && refundNewResponse.getData() != null){
refundNewResponse.setCode(refundNewResponse.getData().getResultCode().toString());
refundNewResponse.setMessage(refundNewResponse.getData().getResultMsg());
}
if (Objects.equals(refundNewResponse.getCode(), "100")) {
PayRefundData refundData = refundNewResponse.getData();
if (null != refundData) {
......
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