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