zhangzengfei
2024-05-17 9e8d8b630affc4a4be428c775264ef4b0e5104b3
添加取消订阅接口
4个文件已修改
68 ■■■■■ 已修改文件
controller/subscribeCtl.go 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
repository/subscribeRepo.go 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
routes/webApi.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vo/subscribe.go 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controller/subscribeCtl.go
@@ -1,13 +1,14 @@
package controller
import (
    "net/http"
    "strings"
    "time"
    "gat1400Exchange/config"
    "gat1400Exchange/pkg/logger"
    "gat1400Exchange/repository"
    "gat1400Exchange/vo"
    "net/http"
    "strings"
    "time"
    "github.com/gin-gonic/gin"
)
@@ -172,3 +173,22 @@
    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"})
}
repository/subscribeRepo.go
@@ -53,6 +53,43 @@
    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}
routes/webApi.go
@@ -12,6 +12,7 @@
    {
        router.POST("/:id", subCtl.CreateSubscribes)
        router.PUT("/:id", subCtl.UpdateSubscribes)
        router.PUT("/cancel/:id", subCtl.UpdateSubscribes)
        //router.GET("/:id", subCtl.Faces)
        //router.DELETE("/:id", subCtl.Faces)
    }
vo/subscribe.go
@@ -53,6 +53,10 @@
    } `json:"SubscribeListObject"`
}
type RequestCancelSubscribe struct {
    SubscribeObject Subscribe `json:"SubscribeObject"`
}
type RequestSubscribeNotification struct {
    SubscribeNotificationListObject struct {
        SubscribeNotificationObject []interface{} `json:"SubscribeNotificationObject"`