123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- package handler
- import (
- "city_chips/internal/model"
- "city_chips/internal/service"
- "city_chips/pkg/helper/resp"
- "encoding/json"
- "github.com/gin-gonic/gin"
- "github.com/spf13/viper"
- "github.com/tidwall/gjson"
- "net/http"
- "time"
- )
- type ConferenceHandler struct {
- *Handler
- conferenceService service.ConferenceService
- conf *viper.Viper
- }
- func NewConferenceHandler(handler *Handler, conferenceService service.ConferenceService, conf *viper.Viper) *ConferenceHandler {
- return &ConferenceHandler{
- Handler: handler,
- conferenceService: conferenceService,
- conf: conf,
- }
- }
- // RoomOps 会议室运维概览统计数据
- func (h *ConferenceHandler) RoomOps(ctx *gin.Context) {
- roomOpsurl := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.roomOps")
- request, err := h.conferenceService.SendRequest(http.DefaultClient, "GET", roomOpsurl, nil)
- if err != nil {
- resp.HandleError(ctx, 1203, "获取会议概要失败", nil)
- return
- }
- if gjson.Get(string(request), "code").Int() == 0 {
- s := gjson.Get(string(request), "data").String()
- resp.HandleSuccess(ctx, s)
- return
- }
- resp.HandleError(ctx, 1203, "获取会议概要失败", nil)
- }
- // DataAnalysis 数据大屏
- func (h *ConferenceHandler) DataAnalysis(ctx *gin.Context) {
- dataAnalysisurl := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.dataAnalysis")
- request, err := h.conferenceService.SendRequest(http.DefaultClient, "GET", dataAnalysisurl, nil)
- if err != nil {
- resp.HandleError(ctx, 1203, "获取数据大屏信息失败", nil)
- return
- }
- if gjson.Get(string(request), "code").Int() == 0 {
- s := gjson.Get(string(request), "data").Value()
- resp.HandleSuccess(ctx, s)
- return
- }
- resp.HandleError(ctx, 1203, "获取数据大屏信息失败", nil)
- }
- // GetRoomsByLocationId 获取会议室数据
- func (h *ConferenceHandler) GetRoomsByLocationId(ctx *gin.Context) {
- getRoomsByLocationId := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.getRoomsByLocationId")
- now := time.Now().Format("2006-01-02")
- m := make(map[string]any)
- m["date"] = now
- m["appoint_time"] = ""
- m["search"] = ""
- m["locationId"] = []int{}
- m["capacity"] = []string{}
- m["deviceType"] = []string{}
- m["roomType"] = []int{}
- m["status"] = ""
- m["page"] = 1
- m["page_size"] = h.conf.GetInt("conference.pageSize")
- request, err := h.conferenceService.SendRequest(http.DefaultClient, "POST", getRoomsByLocationId, m)
- if err != nil {
- resp.HandleError(ctx, 1203, "获取会议室数据失败", err)
- return
- }
- var rooms model.Room
- var meetingRoomDetail []model.MeetingRoomDetail
- if gjson.Get(string(request), "code").Int() == 0 {
- //s := gjson.Get(string(request), "data").Value()
- err = json.Unmarshal(request, &rooms)
- if err != nil {
- h.logger.Error("json序列化失败")
- resp.HandleError(ctx, 1203, "json序列化失败", nil)
- return
- }
- for _, v := range rooms.Data.List {
- //log.Println("会议室id:", v.Id)
- //log.Println("地点id:", v.LocationId)
- //log.Println("地点名称:", v.LocationName)
- //log.Println("企业id:", v.CompanyId)
- //log.Println("状态:", v.Status)
- //log.Println("使用:", v.Usage)
- //log.Println("会议室名称:", v.Name)
- detail := model.MeetingRoomDetail{
- Id: v.Id,
- LocationId: v.LocationId,
- LocationName: v.LocationName,
- CompanyId: v.CompanyId,
- Status: v.Status,
- Usage: v.Usage,
- Name: v.Name,
- }
- meetingRoomDetail = append(meetingRoomDetail, detail)
- }
- } else {
- resp.HandleError(ctx, 1203, "获取会议室数据失败", string(request))
- return
- }
- resp.HandleSuccess(ctx, meetingRoomDetail)
- }
- // MeetingRoomById 会议室详情
- func (h *ConferenceHandler) MeetingRoomById(ctx *gin.Context) {
- id := ctx.Query("id")
- if len(id) <= 0 {
- resp.HandleError(ctx, 1203, "缺少必要参数id", nil)
- return
- }
- dataAnalysisurl := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.meetingRoom") + "/" + id
- request, err := h.conferenceService.SendRequest(http.DefaultClient, "GET", dataAnalysisurl, nil)
- if err != nil {
- resp.HandleError(ctx, 1203, "获取会议室详情失败", err)
- return
- }
- if gjson.Get(string(request), "code").Int() == 0 {
- s := gjson.Get(string(request), "data").Value()
- resp.HandleSuccess(ctx, s)
- return
- }
- resp.HandleError(ctx, 1203, "获取会议室详情失败", string(request))
- }
- // Location 地点详情
- func (h *ConferenceHandler) Location(ctx *gin.Context) {
- id := ctx.Query("id")
- if len(id) <= 0 {
- resp.HandleError(ctx, 1203, "缺少必要参数id", nil)
- return
- }
- dataAnalysisurl := h.conf.GetString("conference.baseurl") + h.conf.GetString("conference.location") + "/" + id
- request, err := h.conferenceService.SendRequest(http.DefaultClient, "GET", dataAnalysisurl, nil)
- if err != nil {
- resp.HandleError(ctx, 1203, "获取地点详情失败", err)
- return
- }
- if gjson.Get(string(request), "code").Int() == 0 {
- s := gjson.Get(string(request), "data").Value()
- resp.HandleSuccess(ctx, s)
- return
- }
- resp.HandleError(ctx, 1203, "获取地点详情失败", string(request))
- }
|