8 changed files with 142 additions and 25 deletions
@ -0,0 +1,68 @@ |
|||||
|
'use strict'; |
||||
|
const moment = require('moment') |
||||
|
|
||||
|
async function edit (ctx, next) { |
||||
|
const transaction = await ctx.fs.dc.orm.transaction(); |
||||
|
try { |
||||
|
const models = ctx.fs.dc.models; |
||||
|
const { userId } = ctx.fs.api |
||||
|
const data = ctx.request.body; |
||||
|
|
||||
|
// 或取其他服务信息
|
||||
|
const nvrData = { |
||||
|
channelCount: 8, |
||||
|
port: 8080, |
||||
|
} |
||||
|
|
||||
|
if (data.id) { |
||||
|
// 修改
|
||||
|
const storageData = Object.assign({}, data, nvrData) |
||||
|
await models.Nvr.update(storageData, { |
||||
|
where: { |
||||
|
id: data.id |
||||
|
}, |
||||
|
transaction |
||||
|
}) |
||||
|
} else { |
||||
|
// 添加
|
||||
|
const storageData = Object.assign({}, data, nvrData, { |
||||
|
createTime: moment().format(), |
||||
|
createUserId: userId, |
||||
|
delete: false, |
||||
|
}) |
||||
|
await models.Nvr.create(storageData, { transaction }) |
||||
|
} |
||||
|
|
||||
|
await transaction.commit(); |
||||
|
ctx.status = 204; |
||||
|
} catch (error) { |
||||
|
await transaction.rollback(); |
||||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
||||
|
ctx.status = 400; |
||||
|
ctx.body = {} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
async function del (ctx, next) { |
||||
|
try { |
||||
|
const models = ctx.fs.dc.models; |
||||
|
const { nvrId } = ctx.params |
||||
|
|
||||
|
await models.Nvr.destroy({ |
||||
|
where: { |
||||
|
id: nvrId |
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
ctx.status = 204; |
||||
|
} catch (error) { |
||||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`); |
||||
|
ctx.status = 400; |
||||
|
ctx.body = {} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
module.exports = { |
||||
|
edit, |
||||
|
del, |
||||
|
}; |
@ -0,0 +1,11 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
const nvr = require('../../controllers/nvr'); |
||||
|
|
||||
|
module.exports = function (app, router, opts) { |
||||
|
app.fs.api.logAttr['POST/nvr'] = { content: '添加/修改nvr', visible: false }; |
||||
|
router.post('/nvr', nvr.edit); |
||||
|
|
||||
|
app.fs.api.logAttr['DEL/nvr'] = { content: '删除nvr', visible: false }; |
||||
|
router.del('/nvr/:nvrId', nvr.del); |
||||
|
}; |
@ -0,0 +1,29 @@ |
|||||
|
'use strict'; |
||||
|
const redis = require("ioredis") |
||||
|
const moment = require('moment') |
||||
|
|
||||
|
module.exports = async function factory (app, opts) { |
||||
|
let client = new redis(opts.redis.port, opts.redis.host); |
||||
|
|
||||
|
client.on("error", function (err) { |
||||
|
app.fs.logger.error('info', '[FS-AUTH-REDIS]', 'redis connect error.'); |
||||
|
console.error("Error :", err); |
||||
|
process.exit(-1); |
||||
|
}); |
||||
|
|
||||
|
client.on('connect', function () { |
||||
|
console.log(`redis connect success ${opts.redis.host + ':' + opts.redis.port}`); |
||||
|
}) |
||||
|
|
||||
|
// 自定义方法
|
||||
|
async function hdelall (key) { |
||||
|
const obj = await client.hgetall(key); |
||||
|
const hkeys = Object.keys(obj) |
||||
|
await client.hdel(key, hkeys) |
||||
|
} |
||||
|
|
||||
|
app.redis = client |
||||
|
app.redisTools = { |
||||
|
hdelall, |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue