From 68999a26d91d53446bb194cb82b74545cfeb94e9 Mon Sep 17 00:00:00 2001 From: Ethan Shen Date: Sat, 17 Jul 2021 16:57:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(route):=20add=20=E6=B7=B1=E5=9C=B3?= =?UTF-8?q?=E8=AF=81=E5=88=B8=E4=BA=A4=E6=98=93=E6=89=80=E5=88=9B=E4=B8=9A?= =?UTF-8?q?=E6=9D=BF=E5=8F=91=E8=A1=8C=E4=B8=8A=E5=B8=82=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=85=AC=E5=BC=80=E7=BD=91=E7=AB=99=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=8A=A8=E6=80=81=20(#7870)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/other.md | 40 ++++++++++++ lib/router.js | 1 + lib/routes/szse/projectdynamic.js | 104 ++++++++++++++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 lib/routes/szse/projectdynamic.js diff --git a/docs/other.md b/docs/other.md index 271e86d16..babd3206e 100644 --- a/docs/other.md +++ b/docs/other.md @@ -728,6 +728,46 @@ type 为 all 时,category 参数不支持 cost 和 free +### 创业板项目动态 + + + +类型 + +| IPO | 再融资 | 重大资产重组 | +| --- | ------ | ------------ | +| 1 | 2 | 3 | + +阶段 + +| 全部 | 受理 | 问询 | 上市委会议 | +| ---- | ---- | ---- | ---------- | +| 0 | 10 | 20 | 30 | + +| 提交注册 | 注册结果 | 中止 | 终止 | +| -------- | -------- | ---- | ---- | +| 35 | 40 | 50 | 60 | + +状态 + +| 全部 | 新受理 | 已问询 | 通过 | 未通过 | +| ---- | ------ | ------ | ---- | ------ | +| 0 | 20 | 30 | 45 | 44 | + +| 暂缓审议 | 复审通过 | 复审不通过 | 提交注册 | +| -------- | -------- | ---------- | -------- | +| 46 | 56 | 54 | 60 | + +| 注册生效 | 不予注册 | 补充审核 | 终止注册 | +| -------- | -------- | -------- | -------- | +| 70 | 74 | 78 | 76 | + +| 中止 | 审核不通过 | 撤回 | +| ---- | ---------- | ---- | +| 80 | 90 | 95 | + + + ## 守望先锋 ### 补丁说明 diff --git a/lib/router.js b/lib/router.js index 9c951e7b9..699caa11a 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2163,6 +2163,7 @@ router.get('/sse/disclosure/:query?', require('./routes/sse/disclosure')); router.get('/szse/notice', require('./routes/szse/notice')); router.get('/szse/inquire/:type', require('./routes/szse/inquire')); router.get('/szse/rule', require('./routes/szse/rule')); +router.get('/szse/projectdynamic/:type?/:stage?/:status?', require('./routes/szse/projectdynamic')); // 前端艺术家每日整理&&飞冰早报 router.get('/jskou/:type?', require('./routes/jskou/index')); diff --git a/lib/routes/szse/projectdynamic.js b/lib/routes/szse/projectdynamic.js new file mode 100644 index 000000000..9c734f579 --- /dev/null +++ b/lib/routes/szse/projectdynamic.js @@ -0,0 +1,104 @@ +const got = require('@/utils/got'); +const { parseDate } = require('@/utils/parse-date'); + +module.exports = async (ctx) => { + const typeMap = { + 1: 'IPO', + 2: '再融资', + 3: '重大资产重组', + }; + + const stageMap = { + 10: '受理', + 20: '问询', + 30: '上市委会议', + 35: '提交注册', + 40: '注册结果', + 50: '中止', + 60: '终止', + }; + + const statusMap = { + 20: '新受理', + 30: '已问询', + 45: '通过', + 44: '未通过', + 46: '暂缓审议', + 56: '复审通过', + 54: '复审不通过', + 60: '提交注册', + 70: '注册生效', + 74: '不予注册', + 78: '补充审核', + 76: '终止注册', + 80: '中止', + 90: '审核不通过', + 95: '撤回', + }; + + const type = ctx.params.type || '1'; + const stage = ctx.params.stage || '0'; + const status = ctx.params.status || '0'; + + const rootUrl = 'http://listing.szse.cn'; + const apiUrl = `${rootUrl}/api/ras/projectrends/query?bizType=${type}${stage === '0' ? '' : `&stage=${stage}`}${status === '0' ? '' : `&status=${status}`}&pageIndex=0&pageSize=20`; + + const response = await got({ + method: 'get', + url: apiUrl, + }); + + const list = response.data.data.map((item) => ({ + title: item.prjid, + link: `${rootUrl}/api/ras/projectrends/details?id=${item.prjid}`, + })); + + const items = await Promise.all( + list.map( + async (item) => + await ctx.cache.tryGet(item.link, async () => { + const detailResponse = await got({ + method: 'get', + url: item.link, + }); + + const data = detailResponse.data.data; + const current = JSON.parse(data.pjdot)['-1']; + + item.link = `${rootUrl}/projectdynamic/ipo/detail/index.html?id=${item.title}`; + item.title = `[${data.prjst}] ${data.cmpnm} (${data.cmpsnm})- ${data.csrcind}`; + + item.description = + `

${data.cmpnm}

${current.startTime} ${current.name}

项目基本信息

` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `` + + `
公司全称${data.cmpnm}公司简称${data.cmpsnm}
受理日期${data.acptdt}更新日期${data.updtdt}
审核状态${data.prjst}预计融资金额(亿元)${data.maramt}
保荐机构${data.sprinst}保荐代表人${data.sprrep}
会计师事务所${data.acctfm}签字会计师${data.acctsgnt}
律师事务所${data.lawfm}签字律师${data.lglsgnt}
评估机构${data.evalinst}签字评估师${data.evalsgnt}
最近一期审计基准日${data.lastestAuditEndDate}
`; + + item.pubDate = parseDate(current.startTime, 'YYYY-MM-DD HH:mm:ss'); + + return item; + }) + ) + ); + + ctx.state.data = { + title: `${typeMap[type]}项目动态${status !== '0' ? ` (${statusMap[status]}) ` : stage !== '0' ? ` (${stageMap[stage]}) ` : ''} - 创业板发行上市审核信息公开网站 - 深圳证券交易所`, + link: `${rootUrl}/projectdynamic/${type}/index.html`, + item: items, + }; +};