company_user.go 5.4 KB

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