feat: 新增推广等级激励功能

This commit is contained in:
xiaojunnuo
2026-05-31 01:01:30 +08:00
parent 3c2d450aa8
commit 5096df5cc0
20 changed files with 236 additions and 53 deletions
@@ -137,6 +137,5 @@ export class MainConfiguration {
});
logger.info('当前环境:', this.app.getEnv()); // prod
}
}
@@ -63,7 +63,7 @@ export class RegisterController extends BaseController {
password: body.password,
} as any;
const newUser = await this.userService.register(body.type, registerUser, async txManager => {
await this.inviteService.bindInvitee(registerUser.id, body.inviteCode, txManager);
await this.inviteService.bindInvitee({ manager: txManager }, { inviteeUserId: registerUser.id, inviteCode: body.inviteCode });
});
return this.ok(newUser);
} else if (body.type === 'mobile') {
@@ -85,7 +85,7 @@ export class RegisterController extends BaseController {
password: body.password,
} as any;
const newUser = await this.userService.register(body.type, registerUser, async txManager => {
await this.inviteService.bindInvitee(registerUser.id, body.inviteCode, txManager);
await this.inviteService.bindInvitee({ manager: txManager }, { inviteeUserId: registerUser.id, inviteCode: body.inviteCode });
});
return this.ok(newUser);
} else if (body.type === 'email') {
@@ -104,7 +104,7 @@ export class RegisterController extends BaseController {
password: body.password,
} as any;
const newUser = await this.userService.register(body.type, registerUser, async txManager => {
await this.inviteService.bindInvitee(registerUser.id, body.inviteCode, txManager);
await this.inviteService.bindInvitee({ manager: txManager }, { inviteeUserId: registerUser.id, inviteCode: body.inviteCode });
});
return this.ok(newUser);
}
@@ -65,6 +65,8 @@ export class BasicSettingsController extends BaseController {
const setting = await this.sysSettingsService.getSetting<SysInviteCommissionSetting>(SysInviteCommissionSetting);
return {
enabled: setting.enabled,
levelEnabled: setting.levelEnabled === true,
fixedCommissionRate: setting.fixedCommissionRate || 10,
};
}
@@ -139,7 +139,7 @@ export class LoginService {
password: '',
} as any;
info = await this.userService.register('mobile', registerUser, async txManager => {
await this.inviteService.bindInvitee(registerUser.id, req.inviteCode, txManager);
await this.inviteService.bindInvitee({ manager: txManager }, { inviteeUserId: registerUser.id, inviteCode: req.inviteCode });
});
}
this.clearCacheOnSuccess(mobile);