BalanceService.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace app\common\service;
  3. use app\common\model\UserBalance;
  4. use app\common\model\UserParam as UserParamModel;
  5. use app\common\model\User as UserModel;
  6. class BalanceService extends BaseService
  7. {
  8. const REGISTER = 0;
  9. const IMPROVERESUME = 1;
  10. const CERTIFICATION = 2;
  11. const ENTRY = 3;
  12. private $_type = [
  13. ['title' => '新用户注册奖励', 'remark' => '邀请新用户注册奖励'],
  14. ['title' => '首次完善简历奖励', 'remark' => '首次完善简历奖励'],
  15. ['title' => '首次实名认证通过奖励', 'remark' => '首次实名认证通过奖励'],
  16. ['title' => '对接成功奖励', 'remark' => '对接成功并入职奖励'],
  17. ];
  18. private $_field = [
  19. ['user' => 'balance_register_user', 'broker' => 'balance_register_broker'],
  20. ['user' => 'balance_improve_resume_user', 'broker' => 'balance_improve_resume_broker'],
  21. ['user' => 'balance_certification_user', 'broker' => 'balance_certification_broker'],
  22. ['user' => 'balance_entry_user', 'broker' => 'balance_entry_broker'],
  23. ];
  24. public function add($user_id, $type_index)
  25. {
  26. //获取配置
  27. $param = UserParamModel::where(1)->findOrEmpty();
  28. $commission = $param['commission'];
  29. $type = $this->_type[$type_index];
  30. $field = $this->_field[$type_index];
  31. $user = UserModel::where('id', $user_id)->find();
  32. //用户奖励
  33. if (!empty($commission[$field['user']])) {
  34. $balance = new UserBalance();
  35. $balance->save([
  36. 'userid' => $user_id,
  37. 'title' => $type['title'],
  38. 'origin_value' => $user['balance'],
  39. 'value' => $commission[$field['user']],
  40. 'remark' => $type['remark'],
  41. 'createtime' => time(),
  42. 'yeartime' => date("Y"),
  43. 'monthtime' => date("Ym"),
  44. ]);
  45. $user->balance += $commission[$field['user']];
  46. $user->balance_total += $commission[$field['user']];
  47. $user->save();
  48. }
  49. //经纪人收益
  50. if (!empty($commission[$field['broker']])) {
  51. $incomeService = new IncomeService();
  52. $incomeService->add($user['broker_id'], $commission[$field['broker']], $type['title'], $type['remark']);
  53. }
  54. }
  55. }