Files
mayfly-go/server/internal/sys/api/config.go

68 lines
1.7 KiB
Go
Raw Normal View History

package api
import (
"mayfly-go/internal/pkg/config"
"mayfly-go/internal/sys/api/form"
"mayfly-go/internal/sys/application"
"mayfly-go/internal/sys/domain/entity"
"mayfly-go/internal/sys/imsg"
"mayfly-go/pkg/biz"
2023-01-14 16:29:52 +08:00
"mayfly-go/pkg/req"
2024-11-20 22:43:53 +08:00
"mayfly-go/pkg/utils/collx"
)
type Config struct {
configApp application.Config `inject:"T"`
}
func (c *Config) ReqConfs() *req.Confs {
baseP := req.NewPermission("config:base")
reqs := [...]*req.Conf{
req.NewGet("", c.Configs).RequiredPermission(baseP),
req.NewGet("/server", c.GetServerConfig).DontNeedToken(),
// 获取指定配置key对应的值
req.NewGet("/value", c.GetConfigValueByKey).DontNeedToken(),
req.NewPost("", c.SaveConfig).Log(req.NewLogSaveI(imsg.LogSaveSysConfig)).RequiredPermissionCode("config:save"),
}
return req.NewConfs("sys/configs", reqs[:]...)
}
2023-01-14 16:29:52 +08:00
func (c *Config) Configs(rc *req.Ctx) {
2024-02-25 12:46:18 +08:00
condition := &entity.Config{Key: rc.Query("key")}
condition.Permission = rc.GetLoginAccount().Username
res, err := c.configApp.GetPageList(condition, rc.GetPageParam())
biz.ErrIsNil(err)
rc.ResData = res
}
2023-01-14 16:29:52 +08:00
func (c *Config) GetConfigValueByKey(rc *req.Ctx) {
2024-02-25 12:46:18 +08:00
key := rc.Query("key")
2024-11-20 22:43:53 +08:00
biz.NotEmpty(key, "key cannot be empty")
config := c.configApp.GetConfig(key)
2023-08-25 19:41:52 +08:00
// 判断是否为公开配置
if config.Permission != "all" {
rc.ResData = ""
return
}
2023-08-25 19:41:52 +08:00
rc.ResData = config.Value
}
2023-01-14 16:29:52 +08:00
func (c *Config) SaveConfig(rc *req.Ctx) {
form, config := req.BindJsonAndCopyTo[*form.ConfigForm, *entity.Config](rc)
rc.ReqParam = form
biz.ErrIsNil(c.configApp.Save(rc.MetaCtx, config))
}
2024-11-20 22:43:53 +08:00
// GetServerConfig 获取当前系统启动配置
func (c *Config) GetServerConfig(rc *req.Ctx) {
conf := config.Conf
rc.ResData = collx.Kvs("i18n", conf.Server.Lang)
}