Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nanmoserver
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
node_server
nanmoserver
Commits
5603c35f
Commit
5603c35f
authored
Jun 26, 2025
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
94674652
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
179 additions
and
21 deletions
+179
-21
serverConfig.xml
serverConfig.xml
+1
-1
errorEnum.ts
src/config/errorEnum.ts
+52
-13
dianXin.ts
src/routers/dianXin.ts
+126
-7
No files found.
serverConfig.xml
View file @
5603c35f
<config>
<config>
<port>
40
3
01
</port>
<port>
40
1
01
</port>
</config>
</config>
src/config/errorEnum.ts
View file @
5603c35f
export
enum
ERRORENUM
{
export
enum
ERRORENUM
{
身份验证失败
=
1
,
未找到数据
,
非法登录
,
数据操作失败
,
身份验证过期
,
暂无对应数据
,
表单校验失败
,
TOKEN
认证失败
参数错误
}
export
enum
SYSTEMERRORENUM
{
参数错误
=
1
,
您的登录已失效
,
您的账户没有访问权限
,
请求参数错误
,
文件解析失败
,
文件写入失败
,
获取企业微信
access_token
失败
,
获取企业微信用户信息失败
,
请先绑定用户
,
TOKEN
失效
,
该微信用户已绑定过账号
,
存在
TOKEN
并没有绑定角色
,
初始化配置失败
,
暂无对应数据
}
}
/**
* 只用做code码定义
export
enum
INTERFACEERRORENUM
{
*/
"系统错误"
=
10001
,
export
enum
ERRORCODEENUM
{
"服务暂停"
=
10002
,
身份验证失败
=
401
,
"远程服务调用失败"
=
10003
,
非法登录
=
402
,
"IP地址受限,不能访问此接口"
=
10004
,
身份验证过期
=
403
"APP Key 不存在"
=
10005
,
"签名错误"
=
10006
,
"缺少 POST 参数"
=
10007
,
"POST 参数错误"
=
10008
,
"数据类别标识不存在"
=
10009
,
"数据对象标识不存在"
=
10010
,
"对数据对象没有写的权限"
=
10011
,
"对数据对象没有读的权限"
=
10012
,
"数据记录不存在"
=
10013
,
"数据记录的 id 已存在"
=
10014
,
"应用程序内部错误"
=
10099
,
}
}
let
bizErrorMsgMap
=
{};
let
bizErrorMsgMap
=
{};
for
(
let
key
in
ERRORENUM
)
{
for
(
let
key
in
ERRORENUM
)
{
bizErrorMsgMap
[
ERRORENUM
[
key
]]
=
key
;
bizErrorMsgMap
[
ERRORENUM
[
key
]]
=
key
;
}
}
let
systemErrorMsgMap
=
{};
for
(
let
key
in
SYSTEMERRORENUM
)
{
systemErrorMsgMap
[
SYSTEMERRORENUM
[
key
]]
=
key
;
}
export
function
getBizMsg
(
param
)
{
export
function
getBizMsg
(
param
)
{
return
bizErrorMsgMap
[
param
];
return
bizErrorMsgMap
[
param
];
}
}
export
function
getSysMsg
(
param
)
{
return
systemErrorMsgMap
[
param
];
}
\ No newline at end of file
src/routers/dianXin.ts
View file @
5603c35f
...
@@ -3,6 +3,8 @@
...
@@ -3,6 +3,8 @@
import
*
as
asyncHandler
from
'express-async-handler'
;
import
*
as
asyncHandler
from
'express-async-handler'
;
import
{
get
,
post
,
postForm
}
from
'../util/request'
;
import
{
get
,
post
,
postForm
}
from
'../util/request'
;
import
{
ERRORENUM
}
from
'../config/errorEnum'
;
import
{
BizError
}
from
'../util/bizError'
;
const
ApiConfig
=
{
const
ApiConfig
=
{
token
:{
type
:
"post"
,
url
:
'/oauth/token'
,
name
:
"获取token"
},
token
:{
type
:
"post"
,
url
:
'/oauth/token'
,
name
:
"获取token"
},
...
@@ -24,32 +26,149 @@ const ApiConfig = {
...
@@ -24,32 +26,149 @@ const ApiConfig = {
teacher_hjry
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_hjry'
,
name
:
"教师个人信息 教师获奖荣誉"
},
teacher_hjry
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_hjry'
,
name
:
"教师个人信息 教师获奖荣誉"
},
teacher_hdlb
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_hdlb'
,
name
:
"教育培训 活动项目"
},
teacher_hdlb
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_hdlb'
,
name
:
"教育培训 活动项目"
},
teacher_hdjb_yxlb
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_hdjb_yxlb'
,
name
:
"教育培训 活动项目 饼图类别"
},
teacher_hdjb_yxlb
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_hdjb_yxlb'
,
name
:
"教育培训 活动项目 饼图类别"
},
teacher_leavetrend
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_leavetrend'
,
name
:
"绩效考核 请假趋势"
}
teacher_leavetrend
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_leavetrend'
,
name
:
"绩效考核 请假趋势"
},
news
:{
type
:
"post"
,
url
:
'/service/api/nmzx/news'
,
name
:
"校园新闻"
},
teacher_leavereason
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_leavereason'
,
name
:
"校园对内-教师请假分类"
},
student_info_get
:{
type
:
"get"
,
url
:
'/service/api/nmzx/student_info_get'
,
name
:
"学生个人画像-学生基础信息"
},
xxjs_detail
:{
type
:
"post"
,
url
:
'/service/api/nmzx/xxjs_detail'
,
name
:
"学生个人画像-学生选修班详情"
},
student_stsk
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_stsk'
,
name
:
"学生个人画像-学生社团社课参与情况"
},
student_hjry
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_hjry'
,
name
:
"学生个人画像-学生荣誉"
},
student_py
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_py'
,
name
:
"学生个人画像-班主任评语"
},
student_shili
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_shili'
,
name
:
"学生个人画像-学生视力"
},
student_brkm
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_brkm'
,
name
:
"学生个人画像-学生薄弱科目"
},
score_trend
:{
type
:
"post"
,
url
:
'/service/api/nmzx/score_trend'
,
name
:
"学生个人画像-成绩趋势"
},
student_score
:{
type
:
"get"
,
url
:
'/service/api/nmzx/student_score_get'
,
name
:
"学生个人画像-学生成绩"
},
student_sumscore
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_sumscore'
,
name
:
"学生个人画像-学生成绩总分"
},
student_zhxf
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_zhxf'
,
name
:
"学生个人画像-学生综合素质学分"
},
student_zhhd
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_zhhd'
,
name
:
"学生个人画像-学生综合素质活动情况"
},
xx_count
:{
type
:
"post"
,
url
:
'/service/api/nmzx/xx_count'
,
name
:
"选修课统计"
},
js_count
:{
type
:
"post"
,
url
:
'/service/api/nmzx/js_count'
,
name
:
"竞赛统计"
},
carapplyrecords
:{
type
:
"post"
,
url
:
'/service/api/nmzx/carapplyrecords'
,
name
:
"校园服务-用车管理"
},
ground
:{
type
:
"post"
,
url
:
'/service/api/nmzx/ground'
,
name
:
"校园服务-公共教室使用情况"
},
dm_open_jb_year
:{
type
:
"post"
,
url
:
"/service/api/nmzx/dm_open_jb_year"
,
name
:
"公开课按级别年份统计"
},
dm_hj_jb_year
:{
type
:
"post"
,
url
:
"/service/api/nmzx/dm_hj_jb_year"
,
name
:
"获奖荣誉按级别年份统计"
},
dm_jz_jb_year
:{
type
:
"post"
,
url
:
"/service/api/nmzx/dm_jz_jb_year"
,
name
:
"讲座按级别年份统计"
},
dm_ztyx_jb_year
:{
type
:
"post"
,
url
:
"/service/api/nmzx/dm_ztyx_jb_year"
,
name
:
"主题研修别年份统计"
},
dm_ds_xss
:{
type
:
"post"
,
url
:
"/service/api/nmzx/dm_ds_xss"
,
name
:
"导师学生数"
},
dm_exam_scoexaavg
:{
type
:
"get"
,
url
:
"/service/api/nmzx/dm_exam_scoexaavg_get"
,
name
:
"学科统计=>改成了校园对外各学科学业水平"
},
ondutyrecords
:{
type
:
"post"
,
url
:
"/service/api/nmzx/ondutyrecords"
,
name
:
"教师值班信息"
},
teacher_pic
:{
type
:
"post"
,
url
:
"/service/api/nmzx/teacher_pic"
,
name
:
"教师照片"
},
teacher_ky_zs
:{
type
:
"post"
,
url
:
"/service/api/nmzx/ky_zs"
,
name
:
"科研总数"
},
ds_statics
:
{
type
:
"post"
,
url
:
'/service/api/nmzx/ds_statics'
,
name
:
"全员导师统计"
},
sjkb_basketball_player
:{
type
:
"post"
,
url
:
'/service/api/nmzx/sjkb_basketball_player'
,
name
:
"篮球队员"
},
sjkb_basketball_plan
:{
type
:
"post"
,
url
:
'/service/api/nmzx/sjkb_basketball_plan'
,
name
:
"篮球训练计划"
},
sjkb_basketball_train
:{
type
:
"post"
,
url
:
'/service/api/nmzx/sjkb_basketball_train'
,
name
:
"篮球训练数据"
},
weekarrange
:{
type
:
"post"
,
url
:
'/service/api/nmzx/weekarrange'
,
name
:
"学校对外最新活动"
},
sjkb_visitor_total
:{
type
:
"post"
,
url
:
'/service/api/nmzx/sjkb_visitor_total'
,
name
:
"校园对外智慧安防"
},
sjkb_visitor
:{
type
:
"post"
,
url
:
'/service/api/nmzx/sjkb_visitor'
,
name
:
"校园安全管理_访客数据"
},
askforleave_ratio
:{
type
:
"post"
,
url
:
'/service/api/nmzx/askforleave_ratio'
,
name
:
"教师出勤分析"
},
teacher_pxcount
:{
type
:
"post"
,
url
:
'/service/api/nmzx/teacher_pxcount'
,
name
:
"培训情况"
},
sjkb_warning_total
:{
type
:
"post"
,
url
:
'/service/api/nmzx/sjkb_warning_total'
,
name
:
"校园安全管理/校园对内-设备预警统计"
},
sjkb_warning
:{
type
:
"post"
,
url
:
'/service/api/nmzx/sjkb_warning'
,
name
:
" 校园安全管理/校园对内-设备预警"
},
student_tc
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_tc'
,
name
:
"学生个人-学生特长情况"
},
dm_xuenian
:{
type
:
"post"
,
url
:
'/service/api/nmzx/dm_xuenian'
,
name
:
"学生个人-学年"
},
student_st_count
:{
type
:
"post"
,
url
:
'/service/api/nmzx/student_st_count'
,
name
:
"学生个人-学生社团参与次数"
},
st_get
:{
type
:
"get"
,
url
:
'/service/api/nmzx/st_get'
,
name
:
"学生个人-社团详细"
},
weekarrangerecords
:{
type
:
"post"
,
url
:
'/service/api/nmzx/weekarrangerecords'
,
name
:
"一周工作安排"
},
semesterweekplan_detail
:{
type
:
"post"
,
url
:
'/service/api/nmzx/semesterweekplan_detail'
,
name
:
"学期工作安排信息"
},
dm_food_week
:{
type
:
"post"
,
url
:
'/service/api/nmzx/dm_food_week'
,
name
:
"校园食谱"
},
sjkb_events_warning
:{
type
:
"post"
,
url
:
"/service/api/nmzx/sjkb_events_warning"
,
name
:
"校园安全-边防告警数据"
},
//
sjkb_events_warning_total
:{
type
:
"post"
,
url
:
"/service/api/nmzx/sjkb_events_warning_total"
,
name
:
"校园安全-边防告警数据统计(趋势)"
},
//
ground_order_statistics
:{
type
:
"post"
,
url
:
"/service/api/nmzx/ground_order_statistics"
,
name
:
"校园服务管理-公共教室使用情况"
},
//
student_zhavg
:{
type
:
"post"
,
url
:
"/service/api/nmzx/student_zhavg"
,
name
:
"学生个人-学生公智能平均分"
},
student_xf
:{
type
:
"post"
,
url
:
"/service/api/nmzx/student_xf"
,
name
:
"学生个人-学生公智能总学分"
}
};
};
let
teacherPicConfig
=
[
[
{
"sfzjh"
:
"0a4a489852ae62637c153b32939ba3a4"
,
"picurl"
:
"/teacherIMg/lxy.png"
,
"name"
:
"李啸瑜"
},
{
"sfzjh"
:
"0897bc339c31d59ef6ea937a27e1f621"
,
"picurl"
:
"/teacherIMg/yh.png"
,
"name"
:
"姚虹"
}
],
[
{
"sfzjh"
:
"f2ad99423e761c74d0b2580d88f490ee"
,
"picurl"
:
"/teacherIMg/fp.png"
,
"name"
:
"封萍"
},
{
"sfzjh"
:
"d9a964ad7475bcc5a405533442b40037"
,
"picurl"
:
"/teacherIMg/csq.png"
,
"name"
:
"曹土清"
}
],
[
{
"sfzjh"
:
"27aac276c7f51e90b075adfae1aafd31"
,
"picurl"
:
"/teacherIMg/mjs.png"
,
"name"
:
"孟家森"
},
{
"sfzjh"
:
"3c0a9cadb83d3e8102ba94829a085e9e"
,
"picurl"
:
"/teacherIMg/fpq.png"
,
"name"
:
"冯培琦"
}
],
[
{
"sfzjh"
:
"18e4f3b1295381eb3a4cf048a79ed9da"
,
"picurl"
:
"/teacherIMg/jzh.png"
,
"name"
:
"金振华"
},
{
"sfzjh"
:
"e696e3cf4a2a8e96114749cd30416678"
,
"picurl"
:
"/teacherIMg/wb.png"
,
"name"
:
"王斌"
}
],
[
{
"sfzjh"
:
"f13a262e0f69937368b02aaf16465fa8"
,
"picurl"
:
"/teacherIMg/yyj.png"
,
"name"
:
"俞颖杰"
},
{
"sfzjh"
:
"4e73ac1202f9d2c44f177731ac36bec6"
,
"picurl"
:
"/teacherIMg/wyf.png"
,
"name"
:
"吴一凡"
}
],
[
{
"sfzjh"
:
"9e817c03ee2e6852894c2b9b4c5c380c"
,
"picurl"
:
"/teacherIMg/zdq.png"
,
"name"
:
"钟岱青"
},
{
"sfzjh"
:
"ca911d923cfe86c0121fe9107f3cf2a2"
,
"picurl"
:
"/teacherIMg/szl.png"
,
"name"
:
"苏哲伦"
}
],
[
{
"sfzjh"
:
"2e6ad4b8d43a9f856a8d8d967fe480c4"
,
"picurl"
:
"/teacherIMg/ljm.png"
,
"name"
:
"陆建梅"
},
{
"sfzjh"
:
"c27f709562f31e80542bb408675f4d12"
,
"picurl"
:
"/teacherIMg/zy.png"
,
"name"
:
"张渊"
}
],
[
{
"sfzjh"
:
"c74c31ee9bce64d62e24c068830a353d"
,
"picurl"
:
"/teacherIMg/xql.png"
,
"name"
:
"邢千里"
},
{
"sfzjh"
:
"f4cb44aaddd0b8e9d49120c10b1acbc9"
,
"picurl"
:
"/teacherIMg/lyl.png"
,
"name"
:
"刘艳丽"
}
],
[
{
"sfzjh"
:
"b3fdcceea08d4373107a164da298100e"
,
"picurl"
:
"/teacherIMg/zcf.png"
,
"name"
:
"朱翠凤"
},
{
"sfzjh"
:
"aa519291d51a37aca0e6cae2d67cc32a"
,
"picurl"
:
"/teacherIMg/fyl.png"
,
"name"
:
"范依琳"
}
]
];
//接口缓存
let
tokenQueue
=
""
;
let
tokenMs
=
0
;
export
function
setDianXinRouter
(
httpServer
)
{
export
function
setDianXinRouter
(
httpServer
)
{
for
(
let
key
in
ApiConfig
)
{
for
(
let
key
in
ApiConfig
)
{
let
{
url
,
name
,
type
}
=
ApiConfig
[
key
];
let
{
url
,
name
,
type
}
=
ApiConfig
[
key
];
/**初始化缓存*/
/**初始化接口 */
httpServer
.
post
(
url
,
asyncHandler
(
async
(
req
,
res
)
=>
{
httpServer
.
post
(
url
,
asyncHandler
(
async
(
req
,
res
)
=>
{
let
nowMs
=
new
Date
().
valueOf
();
if
(
!
tokenMs
||
(
nowMs
-
tokenMs
)
>=
(
3
*
60
*
1000
))
{
let
tokenParam
=
{
client_id
:
'1103b3776c534c0f98d38f1f7d6697f9'
,
client_secret
:
'10cbff8739694d34a006c931ce37a085'
};
let
tokenRes
:
any
=
await
postForm
(
'http://61.171.4.98:9090/oauth/token'
,
tokenParam
,
{});
tokenMs
=
nowMs
;
try
{
tokenQueue
=
tokenRes
.
body
.
access_token
;
}
catch
(
err
)
{
throw
new
BizError
(
ERRORENUM
.
TOKEN
认证失败
,
"请求返回值"
,
tokenRes
)
}
}
const
UrlStr
=
`http://61.171.4.98:9090
${
url
}
`
;
const
UrlStr
=
`http://61.171.4.98:9090
${
url
}
`
;
let
param
=
{
access_token
:
tokenQueue
,
client_id
:
'1103b3776c534c0f98d38f1f7d6697f9'
};
let
result
;
let
result
;
let
param
=
req
.
body
;
if
(
type
==
"post"
)
{
if
(
type
==
"post"
)
{
if
(
key
==
"token"
)
{
if
(
key
==
"token"
)
{
result
=
await
postForm
(
UrlStr
,
param
,
{});
result
=
await
postForm
(
UrlStr
,
param
,
{});
}
else
{
}
else
{
result
=
await
post
(
UrlStr
,
param
,
{});
if
(
key
==
"teacher_pic"
)
{
result
=
teacherPicConfig
;
}
else
{
let
reqParam
=
Object
.
assign
(
param
,
req
.
body
);
result
=
await
post
(
UrlStr
,
reqParam
,
{});
}
}
}
}
else
{
}
else
{
result
=
await
get
(
UrlStr
,
param
,
{});
let
reqParam
=
Object
.
assign
(
param
,
req
.
body
);
result
=
await
get
(
UrlStr
,
reqParam
,
{});
}
}
res
.
packageRes
(
result
);
res
.
packageRes
(
result
);
}
));
}
));
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment