ActivityInviteGate.java 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package com.xuekairui.common.activity;
  2. /**
  3. * 邀请有礼活动门面(可选实现,由活动模块提供)。
  4. * <p>
  5. * 邀请模块不直接发放邀请奖励,而是通过该接口委托给活动模块统一处理。
  6. * 被邀请人入驻审核通过后触发发奖。已入驻用户补填邀请码时通过 {@link #grantRewardForApprovedUser} 发放。
  7. * <p>
  8. * 默认无实现时:邀请模块保持兼容,不发放奖励(活动模块未加载)。
  9. */
  10. public interface ActivityInviteGate {
  11. /**
  12. * 已入驻用户补填邀请码时发放奖励(依赖活动配置,活动未开启则不发放)。
  13. * <p>
  14. * 场景:被邀请人已通过入驻审核,后补填邀请码 → 邀请人应获得奖励。
  15. * 幂等由 uk_invitee 唯一索引保障。
  16. *
  17. * @param inviterId 邀请人ID
  18. * @param inviteeId 被邀请人ID(已入驻)
  19. */
  20. void grantRewardForApprovedUser(Long inviterId, Long inviteeId);
  21. /**
  22. * 获取邀请人奖励天数(从活动配置,默认30天=1个月)
  23. */
  24. default int getInviterRewardDays() {
  25. return 30;
  26. }
  27. /**
  28. * 获取邀请人总邀请上限(从活动配置,默认30人)
  29. */
  30. default int getMaxTotalInvites() {
  31. return 30;
  32. }
  33. }