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.

DataLogic.php 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace app\common\logic;
  3. use think\facade\Config;
  4. class DataLogic
  5. {
  6. public static $page = 1;
  7. private static $limit = 15;
  8. public static function page_limit($isPage = true, $isRelieve = true)
  9. {
  10. $page = $limit = 0;
  11. if ($isPage) {
  12. $page = app()->request->param(Config::get('database.page.pageKey', 'page') . '/d', 0);
  13. $limit = app()->request->param(Config::get('database.page.limitKey', 'limit') . '/d', 0);
  14. }
  15. $limitMax = Config::get('database.page.limitMax');
  16. $defaultLimit = Config::get('database.page.defaultLimit', 10);
  17. if ($limit > $limitMax && $isRelieve) {
  18. $limit = $limitMax;
  19. }
  20. return [(int)$page, (int)$limit, (int)$defaultLimit];
  21. }
  22. public static function getDataList($query, array $where, $order, $field, $append, $all = 0)
  23. {
  24. $total = $query->where($where)->count();
  25. [self::$page, self::$limit] = self::page_limit();
  26. if ($all) {
  27. $list = $query->where($where)
  28. ->field($field)->order($order)
  29. ->select()
  30. ->append($append)
  31. ->toArray();
  32. } else {
  33. $list = $query->where($where)
  34. ->field($field)->order($order)
  35. ->limit(self::$limit)->page(self::$page)
  36. ->select()
  37. ->append($append)
  38. ->toArray();
  39. }
  40. return ['total' => $total, 'list' => $list];
  41. }
  42. }