package admin import ( "github.com/druidcaesa/gotool" "strconv" "strings" "time" "ulink-admin/frame" "ulink-admin/modules/system/models/model" "ulink-admin/modules/system/models/req" "ulink-admin/modules/system/service" "ulink-admin/pkg/cache" "ulink-admin/pkg/excels" "ulink-admin/pkg/file" "ulink-admin/pkg/jwt/admin" "ulink-admin/pkg/page" ) type ConfigApi struct { ConfigService *service.ConfigService `inject:""` } // GetConfigKey 根据参数键名查询参数值 func (a ConfigApi) GetConfigKey(c *frame.Context) { param := c.Param("configKey") if !gotool.StrUtils.HasEmpty(param) { key := a.ConfigService.GetConfigKey(param) c.Ok(key.ConfigValue) } else { c.Error("参数不合法") } } // List 查询设置列表 func (a ConfigApi) List(c *frame.Context) { query := &req.ConfigQuery{} c.ValidteError(c.ShouldBind(query), query) find, i := a.ConfigService.Find(query) c.Ok(page.Page{ List: find, Total: i, Size: query.PageSize, }) } // Add 添加数据 func (a ConfigApi) Add(c *frame.Context) { config := &model.SysConfig{} c.ValidteError(c.ShouldBind(config), config) config.CreateBy = admin.GetUserInfo(c).UserName a.ConfigService.Add(config) } // Get 查询数据 func (a ConfigApi) Get(c *frame.Context) { param := c.Param("id") id, _ := strconv.ParseInt(param, 10, 64) c.Ok(a.ConfigService.GetInfo(id)) } // Edit 修改数据 func (a ConfigApi) Edit(c *frame.Context) { config := &model.SysConfig{} c.ValidteError(c.ShouldBind(config), config) config.UpdateBy = admin.GetUserInfo(c).UserName config.UpdateTime = time.Now() a.ConfigService.Update(config) } // Delete 删除数据 func (a ConfigApi) Delete(c *frame.Context) { ids := strings.Split(c.Param("ids"), ",") list := make([]int64, 0) for _, id := range ids { parseInt, _ := strconv.ParseInt(id, 10, 64) list = append(list, parseInt) } //进行删除 a.ConfigService.Remove(list) } // RefreshCache 刷新缓存 func (a ConfigApi) RefreshCache(c *frame.Context) { all := a.ConfigService.FindAll() m2 := new(model.SysConfig) for _, sysConfig := range *all { cache.RemoveKey(sysConfig.ConfigKey) cache.SetDictCache(sysConfig.ConfigKey, m2.MarshalDictObj(&sysConfig)) } } // Export 导出数据 func (a ConfigApi) Export(c *frame.Context) { query := &req.ConfigQuery{} c.ValidteError(c.ShouldBind(query), query) find, _ := a.ConfigService.Find(query) items := make([]interface{}, 0) for _, config := range *find { items = append(items, config) } _, files := excels.ExportExcel(items, "配置表") file.DownloadExcel(c, files) }