You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
5.0 KiB
141 lines
5.0 KiB
2 months ago
|
<?php
|
||
|
|
||
|
namespace app\admin\controller;
|
||
|
|
||
|
class User extends \app\Rest
|
||
|
{
|
||
|
public function __construct(\think\App $app)
|
||
|
{
|
||
|
parent::__construct($app);
|
||
|
}
|
||
|
public function createUser()
|
||
|
{
|
||
|
$user = $this->_input["user"];
|
||
|
$data = checkAccountIsExist($user["account"], $this->_uniacid);
|
||
|
if ($data) {
|
||
|
return $this->error("account is exist ,please check again.");
|
||
|
}
|
||
|
$user_id = uuid();
|
||
|
$user["user_id"] = $user_id;
|
||
|
$user["offset"] = createOffset();
|
||
|
$user["passwd"] = createPasswd($user["passwd"], $user["offset"]);
|
||
|
$user["uniacid"] = $this->_uniacid;
|
||
|
if (!isset($user["role_id"]) || !ckeckRole($user["role_id"], $this->_uniacid)) {
|
||
|
$user["role_id"] = getRole()["role_id"];
|
||
|
}
|
||
|
if (!empty($this->_user)) {
|
||
|
$user["creator_id"] = $this->_user["user_id"];
|
||
|
}
|
||
|
$user_model = new \app\admin\model\Admin();
|
||
|
$result = $user_model->createUser($user);
|
||
|
return $this->success($result);
|
||
|
}
|
||
|
public function listUser()
|
||
|
{
|
||
|
$param = $this->_param;
|
||
|
$page_config = ["page" => 1, "page_count" => 20];
|
||
|
if (isset($param["page"]) && $param["page"] > 0) {
|
||
|
$page_config["page"] = $param["page"];
|
||
|
}
|
||
|
if (isset($param["page_count"]) && $param["page_count"] > 0) {
|
||
|
$page_config["page_count"] = $param["page_count"];
|
||
|
}
|
||
|
$param["uniacid"] = $this->_uniacid;
|
||
|
$filter = listUserFilter($param);
|
||
|
$user_model = new \app\admin\model\Admin();
|
||
|
$page_config["total"] = $user_model->listUserCount($filter);
|
||
|
$users = $user_model->listUser($filter, $page_config);
|
||
|
$page_config["total_page"] = \intval($page_config["total"] / $page_config["page_count"]);
|
||
|
if ($page_config["total"] % $page_config["page_count"] > 0) {
|
||
|
$page_config["total_page"] = $page_config["total_page"] + 1;
|
||
|
}
|
||
|
$result = $page_config;
|
||
|
$result["users"] = $users;
|
||
|
return $this->success($result);
|
||
|
}
|
||
|
public function getUser()
|
||
|
{
|
||
|
$user_id = $this->_param["user_id"];
|
||
|
$user_model = new \app\admin\model\Admin();
|
||
|
$user = $user_model->getUser(["user_id" => $user_id, "uniacid" => $this->_uniacid]);
|
||
|
unset($user["passwd"]);
|
||
|
unset($user["offset"]);
|
||
|
return $this->success($user);
|
||
|
}
|
||
|
public function updateUser()
|
||
|
{
|
||
|
$user_id = $this->_param["user_id"];
|
||
|
$user_model = new \app\admin\model\Admin();
|
||
|
$user = $user_model->getUser(["user_id" => $user_id, "uniacid" => $this->_uniacid]);
|
||
|
if (empty($user)) {
|
||
|
return $this->error("the user not is exist ,please check user id.");
|
||
|
}
|
||
|
$user_data = getUpdateUserFilter($this->_input["user"]);
|
||
|
if (isset($user_data["passwd"])) {
|
||
|
if (!isset($user["offset"])) {
|
||
|
$user["offset"] = createOffset();
|
||
|
}
|
||
|
$user_data["offset"] = $user["offset"];
|
||
|
$user_data["passwd"] = createPasswd($user_data["passwd"], $user["offset"]);
|
||
|
}
|
||
|
$result = $user_model->updateUser(["user_id" => $user_id, "uniacid" => $this->_uniacid], $user_data);
|
||
|
return $this->success($result);
|
||
|
}
|
||
|
public function delUser()
|
||
|
{
|
||
|
$user_id = $this->_param["user_id"];
|
||
|
$user_model = new \app\admin\model\Admin();
|
||
|
$user = $user_model->getUser(["user_id" => $user_id, "uniacid" => $this->_uniacid]);
|
||
|
if (empty($user)) {
|
||
|
return $this->error("the user not is exist ,please check user id.");
|
||
|
}
|
||
|
$result = $user_model->delUser(["user_id" => $user_id, "uniacid" => $this->_uniacid], ["deleted" => 0]);
|
||
|
$admin_role_model = new \app\admin\model\AdminRole();
|
||
|
$admin_role_model->delUserRole(["user_id" => $user_id]);
|
||
|
return $this->success($result);
|
||
|
}
|
||
|
public function setUserRole()
|
||
|
{
|
||
|
$user_id = $this->_param["user_id"];
|
||
|
$role_id = $this->_param["role_id"];
|
||
|
$user_model = new \app\admin\model\Admin();
|
||
|
$user = $user_model->getUser(["user_id" => $user_id, "uniacid" => $this->_uniacid]);
|
||
|
if (empty($user)) {
|
||
|
return $this->error("the user is not exist ,please check user id.");
|
||
|
}
|
||
|
$role = ckeckRole($role_id);
|
||
|
if (empty($role)) {
|
||
|
return $this->error("the role is not exist ,please check role id.");
|
||
|
}
|
||
|
$exist_role_ids = [];
|
||
|
foreach ($user["role"] as $role) {
|
||
|
$exist_role_ids[] = $role["role_ids"];
|
||
|
}
|
||
|
if (in_array($role_id, $exist_role_ids)) {
|
||
|
return $this->error("the user had the role ,please do not repeat add role to the user.");
|
||
|
}
|
||
|
$user_role_model = UserRoleModel();
|
||
|
$result = $user_role_model->createUserRole(["user_id" => $user_id, $role_id => $role_id, "uniacid" => $this->_uniacid]);
|
||
|
return $this->success($result);
|
||
|
}
|
||
|
public function removeUserRole()
|
||
|
{
|
||
|
$user_id = $this->_param["user_id"];
|
||
|
$role_id = $this->_param["role_id"];
|
||
|
$user_model = new \app\admin\model\Admin();
|
||
|
$user = $user_model->getUser(["user_id" => $user_id, "uniacid" => $this->_uniacid]);
|
||
|
if (empty($user)) {
|
||
|
return $this->error("the user is not exist ,please check user id.");
|
||
|
}
|
||
|
$exist_role_ids = [];
|
||
|
foreach ($user["role"] as $role) {
|
||
|
$exist_role_ids[] = $role["role_ids"];
|
||
|
}
|
||
|
if (!in_array($role_id, $exist_role_ids)) {
|
||
|
return $this->error("the user role is not exist ,please check role id.");
|
||
|
}
|
||
|
$user_role_model = UserRoleModel();
|
||
|
$result = $user_role_model->delUserRole(["user_id" => $user_id, $role_id => $role_id, "uniacid" => $this->_uniacid]);
|
||
|
return $this->success($result);
|
||
|
}
|
||
|
}
|