feat: add dedicated change password api and fix token expire code

This commit is contained in:
2026-05-20 16:53:08 +08:00
parent 61d14d1b45
commit 60cb2b80cd
4 changed files with 83 additions and 12 deletions
+7 -7
View File
@@ -2,25 +2,25 @@ import request from '@/utils/request'
// 账号管理 API
export function apiAssetUserList(params: any) {
return request.get({ url: '/asset/AssetUser/lists', params })
return request.get({ url: '/asset.AssetUser/lists', params })
}
export function apiAssetUserAdd(params: any) {
return request.post({ url: '/asset/AssetUser/add', params })
return request.post({ url: '/asset.AssetUser/add', params })
}
export function apiAssetUserEdit(params: any) {
return request.post({ url: '/asset/AssetUser/edit', params })
return request.post({ url: '/asset.AssetUser/edit', params })
}
export function apiAssetUserDelete(params: any) {
return request.post({ url: '/asset/AssetUser/delete', params })
return request.post({ url: '/asset.AssetUser/delete', params })
}
// 资源管理 API
export function apiAssetResourceList(params: any) {
return request.get({ url: '/asset/AssetResource/lists', params })
return request.get({ url: '/asset.AssetResource/lists', params })
}
export function apiAssetResourceAdd(params: any) {
return request.post({ url: '/asset/AssetResource/add', params })
return request.post({ url: '/asset.AssetResource/add', params })
}
export function apiAssetResourceDelete(params: any) {
return request.post({ url: '/asset/AssetResource/delete', params })
return request.post({ url: '/asset.AssetResource/delete', params })
}
@@ -57,12 +57,12 @@ class AssetAppController extends BaseApiController
{
$token = $this->request->header('token');
if (empty($token)) {
return $this->fail('请先登录', [], 401);
return $this->fail('请先登录', [], -1);
}
$userId = cache('asset_token_' . $token);
if (!$userId) {
return $this->fail('登录已过期', [], 401);
return $this->fail('登录已过期', [], -1);
}
$type = $this->request->get('type', 1); // 1:图片 2:视频 3:语音
@@ -95,4 +95,37 @@ class AssetAppController extends BaseApiController
'page_size' => $pageSize,
]);
}
/**
* @notes 修改密码
*/
public function changePassword()
{
$token = $this->request->header('token');
if (empty($token)) {
return $this->fail('请先登录', [], -1);
}
$userId = cache('asset_token_' . $token);
if (!$userId) {
return $this->fail('登录已过期', [], -1);
}
$oldPassword = $this->request->post('old_password');
$password = $this->request->post('password');
$user = AssetUser::find($userId);
if (!$user) {
return $this->fail('用户不存在', [], -1);
}
if (!password_verify($oldPassword, $user->password)) {
return $this->fail('原密码不正确');
}
$user->password = password_hash($password, PASSWORD_DEFAULT);
$user->save();
return $this->success('密码修改成功');
}
}
+38
View File
@@ -0,0 +1,38 @@
-- 专属数字资产 菜单和权限配置
-- 注意:需要根据实际的菜单表结构调整字段名称(如前缀 zyt_ 可能需根据您的实际表前缀替换)
-- 1. 添加一级菜单:资源分发管理
INSERT INTO `zyt_system_menu` (`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
VALUES (0, 'M', '资源分发管理', 'el-icon-FolderOpened', 110, '', '/asset', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
-- 获取刚插入的一级菜单ID
SET @asset_pid = LAST_INSERT_ID();
-- 2. 添加二级菜单:分发账号管理
INSERT INTO `zyt_system_menu` (`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
VALUES (@asset_pid, 'C', '分发账号管理', 'el-icon-User', 1, 'asset.AssetUser/lists', '/asset/user', '/asset/user/index', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
-- 获取【分发账号管理】菜单ID
SET @user_menu_id = LAST_INSERT_ID();
-- 3. 添加账号相关按钮权限
INSERT INTO `zyt_system_menu` (`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
VALUES
(@user_menu_id, 'A', '新增账号', '', 1, 'asset.AssetUser/add', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
(@user_menu_id, 'A', '编辑账号', '', 2, 'asset.AssetUser/edit', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
(@user_menu_id, 'A', '删除账号', '', 3, 'asset.AssetUser/delete', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
-- 4. 添加二级菜单:资源素材下发
INSERT INTO `zyt_system_menu` (`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
VALUES (@asset_pid, 'C', '资源素材下发', 'el-icon-Files', 2, 'asset.AssetResource/lists', '/asset/resource', '/asset/resource/index', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
-- 获取【资源素材下发】菜单ID
SET @resource_menu_id = LAST_INSERT_ID();
-- 5. 添加资源相关按钮权限
INSERT INTO `zyt_system_menu` (`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
VALUES
(@resource_menu_id, 'A', '上传分配资源', '', 1, 'asset.AssetResource/add', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
(@resource_menu_id, 'A', '删除资源', '', 2, 'asset.AssetResource/delete', '', '', '', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
+3 -3
View File
@@ -1,4 +1,4 @@
CREATE TABLE `asset_user` (
CREATE TABLE `zyt_asset_user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`phone` varchar(20) NOT NULL COMMENT '手机号(登录账号)',
`password` varchar(255) NOT NULL COMMENT '密码',
@@ -9,7 +9,7 @@ CREATE TABLE `asset_user` (
UNIQUE KEY `uk_phone` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='私密资产-用户表';
CREATE TABLE `asset_resource` (
CREATE TABLE `zyt_asset_resource` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '资源类型:1=图片,2=视频,3=语音',
`title` varchar(100) NOT NULL COMMENT '资源名称/标题',
@@ -20,7 +20,7 @@ CREATE TABLE `asset_resource` (
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='私密资产-资源表';
CREATE TABLE `asset_user_resource` (
CREATE TABLE `zyt_asset_user_resource` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) unsigned NOT NULL COMMENT '用户ID',
`resource_id` int(11) unsigned NOT NULL COMMENT '资源ID',