version_update_log.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package controller
  2. import (
  3. "eta/eta_docs/controller/resp"
  4. "eta/eta_docs/models/crm"
  5. "eta/eta_docs/models/request"
  6. "eta/eta_docs/models/response"
  7. "eta/eta_docs/utils"
  8. "github.com/gin-gonic/gin"
  9. "github.com/go-playground/validator/v10"
  10. )
  11. // VersionUpdateLogController 版本更新日志
  12. type VersionUpdateLogController struct{}
  13. // Menu
  14. // @Description 菜单
  15. // @Success 200 {string} string "获取成功"
  16. // @Router /version_log/menu [get]
  17. func (a *VersionUpdateLogController) Menu(c *gin.Context) {
  18. // 获取列表数据
  19. logOb := new(crm.EtaVersionUpdateLog)
  20. list, e := logOb.GetItemsByCondition("", make([]interface{}, 0), "update_date DESC")
  21. if e != nil {
  22. resp.FailMsg("获取失败", "获取ETA更新日志列表失败, Err: "+e.Error(), c)
  23. return
  24. }
  25. result := make([]string, 0)
  26. for _, v := range list {
  27. strDate := v.UpdateDate.Format("2006年01月")
  28. if !utils.InArrayByStr(result, strDate) {
  29. result = append(result, strDate)
  30. }
  31. }
  32. resp.OkData("获取成功", result, c)
  33. }
  34. // List
  35. // @Description 列表
  36. // @Success 200 {string} string "获取成功"
  37. // @Router /version_log/list [get]
  38. func (a *VersionUpdateLogController) List(c *gin.Context) {
  39. var req request.VersionUpdateLogListReq
  40. err := c.Bind(&req)
  41. if err != nil {
  42. errs, ok := err.(validator.ValidationErrors)
  43. if !ok {
  44. resp.FailData("参数解析失败", "Err:"+err.Error(), c)
  45. return
  46. }
  47. resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
  48. return
  49. }
  50. // 获取列表数据
  51. logOb := new(crm.EtaVersionUpdateLog)
  52. list, e := logOb.GetItemsByCondition("", make([]interface{}, 0), "update_date DESC")
  53. if e != nil {
  54. resp.FailMsg("获取失败", "获取ETA更新日志列表失败, Err: "+e.Error(), c)
  55. return
  56. }
  57. items := make([]*response.VersionUpdateLogItem, 0)
  58. logsMap := make(map[string][]*response.VersionUpdateLogDetailItem)
  59. for _, v := range list {
  60. strDate := v.UpdateDate.Format("2006年01月")
  61. if logsMap[strDate] == nil {
  62. logsMap[strDate] = make([]*response.VersionUpdateLogDetailItem, 0)
  63. item := new(response.VersionUpdateLogItem)
  64. item.DateFlag = strDate
  65. items = append(items, item)
  66. }
  67. t := new(response.VersionUpdateLogDetailItem)
  68. t.Version = v.Version
  69. t.UpdateDate = v.UpdateDate.Format(utils.FormatDate)
  70. t.Content = v.Content
  71. logsMap[strDate] = append(logsMap[strDate], t)
  72. }
  73. result := make([]*response.VersionUpdateLogItem, 0)
  74. for _, v := range items {
  75. if req.DateFlag != "" && req.DateFlag != v.DateFlag {
  76. continue
  77. }
  78. v.List = logsMap[v.DateFlag]
  79. result = append(result, v)
  80. }
  81. resp.OkData("获取成功", result, c)
  82. }