# 优惠券中心模块 (ruoyi-mall-coupon) ## 模块简介 `ruoyi-mall-coupon` 是商城系统的优惠券中心模块,提供独立的优惠券服务,支持发券、核销、过期处理等功能。 ## 功能特性 ### 1. 优惠券管理 ✅ - ✅ 优惠券CRUD操作 - ✅ 优惠券类型管理(满减、折扣、现金) - ✅ 优惠券发放规则配置 - ✅ 优惠券有效期管理 - ✅ 优惠券状态管理(启用/禁用) - ✅ 优惠券导出功能 ### 2. 用户优惠券 ✅ - ✅ 用户领券 - ✅ 用户优惠券列表查询 - ✅ 优惠券使用(订单结算时调用) - ✅ 优惠券退还(订单取消时调用) - ✅ 优惠券过期处理(定时任务)✅ ### 3. 优惠券统计 - [ ] 发放统计(可在管理端通过列表查询实现) - [ ] 使用统计(可在管理端通过列表查询实现) - [ ] 核销统计(可在管理端通过列表查询实现) ## 数据库表 - `mall_coupon` - 优惠券表 - `mall_coupon_user` - 用户优惠券表 详细表结构请参考:`script/sql/ry_mall.sql` ## 模块结构 ``` org.dromara.mall.coupon ├── controller │ ├── admin // 管理端API │ │ ├── AdminMallCouponController.java │ │ └── AdminMallCouponUserController.java │ └── app // 用户端API │ ├── AppMallCouponController.java │ └── AppMallCouponUserController.java ├── domain │ ├── MallCoupon.java │ ├── MallCouponUser.java │ ├── bo // 业务对象 │ │ ├── MallCouponBo.java │ │ └── MallCouponUserBo.java │ └── vo // 视图对象 │ ├── MallCouponVo.java │ └── MallCouponUserVo.java ├── mapper │ ├── MallCouponMapper.java │ └── MallCouponUserMapper.java ├── service │ ├── MallCouponService.java │ ├── MallCouponUserService.java │ └── impl │ ├── MallCouponServiceImpl.java │ └── MallCouponUserServiceImpl.java ├── job // 定时任务 │ └── MallCouponJob.java └── config └── MallCouponAutoConfiguration.java ``` ## API接口 ### 管理端接口 #### 优惠券管理 (`/mall/coupon`) - `GET /mall/coupon/list` - 查询优惠券列表(分页) - `GET /mall/coupon/{id}` - 获取优惠券详情 - `POST /mall/coupon` - 新增优惠券 - `PUT /mall/coupon` - 修改优惠券 - `DELETE /mall/coupon/{ids}` - 删除优惠券 - `POST /mall/coupon/export` - 导出优惠券列表 - `PUT /mall/coupon/changeStatus/{id}` - 启用/禁用优惠券 #### 用户优惠券管理 (`/mall/coupon/user`) - `GET /mall/coupon/user/list` - 查询用户优惠券列表(分页) - `GET /mall/coupon/user/{id}` - 获取用户优惠券详情 - `DELETE /mall/coupon/user/{ids}` - 删除用户优惠券 - `POST /mall/coupon/user/export` - 导出用户优惠券列表 ### 移动端接口 #### 优惠券 (`/app/mall/coupon`) - `GET /app/mall/coupon/available/list` - 查询可领取的优惠券列表 - `GET /app/mall/coupon/{id}` - 获取优惠券详情 #### 用户优惠券 (`/app/mall/coupon/user`) - `GET /app/mall/coupon/user/list` - 查询用户优惠券列表 - `GET /app/mall/coupon/user/available/list` - 查询用户可用优惠券列表(未使用且未过期) - `GET /app/mall/coupon/user/{id}` - 获取用户优惠券详情 - `POST /app/mall/coupon/user/receive/{couponId}` - 领取优惠券 ## 优惠券类型说明 - **0 - 满减券**: 需要设置优惠金额和使用门槛 - **1 - 折扣券**: 需要设置折扣率(百分比)和使用门槛 - **2 - 现金券**: 需要设置优惠金额,无使用门槛 ## 依赖模块 - `ruoyi-common-*` - 通用工具模块 - `ruoyi-common-excel` - Excel导出功能 - `ruoyi-common-satoken` - 用户身份认证 ## 待实现功能 - [ ] 优惠券统计功能(可在管理端通过列表查询和筛选实现) ## 使用说明 ### 订单结算时使用优惠券 在订单提交时,可以调用 `MallCouponUserService.useCoupon(couponUserId, orderId)` 来使用优惠券。 ### 订单取消时退还优惠券 在订单取消时,可以调用 `MallCouponUserService.returnCoupon(couponUserId)` 来退还优惠券。