| | |
| | | |
| | | import ( |
| | | "car-service/models" |
| | | "car-service/vo" |
| | | "encoding/json" |
| | | "fmt" |
| | | "github.com/astaxie/beego" |
| | | "strconv" |
| | |
| | | // @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, |
| | | } |
| | | fmt.Println("curV:", curV) |
| | | result := vo.Upgrade{} |
| | | var sv models.SysUpgrade |
| | | err := sv.GetLatest() |
| | | if err != nil { |
| | | result.Msg = []string{} |
| | | } else { |
| | | latestV := sv.LatestVersion |
| | | if shouldVersionBeUpgrade(curV, latestV) { |
| | | result.IsUpgrade = true |
| | | result.Url = beego.AppConfig.String("latestUrl") |
| | | result.Msg = []string { |
| | | "优化停车场车位地图", |
| | | "解决已知问题", |
| | | 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() |
| | | } |
| | |
| | | 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) |
| | | } |
New file |
| | |
| | | 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) |
| | | } |
New file |
| | |
| | | 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"` |
| | | } |