You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
3.4 KiB
122 lines
3.4 KiB
2 years ago
|
async function getResource(ctx, next) {
|
||
|
try {
|
||
|
const models = ctx.fs.dc.models;
|
||
|
console.log('models.Resource', models.Resource)
|
||
|
const res = await models.Resource.findAll({
|
||
|
|
||
|
where: { parentResource: null },
|
||
|
include: [{
|
||
|
model: models.Resource,
|
||
|
}],
|
||
|
})
|
||
|
|
||
|
ctx.body = res;
|
||
|
ctx.status = 200;
|
||
|
|
||
|
} catch (error) {
|
||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
|
||
|
ctx.status = 400;
|
||
|
ctx.body = {
|
||
|
"message": "查询所有权限数据失败"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
async function getUserResource(ctx, next) {
|
||
|
try {
|
||
|
const models = ctx.fs.dc.models;
|
||
|
const { userId } = ctx.query;
|
||
|
|
||
|
const res = await models.UserResource.findAll({
|
||
|
where: { userId: userId },
|
||
|
include: [{
|
||
|
model: models.Resource,
|
||
|
}]
|
||
|
})
|
||
|
|
||
|
ctx.body = res;
|
||
|
ctx.status = 200;
|
||
|
|
||
|
} catch (error) {
|
||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
|
||
|
ctx.status = 400;
|
||
|
ctx.body = {
|
||
|
"message": "查询用户权限数据失败"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
async function updateUserRes(ctx, next) {
|
||
|
const transaction = await ctx.fs.dc.orm.transaction();
|
||
|
try {
|
||
|
const models = ctx.fs.dc.models;
|
||
|
const { userId, resCode, isShow } = ctx.request.body;
|
||
|
console.log('isShow1', ctx.request.body)
|
||
|
|
||
|
const res = await models.UserResource.findAll({
|
||
|
attributes: ["resourceId"],
|
||
|
raw: true,
|
||
|
where: { userId: userId }
|
||
|
})
|
||
|
|
||
|
const addRes = resCode.filter(r => !res.some(rr => rr.resourceId == r)).map(r => { return { userId: userId, resourceId: r, isShow: isShow } });
|
||
|
const delRes = res.filter(r => !resCode.includes(r.resourceId)).map(r => r.resourceId);
|
||
|
addRes.length && await models.UserResource.bulkCreate(addRes, { transaction: transaction });
|
||
|
delRes.length && await models.UserResource.destroy({
|
||
|
where: {
|
||
|
resourceId: { $in: delRes },
|
||
|
userId: userId
|
||
|
},
|
||
|
transaction: transaction
|
||
|
})
|
||
|
// await models.UserResource.update({
|
||
|
// isShow: isShow
|
||
|
|
||
|
// }, {
|
||
|
// where: {
|
||
|
// userId: userId
|
||
|
// }
|
||
|
// })
|
||
|
ctx.status = 204;
|
||
|
await transaction.commit();
|
||
|
|
||
|
} catch (error) {
|
||
|
await transaction.rollback();
|
||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
|
||
|
ctx.status = 400;
|
||
|
ctx.body = {
|
||
|
"message": "更新用户权限数据失败"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
async function editeUserRes(ctx, next) {
|
||
|
const transaction = await ctx.fs.dc.orm.transaction()
|
||
|
await transaction.commit()
|
||
|
try {
|
||
|
const models = ctx.fs.dc.models;
|
||
|
const { userId, isShow } = ctx.request.body
|
||
|
console.log('ctx.request.body1', ctx.request.body)
|
||
|
await models.UserResource.update({
|
||
|
isshow: isShow
|
||
|
}, {
|
||
|
where: {
|
||
|
userId: userId
|
||
|
}
|
||
|
})
|
||
|
ctx.status = 204;
|
||
|
|
||
|
} catch (error) {
|
||
|
await transaction.rollback()
|
||
|
ctx.fs.logger.error(`path: ${ctx.path}, error: ${error}`);
|
||
|
ctx.status = 400;
|
||
|
ctx.body = {
|
||
|
"message": "更新用户权限数据失败"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
module.exports = {
|
||
|
getResource,
|
||
|
getUserResource,
|
||
|
updateUserRes,
|
||
|
editeUserRes
|
||
|
};
|