BankAccountService.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. namespace services\member;
  3. use common\components\Service;
  4. use common\enums\AccountTypeEnum;
  5. use common\enums\StatusEnum;
  6. use common\models\member\BankAccount;
  7. /**
  8. * Class BankAccountService
  9. * @package services\member
  10. * @author jianyan74 <751393839@qq.com>
  11. */
  12. class BankAccountService extends Service
  13. {
  14. /**
  15. * 查询商家的提现账号
  16. *
  17. * @param array $condition
  18. * @return array|\yii\db\ActiveRecord[]
  19. */
  20. public function findByMerchantId($merchant_id)
  21. {
  22. $condition = [
  23. 'merchant_id' => $merchant_id,
  24. 'member_id' => 0,
  25. ];
  26. return $this->findAllByCondition($condition);
  27. }
  28. /**
  29. * 获取默认地址
  30. *
  31. * @param $member_id
  32. * @return array|null|\yii\db\ActiveRecord|BankAccount
  33. */
  34. public function findDefaultByMemberId($member_id)
  35. {
  36. return BankAccount::find()
  37. ->where([
  38. 'member_id' => $member_id,
  39. 'status' => StatusEnum::ENABLED,
  40. 'is_default' => StatusEnum::ENABLED
  41. ])
  42. ->andFilterWhere(['merchant_id' => $this->getMerchantId()])
  43. ->one();
  44. }
  45. /**
  46. * 查询商家的默认提现账号
  47. *
  48. * @param $merchant_id
  49. * @return array|\yii\db\ActiveRecord|null
  50. */
  51. public function findMerchantDefault($merchant_id)
  52. {
  53. $condition = [
  54. 'merchant_id' => $merchant_id,
  55. 'member_id' => 0,
  56. 'is_default' => StatusEnum::ENABLED,
  57. ];
  58. return $this->findByCondition($condition);
  59. }
  60. /**
  61. * @param $data
  62. * @return array
  63. */
  64. public function getMapList($data)
  65. {
  66. $map = [];
  67. foreach ($data as $item) {
  68. if (empty($item['account_number'])) {
  69. continue;
  70. }
  71. $tmp = [];
  72. $tmp[] = $item['account_type_name'];
  73. if ($item['account_type'] == AccountTypeEnum::ALI) {
  74. $tmp[] = $item['account_number'];
  75. }
  76. if ($item['account_type'] == AccountTypeEnum::UNION) {
  77. $tmp[] = $item['bank_name'];
  78. $tmp[] = $item['account_number'];
  79. }
  80. if ($item['account_type'] == AccountTypeEnum::WECHAT) {
  81. $tmp[] = $item['account_number'];
  82. }
  83. $map[$item['id']] = implode(" | ", $tmp);
  84. }
  85. return $map;
  86. }
  87. /**
  88. * @param array $condition
  89. * @return array|\yii\db\ActiveRecord[]|BankAccount
  90. */
  91. public function findByCondition(array $condition)
  92. {
  93. return BankAccount::find()
  94. ->where(['status' => StatusEnum::ENABLED])
  95. ->andWhere($condition)
  96. ->one();
  97. }
  98. /**
  99. * @param array $condition
  100. * @return array|\yii\db\ActiveRecord[]|BankAccount
  101. */
  102. public function findAllByCondition(array $condition)
  103. {
  104. return BankAccount::find()
  105. ->where(['status' => StatusEnum::ENABLED])
  106. ->andWhere($condition)
  107. ->all();
  108. }
  109. /**
  110. * @param $id
  111. * @param $member_id
  112. * @return array|\yii\db\ActiveRecord|null
  113. */
  114. public function findById($id, $member_id = '')
  115. {
  116. return BankAccount::find()
  117. ->where(['id' => $id, 'status' => StatusEnum::ENABLED])
  118. ->andFilterWhere(['member_id' => $member_id])
  119. ->one();
  120. }
  121. /**
  122. * @param int $member_id
  123. * @return array|\yii\db\ActiveRecord[]
  124. */
  125. public function findAllByMemberId(int $member_id)
  126. {
  127. return BankAccount::find()
  128. ->where(['status' => StatusEnum::ENABLED])
  129. ->andWhere(['member_id' => $member_id])
  130. ->all();
  131. }
  132. }
粤ICP备19079148号