SharedProsperityUserRepository.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. namespace app\common\repositories\shared;
  3. use app\common\dao\shared\SharedProsperityUserDao;
  4. use app\common\repositories\BaseRepository;
  5. use app\entity\data\shared\SharedProsperityUserEntity;
  6. use think\db\exception\DbException;
  7. class SharedProsperityUserRepository extends BaseRepository
  8. {
  9. protected $dao;
  10. /**
  11. * SharedProsperityUserRepository constructor.
  12. * @param SharedProsperityUserDao $dao
  13. */
  14. public function __construct(SharedProsperityUserDao $dao)
  15. {
  16. $this->dao = $dao;
  17. }
  18. /**
  19. * @param int $userId
  20. * @return SharedProsperityUserEntity
  21. */
  22. public function getSharedProsperityUserEntityByUserId(int $userId): SharedProsperityUserEntity
  23. {
  24. $entityList = $this->getSharedProsperityUserEntityListByUserIdList([$userId]);
  25. $entity = array_shift($entityList);
  26. if ($entity instanceof SharedProsperityUserEntity) {
  27. return $entity;
  28. } else {
  29. /** @var SharedProsperityUserEntity */
  30. return SharedProsperityUserEntity::newInstance();
  31. }
  32. }
  33. /**
  34. * @param array $userIdList
  35. * @return SharedProsperityUserEntity[]
  36. */
  37. public function getSharedProsperityUserEntityListByUserIdList(array $userIdList): array
  38. {
  39. return $this->dao->getSharedProsperityUserEntityListByUserIdList($userIdList);
  40. }
  41. /**
  42. * @param array $userIdList
  43. * @return SharedProsperityUserEntity[]
  44. */
  45. public function getSharedProsperityUserEntityMapByUserIdList(array $userIdList): array
  46. {
  47. $sharedProsperityUserEntityList = $this->dao->getSharedProsperityUserEntityListByUserIdList($userIdList);
  48. /** @var SharedProsperityUserEntity[] $sharedProsperityUserEntityMapByUserId */
  49. $sharedProsperityUserEntityMapByUserId = array_column($sharedProsperityUserEntityList, null, 'userId');
  50. return $sharedProsperityUserEntityMapByUserId;
  51. }
  52. public function create($data)
  53. {
  54. return $this->dao->create($data);
  55. }
  56. /**
  57. * @param SharedProsperityUserEntity $sharedProsperityUserEntity
  58. * @return SharedProsperityUserEntity
  59. */
  60. public function createByEntity(SharedProsperityUserEntity $sharedProsperityUserEntity): SharedProsperityUserEntity
  61. {
  62. $result = $this->create($sharedProsperityUserEntity->toUnderlineArray())->toArray();
  63. /** @var SharedProsperityUserEntity $entity */
  64. $entity = SharedProsperityUserEntity::newInstance($result);
  65. return $entity;
  66. }
  67. /**
  68. * @param $id
  69. * @param $data
  70. * @return int
  71. */
  72. public function update($id, $data): int
  73. {
  74. try {
  75. return $this->dao->update($id, $data);
  76. } catch (DbException $e) {
  77. return 0;
  78. }
  79. }
  80. /**
  81. * @param SharedProsperityUserEntity $sharedProsperityUserEntity
  82. * @return SharedProsperityUserEntity
  83. */
  84. public function updateByEntity(SharedProsperityUserEntity $sharedProsperityUserEntity): SharedProsperityUserEntity
  85. {
  86. if (empty($sharedProsperityUserEntity->getId())) {
  87. return SharedProsperityUserEntity::newInstance();
  88. }
  89. $result = $this->update($sharedProsperityUserEntity->getId(), $sharedProsperityUserEntity->toUnderlineArray());
  90. if ($result > 0) {
  91. return $this->getSharedProsperityUserEntityByUserId($sharedProsperityUserEntity->getUserId());
  92. }
  93. return SharedProsperityUserEntity::newInstance();
  94. }
  95. /**
  96. * 绑定 上级
  97. * @param int $userId
  98. * @param int $parentId
  99. * @return bool
  100. */
  101. public function bindParentId(int $userId, int $parentId): bool
  102. {
  103. $sharedProsperityUserEntity = $this->getSharedProsperityUserEntityByUserId($userId);
  104. if (empty($sharedProsperityUserEntity->getUserId())) {
  105. return false;
  106. }
  107. $sharedProsperityUserEntityByParentId = $this->getSharedProsperityUserEntityByUserId($parentId);
  108. if (empty($sharedProsperityUserEntityByParentId->getUserId())) {
  109. return false;
  110. }
  111. $sharedProsperityUserEntity = $this->updateByEntity($sharedProsperityUserEntity->setParentId($sharedProsperityUserEntityByParentId->getUserId()));
  112. if (empty($sharedProsperityUserEntity->getId())) {
  113. return false;
  114. }
  115. return true;
  116. }
  117. }