ntrip-caster服务后端
This commit is contained in:
522
app/controller/home.js
Normal file
522
app/controller/home.js
Normal file
@@ -0,0 +1,522 @@
|
||||
const { Controller } = require('egg');
|
||||
|
||||
const GBK = require("gbk.js");
|
||||
|
||||
const decode = (data) => {
|
||||
let arr = [];
|
||||
data.match(/..?/g).forEach((element) => {
|
||||
arr.push(parseInt(element, 16));
|
||||
});
|
||||
return GBK.decode(arr);
|
||||
}
|
||||
|
||||
const CryptoJS = require("crypto-js");
|
||||
|
||||
const KEY = CryptoJS.enc.Utf8.parse('BDQH');
|
||||
|
||||
const decryptRequest = (body) => {
|
||||
return CryptoJS.AES.decrypt(body, KEY, {
|
||||
mode: CryptoJS.mode.ECB,
|
||||
padding: CryptoJS.pad.Pkcs7
|
||||
}).toString(CryptoJS.enc.Utf8);
|
||||
};
|
||||
|
||||
const checkUid = async (ctx) => {
|
||||
const uid = ctx.request.body.uid;
|
||||
const token = ctx.request.header.authorization;
|
||||
const redis = ctx.app.redis;
|
||||
let rdmcode;
|
||||
if (!uid) {
|
||||
const [buser, cuser, tuser] = await Promise.all([
|
||||
redis.get('db0').get(token),
|
||||
redis.get('db1').get(token),
|
||||
redis.get('db5').get(token),
|
||||
]);
|
||||
rdmcode = buser || cuser || tuser;
|
||||
} else {
|
||||
let decryptUid = decryptRequest(uid).split('?')[0];
|
||||
const redisType = {
|
||||
"B": "db0",
|
||||
"C": "db1",
|
||||
"T": "db5",
|
||||
};
|
||||
const lastCode = decryptUid[decryptUid.length - 1];
|
||||
rdmcode = await redis.get(redisType[lastCode]).get(token);
|
||||
}
|
||||
if (!rdmcode) {
|
||||
return false;
|
||||
}
|
||||
return rdmcode;
|
||||
};
|
||||
|
||||
const fileName = "home";
|
||||
|
||||
const setResponse = (ctx, code, msg, model, data = {}) => {
|
||||
const modelType = {
|
||||
"none": { code, msg },
|
||||
"deconstruction": { code, msg, ...data },
|
||||
"polymerization": { code, msg, data }
|
||||
}
|
||||
ctx.body = modelType[model];
|
||||
}
|
||||
|
||||
class HomeController extends Controller {
|
||||
// 保存挂载点
|
||||
async saveMountpoint() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.saveMountpoint(uid, body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
setResponse(ctx, 200, '保存挂载点成功', "none");
|
||||
} else {
|
||||
setResponse(ctx, 404, '保存挂载点失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "saveMountpoint";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 修改挂载点密码
|
||||
async editPassword() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.editPassword(uid, body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
setResponse(ctx, 200, '修改挂载点密码成功', "none");
|
||||
} else {
|
||||
setResponse(ctx, 404, '修改挂载点密码失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "editPassword";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 修改挂载点名称
|
||||
async editMountpoint() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.editMountpoint(uid, body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
setResponse(ctx, 200, '修改挂载点名称成功', "none");
|
||||
} else {
|
||||
setResponse(ctx, 404, '修改挂载点名称失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "editMountpoint";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 删除挂载点
|
||||
async delMountpoint() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
// 验证用户token
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
// 解析获取用户ID
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
// 调用服务层删除挂载点
|
||||
const result = await ctx.service.home.delMountpoint(uid, body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
// 根据删除结果返回响应
|
||||
if (result) {
|
||||
setResponse(ctx, 200, '修改挂载点名称成功', "none");
|
||||
} else {
|
||||
setResponse(ctx, 404, '修改挂载点名称失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
// 记录异常日志
|
||||
const blockName = fileName + "--" + "delMountpoint";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 获取挂载点
|
||||
async getMountpoint() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const result = await ctx.service.home.getMountpoint(uid);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
const data = { mountpoint: result };
|
||||
setResponse(ctx, 200, '获取挂载点成功', "deconstruction", data);
|
||||
} else {
|
||||
setResponse(ctx, 404, '获取挂载点失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "getMountpoint";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 搜索挂载点
|
||||
async searchMountpoint() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.searchMountpoint(uid, body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
const data = { mountpoint: result.dataValues.mountpoint };
|
||||
setResponse(ctx, 200, '搜索挂载点成功', "deconstruction", data);
|
||||
} else {
|
||||
setResponse(ctx, 203, '搜索挂载点失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "searchMountpoint";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 全局寻获挂载点
|
||||
async findMountpoint() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.findMountpoint(body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
const data = {
|
||||
mountpoint: result.mountpoint,
|
||||
password: result.password,
|
||||
status: result.status
|
||||
};
|
||||
setResponse(ctx, 200, '搜索挂载点成功', "deconstruction", data);
|
||||
} else {
|
||||
setResponse(ctx, 404, '搜索挂载点失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "findMountpoint";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 查看ntrip-clinet密码
|
||||
async viewPassword() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.viewPassword(uid, body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
const data = { base: result.dataValues.base };
|
||||
setResponse(ctx, 200, 'ntrip-clinet密码获取成功', "deconstruction", data);
|
||||
} else {
|
||||
setResponse(ctx, 404, 'ntrip-clinet密码获取失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "viewPassword";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 获取挂载点记录
|
||||
async getRecord() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.getRecord(uid, body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
let recordMsg = [];
|
||||
result.rows.forEach(element => {
|
||||
recordMsg.push(element.dataValues);
|
||||
});
|
||||
const data = {
|
||||
recordMsg: recordMsg,
|
||||
count: result.count
|
||||
};
|
||||
setResponse(ctx, 200, '挂载点记录查询成功', "deconstruction", data);
|
||||
} else {
|
||||
setResponse(ctx, 404, '挂载点记录查询失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "getRecord";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 存储消息记录
|
||||
async saveMsg() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const { mountpoint, original_msg } = body;
|
||||
const form = {
|
||||
mountpoint: mountpoint,
|
||||
original_msg: original_msg,
|
||||
created_at: new Date()
|
||||
};
|
||||
const result = await ctx.service.home.saveMsg(uid, form);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
setResponse(ctx, 200, '消息记录存储成功', "none");
|
||||
} else {
|
||||
setResponse(ctx, 404, '消息记录存储失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "saveMsg";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 设置ntrip-clinet密码
|
||||
async setPassword() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.setPassword(uid, body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
setResponse(ctx, 200, 'ntrip-clinet密码设置成功', "none");
|
||||
} else {
|
||||
setResponse(ctx, 404, 'ntrip-clinet密码设置失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "setPassword";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 获取ntrip-clinet密码
|
||||
async getPassword() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.getPassword(body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
const data = { password: result.dataValues.password };
|
||||
setResponse(ctx, 200, 'ntrip-clinet密码获取成功', "deconstruction", data);
|
||||
} else {
|
||||
setResponse(ctx, 404, 'ntrip-clinet密码获取失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "getPassword";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 获取历史消息
|
||||
async getHistoryMsg() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const result = await ctx.service.home.getHistoryMsg(uid, body);
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
let historyMsg = [];
|
||||
result.rows.forEach(element => {
|
||||
historyMsg.push(element.dataValues);
|
||||
});
|
||||
const data = {
|
||||
historyMsg: historyMsg,
|
||||
count: result.count
|
||||
};
|
||||
setResponse(ctx, 200, '历史消息查找成功', "deconstruction", data);
|
||||
} else {
|
||||
setResponse(ctx, 404, '历史消息查找失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "getHistoryMsg";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 删除历史消息
|
||||
async delHistoryMsg() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
const body = ctx.request.body;
|
||||
const model = decryptRequest(body.model);
|
||||
const password = decryptRequest(body.password);
|
||||
const requestMsg = body.userMsg;
|
||||
const resetList = await ctx.service.home.delHistoryMsg(uid, model, password, requestMsg);
|
||||
if (resetList == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (resetList) {
|
||||
setResponse(ctx, 200, '删除历史消息成功', "none");
|
||||
} else {
|
||||
setResponse(ctx, 404, '删除历史消息失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "delHistoryMsg";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
// 获取单位用户
|
||||
async bsideManager() {
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
let rdmcode = await checkUid(ctx);
|
||||
if (!rdmcode) {
|
||||
setResponse(ctx, 401, 'token过期或错误', "none");
|
||||
return;
|
||||
}
|
||||
const uid = JSON.parse(rdmcode).uid;
|
||||
let result;
|
||||
if (uid[uid.length - 1] == 'B') {
|
||||
const body = ctx.request.body;
|
||||
result = await ctx.service.home.bsideManager(uid, body);
|
||||
}
|
||||
if (result == "error") {
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
let bsideUsers = [];
|
||||
result.rows.forEach(element => {
|
||||
bsideUsers.push(element.dataValues);
|
||||
});
|
||||
const data = {
|
||||
bsideUsers: bsideUsers,
|
||||
count: result.count
|
||||
};
|
||||
setResponse(ctx, 200, '获取单位用户成功', "deconstruction", data);
|
||||
} else {
|
||||
setResponse(ctx, 404, '获取单位用户失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "bsideManager";
|
||||
ctx.app.middleware.utils.log('../../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = HomeController;
|
||||
Reference in New Issue
Block a user