Blame view

API/Operator.go 5.13 KB
8a882f01   aarongao   1.0
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
package Api

import (
	"encoding/json"
	"github.com/aarongao/tools"
	"github.com/gin-gonic/gin"
	"go.mongodb.org/mongo-driver/bson"
	"go.mongodb.org/mongo-driver/bson/primitive"
	"letu/DB"
	"letu/Lib/Auth"
	"letu/Lib/JWT"
	"time"
)

// @Title 登录
// @Description 操作员管理 - 操作员登录
// @Accept  json
// @Produce  json
// @Param   Username     aaron    string     true        "用户名"
// @Param   Password     123    string     true        "密码"
// @Success 200 {object} tools.ResponseSeccess "{"errcode":0,"result":{"Id":"5e09c64c1c09c6f0f7ca2fa9","Token":"640bf934e425aba5d3c90998b2641f2f0ca07261d334d9615d1cd4790b5f34e7"}} 调用其它需要登陆的接口时携带token,有过期时间"
// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}"
// @Router /LoginOperator? [post]
func LoginOperator(c *gin.Context) {
	c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin"))
	c.Header("Access-Control-Allow-Credentials", "true")

	selected := bson.M{}
	var User *DB.SMember
	if c.PostForm("Username") != "" && c.PostForm("Password") != "" {
		selected["Username"] = c.PostForm("Username")
		selected["Password"] = c.PostForm("Password")
		DB.CMember.FindOne(tools.GetContext(), selected).Decode(&User)

		if User == nil {
			c.JSON(200, tools.ResponseError{
				1,
				"用户不存在",
			})
			return
		}

	} else {
		c.JSON(200, tools.ResponseError{
			1,
			"不能为空",
		})
		return
	}

	// 生成token
	dd, _ := time.ParseDuration("8760h")
	User.Token, _ = JWT.CreateToken(User, time.Now().Add(dd).Unix())
	c.JSON(200, tools.ResponseSeccess{
		0,
		User,
	})

}

// @Title 操作员管理
// @Description 操作员管理 - 修改用户信息
// @Accept  json
// @Produce  json
// @Param   id     aaron    string     true        "用户id""
// @Param   ScenicId     5e0d504e24e03431008b4567    string     true        "景区id"
// @Param   Token     wgergejfwe    string     true        "用户token"
// @Param   Username     aarongao    string     true        "用户名"
// @Param   Remarks     18616619599    string     true        "备注"
// @Param   Password     12345    string     true        "密码"
// @Success 200 {object} tools.ResponseSeccess "{"errcode":0,"result":"ok"}"
// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}"
// @Router /UpdateOperator? [post]
func UpdateOperator(c *gin.Context) {
	c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin"))
	c.Header("Access-Control-Allow-Credentials", "true")

	_user, _ := c.Get("UserInfo")
	user := _user.(*DB.SMember)
	err := Auth.CheckScenicAuth(c.PostForm("ScenicId"), user)
	if err != nil {
		c.JSON(200, tools.ResponseError{
			401,
			"没有权限",
		})
		return
	}
f56bf95d   aarongao   ..
88
89
90
91
92
93
94
	if c.PostForm("Username") == "" || c.PostForm("Password") == "" {
		c.JSON(200, tools.ResponseError{
			1,
			"用户名密码不能为空",
		})
		return
	}
8a882f01   aarongao   1.0
95
96
97
98

	var _auth []string
	json.Unmarshal([]byte(c.PostForm("Auth")), &_auth)

5bd8aa90   aarongao   V1.0
99
100
	objID, errForObjectID := primitive.ObjectIDFromHex(c.PostForm("id"))
	if errForObjectID == nil {
8a882f01   aarongao   1.0
101
102
103
104
105
106
107

		_, err = DB.CMember.UpdateOne(tools.GetContext(),
			bson.M{"_id": objID},
			bson.M{"$set": bson.M{
				"Auth":     _auth,
				"Username": c.PostForm("Username"),
				"Password": c.PostForm("Password"),
5bd8aa90   aarongao   V1.0
108
				"Remarks":  c.PostForm("Remarks"),
8a882f01   aarongao   1.0
109
110
111
112
113
114
			}},
		)
	} else {

		objectID := primitive.NewObjectID()
		User := &DB.SMember{
5bd8aa90   aarongao   V1.0
115
116
117
118
119
120
121
			Id:       &objectID,
			UserType: "operator",
			ScenicId: c.PostForm("ScenicId"),
			Username: c.PostForm("Username"),
			Password: c.PostForm("Password"),
			Auth:     _auth,
			Remarks:  c.PostForm("Remarks"),
483ade81   aarongao   v1.1
122
			CreateTime:time.Now().Unix(),
8a882f01   aarongao   1.0
123
124
		}

5bd8aa90   aarongao   V1.0
125
126
		_, err := DB.CMember.InsertOne(tools.GetContext(), User)
		if err != nil {
8a882f01   aarongao   1.0
127

5bd8aa90   aarongao   V1.0
128
129
130
131
132
133
			c.JSON(200, tools.ResponseError{
				1,
				"用户名重复",
			})
			return
		}
8a882f01   aarongao   1.0
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

	}

	if err == nil {
		c.JSON(200, tools.ResponseSeccess{
			0,
			"ok",
		})
	} else {
		c.JSON(200, tools.ResponseError{
			1,
			err.Error(),
		})
	}

}

// @Title 操作员管理
// @Description 操作员管理 - 所有操作员
// @Accept  json
// @Produce  json
// @Param   ScenicId     5dfb03070a9ac17ac7a82054    string     true        "景区id"
// @Param   Token     5dfb03070a9ac17ac7a82054    string     true        "用户token"
// @Success 200 {object} tools.ResponseSeccess ""
// @Failure 500 {object} tools.ResponseError "{"errcode":1,"errmsg":"错误原因"}"
// @Router /AllOperator? [get]
func AllOperator(c *gin.Context) {
	c.Header("Access-Control-Allow-Origin", c.Request.Header.Get("Origin"))
	c.Header("Access-Control-Allow-Credentials", "true")
	_user, _ := c.Get("UserInfo")
	user := _user.(*DB.SMember)
	err := Auth.CheckScenicAuth(c.Query("ScenicId"), user)
	if err != nil {
		c.JSON(200, tools.ResponseError{
			401,
			"没有权限",
		})
		return
	}

	var aMember []*DB.SMember
	cur, err := DB.CMember.Find(tools.GetContext(), bson.M{"ScenicId": c.Query("ScenicId"), "UserType": "operator"})
	defer cur.Close(tools.GetContext())
	if err == nil {
		for cur.Next(tools.GetContext()) {
			var e *DB.SMember
			cur.Decode(&e)
			aMember = append(aMember, e)
		}
	}

	if aMember == nil {
		aMember = []*DB.SMember{}
	}
	c.JSON(200, tools.ResponseSeccess{
		0,
		aMember,
	})
}