Commit 51c1eaba by 胡敬轩

Merge remote-tracking branch 'remotes/origin/bugfix/多卡支付余额为0支付方式错误' into pre

parents 5abeff53 2adf13e8
...@@ -16,6 +16,7 @@ import com.freemud.application.sdk.api.ordercenter.entities.v1.*; ...@@ -16,6 +16,7 @@ import com.freemud.application.sdk.api.ordercenter.entities.v1.*;
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.OrderSourceV1; import com.freemud.application.sdk.api.ordercenter.enums.orderv1.OrderSourceV1;
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.enums.orderv1.RefundStatusV1;
import com.freemud.application.sdk.api.ordercenter.request.*; import com.freemud.application.sdk.api.ordercenter.request.*;
import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest; import com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest;
import com.freemud.application.sdk.api.ordercenter.request.create.*; import com.freemud.application.sdk.api.ordercenter.request.create.*;
...@@ -190,7 +191,25 @@ public class OrderSdkAdapter { ...@@ -190,7 +191,25 @@ public class OrderSdkAdapter {
var1.setOrderClient(orderBean.getOrderClient()); var1.setOrderClient(orderBean.getOrderClient());
if (orderBean.getRefundList() != null && orderBean.getRefundList().size() != 0) { if (orderBean.getRefundList() != null && orderBean.getRefundList().size() != 0) {
//新订单服务需要售后单code //新订单服务需要售后单code
var1.setAfterSalesCode(orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getRid()); // var1.setAfterSalesCode(orderBean.getRefundList().get(orderBean.getRefundList().size() - 1).getRid());
// fisherman 按时间排序 拿最后一个
List<RefundBeanV1> refundList = orderBean.getRefundList();
Collections.sort(refundList, new Comparator<RefundBeanV1>() {
@Override
public int compare(RefundBeanV1 o1, RefundBeanV1 o2) {
Long aLong = Long.valueOf(o1.getCreateTime());
Long bLong = Long.valueOf(o2.getCreateTime());
if (bLong > aLong) {
return 1;
}else if (bLong<aLong){
return -1;
}else {
return 0;
}
}
});
var1.setAfterSalesCode(refundList.get(0).getRid());
} }
return var1; return var1;
} }
......
package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.OrderDevelopRefundVo;
import cn.freemud.entities.vo.OrderRefundVo;
import cn.freemud.service.Orderservice;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/4/30 14:55
* @description : 针对开发人员开放的接口操作, 不暴露给外部人员
*/
@RequestMapping("/order/develop")
@RestController
public class OrderDeveloperController {
@Autowired
private Orderservice orderservice;
/**
* 订单内部人员操作 给订单退款, 使用该接口需要报备
* 1.生成售后单
* 2.直接调用oms进行退款处理
*/
@ApiAnnotation(logMessage = "/order/develop/refund")
@PostMapping("/refund")
public BaseResponse developRefund(@Validated @LogParams @RequestBody OrderDevelopRefundVo orderRefundVo) {
return orderservice.developRefund(orderRefundVo);
}
}
package cn.freemud.entities.vo;
import com.freemud.application.sdk.api.ordercenter.enums.RefundModeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2022/4/30 15:03
* @description :
*/
@Data
public class OrderDevelopRefundVo {
/**
* 订单号
*/
private List<String> orderCodes;
private String partnerId;
/**
* 退款理由
*/
private String reason;
/**
* 操作人,需要记录操作人
*/
@NotBlank(message = "请真实填写调动该接口的操作人")
private String operator;
/**
* 微商城退款方式
*
* @see RefundModeEnum#getIndex()
*/
@ApiModelProperty(value = "微商城退款方式", notes = RefundModeEnum.API_DOC)
private Byte refundMode;
}
...@@ -219,4 +219,11 @@ public interface Orderservice extends OrderFactoryService{ ...@@ -219,4 +219,11 @@ public interface Orderservice extends OrderFactoryService{
* @return * @return
*/ */
BaseResponse couponOrderRefundRetry(OrderRefundRetryVo orderRefundRetryVo); BaseResponse couponOrderRefundRetry(OrderRefundRetryVo orderRefundRetryVo);
/**
* 开发人员 操作退款订单 该接口 生产使用请通知SE
* @param orderRefundVo
* @return
*/
BaseResponse developRefund(OrderDevelopRefundVo orderRefundVo);
} }
...@@ -1636,7 +1636,7 @@ public class PayServiceImpl { ...@@ -1636,7 +1636,7 @@ public class PayServiceImpl {
orderPayResponse.setPayOrder(payBean); orderPayResponse.setPayOrder(payBean);
} }
} }
if (!allCardPay) { if (!allCardPay && payPlatforms.size() > 1) {
orderPayResponse.setPayChannelType(PayChannelType.COMB); orderPayResponse.setPayChannelType(PayChannelType.COMB);
} }
//现金线上支付 //现金线上支付
......
...@@ -13,7 +13,12 @@ public enum OperateType { ...@@ -13,7 +13,12 @@ public enum OperateType {
ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"), ORDER_REJECT_REFUND("orderRejectRefund","拒绝退款"),
ORDER_CANCEL("orderCancel","订单取消"), ORDER_CANCEL("orderCancel","订单取消"),
ORDER_CREATE_DELIVERY("orderCreateDelivery","创建配送"), ORDER_CREATE_DELIVERY("orderCreateDelivery","创建配送"),
ORDER_CANCEL_DELIVERY("orderCancelDelivery","取消配送"); ORDER_CANCEL_DELIVERY("orderCancelDelivery","取消配送"),
/**
* 该操作无校验, 直接退款, 如果使用 请联系SE 进行报备,
* 该类型不给外部人员使用, 不对外部暴露接口
*/
ORDER_DEVELOPER_AGREE_REFUND("orderDeveloperAgreeRefund","售后人员同意退款");
/** /**
* 操作类型 * 操作类型
......
...@@ -353,4 +353,22 @@ public class OrderManagerAdapter { ...@@ -353,4 +353,22 @@ public class OrderManagerAdapter {
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCancelDelivery(request, orderBean); BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderCancelDelivery(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse); return handleResponse(request,orderBean,orderManagerResponse);
} }
/**
* @see OrderManagerAdapter#orderAgreeRefund(cn.freemud.management.entities.dto.request.order.OrderManagerRequest)
* @param request
* @return 改操作 无需校验订单参数 直接退款
* 使用该方法 请先进行报备, 因为不暴露给外部使用, 不属于业务代码
*/
public BaseResponse developRefund(OrderManagerRequest request) {
//查询订单
OrderBeanV1 orderBean = orderBaseService.getByOrderCode(request.getOrderId());
if (null == orderBean) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
// 设置退款金额
orderBean.setAmount(orderVerifyHandle.getRefundAmount(orderBean,false).longValue());
BaseResponse<OrderManagerResponse> orderManagerResponse = orderBeanFactory.getOrderManagerService(orderBean).orderAgreeRefund(request, orderBean);
return handleResponse(request,orderBean,orderManagerResponse);
}
} }
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