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