email reward

This commit is contained in:
lianghuanjie
2025-01-03 20:44:03 +08:00
parent bc0aeec1da
commit b098e50eb0
36 changed files with 1188 additions and 51 deletions

23
doc/api/admin.api Normal file
View File

@@ -0,0 +1,23 @@
syntax = "v1"
@server (
prefix: /gapi/admin
middleware: AdminSecretCheck
group: admin
)
service novatask {
@doc "每日钱包签到任务"
@handler AddEmailReward
post /email_reward (EmailReward)
@doc "执行发放奖励操作"
@handler SendEmailReward
get /email_reward
}
type EmailReward {
Email string `json:"email"`
RewardType string `json:"reward_type"`
Value float64 `json:"value"`
}

50
doc/api/carv.api Normal file
View File

@@ -0,0 +1,50 @@
syntax = "v1"
@server (
prefix: /gapi/carv
middleware: ApiKeyCheck
group: carv
)
service novatask {
@doc "注册绑定钱包任务"
@handler BindWallet
get /bind_wallet (EmailKey) returns (CarvResult)
@doc "每日钱包签到任务"
@handler WalletCheckIn
get /check_in_wallet (EmailKey) returns (CarvResult)
@doc "下载并绑定Castile游戏角色"
@handler DownloadAndBindRole
get /bind_role (EmailKey) returns (CarvResult)
@doc "游戏主线解锁第x章节"
@handler UnlockChapter
get /unlock_chapter (UnlockChapterReq) returns (CarvResult)
}
type Result {
IsValid bool `json:"isValid"`
}
type Error {
Code int `json:"code"`
Message string `json:"message"`
}
type CarvResult {
Result *Result `json:"result"`
Error *Error `json:"error"`
}
type EmailKey {
Email string `form:"email"`
ApiKey string `Header:"x-api-key"`
}
type UnlockChapterReq {
Email string `form:"email"`
Chapter int `form:"chapter"`
ApiKey string `Header:"x-api-key"`
}

12
doc/api/nova.api Normal file
View File

@@ -0,0 +1,12 @@
syntax = "v1"
import "task.api"
import "carv.api"
import "admin.api"
info (
desc: "nova api"
author: "jager"
email: "lhj168os@gmail.com"
)

View File

@@ -132,7 +132,7 @@ type UserNftList {
// StakeNftList 质押请求参数NFT列表
type StakeNftList {
RoleId uint64 `json:"role_id"` // 角色id
RoleId uint64 `json:"role_id,optional"` // 角色id
TokenIds []string `json:"token_ids"` // nft列表
}

View File

@@ -39,31 +39,28 @@ CREATE TABLE `nh_nft_holder_change_log`
CREATE TABLE `nh_task_nft_stake`
(
`id` int unsigned NOT NULL AUTO_INCREMENT,
`uid` int unsigned NOT NULL COMMENT '用户钱包',
`id` int unsigned NOT NULL AUTO_INCREMENT,
`uid` int unsigned NOT NULL COMMENT '用户钱包',
`role_id` bigint unsigned NOT NULL COMMENT '角色id',
`token_id` varchar(32) NOT NULL COMMENT 'token id',
`state` tinyint NOT NULL DEFAULT 0 COMMENT '状态1质押中 0已取消质押',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`token_id` varchar(32) NOT NULL COMMENT 'token id',
`state` tinyint NOT NULL DEFAULT 0 COMMENT '状态1质押中 0已取消质押',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY (`uid`, `token_id`)
UNIQUE KEY (`token_id`)
) COMMENT ='nft质押表';
CREATE TABLE `nh_task_nft_stake_log`
(
`id` int unsigned NOT NULL AUTO_INCREMENT,
`uid` int unsigned NOT NULL COMMENT '用户钱包',
`id` int unsigned NOT NULL AUTO_INCREMENT,
`uid` int unsigned NOT NULL COMMENT '用户钱包',
`role_id` bigint unsigned NOT NULL COMMENT '角色id',
`address` varchar(80) NOT NULL COMMENT '钱包地址',
`token_id` varchar(32) NOT NULL COMMENT 'token id',
`award_seq` int NOT NULL COMMENT '派奖序列号',
`balance` int(11) NOT NULL COMMENT '余额',
`stake` tinyint NOT NULL DEFAULT 0 COMMENT '状态1质押中 0未质押',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`token_id` varchar(32) NOT NULL COMMENT 'token id',
`operate` tinyint NOT NULL DEFAULT 0 COMMENT '状态1质押 2取消质押, 3转出',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`)
) COMMENT ='派奖时nft质押日志表';
) COMMENT ='nft质押日志表';
CREATE TABLE `nh_task_nft_stake_reward`
(
@@ -79,4 +76,18 @@ CREATE TABLE `nh_task_nft_stake_reward`
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY (`uid`, `award_seq`)
) COMMENT ='nft质押派奖表';
) COMMENT ='nft质押派奖表';
CREATE TABLE `nh_email_reward`
(
`id` int unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(80) NOT NULL COMMENT '邮箱',
`uid` int unsigned NOT NULL DEFAULT 0 COMMENT '用户id',
`reward_type` varchar(32) NOT NULL COMMENT '奖励类型:[points,elite_points,castile,keys]',
`value` decimal(18, 6) NOT NULL DEFAULT 0 COMMENT '需要发送的积分',
`remark` varchar(256) NOT NULL DEFAULT '' COMMENT '备注',
`sent_at` int NOT NULL DEFAULT 0 COMMENT '发放时间戳',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`)
) COMMENT ='需要发放积分的';