UNPKG

ant-g

Version:

antDesignPro辅助代码生成器

145 lines (126 loc) 5.32 kB
import { Request, Response } from 'express'; import { parse } from 'url'; import { <%=camelTableNameUF%>Item, <%=camelTableNameUF%>ListParams } from '../src/services/<%=camelTableName%>.d'; import { isInNumberArray } from '../src/utils/Wk/tools' let <%=camelTableName%>ListDataSource: <%=camelTableNameUF%>Item[] = []; for (let i = 1; i < 30; i += 1) { <%=camelTableName%>ListDataSource.push({ <% for(let j=0;j<fields.length;j++){ %><%=fields[j].camelColumnName%>: <%if(fields[j].jsType==='string'){%>`<%-fields[j].camelColumnName%>-${i}`<%}else{%><%-fields[j].defaultValue%><%}%>, <%_ } %> }); <%=camelTableName%>ListDataSource[i - 1].<%=primaryKey%> = i; } function query<%=camelTableNameUF%>ById(req: Request, res: Response) { const <%=primaryKey%>:number = Number(req.query.<%=primaryKey%>) const result:<%=camelTableNameUF%>Item = <%=camelTableName%>ListDataSource.filter( item => item.<%=primaryKey%> === <%=primaryKey%>)[0]; setTimeout(() => res.json(result), 1000); } function update<%=camelTableNameUF%>(req: Request, res: Response) { const newItem:<%=camelTableNameUF%>Item = <<%=camelTableNameUF%>Item>req.body; if (!newItem.<%=primaryKey%> || newItem.<%=primaryKey%> === 0) { let maxSgId:number = 0; <%=camelTableName%>ListDataSource.forEach(v => { if (v.<%=primaryKey%> > maxSgId) { maxSgId = v.<%=primaryKey%>; } }); newItem.<%=primaryKey%> = maxSgId + 1; <%=camelTableName%>ListDataSource.push(newItem); } else { if (newItem.<%=primaryKey%> === 3) { return res.status(500).json({ status: 500, error: 'Bad Request', message: '参数无效', code: 30101, path: '/result/exception', exception: 'com.wukong.core.exceptions.BusinessException', errors: { name: '长度需要在6和50之间', email: '不是一个合法的电子邮件地址', }, timestamp: '2018-05-31T09:41:16.461+0000', }); } for (let i:number = 0; i < <%=camelTableName%>ListDataSource.length; i += 1) { if (<%=camelTableName%>ListDataSource[i].<%=primaryKey%> === newItem.<%=primaryKey%>) { <%=camelTableName%>ListDataSource[i] = { ...<%=camelTableName%>ListDataSource[i], ...newItem, }; break; } } } return res.json(newItem.<%=primaryKey%>); } function query<%=camelTableNameUF%>(req: Request, res: Response, u: string) { let url = u; if (!url || Object.prototype.toString.call(url) !== '[object String]') { // eslint-disable-next-line prefer-destructuring url = req.url; } let dataSource = <%=camelTableName%>ListDataSource.concat(); const params = (parse(url, true).query as unknown) as <%=camelTableNameUF%>ListParams; if (params.sorter) { const s = params.sorter.split('_'); dataSource = dataSource.sort((prev, next) => { if (s[1] === 'descend') { return next[s[0]] - prev[s[0]]; } return prev[s[0]] - next[s[0]]; }); } const whereKeyArr = [<% for(let j=0;j<fields.length;j++){ %>'<%=fields[j].camelColumnName%>'<% if (fields.length !== j+1){ %>, <%}%> <%_}%>]; const paramsKeyArr = Object.keys(params); // console.log(params) for (let i = 0; i < paramsKeyArr.length; i += 1) { const key = paramsKeyArr[i]; if (whereKeyArr.indexOf(key) !== -1) { dataSource = dataSource.filter((data:any) => { if ((typeof data[key]) === 'number') { if ((typeof params[key]) === 'string' && params[key] === '') { return true; } return data[key] === Number(params[key]); } if ((typeof data[key]) === 'string') { return data[key].indexOf(params[key]) > -1; } return false; }) } } let pageSize = 10; if (params.pageSize) { pageSize = parseInt(`${params.pageSize}`, 0); } const result = { list: dataSource, pagination: { total: dataSource.length, pageSize, current: parseInt(`${params.currentPage}`, 10) || 1, }, }; return res.json(result); } function deleteOne<%=camelTableNameUF%>(req: Request, res: Response) { const { <%=primaryKey%> } = req.body; <%=camelTableName%>ListDataSource = <%=camelTableName%>ListDataSource.filter(item => <%=primaryKey%> !== item.<%=primaryKey%>); return res.json(1); } function deleteMany<%=camelTableNameUF%>(req: Request, res: Response) { const { <%=primaryKey%>s } = req.body; <%=camelTableName%>ListDataSource = <%=camelTableName%>ListDataSource.filter( item => !isInNumberArray(<%=primaryKey%>s, item.<%=primaryKey%>)); return res.json(1); } export default { 'GET <%=apiBasePath%>query<%=camelTableNameUF%>ById': query<%=camelTableNameUF%>ById, 'GET <%=apiBasePath%>query<%=camelTableNameUF%>': query<%=camelTableNameUF%>, 'POST <%=apiBasePath%>deleteOne<%=camelTableNameUF%>': deleteOne<%=camelTableNameUF%>, 'POST <%=apiBasePath%>deleteMany<%=camelTableNameUF%>': deleteMany<%=camelTableNameUF%>, 'POST <%=apiBasePath%>update<%=camelTableNameUF%>': update<%=camelTableNameUF%>, };