mirror of
https://github.com/anomalyco/opencode.git
synced 2026-05-30 20:44:31 +00:00
fix: referral edge case
This commit is contained in:
parent
e9966b651f
commit
3f6cb631c3
1 changed files with 23 additions and 16 deletions
|
|
@ -377,23 +377,30 @@ export namespace Referral {
|
|||
.then((rows) => rows[0])
|
||||
if (!referral) return
|
||||
|
||||
const result = await tx
|
||||
.insert(ReferralRewardTable)
|
||||
.ignore()
|
||||
.values([
|
||||
{
|
||||
workspaceID: referral.workspaceID,
|
||||
referralID: referral.id,
|
||||
amount: REWARD_AMOUNT,
|
||||
},
|
||||
{
|
||||
workspaceID: input.workspaceID,
|
||||
referralID: referral.id,
|
||||
amount: REWARD_AMOUNT,
|
||||
},
|
||||
])
|
||||
await tx.insert(ReferralRewardTable).ignore().values({
|
||||
workspaceID: referral.workspaceID,
|
||||
referralID: referral.id,
|
||||
amount: REWARD_AMOUNT,
|
||||
})
|
||||
|
||||
if (result.rowsAffected === 0) return
|
||||
const existingInviteeReward = await tx
|
||||
.select({ workspaceID: ReferralRewardTable.workspaceID })
|
||||
.from(ReferralRewardTable)
|
||||
.where(
|
||||
and(
|
||||
eq(ReferralRewardTable.referralID, referral.id),
|
||||
sql`${ReferralRewardTable.workspaceID} <> ${referral.workspaceID}`,
|
||||
isNull(ReferralRewardTable.timeDeleted),
|
||||
),
|
||||
)
|
||||
.then((rows) => rows[0])
|
||||
if (existingInviteeReward) return
|
||||
|
||||
await tx.insert(ReferralRewardTable).ignore().values({
|
||||
workspaceID: input.workspaceID,
|
||||
referralID: referral.id,
|
||||
amount: REWARD_AMOUNT,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue