Commit 3313c217 by lixinming

no message

parent a70931c9
//企业端 活动
import moment = require("moment");
import * as activityData from "../../data/activity";
import { changeEnumManyValue } from "../../util/verificationEnum";
import { ACTIVITYLABEL } from "../../config/enum";
export async function activityList() {
let dbList = await activityData.findByParam({});
let dataList = [];
dbList.forEach(info => {
let {address, title, img, startTime, endTime, id, labelList} = info;
dataList.push({
label:changeEnumManyValue(ACTIVITYLABEL, labelList),
address, title, img, id,time:`${moment(startTime).format("YYYY/MM/DD")}-${moment(endTime).format("YYYY/MM/DD")}`
});
});
return {dataList};
}
export async function activityInfo(id) {
let activityInfo = await activityData.findOne({id});
let dataInfo = {
title:activityInfo.activityInfo,//标题
content:activityInfo.activityInfo,//内容
img:activityInfo.activityInfo,//图片
source:activityInfo.source,//来源
createTime:activityInfo.createTime,//创建时间
};
return {dataInfo}
}
\ No newline at end of file
......@@ -72,17 +72,6 @@ export async function visitStatisTypeList(fuHuaQiUscc) {
});
}
dataList.push({
key:"新入驻企业",
count:1,
list:[
{
enterpriseName:"测试",
id:"123",
demand:["测试标签", "测试标签2"]
}
]
});
return {dataList};
}
......@@ -235,27 +224,63 @@ export async function visitTrackAdd(fuHuaQiUscc:string, uscc:string, trackType:n
export async function visit_log_statis(fuHuaQiUscc:string, year:number) {
export async function visitLogStatis(fuHuaQiUscc:string, year:number) {
let startMs = moment(`${year}-01-01 00:00:00`).valueOf();
let endMs = moment(`${year}-01-01 00:00:00`).add(1,'y').valueOf();
let lastStartMs = moment(`${year}-01-01 00:00:00`).subtract(1, 'y').valueOf();
let thisYearParma = { visitTime:{"$gt":startMs, "$lt":endMs}, fuHuaQiUscc, state:{"$gt":VISITSTATE.走访安排}};
let dangQianCount = await visitData.findCountByParam(thisYearParma);
let liShiCount = await visitData.findCountByParam({ visitTime:{"$gt":startMs}, fuHuaQiUscc, state:{"$ne":VISITSTATE.走访安排}});
let lastYearCount = await visitData.findCountByParam({ visitTime:{"$gt":lastYearMs, "$lt":startMs}, fuHuaQiUscc });
let thisYearCount = dangQianCount + liShiCount;
let lastYearParma = { visitTime:{"$gt":lastStartMs, "$lt":startMs}, fuHuaQiUscc, state:{"$gt":VISITSTATE.走访安排}};
let liShiCount = await visitData.findCountByParam(lastYearParma);
let yearToYear = 0;
if (thisYearCount && lastYearCount) {
yearToYear = Math.ceil((thisYearCount - lastYearCount) / lastYearCount * 100)
let rate = 0;
if (dangQianCount && liShiCount) {
rate = Math.ceil((dangQianCount - liShiCount) / liShiCount * 100)
}
return {dataInfo:{rate, thisYearCount:dangQianCount}};
}
export async function visitLogList(fuHuaQiUscc:string, year:number) {
let startMs = moment(`${year}-01-01 00:00:00`).valueOf();
let endMs = moment(`${year}-01-01 00:00:00`).add(1,'y').valueOf();
let dbList = await visitData.findByParam({ visitTime:{"$gt":startMs, "$lt":endMs}, state:{"$gt":VISITSTATE.走访安排}, fuHuaQiUscc});
let monthMap = {};
dbList.forEach(item => {
let {state, enterpriseName, id, visitTime} = item;
let monthNumber = moment(visitTime).format("M");
if (!monthMap[monthNumber]) {
monthMap[monthNumber] = {count:0, dataList:[]};
}
monthMap[monthNumber].count += 1;
monthMap[monthNumber].dataList.push({
enterpriseName,
id,
state:changeEnumValue(VISITSTATE, state),
visitTime:moment(visitTime).format("YYYY/MM/DD HH:mm")
});
});
let dataList = [];
for (let key in monthMap) {
dataList.push({
key:changeEnumValue(VISITENTERPRISETYPE, parseInt(key)),
count:monthMap[key].count,
list:monthMap[key].dataList
});
}
return {dataList}
}
//企业需求相关
......
......@@ -592,4 +592,10 @@ export enum VISITDEMAND {
export enum RESEARCHTYPE {
领导走访 = 1
}
export enum ACTIVITYLABEL {
资金 = 1,
政策,
人才服务
}
\ No newline at end of file
/**
* 活动
*/
import {Schema} from 'mongoose';
import { baseDB } from '../db/mongo/dbInit';
const activitySchema = new Schema({
id:String,//标识
title:String,//标题
content:String,//内容
img:String,//图片
source:String,//来源
startTime:{type:Number, index: true},//开始时间
endTime:{type:Number, index: true},//结束时间
labelList:[Number],
createTime:Number,//创建时间
createUser:String,//创建人
address:String
});
var activityModel;
export function initModel(){
activityModel = baseDB.model('activity', activitySchema);
activityModel.selectOnceData = async function (paramater:object) {
let selectInfo = await activityModel.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);
});
}
/**
* 查询孵化器分数信息
* @param uscc 孵化器统一信用代码
* @returns
*/
export async function findOne(param) {
return await activityModel.selectOnceData(param);
}
/**通过条件查询孵化器得分信息 */
export async function findByParam(param) {
return await activityModel.find(param);
}
export async function findCountByParam(param) {
return await activityModel.find(param).countDocuments();
}
export async function createDataByParam(param) {
return await activityModel.create(param);
}
export async function removeOneData(id:string) {
return await activityModel.deleteOne({id});
}
\ No newline at end of file
/**
*企业活动
*/
import * as asyncHandler from 'express-async-handler';
import { checkEnterpriseToken } from '../../middleware/user';
import * as activityBiz from '../../biz/mobileEnterprise/activity';
import { eccReqParamater } from '../../util/verificationParam';
export function setRouter(httpServer) {
httpServer.post('/enterprise/activity/list', checkEnterpriseToken, asyncHandler(activity_list));//活动列表
httpServer.post('/enterprise/activity/info', checkEnterpriseToken, asyncHandler(activity_info));//活动详情
}
async function activity_list(req, res) {
let userInfo = await activityBiz.activityList();
res.success(userInfo);
}
async function activity_info(req, res) {
let reqConf = {id:'String'};
let {id} = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc;
let userInfo = await activityBiz.activityInfo(id);
res.success(userInfo);
}
......@@ -25,8 +25,8 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/visit/update/state', checkFuHuaQiToken, asyncHandler(visit_update_state));
httpServer.post('/fuhuaqi/visit/track/add', checkFuHuaQiToken, asyncHandler(visit_track_add));
httpServer.post('/fuhuaqi/visit/log/statis', checkFuHuaQiToken, asyncHandler(visit_track_log_statis));
// httpServer.post('/fuhuaqi/visit/log/list', checkFuHuaQiToken, asyncHandler(visit_track_log_list));
httpServer.post('/fuhuaqi/visit/log/statis', checkFuHuaQiToken, asyncHandler(visit_log_statis));
httpServer.post('/fuhuaqi/visit/log/list', checkFuHuaQiToken, asyncHandler(visit_log_list));
}
......@@ -146,21 +146,21 @@ async function visit_track_add(req, res) {
async function visit_log_statis(req, res) {
let reqConf = {};
let {} = eccReqParamater(reqConf, req.body);
let reqConf = {year:"Number"};
let {year} = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc;
let userInfo = await .();
let userInfo = await visitBiz.visitLogStatis(Uscc, year);
res.success(userInfo);
}
// async function visit_track_log_list(req, res) {
// let reqConf = {};
// let {} = eccReqParamater(reqConf, req.body);
// const Uscc = req.headers.uscc;
async function visit_log_list(req, res) {
let reqConf = {year:"Number"};
let {year} = eccReqParamater(reqConf, req.body);
const Uscc = req.headers.uscc;
// let userInfo = await .();
// res.success(userInfo);
// }
let userInfo = await visitBiz.visitLogList(Uscc, year);
res.success(userInfo);
}
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