Commit a953185e by lixinming

no message

parent 725aa859
This source diff could not be displayed because it is too large. You can view the blob instead.
#
# Wavefront material file
# Converted by Meshlab Group
#
newmtl material_0
Ka 0.200000 0.200000 0.200000
Kd 1.000000 1.000000 1.000000
Ks 1.000000 1.000000 1.000000
Tr 0.000000
illum 2
Ns 0.000000
map_Kd model.jpg
import { DATAQUEUEENUM } from "../config/enum";
import { APIENUM } from "../config/interficeEnum";
import { getQueueData, getReqApiData } from "../data/queueData";
import { getQueueData } from "../data/queueData";
import { getReqApiData } from "../data/reqData";
export async function getStudentStatsGradeLeft(gradeId:string) {
......@@ -283,8 +284,8 @@ export async function getStudentStatsSchoolRight() {
let canGuanTongJi = [];
let huoDongTongJi = [];
let yanChuTongJi = [];
if (reqActivityData.list && Array.isArray(reqActivityData.list.list) && reqActivityData.list.list.length > 0) {
reqActivityData.list.list.forEach(info => {
if (reqActivityData && Array.isArray(reqActivityData.list) && reqActivityData.list.length > 0) {
reqActivityData.list.forEach(info => {
let {activityTime, activityName, activityType} = info;
huoDongTongJi.push({
time:activityTime||'',
......@@ -312,8 +313,8 @@ export async function getStudentStatsSchoolRight() {
let huoJiangTongJi = [];
let reqAwardsData:any = await getReqApiData(APIENUM.获取学生获奖列表, {pageNo:1, pageSize:50 });
if (reqAwardsData.list && Array.isArray(reqAwardsData.list.list) && reqAwardsData.list.list.length > 0) {
reqAwardsData.list.list.forEach(info => {
if (reqAwardsData && Array.isArray(reqAwardsData.list) && reqAwardsData.list.length > 0) {
reqAwardsData.list.forEach(info => {
let {awardTime, awardName, studentName} = info;
huoJiangTongJi.push({
time:awardTime||'',
......
......@@ -4,7 +4,8 @@
import { DATAQUEUEENUM, GRADEENUM } from "../config/enum";
import { APIENUM } from "../config/interficeEnum";
import { getQueueData, getReqApiData, postReqApiData } from "../data/queueData";
import { getQueueData } from "../data/queueData";
import { getReqApiData } from "../data/reqData";
import { changeEnumValue } from "../util/piecemeal";
......@@ -36,13 +37,11 @@ export async function selectStudentList( grade:number, classNum:number, name:str
if (grade) reqBody.gradeId = grade;
if (classNum) reqBody.classNum = classNum;
if (name) reqBody.studentName = name;
let reqData:any = await getReqApiData(APIENUM.获取学生列表, reqBody);
let reqData:any = await getReqApiData(APIENUM.获取学生列表, reqBody, 'page');
let dataList = [];
if (reqData.page && Array.isArray(reqData.page)) {
let {page} = reqData;
page.forEach(info => {
if (reqData) {
reqData.forEach(info => {
let {studentId, studentName, className, gradeId, studentSort} = info;
dataList.push({
studentName,
......@@ -64,10 +63,10 @@ export async function selectStudentList( grade:number, classNum:number, name:str
* @returns
*/
export async function studentStatsLeft(studentId:string) {
let reqBaseData:any = await getReqApiData(APIENUM.获取学生列表, {studentId});
let reqBaseData:any = await getReqApiData(APIENUM.获取学生列表, {studentId}, 'page');
let classId = '';
if (Array.isArray(reqBaseData.page) && reqBaseData.page.length > 0) {
let item = reqBaseData.page[0];
if (reqBaseData) {
let item = reqBaseData[0];
classId = item.classId || '';
}
......@@ -152,33 +151,33 @@ export async function studentStatsLeft(studentId:string) {
BMIChart:[]
};
let reqBIMData:any = await getReqApiData(APIENUM.学生BMI趋势, {studentId});
if(Array.isArray(reqBIMData.list) && reqBIMData.list.length > 0) {
reqBIMData.list.forEach(info => {
if(reqBIMData) {
reqBIMData.forEach(info => {
let {name, value} = info;
shenXinJianKang.BMIChart.push({key:name, value});
});
}
let reqAllergyData:any = await getReqApiData(APIENUM.学生过敏情况, {studentId});
if(Array.isArray(reqAllergyData.list) && reqAllergyData.list.length > 0) {
let item = reqAllergyData.list[0];
if(reqAllergyData.length) {
let item = reqAllergyData[0];
shenXinJianKang.peculiarity = item.allergy || '';
};
let reqAtopyData:any = await getReqApiData(APIENUM.获取学生特异体质, {studentId});
if(Array.isArray(reqAtopyData.list) && reqAtopyData.list.length > 0) {
let item = reqAtopyData.list[0];
if(reqAtopyData.length) {
let item = reqAtopyData[0];
shenXinJianKang.HPI = item.atopy || '';
};
let reqTzjkData:any = await getReqApiData(APIENUM.获取学生体质健康, {studentId});
if (Array.isArray(reqTzjkData.list) && reqTzjkData.list.length > 0) {
let item = reqTzjkData.list[0];
if (reqTzjkData.length) {
let item = reqTzjkData[0];
shenXinJianKang.BMI = item.bmi || 0;
}
/**美育活动 */
let meiYuHuoDong = { pie:[], activeLog:[] };
let reqActivityData:any = await getReqApiData(APIENUM.获取学生活动列表, {pageNo:1, pageSize:100, studentId});
if (reqActivityData.list && Array.isArray(reqActivityData.list.list) && reqActivityData.list.list.length > 0 ) {
let item = reqActivityData.list.list;
if (reqActivityData && Array.isArray(reqActivityData.list) && reqActivityData.list.length > 0 ) {
let item = reqActivityData.list;
let activityDistinctMap = {};
item.forEach((info,index) => {
let {activityType, activityName} = info;
......@@ -196,10 +195,10 @@ export async function studentStatsLeft(studentId:string) {
/**劳动教育 */
let laoDongJiaoYu = [];
let reqActivityCountData:any = await getReqApiData(APIENUM.获取学生各类活动统计, {studentId});
if(Array.isArray(reqActivityCountData.list) && reqActivityCountData.list.length > 0) {
if(reqActivityCountData) {
let itemMax = 0;
reqActivityCountData.list.forEach(info => {itemMax = Math.max(itemMax, info.value)})
reqActivityCountData.list.forEach(info => {
reqActivityCountData.forEach(info => {itemMax = Math.max(itemMax, info.value)})
reqActivityCountData.forEach(info => {
let {name, value} = info;
laoDongJiaoYu.push({key:name, value, max:itemMax});
});
......@@ -216,12 +215,12 @@ export async function studentStatsLeft(studentId:string) {
* @returns
*/
export async function studentStatsCenter(studentId:string) {
let reqBaseData:any = await getReqApiData(APIENUM.获取学生列表, {studentId});
let reqModelData:any = await getReqApiData(APIENUM.获取学生模型, {studentId, type:1});
let reqBaseData:any = await getReqApiData(APIENUM.获取学生列表, {studentId}, 'page');
let reqModelData:any = await getReqApiData(APIENUM.获取学生模型, {studentId, type:1}, 'url');
let gradeId = '1';
let studentSort = '';
if (Array.isArray(reqBaseData.page) && reqBaseData.page.length > 0) {
let item = reqBaseData.page[0];
if (reqBaseData.length > 0) {
let item = reqBaseData[0];
gradeId = item.gradeId || '1';
studentSort = item.studentSort || '';
}
......@@ -239,16 +238,13 @@ export async function studentStatsCenter(studentId:string) {
politicalOutlook:"",
dateOfBirth:"",
modelUrls:{
// jpg:reqModelData.url ? reqModelData.url+'/model.jpg':'',
// mtl:reqModelData.url ? reqModelData.url+'/model.obj.mtl':'',
// obj:reqModelData.url ? reqModelData.url+'/model.obj':''
jpg:'http://192.168.0.105:30001/model/model.jpg',
mtl:'http://192.168.0.105:30001/model/model.obj.mtl',
obj:'http://192.168.0.105:30001/model/model.obj'
jpg:reqModelData.url ? reqModelData.url+'/model.jpg':'',
mtl:reqModelData.url ? reqModelData.url+'/model.obj.mtl':'',
obj:reqModelData.url ? reqModelData.url+'/model.obj':''
}
};
if (Array.isArray(reqTzjkData.list) && reqTzjkData.list.length > 0) {
let item = reqTzjkData.list[0];
if (reqTzjkData.length) {
let item = reqTzjkData[0];
base.name = item.studentName || '';
base.className = `${item.gradeName || ''}${item.className || ''}`;
base.studentId = studentSort;//这里要换成学号
......@@ -258,15 +254,14 @@ export async function studentStatsCenter(studentId:string) {
bmi = item.bmi;
bmiLevel = item.bmiLevel;
}
if (reqHobbyData.list && Array.isArray(reqHobbyData.list.list) && reqHobbyData.list.list.length > 0) {
let item = reqHobbyData.list.list[0];
if (reqHobbyData && Array.isArray(reqHobbyData.list) && reqHobbyData.list.length > 0) {
let item = reqHobbyData.list[0];
base.politicalOutlook = item.isLeague == "是" ? "团员" : "";
}
let reqJiuGeYiData:any = await getReqApiData(APIENUM.获取学生个人九个一工程, {studentId});
let jiuGeYiSelf = [];
if (reqJiuGeYiData.list) {
let item = reqJiuGeYiData.list;
if (reqJiuGeYiData) {
let jiuGeYiConfig = [
{name:"完成一个课题研究", key:'project'},
{name:"阅读一本经典书籍", key:'readClassicBook'},
......@@ -280,7 +275,7 @@ export async function studentStatsCenter(studentId:string) {
];
jiuGeYiConfig.forEach(info => {
let {name, key} = info;
let value = item[key] || 0;
let value = reqJiuGeYiData[key] || 0;
value = value > 1 ? 1 : value
jiuGeYiSelf.push({key:name, value:parseFloat(value)});
});
......@@ -318,8 +313,8 @@ export async function studentStatsCenter(studentId:string) {
canguan:[]
};
let reqAwardData:any = await getReqApiData(APIENUM.获取学生获奖列表, {studentId, pageNo:1, pageSize:10});
if (reqAwardData.list && Array.isArray(reqAwardData.list.list) && reqAwardData.list.list.length > 0) {
reqAwardData.list.list.forEach(info => {
if (reqAwardData && Array.isArray(reqAwardData.list) && reqAwardData.list.length > 0) {
reqAwardData.list.forEach(info => {
let {awardTime, awardLevel, awardName} = info;
dongTai.canguan.push({
time:awardTime||'',
......@@ -329,8 +324,8 @@ export async function studentStatsCenter(studentId:string) {
});
}
let reqActivityData:any = await getReqApiData(APIENUM.获取学生活动列表, {studentId, pageNo:1, pageSize:10});
if (reqActivityData.list && Array.isArray(reqActivityData.list.list) && reqActivityData.list.list.length > 0) {
reqActivityData.list.list.forEach(info => {
if (reqActivityData && Array.isArray(reqActivityData.list) && reqActivityData.list.length > 0) {
reqActivityData.list.forEach(info => {
let {activityTime, activityType, activityName} = info;
dongTai.canguan.push({
time:activityTime||'',
......@@ -389,8 +384,8 @@ export async function studentStatsRight(studentId:string) {
};
let reqActivityData:any = await getReqApiData(APIENUM.获取学生活动列表, {pageNo:1, pageSize:10, studentId});
if (reqActivityData.list && Array.isArray(reqActivityData.list.list) && reqActivityData.list.list.length > 0) {
reqActivityData.list.list.forEach(info => {
if (reqActivityData && Array.isArray(reqActivityData.list) && reqActivityData.list.length > 0) {
reqActivityData.list.forEach(info => {
let {activityTime, activityName, activityType} = info;
let addItem = {
time:activityTime||'',
......@@ -423,8 +418,8 @@ export async function studentStatsRight(studentId:string) {
});
}
let reqAwardsData:any = await getReqApiData(APIENUM.获取学生获奖列表, {pageNo:1, pageSize:10, studentId});
if (reqAwardsData.list && Array.isArray(reqAwardsData.list.list) && reqAwardsData.list.list.length > 0) {
reqAwardsData.list.list.forEach(info => {
if (reqAwardsData && Array.isArray(reqAwardsData.list) && reqAwardsData.list.length > 0) {
reqAwardsData.list.forEach(info => {
let {awardType} = info;
if (awardType == "健康") jiangKangSuYang.awards += 1;
});
......
......@@ -207,7 +207,14 @@ export async function getTeacherExternal() {
{key:"一级教师", value:0},
{key:"学科导师", value:11},
{key:"特聘专家", value:16}
]
];
let teacherImgList = [];
for (let i = 1; i <= 14; i++) {
let fileType = '.png';
if (i == 14) fileType = '.jpg';
teacherImgList.push({key:i, value:`/teacherimg/${i}${fileType}`});
}
let jiaoShiZiYuan = {
jiaoShiShu:0,
......@@ -384,7 +391,7 @@ export async function getTeacherExternal() {
biaoTi,
jiaoShiZiYuan, jiaoShiZhengZhiMianMao, zhaoPinRenCaiLiuDong, jiaoShiZhuanYeJianShe,chuangXinXueXi,
tePinTuanDui, zhuanJiaTuanDui, xueKeDaoShiTuanDui, kuaXueKeJiaoXue,
jiaoYuPeiYu, jiaoShiFaZhanGuiHua, jiaoYuKeYan, jiaoYanHuoJiang
jiaoYuPeiYu, jiaoShiFaZhanGuiHua, jiaoYuKeYan, jiaoYanHuoJiang, teacherImgList
};
return result;
}
\ No newline at end of file
import moment = require("moment");
import { APIENUM } from "../config/interficeEnum";
import { getQueueData, getReqApiData } from "../data/queueData";
import { DATAQUEUEENUM, GRADEENUM } from "../config/enum";
import { GRADEENUM } from "../config/enum";
import { changeEnumValue } from "../util/piecemeal";
import { getReqApiData } from "../data/reqData";
export async function getTeacherInfo(teacherId:string) {
let base = {
......@@ -16,13 +16,13 @@ export async function getTeacherInfo(teacherId:string) {
};
let introduction = "";
let reqTeacherSubjectData:any = await getReqApiData(APIENUM.获取教师列表, {teacherId});
if (Array.isArray(reqTeacherSubjectData.list) && reqTeacherSubjectData.list.length > 0) {
let {subjectNames } = reqTeacherSubjectData.list[0];
if (reqTeacherSubjectData) {
let {subjectNames } = reqTeacherSubjectData[0];
base.discipline = subjectNames;
}
let reqTeacherInfoData:any = await getReqApiData(APIENUM.教师基本信息, { teacherId});
if (Array.isArray(reqTeacherInfoData.list) && reqTeacherInfoData.list.length > 0) {
let {name, sexName, title, birthDate, remark } = reqTeacherInfoData.list[0];
if (reqTeacherInfoData) {
let {name, sexName, title, birthDate, remark } = reqTeacherInfoData[0];
base.name = name;
base.sex = sexName;
base.title = title;
......@@ -48,8 +48,8 @@ export async function getTeacherList(inGrade:number, discipline:string, sex:numb
let dataList = [];
let reqTeacherInfoData:any = await getReqApiData(APIENUM.获取教师列表, selectParam);
if (reqTeacherInfoData.list && Array.isArray(reqTeacherInfoData.list) && reqTeacherInfoData.list.length > 0) {
reqTeacherInfoData.list.forEach(info => {
if (reqTeacherInfoData) {
reqTeacherInfoData.forEach(info => {
let {teacherName, grade, genderName, teacherUserId, subjectNames } = info;
dataList.push({
teacherName:teacherName,
......
......@@ -30,5 +30,5 @@ export enum APIENUM {
学生体质预警 = 'getStuBMIWarning',
九个一预警 = 'queryEarlyWarning',
获取学生模型='queryStuModel'
}
\ No newline at end of file
}
import { initStudentQueueData, initTeacherQueueData } from "./queueData";
import { updateToken } from "./reqData";
import { selectStudentList, studentStatsCenter, studentStatsLeft, studentStatsRight } from "../biz/studentInfo";
import { getTeacherInfo } from "../biz/teacherInfo";
import { getToken, initStudentQueueData, initTeacherQueueData } from "./queueData";
/**
* 初始化缓存数据 和相关凭证
*/
export async function initData() {
//先初始化token
await getToken();
await updateToken();
await initStudentQueueData();
await initTeacherQueueData();
//测试
// await selectStudentList(1, 1, '');
// await studentStatsRight('738c2ef8425b11ee98a202031519086a');
// await getTeacherInfo('0be2c9fab1bb11edb278020315b00957');
}
......@@ -3,17 +3,12 @@
*/
import { DATAQUEUEENUM, GRADEENUM } from "../config/enum";
import { ERRORENUM } from "../config/errorEnum";
import { APIENUM } from "../config/interficeEnum";
import { initConfig, systemConfig } from "../config/serverConfig";
import { BizError } from "../util/bizError";
import { changeEnumValue } from "../util/piecemeal";
import { get, post, postForm } from "../util/request";
const CryptoJS = require('crypto-js');
const Crypto = require('crypto');
import { getReqApiData, postReqApiData } from "./reqData";
let queueData = {};
let token = "d9ce92cfa571447c9837a09bd65e1035";
export function getQueueData(enumValue:number, sub?) {
if (sub) {
......@@ -22,6 +17,10 @@ export function getQueueData(enumValue:number, sub?) {
return queueData[enumValue];
}
/**
* 初始化学生缓存
*/
export async function initStudentQueueData() {
let orgId = "d8546196609a11edb903020315e22b66";
let result = await postReqApiData(APIENUM.获取班级列表信息, {orgId, start:0, end:100});
......@@ -42,7 +41,6 @@ export async function initStudentQueueData() {
/**年级平均 */
let jiuGeYiAvgData = {};//九个一年级平均 结构{"年级":{九个一} }
let jiuGeYiAvgSchoolData = {};//九个一学校完成情况 结构{{九个一} }
let jiuGeYiBanJiAVGData = {};//学生年级_九个一班级平均情况 结构{"年级":[{key:"班级1", value:10}]}
let jiuGeYiNianJiAVGData = [];//九个一年级平均完成情况 结构[{key:"年级", value:10}]
let nianJiHuoDongStatsData = {};//年级活动统计
......@@ -51,10 +49,9 @@ export async function initStudentQueueData() {
let nianJiRenShuData = {};//年级人数
let guoMinRenShuData = {};//过敏人数
for (let i = 1; i <=12; i++) {
/**九个一 */
let result:any = await getReqApiData(APIENUM.获取年级平均九个一工程, {gradeId:i});
if (result.list) {
let {list} = result;
/**年级九个一 */
let reqJiuGeYiData:any = await getReqApiData(APIENUM.获取年级平均九个一工程, {gradeId:i});
if (reqJiuGeYiData) {
let nianJiAVGItemNum = 0;
let nianJiAVGItemCount = 0;
let config = [
......@@ -71,7 +68,7 @@ export async function initStudentQueueData() {
let jiuGeYiAvgItemList = [];
config.forEach(info => {
let {name, key} = info;
let value = list[key] || 0;
let value = reqJiuGeYiData[key] || 0;
jiuGeYiAvgItemList.push({key:name, value:parseFloat(value)});
nianJiAVGItemNum += parseFloat(value) ;
nianJiAVGItemCount += 1;
......@@ -82,11 +79,12 @@ export async function initStudentQueueData() {
value:nianJiAVGItemCount? Math.round((nianJiAVGItemNum/nianJiAVGItemCount)*10000)/100 : 0
});
}
/**品德发展与公民素养 */
let reqPinDeData:any = await getReqApiData(APIENUM.获取学生活动列表, {pageNo:1, pageSize:1000, gradeId:i, type:"参观实践,社区服务,学段公演,演讲记录"} );
if (reqPinDeData.list && reqPinDeData.list.list && Array.isArray(reqPinDeData.list.list)) {
let itemList = reqPinDeData.list.list;
if (reqPinDeData.list && Array.isArray(reqPinDeData.list)) {
let itemList = reqPinDeData.list;
let itemStatsMap = {
"参观实践":{key:"参观实践", value:0},
"社区服务":{key:"社区服务", value:0},
......@@ -103,10 +101,10 @@ export async function initStudentQueueData() {
/**体质监测 */
let reqTZJCData:any = await getReqApiData(APIENUM.获取年级体质检测, {gradeId:i});
if (reqTZJCData.list && Array.isArray(reqTZJCData.list) ) {
if (reqTZJCData) {
let tzjcSuccessCount = 0;
let tzjcCount = 0;
reqTZJCData.list.forEach(info => {
reqTZJCData.forEach(info => {
let {name, value} = info;
tzjcCount += value;
if (name == "及格") tzjcSuccessCount += value;
......@@ -116,6 +114,7 @@ export async function initStudentQueueData() {
tzjcStatsData[i] = rate >100 ? 100 : rate;
} else tzjcStatsData[i] = 0;
}
shiLiBuLiangLvData[i] = 0;
nianJiRenShuData[i] = 0;
guoMinRenShuData[i] = 0;
......@@ -125,11 +124,11 @@ export async function initStudentQueueData() {
for (let j = 0; j < classData[i].length; j++) {
let classItem = classData[i][j];
let jiuGeYiClassItem:any = await getReqApiData(APIENUM.获取年级平均九个一工程, {gradeId:i, classNum:classItem.gradeClass});
if (jiuGeYiClassItem.list ) {
if ( jiuGeYiClassItem ) {
let itemCount = 0;
let itemNum = 0;
for (let key in jiuGeYiClassItem.list) {
itemNum += parseFloat(jiuGeYiClassItem.list[key]);
for (let key in jiuGeYiClassItem) {
itemNum += parseFloat(jiuGeYiClassItem[key]);
itemCount += 1;
}
jiuGeYiBanJiAVGList.push({
......@@ -147,8 +146,8 @@ export async function initStudentQueueData() {
/**视力不良率 */
let reqShiLiData:any = await getReqApiData(APIENUM.获取年级视力不良率, {});
if (reqShiLiData.list && Array.isArray(reqShiLiData.list) ) {
reqShiLiData.list.forEach(info => {
if (reqShiLiData ) {
reqShiLiData.forEach(info => {
let {value, name} = info;//这里的name后续要换成年级的id
let gradeId = GRADEENUM[name];
if (shiLiBuLiangLvData[gradeId] != undefined) shiLiBuLiangLvData[gradeId] = value;
......@@ -156,8 +155,8 @@ export async function initStudentQueueData() {
}
/**年级人数 */
let reqNianJiRenShuData:any = await getReqApiData(APIENUM.获取各年级学生数量, {});
if (reqNianJiRenShuData.list && Array.isArray(reqNianJiRenShuData.list.studentNum) ) {
reqNianJiRenShuData.list.studentNum.forEach(info => {
if (reqNianJiRenShuData && Array.isArray(reqNianJiRenShuData.studentNum) ) {
reqNianJiRenShuData.studentNum.forEach(info => {
let {value, name} = info;
if (nianJiRenShuData[name] != undefined) nianJiRenShuData[name] = value;
});
......@@ -165,8 +164,8 @@ export async function initStudentQueueData() {
/**过敏人数 */
let reqXueShengGuoMin:any = await getReqApiData(APIENUM.学生过敏情况, {studentId:""});
if (reqXueShengGuoMin.list && Array.isArray(reqXueShengGuoMin.list) ) {
reqXueShengGuoMin.list.forEach(info => {
if ( reqXueShengGuoMin ) {
reqXueShengGuoMin.forEach(info => {
let {gradeName} = info;//这里的name后续要换成年级的id
let gradeId = GRADEENUM[gradeName];
if (gradeId && guoMinRenShuData[gradeId] != undefined) guoMinRenShuData[gradeId] += 1;
......@@ -181,14 +180,14 @@ export async function initStudentQueueData() {
queueData[DATAQUEUEENUM.学生年级_年级人数] = nianJiRenShuData;
queueData[DATAQUEUEENUM.学生年级_过敏人数] = guoMinRenShuData;
let jiuGeYiXueXIao:any = await getReqApiData(APIENUM.获取年级平均九个一工程, {gradeId:''});
let reqJiuGeYiXueXiaoData:any = await getReqApiData(APIENUM.获取年级平均九个一工程, {gradeId:''});
let xueXiaoJiuGeAvg = 0;
let jiuGeYiXueXiaoAvgList = [];
if (jiuGeYiXueXIao.list ) {
let itemCount = 0;
if (reqJiuGeYiXueXiaoData ) {
let itemCount = 0;
let itemNum = 0;
for (let key in jiuGeYiXueXIao.list) {
itemNum += parseFloat(jiuGeYiXueXIao.list[key]);
for (let key in reqJiuGeYiXueXiaoData) {
itemNum += parseFloat(reqJiuGeYiXueXiaoData[key]);
itemCount += 1;
}
xueXiaoJiuGeAvg = itemCount? Math.round((itemNum/itemCount)*10000)/100 : 0;
......@@ -207,7 +206,7 @@ export async function initStudentQueueData() {
config.forEach(info => {
let {name, key} = info;
let value = jiuGeYiXueXIao.list[key] || 0;
let value = reqJiuGeYiXueXiaoData[key] || 0;
jiuGeYiXueXiaoAvgList.push({key:name, value:parseFloat(value)*100});
});
}
......@@ -217,24 +216,23 @@ export async function initStudentQueueData() {
let reqJiuGeYiYuJinData:any = await getReqApiData(APIENUM.九个一预警, {type:2});
let jiuGeYiYuJinData = [];
let testList = ['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpeg']
if (reqJiuGeYiYuJinData.list && Array.isArray(reqJiuGeYiYuJinData.list)) {
for (let i = 0; i < reqJiuGeYiYuJinData.list.length; i++) {
if (reqJiuGeYiYuJinData) {
for (let i = 0; i < reqJiuGeYiYuJinData.length; i++) {
if (i > 5) break;
let {total, studentId, studentName} = reqJiuGeYiYuJinData.list[i];
let reqModelData:any = await getReqApiData(APIENUM.获取学生模型, {studentId, type:2});
jiuGeYiYuJinData.push({key:studentName, value:null, imgUrl:`http://192.168.0.105:30001/${testList[i]}` || ''});
let {total, studentId, studentName} = reqJiuGeYiYuJinData[i];
let reqModelDataUrl = await getReqApiData(APIENUM.获取学生模型, {studentId, type:2}, 'url');
jiuGeYiYuJinData.push({key:studentName, value:null, imgUrl:reqModelDataUrl || ''});
}
}
let reqYouXiuXueShengData:any = await getReqApiData(APIENUM.九个一预警, {type:1});
let youXiuXueSHengData = [];
if (reqYouXiuXueShengData.list && Array.isArray(reqYouXiuXueShengData.list)) {
for (let i = 0; i < reqYouXiuXueShengData.list.length; i++) {
if ( reqYouXiuXueShengData ) {
for (let i = 0; i < reqYouXiuXueShengData.length; i++) {
if (i > 5) break;
let {total, studentName, studentId} = reqYouXiuXueShengData.list[i];
let reqModelData:any = await getReqApiData(APIENUM.获取学生模型, {studentId, type:2});
youXiuXueSHengData.push({key:studentName, value:null, imgUrl:reqModelData.url || ''});
let {total, studentName, studentId} = reqYouXiuXueShengData[i];
let reqModelDataUrl = await getReqApiData(APIENUM.获取学生模型, {studentId, type:2}, 'url');
youXiuXueSHengData.push({key:studentName, value:null, imgUrl:reqModelDataUrl || ''});
}
}
queueData[DATAQUEUEENUM.九个一预警] = jiuGeYiYuJinData;
......@@ -242,6 +240,10 @@ export async function initStudentQueueData() {
}
/**
* 初始化教师缓存
*/
export async function initTeacherQueueData() {
/**教师统计 */
let configList = [
......@@ -255,15 +257,15 @@ export async function initTeacherQueueData() {
for (let i = 0; i < configList.length; i++) {
let { enumValue, type } = configList[i];
let reqData:any = await getReqApiData(APIENUM.获取教师统计, {type});
if (reqData.list && Array.isArray(reqData.list) && reqData.list.length > 0) {
if (reqData) {
let queueItemList = [];
reqData.list.forEach(info => {
reqData.forEach(info => {
let {type, name, count} = info;
let key = type || name;
if(DATAQUEUEENUM.教师对内_教师资源_年龄分布) {
if(DATAQUEUEENUM.教师对内_教师资源_年龄分布 && typeof key == 'string') {
key = key.replace("教龄",'');
}
queueItemList.push({key:key || '', value:count || 0});
if (key) queueItemList.push({key:key || '', value:count || 0});
});
queueData[enumValue] = queueItemList;
......@@ -274,93 +276,3 @@ export async function initTeacherQueueData() {
}
export async function getReqApiData(url:string, body:object) {
const AppKey = systemConfig.appKey;
body["client_id"] = AppKey;
let ms = new Date().valueOf();
const SignatureStr = `${AppKey}&GET&1&${ms}`;
const Hash = CryptoJS.HmacSHA256(SignatureStr, CryptoJS.enc.Base64.parse(systemConfig.appSecret));
const Base64Str = CryptoJS.enc.Base64.stringify(Hash);
let headers = {
"TY-Stage":"1",
"TY-AppKey":AppKey,
"TY-Timestamp":ms,
"TY-Signature":Base64Str
};
let query = Object.assign(body, {client_id:AppKey});
let res = await get(`https://api-gateway.sasu.shanghaitech.edu.cn/${url}`, query, headers );
return res;
}
export async function postReqApiData(url:string, body:object) {
let ms = new Date().valueOf();
const AppKey = systemConfig.appKey;
const SignatureStr = `${AppKey}&POST&1&${ms}`;
const Hash = CryptoJS.HmacSHA256(SignatureStr, CryptoJS.enc.Base64.parse(systemConfig.appSecret));
const Base64Str = CryptoJS.enc.Base64.stringify(Hash);
let headers = {
"TY-Stage":"1",
"TY-AppKey":AppKey,
"TY-Timestamp":ms,
"TY-Signature":Base64Str
};
let query = { accessToken:token };
let res:any = await postForm(`https://api-gateway.sasu.shanghaitech.edu.cn/${url}?accessToken=${token}`, query, body, headers );
if (res.retCode != "000000") {
/**更新token */
await getToken();
res = await postForm(`https://api-gateway.sasu.shanghaitech.edu.cn/${url}?accessToken=${token}`, query, body, headers );
}
return res;
}
function hmacSHA1(data, key) {
let mac = Crypto.createHmac('sha1', Buffer.from(key, 'UTF-8'));
mac.update(Buffer.from(data, 'UTF-8'));
return mac.digest('hex');
}
export async function getToken() {
let timeStamp = new Date().valueOf();
let appId = 'A6BDC0568BAD9FF4CA933BFDE492EF21';//老的 F3D05D1E729B366ABDEFBD5380815DA7
let appKey = 'bb4a72b5398b4726b7444de589e42a2c';//老的 376f898f9ba7432f90c640d5485c194c
let data = `${appId}${appKey}${timeStamp}`;
const AppKey = systemConfig.appKey;
const SignatureStr = `${AppKey}&GET&1&${timeStamp}`;
const Hash = CryptoJS.HmacSHA256(SignatureStr, CryptoJS.enc.Base64.parse(systemConfig.appSecret));
const Base64Str = CryptoJS.enc.Base64.stringify(Hash);
let headers = {
"TY-Stage":"1",
"TY-AppKey":AppKey,
"TY-Timestamp":timeStamp,
"TY-Signature":Base64Str
};
let reqBody = {
appId,
timeStamp,
keyInfo:hmacSHA1(data, appKey),
platformCode:"999999"
}
let res:any = await post(`https://api-gateway.sasu.shanghaitech.edu.cn/getAccessToken`, {}, reqBody, headers );
if (res.retCode == '000000') {
let {accessToken} = res.tokenInfo;
console.log("token 更新=>", accessToken);
if (accessToken) token = accessToken;
else throw new BizError(ERRORENUM.TOKEN获取失败);
} else {
throw new BizError(ERRORENUM.TOKEN更新失败);
}
}
\ No newline at end of file
/**
* 获取第三方数据
*/
import { get, post, postForm } from "../util/request";
import { systemConfig } from "../config/serverConfig";
import { BizError } from "../util/bizError";
import { ERRORENUM } from "../config/errorEnum";
const CryptoJS = require('crypto-js');
const Crypto = require('crypto');
let token = "";//post 请求凭证
/**
* 封装get请求
* @param url 请求路由
* @param body 请求参数
* @returns
*/
export async function getReqApiData(url:string, body:object, dataNotInList?) {
const AppKey = systemConfig.appKey;
body["client_id"] = AppKey;
let ms = new Date().valueOf();
const SignatureStr = `${AppKey}&GET&1&${ms}`;
const Hash = CryptoJS.HmacSHA256(SignatureStr, CryptoJS.enc.Base64.parse(systemConfig.appSecret));
const Base64Str = CryptoJS.enc.Base64.stringify(Hash);
let headers = {
"TY-Stage":"1",
"TY-AppKey":AppKey,
"TY-Timestamp":ms,
"TY-Signature":Base64Str
};
let query = Object.assign(body, {client_id:AppKey});
let res:any = await get(`https://api-gateway.sasu.shanghaitech.edu.cn/${url}`, query, headers );
if (dataNotInList) return res[dataNotInList];
return res.list;
}
/**
* 封装的post请求
* @param url 请求路由
* @param body 请求参数
* @returns
*/
export async function postReqApiData(url:string, body:object) {
let ms = new Date().valueOf();
const AppKey = systemConfig.appKey;
const SignatureStr = `${AppKey}&POST&1&${ms}`;
const Hash = CryptoJS.HmacSHA256(SignatureStr, CryptoJS.enc.Base64.parse(systemConfig.appSecret));
const Base64Str = CryptoJS.enc.Base64.stringify(Hash);
let headers = {
"TY-Stage":"1",
"TY-AppKey":AppKey,
"TY-Timestamp":ms,
"TY-Signature":Base64Str
};
let query = { accessToken:token };
let res:any = await postForm(`https://api-gateway.sasu.shanghaitech.edu.cn/${url}?accessToken=${token}`, query, body, headers );
if (res.retCode != "000000") {
/**更新token */
await updateToken();
res = await postForm(`https://api-gateway.sasu.shanghaitech.edu.cn/${url}?accessToken=${token}`, query, body, headers );
}
return res;
}
function hmacSHA1(data, key) {
let mac = Crypto.createHmac('sha1', Buffer.from(key, 'UTF-8'));
mac.update(Buffer.from(data, 'UTF-8'));
return mac.digest('hex');
}
/**
* 更新token
*/
export async function updateToken() {
let timeStamp = new Date().valueOf();
let appId = 'A6BDC0568BAD9FF4CA933BFDE492EF21';//老的 F3D05D1E729B366ABDEFBD5380815DA7
let appKey = 'bb4a72b5398b4726b7444de589e42a2c';//老的 376f898f9ba7432f90c640d5485c194c
let data = `${appId}${appKey}${timeStamp}`;
const AppKey = systemConfig.appKey;
const SignatureStr = `${AppKey}&GET&1&${timeStamp}`;
const Hash = CryptoJS.HmacSHA256(SignatureStr, CryptoJS.enc.Base64.parse(systemConfig.appSecret));
const Base64Str = CryptoJS.enc.Base64.stringify(Hash);
let headers = {
"TY-Stage":"1",
"TY-AppKey":AppKey,
"TY-Timestamp":timeStamp,
"TY-Signature":Base64Str
};
let reqBody = {
appId,
timeStamp,
keyInfo:hmacSHA1(data, appKey),
platformCode:"999999"
}
let res:any = await post(`https://api-gateway.sasu.shanghaitech.edu.cn/getAccessToken`, {}, reqBody, headers );
if (res.retCode == '000000') {
let {accessToken} = res.tokenInfo;
console.log("token 更新=>", accessToken);
if (accessToken) token = accessToken;
else throw new BizError(ERRORENUM.TOKEN获取失败);
} else {
throw new BizError(ERRORENUM.TOKEN更新失败);
}
}
\ No newline at end of file
/**
* 总路由入口
* 分路由规则:
* 学生详情,学生整体,学生年级 属于student
* 教师对内,教师对外,教师详情,属于teacher
* 整体办学 属于whole
*/
import * as studentRouter from './student';
import * as teacherRouter from './teacher';
......
/**
* 学生路由
* select 属于查询相关接口
* portrait 属于详细相关接口
* stats 属于统计相关接口
*/
import * as asyncHandler from 'express-async-handler'
import { eccReqParamater } from '../tools/eccParam';
import { studentStatsRight, studentStatsLeft, studentStatsCenter, getClassListByGrade, selectStudentList } from '../biz/studentInfo';
import { GRADEENUM } from '../config/enum';
import { getStudentStatsGradeCenter, getStudentStatsGradeLeft, getStudentStatsGradeRight, getStudentStatsSchoolCenter, getStudentStatsSchoolLeft, getStudentStatsSchoolRight } from '../biz/student';
export function setRouter(httpServer) {
/**搜索页 */
httpServer.post('/data/student/select/gradelist', asyncHandler(gradeList));
httpServer.post('/data/student/select/classlist', asyncHandler(classList));
httpServer.post('/data/student/select/studentlist', asyncHandler(studentList));
/**学生_详细 */
httpServer.post('/data/student/portrait/left', asyncHandler(studentLeft));
httpServer.post('/data/student/portrait/center', asyncHandler(studentCenter));
httpServer.post('/data/student/portrait/right', asyncHandler(studentRight));
/**学生_学校 */
httpServer.post('/data/student/stats/school/left', asyncHandler(studentStatsSchoolLeft));
httpServer.post('/data/student/stats/school/center', asyncHandler(studentStatsSchoolCenter));
httpServer.post('/data/student/stats/school/right', asyncHandler(studentStatsSchoolRight));
/**年级 */
/**学生_年级 */
httpServer.post('/data/student/stats/grade/left', asyncHandler(studentStatsGradeLeft));
httpServer.post('/data/student/stats/grade/center', asyncHandler(studentStatsGradeCenter));
httpServer.post('/data/student/stats/grade/right', asyncHandler(studentStatsGradeRight));
}
/**搜索页 */
/**
* 年级列表
* @param req
* @param res
*/
async function gradeList(req, res) {
let dataList = [];
for (let key in GRADEENUM) {
......@@ -35,6 +46,12 @@ async function gradeList(req, res) {
res.success({dataList});
}
/**
* 根据年级id搜索班级列表
* @param req
* @param res
*/
async function classList(req, res) {
let reqConf = {grade: 'Number' };
let { grade } = eccReqParamater(reqConf, req.body);
......@@ -44,6 +61,12 @@ async function classList(req, res) {
res.success(result);
}
/**
* 根据年级,班级,姓名,获取学生列表
* @param req
* @param res
*/
async function studentList(req, res) {
let reqConf = {grade: 'Number', classNum:'Number', name:'String' };
let { grade, classNum, name } = eccReqParamater(reqConf, req.body, ["name", "grade", "classNum"]);
......@@ -53,7 +76,12 @@ async function studentList(req, res) {
res.success(result);
}
/**个人页 */
/**
* 学生详情-左部分
* @param req
* @param res
*/
async function studentLeft(req, res) {
let reqConf = {studentId: 'String' };
let { studentId } = eccReqParamater(reqConf, req.body, []);
......@@ -62,6 +90,12 @@ async function studentLeft(req, res) {
res.success(result);
}
/**
* 学生详情-中间部分
* @param req
* @param res
*/
async function studentCenter(req, res) {
let reqConf = {studentId: 'String' };
let { studentId } = eccReqParamater(reqConf, req.body, []);
......@@ -70,6 +104,12 @@ async function studentCenter(req, res) {
res.success(result);
}
/**
* 学生详情-右边部分
* @param req
* @param res
*/
async function studentRight(req, res) {
let reqConf = {studentId: 'String' };
let { studentId } = eccReqParamater(reqConf, req.body, []);
......@@ -78,33 +118,71 @@ async function studentRight(req, res) {
res.success(result);
}
/**学校页 */
/**
* 学生统计【学校页】-左边部分
* @param req
* @param res
*/
async function studentStatsSchoolLeft(req, res) {
let result = await getStudentStatsSchoolLeft();
res.success(result);
}
/**
* 学生统计【学校页】-右边部分
* @param req
* @param res
*/
async function studentStatsSchoolRight(req, res) {
let result = await getStudentStatsSchoolRight();
res.success(result);
}
/**
* 学生统计【学校页】-中间部分
* @param req
* @param res
*/
async function studentStatsSchoolCenter(req, res) {
let result = await getStudentStatsSchoolCenter();
res.success(result);
}
/**年级页 */
/**
* 学生统计【年级页】-左边部分
* @param req
* @param res
*/
async function studentStatsGradeLeft(req, res) {
let reqConf = {gradeId: 'String' };
let { gradeId } = eccReqParamater(reqConf, req.body, []);
let result = await getStudentStatsGradeLeft(gradeId);
res.success(result);
}
/**
* 学生统计【年级页】-右边部分
* @param req
* @param res
*/
async function studentStatsGradeRight(req, res) {
let reqConf = {gradeId: 'String' };
let { gradeId } = eccReqParamater(reqConf, req.body, []);
let result = await getStudentStatsGradeRight(gradeId);
res.success(result);
}
/**
* 学生统计【年级页】-中间部分
* @param req
* @param res
*/
async function studentStatsGradeCenter(req, res) {
let reqConf = {gradeId: 'String' };
let { gradeId } = eccReqParamater(reqConf, req.body, []);
......
/**
* 教师路由
* select 属于查询相关接口
* stats 属于统计相关接口
*/
import * as asyncHandler from 'express-async-handler';
import { eccReqParamater } from '../tools/eccParam';
import { getTeacherExternal, getTeacherInternal } from '../biz/teacher';
......@@ -5,19 +11,25 @@ import { getTeacherInfo, getTeacherList } from '../biz/teacherInfo';
import { GRADEENUM } from '../config/enum';
export function setRouter(httpServer) {
/**查询页 */
httpServer.post('/data/teacher/select/gradelist', asyncHandler(gradeList));
httpServer.post('/data/teacher/select/disciplinelist', asyncHandler(disciplineList));
httpServer.post('/data/teacher/select/sexlist', asyncHandler(sexList));
httpServer.post('/data/teacher/select/teacherlist', asyncHandler(teacherList));
/**教师详情 */
httpServer.post('/data/teacher/select/teacherinfo', asyncHandler(teacherInfo));
/**教师对内 */
httpServer.post('/data/teacher/stats/internal', asyncHandler(teacherInternal));
/**教师对外 */
httpServer.post('/data/teacher/stats/external', asyncHandler(teacherExternal));
}
/**教师查询页 */
/**
* 年级列表
* @param req
* @param res
*/
async function gradeList(req, res) {
let dataList = [];
for (let key in GRADEENUM) {
......@@ -30,6 +42,12 @@ async function gradeList(req, res) {
res.success({dataList});
}
/**
* 学科列表
* @param req
* @param res
*/
async function disciplineList(req, res) {
let dataList = [];
let disciplineTitleList = ["语文", "数学", "英语"];
......@@ -41,6 +59,12 @@ async function disciplineList(req, res) {
res.success({dataList});
}
/**
* 性别列表
* @param req
* @param res
*/
async function sexList(req, res) {
let dataList = [];
let sexTitleList = [ "女", "男"];
......@@ -52,6 +76,12 @@ async function sexList(req, res) {
res.success({dataList});
}
/**
* 查询教师列表
* @param req
* @param res
*/
async function teacherList(req, res) {
let reqConf = {grade: 'Number', discipline:'String', sex:'Number', teacherName:'String' };
let { grade, discipline, sex, teacherName } = eccReqParamater(reqConf, req.body, ["grade", "discipline", "sex", "teacherName"]);
......@@ -61,7 +91,12 @@ async function teacherList(req, res) {
res.success(result);
}
/**教师个人 */
/**
* 教师详情
* @param req
* @param res
*/
async function teacherInfo(req, res) {
let reqConf = {teacherId:'String' };
let { teacherId } = eccReqParamater(reqConf, req.body);
......@@ -70,11 +105,23 @@ async function teacherInfo(req, res) {
res.success(result);
}
/**
* 教师画像对内
* @param req
* @param res
*/
async function teacherInternal(req, res) {
let result = await getTeacherInternal();
res.success(result);
}
/**
* 教师画像对外
* @param req
* @param res
*/
async function teacherExternal(req, res) {
let result = await getTeacherExternal();
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