You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

180 regels
4.4 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: admin
  5. * Date: 2017/5/4
  6. * Time: 10:43
  7. */
  8. namespace common\models;
  9. use common\util\Util;
  10. use yii\db\ActiveRecord;
  11. use yii\db\Expression;
  12. class FxUserAmountOrder extends ActiveRecord
  13. {
  14. public static function tableName()
  15. {
  16. return 'fx_user_amount_order';
  17. }
  18. /**
  19. * @inheritdoc
  20. */
  21. public function rules()
  22. {
  23. return [
  24. [['id', 'fx_uid', 'status', 'pay_type'], 'integer'],
  25. [['amount'], 'number'],
  26. [['create_time', 'update_time'], 'safe'],
  27. [['recharge_order'], 'string', 'max' => 100],
  28. ];
  29. }
  30. /**
  31. * @inheritdoc
  32. */
  33. public function attributeLabels()
  34. {
  35. return [
  36. 'id' => 'ID',
  37. 'fx_uid' => 'fx_uid',
  38. 'amount' => 'amount',
  39. 'status' => 'status',
  40. 'create_time' => 'create_time',
  41. 'update_time' => 'Update Time',
  42. 'recharge_order' => 'recharge_order',
  43. 'pay_type' => 'pay_type'
  44. ];
  45. }
  46. /**
  47. * 添加新记录
  48. * @param $fx_uid
  49. * @param $amount
  50. * @param $payType
  51. * @return array
  52. */
  53. public function addAmountOrder($fx_uid, $amount, $payType = 1)
  54. {
  55. $params = [
  56. 'recharge_order' => 'FXA' . round(microtime(true) * 1000, 0),
  57. 'fx_uid' => $fx_uid,
  58. 'amount' => $amount,
  59. 'pay_type' => $payType,
  60. 'create_time' => date('Y-m-d H:i:s')
  61. ];
  62. $this->attributes = $params;
  63. $insertFlag = $this->insert();
  64. if (!$insertFlag) {
  65. return Util::returnArrEr('add amount_order fail!');
  66. }
  67. return Util::returnArrSu('', ['recharge_order' => $params['recharge_order']]);
  68. }
  69. /**
  70. * 获取列表
  71. * @param $params
  72. * @param $type
  73. * @return array
  74. */
  75. public function getList($params, $type = 0)
  76. {
  77. $where = [
  78. 'and',
  79. ['=', 'fx_uid', $params['fx_uid']],
  80. ['=', 'status', 2]
  81. ];
  82. if ($type == 1) {
  83. $select = ["count(1) cnt"];
  84. $getResult = self::find()->select($select)
  85. ->where($where)
  86. ->orderBy('create_time DESC')
  87. ->asArray()
  88. ->one();
  89. $result = $getResult['cnt'];
  90. } else {
  91. $select = [
  92. 'id',
  93. new Expression('FORMAT(amount,0) as amount'),
  94. 'create_time',
  95. 'recharge_order',
  96. "if(pay_type=1,'微信','支付宝') as pay_type",
  97. 'fx_uid',
  98. 'status'
  99. ];
  100. $offset = ($params['current_page'] - 1) * $params['page_size'];
  101. $result = self::find()->select($select)
  102. ->where($where)
  103. ->orderBy('create_time DESC')
  104. ->offset($offset)
  105. ->limit($params['page_size'])
  106. ->asArray()
  107. ->all();
  108. }
  109. return $result;
  110. }
  111. /**
  112. * 获取充值记录单的详情
  113. * @param $recharge_order
  114. * @return array
  115. */
  116. public function getAmountOrderInfo($recharge_order)
  117. {
  118. $select = [
  119. 'id',
  120. 'amount',
  121. 'create_time',
  122. 'recharge_order',
  123. "if(pay_type=1,'微信','支付宝') as pay_type",
  124. 'fx_uid',
  125. 'status'
  126. ];
  127. $result = self::find()->select($select)
  128. ->where(['=', 'recharge_order', $recharge_order])
  129. ->asArray()
  130. ->one();
  131. return $result;
  132. }
  133. /**
  134. * 修改充值单状态
  135. * @param $recharge_order
  136. * @param $status
  137. * @return int
  138. */
  139. public function updateStatus($recharge_order, $status)
  140. {
  141. $values = [
  142. 'status' => $status
  143. ];
  144. $count = self::updateAll($values, ['and', ['=', 'recharge_order', $recharge_order]]);
  145. return $count;
  146. }
  147. /**
  148. * 获取未支付订单
  149. * @return array
  150. */
  151. public function getUnPayOrder()
  152. {
  153. $select = [
  154. 'id',
  155. 'amount',
  156. 'create_time',
  157. 'recharge_order',
  158. "pay_type",
  159. 'fx_uid',
  160. 'status'
  161. ];
  162. $result = self::find()->select($select)
  163. ->where(['=', 'status', 1])
  164. ->asArray()
  165. ->one();
  166. return $result;
  167. }
  168. }