林菲菲-知识库
将内网服务映射到公网域名-教程
林菲菲-待办事项
工作日志
服务器
内网服务器
基础设施搭建
虚拟机模版-初始化脚本
Chatwoot v4.6.0 部署文档
1Panel
一键部署脚本
Gitea部署
内网服务器 172.16.72.252
测试用例
外网服务器 202.79.167.21/25/31
多Agents
多Agent
外网服务器 202.79.167.19/22/23
迁移202.61.130.102服务器至202.79.167.25
刷单台子
需求迭代1
VIP等级功能 - 修改文件清单(最终版)
文件迁移脚本
天天vip新客户
外网服务器 202.61.130.102/130/233
wifi
矿池Bugs
Kt-后台系统
工单记录
Kt001 -内网配置
KT-后台业务流程
Kt前台业务流程
KT基建
本文档使用 MrDoc 发布
-
+
首页
VIP等级功能 - 修改文件清单(最终版)
VIP等级功能 - 完整修改文件清单(最终版) 一、数据库修改(1项) 1. 数据库表结构 表名: sq_member修改内容: 添加字段 ALTER TABLE `sq_member` ADD COLUMN `vip_level` TINYINT(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT 'VIP等级 1-9' AFTER `is_vip`; --- 二、后端PHP控制器文件(4个) 1. Platform端会员控制器 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/admin/index/app/platform/controller/Member.php修改内容: 添加 set_vip_level() 方法(约541-581行)功能: 平台端设置会员VIP等级的API接口 2. Agent端会员控制器 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/admin/index/app/agent/controller/Member.php修改内容: 添加 set_vip_level() 方法(约731-770行)功能: 代理端设置会员VIP等级的API接口 3. Client API控制器 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/admin/index/app/apiv1/controller/Member.php修改位置: get_info() 方法第23行修改内容: 在field字段列表中添加 vip_level功能: 客户端获取用户信息时返回VIP等级 4. 公共会员控制器(★关键修复) 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/admin/index/app/common/controller/Member.php修改位置: 第52行修改内容: 在field字段列表中添加 m.vip_level修改前: $field = 'm.id,m.name,m.account,m.mobile,m.is_vip,m.is_withdraw,...'; 修改后: $field = 'm.id,m.name,m.account,m.mobile,m.is_vip,m.vip_level,m.is_withdraw,...'; 功能: 确保会员列表查询包含VIP等级字段 --- 三、路由配置文件(2个)★本次补充 1. Agent端路由配置 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/admin/index/app/agent/route/route.php修改位置: 第89行修改内容: 添加VIP等级路由 Route::any('member_set_vip_level','Member/set_vip_level'); 功能: 注册代理端VIP等级设置的路由地址 2. Platform端路由配置 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/admin/index/app/platform/route/route.php修改位置: 第156行修改内容: 添加VIP等级路由 Route::any('member_set_vip_level','Member/set_vip_level'); 功能: 注册平台端VIP等级设置的路由地址 --- 四、前端HTML视图文件(2个) 1. Platform端会员列表视图 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/admin/index/view/platform/member/index.html修改位置1: 第73行 - 在账号信息中显示VIP等级 {if $vo.is_vip==1 && $vo.vip_level>0}<br>VIP等级:VIP{$vo.vip_level}{/if} 修改位置2: 第97行 - 添加"VIP等级"操作按钮 <a class="layui-btn layui-btn-xs layui-btn-warm" title="VIP等级" onclick="set_vip_level({$vo.id},{$vo.vip_level ?? 1})">VIP等级</a> 修改位置3: 第144-224行 - 添加JavaScript函数 - set_vip_level(id, currentLevel) - 弹出VIP等级设置对话框 - submitVipLevel(id) - 提交VIP等级到后端 2. Agent端会员列表视图 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/admin/index/view/agent/member/index.html修改位置1: 第81行 - 在账号信息中显示VIP等级 {if $vo.is_vip==1 && $vo.vip_level>0}<br>VIP等级:VIP{$vo.vip_level}{/if} 修改位置2: 第130行 - 添加"VIP等级"操作按钮(包含权限控制) {auth:check route="member/set_vip_level" usertype="Agent"} <a class="layui-btn layui-btn-xs layui-btn-warm" title="VIP等级" onclick="set_vip_level({$vo.id},{$vo.vip_level ?? 1})">VIP等级</a> {/auth:check} 修改位置3: 第198-278行 - 添加JavaScript函数 - set_vip_level(id, currentLevel) - 弹出VIP等级设置对话框 - submitVipLevel(id) - 提交VIP等级到后端 --- 五、客户端H5源码文件(1个) 1. 客户端"我的"页面源码 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/client/h5_source/pages/my/my.vue修改位置: 第26行修改前: <text class="vip" v-if="isVip">VIP</text> 修改后: <text class="vip" v-if="member.vip_level > 0 && member.is_vip == 1">VIP{{member.vip_level}}</text> --- 六、客户端编译文件(2个) 1. 编译后的JavaScript文件 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/client/index/static/js/pages-my-my.c6ccc8c8.js修改内容: 直接修改编译后的Vue render函数修改原因: 因源码编译困难,直接修改了生产代码修改逻辑: 将VIP显示从简单判断改为显示VIP等级数字 2. JavaScript备份文件 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/client/index/static/js/pages-my-my.c6ccc8c8.js.backup说明: 修改前的备份文件,用于恢复 --- 七、权限配置文件(1个) 1. SQL数据文件(权限记录) 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/admin/index/mysql.sql修改位置: 第548行(在121行之后插入)修改内容: 添加VIP等级权限记录 (336, 'VIP等级', 'member_set_vip_level', 'member/set_vip_level', 0, 0, 1, 0, 1, 0, '', 112, NULL, 1740441600, 1740441600), 对应SQL语句: INSERT INTO `sq_rule` (`id`, `name`, `rule`, `route`, `level`, `sort`, `status`, `is_developer_only`, `is_to_agent`, `type`, `icon_code`, `parent_id`, `delete_time`, `create_time`, `update_time`) VALUES (336, 'VIP等级', 'member_set_vip_level', 'member/set_vip_level', 0, 0, 1, 0, 1, 0, '', 112, NULL, 1740441600, 1740441600); --- 八、文档文件(1个) 1. 实现文档 文件: /Volumes/DataDisk/CodeSpace/tt/shuadan/VIP_LEVEL_IMPLEMENTATION.md内容包含: - 数据库SQL脚本 - API接口文档 - 前端实现说明 - 测试步骤 - 部署清单 --- 修改统计总览 | 类别 | 数量 | 文件列表 | |--------|----------|----------------------------------------------------------------------------| | 数据库表 | 1个 | sq_member(添加vip_level字段) | | PHP控制器 | 4个 | Platform/Member.php, Agent/Member.php, Apiv1/Member.php, Common/Member.php | | 路由配置 | 2个 | agent/route/route.php, platform/route/route.php(★本次补充) | | HTML视图 | 2个 | platform/member/index.html, agent/member/index.html | | Vue源文件 | 1个 | pages/my/my.vue | | 编译JS | 1个(+1备份) | pages-my-my.c6ccc8c8.js + .backup | | SQL配置 | 1个 | mysql.sql(权限记录) | | 文档 | 1个 | VIP_LEVEL_IMPLEMENTATION.md | 总计: 14个文件被修改或创建(本次新增2个路由文件) --- 关键修复历史 第一次修复(客户端API) - 问题: 客户端不显示VIP等级 - 文件: /admin/index/app/apiv1/controller/Member.php:23 - 解决: 在API返回字段中添加 vip_level 第二次修复(列表查询) - 问题: 平台端和代理端会员列表不显示VIP等级 - 文件: /admin/index/app/common/controller/Member.php:52 - 解决: 在查询字段列表中添加 m.vip_level 第三次补充(权限配置) - 问题: 代理端看不到VIP等级按钮 - 文件: /admin/index/mysql.sql - 解决: 添加权限记录ID 336,需要在后台为代理角色分配此权限 第四次补充(路由配置) - 问题: VIP等级接口返回404,路由未注册 - 文件: - /admin/index/app/agent/route/route.php:89 - /admin/index/app/platform/route/route.php:156 - 解决: 添加 member_set_vip_level 路由配置到两个路由文件 第五次修复(前端字段名)★本次修复 - 问题: 设置VIP等级后显示错误弹窗,但实际已设置成功 - 原因: 后端返回 `result` 字段,前端判断 `code` 字段,导致判断失败 - 响应数据: `{"result":200,"msg":"设置VIP等级成功","data":""}` - 文件: - /admin/index/view/agent/member/index.html:264 - /admin/index/view/platform/member/index.html:210 - /admin/index/app/agent/controller/Member.php:763(优化Record调用) - 解决: 将前端 `res.code == 200` 改为 `res.result == 200` --- 部署检查清单 - 数据库添加 vip_level 字段 - 数据库添加权限记录(ID: 336) - 为代理账号分配"VIP等级"权限 - ★上传路由配置文件(agent/route/route.php, platform/route/route.php) - ★上传前端视图文件(agent/member/index.html, platform/member/index.html) - 刷新平台端页面查看VIP等级显示 - 刷新代理端页面查看VIP等级按钮 - 测试客户端H5页面VIP等级显示 - ★测试设置VIP等级功能(确保显示成功提示并刷新页面,不显示错误弹窗) --- 以上是VIP等级功能的完整修改清单,包含所有被修改的文件和详细的修改内容。 > 你帮我直接在本地启动所有端的服务,谢谢 ⏺ 好的,我来帮您启动所有端的服务。让我先检查当前运行的服务状态,然后启动需要的服务。 ⏺ BashOutput(Reading shell output) ⎿ 后端服务已启动在 http://localhost:8080 (eval):1: command not found: php ⏺ BashOutput(Reading shell output) ⎿ > 最好用的复制按钮,页面文字复制,uniapp复制,vue复制。@1.0 dev:h5 > cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve sh: cross-env: command not found
arise
2025年10月25日 22:25
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码