AuthService.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <?php
  2. namespace services\member;
  3. use Yii;
  4. use common\helpers\ArrayHelper;
  5. use common\enums\StatusEnum;
  6. use common\components\Service;
  7. use common\models\member\Auth;
  8. use common\enums\MemberTypeEnum;
  9. /**
  10. * Class AuthService
  11. * @package services\member
  12. * @author jianyan74 <751393839@qq.com>
  13. */
  14. class AuthService extends Service
  15. {
  16. /**
  17. * @param $data
  18. * @return Auth
  19. * @throws \Exception
  20. */
  21. public function create($data)
  22. {
  23. $model = new Auth();
  24. $model->loadDefaultValues();
  25. $model->attributes = $data;
  26. !$model->save() && $this->error($model);
  27. return $model;
  28. }
  29. /**
  30. * @param $oauthClient
  31. * @param $memberId
  32. * @return array|bool|\yii\db\ActiveRecord
  33. */
  34. public function unBind($oauthClient, $memberId)
  35. {
  36. $model = $this->findByMemberIdOauthClient($oauthClient, $memberId);
  37. if (!$model) {
  38. return true;
  39. }
  40. $model->status = StatusEnum::DISABLED;
  41. $model->save();
  42. return $model;
  43. }
  44. /**
  45. * @param $memberId
  46. * @return array|\yii\db\ActiveRecord[]
  47. */
  48. public function findByMemberId($memberId)
  49. {
  50. return Auth::find()
  51. ->where(['member_id' => $memberId])
  52. ->andWhere(['status' => StatusEnum::ENABLED])
  53. ->asArray()
  54. ->all();
  55. }
  56. /**
  57. * @param $memberId
  58. * @return bool|int|string
  59. */
  60. public function getCountByMemberId($memberId)
  61. {
  62. return Auth::find()
  63. ->where(['member_id' => $memberId])
  64. ->andWhere(['status' => StatusEnum::ENABLED])
  65. ->count() ?? 0;
  66. }
  67. /**
  68. * @param int $merchant_id
  69. * @param int $memberType
  70. * @return array|\yii\db\ActiveRecord[]
  71. */
  72. public function findByMemberType($merchant_id = 0, $memberType = MemberTypeEnum::MEMBER)
  73. {
  74. return Auth::find()
  75. ->where(['member_type' => $memberType])
  76. ->andWhere(['status' => StatusEnum::ENABLED])
  77. ->andFilterWhere(['merchant_id' => $merchant_id])
  78. ->all();
  79. }
  80. /**
  81. * @param $oauthClient
  82. * @param $oauthClientUserId
  83. * @param int $memberType
  84. * @return array|\yii\db\ActiveRecord|null|Auth
  85. */
  86. public function findOauthClient($oauthClient, $oauthClientUserId, $memberType = MemberTypeEnum::MEMBER)
  87. {
  88. return Auth::find()
  89. ->where([
  90. 'oauth_client' => $oauthClient,
  91. 'oauth_client_user_id' => $oauthClientUserId,
  92. 'member_type' => $memberType,
  93. ])
  94. ->andWhere(['status' => StatusEnum::ENABLED])
  95. ->andFilterWhere(['merchant_id' => $this->getMerchantId()])
  96. ->orderBy('id desc')
  97. ->one();
  98. }
  99. /**
  100. * @param $oauthClient
  101. * @param $oauthClientUserId
  102. * @return array|\yii\db\ActiveRecord|null
  103. */
  104. public function findByMemberIdOauthClient($oauthClient, $memberId)
  105. {
  106. return Auth::find()
  107. ->where(['oauth_client' => $oauthClient, 'member_id' => $memberId])
  108. ->andWhere(['status' => StatusEnum::ENABLED])
  109. ->andFilterWhere(['merchant_id' => $this->getMerchantId()])
  110. ->orderBy('id desc')
  111. ->one();
  112. }
  113. /**
  114. * @param $oauthClient
  115. * @param $oauthClientUserId
  116. * @return array|\yii\db\ActiveRecord|null
  117. */
  118. public function findOauthClientByApp($oauthClient, $oauthClientUserId)
  119. {
  120. return Auth::find()
  121. ->where(['oauth_client' => $oauthClient, 'oauth_client_user_id' => $oauthClientUserId])
  122. ->andWhere(['status' => StatusEnum::DISABLED])
  123. ->andFilterWhere(['merchant_id' => $this->getMerchantId()])
  124. ->orderBy('id desc')
  125. ->one();
  126. }
  127. /**
  128. * @param $unionId
  129. * @return array|\yii\db\ActiveRecord|null
  130. */
  131. public function findByUnionId($unionId, $memberType = MemberTypeEnum::MEMBER)
  132. {
  133. return Auth::find()
  134. ->where(['unionid' => $unionId, 'member_type' => $memberType])
  135. ->andWhere(['status' => StatusEnum::ENABLED])
  136. ->andFilterWhere(['merchant_id' => $this->getMerchantId()])
  137. ->orderBy('id desc')
  138. ->one();
  139. }
  140. /**
  141. * @param $unionId
  142. * @return array|\yii\db\ActiveRecord|null
  143. */
  144. public function findByMerchantId($merchantId, $memberType = MemberTypeEnum::MEMBER)
  145. {
  146. return Auth::find()
  147. ->where(['merchant_id' => $merchantId, 'member_type' => $memberType])
  148. ->andWhere(['status' => StatusEnum::ENABLED])
  149. ->andFilterWhere(['merchant_id' => $this->getMerchantId()])
  150. ->orderBy('id desc')
  151. ->one();
  152. }
  153. /**
  154. * @param $memberId
  155. * @param $oauthClient
  156. * @return array|\yii\db\ActiveRecord|null
  157. */
  158. public function findByMemberIdAndOauthClient($memberId, $oauthClient)
  159. {
  160. return Auth::find()
  161. ->where(['member_id' => $memberId, 'oauth_client' => $oauthClient])
  162. ->andWhere(['status' => StatusEnum::ENABLED])
  163. ->one();
  164. }
  165. /**
  166. * @param $unionId
  167. * @return array|\yii\db\ActiveRecord|null
  168. */
  169. public function findAllByUnionId($unionId, $memberType = MemberTypeEnum::MEMBER)
  170. {
  171. return Auth::find()
  172. ->where(['unionid' => $unionId, 'member_type' => $memberType])
  173. ->andWhere(['status' => StatusEnum::ENABLED])
  174. ->andFilterWhere(['merchant_id' => $this->getMerchantId()])
  175. ->all();
  176. }
  177. }
粤ICP备19079148号