ant-g
Version:
antDesignPro辅助代码生成器
145 lines (126 loc) • 5.32 kB
Plain Text
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%>,
};