OPERATIONAL_ACTIVITY_README.md 9.0 KB

运营活动管理模块

功能说明

本模块用于管理商户的运营活动,支持活动的创建、查询、更新和删除操作。活动可以设置参与规则、奖励类型、优惠券等信息。


数据库表结构

store_operational_activity 表

CREATE TABLE `store_operational_activity` (
    `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
    `store_id` int NULL COMMENT '商户ID',
    `activity_name` VARCHAR(100) NOT NULL COMMENT '活动名称',
    `promotional_image` VARCHAR(500) DEFAULT NULL COMMENT '活动宣传图URL',
    `start_time` DATETIME NOT NULL COMMENT '活动开始时间',
    `end_time` DATETIME NOT NULL COMMENT '活动结束时间',
    `participation_limit` int DEFAULT 0 COMMENT '用户可参与次数,0表示不限制',
    `activity_rule` VARCHAR(50) NOT NULL COMMENT '活动规则:VERIFY_AND_COMMENT-核销并评论, VERIFY-核销, CHECK_IN-打卡',
    `reward_type` VARCHAR(50) DEFAULT NULL COMMENT '奖励类型:COUPON-优惠券, RED_PACKET-红包',
    `coupon_id` int DEFAULT NULL COMMENT '优惠券ID,关联优惠券表',
    `coupon_quantity` int DEFAULT NULL COMMENT '优惠券发放数量',
    `status` int DEFAULT 1 COMMENT '状态:0-禁用, 1-启用',
    `delete_flag` int NOT NULL DEFAULT '0' COMMENT '删除标记, 0:未删除, 1:已删除',
    `created_time` datetime(1) NOT NULL COMMENT '创建时间',
    `created_user_id` int DEFAULT NULL COMMENT '创建人ID',
    `updated_time` datetime DEFAULT NULL COMMENT '修改时间',
    `updated_user_id` int DEFAULT NULL COMMENT '修改人ID',
    PRIMARY KEY (`id`),
    INDEX `idx_activity_time` (`start_time`, `end_time`),
    INDEX `idx_status` (`status`, `delete_flag`),
    INDEX `idx_coupon_id` (`coupon_id`),
    INDEX `idx_create_time` (`created_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='运营活动表';

文件清单

1. Entity(实体类)

路径: alien-entity/src/main/java/shop/alien/entity/store/StoreOperationalActivity.java

功能: 运营活动实体类,对应数据库表 store_operational_activity

主要字段:

  • id: 主键
  • storeId: 商户ID
  • activityName: 活动名称
  • promotionalImage: 活动宣传图URL
  • startTime: 活动开始时间
  • endTime: 活动结束时间
  • participationLimit: 用户可参与次数(0表示不限制)
  • activityRule: 活动规则(VERIFY_AND_COMMENT-核销并评论, VERIFY-核销, CHECK_IN-打卡)
  • rewardType: 奖励类型(COUPON-优惠券, RED_PACKET-红包)
  • couponId: 优惠券ID
  • couponQuantity: 优惠券发放数量
  • status: 状态(0-禁用, 1-启用)
  • deleteFlag: 删除标记(逻辑删除)
  • createdTime: 创建时间(自动填充)
  • createdUserId: 创建人ID
  • updatedTime: 修改时间(自动填充)
  • updatedUserId: 修改人ID

2. DTO(数据传输对象)

路径: alien-entity/src/main/java/shop/alien/entity/store/vo/StoreOperationalActivityDTO.java

功能: 用于接收前端请求参数,包含参数校验

校验规则:

  • activityName: 必填,不能为空
  • startTime: 必填,不能为空
  • endTime: 必填,不能为空
  • activityRule: 必填,不能为空
  • 其他字段可选

3. VO(视图对象)

路径: alien-entity/src/main/java/shop/alien/entity/store/vo/StoreOperationalActivityVO.java

功能: 用于返回给前端的数据对象,继承自实体类并扩展了额外字段

扩展字段:

  • statusName: 状态名称
  • activityRuleName: 活动规则名称
  • rewardTypeName: 奖励类型名称
  • couponName: 优惠券名称
  • storeName: 商户名称
  • activityStatus: 活动状态(0-未开始, 1-进行中, 2-已结束)
  • participationCount: 已参与人数
  • remainingCouponQuantity: 剩余优惠券数量

4. Mapper(数据访问层)

路径: alien-entity/src/main/java/shop/alien/mapper/StoreOperationalActivityMapper.java

功能: 继承 MyBatis-Plus 的 BaseMapper,提供基础 CRUD 操作


5. Mapper XML(映射文件)

路径: alien-entity/src/main/resources/mapper/StoreOperationalActivityMapper.xml

功能: MyBatis 映射配置文件,定义结果集映射和通用 SQL


6. Service(服务接口)

路径: alien-store-platform/src/main/java/shop/alien/storeplatform/service/OperationalActivityService.java

功能: 定义运营活动业务逻辑接口

方法列表:

  • createActivity(StoreOperationalActivityDTO dto): 创建运营活动
  • updateActivity(StoreOperationalActivityDTO dto): 更新运营活动
  • deleteActivity(Integer id): 删除运营活动(逻辑删除)
  • getActivityById(Integer id): 根据ID获取活动详情
  • getActivityListByStoreId(Integer storeId): 根据商户ID获取活动列表
  • getActivityPage(Integer current, Integer size, Integer storeId, Integer status): 分页查询活动列表
  • updateActivityStatus(Integer id, Integer status): 启用/禁用活动
  • getOngoingActivities(Integer storeId): 获取进行中的活动列表

7. ServiceImpl(服务实现类)

路径: alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/OperationalActivityServiceImpl.java

功能: 实现运营活动业务逻辑

核心功能:

  • 活动的增删改查
  • 实体与VO对象的转换
  • 活动状态的自动判断(未开始/进行中/已结束)
  • 活动规则和奖励类型的中文名称转换

8. Controller(控制器)

路径: alien-store-platform/src/main/java/shop/alien/storeplatform/controller/OperationalActivityController.java

功能: 提供运营活动管理的 REST API 接口

API 列表:

8.1 创建运营活动

  • 接口: POST /operationalActivity/create
  • 参数: StoreOperationalActivityDTO(JSON)
  • 返回: R
  • 8.2 更新运营活动

    • 接口: POST /operationalActivity/update
    • 参数: StoreOperationalActivityDTO(JSON)
    • 返回: R
    • 8.3 删除运营活动

      • 接口: DELETE /operationalActivity/delete
      • 参数: id(活动ID)
      • 返回: R
      • 8.4 根据ID获取活动详情

        • 接口: GET /operationalActivity/detail
        • 参数: id(活动ID)
        • 返回: R
        • 8.5 根据商户ID获取活动列表

          • 接口: GET /operationalActivity/list
          • 参数: storeId(商户ID)
          • 返回: R>
          • 8.6 分页查询活动列表

            • 接口: GET /operationalActivity/page
            • 参数:
              • current(当前页,默认1)
              • size(每页大小,默认10)
              • storeId(商户ID,可选)
              • status(状态,可选)
            • 返回: R>
            • 8.7 启用/禁用活动

              • 接口: POST /operationalActivity/updateStatus
              • 参数:
                • id(活动ID)
                • status(状态:0-禁用, 1-启用)
              • 返回: R
              • 8.8 获取进行中的活动列表

                • 接口: GET /operationalActivity/ongoing
                • 参数: storeId(商户ID)
                • 返回: R>

                • 使用示例

                  创建活动

                  POST /operationalActivity/create
                  
                  {
                    "storeId": 1,
                    "activityName": "双十一优惠活动",
                    "promotionalImage": "https://example.com/image.jpg",
                    "startTime": "2025-11-11 00:00:00",
                    "endTime": "2025-11-11 23:59:59",
                    "participationLimit": 1,
                    "activityRule": "VERIFY_AND_COMMENT",
                    "rewardType": "COUPON",
                    "couponId": 100,
                    "couponQuantity": 1000,
                    "status": 1
                  }
                  

                  查询活动列表

                  GET /operationalActivity/list?storeId=1
                  

                  分页查询

                  GET /operationalActivity/page?current=1&size=10&storeId=1&status=1
                  

                  数据字典

                  活动规则(activity_rule)

                  • VERIFY_AND_COMMENT: 核销并评论
                  • VERIFY: 核销
                  • CHECK_IN: 打卡

                  奖励类型(reward_type)

                  • COUPON: 优惠券
                  • RED_PACKET: 红包

                  活动状态(status)

                  • 0: 禁用
                  • 1: 启用

                  活动进行状态(activityStatus)

                  • 0: 未开始
                  • 1: 进行中
                  • 2: 已结束

                  注意事项

                  1. 时间校验: 创建活动时,需要确保结束时间晚于开始时间
                  2. 逻辑删除: 删除操作为逻辑删除,不会真正删除数据
                  3. 状态管理: 活动状态由系统根据当前时间自动判断
                  4. 参数校验: DTO 中包含必填项校验,需要确保必填字段不为空
                  5. 优惠券关联: 如果奖励类型为优惠券,需要填写 couponId 和 couponQuantity

                  扩展建议

                  1. 用户参与记录: 可以创建用户参与活动记录表,跟踪用户参与情况
                  2. 活动统计: 添加活动效果统计功能,如参与人数、发放优惠券数量等
                  3. 活动审核: 添加活动审核流程,确保活动内容合规
                  4. 活动推送: 集成消息推送功能,在活动开始时通知用户
                  5. 活动模板: 提供常用活动模板,简化活动创建流程

                  更新日志

                  2025-11-26

                  • 初始版本发布
                  • 实现基础的增删改查功能
                  • 支持活动状态管理
                  • 支持分页查询