增加提取castile到游戏内的列表接口

This commit is contained in:
yuming88
2025-04-28 20:03:37 +08:00
parent d40cdda6ae
commit 95a4337ab3
7 changed files with 93 additions and 19 deletions

View File

@@ -12,7 +12,7 @@ service novatask {
@doc "获取提取castile到游戏的记录" @doc "获取提取castile到游戏的记录"
@handler TransferCastileToGameList @handler TransferCastileToGameList
post /list (TransferCastileToGameListReq) returns (TransferCastileToGameResp) post /list (TransferCastileToGameListReq) returns (TransferCastileToGameListResp)
} }
type TransferCastileToGameReq { type TransferCastileToGameReq {
@@ -22,13 +22,16 @@ type TransferCastileToGameReq {
type TransferCastileToGameListReq { type TransferCastileToGameListReq {
RoleID int64 `json:"role_id,optional"` // 角色id RoleID int64 `json:"role_id,optional"` // 角色id
Page int `form:"page,range=[1:],optional,default=1"` // 页码
Size int `form:"size,range=[10:100],optional,default=10"` // 每页数量
} }
type TransferCastileToGameResp { type TransferCastileToGameResp {
Id int `json:"id"` // id Id int `json:"id"` // id
RoleID int64 `json:"role_id"` // 角色id RoleID int64 `json:"role_id"` // 角色id
Amount int64 `json:"amount"` // 数量 Amount int64 `json:"amount"` // 数量
Status int64 `json:"status"` // 状态 Status int64 `json:"status"` // 状态
CreatedAt string `json:"created_at"` // 创建时间
} }
type TransferCastileToGameListResp { type TransferCastileToGameListResp {

View File

@@ -903,7 +903,7 @@
"200": { "200": {
"description": "A successful response.", "description": "A successful response.",
"schema": { "schema": {
"$ref": "#/definitions/TransferCastileToGameResp" "$ref": "#/definitions/TransferCastileToGameListResp"
} }
} }
}, },
@@ -920,6 +920,9 @@
"tags": [ "tags": [
"transfercastile" "transfercastile"
], ],
"consumes": [
"multipart/form-data"
],
"security": [ "security": [
{ {
"apiKey": [] "apiKey": []
@@ -1930,6 +1933,20 @@
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": " 角色id" "description": " 角色id"
},
"page": {
"type": "integer",
"format": "int32",
"default": "1",
"description": " 页码"
},
"size": {
"type": "integer",
"format": "int32",
"default": "10",
"description": " 每页数量",
"maximum": 100,
"minimum": 10
} }
}, },
"title": "TransferCastileToGameListReq" "title": "TransferCastileToGameListReq"
@@ -1998,6 +2015,10 @@
"type": "integer", "type": "integer",
"format": "int64", "format": "int64",
"description": " 状态" "description": " 状态"
},
"created_at": {
"type": "string",
"description": " 创建时间"
} }
}, },
"title": "TransferCastileToGameResp", "title": "TransferCastileToGameResp",
@@ -2005,7 +2026,8 @@
"id", "id",
"role_id", "role_id",
"amount", "amount",
"status" "status",
"created_at"
] ]
}, },
"UnStakeNftReq": { "UnStakeNftReq": {

View File

@@ -32,6 +32,10 @@ const (
RewardCastile = 2 // 代币 RewardCastile = 2 // 代币
) )
const (
FORMATDATETIME = "2006-01-02 15:04:05" // 日期时间
)
func GetAssetType(rewardType int8) AssetType { func GetAssetType(rewardType int8) AssetType {
switch rewardType { switch rewardType {
case RewardTypePoints: case RewardTypePoints:

View File

@@ -2,6 +2,9 @@ package transfercastile
import ( import (
"context" "context"
"nova_task/internal/consts"
"nova_task/internal/pkg/errs"
"nova_task/internal/pkg/utils"
"nova_task/internal/svc" "nova_task/internal/svc"
"nova_task/internal/types" "nova_task/internal/types"
@@ -24,8 +27,26 @@ func NewTransferCastileToGameListLogic(ctx context.Context, svcCtx *svc.ServiceC
} }
} }
func (l *TransferCastileToGameListLogic) TransferCastileToGameList(req *types.TransferCastileToGameListReq) (resp *types.TransferCastileToGameResp, err error) { func (l *TransferCastileToGameListLogic) TransferCastileToGameList(req *types.TransferCastileToGameListReq) (resp *types.TransferCastileToGameListResp, err error) {
// todo: add your logic here and delete this line
return uid := utils.GetUidUint(l.ctx)
ls, err := l.svcCtx.CastileTokenLogModel.List(l.ctx, uid, uint64(req.RoleID), req.Page, req.Size)
if err != nil {
l.Errorw("get castile log list failed", logx.Field("err", err), logx.Field("uid", uid))
return nil, errs.New(errs.ErrDatabaseOperate, err)
}
var lss []types.TransferCastileToGameResp
for _, ll := range ls {
lss = append(lss, types.TransferCastileToGameResp{
Id: int(ll.Id),
RoleID: int64(ll.RoleId),
Amount: int64(ll.Amount),
Status: int64(ll.CallbackStatus),
CreatedAt: ll.CreatedAt.Format(consts.FORMATDATETIME),
})
}
return &types.TransferCastileToGameListResp{
List: lss,
Total: len(lss),
}, nil
} }

View File

@@ -138,9 +138,10 @@ func (l *TransferCastileToGameLogic) TransferCastileToGame(req *types.TransferCa
} }
return &types.TransferCastileToGameResp{ return &types.TransferCastileToGameResp{
Id: int(res.Id), Id: int(res.Id),
RoleID: int64(res.RoleId), RoleID: int64(res.RoleId),
Amount: int64(res.Amount), Amount: int64(res.Amount),
Status: int64(res.CallbackStatus), Status: int64(res.CallbackStatus),
CreatedAt: res.CreatedAt.Format(consts.FORMATDATETIME),
}, nil }, nil
} }

View File

@@ -2,6 +2,7 @@ package model
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"github.com/zeromicro/go-zero/core/stores/sqlx" "github.com/zeromicro/go-zero/core/stores/sqlx"
) )
@@ -15,6 +16,7 @@ type (
nhCastileTokenLogModel nhCastileTokenLogModel
WithSession(session sqlx.Session) NhCastileTokenLogModel WithSession(session sqlx.Session) NhCastileTokenLogModel
UpdateStatus(ctx context.Context, status uint, id uint) error UpdateStatus(ctx context.Context, status uint, id uint) error
List(ctx context.Context, uid uint, roleId uint64, page, pageSize int) ([]*NhCastileTokenLog, error)
} }
customNhCastileTokenLogModel struct { customNhCastileTokenLogModel struct {
@@ -38,3 +40,21 @@ func (m *customNhCastileTokenLogModel) UpdateStatus(ctx context.Context, status
_, err := m.conn.ExecCtx(ctx, query, status, id) _, err := m.conn.ExecCtx(ctx, query, status, id)
return err return err
} }
func (m *customNhCastileTokenLogModel) List(ctx context.Context, uid uint, roleId uint64, page, pageSize int) ([]*NhCastileTokenLog, error) {
var query string
var result []*NhCastileTokenLog
var err error
if roleId == 0 {
query = fmt.Sprintf("select %s from %s where uid = ? order by id desc limit ?, ?", nhCastileTokenLogRows, m.table)
err = m.conn.QueryRowsCtx(ctx, &result, query, uid, (page-1)*pageSize, pageSize)
} else {
query = fmt.Sprintf("select %s from %s where uid = ? and role_id = ? order by id desc limit ?, ?", nhCastileTokenLogRows, m.table)
err = m.conn.QueryRowsCtx(ctx, &result, query, uid, roleId, (page-1)*pageSize, pageSize)
}
if err != nil && !errors.Is(err, sqlx.ErrNotFound) {
return nil, err
}
return result, nil
}

View File

@@ -241,7 +241,9 @@ type Task struct {
} }
type TransferCastileToGameListReq struct { type TransferCastileToGameListReq struct {
RoleID int64 `json:"role_id,optional"` // 角色id RoleID int64 `json:"role_id,optional"` // 角色id
Page int `form:"page,range=[1:],optional,default=1"` // 页码
Size int `form:"size,range=[10:100],optional,default=10"` // 每页数量
} }
type TransferCastileToGameListResp struct { type TransferCastileToGameListResp struct {
@@ -255,10 +257,11 @@ type TransferCastileToGameReq struct {
} }
type TransferCastileToGameResp struct { type TransferCastileToGameResp struct {
Id int `json:"id"` // id Id int `json:"id"` // id
RoleID int64 `json:"role_id"` // 角色id RoleID int64 `json:"role_id"` // 角色id
Amount int64 `json:"amount"` // 数量 Amount int64 `json:"amount"` // 数量
Status int64 `json:"status"` // 状态 Status int64 `json:"status"` // 状态
CreatedAt string `json:"created_at"` // 创建时间
} }
type UnStakeNftReq struct { type UnStakeNftReq struct {