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.
 

42 lines
1.2 KiB

import db from "../index.js"
class SiteConfigModel {
// 获取指定key的配置
static async get(key) {
const row = await db("site_config").where({ key }).first()
return row ? row.value : null
}
// 设置指定key的配置(有则更新,无则插入)
static async set(key, value) {
const exists = await db("site_config").where({ key }).first()
if (exists) {
await db("site_config").where({ key }).update({ value, updated_at: db.fn.now() })
} else {
await db("site_config").insert({ key, value })
}
}
// 批量获取多个key的配置
static async getMany(keys) {
const rows = await db("site_config").whereIn("key", keys)
const result = {}
rows.forEach(row => {
result[row.key] = row.value
})
return result
}
// 获取所有配置
static async getAll() {
const rows = await db("site_config").select("key", "value")
const result = {}
rows.forEach(row => {
result[row.key] = row.value
})
return result
}
}
export default SiteConfigModel
export { SiteConfigModel }