data_center/app/adminapi/lists/user/UserLists.php

68 lines
3.0 KiB
PHP
Raw Normal View History

2023-09-18 09:11:13 +08:00
<?php
namespace app\adminapi\lists\user;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsSearchInterface;
use app\common\model\user\User;
class UserLists extends BaseAdminDataLists implements ListsSearchInterface
{
// 搜索条件
public function setSearch(): array
{
return [
2023-09-20 17:15:43 +08:00
'=' => ['status','age','gender'],
'%like%' => ['nick_name','real_name','phone'],
2023-09-18 09:11:13 +08:00
];
}
// 获取用户列表
public function lists(): array
{
2023-09-20 17:15:43 +08:00
$params = $this->params;
$field = "u.id,phone,avatar,nick_name,real_name,id_card,gender,age,total_balance,total_integral,CONCAT(province_name,city_name,area_name,street_name,village_name,brigade_name,address) as address,status,create_time";
return User::alias('u')->field($field)
->leftJoin('geo_province p','u.province = p.province_code')
->leftJoin('geo_city c','u.city = c.city_code')
->leftJoin('geo_area a','u.area = a.area_code')
->leftJoin('geo_street s','u.street = s.street_code')
->leftJoin('geo_village v','u.village = v.village_code')
->leftJoin('geo_brigade b','u.brigade = b.id')
->where('status','<>',2)
->where($this->searchWhere)
->where(function($query) use ($params){
if(isset($params['address'])){
$query->where('CONCAT(province_name,city_name,area_name,street_name,village_name,brigade_name,address) LIKE "%'.$params['address'].'%"');
}
})
->limit($this->limitOffset, $this->limitLength)
->order('u.id desc')
->select()->each(function($item){
$item['gender_text'] = $item->gender_text;
$item['status_text'] = $item->status_text;
})->toArray();
2023-09-18 09:11:13 +08:00
}
// 获取数量
public function count(): int
{
2023-09-20 17:15:43 +08:00
$params = $this->params;
$field = "u.id,CONCAT(province_name,city_name,area_name,street_name,village_name,brigade_name,address) as address,status,create_time";
return User::alias('u')->field($field)
->leftJoin('geo_province p','u.province = p.province_code')
->leftJoin('geo_city c','u.city = c.city_code')
->leftJoin('geo_area a','u.area = a.area_code')
->leftJoin('geo_street s','u.street = s.street_code')
->leftJoin('geo_village v','u.village = v.village_code')
->leftJoin('geo_brigade b','u.brigade = b.id')
->where('status','<>',2)
->where($this->searchWhere)
->where(function($query) use ($params){
if(isset($params['address'])){
$query->where('CONCAT(province_name,city_name,area_name,street_name,village_name,brigade_name,address) LIKE "%'.$params['address'].'%"');
}
})
->count();
2023-09-18 09:11:13 +08:00
}
}