Commit 040a3662 by lixinming

bug:逻辑代码分层,修改添加账号没有任务的bug,修改添加账号后台没有联系人的bug, 修改添加账号密码未加密还有密码是6位不是3位的bug,

新功能:已办任务,过期任务,修改密码,我的企业列表
parent 8609f1d2
import { extractData } from "../../../util/piecemeal";
import * as enterpriseData from "../../../data/enterprise/enterprise";
import * as splitResultConfig from "../../../config/splitResultConfig";
import * as fuHuaQiData from "../../../data/fuHuaQi/fuhuaqi";
import * as configEnum from "../../../config/enum";
import * as verificationEnumTools from "../../../util/verificationEnum";
/**
* 获取在孵企业信息列表
* 管理后台端
* @param createType 新注册/迁入 1:全选 2:新注册 3:迁入 以前是时间 2/23日修改为类型
* @param fuHuaQiUscc 所属孵化器
* @param industry 行业领域
* @param isNaturalPersonHolding 自然人控股
* @param page 页数
* @returns {dataList:[], count:0} dataList=数据列表 count:条件筛选下的数据总数
*/
export async function enterpriseList(createType:number, fuHuaQiUscc:string, industry, isNaturalPersonHolding:number, page:number) {
/**拼接查询条件 */
let selectParam:any = {};
if (createType == 2 || createType == 3) {
selectParam.isCreate = createType == 2 ? true : false;
}
if (fuHuaQiUscc) selectParam.fuHuaQiUscc = fuHuaQiUscc;
if (industry.length > 0) {
verificationEnumTools.eccEnumValue('管理后台获取在孵企业信息列表', 'industry', configEnum.INDUSTRY, industry);
selectParam.industry = industry;
}
if (isNaturalPersonHolding == 2 || isNaturalPersonHolding == 3) {
selectParam.isNaturalPersonHolding = isNaturalPersonHolding == 2 ? true : false;
}
selectParam.draftLock = true; //未提交的企业不能查看
/**需要用到的查询数据 */
let usccMap = await fuHuaQiData.findAllFuHuaQiOperationNameMap();//用于将孵化器uscc变成孵化器名称
let dataBaseList = await enterpriseData.findEnterpriseListToPage(selectParam, (page-1)*10 );
let count = await enterpriseData.findEnterpriseCount(selectParam);//符合查询条件的数据总数
/**组合返回结果 */
let dataList = [];
dataBaseList.forEach( info => {
/**截取返回数据 */
let changeData:any = extractData(splitResultConfig.EnterpriseListConfig, info, true);
/**匹配所属孵化器名称 匹配不上时这里显示空字符串 */
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
/** 返回的isCreate字段为字符串 当为导入数据时这里显示为空字符 */
if (info.enterpriseIsInPut) changeData.isCreate = "";
else changeData.isCreate = (changeData.isCreate) ? "新注册" : "新迁入";
/**将枚举值转为字符 */
changeData.industry = verificationEnumTools.changeEnumValue(configEnum.INDUSTRY, changeData.industry);
dataList.push(changeData);
});
return {count, dataList};
}
/**
* 导出在孵企业信息列表
* 管理后台端
* @param createType 新注册时间/迁入时间
* @param fuHuaQiUscc 所属孵化器
* @param industry 行业领域 数组
* @param isNaturalPersonHolding 自然人控股
* @returns 二维数组
*/
export async function outPutEnterpriseData(createType:number, fuHuaQiUscc:string, industry, isNaturalPersonHolding:number, type:Number) {
/**拼接查询条件 */
let selectParam:any = {};
if (type == configEnum.OUTPUTTYPE.当前数据) {
if (createType == 2 || createType == 3) {
selectParam.isCreate = createType == 2 ? true : false;
}
if (fuHuaQiUscc) selectParam.fuHuaQiUscc = fuHuaQiUscc;
if (industry.length > 0) selectParam.industry = industry;
if (isNaturalPersonHolding == 2 || isNaturalPersonHolding == 3) {
selectParam.isNaturalPersonHolding = isNaturalPersonHolding == 2 ? true : false;
}
}
selectParam.draftLock = true;//匹配已经提交入库的企业
/**查询内容 */
let usccMap = await fuHuaQiData.findAllFuHuaQiOperationNameMap();//用于将孵化器uscc变成孵化器名称
let dataBaseList = await enterpriseData.findEnterpriseList(selectParam );
/**组合二维数组 titleList 与 keyList 要一一对应 */
const TitleList = [
"企业名称", "入库时间", "所属孵化器", "统一信用代码", "行业领域",
"注册时间", "首次入孵时间", "迁入时间", "是否自然人控股", "迁入前注册地址",
"注册地址", "经营地址", "租赁面积(平方米)"
];//表头顺序 如果这里修改了 下面的keyList也要修改
const KeyList = [
"name", "createTime", "fuhuaqiUscc", "uscc", "industry", "logonTime",
"firstIncubationTime", "timeOfImmigration", "isNaturalPersonHolding", "oldLogonAdd",
"logonAdd", "operatingAdd", "leasedArea"
];//表头对应的字段顺序
let dataList = [TitleList];
dataBaseList.forEach( info => {
/**截取返回结果 */
let changeData:any = extractData(splitResultConfig.EnterpriseListConfig, info, true);
/**匹配所属孵化器名称 匹配不上时这里显示空字符串 */
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
if (info.enterpriseIsInPut) changeData.isCreate = "";
else changeData.isCreate = (changeData.isCreate) ? "新注册" : "新迁入";
/**修改枚举值 */
changeData.industry = verificationEnumTools.changeEnumValue(configEnum.INDUSTRY, changeData.industry);
// dataList.push(changeData);
/**根据表头与key的顺序 生成小数组 */
let subList = [];
KeyList.forEach( keyStr => {
subList.push(info[keyStr] || '');
});
dataList.push(subList);
});
return dataList;
}
/**
* 在孵企业页面的所属孵化器 下拉框
* 管理后台端
* 只返回有入孵企业的孵化器
* @returns result result类型为数组对象 对象内容为{name, uscc}
*/
export async function getAffiliationFuHuaQi() {
/**获取已有入孵企业的孵化器统一信用代码列表 */
let bindList = await enterpriseData.findAllBindFuHuaQiUsccList();
/**限制为 非禁用状态下的孵化器 */
let notDisabledList = await fuHuaQiData.findAllNotDisabledFuHuaQi();
let distinctMap = {}; //去重用的map对象 格式为:{uscc:name}
notDisabledList.forEach(info => {
distinctMap[info.uscc] = info.operationName;
});
let result = [];
bindList.forEach(fuHuaQiUscc => {
let fuHuaQiName = distinctMap[fuHuaQiUscc];
if ( fuHuaQiName ) {
result.push({
name:fuHuaQiName,
uscc:fuHuaQiUscc
});
}
});
return {result}
}
\ No newline at end of file
import * as eccFormParamConfig from "../../../config/eccFormParamConfig";
import { ERRORENUM } from "../../../config/errorEnum";
import * as financingData from "../../../data/enterprise/financing";
import * as splitResultConfig from "../../../config/splitResultConfig";
import { BizError } from "../../../util/bizError";
import * as sysTools from "../../../tools/system";
import * as enterpriseData from "../../../data/enterprise/enterprise";
import * as fuhuaqiData from "../../../data/fuHuaQi/fuhuaqi";
import moment = require("moment");
import * as configEnum from "../../../config/enum";
import { eccFormParam } from "../../../util/verificationParam";
import { changeEnumValue, eccEnumValue } from "../../../util/verificationEnum";
import { checkChange, extractData } from "../../../util/piecemeal";
/**
* 融资企业信息列表
* 管理后台端
* @param monthData 数据月份 目前数据库没有该字段
* @param fuHuaQiName 所属孵化器 这里前端传的是孵化器的统一信用代码
* @param industry 行业领域
* @param fuHuaQiInvestment 孵化器是否参与投资
* @param page 页数
* @returns {data, count} data:数据列表 count:符合条件的数据量
*/
export async function financingList(monthData:string, fuHuaQiName:string, industry, fuHuaQiInvestment:number, page:number) {
/**拼接查询条件 */
let selectParam:any = {};
if (fuHuaQiName.length > 0) {
let fuHuaQiInfo = await fuhuaqiData.findFuHuaQiByUSCC(fuHuaQiName);
if(!fuHuaQiInfo) throw new BizError(ERRORENUM.未找到数据, `管理后台查询融资列表时 ${fuHuaQiName}不存在`);
selectParam.fuHuaQiUscc = fuHuaQiInfo.uscc;
}
if ( monthData.length > 0 ) {
let startT = moment(monthData).startOf('month').valueOf();
let endT = moment(monthData).endOf('month').valueOf();
selectParam.createTime = {'$gt':startT, '$lt':endT};
}
if (industry.length >0 ) selectParam.industry = industry;
if (fuHuaQiInvestment == 2 || fuHuaQiInvestment == 3) {
selectParam.fuHuaQiInvestment = fuHuaQiInvestment == 2 ? true : false;
}
/**查数据 */
let dataBaseList = await financingData.findFinancingListToPage(selectParam, (page-1)*10 );
let count = await financingData.findFinancingCount(selectParam);
let usccMap = await fuhuaqiData.findAllFuHuaQiOperationNameMap();//用于转换所属孵化器名称
/**拼接返回值 */
let dataList = [];
dataBaseList.forEach( info => {
/**截取返回字段 */
let changeData:any = extractData(splitResultConfig.FinancingListConfig, info, true);
/** 字段的特化处理 */
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
changeData.industry = changeEnumValue(configEnum.INDUSTRY, info.industry);
changeData.financingRounds = changeEnumValue(configEnum.FINANCINGROUNDS, info.financingRounds);
changeData.fuHuaQiInvestmentStyle = changeEnumValue(configEnum.FUHUAQILNVESTMENTSTYLE, info.fuHuaQiInvestmentStyle);
dataList.push(changeData);
});
return {count, dataList};
}
/**
* 导出融资企业信息列表
* 管理后台端
* @param monthData 数据月份 目前数据库没有该字段
* @param fuHuaQiName 所属孵化器
* @param industry 行业领域
* @param fuHuaQiInvestment 孵化器是否参与投资
* @param type 页数
* @returns
*/
export async function outPutFinancingList(monthData:string, fuHuaQiName:string, industry, fuHuaQiInvestment:number, type:number) {
let selectParam:any = {};
if (type == configEnum.OUTPUTTYPE.当前数据 ) {
/**如果选择当前数据 则拼接查询条件 */
if (fuHuaQiName.length > 0) {
let fuHuaQiInfo = await fuhuaqiData.findFuHuaQiByName(fuHuaQiName);
if(!fuHuaQiInfo) throw new BizError(ERRORENUM.未找到数据, `管理后台查询融资列表时 ${fuHuaQiName}不存在`);
selectParam.fuHuaQiUscc = fuHuaQiInfo.uscc;
}
if ( monthData.length > 0 ) {
let startT = moment(monthData).startOf('month').valueOf();
let endT = moment(monthData).endOf('month').valueOf();
selectParam.createTime = {'$gt':startT, '$lt':endT};
}
if (industry.length >0 ) selectParam.industry = industry;
if (fuHuaQiInvestment == 2 || fuHuaQiInvestment == 3) {
selectParam.fuHuaQiInvestment = fuHuaQiInvestment == 2 ? true : false;
}
}
/**主要查询 */
let dataBaseList = await financingData.findFinancingList(selectParam );
let usccMap = await fuhuaqiData.findAllFuHuaQiOperationNameMap();
/**拼接返回 需要注意的是 keyList要和titleList一一对应 */
let keyList = [
"name", "logonAdd", "operatingAdd", "financingAmount","investmentInstitutionsName",
"timeToObtainInvestment", "fuHuaQiInvestment", "fuHuaQiInvestmentAmount", "fuHuaQiInvestmentStyle", "createTime"
];
let titleList = [
"企业名称","注册地址","经营地址","融资金额(万元)","投资机构名称","获得投资时间",
"孵化器是否投资","孵化器投资金额(万元)","孵化器投资方式","录入时间",
];
let result = [titleList];
dataBaseList.forEach( info => {
/**截取返回字段 */
let changeData:any = extractData(splitResultConfig.FinancingListConfig, info, true);
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
changeData.industry = changeEnumValue(configEnum.INDUSTRY, info.industry);
/**根据keyList的顺序生成小数组 */
let subList = [];
keyList.forEach(keyStr => {
subList.push(changeData[keyStr] || '');
});
result.push(subList);
});
return result;
}
\ No newline at end of file
import { ERRORENUM } from "../../../config/errorEnum";
import { BizError } from "../../../util/bizError";
import * as monthData from "../../../data/fuHuaQi/monthTable";
import { extractData } from "../../../util/piecemeal";
import * as sysTools from "../../../tools/system";
import { findAllFuHuaQiOperationNameMap } from "../../../data/fuHuaQi/fuhuaqi";
import * as splitResultConfig from "../../../config/splitResultConfig";
import { OUTPUTTYPE } from "../../../config/enum";
/**
* 月度出租率数据列表
* 管理后台端
* @param state 填报状态
* @param year 数据年份
* @param month 数据月份
* @param page 页面
*/
export async function monthTableList(state:number, year:number, month:number, page:number) {
let selectParam:any = {};
if ( !(state >=1 || state <=3) ) throw new BizError(ERRORENUM.参数错误, `state状态不合法 不合法值为 ${state}`);
if (state == 2 || state == 3) {
selectParam.draftLock = state == 2 ? true : false;
}
if (year) selectParam.year = year;
if (month) selectParam.month = month;
let dataBaseList = await monthData.findMonthTableListToPage(selectParam, (page-1)*10 );
let count = await monthData.findMonthTableListCount(selectParam);
let operationNameMap = await findAllFuHuaQiOperationNameMap();
let dataList = [];
dataBaseList.forEach( info => {
let onceInfo = {
operationName:operationNameMap[info.fuHuaQiUscc],
state:info.draftLock==false?'未填报':'已填报',
time:`${info.year}${info.month}月`,
occupancyRate:info.occupancyRate || '-'
};
dataList.push(onceInfo);
});
return {count, dataList}
}
/**
* 导出月度出租率数据列表
* 管理后台端
* @param state 填报状态
* @param year 数据年份
* @param month 数据月份
* @param page 页面
*/
export async function outPutMonthTableList(state:number, year:number, month:number, type:number) {
let selectParam:any = {};
if ( !(state >=1 || state <=3) ) throw new BizError(ERRORENUM.参数错误, `state状态不合法 不合法值为 ${state}`);
if (type == OUTPUTTYPE.当前数据 ) {
if (state == 2 || state == 3) {
selectParam.draftLock = state == 2 ? true : false;
}
if (year) selectParam.year = year;
if (month) selectParam.month = month;
}
let dataBaseList = await monthData.findMonthTableList(selectParam);
let operationNameMap = await findAllFuHuaQiOperationNameMap();
let keyList = [ "operationName", "state", "time", "occupancyRate"];
let titleList = [ "运营机构名称","填报状态","数据月份","出租率(%)"];
let dataList = [titleList];
dataBaseList.forEach( info => {
let onceInfo = {
operationName:operationNameMap[info.fuHuaQiUscc],
state:info.draftLock==false?'未填报':'已填报',
time:`${info.year}${info.month}月`,
occupancyRate:info.occupancyRate || '-'
};
let subList = [];
keyList.forEach(subInfo => {
subList.push(onceInfo[subInfo] || '');
});
dataList.push(subList);
});
return dataList;
}
\ No newline at end of file
......@@ -4,17 +4,16 @@
* 包括新注册企业,迁入企业
*
*/
import * as eccFormParamConfig from "../../config/eccFormParamConfig";
import { ERRORENUM } from "../../config/errorEnum";
import { BizError } from "../../util/bizError";
import * as sysTools from "../../tools/system";
import * as enterpriseData from "../../data/enterprise/enterprise";
import * as splitResultConfig from "../../config/splitResultConfig";
import * as fuHuaQiData from "../../data/fuHuaQi/fuhuaqi";
import * as configEnum from "../../config/enum";
import { eccFormParam } from "../../util/verificationParam";
import * as verificationEnumTools from "../../util/verificationEnum";
import { checkChange, extractData } from "../../util/piecemeal";
import * as eccFormParamConfig from "../../../config/eccFormParamConfig";
import { ERRORENUM } from "../../../config/errorEnum";
import { BizError } from "../../../util/bizError";
import * as sysTools from "../../../tools/system";
import * as enterpriseData from "../../../data/enterprise/enterprise";
import * as splitResultConfig from "../../../config/splitResultConfig";
import * as configEnum from "../../../config/enum";
import { eccFormParam } from "../../../util/verificationParam";
import * as verificationEnumTools from "../../../util/verificationEnum";
import { checkChange, extractData } from "../../../util/piecemeal";
/**
......@@ -178,152 +177,26 @@ export async function deleteEnterpriseByDraftId(draftId:string) {
/**
* 获取在孵企业信息列表
* 管理后台端
* @param createType 新注册/迁入 1:全选 2:新注册 3:迁入 以前是时间 2/23日修改为类型
* @param fuHuaQiUscc 所属孵化器
* @param industry 行业领域
* @param isNaturalPersonHolding 自然人控股
* @param page 页数
* @returns {dataList:[], count:0} dataList=数据列表 count:条件筛选下的数据总数
* 我的企业
* 小程序端 2.0
* @param uscc 孵化器统一信用代码
* @param state 孵化器状态 遵循 枚举FUHUASTATE
* @param name 孵化器名称
*/
export async function enterpriseList(createType:number, fuHuaQiUscc:string, industry, isNaturalPersonHolding:number, page:number) {
/**拼接查询条件 */
let selectParam:any = {};
if (createType == 2 || createType == 3) {
selectParam.isCreate = createType == 2 ? true : false;
}
if (fuHuaQiUscc) selectParam.fuHuaQiUscc = fuHuaQiUscc;
if (industry.length > 0) {
verificationEnumTools.eccEnumValue('管理后台获取在孵企业信息列表', 'industry', configEnum.INDUSTRY, industry);
selectParam.industry = industry;
}
if (isNaturalPersonHolding == 2 || isNaturalPersonHolding == 3) {
selectParam.isNaturalPersonHolding = isNaturalPersonHolding == 2 ? true : false;
}
selectParam.draftLock = true; //未提交的企业不能查看
/**需要用到的查询数据 */
let usccMap = await fuHuaQiData.findAllFuHuaQiOperationNameMap();//用于将孵化器uscc变成孵化器名称
let dataBaseList = await enterpriseData.findEnterpriseListToPage(selectParam, (page-1)*10 );
let count = await enterpriseData.findEnterpriseCount(selectParam);//符合查询条件的数据总数
/**组合返回结果 */
let dataList = [];
dataBaseList.forEach( info => {
/**截取返回数据 */
let changeData:any = extractData(splitResultConfig.EnterpriseListConfig, info, true);
/**匹配所属孵化器名称 匹配不上时这里显示空字符串 */
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
/** 返回的isCreate字段为字符串 当为导入数据时这里显示为空字符 */
if (info.enterpriseIsInPut) changeData.isCreate = "";
else changeData.isCreate = (changeData.isCreate) ? "新注册" : "新迁入";
/**将枚举值转为字符 */
changeData.industry = verificationEnumTools.changeEnumValue(configEnum.INDUSTRY, changeData.industry);
dataList.push(changeData);
});
export async function myEnterprise(uscc:string, state:number, name:string) {
return {count, dataList};
}
let selectParam:any = { state, fuHuaQiUscc:uscc};
if (name) selectParam.name = name;
let dataList = await enterpriseData.findEnterpriseList(selectParam);
/**
* 导出在孵企业信息列表
* 管理后台端
* @param createType 新注册时间/迁入时间
* @param fuHuaQiUscc 所属孵化器
* @param industry 行业领域 数组
* @param isNaturalPersonHolding 自然人控股
* @returns 二维数组
*/
export async function outPutEnterpriseData(createType:number, fuHuaQiUscc:string, industry, isNaturalPersonHolding:number, type:Number) {
/**拼接查询条件 */
let selectParam:any = {};
if (type == configEnum.OUTPUTTYPE.当前数据) {
if (createType == 2 || createType == 3) {
selectParam.isCreate = createType == 2 ? true : false;
}
if (fuHuaQiUscc) selectParam.fuHuaQiUscc = fuHuaQiUscc;
if (industry.length > 0) selectParam.industry = industry;
if (isNaturalPersonHolding == 2 || isNaturalPersonHolding == 3) {
selectParam.isNaturalPersonHolding = isNaturalPersonHolding == 2 ? true : false;
}
}
selectParam.draftLock = true;//匹配已经提交入库的企业
/**查询内容 */
let usccMap = await fuHuaQiData.findAllFuHuaQiOperationNameMap();//用于将孵化器uscc变成孵化器名称
let dataBaseList = await enterpriseData.findEnterpriseList(selectParam );
/**组合二维数组 titleList 与 keyList 要一一对应 */
const TitleList = [
"企业名称", "入库时间", "所属孵化器", "统一信用代码", "行业领域",
"注册时间", "首次入孵时间", "迁入时间", "是否自然人控股", "迁入前注册地址",
"注册地址", "经营地址", "租赁面积(平方米)"
];//表头顺序 如果这里修改了 下面的keyList也要修改
const KeyList = [
"name", "createTime", "fuhuaqiUscc", "uscc", "industry", "logonTime",
"firstIncubationTime", "timeOfImmigration", "isNaturalPersonHolding", "oldLogonAdd",
"logonAdd", "operatingAdd", "leasedArea"
];//表头对应的字段顺序
let dataList = [TitleList];
dataBaseList.forEach( info => {
/**截取返回结果 */
let changeData:any = extractData(splitResultConfig.EnterpriseListConfig, info, true);
/**匹配所属孵化器名称 匹配不上时这里显示空字符串 */
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
if (info.enterpriseIsInPut) changeData.isCreate = "";
else changeData.isCreate = (changeData.isCreate) ? "新注册" : "新迁入";
/**修改枚举值 */
changeData.industry = verificationEnumTools.changeEnumValue(configEnum.INDUSTRY, changeData.industry);
// dataList.push(changeData);
/**根据表头与key的顺序 生成小数组 */
let subList = [];
KeyList.forEach( keyStr => {
subList.push(info[keyStr] || '');
});
dataList.push(subList);
});
return dataList;
}
let enterpriseList = [];
/**
* 在孵企业页面的所属孵化器 下拉框
* 管理后台端
* 只返回有入孵企业的孵化器
* @returns result result类型为数组对象 对象内容为{name, uscc}
*/
export async function getAffiliationFuHuaQi() {
/**获取已有入孵企业的孵化器统一信用代码列表 */
let bindList = await enterpriseData.findAllBindFuHuaQiUsccList();
/**限制为 非禁用状态下的孵化器 */
let notDisabledList = await fuHuaQiData.findAllNotDisabledFuHuaQi();
let distinctMap = {}; //去重用的map对象 格式为:{uscc:name}
notDisabledList.forEach(info => {
distinctMap[info.uscc] = info.operationName;
});
let result = [];
bindList.forEach(fuHuaQiUscc => {
let fuHuaQiName = distinctMap[fuHuaQiUscc];
if ( fuHuaQiName ) {
result.push({
name:fuHuaQiName,
uscc:fuHuaQiUscc
});
}
dataList.forEach(info => {
let changeData:any = extractData(splitResultConfig.myEnterpriseDataConfig, info, false);
changeData.state = verificationEnumTools.changeEnumValue(configEnum.FUHUASTATE, changeData.state);
enterpriseList.push(changeData);
});
return {result}
return {enterpriseList};
}
\ No newline at end of file
......@@ -4,19 +4,17 @@
* 包括新融资信息的增删改查
*
*/
import * as eccFormParamConfig from "../../config/eccFormParamConfig";
import { ERRORENUM } from "../../config/errorEnum";
import * as financingData from "../../data/enterprise/financing";
import * as splitResultConfig from "../../config/splitResultConfig";
import { BizError } from "../../util/bizError";
import * as sysTools from "../../tools/system";
import * as enterpriseData from "../../data/enterprise/enterprise";
import * as fuhuaqiData from "../../data/fuHuaQi/fuhuaqi";
import moment = require("moment");
import * as configEnum from "../../config/enum";
import { eccFormParam } from "../../util/verificationParam";
import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
import { checkChange, extractData } from "../../util/piecemeal";
import * as eccFormParamConfig from "../../../config/eccFormParamConfig";
import { ERRORENUM } from "../../../config/errorEnum";
import * as financingData from "../../../data/enterprise/financing";
import * as splitResultConfig from "../../../config/splitResultConfig";
import { BizError } from "../../../util/bizError";
import * as sysTools from "../../../tools/system";
import * as enterpriseData from "../../../data/enterprise/enterprise";
import * as configEnum from "../../../config/enum";
import { eccFormParam } from "../../../util/verificationParam";
import { eccEnumValue } from "../../../util/verificationEnum";
import { checkChange, extractData } from "../../../util/piecemeal";
/**
......@@ -173,117 +171,3 @@ export async function getFuHuaQiEnterpriseForSelect(uscc:string) {
return dataList;
}
/**
* 融资企业信息列表
* 管理后台端
* @param monthData 数据月份 目前数据库没有该字段
* @param fuHuaQiName 所属孵化器 这里前端传的是孵化器的统一信用代码
* @param industry 行业领域
* @param fuHuaQiInvestment 孵化器是否参与投资
* @param page 页数
* @returns {data, count} data:数据列表 count:符合条件的数据量
*/
export async function financingList(monthData:string, fuHuaQiName:string, industry, fuHuaQiInvestment:number, page:number) {
/**拼接查询条件 */
let selectParam:any = {};
if (fuHuaQiName.length > 0) {
let fuHuaQiInfo = await fuhuaqiData.findFuHuaQiByUSCC(fuHuaQiName);
if(!fuHuaQiInfo) throw new BizError(ERRORENUM.未找到数据, `管理后台查询融资列表时 ${fuHuaQiName}不存在`);
selectParam.fuHuaQiUscc = fuHuaQiInfo.uscc;
}
if ( monthData.length > 0 ) {
let startT = moment(monthData).startOf('month').valueOf();
let endT = moment(monthData).endOf('month').valueOf();
selectParam.createTime = {'$gt':startT, '$lt':endT};
}
if (industry.length >0 ) selectParam.industry = industry;
if (fuHuaQiInvestment == 2 || fuHuaQiInvestment == 3) {
selectParam.fuHuaQiInvestment = fuHuaQiInvestment == 2 ? true : false;
}
/**查数据 */
let dataBaseList = await financingData.findFinancingListToPage(selectParam, (page-1)*10 );
let count = await financingData.findFinancingCount(selectParam);
let usccMap = await fuhuaqiData.findAllFuHuaQiOperationNameMap();//用于转换所属孵化器名称
/**拼接返回值 */
let dataList = [];
dataBaseList.forEach( info => {
/**截取返回字段 */
let changeData:any = extractData(splitResultConfig.FinancingListConfig, info, true);
/** 字段的特化处理 */
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
changeData.industry = changeEnumValue(configEnum.INDUSTRY, info.industry);
changeData.financingRounds = changeEnumValue(configEnum.FINANCINGROUNDS, info.financingRounds);
changeData.fuHuaQiInvestmentStyle = changeEnumValue(configEnum.FUHUAQILNVESTMENTSTYLE, info.fuHuaQiInvestmentStyle);
dataList.push(changeData);
});
return {count, dataList};
}
/**
* 导出融资企业信息列表
* 管理后台端
* @param monthData 数据月份 目前数据库没有该字段
* @param fuHuaQiName 所属孵化器
* @param industry 行业领域
* @param fuHuaQiInvestment 孵化器是否参与投资
* @param type 页数
* @returns
*/
export async function outPutFinancingList(monthData:string, fuHuaQiName:string, industry, fuHuaQiInvestment:number, type:number) {
let selectParam:any = {};
if (type == configEnum.OUTPUTTYPE.当前数据 ) {
/**如果选择当前数据 则拼接查询条件 */
if (fuHuaQiName.length > 0) {
let fuHuaQiInfo = await fuhuaqiData.findFuHuaQiByName(fuHuaQiName);
if(!fuHuaQiInfo) throw new BizError(ERRORENUM.未找到数据, `管理后台查询融资列表时 ${fuHuaQiName}不存在`);
selectParam.fuHuaQiUscc = fuHuaQiInfo.uscc;
}
if ( monthData.length > 0 ) {
let startT = moment(monthData).startOf('month').valueOf();
let endT = moment(monthData).endOf('month').valueOf();
selectParam.createTime = {'$gt':startT, '$lt':endT};
}
if (industry.length >0 ) selectParam.industry = industry;
if (fuHuaQiInvestment == 2 || fuHuaQiInvestment == 3) {
selectParam.fuHuaQiInvestment = fuHuaQiInvestment == 2 ? true : false;
}
}
/**主要查询 */
let dataBaseList = await financingData.findFinancingList(selectParam );
let usccMap = await fuhuaqiData.findAllFuHuaQiOperationNameMap();
/**拼接返回 需要注意的是 keyList要和titleList一一对应 */
let keyList = [
"name", "logonAdd", "operatingAdd", "financingAmount","investmentInstitutionsName",
"timeToObtainInvestment", "fuHuaQiInvestment", "fuHuaQiInvestmentAmount", "fuHuaQiInvestmentStyle", "createTime"
];
let titleList = [
"企业名称","注册地址","经营地址","融资金额(万元)","投资机构名称","获得投资时间",
"孵化器是否投资","孵化器投资金额(万元)","孵化器投资方式","录入时间",
];
let result = [titleList];
dataBaseList.forEach( info => {
/**截取返回字段 */
let changeData:any = extractData(splitResultConfig.FinancingListConfig, info, true);
changeData.fuhuaqiUscc = usccMap[info.fuHuaQiUscc] || "";
changeData.industry = changeEnumValue(configEnum.INDUSTRY, info.industry);
/**根据keyList的顺序生成小数组 */
let subList = [];
keyList.forEach(keyStr => {
subList.push(changeData[keyStr] || '');
});
result.push(subList);
});
return result;
}
\ No newline at end of file
......@@ -10,14 +10,14 @@
* 5.创建和删除按钮触发 相当于更新了isUpdate的状态
*/
import { ERRORENUM } from "../../config/errorEnum";
import { BizError } from "../../util/bizError";
import * as monthData from "../../data/fuHuaQi/monthTable";
import { extractData } from "../../util/piecemeal";
import * as sysTools from "../../tools/system";
import { findAllFuHuaQiOperationNameMap } from "../../data/fuHuaQi/fuhuaqi";
import * as splitResultConfig from "../../config/splitResultConfig";
import { OUTPUTTYPE } from "../../config/enum";
import { ERRORENUM } from "../../../config/errorEnum";
import { BizError } from "../../../util/bizError";
import * as monthData from "../../../data/fuHuaQi/monthTable";
import { extractData } from "../../../util/piecemeal";
import * as sysTools from "../../../tools/system";
import { findAllFuHuaQiOperationNameMap } from "../../../data/fuHuaQi/fuhuaqi";
import * as splitResultConfig from "../../../config/splitResultConfig";
import { OUTPUTTYPE } from "../../../config/enum";
/**
......@@ -107,85 +107,3 @@ export async function getMonthByUscc(uscc:string) {
return { data };
}
/**
* 月度出租率数据列表
* 管理后台端
* @param state 填报状态
* @param year 数据年份
* @param month 数据月份
* @param page 页面
*/
export async function monthTableList(state:number, year:number, month:number, page:number) {
let selectParam:any = {};
if ( !(state >=1 || state <=3) ) throw new BizError(ERRORENUM.参数错误, `state状态不合法 不合法值为 ${state}`);
if (state == 2 || state == 3) {
selectParam.draftLock = state == 2 ? true : false;
}
if (year) selectParam.year = year;
if (month) selectParam.month = month;
let dataBaseList = await monthData.findMonthTableListToPage(selectParam, (page-1)*10 );
let count = await monthData.findMonthTableListCount(selectParam);
let operationNameMap = await findAllFuHuaQiOperationNameMap();
let dataList = [];
dataBaseList.forEach( info => {
let onceInfo = {
operationName:operationNameMap[info.fuHuaQiUscc],
state:info.draftLock==false?'未填报':'已填报',
time:`${info.year}${info.month}月`,
occupancyRate:info.occupancyRate || '-'
};
dataList.push(onceInfo);
});
return {count, dataList}
}
/**
* 导出月度出租率数据列表
* 管理后台端
* @param state 填报状态
* @param year 数据年份
* @param month 数据月份
* @param page 页面
*/
export async function outPutMonthTableList(state:number, year:number, month:number, type:number) {
let selectParam:any = {};
if ( !(state >=1 || state <=3) ) throw new BizError(ERRORENUM.参数错误, `state状态不合法 不合法值为 ${state}`);
if (type == OUTPUTTYPE.当前数据 ) {
if (state == 2 || state == 3) {
selectParam.draftLock = state == 2 ? true : false;
}
if (year) selectParam.year = year;
if (month) selectParam.month = month;
}
let dataBaseList = await monthData.findMonthTableList(selectParam);
let operationNameMap = await findAllFuHuaQiOperationNameMap();
let keyList = [ "operationName", "state", "time", "occupancyRate"];
let titleList = [ "运营机构名称","填报状态","数据月份","出租率(%)"];
let dataList = [titleList];
dataBaseList.forEach( info => {
let onceInfo = {
operationName:operationNameMap[info.fuHuaQiUscc],
state:info.draftLock==false?'未填报':'已填报',
time:`${info.year}${info.month}月`,
occupancyRate:info.occupancyRate || '-'
};
let subList = [];
keyList.forEach(subInfo => {
subList.push(onceInfo[subInfo] || '');
});
dataList.push(subList);
});
return dataList;
}
\ No newline at end of file
/**
* 孵化器入口的系统设置
*/
......@@ -6,14 +6,14 @@
* 密码规则:6-18位 只允许有数字和字符,可以只有数字也可以只有字母 不允许有特殊字符 2023年02月21日确定需求
*/
import * as eccFormParamConfig from "../../config/eccFormParamConfig";
import { ERRORENUM } from "../../config/errorEnum";
import * as splitResultConfig from "../../config/splitResultConfig";
import * as fuhuaqiData from "../../data/fuHuaQi/fuhuaqi"
import { BizError } from "../../util/bizError";
import * as sysTools from "../../tools/system";
import { eccFormParam } from "../../util/verificationParam";
import { extractData } from "../../util/piecemeal";
import * as eccFormParamConfig from "../../../config/eccFormParamConfig";
import { ERRORENUM } from "../../../config/errorEnum";
import * as splitResultConfig from "../../../config/splitResultConfig";
import * as fuhuaqiData from "../../../data/fuHuaQi/fuhuaqi"
import { BizError } from "../../../util/bizError";
import * as sysTools from "../../../tools/system";
import { eccFormParam } from "../../../util/verificationParam";
import { extractData } from "../../../util/piecemeal";
/**
......@@ -75,23 +75,27 @@ export async function firstLoginChangePwd(uscc:string, pwd:string, confirmPwd:st
* 重置密码
* 小程序端
* @param uscc 信用代码
* @param pwd 原密码
* @param newPwd 修改后的密码
* @param pwd 原密码 md5之后的
* @param newPwd 新密码 未md5
* @param confirmPwd 确认新密码 未md5
* @returns {isSuccess:true/false}
*/
export async function changePassword(uscc:string, pwd:string, newPwd:string) {
let reg = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]");
if (reg.test(newPwd)) {
throw new BizError(ERRORENUM.密码不允许有特殊字符, uscc, pwd);
}
if (pwd.length > 24) {
throw new BizError(ERRORENUM.密码长度不能超过24个字符, uscc, pwd);
}
export async function changePassword(uscc:string, pwd:string, newPwd:string, confirmPwd:string ) {
if (newPwd != confirmPwd) throw new BizError(ERRORENUM.密码不一致);
if (newPwd.search(/^[A-Za-z0-9]{6,18}$/) < 0) throw new BizError(ERRORENUM.密码只能由618位字符和数字组成);
let fuhuaqiInfo = await fuhuaqiData.findFuHuaQiByUSCC(uscc);
if (!fuhuaqiInfo) throw new BizError(ERRORENUM.未找到数据);
/**由于pwd是md5之后的 所以这里md5一次即可 */
let checkPwd = sysTools.getPwdMd5(fuhuaqiInfo.uscc, pwd);
if (fuhuaqiInfo.pwd != checkPwd) throw new BizError(ERRORENUM.密码错误);
fuhuaqiInfo.pwd = sysTools.getPwdMd5(uscc, newPwd);
/**考虑到如果前端把新密码也md5 就不可以验证是不是符合规则 所以前端传的是明文
* 我们初始化密码的时候 有两次加密 第一次是密码md5 然后再和uscc 进行md5
* 于是这里也要如此操作
*/
fuhuaqiInfo.pwd = sysTools.getPwdMd5(uscc, sysTools.md5PwdStr(newPwd));
await fuhuaqiInfo.save();
return {isSuccess:true};
......@@ -133,48 +137,11 @@ export async function logout(uscc:string){
let count = await fuhuaqiData.findFuHuaQiUserCount(selectParam);
let dataList = [];
dataBaseList.forEach( info => {
let changeData = extractData(splitResultConfig.FuHuaQiListConfig, info, true);
let changeData:any = extractData(splitResultConfig.FuHuaQiListConfig, info, true);
changeData.liaison = info.personInCharge;//todo 这里陈金晶写的有bug 后续记得把协议和后台重新顶一下
dataList.push(changeData);
});
return {count, dataList};
}
/**
* 修改账号状态
* 管理后台端 禁用/启用
* @param uscc 孵化器统一信用代码
* @param userStatem 是否禁用 true=启用 false=禁用
* @returns
*/
export async function updateState(uscc:string, userState:boolean) {
let fuhuaqiInfo = await fuhuaqiData.findFuHuaQiByUSCC(uscc);
if(!fuhuaqiInfo) throw new BizError(ERRORENUM.账号不存在);
fuhuaqiInfo.userState = userState;
await fuhuaqiInfo.save();
return {isSuccess:true};
}
/**
* 添加孵化器账号
* 管理后台端
* @param param 表单信息
* @returns
*/
export async function addUser(param) {
eccFormParam("新增孵化器账号信息", eccFormParamConfig.FuHuaQiUserConfig, param);//校验表单参数
let fuhuaqiInfo = await fuhuaqiData.findFuHuaQiByUSCC(param.uscc);
if ( fuhuaqiInfo ) throw new BizError(ERRORENUM.该孵化器账号信息已存在, `${param.uscc}`);
const Pwd = param.uscc.slice(param.uscc.length-3);
param.pwd = Pwd;
await fuhuaqiData.createFuHuaQiUser(param);
return {isSuccess:true};
}
......@@ -5,10 +5,10 @@
* 预留好 重置密码 退出登录 接口
*/
import { ERRORENUM } from "../../config/errorEnum";
import { findGuanWeiHuiUserInfoByLoginId } from "../../data/guanWeiHui/guanweihui";
import { BizError } from "../../util/bizError";
import { getPwdMd5, getToken } from "../../tools/system";
import { ERRORENUM } from "../../../config/errorEnum";
import { findGuanWeiHuiUserInfoByLoginId } from "../../../data/guanWeiHui/guanweihui";
import { BizError } from "../../../util/bizError";
import { getPwdMd5, getToken } from "../../../tools/system";
/**
......
......@@ -8,7 +8,7 @@
import { findTaskCountByKey } from "../data/fuHuaQi/task";
import { getTimeKey } from "../tools/system";
import { provideTask } from "./fuHuqQi/task";
import { provideTask } from "./mobileFuHuaQi/fuHuaQi/task";
export function initSystemTask() {
fuHuaQiTask();
......
......@@ -153,7 +153,7 @@ export const FuHuaQiListConfig = {
operationName:{key:"运营机构名称 不可修改"},
uscc:{key:"营业执照"},
liaison:{key:"联系人"},
liaisonPhone:{key:"负责人"},
liaisonPhone:{key:"联系人电话"},
personInChargePhone:{key:"负责人联系电话"},
userState:{key:"账号状态"}
}
......@@ -223,3 +223,16 @@ export const OrganizationBaseDataConfig = {
operationModelDes:{key:"运营模式描述"}
// hatchingGround:{key:"经备案孵化场地"}
}
/**
* 使用端: 小程序端【孵化器入口】
* 场景: 我的企业列表
* 备注:
*/
export const myEnterpriseDataConfig = {
name:{key:"名称"},
uscc:{key:"统一信用代码"},
state:{key:"孵化器状态"},
leasedArea:{key:"租赁面积"}
}
\ No newline at end of file
......@@ -27,6 +27,7 @@ const enterpriseSchema = new Schema({
enterpriseIsInPut:{type:Boolean, default:false},//是否是初始数据 todo 后续要弃用 兼容原始数据无法判断是否是迁入企业这个问题加的字段
draftId:{type:String, index:true},//草稿id 编辑的时候使用这个id 保存之后就不认这个id了
mainBusiness:{type:String, default:""},//主营业务
state:Number,//孵化状态 遵循枚举 FUHUASTATE 值
});
var enterpriseModel;
......@@ -165,7 +166,6 @@ export async function deleteEnterprise(draftId:string) {
/**
* 获取符合条件的所有企业
* @param selectParam 查询参数
* @param skipCount 跳过数量
* @returns [] 孵化器列表
*/
export async function findEnterpriseList(selectParam) {
......
......@@ -16,8 +16,8 @@ const monthTableSchema = new Schema({
occupancyRate:Number,//出租率 单位为%
/**不下发字段 */
draftLock:{type:Boolean, default:false},//草稿锁,true为提交之后,false为草稿
month:{type:Number, index:true},
year:{type:Number, index:true},
month:{type:Number, index:true},//数据填报月份
year:{type:Number, index:true},//数据填报年份
isUpdate:{type:Boolean, default:false},
submitTime:Number,//提交时间
});
......@@ -111,3 +111,14 @@ export async function findMonthTableListCount(selectParam:object) {
export async function createMonthTableToList(tableList:object) {
await monthTableModel.insertMany(tableList);
}
/**
* 获取所有月度任务数据
* @param selectParam 查询参数
* @returns number 数据数量
*/
export async function findMonthCount(selectParam) {
return await monthTableModel.find(selectParam).count();
}
......@@ -18,6 +18,7 @@ const fuHuaQiTaskSchema = new Schema({
submitTime:Number,//提交时间
// relevanceId:String,//任务关联的表 financing 或 enterprise 的id 弃用
isSubmit:Boolean,//是否提交
month:Number,//数据填报月
});
var fuHuaQiTaskModel;
......@@ -50,7 +51,7 @@ export async function findFuHuaQiTaskByTaskId(taskId:string) {
let findList = await fuHuaQiTaskModel.find({taskId}).exec() || [];
let taskMap = {};
findList.forEach(item => {
taskMap[item.type] = {isSubmit:item.isSubmit};
taskMap[item.type] = {isSubmit:item.isSubmit, month:item.month};
});
return taskMap;
}
......
......@@ -8,7 +8,7 @@ async function lanuch() {
await initConfig();//初始化配置解析
await initDB();
await initBasicData();
await initSystemTask();
// await initSystemTask();
httpServer.createServer(systemConfig.port);
console.log('This indicates that the server is started successfully.');
}
......
......@@ -58,3 +58,23 @@ export async function checkGuanWeiHuiToken(req, res, next) {
next();
}
/**
* 中间件 校验管委会token
* @param req
* @param res
* @param next
* @returns
*/
export async function checkInterior(req, res, next) {
if (!req.headers) req.headers = {};
const Sign = req.headers.sign;
let sysSign = 'sadfjslakdfjlksadjffujisdaiofjsajl09092302'
if (!Sign || Sign != sysSign) return next(new BizError(ERRORENUM.非法登录, `内部接口非法调用 ${Sign}`));
next();
}
\ No newline at end of file
......@@ -34,3 +34,8 @@ let financingModel;
export function initModel() {
financingModel = new mySqlTableClass("monthTable", TableConfig, SQLENUM, MORETABLESQLENUM);
}
export async function createMonthTableToList(fuHuaQiList:object) {
await financingModel.insertMany(fuHuaQiList);
}
\ No newline at end of file
......@@ -5,8 +5,8 @@
*/
import * as asyncHandler from 'express-async-handler';
import * as enterpriseBiz from '../../biz/enterprise/enterprise';
import * as financingBiz from '../../biz/enterprise/financing';
import * as enterpriseAdminBiz from '../../biz/admin/enterprise/enterprise';
import * as financingAdminBiz from '../../biz/admin/enterprise/financing';
import { getTimeKey } from '../../tools/system';
import { checkGuanWeiHuiToken } from '../../middleware/user';
import { eccReqParamater } from '../../util/verificationParam';
......@@ -31,7 +31,7 @@ async function getEnterpriseList(req, res) {
const NotMustHaveKeys = ["createType", "fuHuaQiUscc", "industry", "isNaturalPersonHolding" ];
let { createType, fuHuaQiUscc, industry, isNaturalPersonHolding, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await enterpriseBiz.enterpriseList(createType, fuHuaQiUscc, industry, isNaturalPersonHolding, page);
let result = await enterpriseAdminBiz.enterpriseList(createType, fuHuaQiUscc, industry, isNaturalPersonHolding, page);
res.success(result);
}
......@@ -46,7 +46,7 @@ async function getFinancingList(req, res) {
const NotMustHaveKeys = ["monthData", "fuHuaQiName", "fuHuaQiInvestment", "industry" ];
let {monthData, fuHuaQiName, industry, fuHuaQiInvestment, page} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await financingBiz.financingList(monthData, fuHuaQiName, industry, fuHuaQiInvestment, page);
let result = await financingAdminBiz.financingList(monthData, fuHuaQiName, industry, fuHuaQiInvestment, page);
res.success(result);
}
......@@ -58,7 +58,7 @@ async function getFinancingList(req, res) {
* @param res
*/
async function affiliationFuHuaQi(req, res) {
let result = await enterpriseBiz.getAffiliationFuHuaQi();
let result = await enterpriseAdminBiz.getAffiliationFuHuaQi();
res.success(result);
}
......@@ -74,7 +74,7 @@ async function outPutEnterpriseData(req, res) {
let { createType, fuHuaQiUscc, industry, isNaturalPersonHolding, type } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let dataList = await enterpriseBiz.outPutEnterpriseData(createType, fuHuaQiUscc, industry, isNaturalPersonHolding, type);
let dataList = await enterpriseAdminBiz.outPutEnterpriseData(createType, fuHuaQiUscc, industry, isNaturalPersonHolding, type);
let name = `在孵企业${getTimeKey()}.xlsx`;
......@@ -92,7 +92,7 @@ async function outPutFinancingData(req, res) {
const NotMustHaveKeys = ["monthData", "fuHuaQiName", "fuHuaQiInvestment", "industry" ];
let {monthData, fuHuaQiName, industry, fuHuaQiInvestment, type} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let dataList = await financingBiz.outPutFinancingList(monthData, fuHuaQiName, industry, fuHuaQiInvestment, type);
let dataList = await financingAdminBiz.outPutFinancingList(monthData, fuHuaQiName, industry, fuHuaQiInvestment, type);
let name = `融资企业${getTimeKey()}.xlsx`;
......
......@@ -3,12 +3,13 @@
*/
import * as asyncHandler from 'express-async-handler';
import * as userBiz from '../../biz/fuHuqQi/user';
import * as baseBiz from '../../biz/fuHuqQi/base';
import * as userBiz from '../../biz/mobileFuHuaQi/fuHuaQi/user';
import * as monthAdminBiz from '../../biz/admin/fuHuaQi/month';
import * as fuHuaQiAdminBiz from '../../biz/admin/fuHuaQi/fuHuaQi';
import * as taskBiz from '../../biz/mobileFuHuaQi/fuHuaQi/task';
import { getTimeKey } from '../../tools/system';
import { monthTableList } from '../../biz/fuHuqQi/month';
import { checkGuanWeiHuiToken } from '../../middleware/user';
import * as monthBiz from '../../biz/fuHuqQi/month';
import { checkGuanWeiHuiToken, checkInterior } from '../../middleware/user';
import * as monthBiz from '../../biz/mobileFuHuaQi/fuHuaQi/month';
import { eccReqParamater } from '../../util/verificationParam';
......@@ -20,9 +21,16 @@ export function setRouter(httpServer) {
httpServer.post('/admin/fuhuaqi/adduser',checkGuanWeiHuiToken,asyncHandler(addUser));
httpServer.post('/admin/data/output/fuhuaqi',checkGuanWeiHuiToken, asyncHandler(outPutFuHuaQiData));
httpServer.post('/admin/data/output/month',checkGuanWeiHuiToken, asyncHandler(outPutMonthData));
/**测试接口 用于发放1月份任务 */
httpServer.post('/admin/admin/task/add12',checkInterior, asyncHandler(provideLastTask));
}
async function provideLastTask(req, res) {
await taskBiz.provideLastTask();
res.success({isUsccess:true});
}
/**
* 孵化器基本信息列表
* @param req
......@@ -40,7 +48,7 @@ async function fuHuaQiBaseList(req, res) {
const NotMustHaveKeys = ["lv", "institutionalNature", "operationModel", "foundingTeam" , "industry"];
let {lv, institutionalNature, industry, operationModel, foundingTeam, page} = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await baseBiz.fuHuaQiBaseList(lv, institutionalNature, industry, operationModel, foundingTeam, page);
let result = await fuHuaQiAdminBiz.fuHuaQiBaseList(lv, institutionalNature, industry, operationModel, foundingTeam, page);
res.success(result);
}
......@@ -56,7 +64,7 @@ async function getMonthList(req, res) {
const NotMustHaveKeys = ["state", "year", "month"];
let { state, year, month, page } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let result = await monthTableList(state, year, month, page);
let result = await monthAdminBiz.monthTableList(state, year, month, page);
res.success(result);
}
......@@ -85,7 +93,7 @@ async function getMonthList(req, res) {
let reqConf = {userState: 'Boolean', uscc: 'String' };
let { userState, uscc } = eccReqParamater(reqConf, req.body);
let result = await userBiz.updateState(uscc, userState);
let result = await fuHuaQiAdminBiz.updateState(uscc, userState);
res.success(result);
}
......@@ -99,7 +107,7 @@ async function addUser(req, res) {
let reqConf = {form: 'Object' };
let { form } = eccReqParamater(reqConf, req.body);
let result = await userBiz.addUser(form);
let result = await fuHuaQiAdminBiz.addUser(form);
res.success(result);
}
......@@ -110,7 +118,7 @@ async function outPutFuHuaQiData(req, res) {
const NotMustHaveKeys = ["lv", "institutionalNature", "industry", "operationModel", "foundingTeam"];
let { lv, institutionalNature, industry, type, operationModel, foundingTeam } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let dataList = await baseBiz.outPutFuHuaQiBaseData(lv, institutionalNature, industry, operationModel, foundingTeam, type);
let dataList = await fuHuaQiAdminBiz.outPutFuHuaQiBaseData(lv, institutionalNature, industry, operationModel, foundingTeam, type);
let name = `孵化器列表${getTimeKey()}.xlsx`;
......@@ -125,7 +133,7 @@ async function outPutMonthData(req, res) {
const NotMustHaveKeys = ["state", "year", "month"];
let { state, year, month, type } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
let dataList = await monthBiz.outPutMonthTableList(state, year, month, type);
let dataList = await monthAdminBiz.outPutMonthTableList(state, year, month, type);
let name = `月度任务${getTimeKey()}.xlsx`;
......
......@@ -2,7 +2,7 @@
* 管理后台端 管委会相关
*/
import * as guanWeiHuiBiz from '../../biz/guanWeiHui/user';
import * as guanWeiHuiBiz from '../../biz/mobileFuHuaQi/guanWeiHui/user';
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../../util/verificationParam';
......
......@@ -3,7 +3,7 @@
*/
import * as asyncHandler from 'express-async-handler';
import * as enterpriseBiz from '../../biz/enterprise/enterprise';
import * as enterpriseBiz from '../../biz/mobileFuHuaQi/enterprise/enterprise';
import { checkFuHuaQiToken } from '../../middleware/user';
import { eccReqParamater } from '../../util/verificationParam';
......@@ -126,16 +126,24 @@ async function delEnterpriseInfo(req, res) {
* @param res
*/
async function myEnterpriseList(req, res) {
let reqConf = {name: 'String', state:"Number" };
let { name, state } = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc;
let data = await enterpriseBiz.myEnterprise(Uscc, state, name);
res.success(data);
}
/**
* 企业基本信息 我的企业列表中按钮点开
* 企业基本信息
* 我的企业列表中点击查看按钮
* 2.0
* @param req
* @param res
*/
async function myEnterpriseInfo(req, res) {
let reqConf = {uscc: 'String' };
let { uscc } = eccReqParamater(reqConf, req.body);
const FuHuaQiUscc = req.headers.uscc;
}
\ No newline at end of file
......@@ -3,7 +3,7 @@
*/
import * as asyncHandler from 'express-async-handler';
import * as financingBiz from '../../biz/enterprise/financing';
import * as financingBiz from '../../biz/mobileFuHuaQi/enterprise/financing';
import { checkFuHuaQiToken } from '../../middleware/user';
import { eccReqParamater } from '../../util/verificationParam';
......
......@@ -5,8 +5,8 @@
*/
import * as asyncHandler from 'express-async-handler';
import * as baseBiz from '../../biz/fuHuqQi/base';
import * as taskBiz from '../../biz/fuHuqQi/task';
import * as baseBiz from '../../biz/mobileFuHuaQi/fuHuaQi/base';
import * as taskBiz from '../../biz/mobileFuHuaQi/fuHuaQi/task';
import { eccReqParamater } from '../../util/verificationParam';
import { checkFuHuaQiToken } from '../../middleware/user';
......@@ -143,7 +143,9 @@ async function completedList(req, res) {
const Uscc = req.headers.uscc;
res.success({});
let result = await taskBiz.fuHuaQiCompletedList(Uscc, selectTime);
res.success(result);
}
......@@ -159,5 +161,7 @@ async function pastDueList(req, res) {
let { selectTime } = eccReqParamater(reqConf, req.body, NotMustHaveKeys);
const Uscc = req.headers.uscc;
res.success({});
let result = await taskBiz.fuHuaQiPastdueList(Uscc, selectTime);
res.success(result);
}
\ No newline at end of file
......@@ -3,7 +3,7 @@
*/
import * as asyncHandler from 'express-async-handler';
import * as monthBiz from '../../biz/fuHuqQi/month';
import * as monthBiz from '../../biz/mobileFuHuaQi/fuHuaQi/month';
import { eccReqParamater } from '../../util/verificationParam';
import { checkFuHuaQiToken } from '../../middleware/user';
......@@ -21,8 +21,8 @@ export function setRouter(httpServer) {
* @param res
*/
async function addReport(req, res) {
let reqConf = {occupancyRate: 'Number' };
let { occupancyRate } = eccReqParamater(reqConf, req.body);
let reqConf = {occupancyRate: 'Number' };//这里可以填0
let { occupancyRate } = eccReqParamater(reqConf, req.body, ["occupancyRate"]);
const Uscc = req.headers.uscc;
let monthInfo = monthBiz.createReport(Uscc, occupancyRate);
......
......@@ -3,7 +3,7 @@
*/
import * as asyncHandler from 'express-async-handler';
import * as userBiz from '../../biz/fuHuqQi/user';
import * as userBiz from '../../biz/mobileFuHuaQi/fuHuaQi/user';
import { eccReqParamater } from '../../util/verificationParam';
import { checkFuHuaQiToken } from '../../middleware/user';
......@@ -11,6 +11,7 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/login', asyncHandler(login));
httpServer.post('/fuhuaqi/logout', checkFuHuaQiToken, asyncHandler(logout));
httpServer.post('/fuhuaqi/login/firstupdate', checkFuHuaQiToken, asyncHandler(firstUpdatePwd));
httpServer.post('/fuhuaqi/changepwd', checkFuHuaQiToken, asyncHandler(changePwd));
}
......@@ -47,7 +48,7 @@ async function logout(req, res) {
* @param res
*/
async function firstUpdatePwd(req, res) {
let reqConf = {confirmPwd:'String', pwd:'String', };
let reqConf = {confirmPwd:'String', pwd:'String' };
let {confirmPwd, pwd} = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc;
......@@ -56,3 +57,14 @@ async function firstUpdatePwd(req, res) {
res.success(result);
}
async function changePwd(req, res) {
let reqConf = {confirmPwd:'String', newPwd:'String', pwd:'String' };
let {confirmPwd, newPwd, pwd} = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc;
let result = await userBiz.changePassword(Uscc, pwd, newPwd, confirmPwd);
res.success(result);
}
\ No newline at end of file
......@@ -2,9 +2,11 @@
* 数据初始化
*
*/
import { FUHUAQILV, INDUSTRY, INSTITUTIONALNATURE } from "../config/enum";
import { FUHUAQILNVESTMENTSTYLE, FUHUAQILV, INDUSTRY, INSTITUTIONALNATURE } from "../config/enum";
import { createEnterpriseToList, findEnterpriseCount } from "../data/enterprise/enterprise";
import { createFuHuaQiToList, findAllFuHuaQiOperationUsccMap, findFuHuaQiUserCount } from "../data/fuHuaQi/fuhuaqi";
import { findFinancingCount } from "../data/enterprise/financing";
import { createFuHuaQiToList, findAllFuHuaQiOperationUsccMap, findAllNotDisabledFuHuaQi, findFuHuaQiUserCount } from "../data/fuHuaQi/fuhuaqi";
import { createMonthTableToList, findMonthCount } from "../data/fuHuaQi/monthTable";
import { getPwdMd5, getTaskId } from "./system";
const xlsx = require('node-xlsx');
const path = require('path');
......@@ -73,6 +75,7 @@ function getExcel(filePath) {
export async function initBasicData() {
await initFuHuaQiData();
await initEnterprise();
await initMonth();
}
async function initFuHuaQiData() {
......@@ -241,3 +244,115 @@ async function initEnterprise() {
await createEnterpriseToList(addList);
console.log("---> 企业数据 初始化成功");
}
async function initMonth() {
let count = await findMonthCount({});
if (count > 10) {
console.log("*** 12月月度数据 无需初始化");
return;
}
let {sheetMap} = getExcel(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '12月孵化器出租率.xlsx' ));
let dataList = sheetMap['孵化器月度数据'];
let addList= [];
let fhqList = await findAllNotDisabledFuHuaQi();
let distinctMap = {};
fhqList.forEach(info => {
let {uscc, operationName} = info;
distinctMap[operationName] = uscc;
});
dataList.forEach((subList, index) => {
let name = subList[2];
let occupancyRate = subList[6];
let uscc = distinctMap[name];
if (!uscc || !name || !occupancyRate ) {
return;
}
let addInfo = {
taskId:`${uscc}20231`,
name: `12月孵化器月度填报`,
fuHuaQiUscc:uscc,
occupancyRate : parseInt(`${occupancyRate *10000}`)/100,
draftLock:true,
month:12,
year:2022,
isUpdate:true,
submitTime:new Date().valueOf()
};
addList.push(addInfo);
});
await createMonthTableToList(addList);
console.log("---> 12月月度数据 初始化成功");
}
// async function initFinancing() {
// :{type:String, index:true},//融资企业统一信用代码 冗余字段
// :{type:String, index:true},//孵化器统一信用代码 冗余字段
// :String,//企业名称
// :{type:String, index:true},//任务id
// :String,//注册地址
// :String,//经营地址
// :Number,//融资金额(万元)
// :String,//投资机构名称
// :Number,//获得投资时间
// :{type:Boolean, default:false},//孵化器是否投资
// :Number,//孵化器投资金额(万元)
// :Number,//孵化器投资方式
// :{type:Boolean, default:false},//草稿锁,true为提交之后,false为草稿
// :Number,//录入时间
// industry:[Number],//领域
// logonTime:Number,//注册时间
// financingRounds:Number,//融资轮次
// let count = await findFinancingCount({});
// if (count > 10) {
// console.log("*** 融资数据 无需初始化");
// return;
// }
// let fhqList = await findAllNotDisabledFuHuaQi();
// let distinctMap = {};
// fhqList.forEach(info => {
// let {uscc, operationName} = info;
// distinctMap[operationName] = uscc;
// });
// let {sheetMap} = getExcel(path.join(__dirname.substring(0,__dirname.indexOf("out")), "res", '12月融资企业数据.xlsx' ));
// let dataList = sheetMap['在孵企业月度数据'];
// let addList = [];
// dataList.forEach((subList, index) => {
// let uscc = subList[4];
// let fuhuaqi = subList[3];
// let fuHuaQiUscc = distinctMap[fuhuaqi];
// if ( !fuHuaQiUscc || !uscc) {
// return;
// }
// let name = subList[2];
// let taskId = `${fuHuaQiUscc}20231`;
// let logonAdd = subList[6];
// let operatingAdd = subList[7];
// let financingAmount = subList[11] || 0;
// let investmentInstitutionsName = subList[12];
// let timeToObtainInvestment = new Date(subList[13]).valueOf();
// let fuHuaQiInvestment = subList[13] == "是" ? true : false;
// let fuHuaQiInvestmentAmount = subList[14] ||0;
// let fuHuaQiInvestmentStyle = subList[15] ? FUHUAQILNVESTMENTSTYLE.自有基金
// let draftLock = true;
// let createTime = new Date().valueOf();
// addList.push({
// });
// });
// await createFuHuaQiToList(addList);
// console.log("---> 孵化器数据 初始化成功");
// }
\ No newline at end of file
......@@ -17,7 +17,9 @@ const md5 = require("md5");
* @returns
*/
export function getTaskId(uscc:string) {
return `${uscc}${getTimeKey()}`;
// return `${uscc}${getTimeKey()}`;
//todo 这里15号要改掉
return `${uscc}${20232}`;
}
......
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