BalanceService.php 2.6 KB

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