82 lines
2.1 KiB
Go
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
|
|
}
|