conference.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package handler
  2. import (
  3. "city_chips/internal/model"
  4. "city_chips/internal/service"
  5. "city_chips/pkg/helper/resp"
  6. "encoding/json"
  7. "github.com/gin-gonic/gin"
  8. "github.com/spf13/viper"
  9. "github.com/tidwall/gjson"
  10. "net/http"
  11. "time"
  12. )
  13. type ConferenceHandler struct {
  14. *Handler
  15. conferenceService service.ConferenceService
  16. conf *viper.Viper
  17. }
  18. func NewConferenceHandler(handler *Handler, conferenceService service.ConferenceService, conf *viper.Viper) *ConferenceHandler {
  19. return &ConferenceHandler{
  20. Handler: handler,
  21. conferenceService: conferenceService,
  22. conf: conf,
  23. }
  24. }
  25. // RoomOps 会议室运维概览统计数据
  26. func (h *ConferenceHandler) RoomOps(ctx *gin.Context) {
  27. roomOpsurl := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.roomOps")
  28. request, err := h.conferenceService.SendRequest(http.DefaultClient, "GET", roomOpsurl, nil)
  29. if err != nil {
  30. resp.HandleError(ctx, 1203, "获取会议概要失败", nil)
  31. return
  32. }
  33. if gjson.Get(string(request), "code").Int() == 0 {
  34. s := gjson.Get(string(request), "data").String()
  35. resp.HandleSuccess(ctx, s)
  36. return
  37. }
  38. resp.HandleError(ctx, 1203, "获取会议概要失败", nil)
  39. }
  40. // DataAnalysis 数据大屏
  41. func (h *ConferenceHandler) DataAnalysis(ctx *gin.Context) {
  42. dataAnalysisurl := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.dataAnalysis")
  43. request, err := h.conferenceService.SendRequest(http.DefaultClient, "GET", dataAnalysisurl, nil)
  44. if err != nil {
  45. resp.HandleError(ctx, 1203, "获取数据大屏信息失败", nil)
  46. return
  47. }
  48. if gjson.Get(string(request), "code").Int() == 0 {
  49. s := gjson.Get(string(request), "data").Value()
  50. resp.HandleSuccess(ctx, s)
  51. return
  52. }
  53. resp.HandleError(ctx, 1203, "获取数据大屏信息失败", nil)
  54. }
  55. // GetRoomsByLocationId 获取会议室数据
  56. func (h *ConferenceHandler) GetRoomsByLocationId(ctx *gin.Context) {
  57. getRoomsByLocationId := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.getRoomsByLocationId")
  58. now := time.Now().Format("2006-01-02")
  59. m := make(map[string]any)
  60. m["date"] = now
  61. m["appoint_time"] = ""
  62. m["search"] = ""
  63. m["locationId"] = []int{}
  64. m["capacity"] = []string{}
  65. m["deviceType"] = []string{}
  66. m["roomType"] = []int{}
  67. m["status"] = ""
  68. m["page"] = 1
  69. m["page_size"] = h.conf.GetInt("conference.pageSize")
  70. request, err := h.conferenceService.SendRequest(http.DefaultClient, "POST", getRoomsByLocationId, m)
  71. if err != nil {
  72. resp.HandleError(ctx, 1203, "获取会议室数据失败", err)
  73. return
  74. }
  75. var rooms model.Room
  76. var meetingRoomDetail []model.MeetingRoomDetail
  77. if gjson.Get(string(request), "code").Int() == 0 {
  78. //s := gjson.Get(string(request), "data").Value()
  79. err = json.Unmarshal(request, &rooms)
  80. if err != nil {
  81. h.logger.Error("json序列化失败")
  82. resp.HandleError(ctx, 1203, "json序列化失败", nil)
  83. return
  84. }
  85. for _, v := range rooms.Data.List {
  86. //log.Println("会议室id:", v.Id)
  87. //log.Println("地点id:", v.LocationId)
  88. //log.Println("地点名称:", v.LocationName)
  89. //log.Println("企业id:", v.CompanyId)
  90. //log.Println("状态:", v.Status)
  91. //log.Println("使用:", v.Usage)
  92. //log.Println("会议室名称:", v.Name)
  93. detail := model.MeetingRoomDetail{
  94. Id: v.Id,
  95. LocationId: v.LocationId,
  96. LocationName: v.LocationName,
  97. CompanyId: v.CompanyId,
  98. Status: v.Status,
  99. Usage: v.Usage,
  100. Name: v.Name,
  101. }
  102. meetingRoomDetail = append(meetingRoomDetail, detail)
  103. }
  104. } else {
  105. resp.HandleError(ctx, 1203, "获取会议室数据失败", string(request))
  106. return
  107. }
  108. resp.HandleSuccess(ctx, meetingRoomDetail)
  109. }
  110. // MeetingRoomById 会议室详情
  111. func (h *ConferenceHandler) MeetingRoomById(ctx *gin.Context) {
  112. id := ctx.Query("id")
  113. if len(id) <= 0 {
  114. resp.HandleError(ctx, 1203, "缺少必要参数id", nil)
  115. return
  116. }
  117. dataAnalysisurl := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.meetingRoom") + "/" + id
  118. request, err := h.conferenceService.SendRequest(http.DefaultClient, "GET", dataAnalysisurl, nil)
  119. if err != nil {
  120. resp.HandleError(ctx, 1203, "获取会议室详情失败", err)
  121. return
  122. }
  123. if gjson.Get(string(request), "code").Int() == 0 {
  124. s := gjson.Get(string(request), "data").Value()
  125. resp.HandleSuccess(ctx, s)
  126. return
  127. }
  128. resp.HandleError(ctx, 1203, "获取会议室详情失败", string(request))
  129. }
  130. // Location 地点详情
  131. func (h *ConferenceHandler) Location(ctx *gin.Context) {
  132. id := ctx.Query("id")
  133. if len(id) <= 0 {
  134. resp.HandleError(ctx, 1203, "缺少必要参数id", nil)
  135. return
  136. }
  137. dataAnalysisurl := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.location") + "/" + id
  138. request, err := h.conferenceService.SendRequest(http.DefaultClient, "GET", dataAnalysisurl, nil)
  139. if err != nil {
  140. resp.HandleError(ctx, 1203, "获取地点详情失败", err)
  141. return
  142. }
  143. if gjson.Get(string(request), "code").Int() == 0 {
  144. s := gjson.Get(string(request), "data").Value()
  145. resp.HandleSuccess(ctx, s)
  146. return
  147. }
  148. resp.HandleError(ctx, 1203, "获取地点详情失败", string(request))
  149. }