| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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 || peer.RowId == 0 {
- c.JSON(http.StatusOK, gin.H{})
- return
- }
- //如果在40s以内则不更新
- if time.Now().Unix()-peer.LastOnlineTime > 40 {
- upp := &model.Peer{RowId: peer.RowId, LastOnlineTime: time.Now().Unix(), LastOnlineIp: c.ClientIP()}
- service.AllService.PeerService.Update(upp)
- }
- c.JSON(http.StatusOK, gin.H{})
- }
|