add referrer stats to top
This commit is contained in:
parent
41226245c5
commit
ee17518abf
|
@ -135,6 +135,18 @@ export default {
|
|||
ORDER BY ncomments DESC NULLS LAST, users.created_at DESC
|
||||
OFFSET $2
|
||||
LIMIT ${LIMIT}`, decodedCursor.time, decodedCursor.offset)
|
||||
} else if (sort === 'referrals') {
|
||||
users = await models.$queryRaw(`
|
||||
SELECT users.*, count(*) as referrals
|
||||
FROM users
|
||||
JOIN "users" referree on users.id = referree."referrerId"
|
||||
WHERE referree.created_at <= $1
|
||||
AND NOT users."hideFromTopUsers"
|
||||
${within('referree', when)}
|
||||
GROUP BY users.id
|
||||
ORDER BY referrals DESC NULLS LAST, users.created_at DESC
|
||||
OFFSET $2
|
||||
LIMIT ${LIMIT}`, decodedCursor.time, decodedCursor.offset)
|
||||
} else {
|
||||
users = await models.$queryRaw(`
|
||||
SELECT u.id, u.name, u."photoId", floor(sum(amount)/1000) as stacked
|
||||
|
@ -151,7 +163,13 @@ export default {
|
|||
FROM "Earn"
|
||||
JOIN users on users.id = "Earn"."userId"
|
||||
WHERE "Earn".msats > 0 ${within('Earn', when)}
|
||||
AND NOT users."hideFromTopUsers")) u
|
||||
AND NOT users."hideFromTopUsers")
|
||||
UNION ALL
|
||||
(SELECT users.*, "ReferralAct".msats as amount
|
||||
FROM "ReferralAct"
|
||||
JOIN users on users.id = "ReferralAct"."referrerId"
|
||||
WHERE "ReferralAct".msats > 0 ${within('ReferralAct', when)}
|
||||
AND NOT users."hideFromTopUsers")) u
|
||||
GROUP BY u.id, u.name, u.created_at, u."photoId"
|
||||
ORDER BY stacked DESC NULLS LAST, created_at DESC
|
||||
OFFSET $2
|
||||
|
@ -453,13 +471,18 @@ export default {
|
|||
const [{ stacked }] = await models.$queryRaw(`
|
||||
SELECT sum(amount) as stacked
|
||||
FROM
|
||||
((SELECT sum("ItemAct".msats) as amount
|
||||
((SELECT coalesce(sum("ItemAct".msats),0) as amount
|
||||
FROM "ItemAct"
|
||||
JOIN "Item" on "ItemAct"."itemId" = "Item".id
|
||||
WHERE act <> 'BOOST' AND "ItemAct"."userId" <> $2 AND "Item"."userId" = $2
|
||||
AND "ItemAct".created_at >= $1)
|
||||
UNION ALL
|
||||
(SELECT sum("Earn".msats) as amount
|
||||
(SELECT coalesce(sum("ReferralAct".msats),0) as amount
|
||||
FROM "ReferralAct"
|
||||
WHERE "ReferralAct".msats > 0 AND "ReferralAct"."referrerId" = $2
|
||||
AND "ReferralAct".created_at >= $1)
|
||||
UNION ALL
|
||||
(SELECT coalesce(sum("Earn".msats), 0) as amount
|
||||
FROM "Earn"
|
||||
WHERE "Earn".msats > 0 AND "Earn"."userId" = $2
|
||||
AND "Earn".created_at >= $1)) u`, withinDate(when), Number(user.id))
|
||||
|
@ -485,6 +508,16 @@ export default {
|
|||
|
||||
return (msats && msatsToSats(msats)) || 0
|
||||
},
|
||||
referrals: async (user, { when }, { models }) => {
|
||||
return await models.user.count({
|
||||
where: {
|
||||
referrerId: user.id,
|
||||
createdAt: {
|
||||
gte: withinDate(when)
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
sats: async (user, args, { models, me }) => {
|
||||
if (me?.id !== user.id) {
|
||||
return 0
|
||||
|
|
|
@ -45,6 +45,7 @@ export default gql`
|
|||
ncomments(when: String): Int!
|
||||
stacked(when: String): Int!
|
||||
spent(when: String): Int!
|
||||
referrals(when: String): Int!
|
||||
freePosts: Int!
|
||||
freeComments: Int!
|
||||
hasInvites: Boolean!
|
||||
|
|
|
@ -41,7 +41,7 @@ export default function TopHeader ({ cat }) {
|
|||
onChange={(formik, e) => top({ ...formik?.values, sort: e.target.value })}
|
||||
name='sort'
|
||||
size='sm'
|
||||
items={cat === 'users' ? ['stacked', 'spent', 'comments', 'posts'] : ['votes', 'comments', 'sats']}
|
||||
items={cat === 'users' ? ['stacked', 'spent', 'comments', 'posts', 'referrals'] : ['votes', 'comments', 'sats']}
|
||||
/>
|
||||
for
|
||||
<Select
|
||||
|
|
|
@ -38,6 +38,7 @@ export default function UserList ({ users }) {
|
|||
{abbrNum(user.ncomments)} comments
|
||||
</a>
|
||||
</Link>
|
||||
{user.referrals > 0 && <span> \ {abbrNum(user.referrals)} referrals</span>}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -135,6 +135,7 @@ export const TOP_USERS = gql`
|
|||
spent(when: $when)
|
||||
ncomments(when: $when)
|
||||
nitems(when: $when)
|
||||
referrals(when: $when)
|
||||
}
|
||||
cursor
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue