fix(ai-pick): complete quote handling and component organization

This commit is contained in:
clz
2026-07-27 20:53:52 +08:00
parent 0e5a82c518
commit da66f7233d
2 changed files with 150 additions and 108 deletions
@@ -1,21 +1,31 @@
import { AbsRowData, RowData, TableData } from '@b2b/hq_table';
import { TableRequestClient } from '@b2c/lib_baseui';
import { TableConstants, TableRequestClient } from '@b2c/lib_baseui';
import { RequestHelper, StuffTableStruct } from '@kernel/lib_communication';
import {
QuoteCustomSettingManager,
StandardPriceType,
StandardPriceTypeHelper,
applyStandardPriceToTableData,
} from 'biz_quote';
import {
CardData,
PickContractItem,
PickTabData,
} from '../../ai-pick/AiPickModels';
import { getUniqueContracts } from '../../ai-pick/AiPickUtils';
import { TableConstants } from '../../market-ranking/TableConstants';
const FRAME_ID = 2201;
const PAGE_ID = 4106;
const FIELD_IDS: number[] = [
TableConstants.DATA_ID_CODE_4,
TableConstants.DATA_ID_PRICE,
TableConstants.DATA_ID_ZF,
TableConstants.DATA_ID_ZD,
TableConstants.DATA_ID_MARKET,
TableConstants.DATA_ID_ZF_YTD,
TableConstants.DATA_ID_MARKET_OLD,
StandardPriceTypeHelper.FIELD_ZUO_SHOU,
StandardPriceTypeHelper.FIELD_JIN_KAI,
StandardPriceTypeHelper.FIELD_ZUO_JIE,
];
interface AiPickQuote {
@@ -48,7 +58,8 @@ class AiPickTableRequestClient extends TableRequestClient {
RequestHelper.build().base(this.frameId, this.pageId, this, this.requestParams).request();
}
protected afterParserModel(tableData: TableData, _structData: StuffTableStruct): void {
protected afterParserModel(tableData: TableData, structData: StuffTableStruct): void {
applyStandardPriceToTableData(tableData, structData, FIELD_IDS);
const quoteMap: Map<string, AiPickQuote> = this.toQuoteMap(tableData);
const nextCardData: CardData = this.mergeQuoteData(quoteMap);
this.sourceCardData = nextCardData;
@@ -71,7 +82,7 @@ class AiPickTableRequestClient extends TableRequestClient {
}
const quote: AiPickQuote = {
price: this.getNumber(row, TableConstants.DATA_ID_PRICE),
priceChg: this.getNumber(row, TableConstants.DATA_ID_ZF_YTD),
priceChg: this.getNumber(row, TableConstants.DATA_ID_ZF),
};
quoteMap.set(`${codeValue}_${marketValue}`, quote);
});
@@ -148,12 +159,15 @@ export class AiPickHqRequestClient {
}
private buildRequestParams(contracts: PickContractItem[]): string {
const computeMode: StandardPriceType =
QuoteCustomSettingManager.getInstance().getStandardPriceType();
return `\r\nsortid=-1\r\n` +
`sortorder=0\r\n` +
`push=1\r\n` +
`dataitem=${FIELD_IDS.map((fieldId: number): string => `${fieldId},`).join('')}\r\n` +
`codelist=${this.formatCodeList(contracts)}\r\n` +
`update=1\r\n` +
`computemode=${computeMode}\r\n` +
`scenario=qht_qihuo_sort\r\n` +
`precision=1\r\n` +
`pushtime=2.5\r\n`;