Referee.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace app\common\model\plus\agent;
  3. use app\common\model\BaseModel;
  4. /**
  5. * 分销商推荐关系模型
  6. */
  7. class Referee extends BaseModel
  8. {
  9. protected $name = 'agent_referee';
  10. protected $pk = 'id';
  11. /**
  12. * 关联用户表
  13. */
  14. public function user()
  15. {
  16. return $this->belongsTo('app\\common\\model\\user\\User');
  17. }
  18. /**
  19. * 关联分销商用户表
  20. */
  21. public function agent()
  22. {
  23. return $this->belongsTo('app\\common\\model\\plus\\agent\\User')->where('is_delete', '=', 0);
  24. }
  25. /**
  26. * 关联分销商用户表
  27. */
  28. public function agent1()
  29. {
  30. return $this->belongsTo('app\\common\\model\\plus\\agent\\User', 'agent_id')->where('is_delete', '=', 0);
  31. }
  32. /**
  33. * 获取上级用户id
  34. */
  35. public static function getRefereeUserId($user_id, $level, $is_agent = false)
  36. {
  37. $agent_id = (new self)->where(compact('user_id', 'level'))
  38. ->value('agent_id');
  39. if (!$agent_id) return 0;
  40. return $is_agent ? (User::isAgentUser($agent_id) ? $agent_id : 0) : $agent_id;
  41. }
  42. /**
  43. * 获取我的团队列表
  44. */
  45. public function getList($user_id, $level = -1)
  46. {
  47. $model = $this;
  48. if($level > -1){
  49. $model = $model->where('referee.level', '=', $level);
  50. }
  51. return $model->with(['agent', 'user'])
  52. ->alias('referee')
  53. ->field('referee.*')
  54. ->join('user', 'user.user_id = referee.user_id','left')
  55. ->where('referee.agent_id', '=', $user_id)
  56. ->where('user.is_delete', '=', 0)
  57. ->order(['referee.create_time' => 'desc'])
  58. ->paginate(15);
  59. }
  60. }