From dc765761b9bb6866635f06f754d28895507e711f Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期四, 06 六月 2024 16:26:40 +0800 Subject: [PATCH] 完善打印 --- controller/subscribeCtl.go | 160 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 142 insertions(+), 18 deletions(-) diff --git a/controller/subscribeCtl.go b/controller/subscribeCtl.go index 949c113..cf4fe73 100644 --- a/controller/subscribeCtl.go +++ b/controller/subscribeCtl.go @@ -1,36 +1,43 @@ package controller import ( - "fmt" - "gat1400Exchange/repository" - "gat1400Exchange/vo" "net/http" "strings" "time" + + "gat1400Exchange/config" + "gat1400Exchange/pkg/logger" + "gat1400Exchange/repository" + "gat1400Exchange/vo" "github.com/gin-gonic/gin" ) type SubscribeController struct { Repository repository.SubscribeRepository + Capture repository.CaptureRepository + Ape repository.ApeRepository } // 鏋勯�犲嚱鏁� func NewSubscribeController() SubscribeController { svr := repository.NewSubscribeRepository() - controller := SubscribeController{svr} + svr1 := repository.NewCaptureRepository() + svr2 := repository.NewApeRepository() + controller := SubscribeController{svr, svr1, svr2} return controller } -func (s SubscribeController) SubscribesList(c *gin.Context) { - subList, _ := s.Repository.List() +func (s SubscribeController) VIIDSubscribesList(c *gin.Context) { + fromId := c.GetHeader("User-Identify") + subList, _ := s.Repository.ListByFromId(fromId) c.Header("Content-Type", "application/VIID+json;charset=UTF-8") c.JSON(http.StatusOK, gin.H{"SubscribeList": subList}) } -func (s SubscribeController) Subscribes(c *gin.Context) { +func (s SubscribeController) VIIDSubscribes(c *gin.Context) { var req vo.RequestSubscribe if err := c.BindJSON(&req); err != nil { c.AbortWithStatus(http.StatusBadRequest) @@ -41,7 +48,7 @@ var rsp vo.ResponseStatusList for idx, sub := range req.SubscribeListObject.SubscribeObject { - if err := s.Repository.CreateSubscribe(fromId, &req.SubscribeListObject.SubscribeObject[idx]); err == nil { + if err := s.Repository.SaveReceiveSubscribe(fromId, &req.SubscribeListObject.SubscribeObject[idx]); err == nil { rsp.ResponseStatusObject = append(rsp.ResponseStatusObject, vo.ResponseStatus{ RequestURL: c.FullPath(), StatusCode: vo.StatusSuccess, @@ -56,7 +63,7 @@ c.JSON(http.StatusOK, gin.H{"ResponseStatusListObject": rsp}) } -func (s SubscribeController) UpdateSubscribes(c *gin.Context) { +func (s SubscribeController) VIIDUpdateSubscribes(c *gin.Context) { var req vo.RequestSubscribe if err := c.BindJSON(&req); err != nil { c.AbortWithStatus(http.StatusBadRequest) @@ -65,7 +72,7 @@ var rsp vo.ResponseStatusList for idx, sub := range req.SubscribeListObject.SubscribeObject { - if err := s.Repository.UpdateSubscribe(&req.SubscribeListObject.SubscribeObject[idx]); err == nil { + if err := s.Repository.UpdateReceiveSubscribe(&req.SubscribeListObject.SubscribeObject[idx]); err == nil { rsp.ResponseStatusObject = append(rsp.ResponseStatusObject, vo.ResponseStatus{ RequestURL: c.FullPath(), StatusCode: vo.StatusSuccess, @@ -73,6 +80,8 @@ Id: sub.SubscribeID, LocalTime: time.Now().Format("20060102150405"), }) + } else { + logger.Error("Update receive subscribe failure, %s", err.Error()) } } @@ -80,12 +89,12 @@ c.JSON(http.StatusOK, gin.H{"ResponseStatusListObject": rsp}) } -func (s SubscribeController) DeleteSubscribe(c *gin.Context) { +func (s SubscribeController) VIIDDeleteSubscribe(c *gin.Context) { idList := c.Query("IDList") var rsp vo.ResponseStatusList for _, id := range strings.Split(idList, ",") { - if err := s.Repository.DeleteSubscribe(id); err == nil { + if err := s.Repository.DeleteReceiveSubscribe(id); err == nil { rsp.ResponseStatusObject = append(rsp.ResponseStatusObject, vo.ResponseStatus{ RequestURL: c.FullPath(), StatusCode: vo.StatusSuccess, @@ -100,12 +109,127 @@ c.JSON(http.StatusOK, gin.H{"ResponseStatusListObject": rsp}) } -func (s SubscribeController) Notifications(c *gin.Context) { - data, err := c.GetRawData() - if err != nil { - +func (s SubscribeController) VIIDNotifications(c *gin.Context) { + var rsp vo.ResponseStatusList + var req vo.RequestSubscribeNotificationBind + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"ResponseStatusListObject": rsp}) + return } - fmt.Println("Notifications:", string(data)) - c.JSON(http.StatusOK, gin.H{"ResponseStatusListObject": ""}) + logger.Debug("Receive notifications: %+v", req) + + for _, msg := range req.SubscribeNotificationListObject.SubscribeNotificationObject { + rsp.ResponseStatusObject = append(rsp.ResponseStatusObject, vo.ResponseStatus{ + RequestURL: c.FullPath(), + StatusCode: vo.StatusSuccess, + StatusString: vo.StatusString[vo.StatusSuccess], + Id: msg.SubscribeID, + LocalTime: time.Now().Format("20060102150405"), + }) + + // 杞彂 + if config.ForwardConf.SyncServer != "" && len(msg.FaceObjectList.FaceObject) > 0 { + go s.Capture.FaceForward(msg.FaceObjectList.FaceObject) + } + + if config.ForwardConf.SyncServer != "" && len(msg.PersonObjectList.PersonObject) > 0 { + go s.Capture.PersonForward(msg.PersonObjectList.PersonObject) + } + + if len(msg.DeviceList.APEObject) > 0 { + fromId := c.GetHeader("User-Identify") + go s.Ape.HandleNotification(fromId, msg.DeviceList.APEObject) + } + } + + c.Header("Content-Type", "application/VIID+json;charset=UTF-8") + c.JSON(http.StatusOK, gin.H{"ResponseStatusListObject": rsp}) +} + +// CreateSubscribes 娣诲姞涓嬬骇骞冲彴鐨勮闃呮秷鎭� +func (s SubscribeController) CreateSubscribes(c *gin.Context) { + var req vo.Subscribe + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"msg": err.Error()}) + return + } + + if c.Param("id") == "" { + c.JSON(http.StatusBadRequest, gin.H{"msg": "涓嬬骇id涓虹┖"}) + } + + if err := s.Repository.CreateSubscribe(c.Param("id"), &req); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"msg": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{"msg": "ok"}) +} + +// UpdateSubscribes 鏇存柊涓嬬骇骞冲彴鐨勮闃呮秷鎭� +func (s SubscribeController) UpdateSubscribes(c *gin.Context) { + var req vo.Subscribe + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"msg": err.Error()}) + return + } + + if c.Param("id") == "" { + c.JSON(http.StatusBadRequest, gin.H{"msg": "涓嬬骇id涓虹┖"}) + } + + if err := s.Repository.UpdateSubscribe(c.Param("id"), &req); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"msg": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{"msg": "ok"}) +} + +func (s SubscribeController) CancelSubscribes(c *gin.Context) { + var req vo.Subscribe + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"msg": err.Error()}) + return + } + + if c.Param("id") == "" { + c.JSON(http.StatusBadRequest, gin.H{"msg": "涓嬬骇id涓虹┖"}) + } + + if err := s.Repository.CancelSubscribe(c.Param("id"), &req); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"msg": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{"msg": "ok"}) +} + +func (s SubscribeController) List(c *gin.Context) { + if c.Param("id") == "" { + c.JSON(http.StatusBadRequest, gin.H{"msg": "涓嬬骇id涓虹┖"}) + } + + list, err := s.Repository.ListByFromId(c.Param("id")) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"msg": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{"msg": "ok", "data": list}) +} + +func (s SubscribeController) RemoteList(c *gin.Context) { + if c.Param("id") == "" { + c.JSON(http.StatusBadRequest, gin.H{"msg": "涓嬬骇id涓虹┖"}) + } + + data, err := s.Repository.RemoteList(c.Param("id")) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"msg": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{"msg": "ok", "data": data}) } -- Gitblit v1.8.0