sys_config_api.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package admin
  2. import (
  3. "github.com/druidcaesa/gotool"
  4. "strconv"
  5. "strings"
  6. "time"
  7. "ulink-admin/frame"
  8. "ulink-admin/modules/system/models/model"
  9. "ulink-admin/modules/system/models/req"
  10. "ulink-admin/modules/system/service"
  11. "ulink-admin/pkg/cache"
  12. "ulink-admin/pkg/excels"
  13. "ulink-admin/pkg/file"
  14. "ulink-admin/pkg/jwt/admin"
  15. "ulink-admin/pkg/page"
  16. )
  17. type ConfigApi struct {
  18. ConfigService *service.ConfigService `inject:""`
  19. }
  20. // GetConfigKey 根据参数键名查询参数值
  21. func (a ConfigApi) GetConfigKey(c *frame.Context) {
  22. param := c.Param("configKey")
  23. if !gotool.StrUtils.HasEmpty(param) {
  24. key := a.ConfigService.GetConfigKey(param)
  25. c.Ok(key.ConfigValue)
  26. } else {
  27. c.Error("参数不合法")
  28. }
  29. }
  30. // List 查询设置列表
  31. func (a ConfigApi) List(c *frame.Context) {
  32. query := &req.ConfigQuery{}
  33. c.ValidteError(c.ShouldBind(query), query)
  34. find, i := a.ConfigService.Find(query)
  35. c.Ok(page.Page{
  36. List: find,
  37. Total: i,
  38. Size: query.PageSize,
  39. })
  40. }
  41. // Add 添加数据
  42. func (a ConfigApi) Add(c *frame.Context) {
  43. config := &model.SysConfig{}
  44. c.ValidteError(c.ShouldBind(config), config)
  45. config.CreateBy = admin.GetUserInfo(c).UserName
  46. a.ConfigService.Add(config)
  47. }
  48. // Get 查询数据
  49. func (a ConfigApi) Get(c *frame.Context) {
  50. param := c.Param("id")
  51. id, _ := strconv.ParseInt(param, 10, 64)
  52. c.Ok(a.ConfigService.GetInfo(id))
  53. }
  54. // Edit 修改数据
  55. func (a ConfigApi) Edit(c *frame.Context) {
  56. config := &model.SysConfig{}
  57. c.ValidteError(c.ShouldBind(config), config)
  58. config.UpdateBy = admin.GetUserInfo(c).UserName
  59. config.UpdateTime = time.Now()
  60. a.ConfigService.Update(config)
  61. }
  62. // Delete 删除数据
  63. func (a ConfigApi) Delete(c *frame.Context) {
  64. ids := strings.Split(c.Param("ids"), ",")
  65. list := make([]int64, 0)
  66. for _, id := range ids {
  67. parseInt, _ := strconv.ParseInt(id, 10, 64)
  68. list = append(list, parseInt)
  69. }
  70. //进行删除
  71. a.ConfigService.Remove(list)
  72. }
  73. // RefreshCache 刷新缓存
  74. func (a ConfigApi) RefreshCache(c *frame.Context) {
  75. all := a.ConfigService.FindAll()
  76. m2 := new(model.SysConfig)
  77. for _, sysConfig := range *all {
  78. cache.RemoveKey(sysConfig.ConfigKey)
  79. cache.SetDictCache(sysConfig.ConfigKey, m2.MarshalDictObj(&sysConfig))
  80. }
  81. }
  82. // Export 导出数据
  83. func (a ConfigApi) Export(c *frame.Context) {
  84. query := &req.ConfigQuery{}
  85. c.ValidteError(c.ShouldBind(query), query)
  86. find, _ := a.ConfigService.Find(query)
  87. items := make([]interface{}, 0)
  88. for _, config := range *find {
  89. items = append(items, config)
  90. }
  91. _, files := excels.ExportExcel(items, "配置表")
  92. file.DownloadExcel(c, files)
  93. }