Commit fd700930 by chenjinjing

管理后台

parent a1905e37
<config>
<port>40021</port>
<dbServer>http://127.0.0.1:13275</dbServer>
<mysqldb>
<!-- 本地mysql配置 -->
<!-- <mysqlHost>192.168.0.71</mysqlHost>
<mysqlPort>3306</mysqlPort>
<mysqlUser>root</mysqlUser>
<mysqlPwd>123456</mysqlPwd>
<dataBase>tangqiao</dataBase> -->
<!-- 服务器mysql配置 -->
<mysqlHost>127.0.0.1</mysqlHost>
<mysqlPort>3306</mysqlPort>
<mysqlUser>root</mysqlUser>
<mysqlPwd>qaz123456</mysqlPwd>
<dataBase>tangqiao</dataBase>
</mysqldb>
<qw>
<url>https://ls.sunyah.com/API/SanLin/SanLin_QueryPost.ashx?appid=98092D9C-0161-4181-9522-8548A9B14BC8</url>
<!-- <url>https://ls.sunyah.com/API/SanLin/SanLin_QueryPost.ashx?appid=98092D9C-0161-4181-9522-8548A9B14BC8</url> -->
<url>https://jiuye.pudong.gov.cn:5443/API/SanLin/SanLin_QueryPost.ashx?appid=98092D9C-0161-4181-9522-8548A9B14BC8</url>
<page>1</page>
<size>200</size>
</qw>
</config>
\ No newline at end of file
import { TABLENAME } from "../config/dbEnum";
import { selectDataCountByParam, selectDataListByParam, selectDataListToPageByParam, selectOneDataByParam } from "../data/findData";
import { changeEnumValue } from "../tools/eccEnum";
import { BizError } from "../util/bizError";
import { ERRORENUM } from "../config/errorEnum";
import moment = require("moment");
import { EDUCATION, SEX } from "../config/enum";
import { addData } from "../data/addData";
import { delData } from "../data/delData";
/**
* 登录
* @param username
* @param password
*/
export async function login(username, password) {
let findUserData = await selectOneDataByParam(TABLENAME.超级管理员表, {username, password}, []);
let findUser = findUserData.data;
if (!findUser || !findUser.username) throw new BizError(ERRORENUM.账号或密码错误);
if (findUser.password != password ) throw new BizError(ERRORENUM.账号或密码错误);
let dataInfo = {
username: findUser.username,
realName: findUser.real_name,
phone: findUser.phone,
sex: findUser.sex,
mail: findUser.mail,
remark: findUser.remark
};
return dataInfo;
}
/**
* 添加求职信息
* @param name
* @param phone
* @param card
* @param jobPositions
*/
export async function addJobInfo(name, sex, phone, card, education, jobPositions) {
let addcyParam:any = {
name,
sex,
phone,
card,
education,
job_positions:jobPositions,
create_time:moment(new Date()).format("YYYY-MM-DD HH:mm:ss")
};
await addData(TABLENAME.求职信息表, addcyParam);
return {isSuccess:true};
}
/**
* 获取用户列表
* @param name
* @param phone
* @param card
* @param createStartTime
* @param createEndTime
* @param jobPositions
* @returns
*/
export async function getJobList(name, phone, card, createStartTime, createEndTime, jobPositions, current) {
let selectParam = {};
if (name) selectParam["name"] = {"%like%": name};
if (phone) selectParam["phone"] = phone;
if (card) selectParam["card"] = card;
if (createStartTime && createEndTime) selectParam["create_time"] = {"%between%":[createStartTime, createEndTime]};
if (jobPositions) selectParam["job_positions"] = {"%like%": jobPositions};
let findData = await selectDataListToPageByParam(TABLENAME.求职信息表, selectParam, [], current, 10);
let dataCount = await selectDataCountByParam(TABLENAME.求职信息表, selectParam);
let dataList = [];
for (let i = 0; i < findData.data.length; i++) {
let info = findData.data[i];
let {jobId, name, sex, phone, card, education, job_positions, create_time} = info;
dataList.push({
jobId,
name,
sex: changeEnumValue(SEX, parseInt(sex)),
phone,
card,
education: changeEnumValue(EDUCATION, parseInt(education)),
job_positions,
create_time
})
}
return {dataList, dataCount:dataCount.data};
}
/**
* 删除求职信息
* @param name
* @param phone
* @param card
* @param jobPositions
*/
export async function delJobInfo(jobId) {
let findUserData = await selectOneDataByParam(TABLENAME.求职信息表, {jobId}, []);
let findUser = findUserData.data;
if (!findUser || !findUser.jobId) throw new BizError(ERRORENUM.暂无对应数据);
await delData(TABLENAME.求职信息表, {jobId});
return {isSuccess:true};
}
/**
* 数据导出
* @param card
* @param createStartTime
* @param createEndTime
* @param area
* @param current
* @returns
*/
export async function outPutData(name, phone, card, createStartTime, createEndTime, jobPositions) {
let selectParam = {};
if (name) selectParam["name"] = {"%like%": name};
if (phone) selectParam["phone"] = phone;
if (card) selectParam["card"] = card;
if (createStartTime && createEndTime) selectParam["create_time"] = {"%between%":[createStartTime, createEndTime]};
if (jobPositions) selectParam["job_positions"] = {"%like%": jobPositions};
let findData = await selectDataListByParam(TABLENAME.求职信息表, selectParam, []);
let dataTitle = ["姓名", "性别", "联系方式", "身份证号", "学历", "求职岗位", "提交时间"];
let dataList = [dataTitle];
findData.data.forEach( info => {
let {jobId, name, phone, card, job_positions, create_time} = info;
let createTime = moment(create_time).format("YYYY-MM-DD HH:mm:ss");
let sex = changeEnumValue(SEX, parseInt(info.sex));
let education = changeEnumValue(EDUCATION, parseInt(info.education));
let subList = [
// jobId,
name,
sex,
phone,
card,
education,
job_positions,
createTime
];
dataList.push(subList);
})
return dataList;
}
/**
* 请求数据中心类型
*/
export enum OPERATIONALDATATYPE {
增加 = '/puxin/dataserver/mysql/table/add',
修改 = '/puxin/dataserver/mysql/table/update',
删除 = '/puxin/dataserver/mysql/table/delete',
查询单个 = '/puxin/dataserver/mysql/table/find/one',
查询多个 = '/puxin/dataserver/mysql/table/find/many',
分页查询 = '/puxin/dataserver/mysql/table/find/manytopage',
查询数据量 = '/puxin/dataserver/mysql/table/find/count',
多表联查 = '/puxin/dataserver/mysql/table/find/aggragate',
多表分页 = '/puxin/dataserver/mysql/table/find/aggragatetopage',
多表单个 = '/puxin/dataserver/mysql/table/find/aggragateone'
}
/**
* 表名
*/
export enum TABLENAME {
求职信息表 = 'jobinfo',
超级管理员表 = 'sys_user',
}
......@@ -27,6 +27,22 @@ export enum FILETYPE {
}
export enum SEX {
= 1,
}
export enum EDUCATION {
初中 = 1,
中专,
大专,
本科,
硕士,
博士
}
......
......@@ -6,7 +6,9 @@ export enum ERRORENUM {
参数错误,
地址数据不完整,
请完善信息,
接口数据获取失败
接口数据获取失败,
不存在表,
账号或密码错误
}
......
import { table } from "console";
import { Association } from "sequelize";
const { Sequelize, DataTypes } = require('sequelize');
export const TablesConfig = [
{
tableNameCn:'求职信息表',
tableName:'jobinfo',
schema:{
jobId: {
type:DataTypes.INTEGER(11), //表示属性的数据类型
allowNull:false, //表示当前列是否允许为空, false表示该列不能为空
primaryKey:true, //表示主键
unique:true, //表示该列的值必须唯一
autoIncrement:true //设置为主键并自增
},
name: {type:DataTypes.STRING(255)}, //姓名
sex:{type:DataTypes.STRING(255)}, //性别
phone: {type:DataTypes.STRING(255)}, //联系电话
card:{type:DataTypes.STRING(255)},//身份证号
education: {type:DataTypes.STRING(255)}, //最高学历
job_positions: {type:DataTypes.STRING(255)}, //求职岗位
create_time: {type:DataTypes.DATE,allowNull:false}, //创建时间
},
association: [
]
},
{
tableNameCn:'管理员表',
tableName:'sys_user',
schema:{
id: {
type:DataTypes.INTEGER(11), //表示属性的数据类型
allowNull:false, //表示当前列是否允许为空, false表示该列不能为空
primaryKey:true, //表示主键
unique:true, //表示该列的值必须唯一
autoIncrement:true //设置为主键并自增
},
username: {type:DataTypes.STRING(255),allowNull:false}, //用户名
password: {type:DataTypes.STRING(255),allowNull:false}, //密码
real_name: {type:DataTypes.STRING(255),allowNull:false}, //真实姓名
phone: {type:DataTypes.STRING(255),allowNull:false}, //手机号码
sex: {type:DataTypes.STRING(255),allowNull:false}, //性别 1、男 2、女
mail: {type:DataTypes.STRING(255),allowNull:false}, //邮箱
remark: {type:DataTypes.STRING(255),allowNull:false}, //备注
create_time: {type:DataTypes.DATE(0),allowNull:false}, //创建时间
last_update_time: {type:DataTypes.DATE(0),allowNull:false}, //最后修改时间
},
association: [
]
}
];
\ No newline at end of file
......@@ -16,14 +16,28 @@ export async function initConfig() {
if (!configInfo || !configInfo.config) console.log("xml中无配置加载");
else {
//必要配置
let integralConfig = ["port", "qw"];
let integralConfig = ["port", "qw", "dbServer", "mysqldb"];
checkConfig(integralConfig, configInfo.config);
let {port, qw} = configInfo.config;
let {port, qw, dbServer, mysqldb} = configInfo.config;
systemConfig.port = parseInt(port[0]);
systemConfig.qwUrl = `${qw[0].url[0]}&page=${qw[0].page[0]}&size=${qw[0].size[0]}`;
systemConfig.dbPath = dbServer[0];
if (mysqldb) {
let dbConfigInfo = mysqldb[0];
systemConfig.mysqldb = {host:'', port:0, user:'', pwd:'', dataBase:''};
if (dbConfigInfo.mysqlHost && dbConfigInfo.mysqlPort && dbConfigInfo.mysqlUser && dbConfigInfo.dataBase) {
systemConfig.mysqldb.host=dbConfigInfo.mysqlHost[0];
systemConfig.mysqldb.port=parseInt(dbConfigInfo.mysqlPort[0]);
systemConfig.mysqldb.user=dbConfigInfo.mysqlUser[0];
systemConfig.mysqldb.pwd=dbConfigInfo.mysqlPwd[0] || "";
systemConfig.mysqldb.dataBase=dbConfigInfo.dataBase[0];
}
}
}
} catch(err) {
......
......@@ -4,5 +4,13 @@
export class ServerConfig {
port:number;
dbPath:string;
mysqldb:{
host:string,
port:number,
user:string,
pwd:string,
dataBase:string,
};
qwUrl:string;
}
import { mysqlModelMap } from "../model/sqlModelBind";
/**
* 添加数据
* @param tableModel
* @param data
* @returns
*/
export async function addData(tableName:string, data:any) {
let tableModel = mysqlModelMap[tableName];
let dataArray = [];
if (!Array.isArray(data)) {
dataArray.push(data);
} else dataArray = data;
await tableModel.bulkCreate(dataArray);
return { isSuccess:true };
}
\ No newline at end of file
import { mysqlModelMap } from "../model/sqlModelBind";
export async function delData(tableName, param) {
let tableModel = mysqlModelMap[tableName];
await tableModel.destroy({where:param});
return {isSuccess:true};
}
\ No newline at end of file
import { Op, Sequelize } from "sequelize";
import { ERRORENUM } from "../config/errorEnum";
import { mysqlModelMap } from "../model/sqlModelBind";
import { BizError } from "../util/bizError";
/**
* where条件查询参数
* @param param
* %like%:模糊查询 {列名: {"%like%": }}
* %gt%:大于 {列名: {"%gt%": }}
* %gte%:大于等于 {列名: {"%gte%": }}
* %lt%:小于 {列名: {"%lt%": }}
* %lte%:小于等于 {列名: {"%lte%": }}
* %between%:查询范围内数据 {列名: {"%between%": ["开始参数", "结束参数"]}} ---BETWEEN 开始参数 AND 结束参数 列>开始参数 and 列<结束参数
* %notBetween%:查询不在范围内数据 {列名: {"%notBetween%": ["开始参数", "结束参数"]}} ---NOT BETWEEN 开始参数 AND 结束参数
* %orderDesc%: order by DESC {"%orderDesc%": "列名"}
* %limit%: {"%limit%": 数量}
* @param column
* @returns
*/
function analysisParamToWhere(param, column) {
let where = {};
let order = [];
let group = "";
let literal = "";
let limit = 0;
for (let key in param) {
if (typeof param[key] == "object") {
where[key] = {};
for (let whereKey in param[key]) {
switch (whereKey) {
case "%like%":
where[key][Op.like] = `%${param[key]["%like%"]}%`;
break;
case "%gt%":
where[key][Op.gt] = param[key]["%gt%"];
break;
case "%gte%":
where[key][Op.gte] = param[key]["%gte%"];
break;
case "%lt%":
where[key][Op.lt] = param[key]["%lt%"];
break;
case "%lte%":
where[key][Op.lte] = param[key]["%lte%"];
break;
case "%between%":
where[key][Op.between] = param[key]["%between%"];
break;
case "%notBetween%":
where[key][Op.notBetween] = param[key]["%notBetween%"];
break;
case "%in%":
where[key][Op.in] = param[key]["%in%"];
break;
case "%notIn%":
where[key][Op.notIn] = param[key]["%notIn%"];
break;
case "%ne%":
where[key][Op.ne] = param[key]["%ne%"];
break;
case "%regexp%":
where[key][Op.regexp] = param[key]["%regexp%"];
break;
}
}
} else {
switch (key) {
case "%orderDesc%":
order = [[Sequelize.col(param[key]), "DESC"]];
break;
case "%orderAsc%":
order = [[Sequelize.col(param[key]), "ASC"]];
break;
case "%limit%":
limit = param[key];
break;
case "%group%":
group = param[key];
break;
case "%literal%":
literal = param["%literal%"];
break;
default: where[key] = param[key];
}
}
}
let selectParam: any = { where };
if (column && column.length) selectParam.attributes = column;
if (order && order.length) selectParam.order = order;
if (limit) selectParam.limit = limit;
if (group) selectParam.group = group;
if (literal) selectParam.where = Sequelize.literal(literal);
return selectParam;
}
/**
* 查询单个数据
* @param tableModel 表对象
* @param param
* @returns
*/
export async function selectOneDataByParam(tableName, param, column) {
let tableModel = mysqlModelMap[tableName];
let selectParam = analysisParamToWhere(param, column);
let data = await tableModel.findOne(selectParam);
data = data || {};
return { data };
}
/**
* 查询多个数据
* @param tableName 表对象
* @param param
* @returns
*/
export async function selectDataListByParam(tableName, param, column) {
let tableModel = mysqlModelMap[tableName];
let selectParam = analysisParamToWhere(param, column);
let data = await tableModel.findAll(selectParam);
return { data };
}
/**
* 分页查询
* @param tableModel
* @param param
* @param pageNumber
* @param pageSize
* @returns
*/
export async function selectDataListToPageByParam(tableName, param, column, pageNumber: number, pageSize: number) {
let tableModel = mysqlModelMap[tableName];
let selectParam: any = analysisParamToWhere(param, column);
selectParam.limit = pageSize || 10;
selectParam.offset = (pageNumber - 1) * 10;
let data = await tableModel.findAll(selectParam);
return { data };
}
export async function selectDataCountByParam(tableName, param) {
let tableModel = mysqlModelMap[tableName];
let selectParam: any = analysisParamToWhere(param, []);
let data = await tableModel.count(selectParam);
return { data };
}
export async function associationSelect(tableName: string, param) {
let model = mysqlModelMap[tableName];
if (!model) throw new BizError(ERRORENUM.不存在表);
let data = await model.aggragateData(param);
return {data};
// try {
// let data = await model.aggragateData(param);
// return { data };
// } catch (error) {
// throw new BizError(ERRORENUM.数据查询失败, error.message);
// }
}
/**
* 多表联查 列表
* @param tableModel
* @param includeConf {"表名":["",""] }
* @param param
* @param column
* @returns
*/
// question
export async function selectDataToTableAssociation(tableName, includeConf, param, column) {
let tableModel = mysqlModelMap[tableName];
let include = [];
for (let tableName in includeConf) {
if (!mysqlModelMap[tableName]) throw new BizError(ERRORENUM.不存在表, `尝试进行多表联查,但是不存在${tableName}`);
let {where, column} = includeConf[tableName];
let includeInfomation = analysisParamToWhere(where, column);
includeInfomation.model = mysqlModelMap[tableName];
include.push(includeInfomation);
}
let selectParam: any = analysisParamToWhere(param, column);
selectParam.include = include;
let data = await tableModel.findAll(selectParam);
return { data };
}
/**
* 多表联查 分页
* @param tableModel
* @param includeConf {"表名":["",""] }
* @param param
* @param column
* @returns
*/
export async function selectDataToTableAssociationToPage(tableName, includeConf, param, column, pageNumber: number, pageSize: number) {
let tableModel = mysqlModelMap[tableName];
let include = [];
for (let tableName in includeConf) {
if (!mysqlModelMap[tableName]) throw new BizError(ERRORENUM.不存在表, `尝试进行多表联查,但是不存在${tableName}`);
let { where, column } = includeConf[tableName];
let includeInfomation = analysisParamToWhere(where, column);
includeInfomation.model = mysqlModelMap[tableName];
include.push(includeInfomation);
}
let selectParam: any = analysisParamToWhere(param, column);
selectParam.include = include;
selectParam.limit = pageSize || 10;
selectParam.offset = (pageNumber - 1) * 10;
let data = await tableModel.findAll(selectParam);
return { data };
}
/**
* 多表查询单个
* @param tableModel
* @param includeConf
* @param param
* @param column
* @returns
*/
export async function selectOneDataToTableAssociation(tableName, includeConf, param, column) {
let tableModel = mysqlModelMap[tableName];
let include = [];
for (let tableName in includeConf) {
if (!mysqlModelMap[tableName]) throw new BizError(ERRORENUM.不存在表, `尝试进行多表联查,但是不存在${tableName}`);
let { where, column } = includeConf[tableName];
let includeInfomation = analysisParamToWhere(where, column);
includeInfomation.model = mysqlModelMap[tableName];
include.push(includeInfomation);
}
let selectParam: any = analysisParamToWhere(param, column);
selectParam.include = include;
let data = await tableModel.findOne(selectParam);
data = data || {};
return { data };
}
\ No newline at end of file
import { Op, Sequelize } from "sequelize";
import { mysqlModelMap } from "../model/sqlModelBind";
/**
* where条件查询参数
* @param param
* %like%:模糊查询 {列名: {"%like%": }}
* %gt%:大于 {列名: {"%gt%": }}
* %gte%:大于等于 {列名: {"%gte%": }}
* %lt%:小于 {列名: {"%lt%": }}
* %lte%:小于等于 {列名: {"%lte%": }}
* %between%:查询范围内数据 {列名: {"%between%": ["开始参数", "结束参数"]}} ---BETWEEN 开始参数 AND 结束参数
* %notBetween%:查询不在范围内数据 {列名: {"%notBetween%": ["开始参数", "结束参数"]}} ---NOT BETWEEN 开始参数 AND 结束参数
* %orderDesc%: order by DESC {"%orderDesc%": "列名"}
* %limit%: {"%limit%": 数量}
* @returns
*/
function analysisParamToWhere(param) {
let where = {};
let order = [];
let limit = 0;
for (let key in param) {
if (typeof param[key] == "object") {
where[key] = {};
for (let whereKey in param[key]){
switch(whereKey) {
case "%like%":
where[key][Op.like] = `%${param[key]["%like%"]}%`;
break;
case "%gt%":
where[key][Op.gt] = param[key]["%gt%"];
break;
case "%gte%":
where[key][Op.gte] = param[key]["%gte%"];
break;
case "%lt%":
where[key][Op.lt] = param[key]["%lt%"];
break;
case "%lte%":
where[key][Op.lte] = param[key]["%lte%"];
break;
case "%between%":
where[key][Op.between] = param[key]["%between%"];
break;
case "%notBetween%":
where[key][Op.notBetween] = param[key]["%notBetween%"];
break;
case "%in%":
where[key][Op.in] = param[key]["%in%"];
break;
case "%notIn%":
where[key][Op.notIn] = param[key]["%notIn%"];
break;
}
}
}else {
switch (key) {
case "%orderDesc%":
order = [[Sequelize.col(param[key]), "DESC"]];
break;
case "%orderAsc%":
order = [[Sequelize.col(param[key]), "ASC"]];
break;
case "%limit%":
limit = param[key];
break;
default: where[key] = param[key];
}
}
}
let selectParam:any = {where};
if (order && order.length) selectParam.order = order;
if (limit) selectParam.limit = limit;
return selectParam;
}
export async function updateManyData(tableName, param:object, data:object) {
let tableModel = mysqlModelMap[tableName];
let where = analysisParamToWhere(param);
await tableModel.update(data, where);
return {isSuccess:true};
}
\ No newline at end of file
import { systemConfig } from "../config/serverConfig";
//导入sequelize模块
const Sequelize = require('sequelize');
var mysqlDB;
export async function initMysqlDB() {
mysqlDB = new Sequelize(systemConfig.mysqldb.dataBase,systemConfig.mysqldb.user,systemConfig.mysqldb.pwd,{
host:systemConfig.mysqldb.host,
port:systemConfig.mysqldb.port,
dialect:'mysql', //数据库类型
pool:{ //数据库连接池
max:20, //最大连接对象的个数
min:5, //最小连接对象的个数
idle:1000 //最长等待时间,单位为毫秒
},
timezone: '+08:00', //东八时区
dialectOptions: {
dateStrings: true,
typeCast: true
},
});
}
export { mysqlDB };
\ No newline at end of file
import { httpServer } from "./net/http_server";
import * as mysqlDB from "./db/mysqlInit";
import { initMysqlModel } from "./model/sqlModelBind";
import { initConfig, systemConfig } from "./config/serverConfig";
async function lanuch() {
await initConfig();
/**初始化sql */
await mysqlDB.initMysqlDB();
await initMysqlModel();
/**创建http服务 */
httpServer.createServer( systemConfig.port );
console.log('This indicates that the server is started successfully.');
}
......
/**
* mysql 数据层
*/
import { TablesConfig } from "../config/mysqlTableConfig";
import { mysqlDB } from "../db/mysqlInit";
let mysqlModelMap = {};
export async function initMysqlModel() {
/**初始化表 */
for (let i =0; i < TablesConfig.length; i++) {
let { tableName, schema } = TablesConfig[i];
let schemaConf = {
freezeTableName:true, //true表示使用给定的表名,false表示模型名后加s作为表名
timestamps:false //true表示给模型加上时间戳属性(createAt updateAt),false表示不带时间戳属性
};
let model = mysqlDB.define( tableName, schema, schemaConf);
mysqlModelMap[tableName] = await model.sync({}).then();
// try {
// await model.sync({ force: false });
// mysqlModelMap[tableName] = model;
// } catch (error) {
// console.error(`同步表 ${tableName} 失败:`, error);
// }
}
/**初始化表关联 */
for (let i =0; i < TablesConfig.length; i++) {
let { tableName, association } = TablesConfig[i];
association.forEach( (item:any) => {
if (item) {
let {type, check, foreignKey} = item;
if (type == "hasOne") {
mysqlModelMap[check].hasOne(mysqlModelMap[tableName]);
} else if (type == "hasMany") {
mysqlModelMap[tableName].hasMany(mysqlModelMap[check], {foreignKey});
}
mysqlModelMap[check].belongsTo(mysqlModelMap[tableName], {foreignKey});
// else if (type === "belongsTo") {
// mysqlModelMap[tableName].belongsTo(mysqlModelMap[check], { foreignKey });
// }
console.log("---->", mysqlModelMap[tableName].getTableName());
console.log("====>", mysqlModelMap[check].getTableName());
}
});
}
}
export { mysqlModelMap };
\ No newline at end of file
......@@ -17,7 +17,7 @@ export class httpServer {
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header('Access-Control-Allow-Headers', 'Content-Type');
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
res.header('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Credentials', "true");
res.header("X-Powered-By", ' 3.2.1');
res.header("Authorization", 'Basic SzEyUlBDOksxMlJQQ1B3ZA==');
if(req.method === 'OPTIONS'){
......
import * as asyncHandler from 'express-async-handler';
import * as adminBiz from '../biz/admin';
// 霍兰德测试接口
export function setRouter(httpServer){
httpServer.post('/admin/login', asyncHandler(login));
httpServer.post('/admin/addjob', asyncHandler(addJobInfo));
httpServer.post('/admin/joblist', asyncHandler(getJobList));
httpServer.post('/admin/deljob', asyncHandler(delJobInfo));
httpServer.post('/admin/output', asyncHandler(outPutData));
};
async function login(req, res) {
let {username, password} = req.body;
let result = await adminBiz.login(username, password);
res.success(result);
}
async function addJobInfo(req, res) {
let {name, sex, phone, card, education, jobPositions} = req.body;
let result = await adminBiz.addJobInfo(name, sex, phone, card, education, jobPositions);
res.success(result);
}
async function getJobList(req, res) {
let {name, phone, card, createStartTime, createEndTime, jobPositions, current} = req.body;
let result = await adminBiz.getJobList(name, phone, card, createStartTime, createEndTime, jobPositions, current);
res.success(result);
}
async function delJobInfo(req, res) {
let {jobId} = req.body;
let result = await adminBiz.delJobInfo(jobId);
res.success(result);
}
async function outPutData(req, res) {
let {name, phone, card, createStartTime, createEndTime, jobPositions} = req.body;
let result = await adminBiz.outPutData(name, phone, card, createStartTime, createEndTime, jobPositions);
res.success(result);
}
......@@ -2,44 +2,11 @@
* 总路由入口
*/
import * as asyncHandler from 'express-async-handler';
import * as titleRouters from '../biz/title';
import * as employmentRouters from '../biz/employment';
import * as popupRouters from '../biz/popup';
export function setRouter(httpServer){
/**竖屏 */
httpServer.get('/verticalscreen/title', asyncHandler(titleRouters.getVerticalScreenTitle));
httpServer.get('/verticalscreen/list', asyncHandler(employmentRouters.getVerticalScreen));
httpServer.get('/verticalscreen/policy', asyncHandler(employmentRouters.getVerticalPolicy));
httpServer.get('/verticalscreen/detailed', asyncHandler(employmentRouters.getVerticalJobDetailed));
httpServer.post('/verticalscreen/title', asyncHandler(titleRouters.getVerticalScreenTitle));
httpServer.post('/verticalscreen/list', asyncHandler(employmentRouters.getVerticalScreen));
httpServer.post('/verticalscreen/policy', asyncHandler(employmentRouters.getVerticalPolicy));
httpServer.post('/verticalscreen/detailed', asyncHandler(employmentRouters.getVerticalJobDetailed));
/**大屏 */
httpServer.get('/largescreen/title', asyncHandler(titleRouters.getLargeScreenTitle));
httpServer.get('/largescreen/qwlist', asyncHandler(employmentRouters.getQWLargeScreen));
httpServer.get('/largescreen/pxlist', asyncHandler(employmentRouters.getPXLargeScreen));
httpServer.get('/largescreen/pxdetailed', asyncHandler(employmentRouters.getPXJobDetailed));
httpServer.post('/largescreen/title', asyncHandler(titleRouters.getLargeScreenTitle));
httpServer.post('/largescreen/qwlist', asyncHandler(employmentRouters.getQWLargeScreen));
httpServer.post('/largescreen/pxlist', asyncHandler(employmentRouters.getPXLargeScreen));
httpServer.post('/largescreen/pxdetailed', asyncHandler(employmentRouters.getPXJobDetailed));
/**大屏弹窗更新添加退役军人标识 */
// httpServer.get('/gettyjr', asyncHandler(popupRouters.getTyjr));
// httpServer.post('/gettyjr', asyncHandler(popupRouters.getTyjr));
/**就业服务记录二级点击 */
// httpServer.get('/getfwjl', asyncHandler(popupRouters.getFwjl));
// httpServer.post('/getfwjl', asyncHandler(popupRouters.getFwjl));
/**合作单位数据 */
// httpServer.get('/gethzdw', asyncHandler(popupRouters.getHzdwsj));
// httpServer.post('/gethzdw', asyncHandler(popupRouters.getHzdwsj));
}
import * as adminRouter from './admin';
import * as verticalScreenRouter from './verticalScreen';
export function setRouter(httpServer){
adminRouter.setRouter(httpServer);
verticalScreenRouter.setRouter(httpServer);
}
\ No newline at end of file
/**
* 竖屏
*/
import * as asyncHandler from 'express-async-handler';
import * as titleRouters from '../biz/title';
import * as employmentRouters from '../biz/employment';
export function setRouter(httpServer){
/**竖屏 */
httpServer.get('/verticalscreen/title', asyncHandler(titleRouters.getVerticalScreenTitle));
httpServer.get('/verticalscreen/list', asyncHandler(employmentRouters.getVerticalScreen));
httpServer.get('/verticalscreen/policy', asyncHandler(employmentRouters.getVerticalPolicy));
httpServer.get('/verticalscreen/detailed', asyncHandler(employmentRouters.getVerticalJobDetailed));
httpServer.post('/verticalscreen/title', asyncHandler(titleRouters.getVerticalScreenTitle));
httpServer.post('/verticalscreen/list', asyncHandler(employmentRouters.getVerticalScreen));
httpServer.post('/verticalscreen/policy', asyncHandler(employmentRouters.getVerticalPolicy));
httpServer.post('/verticalscreen/detailed', asyncHandler(employmentRouters.getVerticalJobDetailed));
/**大屏 */
httpServer.get('/largescreen/title', asyncHandler(titleRouters.getLargeScreenTitle));
httpServer.get('/largescreen/qwlist', asyncHandler(employmentRouters.getQWLargeScreen));
httpServer.get('/largescreen/pxlist', asyncHandler(employmentRouters.getPXLargeScreen));
httpServer.get('/largescreen/pxdetailed', asyncHandler(employmentRouters.getPXJobDetailed));
httpServer.post('/largescreen/title', asyncHandler(titleRouters.getLargeScreenTitle));
httpServer.post('/largescreen/qwlist', asyncHandler(employmentRouters.getQWLargeScreen));
httpServer.post('/largescreen/pxlist', asyncHandler(employmentRouters.getPXLargeScreen));
httpServer.post('/largescreen/pxdetailed', asyncHandler(employmentRouters.getPXJobDetailed));
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment