This commit is contained in:
MakerYang
2024-08-06 18:30:21 +08:00
parent f363be1fc8
commit a902dd3de7
1870 changed files with 496402 additions and 6524 deletions

View File

@@ -0,0 +1,80 @@
/**
#*****************************************************************************
# @author MakerYang
# @site mir2.makeryang.com
#*****************************************************************************
*/
package Database
import (
"Service/framework/config"
"fmt"
"github.com/gookit/color"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
"log"
"time"
)
var Get *gorm.DB
type DefaultField struct {
CreateAt int `gorm:"Column:create_at" json:"create_at"`
UpdateAt int `gorm:"Column:update_at" json:"update_at"`
DeleteAt int `gorm:"Column:delete_at" json:"delete_at"`
}
func Init() {
var err error
Get, err = gorm.Open(Config.Get.Database.Type, fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", Config.Get.Database.User, Config.Get.Database.Password, Config.Get.Database.Host, Config.Get.Database.Name))
if err != nil {
log.Println("[database]", color.Red.Text(err.Error()))
}
if Config.Get.Service.Mode == "release" {
Get.LogMode(false)
} else {
Get.LogMode(true)
}
gorm.DefaultTableNameHandler = func(db *gorm.DB, defaultTableName string) string {
return defaultTableName
}
Get.SingularTable(true)
Get.Callback().Create().Replace("gorm:update_time_stamp", func(scope *gorm.Scope) {
if !scope.HasError() {
nowTime := time.Now().Unix()
if createTimeField, ok := scope.FieldByName("CreateAt"); ok {
if createTimeField.IsBlank {
err := createTimeField.Set(nowTime)
if err != nil {
}
}
}
if modifyTimeField, ok := scope.FieldByName("UpdateAt"); ok {
if modifyTimeField.IsBlank {
err := modifyTimeField.Set(nowTime)
if err != nil {
}
}
}
}
})
Get.Callback().Update().Replace("gorm:update_time_stamp", func(scope *gorm.Scope) {
if _, ok := scope.Get("gorm:update_column"); !ok {
_ = scope.SetColumn("UpdateAt", time.Now().Unix())
}
})
Get.DB().SetMaxIdleConns(1000)
Get.DB().SetMaxOpenConns(10000)
Get.DB().SetConnMaxLifetime(time.Second * 45)
}

View File

@@ -0,0 +1,45 @@
/**
#*****************************************************************************
# @author MakerYang
# @site mir2.makeryang.com
#*****************************************************************************
*/
package GameAccountData
import (
"Service/framework/database"
"Service/framework/utils"
)
var TableName = "game_account_data"
type Data struct {
AccountId int `gorm:"primary_key;AUTO_INCREMENT;unique_index;not null;column:account_id"`
AccountMail string `gorm:"column:account_mail"`
AccountPassword string `gorm:"column:account_password"`
AccountName string `gorm:"column:account_name"`
AccountNumber string `gorm:"column:account_number"`
AccountQuestionA string `gorm:"column:account_question_a"`
AccountQuestionB string `gorm:"column:account_question_b"`
AccountAnswerA string `gorm:"column:account_answer_a"`
AccountAnswerB string `gorm:"column:account_answer_b"`
AccountGroup int `gorm:"column:account_group"`
AccountStatus int `gorm:"column:account_status"`
Database.DefaultField
}
type Return struct {
Token string `json:"token"`
}
func ReturnData(dataStruct *Data) Return {
data := Return{}
if dataStruct.AccountId > 0 {
data.Token = Utils.EncodeId(32, dataStruct.AccountId)
}
return data
}

View File

@@ -0,0 +1,36 @@
package GameCodeData
import (
"Service/framework/database"
"Service/framework/utils"
)
var TableName = "game_code_data"
type Data struct {
CodeId int `gorm:"primary_key;AUTO_INCREMENT;unique_index;not null;column:code_id" json:"code_id"`
CodePhone string `gorm:"column:code_phone" json:"code_phone"`
CodeMail string `gorm:"column:code_mail" json:"code_mail"`
CodeContent string `gorm:"column:code_content" json:"code_content"`
Database.DefaultField
}
type ReturnData struct {
Token string `json:"token"`
CodeId int `json:"code_id"`
CodePhone string `json:"code_phone"`
CodeMail string `json:"code_mail"`
CodeContent string `json:"code_content"`
}
func FormatData(dataStruct *Data) ReturnData {
data := ReturnData{}
if dataStruct.CodeId > 0 {
data.Token = Utils.EncodeId(32, dataStruct.CodeId, 1)
data.CodeContent = dataStruct.CodeContent
}
return data
}

View File

@@ -0,0 +1,52 @@
/**
#*****************************************************************************
# @author MakerYang
# @site mir2.makeryang.com
#*****************************************************************************
*/
package GameLevelData
import (
"Service/framework/database"
)
var TableName = "game_level_data"
type Data struct {
LevelId int `gorm:"primary_key;AUTO_INCREMENT;unique_index;not null;column:level_id"`
LevelServerId int `gorm:"column:level_server_id"`
LevelCareer string `gorm:"column:level_career"`
LevelName int `gorm:"column:level_name"`
LevelMin int `gorm:"column:level_min"`
LevelMax int `gorm:"column:level_max"`
LevelLifeValue int `gorm:"column:level_life_value"`
LevelMagicValue int `gorm:"column:level_magic_value"`
LevelStatus int `gorm:"column:level_status"`
Database.DefaultField
}
type Return struct {
LevelCareer string `json:"level_career"`
LevelName int `json:"level_name"`
LevelMin int `json:"level_min"`
LevelMax int `json:"level_max"`
LevelLifeValue int `json:"level_life_value"`
LevelMagicValue int `json:"level_magic_value"`
}
func ReturnData(dataStruct *Data) Return {
data := Return{}
if dataStruct.LevelId > 0 {
data.LevelCareer = dataStruct.LevelCareer
data.LevelName = dataStruct.LevelName
data.LevelMin = dataStruct.LevelMin
data.LevelMax = dataStruct.LevelMax
data.LevelLifeValue = dataStruct.LevelLifeValue
data.LevelMagicValue = dataStruct.LevelMagicValue
}
return data
}

View File

@@ -0,0 +1,46 @@
/**
#*****************************************************************************
# @author MakerYang
# @site mir2.makeryang.com
#*****************************************************************************
*/
package GameMapData
import (
"Service/framework/database"
)
var TableName = "game_map_data"
type Data struct {
MapId int `gorm:"primary_key;AUTO_INCREMENT;unique_index;not null;column:map_id"`
MapServerId int `gorm:"column:map_server_id"`
MapNumber string `gorm:"column:map_number"`
MapName string `gorm:"column:map_name"`
MapDefaultX int `gorm:"column:map_default_x"`
MapDefaultY int `gorm:"column:map_default_y"`
MapStatus int `gorm:"column:map_status"`
Database.DefaultField
}
type Return struct {
MapNumber string `json:"map_number"`
MapName string `json:"map_name"`
MapDefaultX int `json:"map_default_x"`
MapDefaultY int `json:"map_default_y"`
}
func ReturnData(dataStruct *Data) Return {
data := Return{}
if dataStruct.MapId > 0 {
data.MapNumber = dataStruct.MapNumber
data.MapName = dataStruct.MapName
data.MapDefaultX = dataStruct.MapDefaultX
data.MapDefaultY = dataStruct.MapDefaultY
}
return data
}

View File

@@ -0,0 +1,102 @@
/**
#*****************************************************************************
# @author MakerYang
# @site mir2.makeryang.com
#*****************************************************************************
*/
package GamePlayerData
import (
"Service/framework/database"
"Service/framework/utils"
)
var TableName = "game_player_data"
type Data struct {
PlayerId int `gorm:"primary_key;AUTO_INCREMENT;unique_index;not null;column:player_id"`
PlayerAccountId int `gorm:"column:player_account_id"`
PlayerServerId int `gorm:"column:player_server_id"`
PlayerNickname string `gorm:"column:player_nickname"`
PlayerCareer string `gorm:"column:player_career"`
PlayerGender string `gorm:"column:player_gender"`
PlayerBalance int `gorm:"column:player_balance"`
PlayerIntegral int `gorm:"column:player_integral"`
PlayerAngle int `gorm:"column:player_angle"`
PlayerMap string `gorm:"column:player_map"`
PlayerMapX int `gorm:"column:player_map_x"`
PlayerMapY int `gorm:"column:player_map_y"`
PlayerAssetLife int `gorm:"column:player_asset_life"`
PlayerAssetMagic int `gorm:"column:player_asset_magic"`
PlayerAssetExperience int `gorm:"column:player_asset_experience"`
PlayerBodyClothe string `gorm:"column:player_body_clothe"`
PlayerBodyWeapon string `gorm:"column:player_body_weapon"`
PlayerBodyWing string `gorm:"column:player_body_wing"`
PlayerClientId int `gorm:"column:player_client_id"`
PlayerGroupId int `gorm:"column:player_group_id"`
PlayerStatus int `gorm:"column:player_status"`
Database.DefaultField
}
type Return struct {
Token string `json:"token"`
PlayerNickname string `json:"player_nickname"`
PlayerCareer string `json:"player_career"`
PlayerGender string `json:"player_gender"`
PlayerBalance string `json:"player_balance"`
PlayerIntegral string `json:"player_integral"`
PlayerAngle int `json:"player_angle"`
PlayerMap string `json:"player_map"`
PlayerMapName string `json:"player_map_name"`
PlayerMapX int `json:"player_map_x"`
PlayerMapY int `json:"player_map_y"`
PlayerAssetLevel int `json:"player_asset_level"`
PlayerAssetLife int `json:"player_asset_life"`
PlayerAssetLifeMax int `json:"player_asset_life_max"`
PlayerAssetMagic int `json:"player_asset_magic"`
PlayerAssetMagicMax int `json:"player_asset_magic_max"`
PlayerAssetWeight int `json:"player_asset_weight"`
PlayerAssetWeightMax int `json:"player_asset_weight_max"`
PlayerAssetExperience int `json:"player_asset_experience"`
PlayerAssetExperienceMax int `json:"player_asset_experience_max"`
PlayerBodyClothe string `json:"player_body_clothe"`
PlayerBodyWeapon string `json:"player_body_weapon"`
PlayerBodyWing string `json:"player_body_wing"`
PlayerClientId int `json:"player_client_id"`
PlayerGroupId int `json:"player_group_id"`
}
func ReturnData(dataStruct *Data) Return {
data := Return{}
if dataStruct.PlayerId > 0 {
data.Token = Utils.EncodeId(32, dataStruct.PlayerId, dataStruct.PlayerAccountId, dataStruct.PlayerServerId)
data.PlayerNickname = dataStruct.PlayerNickname
data.PlayerCareer = dataStruct.PlayerCareer
data.PlayerGender = dataStruct.PlayerGender
data.PlayerBalance = Utils.FormatCurrency(dataStruct.PlayerBalance)
data.PlayerIntegral = Utils.FormatCurrency(dataStruct.PlayerIntegral)
data.PlayerAngle = dataStruct.PlayerAngle
data.PlayerMap = dataStruct.PlayerMap
data.PlayerMapX = dataStruct.PlayerMapX
data.PlayerMapY = dataStruct.PlayerMapY
data.PlayerAssetLevel = 0
data.PlayerAssetLife = dataStruct.PlayerAssetLife
data.PlayerAssetLifeMax = 0
data.PlayerAssetMagic = dataStruct.PlayerAssetMagic
data.PlayerAssetMagicMax = 0
data.PlayerAssetWeight = 5
data.PlayerAssetWeightMax = 50
data.PlayerAssetExperience = dataStruct.PlayerAssetExperience
data.PlayerAssetExperienceMax = 0
data.PlayerBodyClothe = dataStruct.PlayerBodyClothe
data.PlayerBodyWeapon = dataStruct.PlayerBodyWeapon
data.PlayerBodyWing = dataStruct.PlayerBodyWing
data.PlayerClientId = dataStruct.PlayerClientId
data.PlayerGroupId = dataStruct.PlayerGroupId
}
return data
}

View File

@@ -0,0 +1,39 @@
/**
#*****************************************************************************
# @author MakerYang
# @site mir2.makeryang.com
#*****************************************************************************
*/
package GameServerData
import (
"Service/framework/database"
"Service/framework/utils"
)
var TableName = "game_server_data"
type Data struct {
ServerId int `gorm:"primary_key;AUTO_INCREMENT;unique_index;not null;column:server_id"`
ServerName string `gorm:"column:server_name"`
ServerStatus int `gorm:"column:server_status"`
Database.DefaultField
}
type Return struct {
Token string `json:"token"`
ServerName string `json:"server_name"`
}
func ReturnData(dataStruct *Data) Return {
data := Return{}
if dataStruct.ServerId > 0 {
data.Token = Utils.EncodeId(32, dataStruct.ServerId)
data.ServerName = dataStruct.ServerName
}
return data
}

View File

@@ -0,0 +1,65 @@
/**
#*****************************************************************************
# @author MakerYang
# @site mir2.makeryang.com
#*****************************************************************************
*/
package Database
import (
"github.com/jinzhu/gorm"
"time"
)
type Base struct {
TableName string
}
func New(table string) *Base {
return &Base{
TableName: table,
}
}
func (base *Base) CreateData(data interface{}) error {
err := Get.Table(base.TableName).Create(data).Error
return err
}
func (base *Base) UpdateData(query interface{}, data map[string]interface{}) error {
data["update_at"] = time.Now().Unix()
err := Get.Table(base.TableName).Where(query).Updates(data).Error
return err
}
func (base *Base) ExprData(query interface{}, field string, operation string, data int) error {
err := Get.Table(base.TableName).Where(query).Update(field, gorm.Expr(field+" "+operation+" ?", data)).Error
return err
}
func (base *Base) GetData(dataStruct interface{}, query interface{}, order string) error {
err := Get.Table(base.TableName).Where(query).Order(order).First(dataStruct).Error
return err
}
func (base *Base) ListData(dataStruct interface{}, query interface{}, order string, limit int) error {
err := Get.Table(base.TableName).Where(query).Order(order).Limit(limit).Find(dataStruct).Error
return err
}
func (base *Base) PageData(dataStruct interface{}, query interface{}, order string, limit int, page int) error {
err := Get.Table(base.TableName).Where(query).Order(order).Limit(limit).Offset(page * limit).Find(dataStruct).Error
return err
}
func (base *Base) CountData(query interface{}) (int, error) {
count := 0
err := Get.Table(base.TableName).Where(query).Count(&count).Error
return count, err
}
func (base *Base) DeleteData(dataStruct interface{}, query interface{}) error {
err := Get.Table(base.TableName).Where(query).Delete(dataStruct).Error
return err
}