Commit 4bbef2d1 by ping.wu

Merge remote-tracking branch 'origin/develop' into develop

parents cd694771 1c44a280
......@@ -84,7 +84,7 @@ public class CancelOrderRequest extends BaseConfig {
* 是否部分退,默认否(全退)
*/
@Builder.Default
private boolean isPartRefund = false;
private Boolean isPartRefund = false;
//用户预约时间,仅为预约单时存放
private String expectTime;
......
......@@ -873,7 +873,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setOrderCode(cancelOrderRequest.getOrderId());
request.setReqRemark(cancelOrderRequest.getReqRemark());
request.setReqAmount(cancelOrderRequest.getReqAmount());
request.setPartRefund(cancelOrderRequest.isPartRefund());
request.setIsPartRefund(cancelOrderRequest.getIsPartRefund());
//售后单类型 1:其他取消 2:用户取消 3:商户取消 4:未支付超时关单 5:商户接单超时取消 6:商家拒单
// 7:配送用户拒收 8:用户售后退货/售后退款 9:系统取消 10:客服取消 11:用户统一取消,
request.setAfterSalesType(cancelOrderRequest.getAfterSalesType().getIndex() == null ? 1 : cancelOrderRequest.getAfterSalesType().getIndex());
......
......@@ -30,7 +30,7 @@ public class CancelOrderRequestAdapter {
req.setTrackingNo(LogThreadLocal.getTrackingNo());
req.setRefundSerialNo(refundId);
req.setPartRefund(refundAmount != null); // 是否部分退
req.setIsPartRefund(refundAmount != null); // 是否部分退
req.setReqAmount(refundAmount != null ? new BigDecimal(refundAmount) : null); // 退款金额
//操作来源客户端 1:POS插件 2:小助手 3:开放平台 4:自动任务 5:用户端 6:系统 7:万象 8:太一
......
package cn.freemud.aop;
import cn.freemud.constant.CommonRedisKeyConstant;
import cn.freemud.entities.vo.ThirdPartLogVo;
import cn.freemud.enums.CommonResponseResult;
import cn.freemud.inteceptor.CommonServiceException;
import cn.freemud.interceptor.CommonServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.utils.AppLogUtil;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformConfig;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformConfigManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.log.ThirdPartyLog;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
......
......@@ -3,7 +3,6 @@ package cn.freemud.interceptor;
import cn.freemud.base.constant.Version;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.enums.ResponseResult;
import cn.freemud.inteceptor.CommonServiceException;
import cn.freemud.utils.ResponseUtil;
import org.springframework.http.HttpStatus;
import org.springframework.validation.BindingResult;
......
package cn.freemud.inteceptor;
package cn.freemud.interceptor;
import cn.freemud.enums.CommonResponseResult;
import com.freemud.application.sdk.api.exception.IgnoreErrorAnnotation;
......
......@@ -292,13 +292,13 @@ public class RefundService {
req.setRefundState(AfterSalesRefunStateEnum.STATE_2.getIndex());
} else {
// 其他退款失败的情况 不生成售后单
throw new ServiceException(ResponseResult.MULTIORDER__ERRORREFUND.getCode());
throw new ServiceException(ResponseResult.MULTIORDER__ERRORREFUND.getMessage());
}
BaseOrderResponse resp = orderCenterSdkService.orderCancel(req);
if (resp == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, resp.getErrcode())) {
throw new ServiceException(ResponseResult.ORDER__ERRORREFUND.getCode());
throw new ServiceException(ResponseResult.ORDER__ERRORREFUND.getMessage());
}
if (state == PayRefundStatus.RUNNING.getCode()) {
......
//package cn.freemud.client;
//
//import cn.freemud.adapter.ActivityAdapter;
//import cn.freemud.amqp.Header;
//import cn.freemud.amqp.MQAction;
//import cn.freemud.amqp.MQMessage;
//import cn.freemud.amqp.MQService;
//import cn.freemud.entities.dto.ActivityCancelStockRequestDto;
//import cn.freemud.entities.dto.QueryOrdersResponseDto;
//import cn.freemud.utils.FileUtil;
//import cn.freemud.utils.AppLogUtil;
//import com.alibaba.fastjson.JSON;
//import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
//import org.springframework.cloud.openfeign.EnableFeignClients;
//import org.springframework.test.context.junit4.SpringRunner;
//
//import java.util.Arrays;
//
//@RunWith(SpringRunner.class)
//@SpringBootTest
//@EnableDiscoveryClient
//@EnableFeignClients
//@EnableAutoConfiguration
//public class MqTest {
// @Autowired
// private ActivityAdapter activityAdapter;
// @Value("${program.backorders_notify_activity_queue}")
// private String backOrdersNotifyActivityQueue;
// @Value("${program.backorders_notify_activity_exchange}")
// private String backOrdersNotifyActivityExchange;
// @Autowired
// private MQService mqService;
// @Test
// public void mqTest () {
// String fileName = "test";
// OrderBeanV1 orderBean = FileUtil.getObjectFromFile(fileName, OrderBeanV1.class);
// // 删除订单 通知活动添加商品库存
// ActivityCancelStockRequestDto activityCancelStockRequestDto = activityAdapter.convert2ActivityCancelStockRequestDto(
// orderBean, Arrays.asList(1,2,3));
// System.out.println(JSON.toJSONString(activityCancelStockRequestDto));
// try {
// Header header = new Header(MQAction.INSERT.getAction(), "backOrdersNotifyActivity", orderBean.getOid(), backOrdersNotifyActivityQueue);
// MQMessage<ActivityCancelStockRequestDto> message = new MQMessage<>(header, activityCancelStockRequestDto);
// mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersNotifyActivityQueue, message);
// } catch (Exception e) {
// AppLogUtil.errorLog("ActivityReverse", JSON.toJSONString(activityCancelStockRequestDto), "", e);
// }
//
// }
//}
......@@ -76,7 +76,7 @@ public class PaymentSdkAdapter {
multiQueryRequest.setPartnerId(partnerId);
multiQueryRequest.setStoreId(storeCode);
multiQueryRequest.setFmId("");
multiQueryRequest.setRefundAmount(Long.valueOf(String.valueOf(refundAmount)));
multiQueryRequest.setRefundAmount(refundAmount.longValue());
multiQueryRequest.setRefundTradeNo(String.valueOf(getRefundSerialNo()));
multiQueryRequest.setNotifyUrl(refundNotifyCallback);
multiQueryRequest.setVer("V1");
......
......@@ -19,7 +19,6 @@ import lombok.Data;
@Data
public class PayRefundResponse {
/**
* 支付退款状态
*/
......@@ -39,4 +38,9 @@ public class PayRefundResponse {
* 退款失败记录原因
*/
private String message;
/**
* 是否为部分退款订单
*/
private Boolean partRefund = false;
}
......@@ -112,6 +112,7 @@ public class PaymentHandle {
refundResponse = this.payRefund(req);
}
}
refundResponse.setPartRefund(!Objects.equals(orderBean.getSettlementAmount(), refundAmount.longValue()));
} catch (OrderServiceException orderEx) {
ResponseResult result = orderEx.getResult();
refundResponse = new PayRefundResponse();
......@@ -140,7 +141,7 @@ public class PaymentHandle {
public PayRefundResponse getCommonPayRefundResponse(OrderInfoReqs order, String reason) {
PayRefundResponse refundResponse;
try {
BigDecimal refundAmount = getRefundAmount(order.getPartnerId(), order.getActualPayAmount(), order.getOrderCode());
BigDecimal refundAmount = getRefundAmount(order.getPartnerId(), order.getSettlementAmount(), order.getOrderCode());
if (CollectionUtils.isNotEmpty(order.getOrderPayItemCreateReqList())) {
// payment/application/refund
refundResponse = this.multiRefund(order.getPartnerId(), order.getStoreId(), order.getOrderCode(), refundAmount);
......@@ -165,6 +166,7 @@ public class PaymentHandle {
refundResponse = this.payRefund(req);
}
}
refundResponse.setPartRefund(!Objects.equals(order.getSettlementAmount().compareTo(refundAmount), 0));
} catch (OrderServiceException orderEx) {
ResponseResult result = orderEx.getResult();
refundResponse = new PayRefundResponse();
......@@ -172,7 +174,8 @@ public class PaymentHandle {
refundResponse.setMessage(result.getMessage());
refundResponse.setResult(result);
return refundResponse;
} catch (Exception e) {
} catch (Throwable e) {
ErrorLog.errorConvertJson(this.getClass(), e.getMessage(), e);
refundResponse = new PayRefundResponse();
refundResponse.setPayRefundStatus(PayRefundStatus.COMPATIBILITY_STATUS);
refundResponse.setMessage("请稍后再试!");
......
......@@ -255,9 +255,13 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
saasOrderHandle.refundAgree(request, refundResponse, orderBean);
// 推送pos、微信消息中心
orderBaseService.sendMessage(orderBean, ORDER_AGREE_REFUND, request.getReason());
//todo 可以考虑基于订单回调异步实现
//冲正库存
stockHandle.revert(request, orderBean);
// 退款冲正发送消息队列(部分退款不进行冲正)
if (!refundResponse.getPartRefund()) {
// todo 可以考虑基于订单回调异步实现
stockHandle.revert(request, orderBean);
}
if (refundResponse.getPayRefundStatus().getCode().compareTo(PayRefundStatus.RUNNING.getCode()) == 0) {
return ResponseUtil.error(ResponseResult.REFUND_FAIL.getCode(), refundResponse.getMessage());
}
......@@ -273,7 +277,7 @@ public class SaasOrderMangerServiceImpl implements OrderManagerService {
*/
private PayRefundResponse payRefundCommon(OrderManagerRequest request, OrderBeanV1 orderBean) {
PayRefundResponse refundResponse = paymentHandle.getCommonPayRefundResponse(request, orderBean);
//同意退款退款失败记录到订单售后单
// 同意退款退款失败记录到订单售后单
if (orderBean.getAfterSalesOrderResp() != null && Objects.equals(PayRefundStatus.FAIL.getCode(), refundResponse.getPayRefundStatus().getCode())) {
AfterSalesRefundFailReq refundFailReq = this.getAfterSalesRefundFailReq(orderBean,
request.getOperator(),
......
......@@ -96,5 +96,5 @@ public class OrderCancelReq {
/**
* 是否部分退,默认否(全退)
*/
private boolean isPartRefund = false;
private Boolean isPartRefund = false;
}
//package cn.freemud.client;
//
//import cn.freemud.adapter.ActivityAdapter;
//import cn.freemud.amqp.Header;
//import cn.freemud.amqp.MQAction;
//import cn.freemud.amqp.MQMessage;
//import cn.freemud.amqp.MQService;
//import cn.freemud.entities.dto.ActivityCancelStockRequestDto;
//import cn.freemud.utils.FileUtil;
//import com.alibaba.fastjson.JSON;
//import com.freemud.application.sdk.api.log.ErrorLog;
//import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
//import org.junit.Test;
//import org.junit.runner.RunWith;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
//import org.springframework.cloud.openfeign.EnableFeignClients;
//import org.springframework.test.context.junit4.SpringRunner;
//
//import java.util.Arrays;
//
//@RunWith(SpringRunner.class)
//@SpringBootTest
//@EnableDiscoveryClient
//@EnableFeignClients
//@EnableAutoConfiguration
//public class MqTest {
// @Autowired
// private ActivityAdapter activityAdapter;
// @Value("${program.backorders_notify_activity_queue}")
// private String backOrdersNotifyActivityQueue;
// @Value("${program.backorders_notify_activity_exchange}")
// private String backOrdersNotifyActivityExchange;
// @Autowired
// private MQService mqService;
// @Test
// public void mqTest () {
// String fileName = "test";
// OrderBeanV1 orderBean = FileUtil.getObjectFromFile(fileName, OrderBeanV1.class);
// // 删除订单 通知活动添加商品库存
// ActivityCancelStockRequestDto activityCancelStockRequestDto = activityAdapter.convert2ActivityCancelStockRequestDto(
// orderBean, Arrays.asList(1,2,3));
// System.out.println(JSON.toJSONString(activityCancelStockRequestDto));
// try {
// Header header = new Header(MQAction.INSERT.getAction(), "backOrdersNotifyActivity", orderBean.getOid(), backOrdersNotifyActivityQueue);
// MQMessage<ActivityCancelStockRequestDto> message = new MQMessage<>(header, activityCancelStockRequestDto);
// mqService.convertAndSend(backOrdersNotifyActivityExchange, backOrdersNotifyActivityQueue, message);
// } catch (Exception e) {
// ErrorLog.errorConvertJson(this.getClass(),"ActivityReverse"+ JSON.toJSONString(activityCancelStockRequestDto),e);
// }
//
// }
//}
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