Referee.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace app\common\model\dealer;
  3. use app\common\model\BaseModel;
  4. /**
  5. * 分销商推荐关系模型
  6. * Class Referee
  7. * @package app\common\model\dealer
  8. */
  9. class Referee extends BaseModel
  10. {
  11. protected $name = 'dealer_referee';
  12. /**
  13. * 关联用户表
  14. * @return \think\model\relation\BelongsTo
  15. */
  16. public function user()
  17. {
  18. return $this->belongsTo('app\api\model\User');
  19. }
  20. /**
  21. * 关联分销商用户表
  22. * @return \think\model\relation\BelongsTo
  23. */
  24. public function dealer()
  25. {
  26. return $this->belongsTo('User')->where('is_delete', '=', 0);
  27. }
  28. /**
  29. * 获取上级用户id
  30. * @param $user_id
  31. * @param $level
  32. * @param bool $is_dealer 必须是分销商
  33. * @return bool|mixed
  34. * @throws \think\exception\DbException
  35. */
  36. public static function getRefereeUserId($user_id, $level, $is_dealer = false)
  37. {
  38. $dealer_id = (new self)->where(compact('user_id', 'level'))
  39. ->value('dealer_id');
  40. if (!$dealer_id) return 0;
  41. return $is_dealer ? (User::isDealerUser($dealer_id) ? $dealer_id : 0) : $dealer_id;
  42. }
  43. /**
  44. * 获取我的团队列表
  45. * @param $user_id
  46. * @param int $level
  47. * @return \think\Paginator
  48. * @throws \think\exception\DbException
  49. */
  50. public function getList($user_id, $level = -1)
  51. {
  52. $level > -1 && $this->where('referee.level', '=', $level);
  53. return $this->with(['dealer', 'user'])
  54. ->alias('referee')
  55. ->field('referee.*')
  56. ->join('user', 'user.user_id = referee.user_id')
  57. ->where('referee.dealer_id', '=', $user_id)
  58. ->where('user.is_delete', '=', 0)
  59. ->order(['referee.create_time' => 'desc'])
  60. ->paginate(15, false, [
  61. 'query' => \request()->request()
  62. ]);
  63. }
  64. }