From 790c60c55054b3e75043eaed11eaef8584d2001d Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期四, 16 五月 2024 09:57:59 +0800 Subject: [PATCH] 添加级联,订阅功能 --- controller/systemCtl.go | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 52 insertions(+), 6 deletions(-) diff --git a/controller/systemCtl.go b/controller/systemCtl.go index dbf947b..567f401 100644 --- a/controller/systemCtl.go +++ b/controller/systemCtl.go @@ -1,6 +1,7 @@ package controller import ( + "gat1400Exchange/pkg/logger" "gat1400Exchange/service" "net/http" "time" @@ -14,17 +15,20 @@ ) type SystemController struct { - Auth *auth.DigestAuth - Repository repository.SystemRepository + Auth *auth.DigestAuth + ApeRepo repository.ApeRepository } // 鏋勯�犲嚱鏁� func NewSystemController() SystemController { - svr := repository.NewSystemRepository() - controller := SystemController{Repository: svr} + svr := repository.NewApeRepository() + controller := SystemController{ApeRepo: svr} controller.Auth = auth.NewDigestAuthenticator("Basic Realm", func(user, realm string) string { - // 闇�瑕佸湪杩欓噷瀹炵幇妫�鏌ョ敤鎴峰悕鍜屽瘑鐮佹槸鍚︽湁鏁堢殑閫昏緫, 鐩墠浣跨敤鍥哄畾瀵嗙爜 + if user == config.ServeConf.Username { + return config.ServeConf.Password + } + return config.ServeConf.Password }) @@ -42,12 +46,26 @@ return } + var req vo.RequestRegister + if err := c.BindJSON(&req); err != nil { + c.AbortWithStatus(http.StatusBadRequest) + return + } + rspMsg := vo.ResponseStatus{ RequestURL: c.FullPath(), StatusCode: vo.StatusSuccess, StatusString: vo.StatusString[vo.StatusSuccess], - Id: user, + Id: req.RegisterObject.DeviceID, LocalTime: time.Now().Format("20060102150405"), + } + + if user == config.ServeConf.Username { + if err := s.ApeRepo.Create(req.RegisterObject.DeviceID); err != nil { + logger.Warn("Create ape failure,%s", err.Error()) + c.AbortWithStatus(http.StatusInternalServerError) + return + } } c.JSON(http.StatusOK, gin.H{"ResponseStatusObject": rspMsg}) @@ -62,6 +80,7 @@ } service.KeepDeviceAlive(req.KeepaliveObject.DeviceID) + s.ApeRepo.Keepalive(req.KeepaliveObject.DeviceID) rspMsg := vo.ResponseStatus{ RequestURL: c.FullPath(), @@ -104,3 +123,30 @@ c.JSON(http.StatusOK, gin.H{"SystemTimeObject": rspMsg}) } + +// 璁惧鍒楄〃 +func (s SystemController) ApeList(c *gin.Context) { + apeList, err := s.ApeRepo.List() + if err != nil { + logger.Error(err.Error()) + } + + c.JSON(http.StatusOK, gin.H{"ApeList": apeList}) +} + +// 淇敼璁惧 +func (s SystemController) ApeUpdate(c *gin.Context) { + var req vo.Ape + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"msg": err.Error()}) + return + } + + err := s.ApeRepo.Update(&req) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"msg": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{"msg": "ok"}) +} -- Gitblit v1.8.0