Commit 8bd8be3402b92754f2247547468d023ede9fa57c

Authored by aarongao
1 parent fc50874b
Exists in v1.2 and in 2 other branches master, v1.1

readme

API/AccessLog.go 0 → 100644
... ... @@ -0,0 +1,52 @@
  1 +package Api
  2 +
  3 +import (
  4 + "encoding/json"
  5 + "github.com/aarongao/tools"
  6 + "github.com/gin-gonic/gin"
  7 + "letu/DB"
  8 + "strconv"
  9 +)
  10 +
  11 +// @Title 增加访问日志
  12 +// @Description 增加访问日志
  13 +// @Accept json
  14 +// @Produce json
  15 +// @Param UserId 5dfb03070a9ac17ac7a82054 string true "用户ID"
  16 +// @Param UserName Aaron string true "用户名称"
  17 +// @Param TypeNum 9 int true "类型编号"
  18 +// @Param TypeName 点击个人中心 string true "类型名称"
  19 +// @Param DateTime 1578556751220 int true "时间戳"
  20 +// @Param Location {"Latitude": 119, "Longitude": 39} string true "位置"
  21 +// @Param Remarks 备注 string true "备注"
  22 +// @Success 200 {object} tools.ResponseSeccess ""
  23 +// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}"
  24 +// @Router /AccessLog? [post]
  25 +func AccessLog(c *gin.Context) {
  26 + c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin"))
  27 + c.Header("Access-Control-Allow-Credentials", "true")
  28 +
  29 + if c.Request.Method == "post" {
  30 +
  31 + var Location DB.SLocation
  32 + json.Unmarshal([]byte(c.PostForm("Location")), &Location)
  33 +
  34 + DateTime, _ := strconv.ParseInt(c.PostForm("DateTime"), 0, 64)
  35 +
  36 + DB.CAccessLog.Insert(DB.SAccessLog{
  37 + c.PostForm("UserId"),
  38 + c.PostForm("UserName"),
  39 + c.PostForm("TypeNum"),
  40 + c.PostForm("TypeName"),
  41 + DateTime,
  42 + Location,
  43 + c.PostForm("Remarks"),
  44 + })
  45 +
  46 + c.JSON(200, tools.ResponseSeccess{
  47 + 0,
  48 + "ok",
  49 + })
  50 + }
  51 +
  52 +}
