Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tikeyi
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
tikeyi
Commits
f8709132
Commit
f8709132
authored
May 24, 2022
by
lixinming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
重点活动弹框
parent
49bfbe08
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
223 additions
and
7 deletions
+223
-7
zyhdbz.ts
src/biz/zyhdbz.ts
+72
-2
activeQueueData.ts
src/data/interface/activeQueueData.ts
+83
-0
aliyunStats.ts
src/data/interface/aliyunStats.ts
+1
-0
baiduStats.ts
src/data/interface/baiduStats.ts
+44
-1
data.ts
src/data/interface/data.ts
+17
-0
queueData.ts
src/data/interface/queueData.ts
+0
-1
url.ts
src/data/interface/url.ts
+2
-3
router.ts
src/routers/router.ts
+4
-0
No files found.
src/biz/zyhdbz.ts
View file @
f8709132
...
@@ -16,13 +16,13 @@ export async function getData(req, res) {
...
@@ -16,13 +16,13 @@ export async function getData(req, res) {
ret
[
"yhtsl"
]
=
getKeyValueListData
(
"用户投诉量"
,
yhtsl
);
ret
[
"yhtsl"
]
=
getKeyValueListData
(
"用户投诉量"
,
yhtsl
);
ret
[
"zyhdbzzjdt"
]
=
getReflectionData
(
"中间地图数据"
,
zyhdbzzjdt
,
{
num
:
"value"
,
district
:
"key"
});
ret
[
"zyhdbzzjdt"
]
=
getReflectionData
(
"中间地图数据"
,
zyhdbzzjdt
,
{
num
:
"value"
,
district
:
"key"
});
let
{
monthStatsData
,
dayStatsData
}
=
statsQueue
[
"日活月活"
];
let
{
monthStatsData
,
dayStatsData
}
=
statsQueue
[
"日活月活"
];
//百度云数据
ret
[
"dau"
]
=
getReflectionData
(
"日活"
,
dayStatsData
,
{});
ret
[
"dau"
]
=
getReflectionData
(
"日活"
,
dayStatsData
,
{});
ret
[
"mau"
]
=
getReflectionData
(
"月活"
,
monthStatsData
,
{});
ret
[
"mau"
]
=
getReflectionData
(
"月活"
,
monthStatsData
,
{});
ret
[
"yhtslzs"
]
=
{
title
:
"用户投诉总数"
,
data
:
parseInt
(
yhtslzs
[
"用户投诉总数"
]
||
0
)};
ret
[
"yhtslzs"
]
=
{
title
:
"用户投诉总数"
,
data
:
parseInt
(
yhtslzs
[
"用户投诉总数"
]
||
0
)};
let
uv
=
statsQueue
[
"uv"
];
let
uv
=
statsQueue
[
"uv"
];
//百度云数据
ret
[
"hdzfwrs"
]
=
{
title
:
"活动总访问人数"
,
data
:
uv
||
0
};
ret
[
"hdzfwrs"
]
=
{
title
:
"活动总访问人数"
,
data
:
uv
||
0
};
//应用系统监控
//应用系统监控
...
@@ -46,3 +46,73 @@ export async function getData(req, res) {
...
@@ -46,3 +46,73 @@ export async function getData(req, res) {
//重要活动
//重要活动
res
.
send
(
ret
);
res
.
send
(
ret
);
}
}
export
async
function
getPopData
(
req
,
res
)
{
//访问人数和访问趋势获取阿里云 玑脉大平台 数据
// let activeList:any = await getActiveListData();
// let resultList = [];
// activeList.forEach(item => {
// let state = "活动预告";
// if (item.hdztxh == '1') state = "活动进行中";
// else if (item.hdztxh == '2') state = "活动结束";
// let registered = 0;
// if (!isNaN(item.zcrs) ) registered = parseInt(item.zcrs);
// let complaints = 0;
// if (!isNaN(item.yhtsl) ) complaints = parseInt(item.yhtsl);
// resultList.push({
// title:item.hdmc,
// state,//状态
// time:item.hdsj,//活动时间
// registered,//注册人数
// complaints,//用户投诉量
// });
// });
// // let dataList = [];
let
onceData
=
{
title
:
"聚合磁力2022跨界电商测试测试测试测试"
,
state
:
"活动预告"
,
registered
:
12600
,
//注册人数
time
:
"2022/01/22~01/23"
,
//活动时间
access
:
99900
,
//访问人数
complaints
:
1000
,
//投诉量
trend
:[
{
key
:
"12:30"
,
value
:
200
},
{
key
:
"13:00"
,
value
:
100
},
{
key
:
"13:30"
,
value
:
200
},
{
key
:
"14:00"
,
value
:
100
},
{
key
:
"14:30"
,
value
:
200
},
{
key
:
"15:00"
,
value
:
100
},
{
key
:
"15:30"
,
value
:
200
},
]
};
let
onceData2
=
{
title
:
"青少年人工智能奥林匹克挑战赛"
,
state
:
"活动进行中"
,
registered
:
38699
,
//注册人数
time
:
"2022/01/22~01/23"
,
//活动时间
access
:
42563
,
//访问人数
complaints
:
42563
,
//投诉量
trend
:[
{
key
:
"12:30"
,
value
:
200
},
{
key
:
"13:00"
,
value
:
50
},
{
key
:
"13:30"
,
value
:
200
},
{
key
:
"14:00"
,
value
:
50
},
{
key
:
"14:30"
,
value
:
200
},
{
key
:
"15:00"
,
value
:
50
},
{
key
:
"15:30"
,
value
:
200
},
]
};
let
dataList
=
[
onceData
,
onceData2
];
res
.
send
({
dataList
});
}
src/data/interface/activeQueueData.ts
0 → 100644
View file @
f8709132
import
{
activityStats
}
from
"./baiduStats"
;
import
{
getActivityListData
}
from
"./data"
;
import
moment
=
require
(
"moment"
);
let
lastActiveMap
=
{};
//第一次检测到有数据的时间 如果想要设定时间,把时间填这里
let
haveDataTime
=
0
;
// let startScopeM = 0;
// let startScopeS = 0;
// let endScopeM = 0;
// let endScopeS = 0;
async
function
cacheActivityData
()
{
let
activityList
=
await
getActivityListData
();
let
haveUpdate
=
false
;
for
(
let
i
=
0
;
i
<
activityList
.
length
;
i
++
)
{
let
{
hdkssj
,
hdjssj
,
hdmc
}
=
activityList
[
i
];
if
(
!
hdkssj
||
!
hdjssj
||
!
hdmc
)
continue
;
let
{
startTime
,
endTime
}
=
getDateFormat
(
hdkssj
,
hdjssj
);
let
oldItem
=
lastActiveMap
[
hdmc
];
let
thisItemIsNew
=
false
;
if
(
!
oldItem
)
thisItemIsNew
=
true
;
else
if
(
oldItem
.
startTime
!=
startTime
||
oldItem
.
endTime
!=
endTime
)
thisItemIsNew
=
true
;
if
(
thisItemIsNew
)
{
let
count
=
await
activityStats
(
startTime
,
endTime
);
lastActiveMap
[
hdmc
]
=
{
startTime
,
endTime
,
count
};
}
}
return
haveUpdate
;
}
function
getDateFormat
(
startTime
:
number
,
endTime
:
number
)
{
return
{
startTime
:
moment
(
startTime
).
format
(
'YYYYMMDD'
),
endTime
:
moment
(
endTime
).
format
(
'YYYYMMDD'
),
};
}
let
startScopeTime
=
0
;
let
endScopeTime
=
0
;
//这里放活动缓存机制
export
function
initActiveQueue
()
{
cacheActivityData
();
setInterval
(
async
()
=>
{
let
thisTime
=
new
Date
().
valueOf
();
//历史数据
if
(
!
haveDataTime
)
{
//当不设置活动更像时间的时候
let
haveUpdate
=
cacheActivityData
();
if
(
haveUpdate
)
{
//如果发现了活动列表更新
haveDataTime
=
thisTime
.
valueOf
();
//向上向下取10s
let
startScopeM
=
parseInt
(
moment
(
thisTime
-
(
10
*
1000
)).
format
(
"m"
));
let
startScopeS
=
parseInt
(
moment
(
thisTime
-
(
10
*
1000
)
).
format
(
"s"
));
let
endScopeM
=
parseInt
(
moment
(
thisTime
+
(
10
*
1000
)).
format
(
"m"
));
let
endScopeS
=
parseInt
(
moment
(
thisTime
+
(
10
*
1000
)
).
format
(
"s"
));
startScopeTime
=
(
startScopeM
*
60
)
+
startScopeS
;
endScopeTime
=
(
endScopeM
*
60
)
+
endScopeS
;
}
}
else
{
//设置了活动更新时间 或者 系统第一次发现数据更新的时间
let
thisM
=
parseInt
(
moment
(
thisTime
).
format
(
"m"
));
let
thisS
=
parseInt
(
moment
(
thisTime
).
format
(
"s"
));
let
thisMS
=
(
thisM
*
60
)
+
thisS
;
if
(
endScopeTime
<
startScopeTime
)
{
//结束范围小于开始范围
if
(
thisMS
>=
startScopeTime
||
thisM
<=
endScopeTime
)
cacheActivityData
();
}
else
{
//正常时间轴
if
(
thisMS
>=
startScopeTime
&&
thisMS
<=
endScopeTime
)
cacheActivityData
();
}
}
//当天数据
},
600
*
1000
);
}
\ No newline at end of file
src/data/interface/aliyunStats.ts
View file @
f8709132
...
@@ -38,6 +38,7 @@ export async function getALYStats(isFirst) {
...
@@ -38,6 +38,7 @@ export async function getALYStats(isFirst) {
//董老师说这里留个坑 2021-12-22 下午 15:09 这里暂时留 日常体育成绩 0dcce666-691b-422f-9e1d-7301b9d5164e 需要更换添加或者全部,就替换checkKeyList即可
//董老师说这里留个坑 2021-12-22 下午 15:09 这里暂时留 日常体育成绩 0dcce666-691b-422f-9e1d-7301b9d5164e 需要更换添加或者全部,就替换checkKeyList即可
//公元2022年1月20日 下午15点29分40秒 改成了 "2cec1889-29a5-49b5-8a82-c83663b34aec" => 这个是 玑脉大平台 域名是 shsunshine-zp.shec.edu.cn/
//公元2022年1月20日 下午15点29分40秒 改成了 "2cec1889-29a5-49b5-8a82-c83663b34aec" => 这个是 玑脉大平台 域名是 shsunshine-zp.shec.edu.cn/
//这个checkList 对应的是重要活动保障的 应用系统监控数据
let
checkKeyList
=
[
"2cec1889-29a5-49b5-8a82-c83663b34aec"
];
let
checkKeyList
=
[
"2cec1889-29a5-49b5-8a82-c83663b34aec"
];
let
alyDataCount
=
0
;
let
alyDataCount
=
0
;
...
...
src/data/interface/baiduStats.ts
View file @
f8709132
import
moment
=
require
(
"moment"
);
import
moment
=
require
(
"moment"
);
import
{
post
}
from
"../../util/request"
;
import
{
post
}
from
"../../util/request"
;
import
{
getActivityListData
}
from
"./data"
;
function
statsDataFormat
()
{
function
statsDataFormat
()
{
let
dayStartTime
=
moment
().
add
(
-
6
,
'days'
);
let
dayStartTime
=
moment
().
add
(
-
6
,
'days'
);
...
@@ -86,7 +87,7 @@ function uvDataFormat() {
...
@@ -86,7 +87,7 @@ function uvDataFormat() {
}
}
export
async
function
getUV
()
{
export
async
function
getUV
()
{
const
site_id
=
17390466
;
const
site_id
=
17390466
;
//这里获取的是 玑脉大平台 日活数据
let
{
startTime
,
endTime
}
=
uvDataFormat
();
let
{
startTime
,
endTime
}
=
uvDataFormat
();
let
url
=
"https://api.baidu.com/json/tongji/v1/ReportService/getData"
;
let
url
=
"https://api.baidu.com/json/tongji/v1/ReportService/getData"
;
let
header
=
{
let
header
=
{
...
@@ -155,3 +156,44 @@ export async function getPVCountBySiteId(siteId) {
...
@@ -155,3 +156,44 @@ export async function getPVCountBySiteId(siteId) {
return
count
;
return
count
;
}
}
export
async
function
activityStats
(
startTime
:
string
,
endTime
:
string
)
{
const
site_id
=
17390466
;
//使用 玑脉大平台 统计数据
let
url
=
"https://api.baidu.com/json/tongji/v1/ReportService/getData"
;
let
header
=
{
"username"
:
"shkyzx"
,
"password"
:
"Support01"
,
"token"
:
"2444afaabacc40a0819a15815d7ec10f"
,
"account_type"
:
1
};
let
body
=
{
"site_id"
:
`
${
site_id
}
`
,
"start_date"
:
startTime
,
"end_date"
:
endTime
,
"metrics"
:
"pv_count"
,
"method"
:
"trend/time/a"
,
"area"
:
"china"
}
let
uvResult
:
any
=
await
post
(
url
,
{
body
,
header
},
{});
if
(
!
baiduStatsResultIsNull
(
uvResult
)
)
{
console
.
log
(
"百度云接口异常"
);
return
0
;
}
let
resultInfo
=
uvResult
.
body
.
data
[
0
].
result
;
if
(
!
Array
.
isArray
(
resultInfo
.
sum
)
||
!
Array
.
isArray
(
resultInfo
.
sum
[
0
])
||
resultInfo
.
sum
[
0
][
0
]
==
undefined
||
resultInfo
.
sum
[
0
][
0
]
==
null
)
{
console
.
log
(
"百度云接口异常 没有sum数据"
);
return
0
;
}
return
resultInfo
.
sum
[
0
][
0
];
}
function
baiduStatsResultIsNull
(
res
)
{
if
(
!
res
.
body
||
!
res
.
body
.
data
||
!
Array
.
isArray
(
res
.
body
.
data
)
||
!
res
.
body
.
data
[
0
]
)
return
true
;
let
resData
=
res
.
body
.
data
[
0
];
if
(
!
resData
.
result
)
return
true
;
return
false
;
}
\ No newline at end of file
src/data/interface/data.ts
View file @
f8709132
...
@@ -178,3 +178,20 @@ function listMappingObject(dataList, mappingInfo) {
...
@@ -178,3 +178,20 @@ function listMappingObject(dataList, mappingInfo) {
return
result
return
result
}
}
//重要活动保障弹框的活动数据
export
async
function
getActivityListData
()
{
//阿里云和百度云拿不到活动数据,这里的活动数据先共用 重要活动 的 访问流量与用户反馈的数据
await
get
获取
token
();
const
body
=
{
client_id
:
requestConfig
.
client_id
,
access_token
:
token
,
};
let
dataList
=
await
post
(
getUrl
(
urlEnum
.
重要活动保障列表
),
body
,
{}
);
if
(
!
Array
.
isArray
(
dataList
)
)
{
console
.
log
(
"获取重要活动保障列表出错 返回的结果不是数组"
);
return
[];
}
return
dataList
||
[];
}
src/data/interface/queueData.ts
View file @
f8709132
...
@@ -96,7 +96,6 @@ async function statsBaiduData(isFirst) {
...
@@ -96,7 +96,6 @@ async function statsBaiduData(isFirst) {
statsQueue
[
"日活月活"
]
=
日活月活
;
statsQueue
[
"日活月活"
]
=
日活月活
;
}
}
export
async
function
initQueueData
()
{
export
async
function
initQueueData
()
{
console
.
log
(
"开始初始化阿里云与百度云数据"
);
console
.
log
(
"开始初始化阿里云与百度云数据"
);
let
result
=
await
getSiteInfoStats
(
true
);
let
result
=
await
getSiteInfoStats
(
true
);
...
...
src/data/interface/url.ts
View file @
f8709132
...
@@ -22,9 +22,8 @@ export enum urlEnum {
...
@@ -22,9 +22,8 @@ export enum urlEnum {
信息安全风险
=
"/service/api/kyzx/xxaqfx"
,
信息安全风险
=
"/service/api/kyzx/xxaqfx"
,
资源部署
=
"/service/api/kyzx/zybs"
,
资源部署
=
"/service/api/kyzx/zybs"
,
资源可用性
=
"/service/api/kyzx/zykyx"
,
资源可用性
=
"/service/api/kyzx/zykyx"
,
资源使用率趋势
=
"/service/api/kyzx/zysylqs"
资源使用率趋势
=
"/service/api/kyzx/zysylqs"
,
重要活动保障列表
=
"/service/api/kyzx/zyhdbzlb"
};
};
export
function
getUrl
(
urlName
)
{
export
function
getUrl
(
urlName
)
{
...
...
src/routers/router.ts
View file @
f8709132
...
@@ -12,4 +12,7 @@ export function setRouter(httpServer){
...
@@ -12,4 +12,7 @@ export function setRouter(httpServer){
httpServer
.
get
(
'/zyhdbz'
,
asyncHandler
(
zyhdbzBiz
.
getData
));
httpServer
.
get
(
'/zyhdbz'
,
asyncHandler
(
zyhdbzBiz
.
getData
));
httpServer
.
post
(
'/zyhdbz'
,
asyncHandler
(
zyhdbzBiz
.
getData
));
httpServer
.
post
(
'/zyhdbz'
,
asyncHandler
(
zyhdbzBiz
.
getData
));
httpServer
.
get
(
'/zyhdbzpop'
,
asyncHandler
(
zyhdbzBiz
.
getPopData
));
httpServer
.
post
(
'/zyhdbzpop'
,
asyncHandler
(
zyhdbzBiz
.
getPopData
));
}
}
\ No newline at end of file
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