Files
fdesk/app/admin/service/UserService.php
T

106 lines
2.6 KiB
PHP

<?php
namespace app\admin\service;
use app\admin\logic\UserLogic;
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';
// 关键字
if (isset($p['keyword']) && $p['keyword']) {
$k = '%' . $p['keyword'] . '%';
$config['where']['name'] = ['like', $k];
}
if (isset($p['user_id']) && $p['user_id']) {
$config['where']['user_id'] = $p['user_id'];
}
if (isset($p['id']) && $p['id']) {
$config['where']['id'] = $p['id'];
}
$config['fields'] = ['id','sn', 'name', 'email', 'sex', 'phone', 'avatar', 'corp_id', 'country_id', 'position', 'status', 'created_at'];
break;
case 'show':
$config['where']['id'] = $p['id'];
break;
case 'store':
break;
case 'update':
$config['where']['id'] = $p['id'];
break;
case 'destroy':
$config['where']['id'] = $p['id'];
break;
}
return $config;
}
/**
* 授权
*
* @param Request $request
* @param array $data
* @return bool
*/
public function authorize(Request $request, array $data = [])
{
return (new UserLogic())->updateRoleAndSystem($data);
}
/**
* 更新用户资源权限
*
* @param Request $request
* @param array $data
* @return bool
*/
public function updateResources(Request $request, array $data = [])
{
return (new UserLogic())->updateUserResources($data);
}
}