Merge pull request '用户列表搜索条件' (#7) from zhangwei into dev
Reviewed-on: #7
This commit is contained in:
commit
8a8e59b567
|
@ -0,0 +1,67 @@
|
|||
<?php
|
||||
|
||||
namespace app\adminapi\controller;
|
||||
|
||||
use think\facade\Db;
|
||||
use think\response\Json;
|
||||
|
||||
class GeoController extends BaseAdminController
|
||||
{
|
||||
// 获取省份
|
||||
public function provinces(): Json
|
||||
{
|
||||
$data = Db::name('geo_province')->field('province_code as province,province_name')->select();
|
||||
return $this->success('请求成功',$data->toArray());
|
||||
}
|
||||
|
||||
// 获取城市
|
||||
public function cities(): Json
|
||||
{
|
||||
$param = $this->request->get('province');
|
||||
if(empty($param)){
|
||||
return $this->fail('请选择省份');
|
||||
}
|
||||
$data = Db::name('geo_city')->field('city_code as city,city_name')->where('province_code',$param)->select();
|
||||
return $this->success('请求成功',$data->toArray());
|
||||
}
|
||||
|
||||
// 获取区县
|
||||
public function areas(): Json
|
||||
{
|
||||
$param = $this->request->get('city');
|
||||
if(empty($param)){
|
||||
return $this->fail('请选择城市');
|
||||
}
|
||||
$data = Db::name('geo_area')->field('area_code as area,area_name')->where('city_code',$param)->select();
|
||||
return $this->success('请求成功',$data->toArray());
|
||||
}
|
||||
|
||||
// 获取镇街
|
||||
public function streets(): Json
|
||||
{
|
||||
$param = $this->request->get('area');
|
||||
if(empty($param)){
|
||||
return $this->fail('请选择区县');
|
||||
}
|
||||
$data = Db::name('geo_street')->field('street_code as street,street_name')->where('area_code',$param)->select();
|
||||
return $this->success('请求成功',$data->toArray());
|
||||
}
|
||||
|
||||
// 获取村社
|
||||
public function villages(): Json
|
||||
{
|
||||
$param = $this->request->get('street');
|
||||
if(empty($param)){
|
||||
return $this->fail('请选择镇街');
|
||||
}
|
||||
$data = Db::name('geo_village')->field('village_code as village,village_name')->where('street_code',$param)->select();
|
||||
return $this->success('请求成功',$data->toArray());
|
||||
}
|
||||
|
||||
// 获取小组
|
||||
public function brigades(): Json
|
||||
{
|
||||
$data = Db::name('geo_brigade')->field('id as brigade,brigade_name')->select();
|
||||
return $this->success('请求成功',$data->toArray());
|
||||
}
|
||||
}
|
|
@ -5,6 +5,7 @@ namespace app\adminapi\controller\user;
|
|||
use app\adminapi\controller\BaseAdminController;
|
||||
use app\adminapi\lists\user\UserLists;
|
||||
use app\adminapi\logic\user\UserLogic;
|
||||
use app\common\model\systems\System;
|
||||
use app\common\validate\user\UserBalanceValidate;
|
||||
use app\common\validate\user\UserIntegralValidate;
|
||||
use app\common\validate\user\UserValidate;
|
||||
|
@ -43,4 +44,11 @@ class UserController extends BaseAdminController
|
|||
$data = UserLogic::integralList($params);
|
||||
return $this->success('', $data);
|
||||
}
|
||||
|
||||
// 获取应用列表
|
||||
public function apps(): Json
|
||||
{
|
||||
$data = System::field('id as appid,name')->select();
|
||||
return $this->success('请求成功',$data->toArray());
|
||||
}
|
||||
}
|
|
@ -12,7 +12,7 @@ class UserLists extends BaseAdminDataLists implements ListsSearchInterface
|
|||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['status','age','gender'],
|
||||
'=' => ['status','province','city','area','street','village','brigade'],
|
||||
'%like%' => ['nick_name','real_name','phone'],
|
||||
];
|
||||
}
|
||||
|
@ -20,49 +20,20 @@ class UserLists extends BaseAdminDataLists implements ListsSearchInterface
|
|||
// 获取用户列表
|
||||
public function lists(): array
|
||||
{
|
||||
$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')
|
||||
$field = "id,phone,avatar,nick_name,real_name,id_card,gender,age,total_balance,total_integral,province,city,area,street,village,brigade,address,status,create_time";
|
||||
return User::field($field)->where('status','<>',2)->where($this->searchWhere)
|
||||
->limit($this->limitOffset, $this->limitLength)->order('id desc')
|
||||
->select()->each(function($item){
|
||||
$item['address'] = $item->province_text.$item->city_text.$item->area_text.$item->street_text.$item->village_text.$item->brigade_text.$item->address;
|
||||
$item['gender_text'] = $item->gender_text;
|
||||
$item['status_text'] = $item->status_text;
|
||||
unset($item['province'],$item['city'],$item['area'],$item['street'],$item['village'],$item['brigade']);
|
||||
})->toArray();
|
||||
}
|
||||
|
||||
// 获取数量
|
||||
public function count(): int
|
||||
{
|
||||
$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();
|
||||
return User::field('id')->where('status','<>',2)->where($this->searchWhere)->count();
|
||||
}
|
||||
}
|
|
@ -38,15 +38,31 @@ class UserLogic extends BaseLogic
|
|||
//用户余额列表
|
||||
public static function balanceList($params): array
|
||||
{
|
||||
$search = [];
|
||||
if(isset($params['record_id'])){
|
||||
$search[] = ['record_id','=',$params['record_id']];
|
||||
}
|
||||
if(isset($params['mark'])){
|
||||
$search[] = ['mark','like','%'.$params['mark'].'%'];
|
||||
}
|
||||
if(isset($params['appid'])){
|
||||
$app = System::field('app_id')->where('id',$params['appid'])->findOrEmpty();
|
||||
if(!$app->isEmpty()){
|
||||
$search[] = ['appid','=',$app['app_id']];
|
||||
}
|
||||
}
|
||||
if(isset($params['pay_type']) && in_array($params['pay_type'],[0,1,2,3,4])){
|
||||
$search[] = ['pay_type','=',$params['pay_type']];
|
||||
}
|
||||
//获取用户余额列表
|
||||
$fields = 'id,record_id,amount,total_amount,type,pay_type,mark,appid,create_time';
|
||||
$lists = UserBalance::field($fields)->where('user_id',$params['uid'])->page($params['page_no'],$params['page_size'])->order('create_time desc')->select()->each(function($item){
|
||||
$lists = UserBalance::field($fields)->where('user_id',$params['uid'])->where($search)->page($params['page_no'],$params['page_size'])->order('create_time desc')->select()->each(function($item){
|
||||
$item['app'] = System::where('app_id',$item['appid'])->value('name');
|
||||
$item['type_text'] = $item->type_text;
|
||||
$item['pay_type_text'] = $item->pay_type_text;
|
||||
unset($item['appid']);
|
||||
})->toArray();
|
||||
$count = UserBalance::field('id')->where('user_id',$params['uid'])->count();
|
||||
$count = UserBalance::field('id')->where('user_id',$params['uid'])->where($search)->count();
|
||||
return [
|
||||
'count' => $count,
|
||||
'page_no' => $params['page_no'],
|
||||
|
@ -58,13 +74,26 @@ class UserLogic extends BaseLogic
|
|||
//用户积分列表
|
||||
public static function integralList($params): array
|
||||
{
|
||||
$search = [];
|
||||
if(isset($params['mark'])){
|
||||
$search[] = ['mark','like','%'.$params['mark'].'%'];
|
||||
}
|
||||
if(isset($params['appid'])){
|
||||
$app = System::field('app_id')->where('id',$params['appid'])->findOrEmpty();
|
||||
if(!$app->isEmpty()){
|
||||
$search[] = ['appid','=',$app['app_id']];
|
||||
}
|
||||
}
|
||||
if(isset($params['type']) && in_array($params['type'],[0,1])){
|
||||
$search[] = ['type','=',$params['type']];
|
||||
}
|
||||
//获取用户积分列表
|
||||
$fields = 'id,record_id,amount,total_amount,type,mark,appid,create_time';
|
||||
$lists = UserIntegral::field($fields)->where('user_id',$params['uid'])->page($params['page_no'],$params['page_size'])->order('create_time desc')->select()->each(function($item){
|
||||
$lists = UserIntegral::field($fields)->where('user_id',$params['uid'])->where($search)->page($params['page_no'],$params['page_size'])->order('create_time desc')->select()->each(function($item){
|
||||
$item['app'] = System::where('app_id',$item['appid'])->value('name');
|
||||
$item['type_text'] = $item->type_text;
|
||||
})->toArray();
|
||||
$count = UserIntegral::field('id')->where('user_id',$params['uid'])->count();
|
||||
$count = UserIntegral::field('id')->where('user_id',$params['uid'])->where($search)->count();
|
||||
return [
|
||||
'count' => $count,
|
||||
'page_no' => $params['page_no'],
|
||||
|
|
Loading…
Reference in New Issue