92 lines
2.0 KiB
Go
92 lines
2.0 KiB
Go
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,
|
|
})
|
|
}
|