13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'app/workers/reward_workers/set_user_benefit_expiry.rb', line 13
def perform(first_user_id, last_user_id)
User.where(id: first_user_id..last_user_id).find_each do |user|
next if user.blank?
points_expiry_date = Reward.points_expiry_date(user)
next if points_expiry_date.blank?
reminder_at = (points_expiry_date - 7.days).beginning_of_day
user_benefit = UserBenefitExpiry.find_or_initialize_by(user_id: user.id)
user_benefit.assign_attributes(
total_points: user.get_credits,
user_loyalty_id: user.user_loyalty&.id,
expires_at: Time.use_zone(user.time_zone) { points_expiry_date.end_of_day },
reminder_d7: reminder_at,
)
user_benefit.save!
end
end
|