Files
framework_project_web/api/controller_admin/sys_parameter.js
张成 dee3a336ce init
2026-04-29 13:34:39 +08:00

76 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 后台字典/系统参数管理
* Banner 配置存于 sys_parameterkeybannerListImage、bannerDetailImage、bannerListIndex
*/
const { sys_parameter, op } = require('../../middleware/baseModel');
const BANNER_KEYS = ['bannerListImage', 'bannerDetailImage', 'bannerListIndex'];
module.exports = {
// all 接口
'GET /sys_parameter/all': async (ctx, next) => {
const rows = await sys_parameter.findAll({
where: {},
attributes: ['key', 'value']
});
return ctx.success(rows);
},
/**
* 获取 Banner 配置(三个 key 的 value
*/
'GET /sys_parameter/banner_config': async (ctx, next) => {
const rows = await sys_parameter.findAll({
where: {
key: { [op.in]: ['bannerListImage', 'bannerDetailImage', 'bannerListIndex'] }
},
attributes: ['key', 'value']
});
const data = {
bannerListImage: '',
bannerDetailImage: '',
bannerListIndex: '0'
};
if (rows && rows.length) {
rows.forEach((row) => {
const key = row.key;
if (BANNER_KEYS.includes(key)) {
data[key] = row.value != null ? String(row.value).replace(/\n/g, '') : '';
}
});
}
return ctx.success(data);
},
/**
* 保存 Banner 配置
* body: { bannerListImage?, bannerDetailImage?, bannerListIndex? }
*/
'POST /sys_parameter/banner_config': async (ctx, next) => {
const body = ctx.getBody() || {};
const updates = [
{ key: 'bannerListImage', value: body.bannerListImage != null ? String(body.bannerListImage).trim() : '' },
{ key: 'bannerDetailImage', value: body.bannerDetailImage != null ? String(body.bannerDetailImage).trim() : '' },
{ key: 'bannerListIndex', value: body.bannerListIndex != null ? String(body.bannerListIndex).trim() : '0' }
];
for (const item of updates) {
let row = await sys_parameter.findOne({ where: { key: item.key } });
if (row) {
await row.update({ value: item.value });
} else {
await sys_parameter.create({
key: item.key,
value: item.value,
remark: item.key === 'bannerListIndex' ? '列表下标或关闭(0关闭)' : 'Banner图片URL',
is_modified: 0
});
}
}
return ctx.success({}, '保存成功');
}
};