company_user.go 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. package controllers
  2. import (
  3. "hongze/hongze_open_api/logic"
  4. "hongze/hongze_open_api/models/response/company_user"
  5. "hongze/hongze_open_api/models/tables"
  6. "hongze/hongze_open_api/models/tables/wx_user"
  7. "hongze/hongze_open_api/utils"
  8. "strconv"
  9. "time"
  10. )
  11. // CompanyUser
  12. // 客户联系人模块
  13. type CompanyUser struct {
  14. BaseAuth
  15. }
  16. // GetUserReportList
  17. // @Title 获取用户阅读数据报表
  18. // @Description 获取用户阅读数据报表
  19. // @Param start_date query string false "开始日期,格式:2021-11-03"
  20. // @Param end_date query string false "结束日期,格式:2021-11-04"
  21. // @Param mobile query string false "用户手机号"
  22. // @Param email query string false "用户邮箱"
  23. // @Success 200 {object} company_user.UserReportListResp
  24. // @router /user_report_list [get]
  25. func (c *CompanyUser) GetUserReportList() {
  26. mobile := c.GetString("mobile", "")
  27. email := c.GetString("email", "")
  28. startDate := c.GetString("start_date", "")
  29. endDate := c.GetString("end_date", "")
  30. //}
  31. // return
  32. // c.FailWithMessage("end_date必传")
  33. //if endDate == ""{
  34. //}
  35. // return
  36. // c.FailWithMessage("start_date必传")
  37. //if startDate == ""{
  38. startTime := ``
  39. endTime := ``
  40. if startDate != "" && endDate != "" {
  41. startDateTime, err := time.Parse(utils.FormatDate, startDate)
  42. if err != nil {
  43. c.FailWithMessage("start_date格式异常")
  44. return
  45. }
  46. endDateTime, err := time.Parse(utils.FormatDate, endDate)
  47. if err != nil {
  48. c.FailWithMessage("end_date格式异常")
  49. return
  50. }
  51. startTime = startDateTime.Format(utils.FormatDate) + " 00:00:00"
  52. endTime = endDateTime.Format(utils.FormatDate) + " 23:59:59"
  53. }
  54. pageSize := c.PageSize
  55. startSize := c.StartSize
  56. currentIndex := c.StartPage
  57. total, list, err := tables.GetViewReportList(mobile, email, startTime, endTime, startSize, pageSize)
  58. if err != nil {
  59. c.FailWithMessage("获取失败")
  60. return
  61. }
  62. for k, v := range list {
  63. if v.ReportType == "day" {
  64. list[k].MatchTypeName = "晨报"
  65. } else if v.ReportType == "week" {
  66. list[k].MatchTypeName = "周报"
  67. } else if v.ReportType == "two_week" {
  68. list[k].MatchTypeName = "双周报"
  69. } else if v.ReportType == "month" {
  70. list[k].MatchTypeName = "月报"
  71. } else if v.ReportType == "rddp" {
  72. //list[k].MatchTypeName = "日评"
  73. createdTime := utils.StrTimeToTime(v.CreatedTime)
  74. monthStr := createdTime.Format("01")
  75. dayStr := strconv.Itoa(createdTime.Day())
  76. if len(dayStr) == 1 {
  77. dayStr = "0" + dayStr
  78. }
  79. list[k].ResearchReportName += "(" + monthStr + dayStr + ")"
  80. }
  81. if v.StopTime != "--" {
  82. list[k].StopTime += "s"
  83. }
  84. //v.CompanyName = wxUserInfo.CompanyName
  85. //v.UserName = wxUserInfo.RealName
  86. //v.Mobile = wxUserInfo.Mobile
  87. }
  88. page := utils.GetPaging(currentIndex, pageSize, total)
  89. resp := company_user.UserReportListResp{
  90. List: list,
  91. Paging: page,
  92. }
  93. c.OkDetailed(resp, "获取成功")
  94. }
  95. // GetUserReportListV2
  96. // @Title 获取用户阅读数据报表
  97. // @Description 合同详情接口
  98. // @Param mobile query string false "用户手机号"
  99. // @Param email query string false "用户邮箱"
  100. // @Success 200 {object} company_user.UserReportListResp
  101. func (c *CompanyUser) GetUserReportListV2() {
  102. mobile := c.GetString("mobile", "")
  103. startDate := c.GetString("start_date", "")
  104. endDate := c.GetString("end_date", "")
  105. if startDate == "" {
  106. c.FailWithMessage("start_date必传")
  107. return
  108. }
  109. if endDate == "" {
  110. c.FailWithMessage("end_date必传")
  111. return
  112. }
  113. startDateTime, err := time.Parse(utils.FormatDate, startDate)
  114. if err != nil {
  115. c.FailWithMessage("start_date格式异常")
  116. return
  117. }
  118. endDateTime, err := time.Parse(utils.FormatDate, endDate)
  119. if err != nil {
  120. c.FailWithMessage("end_date格式异常")
  121. return
  122. }
  123. var wxUserInfo *wx_user.WxUserItem
  124. if mobile != "" {
  125. item, err := wx_user.GetWxUserByMobile(mobile)
  126. if err != nil {
  127. c.FailWithMessage("找不到该用户")
  128. return
  129. }
  130. wxUserInfo = item
  131. }
  132. email := c.GetString("email", "")
  133. if wxUserInfo == nil && email != "" {
  134. item, err := wx_user.GetWxUserByEmail(email)
  135. if err != nil {
  136. c.FailWithMessage("找不到该用户")
  137. return
  138. }
  139. wxUserInfo = item
  140. }
  141. if wxUserInfo == nil {
  142. c.FailWithMessage("找不该用户")
  143. }
  144. pageSize := c.PageSize
  145. startSize := c.StartSize
  146. currentIndex := c.StartPage
  147. total, list, err := tables.GetViewReportList(wxUserInfo.Mobile, wxUserInfo.Email, startDateTime.Format(utils.FormatDate)+" 00:00:00", endDateTime.Format(utils.FormatDate)+" 23:59:59", startSize, pageSize)
  148. if err != nil {
  149. c.FailWithMessage("获取失败")
  150. return
  151. }
  152. for k, v := range list {
  153. if v.ReportType == "day" {
  154. list[k].MatchTypeName = "晨报"
  155. } else if v.ReportType == "week" {
  156. list[k].MatchTypeName = "周报"
  157. } else if v.ReportType == "two_week" {
  158. list[k].MatchTypeName = "双周报"
  159. } else if v.ReportType == "month" {
  160. list[k].MatchTypeName = "月报"
  161. } else if v.ReportType == "rddp" {
  162. //list[k].MatchTypeName = "日评"
  163. createdTime := utils.StrTimeToTime(v.CreatedTime)
  164. monthStr := createdTime.Format("01")
  165. dayStr := strconv.Itoa(createdTime.Day())
  166. if len(dayStr) == 1 {
  167. dayStr = "0" + dayStr
  168. }
  169. list[k].ResearchReportName += "(" + monthStr + dayStr + ")"
  170. }
  171. if v.StopTime != "--" {
  172. list[k].StopTime += "s"
  173. }
  174. v.CompanyName = wxUserInfo.CompanyName
  175. v.Mobile = wxUserInfo.Mobile
  176. }
  177. page := utils.GetPaging(currentIndex, pageSize, total)
  178. resp := company_user.UserReportListResp{
  179. List: list,
  180. Paging: page,
  181. }
  182. c.OkDetailed(resp, "获取成功")
  183. }
  184. // GetUserReportViewTotalList
  185. // @Title 获取用户阅读数据报表
  186. // @Description 获取用户阅读数据报表
  187. // @Success 200 {object} []logic.UserView
  188. // @router /view_total_list [get]
  189. func (c *CompanyUser) GetUserReportViewTotalList() {
  190. list, err := logic.GetUserViewTotal()
  191. if err != nil {
  192. c.FailWithMessage("获取失败")
  193. return
  194. }
  195. resp := list
  196. c.OkDetailed(resp, "获取成功")
  197. }