UserBrokerageLevelJob.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace ln\jobs;
  3. use app\common\repositories\user\UserBrokerageRepository;
  4. use app\common\repositories\user\UserRepository;
  5. use ln\interfaces\JobInterface;
  6. use think\facade\Log;
  7. class UserBrokerageLevelJob implements JobInterface
  8. {
  9. public function fire($job, $data)
  10. {
  11. try {
  12. $user = app()->make(UserRepository::class)->get($data['uid']);
  13. if ($user) {
  14. $flag = true;
  15. if ($data['type'] == 'spread_money') {
  16. $user->spread_pay_price = bcadd($user->spread_pay_price, $data['inc'], 2);
  17. } else if ($data['type'] == 'spread_pay_num') {
  18. $user->spread_pay_count = bcadd($user->spread_pay_count, $data['inc'], 0);
  19. } else {
  20. $flag = false;
  21. }
  22. if ($flag) {
  23. $user->save();
  24. }
  25. }
  26. if ($user && $user->is_promoter) {
  27. app()->make(UserBrokerageRepository::class)->inc($user, $data['type'], $data['inc']);
  28. }
  29. } catch (\Exception $e) {
  30. Log::info('分销等级同步失败: ' . var_export($data, 1) . $e->getMessage());
  31. }
  32. $job->delete();
  33. }
  34. public function failed($data)
  35. {
  36. }
  37. }