UserLevelRelationRepository.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Repositories;
  4. use App\Model\UserLevelRelationModel;
  5. use App\Repositories\Utils\M3u8CacheRepository;
  6. use Hyperf\Database\Model\Builder;
  7. use KZ2\Repositories\Model\Repository;
  8. class UserLevelRelationRepository extends Repository
  9. {
  10. public function model()
  11. {
  12. return UserLevelRelationModel::class;
  13. }
  14. /**
  15. * 获取邀请的用户总数
  16. *
  17. * @param $userId
  18. * @return int
  19. */
  20. public function getCountNum(array $where = [])
  21. {
  22. return UserLevelRelationModel::where($where)->count();
  23. }
  24. /**
  25. * 查询某一个人邀请直接关系(一级)分页列表.
  26. * @param string $userCode
  27. * @param int $page
  28. * @param int $pageSize
  29. * @return array
  30. */
  31. public function userInvitePages($userCode, $page = 1, $pageSize = 10)
  32. {
  33. $page = format_page($page);
  34. $pageSize = intval($pageSize);
  35. $columns = ['id', 'relation_uid', 'uid', 'created_at'];
  36. $arrData = $lists = UserLevelRelationModel::query()
  37. ->with(['childUser:id,code,nick,avatar,parent_uid'])
  38. ->where(['relation_uid' => $userCode, 'relation_level' => 1])
  39. ->orderBy('id', 'DESC')
  40. ->paginate($pageSize, $columns, 'page', $page)
  41. ->toArray();
  42. $arrData['data'] = [];
  43. if (!empty($lists['data'])) {
  44. foreach ($lists['data'] as $k => &$v) {
  45. $arrData['data'][$k] = [
  46. 'user_uid' => $v['child_user']['code'],
  47. 'nick' => $v['child_user']['nick'],
  48. 'avatar' => !empty($v['child_user']['avatar']) ? M3u8CacheRepository::getImageUrl($v['child_user']['avatar']) : '',
  49. 'invited_at' => $v['created_at'],
  50. ];
  51. }
  52. }
  53. return $arrData;
  54. }
  55. }