H1d3rOne
|
7b6df6426c
|
fix: 改进登录流程的错误处理和日志
- 添加详细的登录日志输出
- 获取openId失败时返回错误而非创建guest用户
- 避免重复创建用户账号
|
2026-03-10 16:39:18 +08:00 |
|
H1d3rOne
|
f3b084a72f
|
refactor: 始终上传头像到服务器
- 前端始终上传头像到服务器,不再判断是否为临时路径
- 后端移除downloadAvatar方法
- 数据库avatar_url始终存储服务器路径
|
2026-03-10 07:34:00 +08:00 |
|
H1d3rOne
|
8249514262
|
fix: 修复微信头像上传到服务器功能
- auth-modal.vue: 登录前先上传微信临时头像到服务器
- uploadAvatar接口支持临时上传(temp参数)
- 数据库avatar_url存储服务器路径而非临时路径
|
2026-03-10 07:25:24 +08:00 |
|
H1d3rOne
|
2667098632
|
refactor: 统一变量名为username
- login方法中将nickname变量改名为username
- 保持前端传入参数名不变(nickname)
- 后端统一使用username变量名
|
2026-03-10 07:20:38 +08:00 |
|
H1d3rOne
|
096c3e544c
|
refactor: 删除nickname字段,统一使用username
- UserInfo实体类删除nickname字段
- UserInfoService.loginOrRegister使用username
- UserController删除nickname相关代码
- 前端所有页面统一使用username
- auth-modal.vue登录时使用username
|
2026-03-10 07:08:03 +08:00 |
|
H1d3rOne
|
41a959f298
|
fix: 修复头像和昵称同步更新问题
- mine.vue: 上传头像后正确处理URL
- account.vue: 加载用户信息时同步更新本地存储
- 确保我的页面和账号页面信息实时同步
|
2026-03-10 06:41:27 +08:00 |
|
H1d3rOne
|
492b337ddd
|
feat: 头像文件存储到服务器
- 登录时自动下载微信头像到服务器
- 手动上传头像保存到服务器
- 数据库存储服务器上的头像路径
- 添加downloadAvatar方法处理头像下载
|
2026-03-10 06:34:28 +08:00 |
|
H1d3rOne
|
467895a9c0
|
fix: 修复金币操作时coins为null的问题
- consumeCoins方法处理coins为null的情况
- addCoins方法处理coins为null的情况
- deductCoins方法处理coins为null的情况
|
2026-03-10 06:02:34 +08:00 |
|
H1d3rOne
|
04882156c4
|
fix: 修改按钮放在头像内部,修复账号信息同步
- 修改按钮放在头像内部正下方,更小
- 修改用户名时同步更新nickname字段
- account.vue加载时处理头像URL
|
2026-03-10 05:47:32 +08:00 |
|
H1d3rOne
|
1a48452ccd
|
feat: 添加头像下方修改按钮和头像上传功能
- mine.vue: 头像下方添加灰色修改按钮
- api.js: 添加getBaseUrl方法
- UserController.java: 添加uploadAvatar接口
- WebConfig.java: 配置静态文件服务
- 支持修改用户名和上传头像
|
2026-03-10 05:28:24 +08:00 |
|
H1d3rOne
|
a10be4ca13
|
feat: 消费金币时保存消费记录
- UserInfoService.consumeCoins方法添加消费记录保存
- 记录包含:用户ID、消费金额、消费类型、描述、关联ID
- 消费详情页面可查看每次测算的金币消耗记录
|
2026-03-10 05:12:07 +08:00 |
|
H1d3rOne
|
98d63115a4
|
feat: 修改签到奖励金币数量
- 第1天: +2金币
- 第2天: +3金币
- 第3天: +4金币
- 第4天: +2金币
- 第5天: +2金币
- 第6天: +3金币
- 第7天: +10金币
|
2026-03-10 05:05:20 +08:00 |
|
H1d3rOne
|
365a01f5e8
|
feat: 签到中断或超过7天重置为第1天
- 签到中断时重置连续签到天数为1
- 连续签到超过7天时重置为第1天
- 优化签到进度显示逻辑
|
2026-03-10 04:59:35 +08:00 |
|
H1d3rOne
|
df562f9a52
|
feat: 优化签到进度显示
- 连续签到几天,前几个图标变亮
- 下面的星期几显示对应签到日期的星期
- 添加currentStreak计算属性
|
2026-03-10 04:53:30 +08:00 |
|
H1d3rOne
|
db22cd87a4
|
fix: 修复邀请好友分享功能
- 使用button组件的open-type=share触发分享
- 移除uni.showShareMenu调用
- 添加button样式重置
|
2026-03-10 04:46:58 +08:00 |
|
H1d3rOne
|
1f999b2ea8
|
fix: 修复recordId变量作用域问题
- qimen.vue: 将recordId移到try块外部
- daliuren.vue: 将recordId移到try块外部
- meihua.vue: 将recordId移到try块外部
- liuyao.vue: 将recordId移到try块外部
|
2026-03-10 04:37:34 +08:00 |
|
H1d3rOne
|
fbb155643d
|
fix: 修复记录页面和签到功能
- records.vue: 加载记录时传递userId参数
- coins.vue: 签到后同步金币数据到数据库
|
2026-03-10 04:30:36 +08:00 |
|
H1d3rOne
|
879eb05052
|
fix: 测算成功后才保存记录
- 所有测算页面添加测算结果验证
- 测算失败时不保存记录,不消耗金币
- 统一错误处理逻辑
|
2026-03-10 04:14:55 +08:00 |
|
H1d3rOne
|
4eb434b9ec
|
feat: 注销账号时级联删除用户记录
- 注销账号时删除用户的所有测算记录
- 添加@Transactional注解确保事务一致性
|
2026-03-10 04:04:47 +08:00 |
|
H1d3rOne
|
9967e5008c
|
fix: 未登录时提示用户先登录
- 在checkCoinsAndConsume中添加登录提示
- 未登录用户点击测算时弹出登录提示框
|
2026-03-10 03:57:36 +08:00 |
|
H1d3rOne
|
7950a087ed
|
fix: 修复新用户金币默认值为3
- 在@PrePersist中设置coins默认值为3
- 确保新用户注册时获得3个金币
|
2026-03-10 03:35:56 +08:00 |
|
H1d3rOne
|
1508898cbf
|
fix: 移除所有金币硬编码,改为API操作
- mine.vue: coins默认值改为0
- coins.vue: 添加API调用更新金币
- 新增addCoins API接口用于金币奖励
- 观看视频奖励通过API更新数据库
|
2026-03-10 03:26:08 +08:00 |
|
H1d3rOne
|
f5f214a100
|
refactor: 金币默认值改为数据库层面设置
- UserInfo实体类coins字段添加默认值DEFAULT 3
- 移除前后端硬编码的金币默认值
- 新增consumeCoins API接口用于金币消耗
- coinUtils.js改为从服务器获取金币数据
- 所有测算页面checkCoinsAndConsume改为异步调用
- VIP用户测算不消耗金币
|
2026-03-10 03:19:40 +08:00 |
|
H1d3rOne
|
b9a4a9150e
|
fix: 修复测算模块金币消耗逻辑
- 修改coinUtils.js默认金币为3
- 所有测算页面添加recordId变量
- 测算成功后才消耗金币和保存记录
- 测算失败不消耗金币
- VIP用户测算不消耗金币
- 金币不足时弹出提示
|
2026-03-10 03:09:56 +08:00 |
|
H1d3rOne
|
a101643de0
|
fix: 修改新用户默认金币为3个
- 修改UserInfo实体类@PrePersist中coins默认值为3
- 确保新注册用户获得3个金币
|
2026-03-10 02:42:46 +08:00 |
|
H1d3rOne
|
c48517aeac
|
fix: 修改数据库配置为create模式,确保新用户默认3金币
- 修改ddl-auto为create,每次启动重建表
- 修改BASE_URL为localhost进行本地测试
- 确保注销账号后重新登录获得3金币
|
2026-03-10 02:07:38 +08:00 |
|
H1d3rOne
|
6561e9034b
|
feat: 完善微信授权登录功能
- 新增半屏授权登录窗口,从底部滑出
- 支持微信头像和昵称选择
- 新用户注册默认3个金币
- 新增注销账号功能,从数据库删除用户
- 删除旧的授权登录页面
- 退出登录和注销后跳转首页
- 优化登录交互体验
|
2026-03-10 01:37:24 +08:00 |
|
H1d3rOne
|
832f282ff9
|
实现全局点击拦截,未登录时任何点击都弹出提示框
功能实现:
1. 全局点击监听
- 在App.vue的template最外层view添加@click事件
- 监听所有点击操作
- 未登录时立即弹出提示框
2. 智能拦截机制
- 检查登录状态:使用authCheck.isLoggedIn()
- 防止重复弹窗:使用isCheckingClick标志
- 授权窗口打开时不拦截:检查showAuthModal状态
3. 用户交互流程
- 用户点击屏幕任何位置
- 未登录状态立即弹出"未登录"提示框
- 提示框内容:"请先登录后再使用"
- 点击"去登录":显示授权窗口
- 点击"取消":关闭提示框
4. 优化体验
- 已登录用户不受影响
- 授权窗口打开时不重复拦截
- 防止连续点击导致多次弹窗
特点:
- 全局统一拦截
- 即时响应
- 用户友好
- 无需在每个页面单独处理
|
2026-03-09 22:01:35 +08:00 |
|
H1d3rOne
|
ea7752f554
|
优化全局未登录拦截,点击任何地方弹出登录窗口
功能改进:
1. 全局事件监听
- App.vue添加setupGlobalListeners方法
- 监听showAuthModal和hideAuthModal事件
- 在onHide时移除监听器
2. 统一的登录拦截机制
- authCheck.js使用uni.$emit触发全局事件
- 点击"去登录"按钮触发showAuthModal事件
- App.vue接收事件后显示授权窗口
3. 用户体验优化
- 未登录时点击任何功能都会弹出提示
- 提示框包含"去登录"按钮
- 点击"去登录"后从底部滑出授权窗口
- 授权窗口占据屏幕70%
工作流程:
1. 用户点击功能模块
2. 检查登录状态
3. 未登录弹出提示框
4. 点击"去登录"
5. 触发showAuthModal事件
6. App.vue显示授权窗口
7. 用户完成授权
8. 继续使用功能
|
2026-03-09 21:56:03 +08:00 |
|
H1d3rOne
|
0d30d40794
|
实现全局未登录拦截功能,覆盖所有tabBar页面
功能实现:
1. 首页(index.vue)
- 所有测算功能模块添加登录检查
- 未登录时弹出提示框
- 引导用户完成登录
2. 记录页面(records.vue)
- 页面显示时检查登录状态
- 未登录时弹出提示框
- 阻止未登录用户查看记录
3. 工具页面(tools.vue)
- 所有工具项添加登录检查
- 未登录时弹出提示框
- 引导用户完成登录
4. 我的页面(mine.vue)
- 页面显示时检查登录状态
- 未登录时弹出提示框
- 阻止未登录用户查看个人信息
实现方式:
- 导入authCheck工具
- 使用authCheck.requireLogin()检查登录状态
- 使用authCheck.isLoggedIn()判断是否已登录
- 未登录时弹出"未登录,无法使用"提示
- 提示框包含"去登录"按钮
特点:
- 全局统一的登录检查机制
- 友好的用户提示
- 引导用户完成登录流程
- 保护用户隐私和数据安全
|
2026-03-09 21:50:48 +08:00 |
|
H1d3rOne
|
6790df0f72
|
优化授权窗口样式和实现全局未登录拦截
问题:
1. 授权窗口只占屏幕一半,显示不够突出
2. 取消登录后点击功能模块没有弹出未登录提示
解决方案:
1. 优化授权窗口样式
- 高度从auto改为70vh,占据屏幕70%
- 使用flex布局,内容垂直居中
- 增加header和content的padding
- 整体更加美观和突出
2. 实现全局未登录拦截
- 在首页index.vue中导入authCheck工具
- 所有功能模块的点击方法添加登录检查
- 未登录时弹出"未登录,无法使用"提示
- 提示框包含"去登录"按钮
- 点击"去登录"触发授权流程
改进:
- 授权窗口更加醒目
- 未登录用户无法使用功能
- 引导用户完成登录
- 提升用户体验
|
2026-03-09 21:43:33 +08:00 |
|
H1d3rOne
|
a537fc0b23
|
修复chooseAvatar取消错误
问题:
- 用户点击取消选择头像时出现错误
- 错误信息:chooseAvatar:fail cancel
解决方案:
- 添加@error事件处理
- 新增onChooseAvatarError方法
- 区分用户取消和其他错误
- 用户取消时不显示错误提示
- 其他错误显示友好提示
改进:
- 更好的错误处理
- 避免控制台报错
- 提升用户体验
|
2026-03-09 21:37:44 +08:00 |
|
H1d3rOne
|
ad47ee11e6
|
新增从顶部滑入的授权登录模态窗口组件
功能实现:
1. 模态窗口动画
- 从顶部平滑滑入效果
- 使用cubic-bezier缓动函数实现弹性动画
- 背景遮罩淡入效果
- 支持点击遮罩关闭
2. 微信授权流程
- 集成微信chooseAvatar API
- 点击按钮选择微信头像或从相册选择
- 选择头像后弹出昵称输入框
- 自动完成授权登录
3. 用户信息获取
- 获取微信头像URL
- 获取用户输入的昵称
- 调用uni.login获取code
- 后端生成唯一用户ID
4. 数据处理
- 本地缓存:userId、userInfo、userCoins、vipLevel、username、userAvatar
- 后端保存:通过API提交用户信息到数据库
- 数据同步:确保前后端数据一致
5. 错误处理
- 授权失败友好提示
- 用户取消授权确认对话框
- 网络错误处理
- 详细日志记录
6. 安全性
- 使用微信官方API
- 符合微信开放平台安全规范
- 不直接暴露敏感信息
7. 用户体验
- 操作流程简洁直观
- 状态反馈清晰
- 授权成功自动关闭模态窗口
- 支持取消登录操作
组件特点:
- 可复用的模态窗口组件
- 支持v-model双向绑定
- 提供success、cancel、error事件
- 优雅的动画效果
- 完善的错误处理
|
2026-03-09 17:29:13 +08:00 |
|
H1d3rOne
|
d5ea80766f
|
简化授权登录页面, requires_approval
|
2026-03-09 17:19:45 +08:00 |
|
H1d3rOne
|
7eb1ae7f52
|
简化授权登录页面,一键授权获取微信昵称和头像
优化内容:
1. 简化页面布局
- 移除复杂的步骤引导
- 采用居中卡片式设计
- 紫色渐变背景,更加美观
2. 精简交互流程
- 头像选择:点击头像按钮直接选择
- 昵称输入:点击输入框自动获取微信昵称
- 一键授权:填写完成后点击按钮即可
3. 优化视觉效果
- Logo图标:🔮水晶球
- 应用名称:玄机排盘
- 白色卡片配紫色渐变背景
- 圆形头像带紫色边框
4. 简化代码
- 移除冗余的提示文字
- 精简样式代码
- 优化错误处理逻辑
页面特点:
- 简洁美观的界面设计
- 一键授权的便捷流程
- 良好的用户体验
|
2026-03-09 17:11:54 +08:00 |
|
H1d3rOne
|
e0446bffc8
|
修复微信小程序代码依赖分析错误
问题原因:
- 微信开发者工具的代码依赖分析功能会过滤无依赖文件
- 新增的auth页面可能被误判为无依赖文件
- 导致页面无法正常加载
解决方案:
1. 修改project.config.json
- 添加editorSetting配置
- 设置tabIndent和tabSize
2. 修改manifest.json
- 添加ignoreDevUnusedFiles: false
- 添加ignoreUploadUnusedFiles: false
- 禁用开发者工具过滤无依赖文件功能
3. 确保auth页面正确注册
- 在pages.json中注册auth页面
- 设置正确的导航栏样式
解决方法:
- 在微信开发者工具中:设置 → 项目设置 → 取消勾选"过滤无依赖文件"
- 或在配置文件中设置ignoreDevUnusedFiles为false
|
2026-03-09 17:03:08 +08:00 |
|
H1d3rOne
|
a7efc92f2a
|
修复首次打开小程序未自动跳转授权页面的问题
问题原因:
1. 授权页面pages/auth/auth未在pages.json中注册
2. uni.redirectTo无法跳转到未注册的页面
3. 缺少详细的日志输出
解决方案:
1. 在pages.json中添加授权页面配置
- 路径:pages/auth/auth
- 导航栏标题:授权登录
- 导航栏背景色:#10B981(绿色)
- 导航栏文字颜色:white
2. 优化App.vue跳转逻辑
- 使用uni.navigateTo替代uni.redirectTo
- 添加navigateTo失败后的redirectTo备用方案
- 添加详细的console.log日志输出
- 在跳转前设置hasShownAuth标记
3. 增强调试信息
- 输出用户授权状态检查结果
- 输出hasUserInfo和hasShownAuth的值
- 输出跳转成功/失败的详细信息
测试要点:
- 首次打开小程序自动跳转到授权页面
- 授权页面正常显示
- 授权成功后跳转到首页
|
2026-03-09 16:51:04 +08:00 |
|
H1d3rOne
|
28848d541d
|
优化真机测试环境下的用户授权流程
问题分析:
1. 微信已废弃自动弹出授权框功能
2. 用户不清楚如何选择头像和昵称
3. 授权流程引导不清晰
解决方案:
1. 优化授权页面布局
- 分步骤引导:第一步选择头像,第二步输入昵称
- 添加清晰的步骤标签和提示文字
- 头像选择后显示"已选择"状态
- 昵称输入框添加提示文字
2. 增强交互体验
- 选择头像成功后显示Toast提示
- 按钮状态根据是否填写完整显示不同样式
- 未填写完整时按钮半透明不可点击
- 授权成功后延长Toast显示时间
3. 完善错误处理
- 添加详细的错误提示信息
- 区分头像和昵称为空的提示
- 授权失败时显示具体原因
4. 优化提示说明
- 更新授权说明内容
- 说明如何获取微信昵称
- 说明可以手动输入自定义昵称
测试要点:
- 首次使用自动跳转到授权页面
- 点击头像按钮可选择微信头像或相册图片
- 点击昵称输入框可自动填充微信昵称
- 授权成功后"我的"页面显示头像和昵称
|
2026-03-09 16:31:37 +08:00 |
|
xuan-bot
|
75d4901476
|
fix: 添加spring-boot-starter-validation依赖解决编译错误
|
2026-03-09 16:20:31 +08:00 |
|
H1d3rOne
|
04e858f6cf
|
后端API全面优化:添加参数验证、全局异常处理和金币增减方法
问题修复:
1. 参数验证问题
- 创建DTO类:UpdateVipRequest、UpdateCoinsRequest、UpdatePhoneRequest
- 使用@NotBlank、@NotNull、@Min、@Max、@Pattern注解验证参数
- 防止NullPointerException和非法参数
2. 全局异常处理
- 创建GlobalExceptionHandler全局异常处理器
- 统一处理Exception、MethodArgumentNotValidException等异常
- 返回友好的错误信息,避免暴露敏感信息
- 添加日志记录
3. 统一响应格式
- 创建ApiResponse统一响应类
- 包含success、data、error、code、timestamp字段
- 提供success()和error()静态方法
4. 金币增减方法
- UserInfoService新增addCoins方法(增加金币)
- UserInfoService新增deductCoins方法(扣除金币)
- 添加参数验证和余额检查
- 金币不足时抛出IllegalArgumentException
技术实现:
- 使用Spring @RestControllerAdvice实现全局异常处理
- 使用javax.validation注解进行参数验证
- 使用SLF4J记录日志
- 统一HTTP状态码和业务错误码
|
2026-03-09 16:00:58 +08:00 |
|
H1d3rOne
|
966d7269ba
|
完善用户认证与个人信息展示功能
功能实现:
1. 首次使用自动触发授权
- App.vue onLaunch检查用户登录状态
- 首次使用自动跳转到授权页面
- 使用hasShownAuth标记避免重复跳转
2. 头像点击查看大图
- 点击头像使用uni.previewImage查看大图
- 编辑图标使用@click.stop阻止冒泡
- 无头像时显示友好提示
3. 手机号格式优化
- 手机号显示为138****5678格式
- 添加formatPhone方法处理格式化
- 兼容不同长度的手机号
4. 授权取消提示优化
- 点击"暂不授权"弹出确认对话框
- 提示用户稍后可在"我的"页面授权
- 提供"去授权"和"稍后再说"两个选项
技术实现:
- 使用uni.previewImage查看大图
- 使用正则表达式格式化手机号
- 使用uni.showModal优化交互体验
- 完善错误处理和用户提示
|
2026-03-09 15:44:20 +08:00 |
|
H1d3rOne
|
2af29c604b
|
修改为微信官方推荐的新方式获取头像和昵称
问题:
- getUserProfile API已被微信废弃
- getUserInfo API无法获取用户信息
- 导致无法获取微信头像和昵称
解决方案:
- 使用button组件的open-type="chooseAvatar"获取头像
- 使用input组件的type="nickname"获取昵称
- 这是微信官方推荐的新方式
前端实现:
- 头像按钮:open-type="chooseAvatar" @chooseavatar事件
- 昵称输入框:type="nickname" 自动填充微信昵称
- 简化登录流程,移除getUserProfile调用
- 使用async/await优化代码结构
功能特点:
- 用户点击头像按钮选择微信头像
- 用户点击昵称输入框自动填充微信昵称
- 支持手动输入昵称
- 更符合微信小程序最新规范
|
2026-03-09 00:35:48 +08:00 |
|
H1d3rOne
|
7914781263
|
修复测算时金币未扣除的问题
问题原因:
- 所有测算模块调用consumeCoin()时未传递参数
- consumeCoin方法需要type、description、relatedId参数
- 导致金币扣除失败,消费记录未保存
修复内容:
- 八字测算:consumeCoin('bazi', '八字命理测算', recordId)
- 紫微斗数:consumeCoin('ziwei', '紫微斗数测算')
- 六爻占卜:consumeCoin('liuyao', '六爻占卜测算')
- 梅花易数:consumeCoin('meihua', '梅花易数测算')
- 奇门遁甲:consumeCoin('qimen', '奇门遁甲测算')
- 大六壬:consumeCoin('daliuren', '大六壬测算')
- 塔罗牌:consumeCoin('taluo', '塔罗牌测算')
- 西方占星:consumeCoin('zhanxing', '西方占星测算')
功能特点:
- 每次测算正确扣除1个金币
- 记录消费类型和描述
- 保存消费记录到coin_consume_record表
- 同步更新用户金币数到user_info表
|
2026-03-09 00:31:34 +08:00 |
|
H1d3rOne
|
caac642120
|
实现微信登录功能,首次使用自动保存用户信息
前端实现:
- 修改auth.vue登录逻辑
- 使用getUserProfile获取微信用户信息
- 获取用户昵称和头像URL
- 调用uni.login获取code
- 将code和用户信息发送到后端
- 登录成功后保存完整用户信息到本地
后端实现:
- 修改UserController登录接口
- 接收code参数而不是openId
- 调用微信API jscode2session获取openId
- 使用RestTemplate调用微信接口
- 支持配置微信appid和secret
- 首次登录自动创建用户并保存到数据库
配置文件:
- application.properties新增微信配置项
- wechat.appid: 微信小程序AppID
- wechat.secret: 微信小程序AppSecret
功能特点:
- 首次使用小程序自动获取微信用户信息
- 用户信息保存到user_info表
- 支持游客模式(未配置微信参数时)
- 完整的错误处理和日志记录
|
2026-03-09 00:10:45 +08:00 |
|
H1d3rOne
|
5c8fcce387
|
实现用户信息修改同步到数据库功能
后端实现:
- UserInfoService新增updateUsername和updateAvatarUrl方法
- UserController新增/updateUsername和/updateAvatar接口
- 支持修改用户名和头像URL
- 数据同步保存到user_info表
前端实现:
- api.js新增updateUsername和updateAvatar方法
- “我的”页面editUsername方法改为调用后端API
- 修改成功后同步更新本地缓存
- 错误处理更友好
功能特点:
- 修改用户名实时同步到数据库
- 更新本地缓存确保数据一致性
- “我的账号”页面自动加载最新用户信息
- 所有页面数据来源统一
|
2026-03-08 23:17:41 +08:00 |
|
H1d3rOne
|
aa0e7403d6
|
我的页面数据与数据库同步,保持一致性
问题:
- “我的”页面用户数据从本地存储获取
- 与“我的账号”页面数据来源不一致
- 可能导致数据不同步
解决方案:
- 修改mine.vue页面
- loadUserData方法改为从后端API获取数据
- 新增loadLocalData方法作为备用
- 数据来源与account.vue保持一致
功能特点:
- 页面显示时从后端获取最新用户数据
- 数据与user_info表保持同步
- 更新本地缓存确保一致性
- 错误时使用本地数据兜底
- 优化判断条件,避免0值被误判
数据字段:
- coins: 金币数
- vipLevel: VIP等级
- username: 用户名
- avatar: 头像URL
- userId: 用户ID
|
2026-03-08 23:06:18 +08:00 |
|
H1d3rOne
|
a4496effae
|
我的账号页面数据与数据库同步,前后端API联调
后端实现:
- UserController已有/user/info接口,返回用户完整信息
- 包含userId、username、nickname、phone、avatarUrl等字段
- 数据与user_info表对应
前端实现:
- 修改account.vue页面
- loadUserInfo方法改为从后端API获取数据
- 添加更多用户字段:nickname、vipLevel、coins、streakDays
- 绑定手机号后同步更新本地存储
- 优化用户名显示逻辑:优先username,其次nickname
API优化:
- api.js新增userApi.getInfo方法
- 与getUserInfo方法功能相同
功能特点:
- 页面显示时从后端获取最新用户数据
- 数据与数据库保持同步
- 绑定手机号后更新本地缓存
- 错误处理更友好
|
2026-03-08 22:52:18 +08:00 |
|
H1d3rOne
|
52131ca4a5
|
修复我的账号页面排版问题,添加完整样式
问题:
- 我的账号页面缺少样式,排版混乱
- 用户信息卡片没有样式
- 菜单项排版不美观
解决方案:
- 添加完整的页面样式
- 用户信息卡片:绿色渐变背景,圆角设计
- 头像:圆形,带白色边框
- 菜单项:白色背景,圆角卡片设计
- 图标:渐变背景,区分普通/警告/危险类型
- 文字:不同颜色区分功能类型
- 添加阴影和边框效果
样式特点:
- 绿色主题渐变背景
- 卡片式布局,圆角设计
- 图标背景渐变效果
- 警告项黄色,危险项红色
- 整体风格统一美观
|
2026-03-08 22:45:29 +08:00 |
|
H1d3rOne
|
cb769b338e
|
修复消费详情页面路径错误
- 在pages.json中添加消费详情页面配置
- 页面路径:pages/mine/consume-details
- 设置金黄色导航栏样式
- 修复页面未找到的错误
|
2026-03-08 22:18:38 +08:00 |
|
H1d3rOne
|
14b209bf85
|
新增消费详情功能,记录金币使用明细
后端实现:
- 新增CoinConsumeRecord实体类,记录消费明细
- 新增CoinConsumeRecordRepository和CoinConsumeRecordService
- 新增CoinConsumeController,提供消费记录API
- 支持分页查询和按类型查询
前端实现:
- 新增消费详情页面consume-details.vue
- 显示累计消费和消费次数统计
- 展示消费记录列表,包含类型、描述、时间、金额
- 支持分页加载
功能集成:
- 在“我的”页面“金币任务”下方添加“消费详情”入口
- 修改coinUtils.js,consumeCoin方法增加参数
- 金币消耗时自动记录消费明细
- 记录消费类型、描述、关联ID等信息
API接口:
- POST /api/coin-consume/save - 保存消费记录
- GET /api/coin-consume/list - 分页查询消费记录
- GET /api/coin-consume/all - 查询所有消费记录
- GET /api/coin-consume/type - 按类型查询消费记录
|
2026-03-08 22:12:49 +08:00 |
|