被邀请人不再给积分, 在被邀请人获得积分时, 邀请人都会得到额外积分
This commit is contained in:
parent
8220ef2a2c
commit
142589a20b
@ -27,6 +27,10 @@ export const STEP_CHEST_RATE = 0.1
|
|||||||
export const STEP_CHEST_LEVEL = [70, 85, 95, 100]
|
export const STEP_CHEST_LEVEL = [70, 85, 95, 100]
|
||||||
// 低保步数
|
// 低保步数
|
||||||
export const RESET_STEP = 2
|
export const RESET_STEP = 2
|
||||||
|
// 邀请用户得到额外分数
|
||||||
|
export const INVITE_REBATE = 0.2
|
||||||
|
// 向上追溯的默认层级
|
||||||
|
export const INVITE_REBATE_LEVEL = 1
|
||||||
|
|
||||||
// 积分类型-邀请用户
|
// 积分类型-邀请用户
|
||||||
export const SCORE_INVITE_USER = 'invite_user'
|
export const SCORE_INVITE_USER = 'invite_user'
|
||||||
@ -40,3 +44,5 @@ export const SCORE_DRAW = 'draw'
|
|||||||
export const SCORE_GAME_STEP = 'game_step'
|
export const SCORE_GAME_STEP = 'game_step'
|
||||||
// 积分类型-社交任务
|
// 积分类型-社交任务
|
||||||
export const SCORE_SOCIAL_TASK = 'Social Tasks'
|
export const SCORE_SOCIAL_TASK = 'Social Tasks'
|
||||||
|
// 积分类型-邀请用户额外收益
|
||||||
|
export const SCORE_INVITE_REBATE = 'invite_rebate'
|
||||||
|
@ -1,13 +1,10 @@
|
|||||||
import { ActivityInfo } from 'models/ActivityInfo'
|
import { ActivityInfo } from 'models/ActivityInfo'
|
||||||
import { ActivityUser } from 'models/ActivityUser'
|
import { ActivityUser } from 'models/ActivityUser'
|
||||||
import { rankKey, rankLevel, updateRankScore } from 'services/rank.svr'
|
import { rankKey, rankLevel } from 'services/rank.svr'
|
||||||
import { BaseController, ROLE_ANON, SyncLocker, ZError, ZRedisClient, role, router } from 'zutils'
|
import { BaseController, ROLE_ANON, SyncLocker, ZError, ZRedisClient, role, router } from 'zutils'
|
||||||
import { ScoreRecord } from 'models/ScoreRecord'
|
import { ScoreRecord } from 'models/ScoreRecord'
|
||||||
import { formatAddress } from 'zutils/utils/chain.util'
|
import { formatAddress } from 'zutils/utils/chain.util'
|
||||||
import { formatDate } from 'zutils/utils/date.util'
|
|
||||||
import { SCORE_INVITE_INVITEE, SCORE_INVITE_USER } from 'common/Constants'
|
|
||||||
import { isValidShareCode } from 'common/Utils'
|
import { isValidShareCode } from 'common/Utils'
|
||||||
const shareCfg = require('../../configs/share_cfg.json')
|
|
||||||
|
|
||||||
const MAX_LIMIT = 100
|
const MAX_LIMIT = 100
|
||||||
export default class ActivityController extends BaseController {
|
export default class ActivityController extends BaseController {
|
||||||
@ -52,32 +49,33 @@ export default class ActivityController extends BaseController {
|
|||||||
if (!inviteUser) {
|
if (!inviteUser) {
|
||||||
throw new ZError(12, 'invalid invite code')
|
throw new ZError(12, 'invalid invite code')
|
||||||
}
|
}
|
||||||
const dateTag = formatDate(new Date())
|
// const dateTag = formatDate(new Date())
|
||||||
// 更新邀请积分-邀请人
|
// // 更新邀请积分-邀请人
|
||||||
await updateRankScore({
|
// await updateRankScore({
|
||||||
user: inviteUser.id,
|
// user: inviteUser.id,
|
||||||
score: shareCfg.inviter,
|
// score: shareCfg.inviter,
|
||||||
activity: user.activity,
|
// activity: user.activity,
|
||||||
scoreType: SCORE_INVITE_USER,
|
// scoreType: SCORE_INVITE_USER,
|
||||||
scoreParams: {
|
// scoreParams: {
|
||||||
date: dateTag,
|
// date: dateTag,
|
||||||
user: user.id,
|
// user: user.id,
|
||||||
},
|
// },
|
||||||
})
|
// })
|
||||||
// 更新邀请积分-被邀请人
|
// // 更新邀请积分-被邀请人
|
||||||
await updateRankScore({
|
// await updateRankScore({
|
||||||
user: user.id,
|
// user: user.id,
|
||||||
score: shareCfg.invitee,
|
// score: shareCfg.invitee,
|
||||||
activity: user.activity,
|
// activity: user.activity,
|
||||||
scoreType: SCORE_INVITE_INVITEE,
|
// scoreType: SCORE_INVITE_INVITEE,
|
||||||
scoreParams: {
|
// scoreParams: {
|
||||||
date: dateTag,
|
// date: dateTag,
|
||||||
user: inviteUser.id,
|
// user: inviteUser.id,
|
||||||
},
|
// },
|
||||||
})
|
// })
|
||||||
user.inviteUser = inviteUser.id
|
user.inviteUser = inviteUser.id
|
||||||
await user.save()
|
await user.save()
|
||||||
return { score: shareCfg.invitee }
|
// return { score: shareCfg.invitee }
|
||||||
|
return { score: 0 }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -32,15 +32,16 @@ class BoxController extends BaseController {
|
|||||||
}).sort({
|
}).sort({
|
||||||
level: -1,
|
level: -1,
|
||||||
})
|
})
|
||||||
for (let chest of chests) {
|
// 20240328: 不再有上锁的箱子了
|
||||||
// TODO:: 待规则确定后, 将符合条件的锁定的箱子解锁
|
// for (let chest of chests) {
|
||||||
if (chest.status === 0) {
|
// // TODO:: 待规则确定后, 将符合条件的锁定的箱子解锁
|
||||||
if (user.allTaskFinished()) {
|
// if (chest.status === 0) {
|
||||||
chest.status = 1
|
// if (user.allTaskFinished()) {
|
||||||
await chest.save()
|
// chest.status = 1
|
||||||
}
|
// await chest.save()
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
const results = chests.map(chest => chest.toJson())
|
const results = chests.map(chest => chest.toJson())
|
||||||
for (let result of results) {
|
for (let result of results) {
|
||||||
if (result.stat > 0 && chestSet.has(result.id)) {
|
if (result.stat > 0 && chestSet.has(result.id)) {
|
||||||
@ -132,7 +133,7 @@ class BoxController extends BaseController {
|
|||||||
const chestsForUser = await ActivityChest.find({ user: uid, activity: user.activity })
|
const chestsForUser = await ActivityChest.find({ user: uid, activity: user.activity })
|
||||||
// 如果用户没有宝箱, 则说明用户是新用户, 生成一个宝箱
|
// 如果用户没有宝箱, 则说明用户是新用户, 生成一个宝箱
|
||||||
if (chestsForUser.length === 0) {
|
if (chestsForUser.length === 0) {
|
||||||
const newChest = generateNewChest(uid, user.activity, 1, ChestStatusEnum.LOCKED)
|
const newChest = generateNewChest(uid, user.activity, 1, ChestStatusEnum.NORMAL)
|
||||||
await newChest.save()
|
await newChest.save()
|
||||||
return {
|
return {
|
||||||
score: 0,
|
score: 0,
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { INVITE_REBATE, INVITE_REBATE_LEVEL, SCORE_INVITE_REBATE } from 'common/Constants'
|
||||||
|
import { ActivityUser } from 'models/ActivityUser'
|
||||||
import { ScoreRecord } from 'models/ScoreRecord'
|
import { ScoreRecord } from 'models/ScoreRecord'
|
||||||
import { ZRedisClient } from 'zutils'
|
import { ZRedisClient } from 'zutils'
|
||||||
import { formatDate } from 'zutils/utils/date.util'
|
import { formatDate } from 'zutils/utils/date.util'
|
||||||
@ -10,6 +12,7 @@ const rankLevels = require('../../configs/uaw_rank_level.json')
|
|||||||
* activity: 活动id
|
* activity: 活动id
|
||||||
* scoreType: 分数类型
|
* scoreType: 分数类型
|
||||||
* scoreParams: 额外的参数
|
* scoreParams: 额外的参数
|
||||||
|
* rebatLevel: 返利层级
|
||||||
*/
|
*/
|
||||||
export const updateRankScore = async ({
|
export const updateRankScore = async ({
|
||||||
user,
|
user,
|
||||||
@ -17,12 +20,14 @@ export const updateRankScore = async ({
|
|||||||
activity,
|
activity,
|
||||||
scoreType,
|
scoreType,
|
||||||
scoreParams,
|
scoreParams,
|
||||||
|
rebateLevel = INVITE_REBATE_LEVEL,
|
||||||
}: {
|
}: {
|
||||||
user: string
|
user: string
|
||||||
score: number
|
score: number
|
||||||
activity: string
|
activity: string
|
||||||
scoreType: string
|
scoreType: string
|
||||||
scoreParams: any
|
scoreParams: any
|
||||||
|
rebateLevel?: number
|
||||||
}) => {
|
}) => {
|
||||||
let record = new ScoreRecord({
|
let record = new ScoreRecord({
|
||||||
user: user,
|
user: user,
|
||||||
@ -37,6 +42,22 @@ export const updateRankScore = async ({
|
|||||||
// add daily score
|
// add daily score
|
||||||
const dailyKey = rankKey(activity, new Date())
|
const dailyKey = rankKey(activity, new Date())
|
||||||
await updateRank(dailyKey, score, user)
|
await updateRank(dailyKey, score, user)
|
||||||
|
// 给邀请人返利
|
||||||
|
if (rebateLevel > 0) {
|
||||||
|
let userMod = await ActivityUser.findById(user)
|
||||||
|
if (userMod?.inviteUser) {
|
||||||
|
const score1 = Math.floor(scoreParams.score * INVITE_REBATE)
|
||||||
|
let scoreParams1 = Object.assign({ fromUser: user }, scoreParams)
|
||||||
|
await updateRankScore({
|
||||||
|
user: userMod.inviteUser,
|
||||||
|
score: score1,
|
||||||
|
activity,
|
||||||
|
scoreType: SCORE_INVITE_REBATE,
|
||||||
|
scoreParams: scoreParams1,
|
||||||
|
rebateLevel: rebateLevel - 1,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user