package controller import ( "backend/model" "github.com/gin-gonic/gin" ) func Login(c *gin.Context) { type LoginRequest struct { Username string `json:"username" binding:"required"` Password string `json:"password" binding:"required"` } var req LoginRequest if err := c.ShouldBindJSON(&req); err != nil { failed(c, "Invalid input: "+err.Error()) } admin := model.Admin{ Username: req.Username, Password: req.Password, } if admin.Username == "" || admin.Password == "" { failed(c, "Username and password are required") return } adminInfo, err := admin.Login() if err != nil { failed(c, "Login failed: "+err.Error()) return } // 这里可以添加逻辑来验证用户名和密码 success(c, map[string]interface{}{ "accessToken": adminInfo.Token, }) } func Codes(c *gin.Context) { c.JSON(200, gin.H{ "code": 0, "data": []string{"AC_100100", "AC_100110", "AC_100120", "AC_100010"}, "message": "Success", }) } func LoginCode(c *gin.Context) { type LoginCodeRequest struct { Phone string `json:"phoneNumber" binding:"required"` Code string `json:"code" binding:"required"` } var req LoginCodeRequest if err := c.ShouldBindJSON(&req); err != nil { failed(c, "Invalid input: "+err.Error()) return } if req.Code == "" { failed(c, "Code is required") return } admin := model.Admin{} adminInfo, err := admin.LoginByCode(req.Phone, req.Code) if err != nil { failed(c, "Login failed: "+err.Error()) return } success(c, map[string]interface{}{ "accessToken": adminInfo.Token, }) } func PhoneCode(c *gin.Context) { type PhoneCodeRequest struct { Phone string `json:"phoneNumber" binding:"required"` } var req PhoneCodeRequest if err := c.ShouldBindJSON(&req); err != nil { failed(c, "Invalid input: "+err.Error()) return } if req.Phone == "" { failed(c, "Phone number is required") return } err := model.SendPhoneCode(req.Phone) if err != nil { failed(c, "Failed to send phone code: "+err.Error()) return } success(c, map[string]interface{}{ "code": 1, }) }