根据服务端日志, 增加一些保护

This commit is contained in:
CounterFire2023 2024-04-14 10:59:09 +08:00
parent dd93da8cf7
commit a1ab3628ed
7 changed files with 17 additions and 16 deletions

View File

@ -11,7 +11,8 @@
"prod:admin": "node dist/admin.js", "prod:admin": "node dist/admin.js",
"lint": "eslint --ext .ts src/**", "lint": "eslint --ext .ts src/**",
"format": "eslint --ext .ts src/** --fix", "format": "eslint --ext .ts src/** --fix",
"initdata": "ts-node src/initdata.ts" "initdata": "ts-node src/initdata.ts",
"test": "ts-node -r tsconfig-paths/register src/test.ts"
}, },
"author": "zhl", "author": "zhl",
"license": "ISC", "license": "ISC",

@ -1 +1 @@
Subproject commit 0d231aa9ed56073c170b41a2c676696e97b1c6ce Subproject commit 039c07ff1ca0ddcb6e728aea6029f2144ef99d13

View File

@ -88,7 +88,7 @@ class BoxController extends BaseController {
const score = records[i].score const score = records[i].score
result.push({ result.push({
nickname: u?.twitterName || u?.discordName || u?.address ? formatAddress(u.address) : 'unknown', nickname: u?.twitterName || u?.discordName || u?.address ? formatAddress(u.address) : 'unknown',
avatar: u.twitterAvatar || '', avatar: u?.twitterAvatar || '',
score: score, score: score,
// @ts-ignore // @ts-ignore
time: records[i].createdAt.getTime(), time: records[i].createdAt.getTime(),
@ -113,7 +113,7 @@ class BoxController extends BaseController {
const score = records[i].myScore || 0 const score = records[i].myScore || 0
result.push({ result.push({
nickname: u?.twitterName || u?.discordName || u?.address ? formatAddress(u.address) : 'unknown', nickname: u?.twitterName || u?.discordName || u?.address ? formatAddress(u.address) : 'unknown',
avatar: u.twitterAvatar || '', avatar: u?.twitterAvatar || '',
score: score, score: score,
// @ts-ignore // @ts-ignore
time: records[i].createdAt.getTime(), time: records[i].createdAt.getTime(),

View File

@ -35,7 +35,7 @@ class GameController extends BaseController {
} }
const record = await checkInToday(address, dateTag) const record = await checkInToday(address, dateTag)
if (!record) { if (!record) {
throw new ZError(13, 'had not signed in') throw new ZError(13, 'had not check in')
} }
const ticketRecord = new TicketRecord({ const ticketRecord = new TicketRecord({
user: user.id, user: user.id,
@ -88,10 +88,9 @@ class GameController extends BaseController {
if (days < 1) { if (days < 1) {
throw new ZError(12, 'invalid days') throw new ZError(12, 'invalid days')
} }
const dateTag = formatDate(new Date()) const checkRecord = await CheckIn.findOne({ from: user.address.toLowerCase() }).sort({ _id: -1 })
const checkRecord = await checkInToday(user.address.toLowerCase(), dateTag)
if (!checkRecord) { if (!checkRecord) {
throw new ZError(12, 'not signed in') throw new ZError(12, 'no onchain check in record')
} }
if (days > checkRecord.total) { if (days > checkRecord.total) {
throw new ZError(13, 'invalid days') throw new ZError(13, 'invalid days')
@ -139,10 +138,9 @@ class GameController extends BaseController {
if (days < 1) { if (days < 1) {
throw new ZError(12, 'invalid days') throw new ZError(12, 'invalid days')
} }
const dateTag = formatDate(new Date()) const checkRecord = await CheckIn.findOne({ from: user.address.toLowerCase() }).sort({ _id: -1 })
const checkRecord = await checkInToday(user.address.toLowerCase(), dateTag)
if (!checkRecord) { if (!checkRecord) {
throw new ZError(12, 'not signed in') throw new ZError(12, 'no onchain check in record')
} }
if (days > checkRecord.total) { if (days > checkRecord.total) {
throw new ZError(13, 'invalid days') throw new ZError(13, 'invalid days')
@ -272,8 +270,8 @@ class GameController extends BaseController {
signCfg, signCfg,
todayStat, todayStat,
todayTickets: 1, todayTickets: 1,
daysTotal: checkRecord?.total || 0, daysTotal: lastRecord?.total || 0,
daysSeq: checkRecord?.count || 0, daysSeq: lastRecord?.count || 0,
seqStat, seqStat,
totalStat, totalStat,
} }

View File

@ -138,7 +138,7 @@ export default class TasksController extends BaseController {
if (dateTag && currentDateTag !== dateTag) { if (dateTag && currentDateTag !== dateTag) {
throw new ZError(11, 'task date not match') throw new ZError(11, 'task date not match')
} }
if (!activity.isVaild()) { if (!activity?.isVaild()) {
throw new ZError(15, 'activity not start or end') throw new ZError(15, 'activity not start or end')
} }
let cfg = activity.tasks.find((t: TaskCfg) => t.id === taskId) let cfg = activity.tasks.find((t: TaskCfg) => t.id === taskId)
@ -173,7 +173,7 @@ export default class TasksController extends BaseController {
const activity = req.activity const activity = req.activity
const { task } = req.params const { task } = req.params
const [taskId, dateTag] = task.split(':') const [taskId, dateTag] = task.split(':')
if (!activity.isVaild()) { if (!activity?.isVaild()) {
throw new ZError(15, 'activity not start or end') throw new ZError(15, 'activity not start or end')
} }
let cfg = activity.tasks.find((t: TaskCfg) => t.id === taskId) let cfg = activity.tasks.find((t: TaskCfg) => t.id === taskId)

View File

@ -31,7 +31,9 @@ export enum ChestStatusEnum {
timeStr = randomStr + timeStr.slice(1) timeStr = randomStr + timeStr.slice(1)
} }
let shortId = timeStr + this.id.slice(-6) let shortId = timeStr + this.id.slice(-6)
console.log(shortId)
this.shareCode = convert({ numStr: shortId, base: 16, to: 52, alphabet }) this.shareCode = convert({ numStr: shortId, base: 16, to: 52, alphabet })
console.log(this.id, this.shareCode)
} }
}) })
export class ActivityChestClass extends BaseModule { export class ActivityChestClass extends BaseModule {

View File

@ -46,7 +46,7 @@ export const updateRankScore = async ({
if (rebateLevel > 0) { if (rebateLevel > 0) {
let userMod = await ActivityUser.findById(user) let userMod = await ActivityUser.findById(user)
if (userMod?.inviteUser) { if (userMod?.inviteUser) {
const score1 = scoreParams.score * INVITE_REBATE const score1 = score * INVITE_REBATE
let scoreParams1 = Object.assign({ fromUser: user }, scoreParams) let scoreParams1 = Object.assign({ fromUser: user }, scoreParams)
const keyInvite = `${activity}:invite` const keyInvite = `${activity}:invite`
await updateRankInvite(keyInvite, parseInt(score1 * 100 + ''), `${userMod.inviteUser}_${user}`) await updateRankInvite(keyInvite, parseInt(score1 * 100 + ''), `${userMod.inviteUser}_${user}`)