FundsRecord.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace app\admin\model;
  3. use app\BaseModel;
  4. use think\helper\Str;
  5. use think\facade\Lang;
  6. class FundsRecord extends BaseModel
  7. {
  8. protected $autoWriteTimestamp = true;
  9. protected $createTime = 'create_time';
  10. protected $updateTime = 'update_time';
  11. /**
  12. * transaction_type 订单类型
  13. * - recharge 充值
  14. * - withdraw 提现
  15. * - order 投注
  16. */
  17. public $transaction_type_list = [
  18. 'recharge' => '充值',
  19. 'withdraw' => '提现',
  20. 'order' => '投注',
  21. 'frozen_money' => '资金冻结',
  22. 'return_order' => '退款',
  23. ];
  24. public static function addData($data)
  25. {
  26. $data['transaction_id'] = Str::random(32);
  27. return static::create($data);
  28. }
  29. public static function getList($params, $user_code = '') {
  30. $query = FundsRecord::alias('funds_record')
  31. ->join(env('database.DATABASE').'.bot_users user', 'funds_record.user_id = user.user_id', 'left');
  32. // ->join('user', 'funds_record.user_id=user.user_id','left');
  33. if ($user_code != '') {
  34. $query = $query->where('user.user_code', $user_code);
  35. }
  36. if (!empty($params['user_id'])) {
  37. $query->where('funds_record.user_id', $params['user_id']);
  38. }
  39. if (!empty($params['transaction_type'])) {
  40. $query->where('funds_record.transaction_type', $params['transaction_type']);
  41. }
  42. if (!empty($params['transaction_id'])) {
  43. $query->where('funds_record.transaction_id', $params['transaction_id']);
  44. }
  45. if (!empty($params['start_time']) ) {
  46. $start_time = strtotime($params['start_time'] . " 00:00:00");
  47. $query->where('funds_record.create_time', '>=', $start_time);
  48. }
  49. if (!empty($params['end_time'])) {
  50. $end_time = strtotime($params['end_time'] . " 23:59:59");
  51. $query->where('funds_record.create_time', '<=', $end_time);
  52. }
  53. $params['page'] = $params['page'] ?? 1;
  54. $params['limit'] = $params['limit'] ?? 15;
  55. $count = $query->count();
  56. $list = $query->field(['funds_record.*'])
  57. ->limit($params['limit'])
  58. ->page($params['page'])
  59. ->order('funds_record.id', 'desc')
  60. ->select();
  61. return [
  62. 'transaction_type' => (new FundsRecord)->getTransactionTypeList(),
  63. 'count' => $count,
  64. 'list' => $list,
  65. ];
  66. }
  67. public function getTransactionTypeList()
  68. {
  69. $list = $this->transaction_type_list;
  70. foreach ($list as $key => &$value) {
  71. $value = Lang::get("messages.{$value}");
  72. }
  73. return $list;
  74. }
  75. }