This commit is contained in:
张成
2025-11-21 16:53:49 +08:00
commit 8309808835
286 changed files with 32656 additions and 0 deletions

View File

@@ -0,0 +1,132 @@
const { sys_user, sys_role, sys_log, sys_menu, op } = require("../../middleware/baseModel");
const tokenService = require("../service/token");
const { getMd5 } = require("../../tool/md5");
const dayjs = require("dayjs");
module.exports = {
"GET /sys_user/index": async (ctx, next) => {
const resList = await sys_user.findAll({
where: {
name: { [op.not]: "zc" },
},
include: [{ association: sys_user.associations.role, attributes: ["id", "name"] }],
});
return ctx.success(resList);
},
"POST /sys_user/login": async (ctx, next) => {
let name = ctx.get("name");
let password = ctx.get("password");
const userRow = await sys_user.findOne({
where: { name: name, password: getMd5(password) },
});
if (userRow) {
let { id, name, password, roleId } = userRow;
let role = await sys_role.findOne({ where: { id: roleId } });
let token = await tokenService.create({ id, name, password });
let nowDateStr = dayjs().format("YYYY-MM-DD HH:mm:ss");
await sys_log.create({ table_name: "sys_user", operate: "登录", content: `用户<span class="bold"> ${name} </span> 于 ${nowDateStr} 登录系统` });
return ctx.success({ token: token, user: userRow, authorityMenus: role.menus });
}
return ctx.fail("账号或密码错误!");
},
"POST /sys_user/export": async (ctx, next) => {
let rows = [];
let cols = [];
let title = "sys_user";
let tableAttributes = sys_user.tableAttributes;
let colKeys = Object.keys(tableAttributes);
colKeys.forEach((key) => {
let row = tableAttributes[key];
let caption = row.comment ? row.comment : row.fieldName;
cols.push({ caption, type: row.type.__proto__.key === "INTEGER" ? "number" : "string", key: row.field });
});
const userRows = await sys_user.findAll({});
rows = userRows.map((p) => {
let tempRow = p.toJSON();
let row = [];
cols.forEach((col) => {
row.push(tempRow[col.key]);
});
return row;
});
return ctx.downFile({ title, rows, cols });
},
"POST /sys_user/authorityMenus": async (ctx, next) => {
let user_id = ctx.getAdminUserId();
if (user_id) {
const userRow = await sys_user.findOne({ where: { id: user_id } });
if (userRow) {
let { id, roleId } = userRow;
let where = {};
let role = await sys_role.findOne({ where: { id: roleId } });
// 系统角色 不用授权
if (role.type === 0) {
let menuIds = JSON.parse(role.menus);
where = {
id: {
[op.in]: menuIds,
},
};
}
let munuRows = await sys_menu.findAll({
where,
order: [["sort", "ASC"]],
});
return ctx.success(munuRows);
}
}
return ctx.success();
},
"POST /sys_user/add": async (ctx, next) => {
let row = ctx.getBody();
// md5 加密
if (row && row.password) {
row.password = getMd5(row.password);
}
const res = await sys_user.create(row);
return ctx.success(res);
},
"POST /sys_user/edit": async (ctx, next) => {
let row = ctx.getBody();
let id = ctx.get("id");
let { name, roleId, password } = row;
if (password.length !== 32) {
password = getMd5(password);
}
const resList = await sys_user.update(
{ name, roleId, password },
{
where: {
id: id,
},
}
);
return ctx.success(resList);
},
"POST /sys_user/del": async (ctx, next) => {
let id = ctx.get("id");
const res = await sys_user.destroy({
where: { id: id },
});
return ctx.success(res);
},
};