package api import ( requstform "Gwen/http/request/api" "Gwen/http/response" "Gwen/model" "Gwen/service" "github.com/gin-gonic/gin" "net/http" "time" ) type Index struct { } // Index 首页 // @Tags 首页 // @Summary 首页 // @Description 首页 // @Accept json // @Produce json // @Success 200 {object} response.Response // @Failure 500 {object} response.Response // @Router / [get] func (i *Index) Index(c *gin.Context) { response.Success( c, "Hello Gwen", ) } // Heartbeat 心跳 // @Tags 首页 // @Summary 心跳 // @Description 心跳 // @Accept json // @Produce json // @Success 200 {object} nil // @Failure 500 {object} response.Response // @Router /heartbeat [post] func (i *Index) Heartbeat(c *gin.Context) { info := &requstform.PeerInfoInHeartbeat{} err := c.ShouldBindJSON(info) if err != nil { c.JSON(http.StatusOK, gin.H{}) return } if info.Uuid == "" { c.JSON(http.StatusOK, gin.H{}) return } peer := service.AllService.PeerService.FindByUuid(info.Uuid) if peer == nil { c.JSON(http.StatusOK, gin.H{}) return } //如果在一分钟以内则不更新 if time.Now().Unix()-peer.LastOnlineTime > 60 { peer.LastOnlineTime = time.Now().Unix() upp := &model.Peer{RowId: peer.RowId, LastOnlineTime: peer.LastOnlineTime} service.AllService.PeerService.Update(upp) } c.JSON(http.StatusOK, gin.H{}) }