SharedProsperityUserRepository.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. public function create($data)
  42. {
  43. return $this->dao->create($data);
  44. }
  45. /**
  46. * @param SharedProsperityUserEntity $sharedProsperityUserEntity
  47. * @return SharedProsperityUserEntity
  48. */
  49. public function createByEntity(SharedProsperityUserEntity $sharedProsperityUserEntity): SharedProsperityUserEntity
  50. {
  51. $result = $this->create($sharedProsperityUserEntity->toUnderlineArray())->toArray();
  52. /** @var SharedProsperityUserEntity $entity */
  53. $entity = SharedProsperityUserEntity::newInstance($result);
  54. return $entity;
  55. }
  56. /**
  57. * @param $id
  58. * @param $data
  59. * @return int
  60. */
  61. public function update($id, $data): int
  62. {
  63. try {
  64. return $this->dao->update($id, $data);
  65. } catch (DbException $e) {
  66. return 0;
  67. }
  68. }
  69. /**
  70. * @param SharedProsperityUserEntity $sharedProsperityUserEntity
  71. * @return SharedProsperityUserEntity
  72. */
  73. public function updateByEntity(SharedProsperityUserEntity $sharedProsperityUserEntity): SharedProsperityUserEntity
  74. {
  75. if (empty($sharedProsperityUserEntity->getId())) {
  76. return SharedProsperityUserEntity::newInstance();
  77. }
  78. $result = $this->update($sharedProsperityUserEntity->getId(), $sharedProsperityUserEntity->toUnderlineArray());
  79. if ($result > 0) {
  80. return $this->getSharedProsperityUserEntityByUserId($sharedProsperityUserEntity->getUserId());
  81. }
  82. return SharedProsperityUserEntity::newInstance();
  83. }
  84. /**
  85. * 绑定 上级
  86. * @param int $userId
  87. * @param int $parentId
  88. * @return bool
  89. */
  90. public function bindParentId(int $userId, int $parentId): bool
  91. {
  92. $sharedProsperityUserEntity = $this->getSharedProsperityUserEntityByUserId($userId);
  93. if (empty($sharedProsperityUserEntity->getUserId())) {
  94. return false;
  95. }
  96. $sharedProsperityUserEntityByParentId = $this->getSharedProsperityUserEntityByUserId($parentId);
  97. if (empty($sharedProsperityUserEntityByParentId->getUserId())) {
  98. return false;
  99. }
  100. $sharedProsperityUserEntity = $this->updateByEntity($sharedProsperityUserEntity->setParentId($sharedProsperityUserEntityByParentId->getUserId()));
  101. if (empty($sharedProsperityUserEntity->getId())) {
  102. return false;
  103. }
  104. return true;
  105. }
  106. }