wenlele 2 years ago
parent
commit
560a1a2874
  1. 13
      api/app/lib/controllers/alarm/data.js
  2. 9
      api/app/lib/controllers/auth/index.js
  3. 30
      api/app/lib/middlewares/authenticator.js
  4. 16
      api/app/lib/utils/dataRange.js

13
api/app/lib/controllers/alarm/data.js

@ -155,19 +155,12 @@ async function list (ctx) {
alarmRes.forEach(ar => {
ar.pepProject = (anxinStruc.find(as => as.strucId == ar.StructureId) ||
ar.pomsProject = (anxinStruc.find(as => as.strucId == ar.StructureId) ||
{
pepProject: [
pomsProject: [
// TODO: 开发临时添加
// {
// id: 999,
// projectName: '这是假的开发の数据,看到请拨打110',
// isdelete: 0,
// constructionStatusId: 1,
// constructionStatus: '建设中',
// }
]
}).pepProject
}).pomsProject
// 最新告警详情 - 确认信息
let corConfirmedData = (confirmedAlarmDetailMax.find(cdm => cdm.AlarmId == ar.AlarmId) || {});

9
api/app/lib/controllers/auth/index.js

@ -33,6 +33,8 @@ async function login (ctx, next) {
) {
throw '当前账号已禁用'
}
emisLoginRes.authorized = true
emisLoginRes.expired = moment().add(1, 'day')
emisLoginRes.pomsUserInfo = pomsRegisterRes.dataValues
let userUpdateData = {
@ -60,13 +62,17 @@ async function login (ctx, next) {
ctx.fs.logger.error(`IP GET, error: ${error}`);
}
await models.User.update(userUpdateData, {
where: {
id: emisLoginRes.id
}
})
await ctx.redis.hmset(emisLoginRes.token, {
expired: moment().add(1, 'day'),
userInfo:JSON.stringify(emisLoginRes)
});
ctx.status = 200;
ctx.body = emisLoginRes;
}
@ -95,6 +101,7 @@ async function logout (ctx) {
await ctx.app.fs.emisRequest.put('logout', {
data: params
})
await ctx.redisTools.hdelall(token);
ctx.status = 204;
} catch (error) {

30
api/app/lib/middlewares/authenticator.js

@ -72,24 +72,34 @@ let authorizeToken = async function (ctx, token) {
if (token && tokenFormatRegexp.test(token)) {
try {
console.log(`DurationCalc: auth 1 用时 ${moment().diff(startTime, 'milliseconds')}`);
const authorizeRes = await ctx.app.fs.emisRequest.get('authorize', {
query: { token }
})
const expired = await ctx.redis.hget(token, 'expired');
// const authorizeRes = await ctx.app.fs.emisRequest.get('authorize', {
// query: { token }
// })
// const { userInfo, expired } = authorizeRes;
console.log(`DurationCalc: auth 2 用时 ${moment().diff(startTime, 'milliseconds')}`);
const { userInfo, expired } = authorizeRes;
// TODO 从项企 clickhouse 数据库中查 token 并更新
if (expired && moment().valueOf() <= moment(expired).valueOf()) {
const pomsUser = await ctx.app.fs.dc.models.User.findOne({
where: {
pepUserId: userInfo.id
}
}) || {}
const userInfo = JSON.parse(await ctx.redis.hmget(token, 'userInfo'));
const { pomsUserInfo: pomsUser } = userInfo
// const pomsUser = await ctx.app.fs.dc.models.User.findOne({
// where: {
// pepUserId: userInfo.id
// }
// }) || {}
console.log(`DurationCalc: auth 3 用时 ${moment().diff(startTime, 'milliseconds')}`);
rslt = {
'authorized': userInfo.authorized,
'resources': (userInfo || {}).resources || [],
};
ctx.fs.api.userId = pomsUser.id;
ctx.fs.api.userInfo = pomsUser.dataValues;
ctx.fs.api.userInfo = pomsUser;
ctx.fs.api.pepUserId = userInfo.id;
ctx.fs.api.pepUserInfo = userInfo;
ctx.fs.api.token = token;

16
api/app/lib/utils/dataRange.js

@ -127,15 +127,21 @@ module.exports = function (app, opts) {
let undelStruc = []
for (let s of undelStrucRes) {
if (!undelStruc.some(us => us.strucId == s.strucId)) {
let pomsProject = []
for (let br of bindRes) {
if (br.anxinProjectId.some(braId => braId == s.projectId)) {
let corPepProject = pepProjectRes.find(pp => pp.id == br.pepProjectId)
pomsProject.push({
...br,
pepProject: corPepProject
})
}
}
undelStruc.push({
strucId: s.strucId,
strucName: s.strucName,
// projectId: s.projectId,
pepProject: pepProjectRes.filter(pp => {
return bindRes.some(br => {
return br.pepProjectId == pp.id && br.anxinProjectId.some(braId => braId == s.projectId)
})
})
pomsProject: pomsProject
})
}
}

Loading…
Cancel
Save