BalanceLog.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace app\store\model\user;
  3. use app\common\model\user\BalanceLog as BalanceLogModel;
  4. /**
  5. * 用户余额变动明细模型
  6. * Class BalanceLog
  7. * @package app\store\model\user
  8. */
  9. class BalanceLog extends BalanceLogModel
  10. {
  11. /**
  12. * 获取余额变动明细列表
  13. * @param array $query
  14. * @return \think\Paginator
  15. * @throws \think\exception\DbException
  16. */
  17. public function getList($query = [])
  18. {
  19. // 设置查询条件
  20. !empty($query) && $this->setQueryWhere($query);
  21. // 获取列表数据
  22. return $this->with(['user'])
  23. ->alias('log')
  24. ->field('log.*')
  25. ->join('user', 'user.user_id = log.user_id')
  26. ->order(['log.create_time' => 'desc'])
  27. ->paginate(15, false, [
  28. 'query' => \request()->request()
  29. ]);
  30. }
  31. /**
  32. * 设置查询条件
  33. * @param $query
  34. */
  35. private function setQueryWhere($query)
  36. {
  37. // 设置默认的检索数据
  38. $params = $this->setQueryDefaultValue($query, [
  39. 'user_id' => 0,
  40. 'search' => '',
  41. 'scene' => -1,
  42. 'start_time' => '',
  43. 'end_time' => '',
  44. ]);
  45. // 用户ID
  46. $params['user_id'] > 0 && $this->where('log.user_id', '=', $params['user_id']);
  47. // 用户昵称
  48. !empty($params['search']) && $this->where('user.nickName', 'like', "%{$params['search']}%");
  49. // 余额变动场景
  50. $params['scene'] > -1 && $this->where('log.scene', '=', (int)$params['scene']);
  51. // 起始时间
  52. !empty($params['start_time']) && $this->where('log.create_time', '>=', strtotime($params['start_time']));
  53. // 截止时间
  54. !empty($params['end_time']) && $this->where('log.create_time', '<', strtotime($params['end_time']) + 86400);
  55. }
  56. }