Commit afee3a4e by lixinming

no message

parent 49792b7c
/**
* 重点企业
*/
import moment = require("moment");
import { ENTERPRISECHANGETYPE } from "../../../config/enum";
import * as dynamicsData from "../../../data/enterprise/dynamics";
import * as enterpriseData from "../../../data/enterprise/enterprise";
import * as labelData from "../../../data/label";
import { changeEnumValue } from "../../../util/verificationEnum";
import { LABELGOAL } from "../../../config/enum/labelEnum";
import { BizError } from "../../../util/bizError";
import { ERRORENUM } from "../../../config/errorEnum";
export async function keynoteDynamicsHomeList(fuHuaQiUscc:string) {
let notRedCount = await dynamicsData.findCountByParam({fuHuaQiUscc, isRead:false});
let dbList = await dynamicsData.findByParam({fuHuaQiUscc});
let dataList = [];
dbList.forEach(item => {
let addInfo = {
changeType:changeEnumValue(ENTERPRISECHANGETYPE, item.changeType),
content:item.content,
id:item.id
};
dataList.push(addInfo);
});
let followCount = await enterpriseData.findEnterpriseCount({fuHuaQiUscc, follow:true});
return {dataList, notRedCount, followCount}
}
export async function keynoteDynamicsList(fuHuaQiUscc:string, type:number) {
let param:any = {};
if (type == 1) {
param.isRead = true;
} else {
param.isRead = false;
}
let dbList = await dynamicsData.findByParam({fuHuaQiUscc});
let dataList = [];
dbList.forEach(item => {
let addInfo = {
enterpriseName:item.enterpriseName,
changeType:changeEnumValue(ENTERPRISECHANGETYPE, item.changeType),
id:item.id,
uscc:item.uscc
};
dataList.push(addInfo);
});
return {dataList}
}
export async function keynoteDynamicsEnterprise( uscc:string) {
let dbList = await dynamicsData.findByParam({uscc});
let enterpriseName = "";
let dataList = [];
dbList.forEach(item => {
enterpriseName = item.enterpriseName;
let addInfo = {
changeType:changeEnumValue(ENTERPRISECHANGETYPE, item.changeType),
oldContent:item.oldContent || "",
newContent:item.content || "",
time:moment(item.createTime)
};
dataList.push(addInfo);
});
return {dataList, enterpriseName}
}
export async function keynoteList(fuHuaQiUscc:string, str:string, labels) {
let param:any = {fuHuaQiUscc};
if (str) param.name = {"$regex":str}
let dbList = await enterpriseData.findEnterpriseList(param);
let labelMap = await labelData.getLabelNamMap(LABELGOAL.企业);
let dynamicsList = await dynamicsData.findByParam({fuHuaQiUscc, isRead:false});
let dynamicsMap = {};
dynamicsList.forEach(item => {
if (!dynamicsMap[item.uscc]) dynamicsMap[item.uscc] = 0;
dynamicsMap[item.uscc] += 1;
})
let dataList = [];
dbList.forEach(item => {
let label = [];
if (item.labels) {
item.labels.forEach(labelItem => {
if (labelItem.state) {
label.push(labelMap[labelItem.labelId]);
}
})
}
dataList.push({
enterpriseName:item.name,
label,
isFollow:item.follow,
dynamicsCount:dynamicsMap[item.uscc]
});
});
return {dataList}
}
export async function changeEnterpriseFollow(uscc:string, followState) {
let enterpriseInfo = await enterpriseData.findEnterpriseByUscc(uscc);
if (!enterpriseInfo) throw new BizError(ERRORENUM.目标数据不存在);
enterpriseInfo.follow = followState;
await enterpriseInfo.save();
return {isSuccess:true}
}
\ No newline at end of file
......@@ -598,4 +598,11 @@ export enum ACTIVITYLABEL {
资金 = 1,
政策,
人才服务
}
export enum ENTERPRISECHANGETYPE {
注册地址变更 = 1,
高新技术认定,
企业认定,
股东
}
\ No newline at end of file
import {Schema} from 'mongoose';
import { baseDB } from '../../db/mongo/dbInit';
import { BUSINESSDATATYPE } from '../../config/enum';
const dynamicsSchema = new Schema({
id:String,
uscc:{type:String, index:true},//
enterpriseName:String,//企业名称
fuHuaQiUscc:String,
changeType:Number, //ENTERPRISECHANGETYPE
content:String,
oldContent:String,//变更前信息
createTime:Number,
isRead:{type:Boolean, default:false}
});
var dynamicsModel;
export function initModel(){
dynamicsModel = baseDB.model('dynamics', dynamicsSchema);
dynamicsModel.selectOnceData = async function (paramater:object) {
let selectInfo = await dynamicsModel.findOne(paramater).exec();
if (selectInfo) {
if (!selectInfo.runSave) {
selectInfo.runSave = selectInfo.save;
selectInfo.save = save.bind(selectInfo)
}
}
return selectInfo;
}
}
export async function save(throwError=false) {
if (!this.isModified()) return;
await this.runSave({validateBeforeSave:false}).catch(err=>{
console.log(err);
});
}
export async function findOne(param) {
return await dynamicsModel.selectOnceData(param);
}
export async function findByParam(param) {
return await dynamicsModel.find(param);
}
export async function findCountByParam(param) {
return await dynamicsModel.find(param).countDocuments();
}
export async function createDataByParam(param) {
return await dynamicsModel.create(param);
}
export async function removeOneData(id:string) {
return await dynamicsModel.deleteOne({id});
}
\ No newline at end of file
......@@ -44,6 +44,7 @@ import * as visitModel from "../../data/fuHuaQi/visit";
import * as demandModel from "../../data/fuHuaQi/demand";
import * as trackModel from "../../data/fuHuaQi/track";
import * as activityModel from "../../data/activity";
import * as dynamicsModel from "../../data/enterprise/dynamics";
......@@ -92,4 +93,6 @@ export async function initTable() {
demandModel.initModel();
trackModel.initModel();
activityModel.initModel();
dynamicsModel.initModel();
}
\ No newline at end of file
......@@ -16,19 +16,9 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/business/deletereport', checkFuHuaQiToken, asyncHandler(deletereportBusiness));
httpServer.post('/fuhuaqi/business/select', checkFuHuaQiToken, asyncHandler(selectBusiness));
//重点企业
// httpServer.post('/fuhuaqi/keynote/dynamics/list', checkFuHuaQiToken, asyncHandler(keynote_dynamics_list));//动态
// httpServer.post('/fuhuaqi/keynote/dynamics/unread', checkFuHuaQiToken, asyncHandler(keynote_dynamics_unread));//未读
// httpServer.post('/fuhuaqi/keynote/dynamics/read', checkFuHuaQiToken, asyncHandler(keynote_dynamics_read));//已读
// httpServer.post('/fuhuaqi/keynote/dynamics/enterprise', checkFuHuaQiToken, asyncHandler(keynote_dynamics_enterprise));//企业动态
// httpServer.post('/fuhuaqi/keynote/list', checkFuHuaQiToken, asyncHandler(keynote_list));//企业列表
// httpServer.post('/fuhuaqi/keynote/add', checkFuHuaQiToken, asyncHandler(keynote_add));//添加企业
// httpServer.post('/fuhuaqi/keynote/del', checkFuHuaQiToken, asyncHandler(keynote_add));//取消重点企业
}
/**
* 展示孵化器经营数据
* @param req
......
......@@ -4,6 +4,7 @@
import * as asyncHandler from 'express-async-handler';
import * as myEnterpriseBiz from '../../biz/mobileFuHuaQi/enterprise/myEnterprise';
import * as keynoteBiz from '../../biz/mobileFuHuaQi/enterprise/keynote';
import { checkFuHuaQiToken } from '../../middleware/user';
import { eccReqParamater } from '../../util/verificationParam';
import { FUHUASTATE } from '../../config/enum';
......@@ -25,8 +26,68 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/myenterprise/teaminfo/select', checkFuHuaQiToken, asyncHandler(myEnterpriseTeamInfo));
// httpServer.post('/fuhuaqi/myenterprise/team/info', checkFuHuaQiToken, asyncHandler(myEnterpriseTeamInfo));
httpServer.post('/fuhuaqi/myenterprise/businessdata/select', checkFuHuaQiToken, asyncHandler(myEnterpriseBusinessData));
//重点企业
httpServer.post('/fuhuaqi/keynote/dynamics/homelist', checkFuHuaQiToken, asyncHandler(keynote_dynamics_home_list));//动态
httpServer.post('/fuhuaqi/keynote/dynamics/list', checkFuHuaQiToken, asyncHandler(keynote_dynamics_list));//未读
httpServer.post('/fuhuaqi/keynote/dynamics/enterprise', checkFuHuaQiToken, asyncHandler(keynote_dynamics_enterprise));//企业动态
httpServer.post('/fuhuaqi/keynote/list', checkFuHuaQiToken, asyncHandler(keynote_list));//企业列表
httpServer.post('/fuhuaqi/keynote/add', checkFuHuaQiToken, asyncHandler(keynote_add));//添加企业
httpServer.post('/fuhuaqi/keynote/del', checkFuHuaQiToken, asyncHandler(keynote_del));//取消重点企业
}
async function keynote_dynamics_home_list(req, res) {
const Uscc = req.headers.uscc;
let result = await keynoteBiz.keynoteDynamicsHomeList(Uscc);
res.success(result);
}
async function keynote_dynamics_list(req, res) {
const Uscc = req.headers.uscc;
let reqConf = {type: 'Number' };
let { type } = eccReqParamater(reqConf, req.body);
let result = await keynoteBiz.keynoteDynamicsList(Uscc, type);
res.success(result);
}
async function keynote_dynamics_enterprise(req, res) {
let reqConf = {uscc: 'String' };
let { uscc } = eccReqParamater(reqConf, req.body);
let result = await keynoteBiz.keynoteDynamicsEnterprise( uscc);
res.success(result);
}
async function keynote_list(req, res) {
let reqConf = {label: '[String]' , selectStr: 'String'};
let { label, selectStr } = eccReqParamater(reqConf, req.body,["label", "selectStr"]);
const FuHuaQiUscc = req.headers.uscc;
let result = await keynoteBiz.keynoteList( FuHuaQiUscc, selectStr, label);
res.success(result);
}
async function keynote_add(req, res) {
let reqConf = {uscc: 'String'};
let { uscc } = eccReqParamater(reqConf, req.body);
const FuHuaQiUscc = req.headers.uscc;
let result = await keynoteBiz.changeEnterpriseFollow( uscc, true);
res.success(result);
}
async function keynote_del(req, res) {
let reqConf = {uscc: 'String'};
let { uscc } = eccReqParamater(reqConf, req.body);
const FuHuaQiUscc = req.headers.uscc;
let result = await keynoteBiz.changeEnterpriseFollow( uscc, false);
res.success(result);
}
......
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