bill.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package controllers
  2. import (
  3. "fmt"
  4. "hongze/hongze_api/models"
  5. "hongze/hongze_api/utils"
  6. "time"
  7. )
  8. //年度账单
  9. type BillController struct {
  10. BaseAuthController
  11. }
  12. // @Title 年度账单接口
  13. // @Description 年度账单接口
  14. // @Success 200 {object} models.WxLoginResp
  15. // @router /detail [get]
  16. func (this *WechatCommonController) Detail() {
  17. br := new(models.BaseResponse).Init()
  18. defer func() {
  19. this.Data["json"] = br
  20. this.ServeJSON()
  21. }()
  22. user := this.User
  23. if user == nil {
  24. br.Msg = "请登录"
  25. br.ErrMsg = "请登录,用户信息为空"
  26. br.Ret = 408
  27. return
  28. }
  29. uid := user.UserId
  30. var realName, togetherDay, createDate string
  31. resp := new(models.BillDetailResp)
  32. if user.RealName == "" {
  33. realName = user.NickName
  34. } else {
  35. realName = user.RealName
  36. }
  37. if !user.CreatedTime.IsZero() {
  38. sub := time.Now().Sub(user.CreatedTime)
  39. if sub < 0 {
  40. sub = 0
  41. }
  42. expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
  43. togetherDay = expireDay
  44. createDate = user.CreatedTime.Format(utils.FormatDate)
  45. } else {
  46. sub := time.Now().Sub(user.LastUpdatedTime)
  47. if sub < 0 {
  48. sub = 0
  49. }
  50. expireDay := fmt.Sprintf("%v", int(sub.Hours()/24))
  51. togetherDay = expireDay
  52. createDate = user.LastUpdatedTime.Format(utils.FormatDate)
  53. }
  54. uid = 41555
  55. firstReadReportType, firstReadReportTitle, err := models.GetFirstReportInfo(uid)
  56. if err != nil {
  57. br.Msg = "获取数据失败"
  58. br.ErrMsg = "获取数据失败GetFirstReportInfo,Err:" + err.Error()
  59. return
  60. }
  61. listenCount, listenVideoPlaySeconds, err := models.GetListenInfo(uid)
  62. if err != nil {
  63. br.Msg = "获取数据失败"
  64. br.ErrMsg = "获取数据失败GetListenInfo,Err:" + err.Error()
  65. return
  66. }
  67. maxReadReportCount, maxReadReportDate, err := models.GetMaxReadReportInfo(uid)
  68. if err != nil {
  69. br.Msg = "获取数据失败"
  70. br.ErrMsg = "获取数据失败GetListenInfo,Err:" + err.Error()
  71. return
  72. }
  73. /*
  74. LatestReadReportDate string `description:"阅读报告时间最晚的一天"`
  75. LatestReadReportTime string `description:"阅读报告时间最晚的一天,最晚的时间"`
  76. LatestReadReportDateDuration string `description:"阅读报告时间最晚的一天,总共阅读报告的时长"`
  77. MaxOpenReportClassify string `description:"打开次数最多报告的栏目"`
  78. MaxOpenReportCount string `description:"打开次数最多报告的栏目下,用户阅读的报告数"`
  79. TotalReadDuration float64 `description:"总阅读时长"`
  80. TotalReportDayCount int `description:"总阅读晨报数"`
  81. TotalReportWeekCount int `description:"总阅读周报数"`
  82. TotalReportMonthCount int `description:"总阅读月报数"`
  83. TotalReportTwoWeekCount int `description:"总阅读双周报数"`
  84. TotalReportRddpCount int `description:"总阅读点评数"`
  85. LearnDay int `description:"连续学习天数"`
  86. */
  87. resp.RealName = realName
  88. resp.TogetherDay = togetherDay
  89. resp.CreateDate = createDate
  90. resp.FirstReadReportType = firstReadReportType
  91. resp.FirstReadReportTitle = firstReadReportTitle
  92. resp.ListenReportCount = listenCount
  93. resp.ListenReportDuration = utils.FixFloat((listenVideoPlaySeconds / 60.00), 2)
  94. resp.MaxReadReportCount = maxReadReportCount
  95. resp.MaxReadReportDate = maxReadReportDate.Format(utils.FormatDate)
  96. br.Ret = 200
  97. br.Success = true
  98. br.Msg = "获取成功"
  99. br.Data = resp
  100. }