first commit

This commit is contained in:
xin
2024-07-19 13:58:44 +08:00
commit 3efe6cb5b6
42 changed files with 7606 additions and 0 deletions

View File

@ -0,0 +1,9 @@
const db=require("../comman/db")
exports.getfilelistinfo=(req, res) => {
sql='SELECT d.*, i.last_online FROM filebrowerinfo d JOIN frpinfo i ON d.name = i.id;'
db.query(sql,(err,result)=>{
res.send(result);
})
}

View File

@ -0,0 +1,152 @@
const db=require("../comman/db")
const mqttserver=require("../comman/mqqthttp")
const {log} = require("debug");
exports.getSwitchStat=(req, res) => {
}
exports.getSwitchList= async (req, res) => {
let listonline=await mqttserver.queryalldeviceonline()
sql='SELECT * FROM `remoteswitch` WHERE 1'
db.query(sql,(err,result)=>{
let devicelist=new Array()
for(rowindex in result) {
// console.log(result)
Data={
ID: rowindex,
SwitchID:result[rowindex].id,
Type:result[rowindex].type,
Detail:result[rowindex].tips,
SwitchData: [
{ Stat: result[rowindex].switch1===1?true:false, ID: 1},
{ Stat: result[rowindex].switch2===1?true:false, ID: 2},
{ Stat: result[rowindex].switch3===1?true:false, ID: 3},
{Stat: result[rowindex].switch4===1?true:false, ID: 4}
]
}
if (listonline.includes(result[rowindex].id))
{
Data.isonline=true;
}else
{
continue
Data.isonline=false;
}
//res.send(Data);
devicelist.push(Data);
}
//console.log(devicelist)
backdata={
devicelist:devicelist
}
res.send(backdata);
// console.log(devicelist[0].SwitchData)
// res.send("sdfsdfsdf");
// res.send(devicelist);
})
}
exports.SetSwitch=async (req, res) => {
req.body=req.query
//console.log(req)
Data={
id:req.body.Data.SwitchID,
sid:req.body.Data.number,
st:(req.body.Data.stat==="true"?1:0)
}
//console.log("data send")
// console.log(Data)
let mqttclient = global.MqttClient
mqttclient.publish("remoteShutter",JSON.stringify(Data));
message= await waitForMessage("remoteShuttersend")
message=JSON.parse(message)
// console.log("message send")
// console.log(message)
Data=req.body.Data
for (i=0;i<4;i++)
{
Data.SwitchData[i]=message.st[i]
}
delete Data.number
backdata={
index:req.body.index,
Data://Data
{
ID: req.body.Data.ID,
SwitchID:message.id,
Type:req.body.Data.Type,
Detail:req.body.Data.Detail,
isonline:true,
SwitchData: [
{ Stat: message.st[0], ID: 1},
{ Stat: message.st[1], ID: 2},
{ Stat: message.st[2], ID: 3},
{Stat: message.st[3], ID: 4}
]
}
}
console.log(backdata.Data)
res.send(backdata);
}
function waitForMessage(topic) {
return new Promise((resolve, reject) => {
let client = global.MqttClient
client.subscribe(topic, (err) => {
if (err) {
reject(err);
} else {
client.on('message', (t, message) => {
if (t === topic) {
client.unsubscribe(topic);
resolve(message.toString());
}
});
}
});
});
}

View File

@ -0,0 +1,100 @@
var db = require("../comman/db.js")
const bcrypt = require('bcryptjs')
/**
* 在这里定义和用户相关的路由处理函数,供 /router/user.js 模块进行调用
*/
// 注册用户的处理函数
exports.regUser = (req, res) => {
var data = req.body;
if (data.Username == "" || data.Name == "" || data.Password == "") {
return res.send("传入数据非法")
}
const sqlStr = 'select * from employeelist where Username=?'
//res.setHeader("refresh","3; url=../index.html")
db.query(sqlStr, data.Username, (err, result) => {
if (err) {
return res.send(err)
}
if (result.length > 0) {
res.setHeader("refresh", "3; url=../html/register.html")
return res.send("用户已存在 请更换用户名")
}
delete data.configPassword
data.Password = bcrypt.hashSync(data.Password, 10)
data.Acess = 0
data.Pic = null
console.log(data);
const sql = "insert into employeelist set ?";
db.query(sql, data, (err, result) => {
console.log(result);
console.log(err)
res.setHeader("refresh", "3; url=../index.html")
res.send('reguser OK')
});
// res.setHeader('refresh:3; url=../index.html')
//res.render('new.html')
})
}
// 登录的处理函数
exports.login = (req, res) => {
const userinfo = req.body
// 定义 SQL 语句
const sql = `select * from employeelist where Username=?`
// 执行 SQL 语句,根据用户名查询用户的信息
db.query(sql, userinfo.Username, (err, results) => {
// 执行 SQL 语句失败
if (err) return res.send(err)
// 执行 SQL 语句成功,但是获取到的数据条数不等于 1
if (results.length !== 1) {
res.setHeader("refresh", "3; url=../html/login.html")
return res.send('登录失败!')
}
// TODO判断密码是否正确
const compareResult = bcrypt.compareSync(userinfo.Password, results[0].Password)
if (!compareResult) {
res.setHeader("refresh", "3; url=../html/login.html")
return res.send('登录失败!')
}
// TODO在服务器端生成 Token 的字符串
req.session.username=userinfo.Username;
req.session.islogin = true;
if (userinfo.Username=="renlixin"){
req.session.isadmin=true;
}else
{
req.session.isadmin=false;
}
var message = {
message: "login ok"
}
res.setHeader("refresh", "3; url=../index.html")
res.send(message.message)
})
}
exports.logout = (req, res) => {
req.session.islogin = false;
req.session.destroy();
res.setHeader("refresh", "3; url=../html/login.html")
res.send('logout ok')
}