From 7a19301f6972e0b81490e57200a634e4e3731a4c Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期四, 17 十月 2024 01:42:23 +0800
Subject: [PATCH] 完善rfid读取楼层
---
repository/subscribeRepo.go | 138 +++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 130 insertions(+), 8 deletions(-)
diff --git a/repository/subscribeRepo.go b/repository/subscribeRepo.go
index 579129e..5f3d256 100644
--- a/repository/subscribeRepo.go
+++ b/repository/subscribeRepo.go
@@ -1,9 +1,15 @@
package repository
import (
+ "encoding/json"
+ "errors"
+ "fmt"
+ "gat1400Exchange/client"
"gat1400Exchange/models"
+ "gat1400Exchange/pkg/snowflake"
"gat1400Exchange/service"
"gat1400Exchange/vo"
+ "time"
)
type SubscribeRepository struct {
@@ -13,7 +19,123 @@
return SubscribeRepository{}
}
-func (s *SubscribeRepository) CreateSubscribe(fromId string, subscribe *vo.Subscribe) error {
+func (s *SubscribeRepository) CreateSubscribe(sid string, req *vo.Subscribe) error {
+ triggerTime := time.Now().Format("20060102150405")
+ req.SubscribeID = triggerTime + snowflake.GenerateIdStr()
+
+ var subscribeMsg vo.RequestSubscribe
+ subscribeMsg.SubscribeListObject.SubscribeObject = []vo.Subscribe{*req}
+
+ // 鏌ユ壘涓嬬骇
+ var platform models.SubPlatform
+ err := platform.FindById(sid)
+ if err != nil {
+ return err
+ }
+
+ uri := fmt.Sprintf("http://%s:%d/VIID/Subscribes", platform.RemoteIP, platform.RemotePort)
+ body, _ := json.Marshal(subscribeMsg)
+ if client.Subscribe(uri, body) != vo.StatusSuccess {
+ return errors.New("鍙戦�佽闃呮秷鎭け璐�")
+ }
+
+ var sub = models.Subscribe{
+ Id: req.SubscribeID,
+ Status: req.SubscribeStatus,
+ FromId: sid,
+ Ext: *req,
+ }
+
+ err = sub.Save()
+ if err != nil {
+ return err
+ }
+
+ return err
+}
+
+func (s *SubscribeRepository) CancelSubscribe(sid string, req *vo.Subscribe) error {
+ var subscribeMsg vo.RequestCancelSubscribe
+ subscribeMsg.SubscribeObject = *req
+
+ if req.SubscribeID == "" {
+ return errors.New("璁㈤槄娑堟伅涓婚涓虹┖")
+ }
+
+ // 鏌ユ壘涓嬬骇
+ var platform models.SubPlatform
+ err := platform.FindById(sid)
+ if err != nil {
+ return err
+ }
+
+ uri := fmt.Sprintf("http://%s:%d/VIID/Subscribes/%s", platform.RemoteIP, platform.RemotePort, req.SubscribeID)
+ body, _ := json.Marshal(subscribeMsg)
+ if client.UpdateSubscribe(uri, body) != vo.StatusSuccess {
+ return errors.New("鍙戦�佽闃呮秷鎭け璐�")
+ }
+
+ var sub = models.Subscribe{
+ Id: req.SubscribeID,
+ Status: req.SubscribeStatus,
+ FromId: sid,
+ Ext: *req,
+ }
+
+ err = sub.Save()
+ if err != nil {
+ return err
+ }
+
+ return err
+}
+
+func (s *SubscribeRepository) UpdateSubscribe(sid string, req *vo.Subscribe) error {
+ var subscribeMsg vo.RequestSubscribe
+ subscribeMsg.SubscribeListObject.SubscribeObject = []vo.Subscribe{*req}
+
+ // 鏌ユ壘涓嬬骇
+ var platform models.SubPlatform
+ err := platform.FindById(sid)
+ if err != nil {
+ return err
+ }
+
+ uri := fmt.Sprintf("http://%s:%d/VIID/Subscribes", platform.RemoteIP, platform.RemotePort)
+ body, _ := json.Marshal(subscribeMsg)
+ if client.UpdateSubscribe(uri, body) != vo.StatusSuccess {
+ return errors.New("鍙戦�佽闃呮秷鎭け璐�")
+ }
+
+ var sub = models.Subscribe{
+ Id: req.SubscribeID,
+ Status: req.SubscribeStatus,
+ FromId: sid,
+ Ext: *req,
+ }
+
+ err = sub.Save()
+ if err != nil {
+ return err
+ }
+
+ return err
+}
+
+func (s *SubscribeRepository) RemoteList(sid string) ([]byte, error) {
+ // 鏌ユ壘涓嬬骇
+ var platform models.SubPlatform
+ err := platform.FindById(sid)
+ if err != nil {
+ return nil, err
+ }
+
+ uri := fmt.Sprintf("http://%s:%d/VIID/Subscribes", platform.RemoteIP, platform.RemotePort)
+
+ return client.GetSubscribes(uri)
+}
+
+func (s *SubscribeRepository) SaveReceiveSubscribe(fromId string, subscribe *vo.Subscribe) error {
var sub = models.Subscribe{
Id: subscribe.SubscribeID,
Status: subscribe.SubscribeStatus,
@@ -26,12 +148,12 @@
return err
}
- service.UpdateTaskProcs(sub.Id, vo.Msg_Type_Create_Subscribe, &sub)
+ service.UpdateNotificationTask(sub.Id, vo.Msg_Type_Create_Subscribe, &sub)
return err
}
-func (s *SubscribeRepository) UpdateSubscribe(subscribe *vo.Subscribe) error {
+func (s *SubscribeRepository) UpdateReceiveSubscribe(subscribe *vo.Subscribe) error {
var sub = models.Subscribe{}
err := sub.FindById(subscribe.SubscribeID)
if err != nil {
@@ -41,25 +163,25 @@
sub.Status = subscribe.SubscribeStatus
sub.Ext = *subscribe
- service.UpdateTaskProcs(subscribe.SubscribeID, vo.Msg_Type_Update_Subscribe, nil)
+ service.UpdateNotificationTask(subscribe.SubscribeID, vo.Msg_Type_Update_Subscribe, &sub)
return sub.Save()
}
-func (s *SubscribeRepository) DeleteSubscribe(id string) error {
+func (s *SubscribeRepository) DeleteReceiveSubscribe(id string) error {
var sub = models.Subscribe{}
err := sub.DeleteById(id)
if err != nil {
return err
}
- service.UpdateTaskProcs(id, vo.Msg_Type_Delete_Subscribe, nil)
+ service.UpdateNotificationTask(id, vo.Msg_Type_Delete_Subscribe, nil)
return err
}
-func (s *SubscribeRepository) List() ([]models.Subscribe, error) {
+func (s *SubscribeRepository) ListByFromId(id string) ([]models.Subscribe, error) {
var sub models.Subscribe
- return sub.FindAll()
+ return sub.FindByFromId(id)
}
--
Gitblit v1.8.0