2022-08-26 20:15:36 +08:00
|
|
|
package api
|
|
|
|
|
|
|
|
|
|
import (
|
2025-04-18 22:07:37 +08:00
|
|
|
"mayfly-go/internal/pkg/config"
|
2022-08-26 20:15:36 +08:00
|
|
|
"mayfly-go/internal/sys/api/form"
|
|
|
|
|
"mayfly-go/internal/sys/application"
|
|
|
|
|
"mayfly-go/internal/sys/domain/entity"
|
2024-12-16 23:29:18 +08:00
|
|
|
"mayfly-go/internal/sys/imsg"
|
2022-08-26 20:15:36 +08:00
|
|
|
"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"
|
2022-08-26 20:15:36 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Config struct {
|
2024-12-16 23:29:18 +08:00
|
|
|
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[:]...)
|
2022-08-26 20:15:36 +08:00
|
|
|
}
|
|
|
|
|
|
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")}
|
2023-11-07 21:05:21 +08:00
|
|
|
condition.Permission = rc.GetLoginAccount().Username
|
2025-05-20 21:04:47 +08:00
|
|
|
res, err := c.configApp.GetPageList(condition, rc.GetPageParam())
|
2023-10-26 17:15:49 +08:00
|
|
|
biz.ErrIsNil(err)
|
|
|
|
|
rc.ResData = res
|
2022-08-26 20:15:36 +08:00
|
|
|
}
|
|
|
|
|
|
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")
|
2022-08-26 20:15:36 +08:00
|
|
|
|
2024-12-16 23:29:18 +08:00
|
|
|
config := c.configApp.GetConfig(key)
|
2023-08-25 19:41:52 +08:00
|
|
|
// 判断是否为公开配置
|
|
|
|
|
if config.Permission != "all" {
|
|
|
|
|
rc.ResData = ""
|
|
|
|
|
return
|
2023-07-21 21:18:31 +08:00
|
|
|
}
|
2023-08-25 19:41:52 +08:00
|
|
|
|
|
|
|
|
rc.ResData = config.Value
|
2023-07-21 21:18:31 +08:00
|
|
|
}
|
|
|
|
|
|
2023-01-14 16:29:52 +08:00
|
|
|
func (c *Config) SaveConfig(rc *req.Ctx) {
|
2025-05-24 16:22:54 +08:00
|
|
|
form, config := req.BindJsonAndCopyTo[*form.ConfigForm, *entity.Config](rc)
|
2022-08-26 20:15:36 +08:00
|
|
|
rc.ReqParam = form
|
2024-12-16 23:29:18 +08:00
|
|
|
biz.ErrIsNil(c.configApp.Save(rc.MetaCtx, config))
|
2022-08-26 20:15:36 +08:00
|
|
|
}
|
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)
|
|
|
|
|
}
|