Files
mir-godot/server/framework/interface/account/account.go
makeyangcom a0076078c8 main
2024-03-16 11:52:44 +08:00

82 lines
2.1 KiB
Go

/**
#*****************************************************************************
# @file account.go
# @author MakerYang(https://www.makeryang.com)
# @statement 免费课程配套开源项目,任何形式收费均为盗版
#*****************************************************************************
*/
package AccountInterface
import (
"Game/framework/database"
"Game/framework/database/game_account_data"
"Game/framework/utils"
"encoding/json"
"fmt"
"github.com/gin-gonic/gin"
"io/ioutil"
)
type requestRegister struct {
Account string `json:"account"`
Password string `json:"password"`
Name string `json:"name"`
Number string `json:"number"`
QuestionA string `json:"question_a"`
AnswerA string `json:"answer_a"`
QuestionB string `json:"question_b"`
AnswerB string `json:"answer_b"`
}
type responseRegister struct {
Token string `json:"token"`
}
func Register(c *gin.Context) {
returnData := responseRegister{}
jsonData := requestRegister{}
requestJson, _ := ioutil.ReadAll(c.Request.Body)
err := json.Unmarshal(requestJson, &jsonData)
if err != nil {
Utils.Error(c, returnData)
return
}
accountDatabase := Database.New(GameAccountData.TableName)
accountData := GameAccountData.Data{}
where := fmt.Sprintf("account_account = %q", jsonData.Account)
err = accountDatabase.GetData(&accountData, where, "")
if err == nil && accountData.AccountId > 0 {
Utils.Warning(c, 10001, "邮箱已经被注册", returnData)
return
}
setData := &GameAccountData.Data{}
setData.AccountAccount = jsonData.Account
setData.AccountPassword = Utils.MD5Hash(jsonData.Password)
setData.AccountName = jsonData.Name
setData.AccountNumber = jsonData.Number
setData.AccountQuestionA = jsonData.QuestionA
setData.AccountAnswerA = jsonData.AnswerA
setData.AccountQuestionB = jsonData.QuestionB
setData.AccountAnswerB = jsonData.AnswerB
setData.AccountStatus = 2
err = accountDatabase.CreateData(setData)
if err != nil {
Utils.Error(c, accountData)
return
}
if setData.AccountId == 0 {
Utils.Error(c, accountData)
return
}
returnData.Token = Utils.EncodeId(128, setData.AccountId)
Utils.Success(c, returnData)
return
}