Commit Graph

9 Commits

Author SHA1 Message Date
Yuhang Wu c9d85b0815 feat(module/seckill): 限时抢购 Redis Lua 防超卖 + 一人一单兜底
- 实体 SeckillActivity、SeckillProduct、SeckillOrder
- 枚举:SeckillActivityStatusEnum(含 calcStatus 时间驱动动态状态)、SeckillResultEnum
- RedisKey 追加 4 个抢购相关 key:SECKILL_STOCK / SECKILL_USER_RECORD / SECKILL_RESULT / SECKILL_WARMUP
- Mapper:decrRemainStock / incrRemainStock(MySQL 兜底)、forceEnd、markAsPaid
- resources/lua/seckill.lua:原子完成"限购校验 + 库存校验 + 扣库存 + 累计已购"
- Service:seckillBuy(核心:Lua 防超卖 → 落库 → 唯一索引兜底 → 落库失败回滚 Redis)
- Service:queryResult(轮询接口,从 Redis 取抢购结果)
- Service:warmupActivity(管理端预热,把库存同步到 Redis)
- Service:forceEnd / deleteActivity(清理 Redis)
- DTO:SeckillBuyReq、SeckillActivitySaveReq、SeckillProductAddReq
- VO:SeckillActivityVO(含动态状态 + 倒计时秒数)、SeckillProductVO(含实时 Redis 库存 + 已售百分比 + 折扣率)、SeckillResultVO
- Controller:用户端(活动列表/详情/抢购/结果查询)+ 管理端(活动 CRUD + 预热 + 强制结束 + 商品管理)
- 一人一单:seckill_order UNIQUE KEY (user_id, activity_id, sku_id) 兜底
- 抢购失败回滚:MySQL 落库异常时 INCRBY Redis 释放库存
feat(common/storage): 文件存储抽象接口 + Local / S3 双实现

- 抽象接口 FileStorage:store / delete / getAccessUrl / parsePathFromUrl
- LocalFileStorage:本地 ./uploads/ 物理存储(默认)
- S3FileStorage:S3 协议实现(RustFS / MinIO / AWS S3 / 阿里云 OSS)
- S3StorageProperties:snack.s3.* 配置类
- @ConditionalOnProperty 自动按 snack.storage.type 切换
- 启动时自动 ensureBucket(headBucket + createBucket)
- DisposableBean 容器关闭时关闭 S3Client 连接池

文件模块:
- 实体 UploadFile(含 storageType / bizType 区分)
- 枚举:FileBizTypeEnum(avatar/admin-avatar/product/sku/category/banner/notice/chat/common)
- Service:upload / uploadWithUploader / deleteFile / deleteByPath
- FileController:/api/file/upload + /api/file/{id}
- 图片类型自动校验(jpg/png/gif/webp)
- URL → path 反查(删除商品时根据 main_image 字段自动清理物理文件)
- application.yml:snack.storage.type / snack.upload.* / snack.s3.* 配置

管理端:
- AdminAvatarController /api/admin/avatar/upload
- CategoryAdminController 加 /api/admin/category/{id}/icon
- 删除分类时同步清理 icon 物理文件
2026-06-05 11:11:19 +08:00
Yuhang Wu a18e4df8a8 ```
feat(coupon): 完善优惠券管理功能并优化前端页面

- 添加优惠券类型、状态枚举定义及完整的数据结构
- 实现优惠券增删改查、状态管理等完整CRUD操作
- 增加用户优惠券记录查询功能和相关接口
- 重构优惠券列表页面,支持条件筛选和分页展示
- 添加优惠券编辑表单验证和状态切换功能
- 实现领取记录抽屉展示功能,支持用户记录查看
- 完善Mock数据模拟和错误处理机制
- 优化页面布局和交互体验,增加搜索和过滤功能
```
2026-06-04 13:41:50 +08:00
sparksfly 487778f0f8 feat: 新增用户与公告管理功能,优化后台菜单系统
此提交完成了多项核心功能开发:
1.  新增C端用户管理全流程,包含后端Mapper、Service、Controller以及前端API、页面
2.  新增系统公告模块,包含前后端完整的CRUD、状态管理、置顶、浏览量统计等功能
3.  重构后台侧边菜单系统,支持分组排序、图标自动解析、折叠态优化
4.  新增管理员管理API基础框架
5.  完善商品管理API补充更多字段和接口
6.  调整pnpm workspace配置,新增依赖白名单
7.  补充Element Plus组件类型声明
2026-06-03 23:40:35 +08:00
Yuhang Wu 9079411e0d ```
feat(ui-ux-pro-max): 添加完整的UI/UX设计智能技能系统

新增UI/UX Pro Max技能模块,包含67种样式、96个配色方案、57组字体搭配、25种图表类型,
覆盖13个技术栈(React, Next.js, Vue, Svelte等),支持设计规划、构建、审查、优化等操作,
提供可搜索的设计数据库和优先级推荐系统。

完整的设计系统包括:
- 8个优先级分类的设计规则(从无障碍访问到图表数据)
- 针对不同产品类型的样式推荐
- 技术栈特定的最佳实践指南
- 可持久化的主设计系统与页面级覆盖模式
- 完整的预交付检查清单
```
2026-06-03 15:37:15 +08:00
sparksfly 8b70a3f49a feat: 完成商品分类管理功能,优化前后端配置与接口
1.  调整环境配置,优化 Vite 代理与 Axios 请求路径
2.  完善 Sa-Token 配置,新增 BusinessException 重载构造
3.  重构后端 Mapper 调用,替换 selectBatchIds 为 selectByIds
4.  重构登录与用户信息流程,移除验证码与 Mock 数据
5.  新增商品分类管理页面,支持树形增删改查与状态管理
6.  优化 Redis 序列化配置,升级 Jackson 序列化器
7.  完善类型定义与 API 封装,适配后端最新接口契约
2026-06-02 23:46:19 +08:00
Yuhang Wu 7c483840b6 ```
feat(order): 添加订单模块完整功能

- 新增订单数据库表结构,包含支付渠道、交易号、退款信息等字段
- 添加订单相关实体类、枚举、常量定义
- 实现订单提交、查询、支付、取消、退款等核心业务逻辑
- 创建用户端和管理端订单控制器API接口
- 实现支付回调处理功能用于支付宝/微信支付集成
- 添加订单状态机管理和物流处理功能
```
2026-06-02 17:59:57 +08:00
Yuhang Wu e5ac034349 ```
feat: 实现用户地址管理和购物车功能

- 新增收货地址模块,包括地址的增删改查、设置默认地址等功能
- 实现购物车模块,支持添加商品、修改数量、选中状态管理、批量操作等
- 添加相应的DTO、Entity、VO和Mapper层实现
- 集成SaToken登录验证和数据权限控制
- 实现地址数量限制和购物车商品数量限制防刷单机制
```
2026-06-02 17:33:40 +08:00
Yuhang Wu 1595dc8c35 ```
docs(db): 添加核心业务设计文档和数据库初始化说明

- 新增 BUSINESS_DESIGN.md 文档,详细描述 WebSocket 客服系统和
  Redis 防超卖抢购系统的设计方案
- 新增 README.md 文档,提供数据库初始化说明和表结构清单
- 包含完整的建表脚本执行顺序和默认测试账号信息
- 为后续开发提供详细的技术架构参考文档
```
2026-06-02 17:23:50 +08:00
Yuhang Wu e682e9c3f8 init 2026-06-01 18:04:25 +08:00