feat: 积分质押功能
This commit is contained in:
57
internal/model/mg_servers_model.go
Executable file
57
internal/model/mg_servers_model.go
Executable file
@@ -0,0 +1,57 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ MgServersModel = (*customMgServersModel)(nil)
|
||||
|
||||
type (
|
||||
// MgServersModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customMgServersModel.
|
||||
MgServersModel interface {
|
||||
mgServersModel
|
||||
withSession(session sqlx.Session) MgServersModel
|
||||
GetGameServer(ctx context.Context, agentId, serverId int64) (*GameServer, error)
|
||||
}
|
||||
|
||||
customMgServersModel struct {
|
||||
*defaultMgServersModel
|
||||
}
|
||||
|
||||
GameServer struct {
|
||||
AgentID int `db:"agent_id"` // 代理ID
|
||||
ServerID int `db:"server_id"` // 服务器ID
|
||||
WebPort int `db:"web_port"` // web访问端口
|
||||
ServerIP string `db:"server_ip"` // 内网IP
|
||||
PublicServerIP string `db:"public_server_ip"` // 公网IP
|
||||
}
|
||||
)
|
||||
|
||||
func (m *customMgServersModel) GetGameServer(ctx context.Context, agentId, serverId int64) (*GameServer, error) {
|
||||
query := fmt.Sprintf("SELECT g.agent_id, g.server_id, g.web_port, s.ip AS server_ip, s.public_ip AS public_server_ip FROM ms_game_server AS g LEFT JOIN mg_servers AS s ON s.id = g.server_server_id WHERE g.server_id = ? AND g.agent_id = ?")
|
||||
var result GameServer
|
||||
err := m.conn.QueryRowCtx(ctx, &result, query, serverId, agentId)
|
||||
switch {
|
||||
case err == nil:
|
||||
return &result, nil
|
||||
case errors.Is(err, sqlx.ErrNotFound):
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
// NewMgServersModel returns a model for the database table.
|
||||
func NewMgServersModel(conn sqlx.SqlConn) MgServersModel {
|
||||
return &customMgServersModel{
|
||||
defaultMgServersModel: newMgServersModel(conn),
|
||||
}
|
||||
}
|
||||
|
||||
func (m *customMgServersModel) withSession(session sqlx.Session) MgServersModel {
|
||||
return NewMgServersModel(sqlx.NewSqlConnFromSession(session))
|
||||
}
|
||||
92
internal/model/mg_servers_model_gen.go
Executable file
92
internal/model/mg_servers_model_gen.go
Executable file
@@ -0,0 +1,92 @@
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// versions:
|
||||
// goctl version: 1.7.6
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
mgServersFieldNames = builder.RawFieldNames(&MgServers{})
|
||||
mgServersRows = strings.Join(mgServersFieldNames, ",")
|
||||
mgServersRowsExpectAutoSet = strings.Join(stringx.Remove(mgServersFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
mgServersRowsWithPlaceHolder = strings.Join(stringx.Remove(mgServersFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
)
|
||||
|
||||
type (
|
||||
mgServersModel interface {
|
||||
Insert(ctx context.Context, data *MgServers) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id int) (*MgServers, error)
|
||||
Update(ctx context.Context, data *MgServers) error
|
||||
Delete(ctx context.Context, id int) error
|
||||
}
|
||||
|
||||
defaultMgServersModel struct {
|
||||
conn sqlx.SqlConn
|
||||
table string
|
||||
}
|
||||
|
||||
MgServers struct {
|
||||
Id int `db:"id"`
|
||||
RegionId int `db:"region_id"` // 区域ID
|
||||
Ip sql.NullString `db:"ip"` // 内网IP
|
||||
PublicIp sql.NullString `db:"public_ip"` // 公网IP
|
||||
Domain sql.NullString `db:"domain"` // 域名
|
||||
ServerCategory sql.NullInt64 `db:"server_category"` // 服务器分类 1:游戏节点服, 2:游戏业务数据库服, 3:游戏日志数据库服,
|
||||
ServerType sql.NullInt64 `db:"server_type"` // 服务器类型 1:本地开发;3:Android服;4:iOS服;
|
||||
AdminId sql.NullInt64 `db:"admin_id"`
|
||||
AddTime sql.NullTime `db:"add_time"`
|
||||
}
|
||||
)
|
||||
|
||||
func newMgServersModel(conn sqlx.SqlConn) *defaultMgServersModel {
|
||||
return &defaultMgServersModel{
|
||||
conn: conn,
|
||||
table: "`mg_servers`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultMgServersModel) Delete(ctx context.Context, id int) error {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
_, err := m.conn.ExecCtx(ctx, query, id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultMgServersModel) FindOne(ctx context.Context, id int) (*MgServers, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", mgServersRows, m.table)
|
||||
var resp MgServers
|
||||
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlx.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultMgServersModel) Insert(ctx context.Context, data *MgServers) (sql.Result, error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?)", m.table, mgServersRowsExpectAutoSet)
|
||||
ret, err := m.conn.ExecCtx(ctx, query, data.RegionId, data.Ip, data.PublicIp, data.Domain, data.ServerCategory, data.ServerType, data.AdminId, data.AddTime)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultMgServersModel) Update(ctx context.Context, data *MgServers) error {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, mgServersRowsWithPlaceHolder)
|
||||
_, err := m.conn.ExecCtx(ctx, query, data.RegionId, data.Ip, data.PublicIp, data.Domain, data.ServerCategory, data.ServerType, data.AdminId, data.AddTime, data.Id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultMgServersModel) tableName() string {
|
||||
return m.table
|
||||
}
|
||||
29
internal/model/ms_game_server_model.go
Executable file
29
internal/model/ms_game_server_model.go
Executable file
@@ -0,0 +1,29 @@
|
||||
package model
|
||||
|
||||
import "github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
|
||||
var _ MsGameServerModel = (*customMsGameServerModel)(nil)
|
||||
|
||||
type (
|
||||
// MsGameServerModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customMsGameServerModel.
|
||||
MsGameServerModel interface {
|
||||
msGameServerModel
|
||||
withSession(session sqlx.Session) MsGameServerModel
|
||||
}
|
||||
|
||||
customMsGameServerModel struct {
|
||||
*defaultMsGameServerModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewMsGameServerModel returns a model for the database table.
|
||||
func NewMsGameServerModel(conn sqlx.SqlConn) MsGameServerModel {
|
||||
return &customMsGameServerModel{
|
||||
defaultMsGameServerModel: newMsGameServerModel(conn),
|
||||
}
|
||||
}
|
||||
|
||||
func (m *customMsGameServerModel) withSession(session sqlx.Session) MsGameServerModel {
|
||||
return NewMsGameServerModel(sqlx.NewSqlConnFromSession(session))
|
||||
}
|
||||
125
internal/model/ms_game_server_model_gen.go
Executable file
125
internal/model/ms_game_server_model_gen.go
Executable file
@@ -0,0 +1,125 @@
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// versions:
|
||||
// goctl version: 1.7.6
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
msGameServerFieldNames = builder.RawFieldNames(&MsGameServer{})
|
||||
msGameServerRows = strings.Join(msGameServerFieldNames, ",")
|
||||
msGameServerRowsExpectAutoSet = strings.Join(stringx.Remove(msGameServerFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
msGameServerRowsWithPlaceHolder = strings.Join(stringx.Remove(msGameServerFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
)
|
||||
|
||||
type (
|
||||
msGameServerModel interface {
|
||||
Insert(ctx context.Context, data *MsGameServer) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id int) (*MsGameServer, error)
|
||||
Update(ctx context.Context, data *MsGameServer) error
|
||||
Delete(ctx context.Context, id int) error
|
||||
}
|
||||
|
||||
defaultMsGameServerModel struct {
|
||||
conn sqlx.SqlConn
|
||||
table string
|
||||
}
|
||||
|
||||
MsGameServer struct {
|
||||
Id int `db:"id"` // ID
|
||||
AgentId int `db:"agent_id"` // 代理ID
|
||||
ServerId int `db:"server_id"` // 服务器ID
|
||||
AgentServer sql.NullInt64 `db:"agent_server"` // agent_id 和 server_id的组合(agent_id*10000000 + server_id)
|
||||
ServerName string `db:"server_name"` // 服名称
|
||||
ServerServerId sql.NullInt64 `db:"server_server_id"` // 游戏节点服的物理服务器ID
|
||||
MainNodes sql.NullString `db:"main_nodes"` // 主节点集合
|
||||
Gateways sql.NullString `db:"gateways"` // 网关节点集合
|
||||
GatewayPort int `db:"gateway_port"` // 游戏服端口
|
||||
GameCode string `db:"game_code"` // 游戏名
|
||||
AgentCode string `db:"agent_code"` // 代理
|
||||
Branch string `db:"branch"` // 分支
|
||||
ServerStartTime sql.NullTime `db:"server_start_time"` // 开服时间
|
||||
WebPort int `db:"web_port"` // web访问端口
|
||||
LogLevel int `db:"log_level"` // 日志等级
|
||||
LogDir string `db:"log_dir"` // 日志地址
|
||||
IsDebug string `db:"is_debug"` // debug是否开启,默认false
|
||||
BackgroundLogOpen string `db:"background_log_open"` // 是否记录后台日志,默认开启
|
||||
CenterId int `db:"center_id"` // 游戏中央服id
|
||||
CenterIp string `db:"center_ip"` // 游戏中央服ip
|
||||
ReplayId int `db:"replay_id"` // 重播日志服务器id
|
||||
CrossId int `db:"cross_id"` // 跨服服务器id
|
||||
DbServerId sql.NullInt64 `db:"db_server_id"` // 游戏业务数据库的物理服务器ID
|
||||
DbPort int `db:"db_port"` // 游戏数据库port
|
||||
RedisServerId sql.NullInt64 `db:"redis_server_id"` // redis的物理服务器ID
|
||||
RedisPort sql.NullInt64 `db:"redis_port"` // redis端口
|
||||
AdminServerId sql.NullInt64 `db:"admin_server_id"` // 游戏日志数据库的物理服务器ID
|
||||
AdminPort int `db:"admin_port"` // 日志数据库端口
|
||||
SdkVerifyUrl string `db:"sdk_verify_url"` // SDK验证地址
|
||||
SdkVerifySandboxUrl string `db:"sdk_verify_sandbox_url"` // SDK验证地址(沙盒)
|
||||
WebUrl string `db:"web_url"` // API接口域名
|
||||
EsUrl string `db:"es_url"` // ES接口地址
|
||||
IsMerge uint `db:"is_merge"` // 是否是合服后的新服
|
||||
MergeTime sql.NullString `db:"merge_time"` // 合服时间
|
||||
HbCheckClosed string `db:"hb_check_closed"` // 心跳包检查是否关闭,默认关闭
|
||||
ItemBanList sql.NullString `db:"item_ban_list"` // 禁用道具
|
||||
RegionIso string `db:"region_iso"` // 地区ISO
|
||||
BytedanceLogOpen string `db:"bytedance_log_open"` // 字节跳动元宝日志,默认开启
|
||||
IsFightLog string `db:"is_fight_log"` // 是否开启战斗日志,默认false
|
||||
CookieExtend string `db:"cookie_extend"` // 节点cookie
|
||||
IsOverseas int8 `db:"is_overseas"` // 0:国内 1:国外
|
||||
Status int8 `db:"status"` // 1:正常; 2:被合服了; 4:关服
|
||||
}
|
||||
)
|
||||
|
||||
func newMsGameServerModel(conn sqlx.SqlConn) *defaultMsGameServerModel {
|
||||
return &defaultMsGameServerModel{
|
||||
conn: conn,
|
||||
table: "`ms_game_server`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultMsGameServerModel) Delete(ctx context.Context, id int) error {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
_, err := m.conn.ExecCtx(ctx, query, id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultMsGameServerModel) FindOne(ctx context.Context, id int) (*MsGameServer, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", msGameServerRows, m.table)
|
||||
var resp MsGameServer
|
||||
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlx.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultMsGameServerModel) Insert(ctx context.Context, data *MsGameServer) (sql.Result, error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, msGameServerRowsExpectAutoSet)
|
||||
ret, err := m.conn.ExecCtx(ctx, query, data.AgentId, data.ServerId, data.AgentServer, data.ServerName, data.ServerServerId, data.MainNodes, data.Gateways, data.GatewayPort, data.GameCode, data.AgentCode, data.Branch, data.ServerStartTime, data.WebPort, data.LogLevel, data.LogDir, data.IsDebug, data.BackgroundLogOpen, data.CenterId, data.CenterIp, data.ReplayId, data.CrossId, data.DbServerId, data.DbPort, data.RedisServerId, data.RedisPort, data.AdminServerId, data.AdminPort, data.SdkVerifyUrl, data.SdkVerifySandboxUrl, data.WebUrl, data.EsUrl, data.IsMerge, data.MergeTime, data.HbCheckClosed, data.ItemBanList, data.RegionIso, data.BytedanceLogOpen, data.IsFightLog, data.CookieExtend, data.IsOverseas, data.Status)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultMsGameServerModel) Update(ctx context.Context, data *MsGameServer) error {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, msGameServerRowsWithPlaceHolder)
|
||||
_, err := m.conn.ExecCtx(ctx, query, data.AgentId, data.ServerId, data.AgentServer, data.ServerName, data.ServerServerId, data.MainNodes, data.Gateways, data.GatewayPort, data.GameCode, data.AgentCode, data.Branch, data.ServerStartTime, data.WebPort, data.LogLevel, data.LogDir, data.IsDebug, data.BackgroundLogOpen, data.CenterId, data.CenterIp, data.ReplayId, data.CrossId, data.DbServerId, data.DbPort, data.RedisServerId, data.RedisPort, data.AdminServerId, data.AdminPort, data.SdkVerifyUrl, data.SdkVerifySandboxUrl, data.WebUrl, data.EsUrl, data.IsMerge, data.MergeTime, data.HbCheckClosed, data.ItemBanList, data.RegionIso, data.BytedanceLogOpen, data.IsFightLog, data.CookieExtend, data.IsOverseas, data.Status, data.Id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultMsGameServerModel) tableName() string {
|
||||
return m.table
|
||||
}
|
||||
52
internal/model/ms_merge_servers_model.go
Executable file
52
internal/model/ms_merge_servers_model.go
Executable file
@@ -0,0 +1,52 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ MsMergeServersModel = (*customMsMergeServersModel)(nil)
|
||||
|
||||
type (
|
||||
// MsMergeServersModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customMsMergeServersModel.
|
||||
MsMergeServersModel interface {
|
||||
msMergeServersModel
|
||||
withSession(session sqlx.Session) MsMergeServersModel
|
||||
FinalServer(ctx context.Context, childAgentId, childServerId int64) (FinalAgentId, FinalServerServerId int64, err error)
|
||||
}
|
||||
|
||||
customMsMergeServersModel struct {
|
||||
*defaultMsMergeServersModel
|
||||
}
|
||||
)
|
||||
|
||||
func (m *customMsMergeServersModel) FinalServer(ctx context.Context, childAgentId, childServerId int64) (FinalAgentId, FinalServerServerId int64, err error) {
|
||||
query := fmt.Sprintf("select final_agent_id, final_server_id from %s where child_agent_id = ? and child_server_id = ?", m.table)
|
||||
var result struct {
|
||||
FinalServerServerId int64 `db:"final_server_server_id"` // 物理服务器ID,来自mg_servers的自增ID
|
||||
FinalAgentId int64 `db:"final_agent_id"` // 最终被合到了此agent_id下
|
||||
}
|
||||
err = m.conn.QueryRowCtx(ctx, &result, query, childAgentId, childServerId)
|
||||
switch {
|
||||
case err == nil:
|
||||
return result.FinalAgentId, result.FinalServerServerId, nil
|
||||
case errors.Is(err, sqlx.ErrNotFound):
|
||||
return childAgentId, childServerId, nil
|
||||
default:
|
||||
return 0, 0, err
|
||||
}
|
||||
}
|
||||
|
||||
// NewMsMergeServersModel returns a model for the database table.
|
||||
func NewMsMergeServersModel(conn sqlx.SqlConn) MsMergeServersModel {
|
||||
return &customMsMergeServersModel{
|
||||
defaultMsMergeServersModel: newMsMergeServersModel(conn),
|
||||
}
|
||||
}
|
||||
|
||||
func (m *customMsMergeServersModel) withSession(session sqlx.Session) MsMergeServersModel {
|
||||
return NewMsMergeServersModel(sqlx.NewSqlConnFromSession(session))
|
||||
}
|
||||
96
internal/model/ms_merge_servers_model_gen.go
Executable file
96
internal/model/ms_merge_servers_model_gen.go
Executable file
@@ -0,0 +1,96 @@
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// versions:
|
||||
// goctl version: 1.7.6
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
msMergeServersFieldNames = builder.RawFieldNames(&MsMergeServers{})
|
||||
msMergeServersRows = strings.Join(msMergeServersFieldNames, ",")
|
||||
msMergeServersRowsExpectAutoSet = strings.Join(stringx.Remove(msMergeServersFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
msMergeServersRowsWithPlaceHolder = strings.Join(stringx.Remove(msMergeServersFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
)
|
||||
|
||||
type (
|
||||
msMergeServersModel interface {
|
||||
Insert(ctx context.Context, data *MsMergeServers) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id uint) (*MsMergeServers, error)
|
||||
Update(ctx context.Context, data *MsMergeServers) error
|
||||
Delete(ctx context.Context, id uint) error
|
||||
}
|
||||
|
||||
defaultMsMergeServersModel struct {
|
||||
conn sqlx.SqlConn
|
||||
table string
|
||||
}
|
||||
|
||||
MsMergeServers struct {
|
||||
Id uint `db:"id"`
|
||||
GsId sql.NullInt64 `db:"gs_id"` // 被合的服ms_game_server里的自增id
|
||||
FinalServerServerId sql.NullInt64 `db:"final_server_server_id"` // 物理服务器ID,来自mg_servers的自增ID
|
||||
FinalAgentId sql.NullInt64 `db:"final_agent_id"` // 最终被合到了此agent_id下
|
||||
FinalServerId sql.NullInt64 `db:"final_server_id"` // 最终被合到了此server_id下
|
||||
FinalAgentServer sql.NullInt64 `db:"final_agent_server"` // 最终被合到了此agent_server下
|
||||
ServerId sql.NullInt64 `db:"server_id"` // 合到此服
|
||||
AgentServer sql.NullInt64 `db:"agent_server"` // agent_id 和 server_id的组合
|
||||
ChildAgentId sql.NullInt64 `db:"child_agent_id"` // 被合服的agent_id
|
||||
ChildServerId sql.NullInt64 `db:"child_server_id"` // 被合服的server_id
|
||||
ChildAgentServer sql.NullInt64 `db:"child_agent_server"` // 被合服的server_id 和 server_id组合
|
||||
AdminId sql.NullInt64 `db:"admin_id"` // 操作员
|
||||
AddTime sql.NullInt64 `db:"add_time"` // 合服时间
|
||||
}
|
||||
)
|
||||
|
||||
func newMsMergeServersModel(conn sqlx.SqlConn) *defaultMsMergeServersModel {
|
||||
return &defaultMsMergeServersModel{
|
||||
conn: conn,
|
||||
table: "`ms_merge_servers`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultMsMergeServersModel) Delete(ctx context.Context, id uint) error {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
_, err := m.conn.ExecCtx(ctx, query, id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultMsMergeServersModel) FindOne(ctx context.Context, id uint) (*MsMergeServers, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", msMergeServersRows, m.table)
|
||||
var resp MsMergeServers
|
||||
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlx.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultMsMergeServersModel) Insert(ctx context.Context, data *MsMergeServers) (sql.Result, error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, msMergeServersRowsExpectAutoSet)
|
||||
ret, err := m.conn.ExecCtx(ctx, query, data.GsId, data.FinalServerServerId, data.FinalAgentId, data.FinalServerId, data.FinalAgentServer, data.ServerId, data.AgentServer, data.ChildAgentId, data.ChildServerId, data.ChildAgentServer, data.AdminId, data.AddTime)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultMsMergeServersModel) Update(ctx context.Context, data *MsMergeServers) error {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, msMergeServersRowsWithPlaceHolder)
|
||||
_, err := m.conn.ExecCtx(ctx, query, data.GsId, data.FinalServerServerId, data.FinalAgentId, data.FinalServerId, data.FinalAgentServer, data.ServerId, data.AgentServer, data.ChildAgentId, data.ChildServerId, data.ChildAgentServer, data.AdminId, data.AddTime, data.Id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultMsMergeServersModel) tableName() string {
|
||||
return m.table
|
||||
}
|
||||
80
internal/model/nh_game_server_notify_model.go
Executable file
80
internal/model/nh_game_server_notify_model.go
Executable file
@@ -0,0 +1,80 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ NhGameServerNotifyModel = (*customNhGameServerNotifyModel)(nil)
|
||||
|
||||
type (
|
||||
// NhGameServerNotifyModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customNhGameServerNotifyModel.
|
||||
NhGameServerNotifyModel interface {
|
||||
nhGameServerNotifyModel
|
||||
withSession(session sqlx.Session) NhGameServerNotifyModel
|
||||
FindNotifyList(ctx context.Context, status int8) ([]*NhGameServerNotify, error)
|
||||
UpdateNotifyStatus(ctx context.Context, id uint, status int8) error
|
||||
}
|
||||
|
||||
customNhGameServerNotifyModel struct {
|
||||
*defaultNhGameServerNotifyModel
|
||||
}
|
||||
)
|
||||
|
||||
const (
|
||||
NTF_STATUS_UNKNOWN = 0 // 未知
|
||||
NTF_STATUS_WAITING_PROCESS = 1 // 待处理
|
||||
NTF_STATUS_PROCESSING = 2 // 处理中
|
||||
NTF_STATUS_FAILED = 3 // 处理失败
|
||||
NTF_STATUS_SUCCESS = 4 // 处理成功
|
||||
)
|
||||
|
||||
func (m *customNhGameServerNotifyModel) UpdateNotifyStatus(ctx context.Context, id uint, status int8) error {
|
||||
var update string
|
||||
switch status {
|
||||
case NTF_STATUS_PROCESSING:
|
||||
update = fmt.Sprintf("update %s set `status` = 2, `retry_times` = `retry_times` + 1 where `id` = ? and (`status` = 1 or `status` = 3)", m.table)
|
||||
case NTF_STATUS_FAILED:
|
||||
update = fmt.Sprintf("update %s set `status` = 3 where `id` = ? and `status` = 1", m.table)
|
||||
case NTF_STATUS_SUCCESS:
|
||||
update = fmt.Sprintf("update %s set `status` = 4 where `id` = ? and `status` = 1", m.table)
|
||||
default:
|
||||
return fmt.Errorf("unsupported status %d", status)
|
||||
}
|
||||
result, err := m.conn.ExecCtx(ctx, update, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
rows, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if rows == 0 {
|
||||
return ErrNoRowUpdate
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *customNhGameServerNotifyModel) FindNotifyList(ctx context.Context, status int8) ([]*NhGameServerNotify, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `status` = ? and `retry_times` < 6 limit 10", nhGameServerNotifyRows, m.table)
|
||||
var ntfs []*NhGameServerNotify
|
||||
err := m.conn.QueryRowsCtx(ctx, &ntfs, query, status)
|
||||
if err != nil && !errors.Is(err, sqlx.ErrNotFound) {
|
||||
return nil, err
|
||||
}
|
||||
return ntfs, nil
|
||||
}
|
||||
|
||||
// NewNhGameServerNotifyModel returns a model for the database table.
|
||||
func NewNhGameServerNotifyModel(conn sqlx.SqlConn) NhGameServerNotifyModel {
|
||||
return &customNhGameServerNotifyModel{
|
||||
defaultNhGameServerNotifyModel: newNhGameServerNotifyModel(conn),
|
||||
}
|
||||
}
|
||||
|
||||
func (m *customNhGameServerNotifyModel) withSession(session sqlx.Session) NhGameServerNotifyModel {
|
||||
return NewNhGameServerNotifyModel(sqlx.NewSqlConnFromSession(session))
|
||||
}
|
||||
92
internal/model/nh_game_server_notify_model_gen.go
Executable file
92
internal/model/nh_game_server_notify_model_gen.go
Executable file
@@ -0,0 +1,92 @@
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// versions:
|
||||
// goctl version: 1.7.6
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
nhGameServerNotifyFieldNames = builder.RawFieldNames(&NhGameServerNotify{})
|
||||
nhGameServerNotifyRows = strings.Join(nhGameServerNotifyFieldNames, ",")
|
||||
nhGameServerNotifyRowsExpectAutoSet = strings.Join(stringx.Remove(nhGameServerNotifyFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
nhGameServerNotifyRowsWithPlaceHolder = strings.Join(stringx.Remove(nhGameServerNotifyFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
)
|
||||
|
||||
type (
|
||||
nhGameServerNotifyModel interface {
|
||||
Insert(ctx context.Context, data *NhGameServerNotify) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id uint) (*NhGameServerNotify, error)
|
||||
Update(ctx context.Context, data *NhGameServerNotify) error
|
||||
Delete(ctx context.Context, id uint) error
|
||||
}
|
||||
|
||||
defaultNhGameServerNotifyModel struct {
|
||||
conn sqlx.SqlConn
|
||||
table string
|
||||
}
|
||||
|
||||
NhGameServerNotify struct {
|
||||
Id uint `db:"id"`
|
||||
RoleId uint64 `db:"role_id"` // 角色id
|
||||
Action string `db:"action"` // 事件类型
|
||||
Data sql.NullString `db:"data"` // 事件数据
|
||||
Status int8 `db:"status"` // 状态:1=待处理,2=处理中, 3=处理失败, 4=处理成功
|
||||
RetryTimes int `db:"retry_times"` // 重试次数
|
||||
CreatedAt time.Time `db:"created_at"` // 创建时间
|
||||
UpdatedAt time.Time `db:"updated_at"` // 修改时间
|
||||
}
|
||||
)
|
||||
|
||||
func newNhGameServerNotifyModel(conn sqlx.SqlConn) *defaultNhGameServerNotifyModel {
|
||||
return &defaultNhGameServerNotifyModel{
|
||||
conn: conn,
|
||||
table: "`nh_game_server_notify`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultNhGameServerNotifyModel) Delete(ctx context.Context, id uint) error {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
_, err := m.conn.ExecCtx(ctx, query, id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultNhGameServerNotifyModel) FindOne(ctx context.Context, id uint) (*NhGameServerNotify, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", nhGameServerNotifyRows, m.table)
|
||||
var resp NhGameServerNotify
|
||||
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlx.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultNhGameServerNotifyModel) Insert(ctx context.Context, data *NhGameServerNotify) (sql.Result, error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?)", m.table, nhGameServerNotifyRowsExpectAutoSet)
|
||||
ret, err := m.conn.ExecCtx(ctx, query, data.RoleId, data.Action, data.Data, data.Status, data.RetryTimes)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultNhGameServerNotifyModel) Update(ctx context.Context, data *NhGameServerNotify) error {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, nhGameServerNotifyRowsWithPlaceHolder)
|
||||
_, err := m.conn.ExecCtx(ctx, query, data.RoleId, data.Action, data.Data, data.Status, data.RetryTimes, data.Id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultNhGameServerNotifyModel) tableName() string {
|
||||
return m.table
|
||||
}
|
||||
29
internal/model/nh_request_server_log_model.go
Executable file
29
internal/model/nh_request_server_log_model.go
Executable file
@@ -0,0 +1,29 @@
|
||||
package model
|
||||
|
||||
import "github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
|
||||
var _ NhRequestServerLogModel = (*customNhRequestServerLogModel)(nil)
|
||||
|
||||
type (
|
||||
// NhRequestServerLogModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customNhRequestServerLogModel.
|
||||
NhRequestServerLogModel interface {
|
||||
nhRequestServerLogModel
|
||||
withSession(session sqlx.Session) NhRequestServerLogModel
|
||||
}
|
||||
|
||||
customNhRequestServerLogModel struct {
|
||||
*defaultNhRequestServerLogModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewNhRequestServerLogModel returns a model for the database table.
|
||||
func NewNhRequestServerLogModel(conn sqlx.SqlConn) NhRequestServerLogModel {
|
||||
return &customNhRequestServerLogModel{
|
||||
defaultNhRequestServerLogModel: newNhRequestServerLogModel(conn),
|
||||
}
|
||||
}
|
||||
|
||||
func (m *customNhRequestServerLogModel) withSession(session sqlx.Session) NhRequestServerLogModel {
|
||||
return NewNhRequestServerLogModel(sqlx.NewSqlConnFromSession(session))
|
||||
}
|
||||
90
internal/model/nh_request_server_log_model_gen.go
Executable file
90
internal/model/nh_request_server_log_model_gen.go
Executable file
@@ -0,0 +1,90 @@
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// versions:
|
||||
// goctl version: 1.7.6
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
nhRequestServerLogFieldNames = builder.RawFieldNames(&NhRequestServerLog{})
|
||||
nhRequestServerLogRows = strings.Join(nhRequestServerLogFieldNames, ",")
|
||||
nhRequestServerLogRowsExpectAutoSet = strings.Join(stringx.Remove(nhRequestServerLogFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
nhRequestServerLogRowsWithPlaceHolder = strings.Join(stringx.Remove(nhRequestServerLogFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
)
|
||||
|
||||
type (
|
||||
nhRequestServerLogModel interface {
|
||||
Insert(ctx context.Context, data *NhRequestServerLog) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id int) (*NhRequestServerLog, error)
|
||||
Update(ctx context.Context, data *NhRequestServerLog) error
|
||||
Delete(ctx context.Context, id int) error
|
||||
}
|
||||
|
||||
defaultNhRequestServerLogModel struct {
|
||||
conn sqlx.SqlConn
|
||||
table string
|
||||
}
|
||||
|
||||
NhRequestServerLog struct {
|
||||
Id int `db:"id"`
|
||||
Action string `db:"action"` // 接口
|
||||
Url string `db:"url"` // 推送地址
|
||||
ServerInfo string `db:"server_info"`
|
||||
ReqData string `db:"req_data"` // 请求数据
|
||||
ResData string `db:"res_data"` // 响应数据
|
||||
CreateTime sql.NullTime `db:"create_time"` // 创建时间
|
||||
}
|
||||
)
|
||||
|
||||
func newNhRequestServerLogModel(conn sqlx.SqlConn) *defaultNhRequestServerLogModel {
|
||||
return &defaultNhRequestServerLogModel{
|
||||
conn: conn,
|
||||
table: "`nh_request_server_log`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultNhRequestServerLogModel) Delete(ctx context.Context, id int) error {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
_, err := m.conn.ExecCtx(ctx, query, id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultNhRequestServerLogModel) FindOne(ctx context.Context, id int) (*NhRequestServerLog, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", nhRequestServerLogRows, m.table)
|
||||
var resp NhRequestServerLog
|
||||
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlx.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultNhRequestServerLogModel) Insert(ctx context.Context, data *NhRequestServerLog) (sql.Result, error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?)", m.table, nhRequestServerLogRowsExpectAutoSet)
|
||||
ret, err := m.conn.ExecCtx(ctx, query, data.Action, data.Url, data.ServerInfo, data.ReqData, data.ResData)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultNhRequestServerLogModel) Update(ctx context.Context, data *NhRequestServerLog) error {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, nhRequestServerLogRowsWithPlaceHolder)
|
||||
_, err := m.conn.ExecCtx(ctx, query, data.Action, data.Url, data.ServerInfo, data.ReqData, data.ResData, data.Id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultNhRequestServerLogModel) tableName() string {
|
||||
return m.table
|
||||
}
|
||||
45
internal/model/nh_stake_home_point_config_model.go
Executable file
45
internal/model/nh_stake_home_point_config_model.go
Executable file
@@ -0,0 +1,45 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ NhStakeHomePointConfigModel = (*customNhStakeHomePointConfigModel)(nil)
|
||||
|
||||
type (
|
||||
// NhStakeHomePointConfigModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customNhStakeHomePointConfigModel.
|
||||
NhStakeHomePointConfigModel interface {
|
||||
nhStakeHomePointConfigModel
|
||||
withSession(session sqlx.Session) NhStakeHomePointConfigModel
|
||||
All(ctx context.Context) ([]*NhStakeHomePointConfig, error)
|
||||
}
|
||||
|
||||
customNhStakeHomePointConfigModel struct {
|
||||
*defaultNhStakeHomePointConfigModel
|
||||
}
|
||||
)
|
||||
|
||||
func (m *customNhStakeHomePointConfigModel) All(ctx context.Context) ([]*NhStakeHomePointConfig, error) {
|
||||
query := fmt.Sprintf("select %s from %s", nhStakeHomePointConfigRows, m.table)
|
||||
var resp []*NhStakeHomePointConfig
|
||||
err := m.conn.QueryRowsCtx(ctx, &resp, query)
|
||||
if err != nil && !errors.Is(err, sqlx.ErrNotFound) {
|
||||
return nil, err
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// NewNhStakeHomePointConfigModel returns a model for the database table.
|
||||
func NewNhStakeHomePointConfigModel(conn sqlx.SqlConn) NhStakeHomePointConfigModel {
|
||||
return &customNhStakeHomePointConfigModel{
|
||||
defaultNhStakeHomePointConfigModel: newNhStakeHomePointConfigModel(conn),
|
||||
}
|
||||
}
|
||||
|
||||
func (m *customNhStakeHomePointConfigModel) withSession(session sqlx.Session) NhStakeHomePointConfigModel {
|
||||
return NewNhStakeHomePointConfigModel(sqlx.NewSqlConnFromSession(session))
|
||||
}
|
||||
95
internal/model/nh_stake_home_point_config_model_gen.go
Executable file
95
internal/model/nh_stake_home_point_config_model_gen.go
Executable file
@@ -0,0 +1,95 @@
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// versions:
|
||||
// goctl version: 1.7.6
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
var (
|
||||
nhStakeHomePointConfigFieldNames = builder.RawFieldNames(&NhStakeHomePointConfig{})
|
||||
nhStakeHomePointConfigRows = strings.Join(nhStakeHomePointConfigFieldNames, ",")
|
||||
nhStakeHomePointConfigRowsExpectAutoSet = strings.Join(stringx.Remove(nhStakeHomePointConfigFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
nhStakeHomePointConfigRowsWithPlaceHolder = strings.Join(stringx.Remove(nhStakeHomePointConfigFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
)
|
||||
|
||||
type (
|
||||
nhStakeHomePointConfigModel interface {
|
||||
Insert(ctx context.Context, data *NhStakeHomePointConfig) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id uint) (*NhStakeHomePointConfig, error)
|
||||
Update(ctx context.Context, data *NhStakeHomePointConfig) error
|
||||
Delete(ctx context.Context, id uint) error
|
||||
}
|
||||
|
||||
defaultNhStakeHomePointConfigModel struct {
|
||||
conn sqlx.SqlConn
|
||||
table string
|
||||
}
|
||||
|
||||
NhStakeHomePointConfig struct {
|
||||
Id uint `db:"id"`
|
||||
Title string `db:"title"` // 名称
|
||||
Level uint `db:"level"` // 精灵等级,必须为连续的数字
|
||||
Points uint `db:"points"` // 积分数量
|
||||
Days decimal.Decimal `db:"days"` // 天数,为了测试方便,增加小数
|
||||
RenewDays decimal.Decimal `db:"renew_days"` // 续存倒数天数,为了测试方便,增加小数
|
||||
Status int8 `db:"status"` // 状态,0=正常,1=停用
|
||||
CreatedAt time.Time `db:"created_at"` // 创建时间
|
||||
UpdatedAt time.Time `db:"updated_at"` // 修改时间
|
||||
}
|
||||
)
|
||||
|
||||
func newNhStakeHomePointConfigModel(conn sqlx.SqlConn) *defaultNhStakeHomePointConfigModel {
|
||||
return &defaultNhStakeHomePointConfigModel{
|
||||
conn: conn,
|
||||
table: "`nh_stake_home_point_config`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultNhStakeHomePointConfigModel) Delete(ctx context.Context, id uint) error {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
_, err := m.conn.ExecCtx(ctx, query, id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultNhStakeHomePointConfigModel) FindOne(ctx context.Context, id uint) (*NhStakeHomePointConfig, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", nhStakeHomePointConfigRows, m.table)
|
||||
var resp NhStakeHomePointConfig
|
||||
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlx.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultNhStakeHomePointConfigModel) Insert(ctx context.Context, data *NhStakeHomePointConfig) (sql.Result, error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?)", m.table, nhStakeHomePointConfigRowsExpectAutoSet)
|
||||
ret, err := m.conn.ExecCtx(ctx, query, data.Title, data.Level, data.Points, data.Days, data.RenewDays, data.Status)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultNhStakeHomePointConfigModel) Update(ctx context.Context, data *NhStakeHomePointConfig) error {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, nhStakeHomePointConfigRowsWithPlaceHolder)
|
||||
_, err := m.conn.ExecCtx(ctx, query, data.Title, data.Level, data.Points, data.Days, data.RenewDays, data.Status, data.Id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultNhStakeHomePointConfigModel) tableName() string {
|
||||
return m.table
|
||||
}
|
||||
103
internal/model/nh_stake_points_model.go
Executable file
103
internal/model/nh_stake_points_model.go
Executable file
@@ -0,0 +1,103 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"time"
|
||||
)
|
||||
|
||||
var _ NhStakePointsModel = (*customNhStakePointsModel)(nil)
|
||||
|
||||
type (
|
||||
// NhStakePointsModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customNhStakePointsModel.
|
||||
NhStakePointsModel interface {
|
||||
nhStakePointsModel
|
||||
WithSession(session sqlx.Session) NhStakePointsModel
|
||||
FindCurrentLevel(ctx context.Context, roleId int64) (*NhStakePoints, error)
|
||||
FindRenewLevel(ctx context.Context, roleId int64) (*NhStakePoints, error)
|
||||
FindOverdueList(ctx context.Context) ([]*NhStakePoints, error)
|
||||
SetOverdue(ctx context.Context, id uint) error
|
||||
}
|
||||
|
||||
customNhStakePointsModel struct {
|
||||
*defaultNhStakePointsModel
|
||||
}
|
||||
)
|
||||
|
||||
const (
|
||||
PointsStakeStatusUnknown = 0 // 未知状态
|
||||
PointsStakeStatusStaking = 1 // 质押中
|
||||
PointsStakeStatusUpgraded = 2 // 已升级
|
||||
PointsStakeStatusRenew = 3 // 已续约
|
||||
PointsStakeStatusOverdue = 4 // 已过期
|
||||
)
|
||||
|
||||
func (m *customNhStakePointsModel) SetOverdue(ctx context.Context, id uint) error {
|
||||
update := fmt.Sprintf("update %s set `status` = %d where `id` = ? and `status` = %d", m.table, PointsStakeStatusOverdue, PointsStakeStatusStaking)
|
||||
result, err := m.conn.ExecCtx(ctx, update, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
rows, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if rows == 0 {
|
||||
return ErrNoRowUpdate
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *customNhStakePointsModel) FindOverdueList(ctx context.Context) ([]*NhStakePoints, error) {
|
||||
query := fmt.Sprintf("select %s from %s where end_time <= ? and `status` = %d limit 100", nhStakePointsRows, m.table, PointsStakeStatusStaking)
|
||||
var resp []*NhStakePoints
|
||||
err := m.conn.QueryRowsCtx(ctx, &resp, query, time.Now())
|
||||
if err != nil && !errors.Is(err, sqlx.ErrNotFound) {
|
||||
return nil, err
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func (m *customNhStakePointsModel) FindRenewLevel(ctx context.Context, roleId int64) (*NhStakePoints, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `role_id` = ? and start_time > ? and `status` = %d limit 1", nhStakePointsRows, m.table, PointsStakeStatusStaking)
|
||||
var resp NhStakePoints
|
||||
now := time.Now()
|
||||
err := m.conn.QueryRowCtx(ctx, &resp, query, roleId, now)
|
||||
switch {
|
||||
case err == nil:
|
||||
return &resp, nil
|
||||
case errors.Is(err, sqlx.ErrNotFound):
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *customNhStakePointsModel) FindCurrentLevel(ctx context.Context, roleId int64) (*NhStakePoints, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `role_id` = ? and start_time <= ? and end_time >= ? and (`status` = %d or `status` = %d) limit 1", nhStakePointsRows, m.table, PointsStakeStatusStaking, PointsStakeStatusRenew)
|
||||
var resp NhStakePoints
|
||||
now := time.Now()
|
||||
err := m.conn.QueryRowCtx(ctx, &resp, query, roleId, now, now)
|
||||
switch {
|
||||
case err == nil:
|
||||
return &resp, nil
|
||||
case errors.Is(err, sqlx.ErrNotFound):
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
// NewNhStakePointsModel returns a model for the database table.
|
||||
func NewNhStakePointsModel(conn sqlx.SqlConn) NhStakePointsModel {
|
||||
return &customNhStakePointsModel{
|
||||
defaultNhStakePointsModel: newNhStakePointsModel(conn),
|
||||
}
|
||||
}
|
||||
|
||||
func (m *customNhStakePointsModel) WithSession(session sqlx.Session) NhStakePointsModel {
|
||||
return NewNhStakePointsModel(sqlx.NewSqlConnFromSession(session))
|
||||
}
|
||||
93
internal/model/nh_stake_points_model_gen.go
Executable file
93
internal/model/nh_stake_points_model_gen.go
Executable file
@@ -0,0 +1,93 @@
|
||||
// Code generated by goctl. DO NOT EDIT.
|
||||
// versions:
|
||||
// goctl version: 1.7.6
|
||||
|
||||
package model
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
nhStakePointsFieldNames = builder.RawFieldNames(&NhStakePoints{})
|
||||
nhStakePointsRows = strings.Join(nhStakePointsFieldNames, ",")
|
||||
nhStakePointsRowsExpectAutoSet = strings.Join(stringx.Remove(nhStakePointsFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
nhStakePointsRowsWithPlaceHolder = strings.Join(stringx.Remove(nhStakePointsFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
)
|
||||
|
||||
type (
|
||||
nhStakePointsModel interface {
|
||||
Insert(ctx context.Context, data *NhStakePoints) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id uint) (*NhStakePoints, error)
|
||||
Update(ctx context.Context, data *NhStakePoints) error
|
||||
Delete(ctx context.Context, id uint) error
|
||||
}
|
||||
|
||||
defaultNhStakePointsModel struct {
|
||||
conn sqlx.SqlConn
|
||||
table string
|
||||
}
|
||||
|
||||
NhStakePoints struct {
|
||||
Id uint `db:"id"`
|
||||
Uid uint `db:"uid"` // 用户id
|
||||
RoleId uint64 `db:"role_id"` // 角色id
|
||||
LevelId uint `db:"level_id"` // 档位id
|
||||
Level uint `db:"level"` // 档位
|
||||
Points uint `db:"points"` // 积分数量
|
||||
StartTime time.Time `db:"start_time"` // 开始时间戳
|
||||
EndTime time.Time `db:"end_time"` // 结束时间戳
|
||||
Status int8 `db:"status"` // 状态:1=质押中,2=已升级,3=已续约,4=已过期
|
||||
}
|
||||
)
|
||||
|
||||
func newNhStakePointsModel(conn sqlx.SqlConn) *defaultNhStakePointsModel {
|
||||
return &defaultNhStakePointsModel{
|
||||
conn: conn,
|
||||
table: "`nh_stake_points`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultNhStakePointsModel) Delete(ctx context.Context, id uint) error {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
_, err := m.conn.ExecCtx(ctx, query, id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultNhStakePointsModel) FindOne(ctx context.Context, id uint) (*NhStakePoints, error) {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", nhStakePointsRows, m.table)
|
||||
var resp NhStakePoints
|
||||
err := m.conn.QueryRowCtx(ctx, &resp, query, id)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlx.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultNhStakePointsModel) Insert(ctx context.Context, data *NhStakePoints) (sql.Result, error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?)", m.table, nhStakePointsRowsExpectAutoSet)
|
||||
ret, err := m.conn.ExecCtx(ctx, query, data.Uid, data.RoleId, data.LevelId, data.Level, data.Points, data.StartTime, data.EndTime, data.Status)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultNhStakePointsModel) Update(ctx context.Context, data *NhStakePoints) error {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, nhStakePointsRowsWithPlaceHolder)
|
||||
_, err := m.conn.ExecCtx(ctx, query, data.Uid, data.RoleId, data.LevelId, data.Level, data.Points, data.StartTime, data.EndTime, data.Status, data.Id)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultNhStakePointsModel) tableName() string {
|
||||
return m.table
|
||||
}
|
||||
Reference in New Issue
Block a user