first commit

This commit is contained in:
ytc1012
2025-11-18 18:08:48 +08:00
commit de90ad79ea
162 changed files with 28098 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
package logic
import (
"fmt"
"github.com/gin-gonic/gin"
"math/rand"
"slgserver/constant"
"slgserver/db"
myhttp "slgserver/server/httpserver"
"slgserver/server/loginserver/model"
"slgserver/util"
"time"
)
type UserLogic struct{}
var DefaultUser = UserLogic{}
func (self UserLogic) CreateUser(ctx *gin.Context) error {
account := ctx.Query("username")
pwd := ctx.Query("password")
hardware := ctx.Query("hardware")
if len(account) > 0 && len(pwd) > 0 {
if self.UserExists("username", account) {
return myhttp.New("账号已经存在", constant.UserExist)
}
passcode := fmt.Sprintf("%x", rand.Int31())
user := &model.User{
Username: account,
Passcode: passcode,
Passwd: util.Password(pwd, passcode),
Hardware: hardware,
Ctime: time.Now(),
Mtime: time.Now()}
if _, err := db.MasterDB.Insert(user); err != nil {
return myhttp.New("数据库出错", constant.DBError)
} else{
return nil
}
}else{
return myhttp.New("用户名或密码是空", constant.InvalidParam)
}
}
func (self UserLogic) ChangePassword(ctx *gin.Context) error {
account := ctx.Query("username")
pwd := ctx.Query("password")
newpwd := ctx.Query("newpassword")
user := &model.User{}
if len(account) > 0 && len(pwd) > 0 && len(newpwd) > 0{
if _, err := db.MasterDB.Where("username=?", account).Get(user); err != nil {
return myhttp.New("数据库出错", constant.DBError)
}else{
if util.Password(pwd, user.Passcode) == user.Passwd {
passcode := fmt.Sprintf("%x", rand.Int31())
changeData := map[string]interface{}{
"passwd": util.Password(newpwd, passcode),
"passcode": passcode,
"Mtime": time.Now(),
}
if _, err := db.MasterDB.Table(user).Where("username=?", account).Update(changeData); err !=nil {
return myhttp.New("数据库出错", constant.DBError)
}else{
return nil
}
}else{
return myhttp.New("原密码错误", constant.PwdIncorrect)
}
}
}else{
return myhttp.New("用户名或密码是空", constant.InvalidParam)
}
}
func (UserLogic) UserExists(field, val string) bool {
userLogin := &model.User{}
_, err := db.MasterDB.Where(field+"=?", val).Get(userLogin)
if err != nil || userLogin.UId == 0 {
return false
}
return true
}