From 4c2afb8dcff9ed2438fcf71a95188d4e8bc60d07 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期一, 27 五月 2024 02:15:10 +0800
Subject: [PATCH] 添加A2梯控的osd
---
controller/subscribeCtl.go | 154 +++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 136 insertions(+), 18 deletions(-)
diff --git a/controller/subscribeCtl.go b/controller/subscribeCtl.go
index 949c113..3e470e2 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,
@@ -80,12 +87,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 +107,123 @@
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 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