feat: 添加汇率服务和缓存服务,优化数据源和日志服务

refactor: 重构数据源工厂和类型定义,提升代码可维护性

fix: 修复类型转换和状态机文档中的错误

docs: 更新服务架构文档,添加新的服务闭环流程

test: 添加汇率服务单元测试

chore: 清理无用代码和注释,优化代码结构
This commit is contained in:
2026-03-19 14:19:01 +08:00
parent 0dac26d781
commit aa2cf560c6
120 changed files with 33383 additions and 4347 deletions

View File

@@ -36,7 +36,7 @@ import {
EyeOutlined,
} from '@ant-design/icons';
import type { ColumnsType } from 'antd/es/table';
import { b2bTradeDataSource, BatchOrder, BatchOrderItem, Customer } from '@/services/b2bTradeDataSource';
import { b2bTradeDataSource, BatchOrder as BatchOrderType, BatchOrderItem, Customer } from '@/services/b2bTradeDataSource';
const { Option } = Select;
const { TextArea } = Input;
@@ -56,16 +56,16 @@ const ITEM_STATUS_MAP: Record<string, { color: string; text: string }> = {
PENDING: { color: 'warning', text: 'Pending' },
};
export const BatchOrder: React.FC = () => {
export const B2BTradeBatchOrder: React.FC = () => {
const [form] = Form.useForm();
const [loading, setLoading] = useState(false);
const [batchOrders, setBatchOrders] = useState<BatchOrder[]>([]);
const [batchOrders, setBatchOrders] = useState<BatchOrderType[]>([]);
const [customers, setCustomers] = useState<Customer[]>([]);
const [orderItems, setOrderItems] = useState<BatchOrderItem[]>([]);
const [currentStep, setCurrentStep] = useState(0);
const [createModalVisible, setCreateModalVisible] = useState(false);
const [detailModalVisible, setDetailModalVisible] = useState(false);
const [selectedBatch, setSelectedBatch] = useState<BatchOrder | null>(null);
const [selectedBatch, setSelectedBatch] = useState<BatchOrderType | null>(null);
const [selectedCustomer, setSelectedCustomer] = useState<Customer | null>(null);
const [fileList, setFileList] = useState<any[]>([]);
const [stats, setStats] = useState({
@@ -103,7 +103,7 @@ export const BatchOrder: React.FC = () => {
}
};
const calculateStats = (orders: BatchOrder[]) => {
const calculateStats = (orders: BatchOrderType[]) => {
setStats({
total: orders.length,
pending: orders.filter((o) => o.status === 'PENDING_REVIEW').length,
@@ -178,7 +178,7 @@ export const BatchOrder: React.FC = () => {
}
};
const handleViewDetail = (batch: BatchOrder) => {
const handleViewDetail = (batch: BatchOrderType) => {
setSelectedBatch(batch);
setDetailModalVisible(true);
};
@@ -246,7 +246,7 @@ export const BatchOrder: React.FC = () => {
},
];
const batchColumns: ColumnsType<BatchOrder> = [
const batchColumns: ColumnsType<BatchOrderType> = [
{
title: 'Batch ID',
dataIndex: 'batchId',
@@ -608,4 +608,4 @@ export const BatchOrder: React.FC = () => {
);
};
export default BatchOrder;
export default B2BTradeBatchOrder;