MemberBankInfo.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. namespace backend\models;
  3. use Yii;
  4. /**
  5. * This is the model class for table "crm_member".
  6. *
  7. * @property integer $id
  8. * @property integer $member_id
  9. * @property integer $is_enable
  10. * @property string $bank_name
  11. * @property string $bank_branch
  12. * @property string $bank_swift_code
  13. * @property string $bank_card_no
  14. * @property string $bank_province
  15. * @property string $bank_city
  16. * @property string $bank_district
  17. * @property string $name
  18. * @property string $mobile
  19. * @property integer $create_time
  20. * @property string $last_modified
  21. */
  22. class MemberBankInfo extends \yii\db\ActiveRecord
  23. {
  24. /**
  25. * @inheritdoc
  26. */
  27. public static function tableName()
  28. {
  29. return 'crm_member_bank_info';
  30. }
  31. /**
  32. * @return \yii\db\Connection the database connection used by this AR class.
  33. */
  34. public static function getDb()
  35. {
  36. return Yii::$app->get('dbXcrm');
  37. }
  38. /**
  39. * @inheritdoc
  40. */
  41. public function rules()
  42. {
  43. return [
  44. [['member_id','bank_name', 'bank_branch', 'bank_card_no', 'name'], 'required'],
  45. [['id', 'create_time', 'last_modified'], 'safe'],
  46. [['bank_name', 'bank_branch', 'bank_swift_code', 'bank_card_no', 'bank_province', 'bank_city', 'bank_district', 'name', 'mobile'], 'string', 'max' => 32],
  47. [['bank_name', 'bank_branch', 'bank_swift_code', 'bank_card_no', 'bank_province', 'bank_city', 'bank_district', 'name', 'mobile'], 'trim'],
  48. [['is_enable'], 'in', 'range' => [0, 1]],
  49. ];
  50. }
  51. /**
  52. * @inheritdoc
  53. */
  54. public function attributeLabels()
  55. {
  56. return [
  57. 'id' => 'ID',
  58. 'member_id' => 'Member ID',
  59. 'is_enable' => '是否启用',
  60. 'bank_name' => '收款银行',
  61. 'bank_branch' => '所属支行',
  62. 'bank_swift_code' => 'swift代码',
  63. 'bank_card_no' => '收款卡号',
  64. 'bank_province' => '所在省份',
  65. 'bank_city' => '所在城市',
  66. 'bank_district' => '所在城市区域',
  67. 'name' => '收款人',
  68. 'mobile' => '联系手机',
  69. 'create_time' => '创建时间',
  70. 'last_modified' => '更新时间',
  71. ];
  72. }
  73. /**
  74. * 修改银行卡信息
  75. * @param array $post
  76. * @return array
  77. */
  78. public function updateBankInfo($post)
  79. {
  80. $result = ['code' => 0, 'data' => [], 'message' => ''];
  81. if (empty($post['MemberBankInfo'])) {
  82. $result['message'] = '参数错误';
  83. return $result;
  84. }
  85. $post['MemberBankInfo']['is_enable'] = isset($post['MemberBankInfo']['is_enable']) ? 1 : 0; // 这是个checkbox
  86. $member_id = isset($post['member_id']) ? (int) $post['member_id'] : 0;
  87. $member_type = isset($post['member_type']) ? (int) $post['member_type'] : 0;
  88. if (!$member_id || !in_array($member_type, [Member::MEMBER_TYPE_IB])) {
  89. $result['message'] = '参数错误';
  90. return $result;
  91. }
  92. $member = Member::find()->where(['id' => $member_id, 'type' => $member_type])->limit(1)->one();
  93. if (!$member) {
  94. $result['message'] = '参数错误.';
  95. return $result;
  96. }
  97. /** @var MemberBankInfo $model */
  98. $model = static::find()->where(['member_id' => $member_id])->limit(1)->one();
  99. if (!$model) {
  100. $model = new static();
  101. $model->member_id = $member_id;
  102. $model->create_time = time();
  103. }
  104. $model->setAttributes($post['MemberBankInfo']);
  105. if ($model->save()) {
  106. $result['code'] = 1;
  107. $result['message'] = '更新成功';
  108. } else {
  109. $result['message'] = array_values($model->getFirstErrors())[0];
  110. }
  111. return $result;
  112. }
  113. /**
  114. * 根据member_id获取启用的银行卡信息
  115. * @param int $member_id
  116. * @param int $is_enable
  117. * @return array|null
  118. */
  119. public static function getBankInfoByMemberId($member_id, $is_enable = 1)
  120. {
  121. $where = ['member_id' => $member_id];
  122. if ($is_enable) {
  123. $where['is_enable'] = $is_enable;
  124. }
  125. return MemberBankInfo::find()->where($where)->limit(1)->asArray()->one();
  126. }
  127. }