Commit 926b2512 by lixinming

no message

parent 6dbbb80c
......@@ -5,6 +5,7 @@
*
*/
import { BaseParamUpdateConfig } from "../../config/checkParamConfig";
import { findEnterpriseCountByFuHuaQiUscc } from "../../data/enterprise/enterprise";
import { findFuHuaQiByUSCC } from "../../data/fuHuaQi/fuhuaqi";
import * as tools from "../../util/tools";
......@@ -35,7 +36,7 @@ export async function updateFuHuaQiBaseData(uscc:string, param) {
/**
* 查询孵化器基础数据
* @param uscc 孵化器统一信用代码
* @returns {data:{}}
* @returns data 基础数据字段
*/
export async function selectFuHuaQiBaseData(uscc:string) {
let dataBaseInfo = await findFuHuaQiByUSCC(uscc);
......@@ -50,5 +51,24 @@ export async function selectFuHuaQiBaseData(uscc:string) {
data[key] = dataBaseInfo[key];
});
return {data};
return data;
}
/**
* 主界面基础数据
* @param uscc 孵化器统一信用代码
* @returns data "incubatedAcreage", "acreageTotal", "acreagePersonalUse", "enterpriseCount"
*/
export async function homeData(uscc:string) {
let dataBaseInfo = await findFuHuaQiByUSCC(uscc);
let keyList = [ "incubatedAcreage", "acreageTotal", "acreagePersonalUse"];
let data:any = {enterpriseCount:0};
keyList.forEach( key => {
data[key] = dataBaseInfo[key];
});
data.enterpriseCount = await findEnterpriseCountByFuHuaQiUscc(uscc);
return data;
}
\ No newline at end of file
......@@ -38,7 +38,7 @@ export async function createReport(uscc:string, occupancyRate:number) {
export async function updateReport(uscc:string, occupancyRate:number) {
const TaskId = getTaskId(uscc);
let dataBaseInfo = await monthData.findmonthTableListByTaskId(TaskId);
if (dataBaseInfo || dataBaseInfo.taskId) throw new BizError(ERRORENUM.未找到数据);
if (dataBaseInfo || dataBaseInfo.taskId) throw new BizError(ERRORENUM.未找到数据, `未找到${uscc}的月度报表` );
dataBaseInfo.occupancyRate = occupancyRate;
await dataBaseInfo.save();
......
......@@ -53,7 +53,7 @@ export async function fuHuaQiTaskList(uscc:string) {
result.push(onceObj);
}
return result;
return {taskList:result};
}
......
......@@ -13,7 +13,7 @@ import { getPwdMd5 } from "../../util/tools";
* 登录
* @param uscc 信用代码
* @param pwd 密码
* @returns
* @returns fuhuaqiUserInfo:{uscc, name} 登录后的信息
*/
export async function login(uscc:string, pwd:string):Promise<object> {
if (typeof uscc != "string" || typeof pwd != "string") throw new BizError(ERRORENUM.参数错误, uscc, pwd);
......@@ -27,7 +27,7 @@ export async function login(uscc:string, pwd:string):Promise<object> {
name: fuhuaqiInfo.name
};
return {fuhuaqiUserInfo};
return fuhuaqiUserInfo;
}
/**
......
......@@ -84,3 +84,13 @@ export async function createEnterprise(fuHuaQiUscc:string, taskId:string, param)
let addInfo = Object.assign({fuHuaQiUscc, taskId, createTime:new Date().valueOf()}, param);
await enterpriseModel.create(addInfo);
}
/**
* 查找孵化器所拥有的企业数量
* @param fuHuaQiUscc 孵化器统一信用代码
* @returns
*/
export async function findEnterpriseCountByFuHuaQiUscc(fuHuaQiUscc:string) {
return await enterpriseModel.count({fuHuaQiUscc}).exec();
}
......@@ -15,10 +15,10 @@ export async function checkToken(req, res, next) {
let isErr = false;
if (userInfo.token != reqToken) {
isErr = true;
return next(new BizError(SYSTEMERRORENUM.身份验证过期, userId, reqToken, req.url));
}
// if (userInfo.token != reqToken) {
// isErr = true;
// return next(new BizError(SYSTEMERRORENUM.身份验证过期, userId, reqToken, req.url));
// }
req.headers.userId = userId;
......
/**
* 小程序端孵化器的路由入口
*/
import * as asyncHandler from 'express-async-handler';
import * as fuhuaqiBiz from '../biz/fuHuqQi/user';
import * as userBiz from '../biz/fuHuqQi/user';
import * as baseBiz from '../biz/fuHuqQi/base';
import * as taskBiz from '../biz/fuHuqQi/task';
import * as monthBiz from '../biz/fuHuqQi/month';
import * as enterpriseBiz from '../biz/enterprise/enterprise';
import { checkReqParam } from '../util/tools';
export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/login', asyncHandler(login));
httpServer.post('/fuhuaqi/home', asyncHandler(homeInfo));
httpServer.post('/fuhuaqi/task', asyncHandler(taskInfo));
httpServer.post('/fuhuaqi/task/addtask', asyncHandler(addTask));
/**基础数据 */
httpServer.post('/fuhuaqi/base', asyncHandler(baseInfo));
httpServer.post('/fuhuaqi/mydata', asyncHandler(myDataInfo));
httpServer.post('/fuhuaqi/mydata/update', asyncHandler(updateMyDataInfo));
httpServer.post('/fuhuaqi/base/update', asyncHandler(updateMyDataInfo));
/**任务 */
httpServer.post('/fuhuaqi/task/list', asyncHandler(taskList));
httpServer.post('/fuhuaqi/task/submit', asyncHandler(submitTask));
/**月度报表 */
httpServer.post('/fuhuaqi/month/addreport', asyncHandler(addReport));
httpServer.post('/fuhuaqi/month/updatereport', asyncHandler(updateReport));
httpServer.post('/fuhuaqi/month/deletereport', asyncHandler(deleteReport));
/**融资企业填报 */
/**新注册或迁入企业 */
httpServer.post('/fuhuaqi/enterprise/register', asyncHandler(registerEnterprise));
}
/**
* 新注册企业
* @param req
* @param res
*/
async function registerEnterprise(req, res) {
let reqConf = {form: 'Object' };
let { form } = checkReqParam(reqConf, req.body);
const Uscc = req.headers.uscc;
let result = await enterpriseBiz.registerEnterprise(Uscc, form);
res.success(result);
}
//=======================
/**
* 孵化器登录
* @param req 获取请求中的body内容
* @param req
* @param res
*/
async function login(req, res) {
let { uscc, pwd } = req.body;
let result = await fuhuaqiBiz.login(uscc, pwd);
let reqConf = {uscc:'String', pwd:'String'};
let {uscc, pwd} = checkReqParam(reqConf, req.body);
let result = await userBiz.login(uscc, pwd);
res.success(result);
}
/**
* 主界面信息
* 包括首页的 我的数据 评分明细
* @param req
* @param res
*/
async function homeInfo(req, res) {
async function baseInfo(req, res) {
const Uscc = req.headers.uscc;
res.success({});
let userInfo = await baseBiz.homeData(Uscc);
res.success(userInfo);
}
/**
* 任务中心
* 我的数据 详细数据
* @param req
* @param res
*/
async function taskInfo(req, res) {
async function myDataInfo(req, res) {
const Uscc = req.headers.uscc;
let userInfo = await baseBiz.selectFuHuaQiBaseData(Uscc);
res.success({});
res.success(userInfo);
}
/**
* 新增报
* 任务列
* @param req
* @param res
*/
async function addTask(req, res) {
async function taskList(req, res) {
const Uscc = req.headers.uscc;
res.success({});
}
let result = await taskBiz.fuHuaQiTaskList(Uscc);
res.success(result);
}
/**
* 我的数据 详细数据
* 提交任务
* @param req
* @param res
*/
async function myDataInfo(req, res) {
async function submitTask(req, res) {
let reqConf = {taskType:'Number'};
let { taskType } = checkReqParam(reqConf, req.body);
const Uscc = req.headers.uscc;
res.success({});
let result = await taskBiz.checkTask(Uscc, taskType);
res.success(result);
}
/**
* 更新我的数据
* 更新基础数据
* @param req
* @param res
*/
async function updateMyDataInfo(req, res) {
let reqConf = {form: 'Object' };
let { form } = checkReqParam(reqConf, req.body);
const Uscc = req.headers.uscc;
res.success({});
let result = await baseBiz.updateFuHuaQiBaseData(Uscc, form);
res.success(result);
}
/**
......@@ -83,8 +139,11 @@ async function updateMyDataInfo(req, res) {
* @param res
*/
async function addReport(req, res) {
let {uscc, occupancyRate} = req.body;
let monthInfo = monthBiz.createReport(uscc, occupancyRate)
let reqConf = {occupancyRate: 'Number' };
let { occupancyRate } = checkReqParam(reqConf, req.body);
const Uscc = req.headers.uscc;
let monthInfo = monthBiz.createReport(Uscc, occupancyRate);
res.success(monthInfo);
}
......@@ -94,7 +153,22 @@ async function addReport(req, res) {
* @param res
*/
async function deleteReport(req, res) {
let {uscc} = req.body;
let monthInfo = monthBiz.deleteReport(uscc)
const Uscc = req.headers.uscc;
let monthInfo = monthBiz.deleteReport(Uscc);
res.success(monthInfo);
}
/**
* 孵化器月度填报 修改报表
* @param req
* @param res
*/
async function updateReport(req, res) {
let reqConf = {occupancyRate: 'Number' };
let { occupancyRate } = checkReqParam(reqConf, req.body);
const Uscc = req.headers.uscc;
let monthInfo = monthBiz.updateReport(Uscc, occupancyRate);
res.success(monthInfo);
}
\ No newline at end of file
/**
* 公共资源路由
*/
import * as asyncHandler from 'express-async-handler';
import { FUHUAQILV, INSTITUTIONALNATURE, FUHUAINDUSTRY, INDUSTRY } from '../config/enum';
import { checkToken } from '../middleware/user';
export function setRouter(httpServer) {
httpServer.post('/public/fuhuaqilv', asyncHandler(getFuHuaQiLv));
httpServer.post('/public/institutionalnature', asyncHandler(getInstitutionalNature));
httpServer.post('/public/fuhuaqiindustry', asyncHandler(getFuHuaQiIndustry));
httpServer.post('/public/industry', asyncHandler(getIndustry));
httpServer.post('/public/fuhuaqilv', checkToken, asyncHandler(getFuHuaQiLv));
httpServer.post('/public/institutionalnature', checkToken, asyncHandler(getInstitutionalNature));
httpServer.post('/public/fuhuaqiindustry', checkToken, asyncHandler(getFuHuaQiIndustry));
httpServer.post('/public/industry', checkToken, asyncHandler(getIndustry));
}
/**
......
import * as asyncHandler from 'express-async-handler'
/**
* 总路由入口
*/
import * as adminRouters from './admin'
import * as fuhuaqiRouters from './fuhuaqi'
import * as publicRouters from './public'
export function setRouter(httpServer){
//新版本
adminRouters.setRouter(httpServer);
fuhuaqiRouters.setRouter(httpServer);
publicRouters.setRouter(httpServer);
}
\ No newline at end of file
......@@ -82,3 +82,51 @@ export function checkChange(newObj, oldObj) {
export function getPwdMd5(uscc:string, pwd:string) {
return md5(uscc+pwd);
}
/**
* 校验请求参数
* @param conf
* @param param
* @returns
*/
export function checkReqParam(conf, param) {
for (let key in conf ) {
if ( !param[key] ) throw new BizError(ERRORENUM.参数错误, `缺失${key}字段`);
let type = typeof param[key];
switch(conf[key]) {
case 'Number':
if ( type != 'number' ) throw new BizError(ERRORENUM.参数错误, `${key}应是number型 而不是${type}`);
break;
case 'String':
if ( type != 'string' ) throw new BizError(ERRORENUM.参数错误, `${key}应是string型 而不是${type}`);
break;
case 'Boolean':
if ( type != 'boolean' ) throw new BizError(ERRORENUM.参数错误, `${key}应是boolean型 而不是${type}`);
break;
case '[Number]':
if ( !Array.isArray(param[key]) ) throw new BizError(ERRORENUM.参数错误, `${key}应是数组型 而不是${type}`);
for (let i =0; i < param[key].length; i++) {
let item = param[key][i];
if ( typeof item != 'number' ) {
throw new BizError(ERRORENUM.参数错误, `${key}应是number型数组其中下标${i}${typeof item}`);
}
}
break;
case 'Object':
if ( type != 'object' ) throw new BizError(ERRORENUM.参数错误, `${key}应是Object型 而不是${type}`);
if ( Array.isArray(param[key]) ) throw new BizError(ERRORENUM.参数错误, `${key}应是Object型 而不是array`);
try {
JSON.stringify(param[key]);
} catch(err) {
throw new BizError(ERRORENUM.参数错误, `${key}应是Object型 转换JSON时失败`);
}
break;
}
}
for (let key in param) {
if (!conf[key]) throw new BizError(ERRORENUM.表单校验失败, name, `多余${key}字段`);
}
return param;
}
\ No newline at end of file
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