BalanceLog.php 2.0 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\user;
  10. use app\common\model\user\BalanceLog as BalanceLogModel;
  11. /**
  12. * 用户余额变动明细模型
  13. * Class BalanceLog
  14. * @package app\store\model\user
  15. */
  16. class BalanceLog extends BalanceLogModel
  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'])
  30. ->alias('log')
  31. ->field('log.*')
  32. ->join('user', 'user.user_id = log.user_id')
  33. ->order(['log.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. 'search' => '',
  48. 'scene' => -1,
  49. 'start_time' => '',
  50. 'end_time' => '',
  51. ]);
  52. // 用户ID
  53. $params['user_id'] > 0 && $this->where('log.user_id', '=', $params['user_id']);
  54. // 用户昵称
  55. !empty($params['search']) && $this->where('user.nickName', 'like', "%{$params['search']}%");
  56. // 余额变动场景
  57. $params['scene'] > -1 && $this->where('log.scene', '=', (int)$params['scene']);
  58. // 起始时间
  59. !empty($params['start_time']) && $this->where('log.create_time', '>=', strtotime($params['start_time']));
  60. // 截止时间
  61. !empty($params['end_time']) && $this->where('log.create_time', '<', strtotime($params['end_time']) + 86400);
  62. }
  63. }