Referee.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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 dealer1()
  25. {
  26. return $this->belongsTo('User', 'dealer_id')->where('is_delete', '=', 0);
  27. }
  28. /**
  29. * 关联分销商用户表
  30. * @return \think\model\relation\BelongsTo
  31. */
  32. public function dealer()
  33. {
  34. return $this->belongsTo('User')->where('is_delete', '=', 0);
  35. }
  36. /**
  37. * 获取上级用户id
  38. * @param $user_id
  39. * @param $level
  40. * @param bool $is_dealer 必须是分销商
  41. * @return bool|mixed
  42. * @throws \think\exception\DbException
  43. */
  44. public static function getRefereeUserId($user_id, $level, $is_dealer = false)
  45. {
  46. $dealer_id = (new self)->where(compact('user_id', 'level'))
  47. ->value('dealer_id');
  48. if (!$dealer_id) return 0;
  49. return $is_dealer ? (User::isDealerUser($dealer_id) ? $dealer_id : 0) : $dealer_id;
  50. }
  51. /**
  52. * 获取我的团队列表
  53. * @param $user_id
  54. * @param int $level
  55. * @return \think\Paginator
  56. * @throws \think\exception\DbException
  57. */
  58. public function getList($user_id, $level = -1)
  59. {
  60. $level > -1 && $this->where('referee.level', '=', $level);
  61. return $this->with(['dealer', 'user'])
  62. ->alias('referee')
  63. ->field('referee.*')
  64. ->join('user', 'user.user_id = referee.user_id')
  65. ->where('referee.dealer_id', '=', $user_id)
  66. ->where('user.is_delete', '=', 0)
  67. ->order(['referee.create_time' => 'desc'])
  68. ->paginate(15, false, [
  69. 'query' => \request()->request()
  70. ]);
  71. }
  72. }