BalanceService.php 2.6 KB

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