diff --git a/API/Tag.go b/API/Tag.go index 201f654..62e5aec 100644 --- a/API/Tag.go +++ b/API/Tag.go @@ -133,6 +133,14 @@ func CreateTag(c *gin.Context) { } + if c.PostForm("TagGroup") == "type" { + c.JSON(200, tools.ResponseError{ + 1, + "此类型只能加不能加", + }) + return + } + DB.CTags.Insert(DB.STag{ ScenicId, c.PostForm("TagGroup"), diff --git a/API/TopMenus.go b/API/TopMenus.go new file mode 100644 index 0000000..3c70b77 --- /dev/null +++ b/API/TopMenus.go @@ -0,0 +1,90 @@ +package Api + +import ( + "encoding/json" + "github.com/aarongao/tools" + "github.com/gin-gonic/gin" + "gopkg.in/mgo.v2/bson" + "letu/DB" + "letu/Lib/LeYouTu" +) + +// @Title 查询所有菜单 +// @Description 菜单管理 - 查询所有菜单 +// @Accept json +// @Produce json +// @Success 200 {object} tools.ResponseSeccess "{"errcode":0,"result":[{"Id":"","ScenicId":"","Title":"玩水","Tags":["玩水"]},{"Id":"","ScenicId":"","Title":"设施","Tags":["服务设施","游玩项目"]}]}" +// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}" +// @Router /TopMenus/All? [get] +func AllTopMenus(c *gin.Context) { + c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin")) + c.Header("Access-Control-Allow-Credentials", "true") + + ScenicId, err := LeYouTu.GetScenicId(c) + if err != nil { + return + } + + var STopMenus []*DB.STopMenus + DB.CTopMenus.Find(bson.M{"ScenicId": ScenicId}).All(&STopMenus) + + if STopMenus == nil { + STopMenus = []*DB.STopMenus{} + } + + c.JSON(200, tools.ResponseSeccess{ + 0, + STopMenus, + }) + +} + +// @Title 更新菜单 +// @Description 菜单管理 - 更新菜单 +// @Accept json +// @Produce json +// @Success 200 {object} tools.ResponseSeccess "{"errcode":0,"result":[{"Id":"","ScenicId":"","Title":"玩水","Tags":["玩水"]},{"Id":"","ScenicId":"","Title":"设施","Tags":["服务设施","游玩项目"]}]}" +// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}" +// @Router /TopMenus/Update? [post] +func UpdateTopMenus(c *gin.Context) { + c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin")) + c.Header("Access-Control-Allow-Credentials", "true") + + ScenicId, err := LeYouTu.GetScenicId(c) + if err != nil { + return + } + + if c.PostForm("Tags") == "" { + c.JSON(200, tools.ResponseError{ + 1, + "标签不能为空", + }) + return + } + + var Tags []string + json.Unmarshal([]byte(c.PostForm("Tags")), &Tags) + + var id bson.ObjectId + if pid := c.PostForm("id"); pid == "null" { + id = bson.NewObjectId() + } else { + id = bson.ObjectIdHex(pid) + } + + DB.CTopMenus.UpsertId( + id, + bson.M{"$set": bson.M{ + "ScenicId": ScenicId, + "Title": c.PostForm("Title"), + "Tags": Tags, + }}, + ) + + c.JSON(200, tools.ResponseSeccess{ + 0, + "ok", + }) + +} diff --git a/DB/db.go b/DB/db.go index 6980b34..5a21dc7 100644 --- a/DB/db.go +++ b/DB/db.go @@ -21,6 +21,7 @@ var CUserLog *mgo.Collection //用户行为记录 var CSystemLog *mgo.Collection //操作记录 var CTrajectory *mgo.Collection //移动轨迹 var CIcons *mgo.Collection //图标信息 +var CTopMenus *mgo.Collection //菜单 var DB *mgo.Database type SItem struct { @@ -59,6 +60,12 @@ type SLocation struct { Latitude float64 `bson:"Latitude" json:"Latitude"` //纬度 Longitude float64 `bson:"Longitude" json:"Longitude"` //经度 } +type STopMenus struct { + Id *bson.ObjectId `bson:"_id" json:"Id" valid:"required"` + ScenicId string `bson:"ScenicId" json:"ScenicId"` + Title string `bson:"Title" json:"Title"` //菜单标题 + Tags []string `bson:"Tags" json:"Tags"` //标签 +} type SDevice struct { DeviceId string `bson:"DeviceId" json:"DeviceId"` diff --git a/README.md b/README.md index 0c3aa9a..428a251 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,8 @@ 1. [发送短信验证码](#sms-send-post) 1. [标签 - 增加标签](#tag-create-post) 1. [标签 - 删除标签](#tag-remove-post) +1. [菜单管理 - 查询所有菜单](#topmenus-all-get) +1. [菜单管理 - 更新菜单](#topmenus-update-post) 1. [保存用户移动轨迹(5分钟提交一次)](#trajectory-save-post) 1. [更新商品](#updatecommodity-post) 1. [设备管理 - 更新设施](#updateitem-post) @@ -534,6 +536,33 @@ + + +#### /TopMenus/All (GET) + + +菜单管理 - 查询所有菜单 + +| Code | Type | Model | Message | +|-----|-----|-----|-----| +| 200 | object | [ResponseSeccess](#github.com.aarongao.tools.ResponseSeccess) | {"errcode":0,"result":[{"Id":"","ScenicId":"","Title":"玩水","Tags":["玩水"]},{"Id":"","ScenicId":"","Title":"设施","Tags":["服务设施","游玩项目"]}]} | +| 500 | object | [ResponseError](#github.com.aarongao.tools.ResponseError) | {"errcode":1,"errmsg":"错误原因"} | + + + + +#### /TopMenus/Update (POST) + + +菜单管理 - 更新菜单 + +| Code | Type | Model | Message | +|-----|-----|-----|-----| +| 200 | object | [ResponseSeccess](#github.com.aarongao.tools.ResponseSeccess) | {"errcode":0,"result":[{"Id":"","ScenicId":"","Title":"玩水","Tags":["玩水"]},{"Id":"","ScenicId":"","Title":"设施","Tags":["服务设施","游玩项目"]}]} | +| 500 | object | [ResponseError](#github.com.aarongao.tools.ResponseError) | {"errcode":1,"errmsg":"错误原因"} | + + + #### /Trajectory/Save (POST) diff --git a/main.go b/main.go index 6932376..93a2bf0 100644 --- a/main.go +++ b/main.go @@ -64,6 +64,7 @@ func main() { DB.CInvestigation = DB.DB.C("Investigation") DB.CTrajectory = DB.DB.C("Trajectory") DB.CIcons = DB.DB.C("Icons") + DB.CTopMenus = DB.DB.C("TopMenus") DelayMessage.CDelayMessage = DB.DB.C("DelayMessage") DelayMessage.CDelayErrorLog = DB.DB.C("DelayErrorLog") @@ -113,6 +114,8 @@ func main() { r.GET("/Icon/Info", Api.IconInfo) r.POST("/CheckToken", Api.CheckToken) r.GET("/Tiles", Api.Tiles) + r.POST("/TopMenus/Update", Api.UpdateTopMenus) + r.GET("/TopMenus/All", Api.AllTopMenus) //r.GET("/ws", Api.WsPage) r.Static("/Upload", "./Upload") -- libgit2 0.21.0