UserCertificationRepository.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. namespace app\common\repositories\user;
  3. use app\common\dao\user\UserCertificationDao;
  4. use app\common\enum\user\UserCertificationEnum;
  5. use app\common\repositories\BaseRepository;
  6. use app\entity\data\user\UserCertificationEntity;
  7. class UserCertificationRepository extends BaseRepository
  8. {
  9. public function __construct(UserCertificationDao $dao)
  10. {
  11. $this->dao = $dao;
  12. }
  13. /**
  14. * @param int $id
  15. * @return UserCertificationEntity
  16. */
  17. public function getUserCertificationEntityById(int $id): UserCertificationEntity
  18. {
  19. $entityList = $this->getUserCertificationEntityListByIdList([$id]);
  20. $entity = array_shift($entityList);
  21. if ($entity instanceof UserCertificationEntity) {
  22. return $entity;
  23. } else {
  24. /** @var UserCertificationEntity */
  25. return UserCertificationEntity::newInstance();
  26. }
  27. }
  28. /**
  29. * @param array $idList
  30. * @return UserCertificationEntity[]
  31. */
  32. public function getUserCertificationEntityListByIdList(array $idList): array
  33. {
  34. return $this->dao->getUserCertificationEntityListByIdList($idList);
  35. }
  36. /**
  37. * @param array $uidList
  38. * @return UserCertificationEntity[]
  39. */
  40. public function getUserCertificationEntityListByUidList(array $uidList): array
  41. {
  42. return $this->dao->getUserCertificationEntityListByUidList($uidList);
  43. }
  44. /**
  45. * 获取 已通过的 用户实名认证实体 映射 根据用户ID
  46. * @param array $uidList
  47. * @return UserCertificationEntity[]
  48. */
  49. public function getUserCertificationEntityMapByUidListApproved(array $uidList): array
  50. {
  51. /** @var UserCertificationEntity[] $userCertificationEntityMapByUid */
  52. $userCertificationEntityMapByUid = [];
  53. $userCertificationEntityList = $this->getUserCertificationEntityListByUidList($uidList);
  54. foreach ($userCertificationEntityList as $userCertificationEntity) {
  55. if ($userCertificationEntity->getStatus() == UserCertificationEnum::STATUS['Approved']['code'] && !empty($userCertificationEntity->getUserCard())) {
  56. $userCertificationEntityMapByUid[$userCertificationEntity->getUid()] = $userCertificationEntity;
  57. }
  58. }
  59. return $userCertificationEntityMapByUid;
  60. }
  61. public function create($data)
  62. {
  63. return $this->dao->create($data);
  64. }
  65. /**
  66. * 写入实名认证记录
  67. * @param UserCertificationEntity $UserCertificationEntity
  68. * @return UserCertificationEntity
  69. */
  70. public function createByEntity(UserCertificationEntity $UserCertificationEntity): UserCertificationEntity
  71. {
  72. $result = $this->dao->create($UserCertificationEntity->toUnderlineArray())->toArray();
  73. /** @var UserCertificationEntity $entity */
  74. $entity = UserCertificationEntity::newInstance($result);
  75. return $entity;
  76. }
  77. }