Referee.php 2.2 KB

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