This commit is contained in:
MeSHard
2025-11-10 16:12:07 +08:00
parent 99f88bc53e
commit 94f7e83679
181 changed files with 15770 additions and 0 deletions

249
app/controller/Admin.php Normal file
View File

@@ -0,0 +1,249 @@
<?php
declare (strict_types=1);
namespace app\controller;
use app\model\Access;
use think\exception\ValidateException;
use think\facade\Db;
use think\facade\Validate;
use think\Request;
use app\validate\Admin as AdminValidate;
use app\model\Admin as AdminModel;
class Admin
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
$list = AdminModel:: paginate([
'list_rows' => 5,
'query' => request()->param()
]);
return json($list);
}
public function admin_all()
{
$list = AdminModel::select();
return json($list);
}
/**
* 显示创建资源表单页.
*
* @return \think\Response
*/
public function create()
{
//
}
/**
* 保存新建的资源
*
* @param \think\Request $request
* @return string|\think\Response
*/
private function PasswordStrongEnough($password)
{
$error = "";
if (strlen($password) < 10) {
$error .= "密码至少为10位";
return $error;
}
if (!preg_match("/[a-z]/", $password)) {
$error .= "密码至少包含一个小写字母";
return $error;
}
if (!preg_match("/[A-Z]/", $password)) {
$error .= "密码至少包含一个大写字母";
return $error;
}
if (!preg_match("/[0-9]/", $password)) {
$error .= "密码至少包含一个数字";
return $error;
}
if (!preg_match("/[.!@#$%]/", $password)) {
$error .= "密码至少包含:(.!@#$%)其中一个符号";
return $error;
}
}
public function save(Request $request)
{
$data = $request->param();
$username = $data['username'];
$nickname = $data['nickname'];
$password = $data['password'];
$email = $data['email'];
$phone = $data['phone'];
$passwordStrengthErrors = $this->PasswordStrongEnough($password);
if (!empty($passwordStrengthErrors)) {
return json(['code' => 1, 'message' => '密码强度不足,' . $passwordStrengthErrors]);
}
$id = AdminModel::where('username', $username)->value('id');
if (empty($id)) {
AdminModel::create([
'username' => $username,
'password' => $password,
'nickname' => $nickname,
'email' => $email,
'phone' => $phone
]);
return json(['code' => 200, 'message' => '注册成功']);
} else {
return json(['code' => 1, 'message' => '用户名已存在']);
}
}
/**
* 显示指定的资源
*
* @return \think\Response
*/
public function read(Request $request)
{
$data = $request->param();
$message = "'%" . $data['message'] . "%'";
$list = Db::table('admin')->whereRaw('(username like' . $message . ' or nickname like' . $message . ' or email like' . $message . ' or phone like' . $message . ' or roles like ' . $message . ')')->paginate(20);
return json($list);
}
/**
* 显示编辑资源表单页.
*
* @param int $id
* @return \think\Response
*/
public function edit($id)
{
}
/**
* 保存更新的资源
*
* @param \think\Request $request
*
* @return \think\Response
*/
public function update(Request $request): \think\Response
{
$data = $request->param();
$validate = Validate::rule([
'username' => 'require|min:2|max:10|chsDash|unique:admin',
//'__token__' => 'require|token',
'nickname' => 'require|min:2|max:10|chsDas',
'password' => 'require|min:6',
'email' => 'require|email|unique:admin',
'phone' => 'require|number|length:11|unique:admin'
]);
try {
$validate->batch(true)->check($request->param());
} catch (ValidateException $exception) {
return json(['code' => 1, 'massage' => $exception->getError()]);
}
$id = AdminModel::where('username', $data['username'])->value('id');
if (!empty($id)) {
AdminModel::update([
'nickname' => $data['nickname'],
'password' => $data['password'],
'email' => $data['email'],
'phone' => $data['phone'],
'roles' => $data['roles']
], ['id' => $id]);
return json(['code' => 200, 'massage' => '修改成功']);
} else {
return json(['code' => 1, 'massage' => '用户不存在']);
}
}
/**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
public function delete(Request $request)
{
$data = $request->param();
$username = $data['username'];
$id = AdminModel::where('username', $username)->value('id');
if ($id != null) {
$result = AdminModel::destroy($id);
if ($result) {
return json(['code' => 200, 'massage' => '删除成功']);
} else {
return json(['code' => 1, 'massage' => '删除失败']);
}
} else {
return json(['code' => 1, 'massage' => '该管理员不存在']);
}
}
public function update_password(Request $request)
{
$data = $request->param();
$phone = $data['phone'];
$id = AdminModel::where(['username' => $data['username'], 'phone' => $phone])->find()->getData('id');
if (!empty($id)) {
$password = $data['password'];
$result = AdminModel::where('id', $id)->update(['password' => $password]);
if ($result == 0) {
return json(['code' => 1, 'message' => '手机号或用户名错误!']);
} else {
return json(['code' => 200, 'message' => '已成功修改密码']);
}
}
}
public function change_password(Request $request)
{
$data = $request->param();
$username = $data['username'];
$old_password = $data['old_password'];
$id = AdminModel::where(['username' => $username, 'password' => $old_password])->value('id');
if (!empty($id)) {
$new_password = $data['new_password'];
$result = AdminModel::where('id', $id)->update(['password' => $new_password]);
if ($result == 1) {
return json(['code' => 200, 'message' => '已成功修改密码']);
}
} else {
return json(['code' => 1, 'message' => '原始密码不正确']);
}
}
public function UpdatePermission($admin_id, $permission = array())
{
if (empty($permission)) {
$pp = Db::table('admin')->where('id', $admin_id)->value('permission');
if (!empty($pp)) {
$pp = explode(',', substr($pp, 0, -1));
} else {
$pp = array();
}
$username = Db::table('admin')->where('id', $admin_id)->value('username');
return json(['code' => 200, 'msg' => 'Query OK', 'data' => ['admin_id' => $admin_id, 'adminName' => $username, 'permission' => $pp]]);
} else {
$pstr = '';
foreach ($permission as $pp) {
$pstr .= $pp . ',';
}
Db::table('admin')->where('id', $admin_id)->save(['permission' => $pstr]);
$pp = explode(',', substr($pstr, 0, -1));
return json(['code' => 200, 'msg' => 'Update OK', 'data' => ['permission' => $pp]]);
}
}
}