From dc765761b9bb6866635f06f754d28895507e711f Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期四, 06 六月 2024 16:26:40 +0800
Subject: [PATCH] 完善打印

---
 repository/subscribeRepo.go |  151 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 147 insertions(+), 4 deletions(-)

diff --git a/repository/subscribeRepo.go b/repository/subscribeRepo.go
index f5101b6..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 (a *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,19 +148,40 @@
 		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 (a *SubscribeRepository) DeleteSubscribe(id string) error {
+func (s *SubscribeRepository) UpdateReceiveSubscribe(subscribe *vo.Subscribe) error {
+	var sub = models.Subscribe{}
+	err := sub.FindById(subscribe.SubscribeID)
+	if err != nil {
+		return err
+	}
+
+	sub.Status = subscribe.SubscribeStatus
+	sub.Ext = *subscribe
+
+	service.UpdateNotificationTask(subscribe.SubscribeID, vo.Msg_Type_Update_Subscribe, &sub)
+
+	return sub.Save()
+}
+
+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) ListByFromId(id string) ([]models.Subscribe, error) {
+	var sub models.Subscribe
+
+	return sub.FindByFromId(id)
+}

--
Gitblit v1.8.0