From 2b77ad0e1f407903d85c3b7bdaae0022c4ec9bc3 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 08 九月 2020 14:54:00 +0800
Subject: [PATCH] fix push bug
---
controllers/car.go | 208 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 195 insertions(+), 13 deletions(-)
diff --git a/controllers/car.go b/controllers/car.go
index 4d4141b..9b269d3 100644
--- a/controllers/car.go
+++ b/controllers/car.go
@@ -6,8 +6,10 @@
"car-service/service"
"fmt"
"github.com/astaxie/beego"
+ "github.com/satori/go.uuid"
"net/http"
"sort"
+ "strings"
"sync"
"time"
)
@@ -23,7 +25,7 @@
//3.鏅氫笂10鐐瑰埌10鐐瑰崐锛屾瘡闂撮殧10鍒嗛挓锛岀粰鍋滆溅鍦哄唴鐨勮溅杈嗘帹閫佹秷鎭細璇峰敖蹇┒鍑哄仠杞﹀満
func ComputeSpaceLeftRealTime() {
ticker := time.NewTicker(3 * time.Second)
- prePushLeft := 0
+ prePushLeft, _ := beego.AppConfig.Int("initPushLeft") //鍒濆鍓╀綑鏁伴噺锛屼笂绾垮悗涓嶈兘姣忔鍚姩閮芥帹閫佹秷鎭�
sv := service.NewCarService()
initCacheM := false
lowerLimit,_ := beego.AppConfig.Int("pushLowerLimit") //[0,5]
@@ -41,9 +43,22 @@
if left <=lowerLimit && left != prePushLeft {
go func() {
- message := fmt.Sprintf("%s 鍓╀綑杞︿綅锛�%d涓�", time.Now().Format("2006-01-02 15:04:05"), left)
- b, e := service.PushByAlias("鑲茶嫳鏅烘収鍋滆溅", message)
-
+ t := time.Now().Format("2006-01-02 15:04:05")
+ message := fmt.Sprintf("%s 鍓╀綑杞︿綅锛�%d涓�", t, left)
+ b, e, aliasArr := service.PushByAlias("鍓╀綑杞︿綅鎻愰啋", message, false)
+ //璁板綍鎺ㄩ�佹棩蹇�
+ logE := models.Log{
+ Id: uuid.NewV4().String(),
+ CreateTime: t,
+ Result: b,
+ Phones: strings.Join(aliasArr, ","),
+ }
+ if e != nil {
+ logE.Content = e.Error()
+ } else {
+ logE.Content = message
+ }
+ logE.Insert()
prePushLeft = left
fmt.Println("b:", b,"e:",e, "message:", message)
@@ -53,25 +68,25 @@
}
//鍒ゆ柇褰撳墠鏄惁鍦�22:00-22:30涔嬮棿
now := time.Now()
- if now.Hour() == 21 && now.Minute()>=0 || now.Minute() <=29{
+ if now.Hour() == 22 && now.Minute()>=0 && now.Minute() <=30{
if now.Minute() == 0 {
if nightPushTimes ==0 {
- go nightPush()
+ go nightPush(nightPushTimes)
nightPushTimes++
}
} else if now.Minute() == 10 {
if nightPushTimes == 1 {
- go nightPush()
+ go nightPush(nightPushTimes)
nightPushTimes++
}
} else if now.Minute() == 20 {
if nightPushTimes == 2{
- go nightPush()
+ go nightPush(nightPushTimes)
nightPushTimes++
}
- } else if now.Minute() == 29 {
+ } else if now.Minute() == 30 {
if nightPushTimes == 3{
- go nightPush()
+ go nightPush(nightPushTimes)
nightPushTimes++
}
}
@@ -85,12 +100,46 @@
}
}
-func nightPush(){
+func nightPush(curTimes int){
message := fmt.Sprintf("%s 璇峰敖蹇┒鍑哄仠杞﹀満", time.Now().Format("2006-01-02 15:04:05"))
- b, e := service.NightPush("鑲茶嫳鏅烘収鍋滆溅", message)
-
+ b, e, aliasArr,carOwnNames := service.NightPush("娓╅Θ鎻愮ず", message)
+ //璁板綍鎺ㄩ�佹棩蹇�
+ logE := models.Log{
+ Id: uuid.NewV4().String(),
+ CreateTime: time.Now().Format("2006-01-02 15:04:05"),
+ Result: b,
+ Phones: strings.Join(aliasArr, ","),
+ }
+ if e != nil {
+ logE.Content = e.Error()
+ } else {
+ logE.Content = message
+ }
+ logE.Insert()
fmt.Println("b:", b,"e:",e, "message:", message)
+
+ if curTimes == 3 { //鍙粰绠$悊鍛樻帹閫佷竴娆¤繖涓秷鎭�
+ //灏嗗叿浣撶殑杞︿富淇℃伅鎺ㄩ�佺粰绠$悊鍛�
+ if carOwnNames != nil && len(carOwnNames) >0 {
+ //鑾峰彇杞︿富濮撳悕
+ managerMsg := strings.Join(carOwnNames, " ")
+ mb,me, managerArr := service.Push2Manager(fmt.Sprintf("%s 鏈┒绂昏溅杈�", time.Now().Format("2006-01-02 15:04:05")), managerMsg)
+ mLogE := models.Log{
+ Id: uuid.NewV4().String(),
+ CreateTime: time.Now().Format("2006-01-02 15:04:05"),
+ Result: mb,
+ Phones: strings.Join(managerArr, ","),
+ }
+ if me != nil {
+ mLogE.Content = me.Error()
+ } else {
+ mLogE.Content = managerMsg
+ }
+ mLogE.Insert()
+ fmt.Println("mb:", mb, "me:", me, "message:", managerMsg)
+ }
+ }
}
@@ -160,6 +209,139 @@
c.ServeJSON()
}
+// @router /testPush [get]
+func (c *CarController) TestPush() {
+ left := getSpaceLeft()
+ message := fmt.Sprintf("%s 鍓╀綑杞︿綅锛�%d涓�", time.Now().Format("2006-01-02 15:04:05"), left)
+ b, e, aliasArr := service.PushByAlias("鍓╀綑杞︿綅鎻愰啋", message, true)
+ //璁板綍鎺ㄩ�佹棩蹇�
+ logE := models.Log{
+ Id: uuid.NewV4().String(),
+ CreateTime: time.Now().Format("2006-01-02 15:04:05"),
+ Result: b,
+ Phones: strings.Join(aliasArr, ","),
+ }
+ if e != nil {
+ logE.Content = e.Error()
+ } else {
+ logE.Content = message
+ }
+ logE.Insert()
+
+ fmt.Println("b:", b,"e:",e, "message:", message)
+ resp := code.Code{}
+ if b {
+ resp.Success = true
+ resp.Status = http.StatusOK
+ resp.Data = "鎺ㄩ�佹垚鍔�"
+ } else {
+ resp.Success = false
+ resp.Status = http.StatusInternalServerError
+ resp.Data = e.Error()
+ }
+ c.Data["json"] = resp
+ c.ServeJSON()
+}
+
+// @router /testNightPush [get]
+func (c *CarController) TestNightPush() {
+ carOwnNames := service.GetLeftCarOwners()
+
+ //灏嗗叿浣撶殑杞︿富淇℃伅鎺ㄩ�佺粰绠$悊鍛�
+ if carOwnNames != nil && len(carOwnNames) >0 {
+ //鑾峰彇杞︿富濮撳悕
+ managerMsg := strings.Join(carOwnNames, " ")
+ mb,me, managerArr := service.Push2Manager(fmt.Sprintf("%s 鏈┒绂昏溅杈�", time.Now().Format("2006-01-02 15:04:05")), managerMsg)
+ mLogE := models.Log{
+ Id: uuid.NewV4().String(),
+ CreateTime: time.Now().Format("2006-01-02 15:04:05"),
+ Result: mb,
+ Phones: strings.Join(managerArr, ","),
+ }
+ if me != nil {
+ mLogE.Content = me.Error()
+ } else {
+ mLogE.Content = managerMsg
+ }
+ mLogE.Insert()
+ fmt.Println("mb:", mb, "me:", me, "message:", managerMsg)
+
+ c.Data["json"] = code.Code{
+ Success: true,
+ Status: http.StatusOK,
+ Message: "鎺ㄩ�佸畬鎴�",
+ Data: managerMsg,
+ }
+ } else {
+ c.Data["json"] = code.Code{
+ Success: true,
+ Status: http.StatusOK,
+ Message: "鏃犻渶鎺ㄩ�侊紝褰撳墠鍋滅暀杞﹁締淇℃伅涓虹┖",
+ }
+ }
+
+ c.ServeJSON()
+}
+// @router /spaceInfo [get]
+func (c *CarController) SpaceInfo() {
+ sv := service.NewCarService()
+ spaceInfo := sv.FindHikSpaceInfo()
+ c.Data["json"] = code.Code{
+ Success: true,
+ Status: http.StatusOK,
+ Data: spaceInfo,
+ }
+ c.ServeJSON()
+}
+
+// @router /spaceUser [get]
+func (c *CarController) SpaceUser() {
+ sv := service.NewCarService()
+ spaceUser := sv.FindHikSpaceUser()
+ c.Data["json"] = code.Code{
+ Success: true,
+ Status: http.StatusOK,
+ Data: spaceUser,
+ }
+ c.ServeJSON()
+}
+
+// @router /pushLog [get]
+func (c *CarController) PushLog() {
+ st := c.GetString("startTime")
+ et := c.GetString("endTime")
+ if st == "" {
+ st = time.Now().Format("2006-01-02")
+ }
+ if et == "" {
+ et = time.Now().AddDate(0,0,1).Format("2006-01-02")
+ }
+ curPage, err := c.GetInt("curPage")
+ if err != nil {
+ curPage = 1
+ }
+ pageSize, err := c.GetInt("pageSize")
+ if err != nil {
+ pageSize = 20
+ }
+ var l models.Log
+ total, logs := l.Find(curPage, pageSize, st, et)
+ var rl []models.Log
+ for _,le := range logs {
+ rl = append(rl, *le)
+ }
+ resp := code.Code{
+ Success: true,
+ Status: http.StatusOK,
+ Data: map[string]interface{}{
+ "total": total,
+ "list": rl,
+ },
+ }
+ c.Data["json"] = resp
+ c.ServeJSON()
+}
+
// @router /crossRecord [get]
func (c *CarController) CrossRecord() {
sv := service.NewCarService()
--
Gitblit v1.8.0