2022-08-26 20:15:36 +08:00
|
|
|
|
package api
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
2023-07-21 21:18:31 +08:00
|
|
|
|
"encoding/json"
|
2022-08-26 20:15:36 +08:00
|
|
|
|
"mayfly-go/internal/sys/api/form"
|
2023-07-21 21:18:31 +08:00
|
|
|
|
"mayfly-go/internal/sys/api/vo"
|
2022-08-26 20:15:36 +08:00
|
|
|
|
"mayfly-go/internal/sys/application"
|
|
|
|
|
|
"mayfly-go/internal/sys/domain/entity"
|
|
|
|
|
|
"mayfly-go/pkg/biz"
|
|
|
|
|
|
"mayfly-go/pkg/ginx"
|
2023-07-21 21:18:31 +08:00
|
|
|
|
"mayfly-go/pkg/global"
|
2023-01-14 16:29:52 +08:00
|
|
|
|
"mayfly-go/pkg/req"
|
2022-08-26 20:15:36 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
type Config struct {
|
|
|
|
|
|
ConfigApp application.Config
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-01-14 16:29:52 +08:00
|
|
|
|
func (c *Config) Configs(rc *req.Ctx) {
|
2022-08-26 20:15:36 +08:00
|
|
|
|
g := rc.GinCtx
|
|
|
|
|
|
condition := &entity.Config{Key: g.Query("key")}
|
|
|
|
|
|
rc.ResData = c.ConfigApp.GetPageList(condition, ginx.GetPageParam(g), new([]entity.Config))
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-01-14 16:29:52 +08:00
|
|
|
|
func (c *Config) GetConfigValueByKey(rc *req.Ctx) {
|
2022-08-26 20:15:36 +08:00
|
|
|
|
key := rc.GinCtx.Query("key")
|
|
|
|
|
|
biz.NotEmpty(key, "key不能为空")
|
|
|
|
|
|
rc.ResData = c.ConfigApp.GetConfig(key).Value
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-07-21 21:18:31 +08:00
|
|
|
|
func (c *Config) GetConfigValueByKeyWithNoToken(keys []string) func(rc *req.Ctx) {
|
|
|
|
|
|
keyMap := make(map[string]struct{})
|
|
|
|
|
|
for _, key := range keys {
|
|
|
|
|
|
keyMap[key] = struct{}{}
|
|
|
|
|
|
}
|
|
|
|
|
|
return func(rc *req.Ctx) {
|
|
|
|
|
|
key := rc.GinCtx.Query("key")
|
|
|
|
|
|
biz.NotEmpty(key, "key不能为空")
|
|
|
|
|
|
if _, ok := keyMap[key]; !ok {
|
|
|
|
|
|
biz.ErrIsNil(nil, "无权限获取该配置信息")
|
|
|
|
|
|
}
|
|
|
|
|
|
rc.ResData = c.ConfigApp.GetConfig(key).Value
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-01-14 16:29:52 +08:00
|
|
|
|
func (c *Config) SaveConfig(rc *req.Ctx) {
|
2022-08-26 20:15:36 +08:00
|
|
|
|
form := &form.ConfigForm{}
|
2023-07-08 20:05:55 +08:00
|
|
|
|
config := ginx.BindJsonAndCopyTo(rc.GinCtx, form, new(entity.Config))
|
2022-08-26 20:15:36 +08:00
|
|
|
|
rc.ReqParam = form
|
|
|
|
|
|
config.SetBaseInfo(rc.LoginAccount)
|
|
|
|
|
|
c.ConfigApp.Save(config)
|
|
|
|
|
|
}
|
2023-07-21 21:18:31 +08:00
|
|
|
|
|
|
|
|
|
|
// AuthConfig auth相关配置
|
|
|
|
|
|
func (c *Config) AuthConfig(rc *req.Ctx) {
|
2023-07-21 21:49:49 +08:00
|
|
|
|
resp := &vo.Auth2EnableVO{}
|
2023-07-21 21:18:31 +08:00
|
|
|
|
config := c.ConfigApp.GetConfig(AuthOAuth2Key)
|
|
|
|
|
|
oauth2 := &vo.OAuth2VO{}
|
|
|
|
|
|
if config.Value != "" {
|
|
|
|
|
|
if err := json.Unmarshal([]byte(config.Value), oauth2); err != nil {
|
|
|
|
|
|
global.Log.Warnf("解析自定义oauth2配置失败,err:%s", err.Error())
|
|
|
|
|
|
biz.ErrIsNil(err, "解析自定义oauth2配置失败")
|
|
|
|
|
|
} else if oauth2.ClientID != "" {
|
|
|
|
|
|
resp.OAuth2 = true
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
rc.ResData = resp
|
|
|
|
|
|
}
|