用户列表

This commit is contained in:
2025-08-05 17:19:12 +08:00
parent 748ac79bd5
commit 40d3942a8c
5 changed files with 174 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
<?php
namespace app\admin\controller;
use app\common\controller\BaseController;
use app\common\traits\crud\CrudControllerTrait;
use app\admin\service\UserService;
use app\crm\model\Customer;
class UserController extends BaseController
{
use CrudControllerTrait;
protected $service;
public function __construct()
{
$this->service = new UserService();
}
/**
* 列表页数据格式化
*
* @param array $data
* @return array
*/
protected function indexFormat($data)
{
if(isset($data['records'])){
return $data;
}
$data['sex_txt'] = '';
if (isset($data['sex']) && $data['sex'] == 1){
$data['sex_txt'] = '男';
}elseif(isset($data['sex']) && $data['sex'] == 2){
$data['sex_txt'] = '女';
}
switch ($data['status']){
case 1:
$data['status_txt'] = '正常';
break;
case 2:
$data['status_txt'] = '离职';
break;
default:
$data['status_txt'] = '';
break;
}
$data['customer_count'] = Customer::where('user_id', $data['id'])->count();
return $data;
}
}
+17
View File
@@ -0,0 +1,17 @@
<?php
namespace app\admin\logic;
use app\common\traits\crud\CrudLogicTrait;
use app\common\model\User;
class UserLogic
{
use CrudLogicTrait;
/**
* 指定当前要操作的模型
*/
protected string $modelClass = User::class;
}
+69
View File
@@ -0,0 +1,69 @@
<?php
namespace app\admin\service;
use app\admin\validate\UserValidate;
use app\common\traits\crud\CrudServiceTrait;
use app\common\model\User;
use support\Request;
class UserService
{
use CrudServiceTrait;
/**
* 指定当前要操作的模型
*/
protected string $modelClass = User::class;
/**
* 验证器
*/
protected $validator = UserValidate::class;
/**
* 获取验证器
*/
public function getValidator()
{
return new $this->validator;
}
/**
* 构造 CrudUtil 查询配置
*/
protected function buildQueryConfig(Request $request, string $scene = 'default'): array
{
$p = $request->all();
$config = [];
$config['model'] = $this->modelClass;
switch ($scene) {
case 'default':
$config['where']['status'] = 1;
$config['order']['id'] = 'desc';
break;
case 'index':
$config['where']['status'] = 1;
$config['order']['id'] = 'desc';
$config['fields'] = ['id', 'name', 'email', 'sex', 'phone', 'avatar', 'corp_id', 'country_id', 'position', 'status', 'created_at'];
break;
case 'show':
$config['where']['id'] = $p['id'];
$config['where']['status'] = 1;
break;
case 'store':
break;
case 'update':
$config['where']['id'] = $p['id'];
break;
case 'destroy':
$config['where']['id'] = $p['id'];
break;
}
return $config;
}
}
+29
View File
@@ -0,0 +1,29 @@
<?php
namespace app\admin\validate;
use think\Validate;
class UserValidate extends Validate
{
// 规则
protected $rule = [
];
// 提示
protected $message = [
];
// 场景
protected $scene = [
'store' => [
],
'update' => [
]
];
}
+6
View File
@@ -71,6 +71,12 @@ Route::group('/admin', function () {
Route::any('/update', [app\admin\controller\RoleController::class, 'update']);
Route::any('/destroy', [app\admin\controller\RoleController::class, 'destroy']);
});
// 用户
Route::group('/user', function () {
Route::any('/list', [app\admin\controller\UserController::class, 'index']);
});
// 公司
Route::group('/corp', function () {
Route::any('/list', [app\admin\controller\CorpController::class, 'index']);