From a1638f230ff4cb87fe55c7f56919498c617bec3c Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期一, 27 七月 2020 11:04:44 +0800
Subject: [PATCH] add sys_upgrade

---
 /dev/null            |    8 ----
 models/sysUpgrade.go |   33 ++++++++++++++++
 controllers/sys.go   |   41 +++++++++++++-------
 models/db.go         |    2 
 vo/upgrade.go        |   10 +++++
 5 files changed, 71 insertions(+), 23 deletions(-)

diff --git a/controllers/sys.go b/controllers/sys.go
index 1f6d908..23c6e08 100644
--- a/controllers/sys.go
+++ b/controllers/sys.go
@@ -2,6 +2,8 @@
 
 import (
 	"car-service/models"
+	"car-service/vo"
+	"encoding/json"
 	"fmt"
 	"github.com/astaxie/beego"
 	"strconv"
@@ -15,26 +17,37 @@
 // @Title 姣斿鐗堟湰鍙凤紝鐪嬫槸鍚︽湁鍗囩骇
 // @Description 姣斿鐗堟湰鍙凤紝鐪嬫槸鍚︽湁鍗囩骇
 // @Param curVersion query string  true "褰撳墠鐗堟湰鍙�"
-// @Success 200 {object} models.SysVersion
+// @Success 200 {object} models.SysUpgrade
 // @Failure 403 {string} json ""
 // @router /version [get]
 func (c *AppController)  Version() {
 	curV := c.GetString("curVersion")
-	latestV := beego.AppConfig.String("latestVersion")
-	fmt.Println("curV:", curV, "latestV:", latestV)
-	result := models.SysVersion{
-		LatestVersion: latestV,
-	}
-	if shouldVersionBeUpgrade(curV, latestV) {
-		result.IsUpgrade = true
-		result.Url = beego.AppConfig.String("latestUrl")
-		result.Msg = []string {
-			"浼樺寲鍋滆溅鍦鸿溅浣嶅湴鍥�",
-			"瑙e喅宸茬煡闂",
-		}
+	fmt.Println("curV:", curV)
+	result := vo.Upgrade{}
+	var sv models.SysUpgrade
+	err := sv.GetLatest()
+	if err != nil {
+		result.Msg = []string{}
 	} else {
-		result.IsUpgrade = false
+		latestV := sv.LatestVersion
+		if shouldVersionBeUpgrade(curV, latestV) {
+			result.IsUpgrade = true
+			result.Url = sv.Url
+			result.LatestVersion = sv.LatestVersion
+			result.Time = sv.Time
+			result.ForceUpgrade = sv.ForceUpgrade
+			mb, e1 := json.Marshal(sv.Msg)
+			if e1 == nil {
+				var msgArr []string
+				if e1 = json.Unmarshal(mb, &msgArr);e1 ==nil {
+					result.Msg = msgArr
+				}
+			}
+		} else {
+			result.IsUpgrade = false
+		}
 	}
+
 	c.Data["json"] = result
 	c.ServeJSON()
 }
diff --git a/models/db.go b/models/db.go
index b01ef8f..3ca978d 100644
--- a/models/db.go
+++ b/models/db.go
@@ -9,6 +9,6 @@
 func InitDb() {
 	dbUrl := beego.AppConfig.String("dbUrl")
 	_ = orm.RegisterDataBase("default", "mysql", dbUrl)
-	orm.RegisterModel(new(User), new(UserCar))
+	orm.RegisterModel(new(User), new(UserCar), new(SysUpgrade))
 	_ = orm.RunSyncdb("default", false, true)
 }
diff --git a/models/sys.go b/models/sys.go
deleted file mode 100644
index 3440c4c..0000000
--- a/models/sys.go
+++ /dev/null
@@ -1,8 +0,0 @@
-package models
-
-type SysVersion struct {
-	LatestVersion 		string 		`json:"latestVersion"`
-	Url 				string 		`json:"url"`
-	IsUpgrade 			bool 		`json:"isUpgrade"`
-	Msg 				[]string 	`json:"msg"`
-}
diff --git a/models/sysUpgrade.go b/models/sysUpgrade.go
new file mode 100644
index 0000000..b581b86
--- /dev/null
+++ b/models/sysUpgrade.go
@@ -0,0 +1,33 @@
+package models
+
+import "github.com/astaxie/beego/orm"
+
+type SysUpgrade struct {
+	Id       			string 		`orm:"pk;size(50);column(id)" json:"id"`
+	LatestVersion 		string 		`orm:"column(latestVersion)" json:"latestVersion"`
+	Url 				string 		`orm:"column(url)" json:"url"`
+	IsUpgrade 			bool 		`orm:"column(isUpgrade)" json:"isUpgrade"`
+	ForceUpgrade 		bool 		`orm:"column(forceUpgrade)" json:"forceUpgrade"`
+	Time  				string 		`orm:"column(time)" json:"time"`
+	Msg 				string 		`orm:"column(msg)" json:"msg"`
+}
+
+func (sv *SysUpgrade) TableName() string {
+	return "sys_upgrade"
+}
+
+func (sv *SysUpgrade) GetLatest() error {
+	o := orm.NewOrm()
+	err := o.QueryTable(sv.TableName()).OrderBy("time desc").One(sv)
+	return err
+}
+
+func (sv *SysUpgrade) Insert() (int64,error) {
+	o := orm.NewOrm()
+	return o.Insert(sv)
+}
+
+func (sv *SysUpgrade) Update() (int64, error) {
+	o := orm.NewOrm()
+	return o.Update(sv)
+}
\ No newline at end of file
diff --git a/vo/upgrade.go b/vo/upgrade.go
new file mode 100644
index 0000000..3659ff2
--- /dev/null
+++ b/vo/upgrade.go
@@ -0,0 +1,10 @@
+package vo
+
+type Upgrade struct {
+	LatestVersion 		string 		`json:"latestVersion"`
+	Url 				string 		`json:"url"`
+	IsUpgrade 			bool 		`json:"isUpgrade"`
+	ForceUpgrade 		bool 		`json:"forceUpgrade"`
+	Time  				string 		`json:"time"`
+	Msg 				[]string 	`json:"msg"`
+}

--
Gitblit v1.8.0