被邀请人不再给积分, 在被邀请人获得积分时, 邀请人都会得到额外积分
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 RESET_STEP = 2
|
||||
// 邀请用户得到额外分数
|
||||
export const INVITE_REBATE = 0.2
|
||||
// 向上追溯的默认层级
|
||||
export const INVITE_REBATE_LEVEL = 1
|
||||
|
||||
// 积分类型-邀请用户
|
||||
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_SOCIAL_TASK = 'Social Tasks'
|
||||
// 积分类型-邀请用户额外收益
|
||||
export const SCORE_INVITE_REBATE = 'invite_rebate'
|
||||
|
@ -1,13 +1,10 @@
|
||||
import { ActivityInfo } from 'models/ActivityInfo'
|
||||
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 { ScoreRecord } from 'models/ScoreRecord'
|
||||
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'
|
||||
const shareCfg = require('../../configs/share_cfg.json')
|
||||
|
||||
const MAX_LIMIT = 100
|
||||
export default class ActivityController extends BaseController {
|
||||
@ -52,32 +49,33 @@ export default class ActivityController extends BaseController {
|
||||
if (!inviteUser) {
|
||||
throw new ZError(12, 'invalid invite code')
|
||||
}
|
||||
const dateTag = formatDate(new Date())
|
||||
// 更新邀请积分-邀请人
|
||||
await updateRankScore({
|
||||
user: inviteUser.id,
|
||||
score: shareCfg.inviter,
|
||||
activity: user.activity,
|
||||
scoreType: SCORE_INVITE_USER,
|
||||
scoreParams: {
|
||||
date: dateTag,
|
||||
user: user.id,
|
||||
},
|
||||
})
|
||||
// 更新邀请积分-被邀请人
|
||||
await updateRankScore({
|
||||
user: user.id,
|
||||
score: shareCfg.invitee,
|
||||
activity: user.activity,
|
||||
scoreType: SCORE_INVITE_INVITEE,
|
||||
scoreParams: {
|
||||
date: dateTag,
|
||||
user: inviteUser.id,
|
||||
},
|
||||
})
|
||||
// const dateTag = formatDate(new Date())
|
||||
// // 更新邀请积分-邀请人
|
||||
// await updateRankScore({
|
||||
// user: inviteUser.id,
|
||||
// score: shareCfg.inviter,
|
||||
// activity: user.activity,
|
||||
// scoreType: SCORE_INVITE_USER,
|
||||
// scoreParams: {
|
||||
// date: dateTag,
|
||||
// user: user.id,
|
||||
// },
|
||||
// })
|
||||
// // 更新邀请积分-被邀请人
|
||||
// await updateRankScore({
|
||||
// user: user.id,
|
||||
// score: shareCfg.invitee,
|
||||
// activity: user.activity,
|
||||
// scoreType: SCORE_INVITE_INVITEE,
|
||||
// scoreParams: {
|
||||
// date: dateTag,
|
||||
// user: inviteUser.id,
|
||||
// },
|
||||
// })
|
||||
user.inviteUser = inviteUser.id
|
||||
await user.save()
|
||||
return { score: shareCfg.invitee }
|
||||
// return { score: shareCfg.invitee }
|
||||
return { score: 0 }
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -32,15 +32,16 @@ class BoxController extends BaseController {
|
||||
}).sort({
|
||||
level: -1,
|
||||
})
|
||||
for (let chest of chests) {
|
||||
// TODO:: 待规则确定后, 将符合条件的锁定的箱子解锁
|
||||
if (chest.status === 0) {
|
||||
if (user.allTaskFinished()) {
|
||||
chest.status = 1
|
||||
await chest.save()
|
||||
}
|
||||
}
|
||||
}
|
||||
// 20240328: 不再有上锁的箱子了
|
||||
// for (let chest of chests) {
|
||||
// // TODO:: 待规则确定后, 将符合条件的锁定的箱子解锁
|
||||
// if (chest.status === 0) {
|
||||
// if (user.allTaskFinished()) {
|
||||
// chest.status = 1
|
||||
// await chest.save()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
const results = chests.map(chest => chest.toJson())
|
||||
for (let result of results) {
|
||||
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 })
|
||||
// 如果用户没有宝箱, 则说明用户是新用户, 生成一个宝箱
|
||||
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()
|
||||
return {
|
||||
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 { ZRedisClient } from 'zutils'
|
||||
import { formatDate } from 'zutils/utils/date.util'
|
||||
@ -10,6 +12,7 @@ const rankLevels = require('../../configs/uaw_rank_level.json')
|
||||
* activity: 活动id
|
||||
* scoreType: 分数类型
|
||||
* scoreParams: 额外的参数
|
||||
* rebatLevel: 返利层级
|
||||
*/
|
||||
export const updateRankScore = async ({
|
||||
user,
|
||||
@ -17,12 +20,14 @@ export const updateRankScore = async ({
|
||||
activity,
|
||||
scoreType,
|
||||
scoreParams,
|
||||
rebateLevel = INVITE_REBATE_LEVEL,
|
||||
}: {
|
||||
user: string
|
||||
score: number
|
||||
activity: string
|
||||
scoreType: string
|
||||
scoreParams: any
|
||||
rebateLevel?: number
|
||||
}) => {
|
||||
let record = new ScoreRecord({
|
||||
user: user,
|
||||
@ -37,6 +42,22 @@ export const updateRankScore = async ({
|
||||
// add daily score
|
||||
const dailyKey = rankKey(activity, new Date())
|
||||
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