Commit 4230f8ba by lixinming

2.1 小程序端排行榜

parent 381f01fe
...@@ -2,12 +2,14 @@ ...@@ -2,12 +2,14 @@
* 分数 * 分数
*/ */
import { CHANGEMODE, SCOREWAYS } from "../../../config/enum"; import moment = require("moment");
import { CHANGEMODE, SCOREWAYS, TASKTYPEENUM } from "../../../config/enum";
import { FuHuaQiMyDataScoreConfig, ScoreConfig, FuHuaQiBaseDataScoreConfig, EnterpriseScoreConfig, StarConfig } from "../../../config/scoreConfig"; import { FuHuaQiMyDataScoreConfig, ScoreConfig, FuHuaQiBaseDataScoreConfig, EnterpriseScoreConfig, StarConfig } from "../../../config/scoreConfig";
import { findEnterpriseList } from "../../../data/enterprise/enterprise"; import { findEnterpriseList } from "../../../data/enterprise/enterprise";
import { findFuHuaQiByUSCC } from "../../../data/fuHuaQi/fuhuaqi"; import { findAllFuHuaQiOperationNameMap, findFuHuaQiByUSCC } from "../../../data/fuHuaQi/fuhuaqi";
import * as scoreData from "../../../data/fuHuaQi/score"; import * as scoreData from "../../../data/fuHuaQi/score";
import * as scoreLogData from "../../../data/fuHuaQi/scoreLog"; import * as scoreLogData from "../../../data/fuHuaQi/scoreLog";
import { changeEnumValue } from "../../../util/verificationEnum";
/** /**
...@@ -177,3 +179,101 @@ async function myEnterpriseScoreCount(uscc:string) { ...@@ -177,3 +179,101 @@ async function myEnterpriseScoreCount(uscc:string) {
if (!valueCount) return ScoreConfig["企业基础数据"]; if (!valueCount) return ScoreConfig["企业基础数据"];
return ScoreConfig["企业基础数据"] * (isValueCount / valueCount); return ScoreConfig["企业基础数据"] * (isValueCount / valueCount);
} }
/**
* 分值明细
* @param uscc 孵化器统一信用代码
* @param year 年度时间戳
*/
export async function fuHuaQiScoreLog(uscc:string, year:number) {
let startTime = year;
let endTimeStr = `${new Date(startTime).getFullYear()}-12-31 23:59:59`;
let endTime = new Date(endTimeStr).valueOf();
let logList = await scoreLogData.getLog(uscc, startTime, endTime);
logList.sort( (a, b) => {return a.timeMs - b.timeMs });
let distinctMap = {};
logList.forEach(info => {
let timeKey = moment(info.timeMs).format("YYYY-MM");
if ( !distinctMap[timeKey] ) distinctMap[timeKey] = [];
let itemWaysStr = waysStr(info.ways, info.taskType, info.changeMode);
itemWaysStr += `${Math.ceil(info.addScore)}分`;
distinctMap[timeKey].push({
score:Math.ceil(info.score),
waysStr:itemWaysStr,
timeMs:info.timeMs
});
});
let dataList = [];
for (let key in distinctMap) {
let count = distinctMap[key].length;
dataList.push({
key,
count,
list:distinctMap[key]
});
}
return {dataList};
}
function waysStr(ways:number, type:number, changeMode) {
let str = "";
if (ways == SCOREWAYS.任务得分) {
if ( CHANGEMODE.增加 == changeMode) {
str = "完成";
} else {
str = "未提交";
}
if (type == TASKTYPEENUM.孵化器月度填报) str += "月度填报";
else if (type == TASKTYPEENUM.新注册或迁入企业登记) str += "企业录入填报";
else str += "融资企业填报";
}
if (ways == SCOREWAYS.我的企业数据) {
str += "我的信息更新"
}
if (ways == SCOREWAYS.我的企业数据) {
str += "我的企业更新"
}
if (ways == SCOREWAYS.我的数据) {
str += "我的数据更新"
}
if (CHANGEMODE.增加 == changeMode) str += " 上涨";
else str += " 下降";
return str;
}
/**
* 排行榜
* @param uscc 孵化器统一信用代码
*/
export async function rankList(uscc:string) {
let dataList = await scoreData.findScoreDataByParam({});
let nameMap = await findAllFuHuaQiOperationNameMap();
let rankList = [];
dataList.forEach(info => {
rankList.push({
name:nameMap[info.uscc],
score: Math.ceil(info.startScore +info.myDataScore +info.baseDataScore +info.myEnterpriseScore +info.taskScore)
})
});
rankList.sort( (a, b) => {return b.score - a.score});
let thisName = nameMap[uscc];
let thisFuHuaQiIndex = -1;
rankList.forEach((info, index) => {
if (info.name == thisName) thisFuHuaQiIndex = index;
});
return {rankList, thisFuHuaQiIndex};
}
\ No newline at end of file
...@@ -55,7 +55,7 @@ export async function addMany(addList) { ...@@ -55,7 +55,7 @@ export async function addMany(addList) {
* *
*/ */
export async function getLog(uscc:string, startTime:number, endTime:number) { export async function getLog(uscc:string, startTime:number, endTime:number) {
// await fuHuaQiScoreModel.create({uscc, score, addScore, timeMs:new Date().valueOf() }); return await fuHuaQiScoreLogModel.find({uscc, timeMs:{"$gt":startTime, "$lt":endTime} });
} }
......
...@@ -24,6 +24,9 @@ export function setRouter(httpServer) { ...@@ -24,6 +24,9 @@ export function setRouter(httpServer) {
httpServer.post('/fuhuaqi/task/submit', checkFuHuaQiToken, asyncHandler(submitTask));//提交待办任务 httpServer.post('/fuhuaqi/task/submit', checkFuHuaQiToken, asyncHandler(submitTask));//提交待办任务
httpServer.post('/fuhuaqi/task/completedlist', checkFuHuaQiToken, asyncHandler(completedList));//已办任务 httpServer.post('/fuhuaqi/task/completedlist', checkFuHuaQiToken, asyncHandler(completedList));//已办任务
httpServer.post('/fuhuaqi/task/pastduelist', checkFuHuaQiToken, asyncHandler(pastDueList));//已办任务 httpServer.post('/fuhuaqi/task/pastduelist', checkFuHuaQiToken, asyncHandler(pastDueList));//已办任务
/**分数 */
httpServer.post('/fuhuaqi/score/ranklist', checkFuHuaQiToken, asyncHandler(scoreRankList));
httpServer.post('/fuhuaqi/score/log', checkFuHuaQiToken, asyncHandler(scoreLog));
} }
...@@ -170,3 +173,18 @@ async function pastDueList(req, res) { ...@@ -170,3 +173,18 @@ async function pastDueList(req, res) {
res.success(result); res.success(result);
} }
async function scoreLog(req, res) {
const Uscc = req.headers.uscc;
let reqConf = {year:'Number'};
let { year } = eccReqParamater(reqConf, req.body);
let result = await scoreBiz.fuHuaQiScoreLog(Uscc, year);
res.success(result);
}
async function scoreRankList(req, res) {
const Uscc = req.headers.uscc;
let result = await scoreBiz.rankList(Uscc);
res.success(result);
}
\ 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