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||'',
......
......@@ -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');
}
/**
* 获取第三方数据
*/
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