218 lines
8.4 KiB
JavaScript
218 lines
8.4 KiB
JavaScript
//十八层地狱相关接口
|
||
const express = require('express');
|
||
const router = express.Router();
|
||
const db = require('../link/link.js');
|
||
const getUuid = require('../tools/uuid.js');
|
||
|
||
const tw = (res, code, msg) => {
|
||
res.send({
|
||
'code': code,
|
||
'msg': msg
|
||
})
|
||
}
|
||
|
||
function isEmptyStr(s) {
|
||
if (s == null || s === '') {
|
||
return false
|
||
}
|
||
return true
|
||
}
|
||
|
||
function sqlerr(res, err) {
|
||
console.log(err);
|
||
tw(res, 500, '服务器错误');
|
||
}
|
||
|
||
//添加设备
|
||
router.post('/helladd', (req, res) => {
|
||
let { name, floor } = req.body;
|
||
if (!isEmptyStr(name) || !isEmptyStr(floor)) return tw(res, 400, '请填写完整');
|
||
//校验floor是数字,并且是否为1-18
|
||
if (isNaN(floor) || floor < 1 || floor > 18) return tw(res, 400, '位置必须为1-18的数字');
|
||
//校验name长度是否大于20
|
||
if (name.length > 20) return tw(res, 400, '名称长度不能超过20');
|
||
let sql = `insert into helldevice (name,floor,create_time,status) values ('${name}','${floor}',now(),0)`;
|
||
db.query(sql, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
tw(res, 200, '添加成功');
|
||
})
|
||
})
|
||
|
||
//获取设备列表
|
||
router.get('/helllist', (req, res) => {
|
||
let { page, limit, floor } = req.query;
|
||
page = page || 1;
|
||
limit = limit || 10;
|
||
let sql = `select * from helldevice where 1=1`;
|
||
if (isEmptyStr(floor)) sql += ` and floor=${floor}`;
|
||
sql += ` order by create_time desc limit ${(page - 1) * limit},${limit}`;
|
||
db.query(sql, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
let sql2 = `select count(*) as count from helldevice where 1=1`;
|
||
if (floor) sql2 += ` and floor=${floor}`;
|
||
db.query(sql2, (err, result2) => {
|
||
if (err) return sqlerr(res, err);
|
||
res.send({
|
||
'code': 200,
|
||
'msg': '获取成功',
|
||
'count': result2[0].count,
|
||
'data': result,
|
||
})
|
||
})
|
||
})
|
||
})
|
||
|
||
// 修改设备
|
||
router.put('/hellupdate', (req, res) => {
|
||
let { id, name, floor } = req.body;
|
||
if (!isEmptyStr(id)) return tw(res, 400, '请选择要修改的设备');
|
||
if (!isEmptyStr(name) && !isEmptyStr(floor)) return tw(res, 400, '请填写修改内容');
|
||
let sql = `update helldevice set `;
|
||
let arr = []
|
||
if (isEmptyStr(name)) {
|
||
if (name.length > 20) return tw(res, 400, '名称长度不能超过20');
|
||
arr.push(`name='${name}'`);
|
||
}
|
||
if (isEmptyStr(floor)) {
|
||
if (isNaN(floor) || floor < 1 || floor > 18) return tw(res, 400, '位置必须为1-18的数字');
|
||
arr.push(`floor='${floor}'`);
|
||
}
|
||
sql += arr.join(',') + ` where id=${id}`;
|
||
db.query(sql, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
tw(res, 200, '修改成功');
|
||
})
|
||
})
|
||
|
||
//修改设备状态
|
||
router.put('/hellstatus', (req, res) => {
|
||
let { id, status } = req.body;
|
||
if (!isEmptyStr(id) || !isEmptyStr(status)) return tw(res, 400, '请选择要修改的设备');
|
||
if (status != 0 && status != 1) return tw(res, 400, '状态错误');
|
||
let sql = `update helldevice set status=${status} where id=${id}`;
|
||
db.query(sql, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
tw(res, 200, '修改成功');
|
||
})
|
||
})
|
||
|
||
//删除设备
|
||
router.delete('/helldel', (req, res) => {
|
||
let { id } = req.query;
|
||
if (!isEmptyStr(id)) return tw(res, 400, '请选择要删除的设备');
|
||
let sql = `delete from helldevice where id=${id}`;
|
||
db.query(sql, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
tw(res, 200, '删除成功');
|
||
})
|
||
})
|
||
|
||
//添加设备使用记录
|
||
router.post('/hellrecordadd', (req, res) => {
|
||
let { uid, floor, device, time, reason } = req.body;
|
||
if (!isEmptyStr(uid) || !isEmptyStr(floor) || !isEmptyStr(device) || !isEmptyStr(time) || !isEmptyStr(reason)) return tw(res, 400, '请填写完整');
|
||
//校验floor是数字,并且是否为1-18
|
||
if (isNaN(floor) || floor < 1 || floor > 18) return tw(res, 400, '位置必须为1-18的数字');
|
||
//查询设备名称
|
||
let sql1 = `select name from helldevice where id=${device}`;
|
||
db.query(sql1, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
let sql = `update lifebook set status=4,afterlife='判处${floor}地狱受刑${time}',punishment='在${floor}层地狱受${result[0].name}处刑,共${time}' where id=${uid}`;
|
||
db.query(sql, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
// 添加使用记录
|
||
let sql2 = `insert into helllog (uid,floor,device,time,reason,create_time) values (${uid},${floor},'${device}','${time}','${reason}',now())`;
|
||
db.query(sql2, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
tw(res, 200, '添加成功');
|
||
})
|
||
})
|
||
|
||
})
|
||
|
||
})
|
||
|
||
// 获取设备使用记录
|
||
router.get('/hellrecordlist', (req, res) => {
|
||
let { page, limit, floor, device, id } = req.query;
|
||
page = page || 1;
|
||
limit = limit || 10;
|
||
if (isEmptyStr(id)) {
|
||
let sql = `select h.id as id,h.uid as uid,h.floor as floor,h.device as device,h.time as time,h.reason as reason,h.create_time as create_time,l.name as name,l.uuid as user_uuid from helllog as h,lifebook as l where h.id = ${id} and l.id = h.uid`
|
||
db.query(sql, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
res.send({
|
||
'code': 200,
|
||
'msg': '获取成功',
|
||
'data': result[0],
|
||
})
|
||
})
|
||
} else {
|
||
let sql = `select h.id as id,h.uid as uid,h.floor as floor,h.device as device,h.time as time,h.reason as reason,h.create_time as create_time,l.name as name,l.uuid as user_uuid from helllog as h,lifebook as l where l.id = h.uid `
|
||
if (isEmptyStr(floor)) sql += ` and h.floor=${floor}`;
|
||
if (isEmptyStr(device)) sql += ` and h.device=${device}`;
|
||
sql += ` order by create_time desc limit ${(page - 1) * limit},${limit}`;
|
||
db.query(sql, (err, result) => {
|
||
if (err) sqlerr(res, err);
|
||
let sql2 = `select count(*) as count from helllog where 1=1`;
|
||
if (isEmptyStr(floor)) sql2 += ` and floor=${floor}`;
|
||
if (isEmptyStr(device)) sql2 += ` and device=${device}`;
|
||
db.query(sql2, (err, result2) => {
|
||
if (err) sqlerr(res, err);
|
||
res.send({
|
||
'code': 200,
|
||
'msg': '获取成功',
|
||
'count': result2[0].count,
|
||
'data': result,
|
||
})
|
||
})
|
||
})
|
||
}
|
||
})
|
||
|
||
//删除使用记录
|
||
router.delete('/hellrecorddel', (req, res) => {
|
||
let { id } = req.body;
|
||
if (!isEmptyStr(id)) return tw(res, 400, '请选择要删除的记录');
|
||
let sql = `delete from helllog where id=${id}`;
|
||
db.query(sql, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
tw(res, 200, '删除成功');
|
||
})
|
||
})
|
||
|
||
//修改使用记录
|
||
router.put('/hellrecordedit', (req, res) => {
|
||
let { id, floor, device, time, reason } = req.body;
|
||
if (!isEmptyStr(id)) return tw(res, 400, '选择修改的记录');
|
||
if (isEmptyStr(floor) && isEmptyStr(device) && isEmptyStr(time) && isEmptyStr(reason)) return tw(res, 400, '请选择要修改的内容');
|
||
let sql = `update helllog set `;
|
||
let arr = [];
|
||
if (isEmptyStr(floor)) arr.push(`floor=${floor}`);
|
||
if (isEmptyStr(device)) arr.push(`device=${device}`);
|
||
if (isEmptyStr(time)) arr.push(`time='${time}'`);
|
||
if (isEmptyStr(reason)) arr.push(`reason='${reason}'`);
|
||
sql += arr.join(',') + ` where id=${id}`;
|
||
//修改生死簿内受刑内容
|
||
let sql1 = `select uid,floor,time,device from helllog where id=${id}`;
|
||
db.query(sql1, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
let sql2 = `select name from helldevice where id=${result[0].device}`;
|
||
db.query(sql2, (err, result2) => {
|
||
if (err) return sqlerr(res, err);
|
||
floor = !isEmptyStr(floor) ? result[0].floor : floor;
|
||
time = !isEmptyStr(time) ? result[0].time : time;
|
||
let sql3 = `update lifebook set punishment='在${floor}层地狱受${result2[0].name}处刑,共${time}' where id=${result[0].uid}`;
|
||
db.query(sql3, (err, result3) => {
|
||
if (err) return sqlerr(res, err);
|
||
db.query(sql, (err, result) => {
|
||
if (err) return sqlerr(res, err);
|
||
tw(res, 200, '修改成功');
|
||
})
|
||
})
|
||
})
|
||
})
|
||
|
||
})
|
||
|
||
module.exports = router; |