| | |
| | | func ComputeSpaceLeftRealTime() { |
| | | ticker := time.NewTicker(3 * time.Second) |
| | | prePushLeft := 0 |
| | | sv := service.NewCarService() |
| | | initCacheM := false |
| | | for { |
| | | select { |
| | | case <-ticker.C: |
| | | m := time.Now().Minute() |
| | | i := m % 10 |
| | | left := 80 |
| | | if i == 0 { |
| | | left = 10 |
| | | hikSta, flag := sv.Statistic() |
| | | if flag { |
| | | left := hikSta.Left |
| | | if !initCacheM { |
| | | models.SetSpaceNo(hikSta.TotalPermPlace) |
| | | initCacheM = true |
| | | } |
| | | if left <=5 && left != prePushLeft { |
| | | go func() { |
| | | message := fmt.Sprintf("%s 剩余车位:%d个", time.Now().Format("2006-01-02 15:04:05"), left) |
| | | b, e := service.Push("育英智慧停车", message) |
| | | |
| | | prePushLeft = left |
| | | |
| | | fmt.Println("b:", b,"e:",e, "message:", message) |
| | | }() |
| | | } |
| | | updateSpaceLeft(left) |
| | | } |
| | | if m == 40 { |
| | | left = 5 |
| | | } |
| | | if left <=10 && left != prePushLeft { |
| | | go func() { |
| | | b, e := service.Push("育英智慧停车", fmt.Sprintf("当前剩余车位:%d个", left)) |
| | | fmt.Println("b:", b,"e:",e) |
| | | }() |
| | | } |
| | | updateSpaceLeft(left) |
| | | |
| | | default: |
| | | time.Sleep(500 * time.Millisecond) |
| | | } |
| | |
| | | // @router /statistic [get] |
| | | func (c *CarController) Statistic() { |
| | | //sv := service.NewCarService() |
| | | //sta := sv.Statistic() |
| | | //hikStc := sv.Statistic() |
| | | //left := hikStc.Left |
| | | left := getSpaceLeft() |
| | | sta := models.CarStatistic{ |
| | | Left: left, |
| | |
| | | // @Failure 403 {string} json "" |
| | | // @router /spaceNo [get] |
| | | func (c *CarController) SpaceNo() { |
| | | userId := c.GetString("userId") |
| | | sv := service.NewCarService() |
| | | spaceNos := sv.FindSpaceNo() |
| | | spaceNos := sv.FindSpaceNo(userId) |
| | | sort.Sort(spaceNos) |
| | | resp := code.Code{ |
| | | Success: true, |
| | |
| | | c.ServeJSON() |
| | | } |
| | | |
| | | |
| | | func (c *CarController) BindCarSpace() { |
| | | |
| | | c.ServeJSON() |
| | | } |
| | | |
| | | // @router /crossRecord [get] |
| | | func (c *CarController) CrossRecord() { |
| | | sv := service.NewCarService() |
| | | |
| | | if sv.BindCarSpace() { |
| | | |
| | | records := sv.CrossRecords() |
| | | resp := code.Code{ |
| | | Success: true, |
| | | Status: http.StatusOK, |
| | | Data: records, |
| | | } |
| | | c.Data["json"] = resp |
| | | c.ServeJSON() |
| | | } |