chore: 重写初始提交(清空历史,整理后全量提交)
This commit is contained in:
@@ -0,0 +1,173 @@
|
||||
<?php
|
||||
/*
|
||||
* @Author: YwxApp <ywx@ywxapp.cn>
|
||||
* @Date: 2026-04-29 02:32:33
|
||||
* @LastEditors: YwxApp <ywx@ywxapp.cn>
|
||||
* @LastEditTime: 2026-07-21 23:20:37
|
||||
* @Description:
|
||||
* @FilePath: \ywxapp_dev\app\backend\controller\Profile.php
|
||||
* @CustomString: Copyright (c) 2026 YwxApp
|
||||
*/
|
||||
|
||||
declare (strict_types = 1);
|
||||
namespace app\backend\controller;
|
||||
|
||||
use think\Request;
|
||||
use ywxapp\controller\BackendBase;
|
||||
use ywxapp\model\BackendAdmin as AdminModel;
|
||||
use ywxapp\service\FileStorageService;
|
||||
|
||||
/**
|
||||
* Profile 类
|
||||
*
|
||||
* @author ywxapp <admin@ywxapp.cn>
|
||||
*/
|
||||
class Profile extends BackendBase
|
||||
{
|
||||
/**
|
||||
* Summary of needLogin
|
||||
* @var array
|
||||
*/
|
||||
protected $noNeedLogin = [];
|
||||
|
||||
/**
|
||||
* Summary of needRight
|
||||
* @var array
|
||||
*/
|
||||
protected $noNeedVerify = ['*'];
|
||||
|
||||
/**
|
||||
* 控制器初始化 initialize
|
||||
* @return void
|
||||
*/
|
||||
protected function initialize()
|
||||
{
|
||||
$this->model = new AdminModel;
|
||||
}
|
||||
|
||||
/**
|
||||
* 个人资料页
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$info = $this->auth->info;
|
||||
$this->assign('info', $info);
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 头像设置页 / 头像上传
|
||||
*/
|
||||
public function avatar()
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
$file = $this->request->file('file');
|
||||
if (! $file || ! $file->isValid()) {
|
||||
$this->result->error('请选择上传文件', 400);
|
||||
}
|
||||
$type = $this->request->param('type', 'avatar');
|
||||
$storage = new FileStorageService();
|
||||
$result = $storage->upload($file, $type . '/' . date('Ymd'));
|
||||
$info = $this->auth->model;
|
||||
if ($info) {
|
||||
$info->avatar = $result['storage'] == 'local' ? '/storage/' . $result['path'] : $result['url'];
|
||||
$info->save();
|
||||
$this->result->success(['src' => $info->avatar], '头像上传成功');
|
||||
} else {
|
||||
$this->result->error($file->getError(), 500);
|
||||
}
|
||||
}
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改密码页
|
||||
*/
|
||||
public function password()
|
||||
{
|
||||
return $this->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存新密码
|
||||
*/
|
||||
public function passwordSave()
|
||||
{
|
||||
if (! $this->request->isPost()) {
|
||||
$this->result->error('请求方式错误');
|
||||
}
|
||||
$old = (string) $this->request->param('old_password', '');
|
||||
$new = (string) $this->request->param('password', '');
|
||||
$new2 = (string) $this->request->param('password_confirm', '');
|
||||
|
||||
if ($new === '' || $new !== $new2) {
|
||||
$this->result->error('两次新密码不一致或为空');
|
||||
}
|
||||
$info = $this->auth->model;
|
||||
if (! $info->checkPassword($old)) {
|
||||
$this->result->error('原密码错误');
|
||||
}
|
||||
$info->resetPassword($new);
|
||||
$this->result->success('密码修改成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前管理员资料
|
||||
*/
|
||||
public function read($id)
|
||||
{
|
||||
$id = $id ?: ($this->auth->info['id'] ?? 0);
|
||||
$info = AdminModel::with(['roles'])->find($id);
|
||||
if (! $info) {
|
||||
$this->result->error('管理员不存在', 404);
|
||||
}
|
||||
$this->result->success(['info' => $info]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑表单数据
|
||||
*/
|
||||
public function edit($id = null)
|
||||
{
|
||||
$id = $id ?: ($this->auth->info['id'] ?? 0);
|
||||
$info = AdminModel::with(['roles'])->find($id);
|
||||
if (! $info) {
|
||||
$this->result->error('管理员不存在', 404);
|
||||
}
|
||||
$this->result->success(['info' => $info]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新个人资料(昵称/邮箱/头像/手机/密码)
|
||||
*/
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$id = $id ?: ($this->auth->info['id'] ?? 0);
|
||||
$info = AdminModel::find($id);
|
||||
if (! $info) {
|
||||
$this->result->error('管理员不存在', 404);
|
||||
}
|
||||
$data = $request->only(['nickname', 'email', 'avatar', 'mobile'], 'put');
|
||||
if ($request->param('password')) {
|
||||
$info->password = $request->param('password'); // 模型自动哈希
|
||||
}
|
||||
$info->save($data);
|
||||
$this->result->success($info, '资料更新成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 个人资料不支持新建
|
||||
*/
|
||||
public function save(Request $request)
|
||||
{
|
||||
$this->result->error('个人资料不支持该操作');
|
||||
}
|
||||
|
||||
/**
|
||||
* 个人资料不支持删除
|
||||
*/
|
||||
public function delete($id)
|
||||
{
|
||||
$this->result->error('个人资料不支持该操作');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user