Order.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. *
  4. * @copyright ©2020 点小铺
  5. * @author hanj
  6. * @link: https://dyuit.com
  7. * Created by VSCode
  8. */
  9. namespace app\store\model\recharge;
  10. use app\common\model\recharge\Order as OrderModel;
  11. /**
  12. * 用户充值订单模型
  13. * Class Order
  14. * @package app\store\model\recharge
  15. */
  16. class Order extends OrderModel
  17. {
  18. /**
  19. * 获取订单列表
  20. * @param array $query
  21. * @return \think\Paginator
  22. * @throws \think\exception\DbException
  23. */
  24. public function getList($query = [])
  25. {
  26. // 设置查询条件
  27. !empty($query) && $this->setQueryWhere($query);
  28. // 获取列表数据
  29. return $this->with(['user', 'order_plan'])
  30. ->alias('order')
  31. ->field('order.*')
  32. ->join('user', 'user.user_id = order.user_id')
  33. ->order(['order.create_time' => 'desc'])
  34. ->paginate(15, false, [
  35. 'query' => request()->request()
  36. ]);
  37. }
  38. /**
  39. * 设置查询条件
  40. * @param $query
  41. */
  42. private function setQueryWhere($query)
  43. {
  44. // 设置默认的检索数据
  45. $params = $this->setQueryDefaultValue($query, [
  46. 'user_id' => 0,
  47. 'recharge_type' => '-1',
  48. 'pay_status' => '-1',
  49. ]);
  50. // 用户ID
  51. $params['user_id'] > 0 && $this->where('order.user_id', '=', $params['user_id']);
  52. // 用户昵称/订单号
  53. !empty($params['search']) && $this->where('order.order_no|user.nickName', 'like', "%{$params['search']}%");
  54. // 充值方式
  55. $params['recharge_type'] > -1 && $this->where('order.recharge_type', '=', (int)$params['recharge_type']);
  56. // 支付状态
  57. $params['pay_status'] > -1 && $this->where('order.pay_status', '=', (int)$params['pay_status']);
  58. // 起始时间
  59. !empty($params['start_time']) && $this->where('order.create_time', '>=', strtotime($params['start_time']));
  60. // 截止时间
  61. !empty($params['end_time']) && $this->where('order.create_time', '<', strtotime($params['end_time']) + 86400);
  62. }
  63. }