MemberFollow.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\model\system;
  4. use Closure;
  5. use library\basic\BaseModel;
  6. use think\Model;
  7. /**
  8. * @mixin \think\Model
  9. */
  10. class MemberFollow extends BaseModel
  11. {
  12. /**
  13. * 获取列表数据
  14. * @param $page
  15. * @param $where
  16. * @param $pageCount
  17. * @param $desc
  18. */
  19. public function getList($page,$where = [],$pageCount = 20,$filed = '*',$desc = ''){
  20. $data = $this
  21. ->field("table_member_follow.*,sa.username")
  22. ->when(!empty($where),function ($query) use($where){
  23. foreach ($where as $k=>$v) {
  24. if($v instanceof Closure) {
  25. $v($query);
  26. } else {
  27. if(is_array($v)) {
  28. //whereLike
  29. if($v[1] == 'whereLike') {
  30. if(!empty($v[0]))
  31. $query->whereLike($k,$v[0]);
  32. continue;
  33. }
  34. if($v[1] == 'whereBetween') {
  35. if(!empty($v[0])) $query->whereBetween($k,$v[0]);
  36. continue;
  37. }
  38. $bool = false;
  39. eval('$bool = '.$v[1].'($v[0]);');
  40. if($bool) {
  41. $query->where($k,$v[0]);
  42. }
  43. } else {
  44. $query->where($k,$v);
  45. }
  46. }
  47. }
  48. })
  49. ->join('system_admin sa','sa.id = table_member_follow.admin_id')
  50. ->order($desc)
  51. ->paginate(['list_rows'=>$pageCount,'page'=>$page])
  52. ->toArray();
  53. // echo $this->getLastSql();
  54. return [$data['total'],$data['data']];
  55. }
  56. }