提交 801da533 authored 作者: hzh's avatar hzh

代码优化

上级 8b7ed8a0
...@@ -3,6 +3,8 @@ package org.dromara.order.api; ...@@ -3,6 +3,8 @@ package org.dromara.order.api;
import org.dromara.order.api.domain.OrderPay; import org.dromara.order.api.domain.OrderPay;
import org.dromara.order.api.domain.RemoteOrder; import org.dromara.order.api.domain.RemoteOrder;
import org.dromara.order.api.domain.RemoteSaveOrder; import org.dromara.order.api.domain.RemoteSaveOrder;
import org.dromara.order.api.enums.OrderType;
import org.dromara.order.api.enums.Source;
import java.util.List; import java.util.List;
...@@ -39,4 +41,14 @@ public interface RemoteOrderService { ...@@ -39,4 +41,14 @@ public interface RemoteOrderService {
*/ */
boolean autoUpdateOrGetCertificate(String serialNumber) throws Exception; boolean autoUpdateOrGetCertificate(String serialNumber) throws Exception;
/**
* 计算服务费
*
* @param source 来源
* @param orderType 订单类型
* @param feeList 费用列表
* @return 服务费
*/
RemoteSaveOrder.Fee calcServiceFee(Source source, OrderType orderType, List<RemoteSaveOrder.Fee> feeList);
} }
...@@ -19,6 +19,8 @@ import org.dromara.order.api.domain.OrderPay; ...@@ -19,6 +19,8 @@ import org.dromara.order.api.domain.OrderPay;
import org.dromara.order.api.domain.RemoteOrder; import org.dromara.order.api.domain.RemoteOrder;
import org.dromara.order.api.domain.RemoteSaveOrder; import org.dromara.order.api.domain.RemoteSaveOrder;
import org.dromara.order.api.enums.OrderStatus; import org.dromara.order.api.enums.OrderStatus;
import org.dromara.order.api.enums.OrderType;
import org.dromara.order.api.enums.Source;
import org.dromara.order.constant.WechatTradeState; import org.dromara.order.constant.WechatTradeState;
import org.dromara.order.domain.bo.OrderBo; import org.dromara.order.domain.bo.OrderBo;
import org.dromara.order.domain.bo.OrderFeeBo; import org.dromara.order.domain.bo.OrderFeeBo;
...@@ -176,4 +178,9 @@ public class RemoteOrderServiceImpl implements RemoteOrderService { ...@@ -176,4 +178,9 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
public boolean autoUpdateOrGetCertificate(String serialNumber) throws Exception { public boolean autoUpdateOrGetCertificate(String serialNumber) throws Exception {
return wxPayService.autoUpdateOrGetCertificate(serialNumber); return wxPayService.autoUpdateOrGetCertificate(serialNumber);
} }
@Override
public RemoteSaveOrder.Fee calcServiceFee(Source source, OrderType orderType, List<RemoteSaveOrder.Fee> feeList) {
return IOrderServiceFeeStrategy.calcServiceFee(source, orderType, feeList);
}
} }
...@@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor; ...@@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.order.api.domain.OrderPay; import org.dromara.order.api.domain.OrderPay;
import org.dromara.order.api.domain.RemoteOrder; import org.dromara.order.api.domain.RemoteOrder;
import org.dromara.order.api.domain.RemoteSaveOrder;
import org.dromara.order.api.enums.OrderType; import org.dromara.order.api.enums.OrderType;
import org.dromara.server.domain.vo.OrderPayVo; import org.dromara.server.domain.vo.OrderPayVo;
import org.dromara.server.domain.vo.OrderQueryVo; import org.dromara.server.domain.vo.OrderQueryVo;
...@@ -46,4 +47,16 @@ public class OrderController { ...@@ -46,4 +47,16 @@ public class OrderController {
return R.ok(service.queryList(vo.getOrderType(), vo.getOrderNoList())); return R.ok(service.queryList(vo.getOrderType(), vo.getOrderNoList()));
} }
/**
* 获取费用信息
* @param vo vo
* @return 费用列表
*/
@PostMapping("/calcFee")
public R<List<RemoteSaveOrder.Fee>> calcFee(@Validated @RequestBody OrderPayVo vo){
OrderType ot = OrderType.getEnum(vo.getOrderType());
return R.ok(service.calcFee(vo.getOrderNo(), ot));
}
} }
...@@ -2,6 +2,7 @@ package org.dromara.server.service; ...@@ -2,6 +2,7 @@ package org.dromara.server.service;
import org.dromara.order.api.domain.OrderPay; import org.dromara.order.api.domain.OrderPay;
import org.dromara.order.api.domain.RemoteOrder; import org.dromara.order.api.domain.RemoteOrder;
import org.dromara.order.api.domain.RemoteSaveOrder;
import org.dromara.order.api.enums.OrderType; import org.dromara.order.api.enums.OrderType;
import java.util.List; import java.util.List;
...@@ -30,4 +31,11 @@ public interface IPayOrderService { ...@@ -30,4 +31,11 @@ public interface IPayOrderService {
*/ */
List<RemoteOrder> queryList(String orderType, List<String> orderNoList); List<RemoteOrder> queryList(String orderType, List<String> orderNoList);
/**
* 计算费用
* @param orderNo 订单号
* @param ot 订单类型
* @return 费用列表
*/
List<RemoteSaveOrder.Fee> calcFee(String orderNo, OrderType ot);
} }
package org.dromara.server.service.impl; package org.dromara.server.service.impl;
import com.alibaba.nacos.common.utils.CollectionUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.order.api.RemoteOrderService; import org.dromara.order.api.RemoteOrderService;
...@@ -14,6 +15,7 @@ import org.dromara.server.service.IPayOrderService; ...@@ -14,6 +15,7 @@ import org.dromara.server.service.IPayOrderService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -45,4 +47,19 @@ public class PayOrderServiceImpl implements IPayOrderService { ...@@ -45,4 +47,19 @@ public class PayOrderServiceImpl implements IPayOrderService {
public List<RemoteOrder> queryList(String orderType, List<String> orderNoList) { public List<RemoteOrder> queryList(String orderType, List<String> orderNoList) {
return remoteOrderService.queryList(orderType, orderNoList); return remoteOrderService.queryList(orderType, orderNoList);
} }
@Override
public List<RemoteSaveOrder.Fee> calcFee(String orderNo, OrderType ot) {
RemoteSaveOrder order = IOrderStrategy.createOrder(orderNo, ot);
List<RemoteSaveOrder.Fee> feeList = order.getFeeList();
if (CollectionUtils.isEmpty(feeList)) {
return List.of();
}
RemoteSaveOrder.Fee fee = remoteOrderService.calcServiceFee(Source.YSH, ot, feeList);
if (fee != null) {
feeList = new ArrayList<>(feeList);
feeList.add(fee);
}
return feeList;
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论