import { configs } from '../../auction/config'; import { fileUtils } from '../../file/file-utils'; import { BaseDTO } from '../base/BaseDTO'; export class SpecialAuctionMetaDTO extends BaseDTO { title: string = ''; keywords: string = ''; pic: string = ''; url: string = ''; desc: string = ''; specialCode: string = 'PZ2057111'; name: string = ''; searchMessage: string = ''; status: number = 0; special_name: string = '瓷器及古董珍玩集萃(瓷器)'; session_name: string = '中国嘉德2022秋季拍卖会'; sessionCode: string = 'PMH214514'; organ_name: string = '中国嘉德'; organCode: string = 'JG0005'; predate: string = '2022年12月9日-27日'; preview_place: string = '嘉德艺术中心 (北京市东城区王府井大街1号)'; auction_date: string = '2022-12-26 10:00'; auction_place: string = '嘉德艺术中心A厅(北京市东城区王府井大街1号)'; total_price: string = 'RMB 2,162.00万'; ratio: string = '72.92%'; total: string = '192 件'; city: string = '北京'; private get output(): string { return configs.output.lastIndexOf(configs.separator) === configs.output.length - 1 ? configs.output : configs.output + configs.separator; } public get dir(): string { return `${this.output}${this.organ_name}${configs.separator}${this.session_name}${configs.separator}${this.special_name}${configs.separator}`; } public get totalCount(): number { if (!this.total) return 0; if (this.total.indexOf(' ') === -1) return 0; return parseInt(this.total.split(' ')[0]); } public mkdir() { if (!fileUtils.isExist(this.output)) { fileUtils.mkdir(this.output); } const organDir = `${this.output}${this.organ_name}${configs.separator}`; if (!fileUtils.isExist(organDir)) { fileUtils.mkdir(organDir); } const sessionDir = `${organDir}${this.session_name}${configs.separator}`; if (!fileUtils.isExist(sessionDir)) { fileUtils.mkdir(sessionDir); } const specialDir = `${sessionDir}${this.special_name}${configs.separator}`; if (!fileUtils.isExist(specialDir)) { fileUtils.mkdir(specialDir); } } static createWithMeta(json: any): SpecialAuctionMetaDTO { const data = new SpecialAuctionMetaDTO(); const meta = json.mate; data.title = meta.title; data.keywords = meta.keywords; data.pic = meta.pic; data.url = meta.url; data.desc = meta.desc; const pageSpecialDetail = json.pageSpecialDetail.data; data.specialCode = pageSpecialDetail.specialCode; data.name = pageSpecialDetail.name; data.searchMessage = pageSpecialDetail.searchMessage; data.status = pageSpecialDetail.status; data.city = pageSpecialDetail.city; const detailExtraInfo = pageSpecialDetail.detailExtraInfo; detailExtraInfo.forEach((item: any) => { if (item.name === 'special_name') data.special_name = item.text; if (item.name === 'session_name') { data.session_name = item.text; data.sessionCode = item.sessionCode; } if (item.name === 'organ_name') { data.organ_name = item.text; } if (item.name === 'predate') data.predate = item.text; if (item.name === 'preview_place') data.preview_place = item.text; if (item.name === 'auction_date') data.auction_date = item.text; if (item.name === 'auction_place') data.auction_place = item.text; if (item.name === 'total_price') data.total_price = item.text; if (item.name === 'ratio') data.ratio = item.text; if (item.name === 'total') data.total = item.text; }); return data; } }