diff --git a/initdatas/activity_info.json b/initdatas/activity_info.json index 019f3df..5576565 100644 --- a/initdatas/activity_info.json +++ b/initdatas/activity_info.json @@ -8,9 +8,9 @@ { "id": "e2yhq2lj30vwcpedv7p", "task": "TwitterConnect", - "title": "Connect Twitter Account", + "title": "Connect X", "type": 1, - "desc": "Connect Twitter Account", + "desc": "Please connect your X account", "score": 100, "category": "Social Tasks", "autoclaim": false, @@ -22,13 +22,13 @@ }, { "id": "e2fclylj30vwcpe0szl", "task": "TwitterFollow", - "title": "Follow Counter Fire’s official X account", + "title": "Follow @playCounterFire on X", "type": 1, "desc": "Follow Counter Fire’s official X account", "category": "Social Tasks", "score": 100, "autoclaim": false, - "pretasks": ["e2yhq2lj30vwcpedv7p"], + "pretasks": [], "cfg": {"account": "playCounterFire", "icon": "twitter"}, "start": "2024-01-01 00:00", "end": "2025-01-01 00:00", @@ -37,9 +37,9 @@ }, { "id": "e2far3lj30vwcpe0mh7", "task": "DiscordConnect", - "title": "Connect discord", + "title": "Connect Discord", "type": 1, - "desc": "Connect your discord account", + "desc": "Connect your Discord account", "category": "", "score": 100, "autoclaim": false, @@ -57,7 +57,7 @@ "category": "Social Tasks", "score": 100, "autoclaim": false, - "pretasks": ["e2far3lj30vwcpe0mh7"], + "pretasks": [], "cfg": {"icon": "discord", "account": "counterfire"}, "start": "2024-01-01 00:00", "end": "2025-01-01 00:00", @@ -66,13 +66,13 @@ }, { "id": "e2fuah0j30vwcpe0my7", "task": "TwitterRetweet", - "title": "Repost on X", + "title": "Repost and like on X", "type": 1, "desc": "Show your friends Counter Fire.", "category": "Social Tasks", "score": 150, "autoclaim": false, - "pretasks": ["e2yhq2lj30vwcpedv7p"], + "pretasks": [], "cfg": {"icon": "twitter", "content": "Just joined Counter Fire! 🎮 Excited about the endless opportunities ahead. 🔥 Let's team up and conquer together! Come in with me #CounterFire #GamingAdventures"}, "start": "2024-01-01 00:00", "end": "2025-01-01 00:00", diff --git a/src/controllers/sign.controller.ts b/src/controllers/sign.controller.ts index c93aa1c..12c3116 100644 --- a/src/controllers/sign.controller.ts +++ b/src/controllers/sign.controller.ts @@ -117,9 +117,9 @@ class SignController extends BaseController { invite = inviteUser.address.toLowerCase() } } - const records = await ScoreRecord.find({ user: user.id, activity: user.activity, type: SCORE_INVITE_USER }) + const records = await ActivityUser.find({ inviteUser: user.id }) const gameRecord = await ActivityGame.insertOrUpdate({ user: user.id, activity: user.activity }, {}) - let inviteScore = records.reduce((acc, record) => acc + record.score, 0) + let inviteScore = 0 const recordSocial = await ScoreRecord.find({ user: user.id, activity: user.activity, type: SCORE_SOCIAL_TASK }) let scoreSocial = recordSocial.reduce((acc, record) => acc + record.score, 0) const userMax = user.twitterId && user.discordId ? MAX_ENHANCE_COUNT_ADV : MAX_ENHANCE_COUNT_BASE diff --git a/src/controllers/tasks.controller.ts b/src/controllers/tasks.controller.ts index 44f94e5..77529ca 100644 --- a/src/controllers/tasks.controller.ts +++ b/src/controllers/tasks.controller.ts @@ -5,6 +5,8 @@ import { join } from 'path' import { formatDate } from 'utils/utcdate.util' import { GeneralScription } from 'models/chain/GeneralScription' import { BASE_TASK_TICKET } from 'common/Constants' +import { BASE_TASK_REWARD, SIGN_SEQ, TicketRecord } from 'models/TicketRecord' +import { ActivityGame } from 'models/ActivityGame' const fs = require('fs') const prod = process.env.NODE_ENV === 'production' @@ -215,9 +217,18 @@ export default class TasksController extends BaseController { } } let ticket = 0 - if (count === baseTaskSet.size) { + if (count === baseTaskSet.size && baseTaskSet.has(taskId)) { // all base task finished, give ticket ticket = BASE_TASK_TICKET + const ticketRecord = new TicketRecord({ + user: user.id, + activity: user.activity, + type: BASE_TASK_REWARD, + data: { task: currentTask.task }, + score: ticket, + }) + await ActivityGame.updateOne({ user: user.id, activity: user.activity }, { $inc: { tickets: ticket } }) + await ticketRecord.save() } return { status: currentTask.status, score, ticket } } diff --git a/src/models/TicketRecord.ts b/src/models/TicketRecord.ts index baeeee9..fa7cc61 100644 --- a/src/models/TicketRecord.ts +++ b/src/models/TicketRecord.ts @@ -9,6 +9,8 @@ export const SIGN_TOTAL = 'sign_total' export const SIGN_SEQ = 'sign_seq' // 使用门票 export const USE_TICKET = 'use_ticket' +// 基础任务完成奖励 +export const BASE_TASK_REWARD = 'base_task_reward' @dbconn() @index({ user: 1 }, { unique: false }) diff --git a/src/services/sign.svr.ts b/src/services/sign.svr.ts index 5543972..4763b1c 100644 --- a/src/services/sign.svr.ts +++ b/src/services/sign.svr.ts @@ -19,7 +19,7 @@ export const totalSignScore = (days: number) => { } export const seqSignScore = (days: number) => { - const data = seqSignCfg2.find(o => days === o.days) + const data = seqSignCfg.find(o => days === o.days) return data?.reward || 0 } diff --git a/src/tasks/DiscordConnect.ts b/src/tasks/DiscordConnect.ts index 3a4553a..4476f63 100644 --- a/src/tasks/DiscordConnect.ts +++ b/src/tasks/DiscordConnect.ts @@ -26,7 +26,7 @@ export default class DiscordConnect extends ITask { try { await this.user.save() } catch (err) { - throw new ZError(100, 'discord already binded') + throw new ZError(100, 'discord already binded to another account') } if (cfg.autoclaim) { try {