BalanceService.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. const SERVICE_SUCCESS = 4;
  13. private $_type = [
  14. ['title' => '新用户注册奖励', 'remark' => '邀请新用户注册奖励'],
  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', 'agent' => 'balance_register_agent'],
  22. ['user' => 'balance_improve_resume_user', 'broker' => 'balance_improve_resume_broker', 'agent' => 'balance_improve_resume_agent'],
  23. ['user' => 'balance_certification_user', 'broker' => 'balance_certification_broker', 'agent' => 'balance_certification_agent'],
  24. ['user' => 'balance_entry_user', 'broker' => 'balance_entry_broker', 'agent' => 'balance_entry_agent'],
  25. ['user' => 'jbangjia_service_user', 'broker' => 'jbangjia_service_broker', 'agent' => 'jbangjia_service_agent'],
  26. ];
  27. public function add($user_id, $type_index)
  28. {
  29. //获取配置
  30. $param = UserParamModel::where(1)->findOrEmpty();
  31. $commission = $param['commission'];
  32. $type = $this->_type[$type_index];
  33. $field = $this->_field[$type_index];
  34. $user = UserModel::where('id', $user_id)->find();
  35. //用户奖励
  36. if (!empty($commission[$field['user']])) {
  37. $balance = new UserBalance();
  38. $balance->save([
  39. 'userid' => $user_id,
  40. 'title' => $type['title'],
  41. 'origin_value' => $user['balance'],
  42. 'value' => $commission[$field['user']],
  43. 'remark' => $type['remark'],
  44. 'createtime' => time(),
  45. 'yeartime' => date("Y"),
  46. 'monthtime' => date("Ym"),
  47. ]);
  48. $user->balance += $commission[$field['user']];
  49. $user->balance_total += $commission[$field['user']];
  50. $user->save();
  51. }
  52. //经纪人收益
  53. if (!empty($commission[$field['broker']])) {
  54. $incomeService = new IncomeService();
  55. $incomeService->add($user['broker_id'], $commission[$field['broker']], $type['title'], $type['remark']);
  56. }
  57. //门店收益
  58. if (!empty($commission[$field['agent']])) {
  59. $moneyService = new AgentMoneyService();
  60. $moneyService->add($user['broker_id'], $commission[$field['broker']], $type['title'], $type['remark']);
  61. }
  62. }
  63. }