... ...
API/Tag.go
... ... @@ -30,72 +30,6 @@ func AllTag(c *gin.Context) {
30 30 })
31 31 } else {
32 32  
33   -
34   - c.JSON(200, tools.ResponseSeccess{
35   - 0,
36   - Stags,
37   - })
38   - }
39   -
40   -}
41   -
42   -// @Title 创建标签
43   -// @Description 创建标签
44   -// @Accept json
45   -// @Produce json
46   -// @Success 200 {object} tools.ResponseSeccess "{"errcode":0,"result":[{"Type":"menu","Name":"服务设施"},{"Type":"normal","Name":"不错"},{"Type":"thrilling","Name":"刺激"},{"Type":"recommend","Name":"必玩"}]}"
47   -// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}"
48   -// @Router /CreateTag? [post]
49   -func CreateTag(c *gin.Context) {
50   - c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin"))
51   - c.Header("Access-Control-Allow-Credentials", "true")
52   -
53   -
54   - var Stags []*DB.STag
55   - DB.CTags.Find(bson.M{}).All(&Stags)
56   -
57   - if Stags == nil {
58   -
59   - c.JSON(200, tools.ResponseError{
60   - 1,
61   - "空",
62   - })
63   - } else {
64   -
65   -
66   - c.JSON(200, tools.ResponseSeccess{
67   - 0,
68   - Stags,
69   - })
70   - }
71   -
72   -}
73   -
74   -
75   -// @Title 更新标签
76   -// @Description 更新标签
77   -// @Accept json
78   -// @Produce json
79   -// @Success 200 {object} tools.ResponseSeccess "{"errcode":0,"result":[{"Type":"menu","Name":"服务设施"},{"Type":"normal","Name":"不错"},{"Type":"thrilling","Name":"刺激"},{"Type":"recommend","Name":"必玩"}]}"
80   -// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}"
81   -// @Router /UpdateTag? [post]
82   -func UpdateTag(c *gin.Context) {
83   - c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin"))
84   - c.Header("Access-Control-Allow-Credentials", "true")
85   -
86   -
87   - var Stags []*DB.STag
88   - DB.CTags.Find(bson.M{}).All(&Stags)
89   -
90   - if Stags == nil {
91   -
92   - c.JSON(200, tools.ResponseError{
93   - 1,
94   - "空",
95   - })
96   - } else {
97   -
98   -
99 33 c.JSON(200, tools.ResponseSeccess{
100 34 0,
101 35 Stags,
... ...
Config/AccessType/AccessType.go 0 → 100644
... ... @@ -0,0 +1,43 @@
  1 +package AccessType
  2 +
  3 +type AccessType int32
  4 +
  5 +const (
  6 + PageForIndex AccessType = 1
  7 + PageForRecommendMenu AccessType = 2
  8 + PageForPlayItemMenu AccessType = 3
  9 + PageForPerformMenu AccessType = 4
  10 + PageForServiceMenu AccessType = 5
  11 + PageForRestaurantMenu AccessType = 6
  12 + TouchAnnotation AccessType = 7
  13 + TouchShopMenu AccessType = 8
  14 + TouchMyMenu AccessType = 9
  15 + TouchComplaintMenu AccessType = 10
  16 +)
  17 +
  18 +func (o AccessType) String() string {
  19 + switch (o) {
  20 + case PageForIndex:
  21 + return "首页"
  22 + case PageForRecommendMenu:
  23 + return "推荐"
  24 + case PageForPlayItemMenu:
  25 + return "游玩项目"
  26 + case PageForPerformMenu:
  27 + return "演出活动"
  28 + case PageForServiceMenu:
  29 + return "服务设施"
  30 + case PageForRestaurantMenu:
  31 + return "餐饮购物"
  32 + case TouchAnnotation:
  33 + return "点击建筑图标"
  34 + case TouchShopMenu:
  35 + return "点击商店"
  36 + case TouchMyMenu:
  37 + return "点击个人中心"
  38 + case TouchComplaintMenu:
  39 + return "点击投诉&意见"
  40 + default:
  41 + return "UNKNOWN"
  42 + }
  43 +}
... ...
Config/config.go
... ... @@ -4,3 +4,4 @@ type Config struct {
4 4 TagType []string
5 5 DbPath string
6 6 }
  7 +
... ...
DB/db.go
... ... @@ -14,6 +14,7 @@ var CCommodity *mgo.Collection //商城
14 14 var CTags *mgo.Collection //标签
15 15 var CScenic *mgo.Collection //景区
16 16 var CLine *mgo.Collection //推荐线路
  17 +var CAccessLog *mgo.Collection //访问记录
17 18 var DB *mgo.Database
18 19  
19 20 type SItem struct {
... ... @@ -23,19 +24,28 @@ type SItem struct {
23 24 Location SLocation `bson:"Location" json:"Location"`
24 25 Tags []STag `bson:"Tags" json:"Tags"`
25 26 Icon string `bson:"Icon" json:"Icon"`
26   - LimitHeight string `bson:"LimitHeight" json:"LimitHeight"`
27   - PlayDuration string `bson:"PlayDuration" json:"PlayDuration"`
28   - SceneTime string `bson:"SceneTime" json:"SceneTime"`
  27 + LimitHeight string `bson:"LimitHeight" json:"LimitHeight"` //限高
  28 + PlayDuration string `bson:"PlayDuration" json:"PlayDuration"` //游玩时长
  29 + SceneTime string `bson:"SceneTime" json:"SceneTime"` //场次时间
29 30 Picture []string `bson:"Picture" json:"Picture"`
30   - Voice string `bson:"Voice" json:"Voice"`
  31 + Voice string `bson:"Voice" json:"Voice"` //音频
31 32 Tel string `bson:"Tel" json:"Tel"`
32   - AverageConsumption string `bson:"AverageConsumption" json:"AverageConsumption"`
33   - Menu string `bson:"Menu" json:"Menu"`
  33 + AverageConsumption string `bson:"AverageConsumption" json:"AverageConsumption"` //人均消费
  34 + Menu string `bson:"Menu" json:"Menu"` //菜单
34 35 Time string `bson:"Time" json:"Time"`
35 36 }
36 37 type SLocation struct {
37   - Latitude float64 `bson:"Latitude" json:"Latitude"`
38   - Longitude float64 `bson:"Longitude" json:"Longitude"`
  38 + Latitude float64 `bson:"Latitude" json:"Latitude"` //纬度
  39 + Longitude float64 `bson:"Longitude" json:"Longitude"` //经度
  40 +}
  41 +type SAccessLog struct {
  42 + UserId string `bson:"UserId" json:"UserId"` // 用户ID
  43 + UserName string `bson:"UserName" json:"UserName"` //用户名称
  44 + TypeNum string `bson:"TypeNum" json:"TypeNum"` //类型编号
  45 + TypeName string `bson:"TypeName" json:"TypeName"` //类型名称
  46 + DateTime int64 `bson:"DateTime" json:"DateTime"` //时间戳
  47 + Location SLocation `bson:"Location" json:"Location"` //位置
  48 + Remarks string `bson:"Remarks" json:"Remarks"` //备注
39 49 }
40 50 type SCommodity struct {
41 51 Id *bson.ObjectId `bson:"_id" json:"Id" valid:"required"`
... ... @@ -43,19 +53,19 @@ type SCommodity struct {
43 53 Price string `bson:"Price" json:"Price"`
44 54 ShopName string `bson:"ShopName" json:"ShopName"`
45 55 Location SLocation `bson:"Location" json:"Location"`
46   - KvPhoto string `bson:"KvPhoto" json:"KvPhoto"`
47   - TopPhoto []string `bson:"TopPhoto" json:"TopPhoto"`
48   - Images []string `bson:"Images" json:"Images"`
  56 + KvPhoto string `bson:"KvPhoto" json:"KvPhoto"` //用于列表页的图片
  57 + TopPhoto []string `bson:"TopPhoto" json:"TopPhoto"` //详情页最上面的轮播图
  58 + Images []string `bson:"Images" json:"Images"` //详情页下面的产品详细图
49 59 }
50 60 type SLine struct {
51 61 Id *bson.ObjectId `bson:"_id" json:"Id" valid:"required"`
52 62 Name string `bson:"Name" json:"Name"`
53   - SubName string `bson:"SubName" json:"SubName"`
54   - Location []SLocation `bson:"Location" json:"Location"`
  63 + SubName string `bson:"SubName" json:"SubName"` //游玩时长
  64 + Location []SLocation `bson:"Location" json:"Location"` //线路点坐标
55 65 PlayDuration string `bson:"PlayDuration" json:"PlayDuration"`
56   - Suitable string `bson:"Suitable" json:"Suitable"`
  66 + Suitable string `bson:"Suitable" json:"Suitable"` //适合人群
57 67 Content string `bson:"Content" json:"Content"`
58   - Annotations []string `bson:"Annotations" json:"Annotations"`
  68 + Annotations []string `bson:"Annotations" json:"Annotations"` //需要点亮的设施id
59 69 }
60 70  
61 71 type SComplaint struct {
... ... @@ -85,13 +95,13 @@ type SScenic struct {
85 95 Id *bson.ObjectId `bson:"_id" json:"Id" valid:"required"`
86 96 Name string `bson:"Name" json:"Name"`
87 97 Describe string `bson:"Describe" json:"Describe"`
88   - OpenHours string `bson:"OpenHours" json:"OpenHours"`
  98 + OpenHours string `bson:"OpenHours" json:"OpenHours"` //营业时间
89 99 Mobile string `bson:"Mobile" json:"Mobile"`
90 100 Address string `bson:"Address" json:"Address"`
91 101 Location SLocation `bson:"Location" json:"Location"`
92 102 Picture []string `bson:"Picture" json:"Picture"`
93   - ShopAdPicture []string `bson:"ShopAdPicture" json:"ShopAdPicture"`
94   - ItemScenicPicture []string `bson:"ItemScenicPicture" json:"ItemScenicPicture"`
95   - ActivityPicture []string `bson:"ActivityPicture" json:"ActivityPicture"`
  103 + ShopAdPicture []string `bson:"ShopAdPicture" json:"ShopAdPicture"` //商城列表页图片
  104 + ItemScenicPicture []string `bson:"ItemScenicPicture" json:"ItemScenicPicture"` //项目场次照片
  105 + ActivityPicture []string `bson:"ActivityPicture" json:"ActivityPicture"` //活动照片
96 106 VideoList []string `bson:"VideoList" json:"VideoList"`
97 107 }
... ...
README.md
... ... @@ -8,13 +8,13 @@
8 8  
9 9  
10 10 ### API List
  11 +1. [增加访问日志](#增加访问日志)
11 12 1. [查询所有商品](#查询所有商品)
12 13 1. [查询所有游玩项目](#查询所有游玩项目)
13 14 1. [查询所有线路](#查询所有线路)
14 15 1. [所有景区基础信息](#所有景区基础信息)
15 16 1. [查询商品信息](#查询商品信息)
16 17 1. [增加投诉](#增加投诉)
17   -1. [创建标签](#创建标签)
18 18 1. [用户注册](#用户注册)
19 19 1. [查询设备信息](#查询设备信息)
20 20 1. [查询线路信息](#查询线路信息)
... ... @@ -26,12 +26,36 @@
26 26 1. [更新等待时间](#更新等待时间)
27 27 1. [更新线路](#更新线路)
28 28 1. [更新景区基础信息](#更新景区基础信息)
29   -1. [更新标签](#更新标签)
30 29 1. [上传](#上传)
31 30 1. [获取用户信息](#获取用户信息)
32 31  
33 32  
34 33  
  34 +<a name="增加访问日志"></a>
  35 +
  36 +#### /AccessLog (POST)
  37 +
  38 +
  39 +增加访问日志
  40 +
  41 +| Param Name | Example | Data Type | Description | Required? |
  42 +|-----|-----|-----|-----|-----|
  43 +| UserId | 5dfb03070a9ac17ac7a82054 | string | 用户ID | Yes |
  44 +| UserName | Aaron | string | 用户名称 | Yes |
  45 +| TypeNum | 9 | int | 类型编号 | Yes |
  46 +| TypeName | 点击个人中心 | string | 类型名称 | Yes |
  47 +| DateTime | 1578556751220 | int | 时间戳 | Yes |
  48 +| Location | {"Latitude": 119, "Longitude": 39} | string | 位置 | Yes |
  49 +| Remarks | 备注 | string | 备注 | Yes |
  50 +
  51 +
  52 +| Code | Type | Model | Message |
  53 +|-----|-----|-----|-----|
  54 +| 200 | object | [ResponseSeccess](#github.com.aarongao.tools.ResponseSeccess) | |
  55 +| 500 | object | [ResponseError](#github.com.aarongao.tools.ResponseError) | {"errcode":1,"errmsg":"错误原因"} |
  56 +
  57 +
  58 +
35 59 <a name="查询所有商品"></a>
36 60  
37 61 #### /AllCommodity (GET)
... ... @@ -129,20 +153,6 @@
129 153  
130 154  
131 155  
132   -<a name="创建标签"></a>
133   -
134   -#### /CreateTag (POST)
135   -
136   -
137   -创建标签
138   -
139   -| Code | Type | Model | Message |
140   -|-----|-----|-----|-----|
141   -| 200 | object | [ResponseSeccess](#github.com.aarongao.tools.ResponseSeccess) | {"errcode":0,"result":[{"Type":"menu","Name":"服务设施"},{"Type":"normal","Name":"不错"},{"Type":"thrilling","Name":"刺激"},{"Type":"recommend","Name":"必玩"}]} |
142   -| 500 | object | [ResponseError](#github.com.aarongao.tools.ResponseError) | {"errcode":1,"errmsg":"错误原因"} |
143   -
144   -
145   -
146 156 <a name="用户注册"></a>
147 157  
148 158 #### /CreateUser (POST)
... ... @@ -338,20 +348,6 @@
338 348  
339 349  
340 350  
341   -<a name="更新标签"></a>
342   -
343   -#### /UpdateTag (POST)
344   -
345   -
346   -更新标签
347   -
348   -| Code | Type | Model | Message |
349   -|-----|-----|-----|-----|
350   -| 200 | object | [ResponseSeccess](#github.com.aarongao.tools.ResponseSeccess) | {"errcode":0,"result":[{"Type":"menu","Name":"服务设施"},{"Type":"normal","Name":"不错"},{"Type":"thrilling","Name":"刺激"},{"Type":"recommend","Name":"必玩"}]} |
351   -| 500 | object | [ResponseError](#github.com.aarongao.tools.ResponseError) | {"errcode":1,"errmsg":"错误原因"} |
352   -
353   -
354   -
355 351 <a name="上传"></a>
356 352  
357 353 #### /Upload (POST)
... ...
main.go
... ... @@ -42,6 +42,7 @@ func main() {
42 42 DB.CTags = DB.DB.C("Tags")
43 43 DB.CScenic = DB.DB.C("Scenic")
44 44 DB.CLine = DB.DB.C("Line")
  45 + DB.CAccessLog = DB.DB.C("AccessLog")
45 46  
46 47 r := gin.Default()
47 48 //r.Static("/.well-known", "./.well-known/")
... ... @@ -58,8 +59,6 @@ func main() {
58 59 r.GET("/ScenicInfo", Api.ScenicInfo)
59 60 r.GET("/LineInfo", Api.LineInfo)
60 61 r.GET("/AllTag", Api.AllTag)
61   - r.POST("/CreateTag", Api.CreateTag)
62   - r.POST("/UpdateTag", Api.UpdateTag)
63 62 r.POST("/Upload", Api.Upload)
64 63 r.POST("/UpdateItem", Api.UpdateItem)
65 64 r.POST("/UpdateCommodity", Api.UpdateCommodity)
... ... @@ -67,6 +66,8 @@ func main() {
67 66 r.POST("/UpdateScenic", Api.UpdateScenic)
68 67 r.POST("/UpdateItemTime", Api.UpdateItemTime)
69 68 r.GET("/AllScenic", Api.AllScenic)
  69 + r.POST("/AccessLog", Api.AccessLog)
  70 + r.GET("/AccessLog", Api.AccessLog)
70 71 //r.GET("/ws", Api.WsPage)
71 72  
72 73 r.Static("/Upload", "./Upload")
... ...