db.go
14.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
package DB
import (
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"letu/Lib/Cache"
)
var Redis *Cache.Redis
var CItem *mongo.Collection //所有游玩项目内容
var CComplaint *mongo.Collection //投诉
var CInvestigation *mongo.Collection //调查
var CMember *mongo.Collection //会员
var CCommodity *mongo.Collection //商城
var CTags *mongo.Collection //标签
var CScenic *mongo.Collection //景区
var CLine *mongo.Collection //推荐线路
var CUserLog *mongo.Collection //用户行为记录
var COperatorLog *mongo.Collection //操作员log
var CSystemLog *mongo.Collection //操作记录
var CTrajectory *mongo.Collection //移动轨迹
var CIcons *mongo.Collection //图标信息
var CDevice *mongo.Collection //设备清单
var CNotice *mongo.Collection //公告
var CTopMenus *mongo.Collection //菜单
var CSysAds *mongo.Collection //平台广告
var DB *mongo.Database
type SScenic struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
Name string `bson:"Name" json:"Name" valid:"required"`
Describe string `bson:"Describe" json:"Describe"`
OpenHours string `bson:"OpenHours" json:"OpenHours"` //营业时间
Mobile string `bson:"Mobile" json:"Mobile"`
Address string `bson:"Address" json:"Address"`
InvestigationUrl string `bson:"InvestigationUrl" json:"InvestigationUrl"` //问券调查的url地址
Location SLocation `bson:"Location" json:"Location"`
Picture []SPicture `bson:"Picture" json:"Picture"`
ShopAdPicture []SPicture `bson:"ShopAdPicture" json:"ShopAdPicture"` //商城列表页图片
ItemScenicPicture []SPicture `bson:"ItemScenicPicture" json:"ItemScenicPicture"` //项目场次照片
ActivityPicture []SPicture `bson:"ActivityPicture" json:"ActivityPicture"` //活动照片
VideoList []SVideo `bson:"VideoList" json:"VideoList"`
RangeLocation []SLocation `bson:"RangeLocation" json:"RangeLocation"` //景区范围
ZoomForIOS SRange `bson:"ZoomForIOS" json:"ZoomForIOS"` //地图的缩放大小(IOS)
ZoomForAndroidMin []SLocation `bson:"ZoomForAndroidMin" json:"ZoomForAndroidMin"` //地图的缩放大小(Android最小)
ZoomForAndroidMax []SLocation `bson:"ZoomForAndroidMax" json:"ZoomForAndroidMax"` //地图的缩放大小(Android最大)
Rotation float64 `bson:"Rotation" json:"Rotation"` //旋转角度
OpenTiles bool `bson:"OpenTiles" json:"OpenTiles"` //否开启地图切片
ColorTiles string `bson:"ColorTiles" json:"ColorTiles"` //切片底色(#FFFFFF)
Display bool `bson:"Display" json:"Display"` //是否显示
Remove bool `bson:"Remove" json:"Remove"` //是否删除
}
type SItem struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
ScenicId string `bson:"ScenicId" json:"ScenicId"` // 景区id
Name string `bson:"Name" json:"Name"`
SubName string `bson:"SubName" json:"SubName"`
Location SLocation `bson:"Location" json:"Location"`
Tags []STag `bson:"Tags" json:"Tags"`
Icon string `bson:"Icon" json:"Icon"`
LimitHeight string `bson:"LimitHeight" json:"LimitHeight"` //限高
PlayDuration string `bson:"PlayDuration" json:"PlayDuration"` //游玩时长
SceneTime string `bson:"SceneTime" json:"SceneTime"` //场次时间
Picture []string `bson:"Picture" json:"Picture"`
Voice string `bson:"Voice" json:"Voice"` //音频
Tel string `bson:"Tel" json:"Tel"`
AverageConsumption string `bson:"AverageConsumption" json:"AverageConsumption"` //人均消费
Menu string `bson:"Menu" json:"Menu"` //目录
Time string `bson:"Time" json:"Time"`
OpenHours string `bson:"OpenHours" json:"OpenHours"` //开放时间
LocationDescription string `bson:"LocationDescription" json:"LocationDescription"` //位置描述
Reminder string `bson:"Reminder" json:"Reminder"` //温馨提示
State int `bson:"State" json:"State"` // 运行状态0=正常1=停运
}
type SModel struct {
Model string `bson:"Model" json:"Model"`
Action string `bson:"Action" json:"Action"`
}
type SNotice struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
ScenicId string `bson:"ScenicId" json:"ScenicId" valid:"required"`
Title string `bson:"Title" json:"Title" valid:"required"`
Url string `bson:"Url" json:"Url" valid:"required"`
CreateTime int64 `bson:"CreateTime,omitempty" json:"CreateTime"` //创建时间
UpdateTime int64 `bson:"UpdateTime,omitempty" json:"UpdateTime"` //最后一次修改时间
Expiry int64 `bson:"Expiry" json:"Expiry"` //有效期
ExpiryString string `bson:"ExpiryString" json:"ExpiryString" valid:"required,in(15分钟|1小时|今天|今年)"` //有效期
}
type SIcons struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
ScenicId string `bson:"ScenicId" json:"ScenicId"`
Name string `bson:"Name" json:"Name"`
Picture string `bson:"Picture" json:"Picture"`
}
type STrajectory struct {
UserId string `bson:"UserId" json:"UserId"` // 用户ID
Location SLocation `bson:"Location" json:"Location"`
Time int64 `bson:"Time" json:"Time"`
}
type SLocation struct {
Latitude float64 `bson:"Latitude" json:"Latitude"` //纬度
Longitude float64 `bson:"Longitude" json:"Longitude"` //经度
}
type STopMenus struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
ScenicId string `bson:"ScenicId" json:"ScenicId" valid:"required"`
Name string `bson:"Name" json:"Name" valid:"required"` //菜单标题
Tags []string `bson:"Tags" json:"Tags" valid:"required"` //标签
Order int64 `bson:"Order" json:"Order" valid:"required"` //排序
}
type SDevice struct {
DeviceId string `bson:"DeviceId" json:"DeviceId"`
Mac string `bson:"Mac" json:"Mac"`
UDID string `bson:"UDID" json:"UDID"`
SystemType string `bson:"SystemType" json:"SystemType"` //ios,android
SystemVersion string `bson:"SystemVersion" json:"SystemVersion"` //系统版本
SystemModel string `bson:"SystemModel" json:"SystemModel"` //机型
AppVersion string `bson:"AppVersion" json:"AppVersion"` //app版本
DeviceToken string `bson:"DeviceToken" json:"DeviceToken"` //用于推送的token
CreateTime int64 `bson:"CreateTime,omitempty" json:"CreateTime"` //创建时间
}
type SUserLog struct {
Type string `bson:"Type" json:"Type"` // Log(事件)类型
SubType string `bson:"SubType" json:"SubType"` // 分类
ScenicId string `bson:"ScenicId" json:"ScenicId"`
UserId string `bson:"UserId" json:"UserId"` // 用户ID
UserName string `bson:"UserName" json:"UserName"` //用户名称
DateTime int64 `bson:"DateTime" json:"DateTime"` //时间戳
Location SLocation `bson:"Location" json:"Location"` //位置
Remarks string `bson:"Remarks" json:"Remarks"` //备注
Ip string `bson:"Ip" json:"Ip"`
Source string `bson:"Source" json:"Source"` //来源
Device SDevice `bson:"Device" json:"Device"` //设备信息
}
type SOperatorLog struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
ScenicId string `bson:"ScenicId" json:"ScenicId"`
UserId string `bson:"UserId" json:"UserId"` // 用户ID
UserName string `bson:"UserName" json:"UserName"` //用户名称
DateTime int64 `bson:"DateTime" json:"DateTime"` //时间戳
Remarks string `bson:"Remarks" json:"Remarks"` //备注
Model SModel `bson:"Model" json:"Model"`
Api string `bson:"Api" json:"Api"`
Parames interface{} `bson:"Parames" json:"Parames"`
}
type SSystemLog struct {
UserId string `bson:"UserId" json:"UserId"` // 用户ID
UserName string `bson:"UserName" json:"UserName"` //用户名称
Mobile string `bson:"Mobile" json:"Mobile"` //手机号
TypeNum int64 `bson:"TypeNum" json:"TypeNum"` //类型编号
TypeName string `bson:"TypeName" json:"TypeName"` //类型名称
DateTime int64 `bson:"DateTime" json:"DateTime"` //时间戳
Location SLocation `bson:"Location" json:"Location"` //位置
Content string `bson:"Content" json:"Content"` //内容
Error interface{} `bson:"Error" json:"Error"` //错误信息
}
type SCommodity struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
Name string `bson:"Name" json:"Name"`
Price string `bson:"Price" json:"Price"`
ShopName string `bson:"ShopName" json:"ShopName"`
ItemId string `bson:"ItemId" json:"ItemId"` //项目id
KvPhoto string `bson:"KvPhoto" json:"KvPhoto"` //用于列表页的图片
TopPhoto []SPicture `bson:"TopPhoto" json:"TopPhoto"` //详情页最上面的轮播图
Images []string `bson:"Images" json:"Images"` //详情页下面的产品详细图
}
type SLine struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
Name string `bson:"Name" json:"Name"`
SubName string `bson:"SubName" json:"SubName"` //游玩时长
Location []SLocation `bson:"Location" json:"Location"` //线路点坐标
PlayDuration string `bson:"PlayDuration" json:"PlayDuration"`
Suitable string `bson:"Suitable" json:"Suitable"` //适合人群
Content string `bson:"Content" json:"Content"`
Distance string `bson:"Distance" json:"Distance"` // 距离
Annotations []string `bson:"Annotations" json:"Annotations"` //需要点亮的设施id
}
type SComplaint struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
Type string `bson:"Type" json:"Type"`
ScenicId string `bson:"ScenicId" json:"ScenicId"` // 景区id
Mobile string `bson:"Mobile" json:"Mobile"`
FullName string `bson:"FullName" json:"FullName"`
Sex string `bson:"Sex" json:"Sex"`
Content string `bson:"Content" json:"Content"`
Image []string `bson:"Image" json:"Image"`
State string `bson:"State" json:"State"` // 处理状态(未处理,已处理)
DateTime int64 `bson:"DateTime" json:"DateTime"` //时间戳
}
type SInvestigation struct {
UserId string `bson:"UserId" json:"UserId"` // 用户ID
Mobile string `bson:"Mobile" json:"Mobile"` //手机号
Data interface{} `bson:"Data" json:"Data"`
}
type SMember struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
UserType string `bson:"UserType" json:"UserType" valid:"required,in(root|operator|visitor)"` // "root" or "operator" or "visitor"
ScenicId string `bson:"ScenicId,omitempty" json:"ScenicId,omitempty"`
Username string `bson:"Username,omitempty" json:"Username,omitempty"`
Password string `bson:"Password,omitempty" json:"Password,omitempty"`
Birthday string `bson:"Birthday,omitempty" json:"Birthday"`
FullName string `bson:"FullName,omitempty" json:"FullName"`
Mobile string `bson:"Mobile,omitempty" json:"Mobile"`
Openid string `bson:"Openid,omitempty" json:"Openid"`
Token string `bson:"Token,omitempty" json:"Token,omitempty"`
Sex string `bson:"Sex,omitempty" json:"Sex"`
Device *SDevice `bson:"Device,omitempty" json:"Device"` //设备信息
Auth []string `bson:"Auth,omitempty" json:"Auth"` //权限信息
Remarks string `bson:"Remarks,omitempty" json:"Remarks"` //说明
CreateTime int64 `bson:"CreateTime,omitempty" json:"CreateTime"` //创建时间
}
type STag struct {
ScenicId string `bson:"ScenicId" json:"ScenicId"`
Type string `bson:"Type" json:"Type"`
Name string `bson:"Name" json:"Name"`
}
type SPicture struct {
Src string `bson:"Src" json:"Src"` // 地址,也可能是视频地址
Link string `bson:"Link" json:"Link"` // 链接地址
}
type SVideo struct {
Src string `bson:"Src" json:"Src"` // 地址,也可能是视频地址
Link string `bson:"Link" json:"Link"` // 链接地址
VideoPicture string `bson:"VideoPicture" json:"VideoPicture"` // 用于视频的首桢图
Title string `bson:"Title" json:"Title"` // 标题
}
type SSize struct {
Width int64 `bson:"Width" json:"Width"`
Height int64 `bson:"Height" json:"Height"`
}
type SRange struct {
Min float64 `bson:"Min" json:"Min"`
Max float64 `bson:"Max" json:"Max"`
}
type SSysAds struct {
Id *primitive.ObjectID `bson:"_id" json:"Id" valid:"required"`
Site string `bson:"Site" json:"Site" valid:"required"` // 位置
Size SSize `bson:"Size" json:"Size" valid:"required"` // 尺寸
Type string `bson:"Type" json:"Type" valid:"required,in(轮播|单图|单视频)"` // 类型
Picture []SPicture `bson:"Picture" json:"Picture"` // 图片
Video []SVideo `bson:"Video" json:"Video"` // 视频
}