• 带上数据表,分析一下拼团活动该如何设计


    拼团活动该如何设计

    后台创建拼团活动

    一个成熟的拼团活动包含的四个要素:

    1 拼团成团商品

    必须要带上或者关联商品,设置拼团时商品的价格,与原价格肯定要低,这样才能吸引更多的人拼团。

    2 拼团人数

    既然是拼着购买,这里设置的人数肯定是不能低于2人的。要不然就不成团了。

    3 拼团活动有效时间

    一个拼团活动在开启到失效,需要设置一定时间,既然是一个活动,也就是商品在一定的时间段里能更好的达到促销。

    这里就要设置一个可开团的时间,比如是24小时有效,用户进入商品详情可开团购买。

    4 成团的有效时间

    用户开团后与其他人组团的时间,该时间内如果没有组团成功那就是拼团失败,系统会自动退款。

    实际拼团结束时间=发起拼团时间+成团有效时间(发起拼团时间=发起拼团人的支付时间)

    看上面图片基本是要具备的。而其他的比如:拼团类型,拼团渠道,拼团方式,团长奖励等则根据业务需求来决定。

    有注意到商品的图片还有另一种模式:助力拼团,助力人数,助力类型,这要针对返现拼团而设计。其实这种就类似就近的抖音或者拼多多开出的大额红包,而需要更多人去分享,助力得到红包那样,按照自己的需求来。

    拼团创建成功后,拼团活动列表新增一条记录。

    拼团活动有各种状态,这里根据活动时间,比如:

    拼团活动未开始(设置的时间大于现在的时间)

    活动中:拼团活动开始时间大于当前时间且拼团活动结束时间大于当前时间;

    已结束:拼团活动结束时间大于当前时间;

    拼团的有效与否,这里用上下架字段来判断。如果活动未上架,不管活动有没有开始,还是活动中,都是不可开团的。

    前端发起拼团

    从商品详情拼团,这是一个入口。开团后就有不同的拼团状态,订单ID个数和已参团人数不同,假设成团人数为2人。

    1 待成团:发起者(团长)发起拼团但未支付,订单ID有该用户的下单数据,但是是未支付,表示拼团不成功的。

    2 拼团中:发起者支付成功,开团成功,已参团人数为1。“拼团中”状态的订单不可取消,需拼团成功后才可取消。

    3 拼团成功:成团人满且都支付成功,此时一个团购ID对应2个订单ID。

    4 拼团失败:成团有效时间内,成团人数未满,拼团失败,系统自动退款。

    开团后,则就有了拼团订单表,拼团订单有拼团失败,拼团成功的状态来断定这个拼团是否成功。

    拼团设计根据具体问题具体分析,但是一定要具备以上4个要素。弄清楚需求后,根据需求编码基本不是什么问题。这里就不贴上代码了

    而比较重要的还是数据表的设计,这里贴上数据表

    相关数据表

    数据表仅供参考,因为很多还是要根据自己的业务需要来。

    拼团活动列表

    CREATE TABLE `pintuan_activity_rewards` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `user_id` int(10) unsigned NOT NULL COMMENT '用户ID',
      `range` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '拼团位置:1. 线上拼团 2. 线下拼团',
      `group_activity_order_id` int(10) unsigned NOT NULL COMMENT '拼团订单ID',
      `order_id` int(10) NOT NULL COMMENT '销售单id',
      `order_status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '奖励人:1, 团长奖励     2. 失败奖励 3. 返现拼团',
      `send_time` datetime DEFAULT NULL COMMENT '发放时间',
      `reward_type` tinyint(3) unsigned NOT NULL COMMENT '奖励类型
    1:实物奖励-充值到账户
    2:实物奖励-直接发货
    3:优惠券奖励
    4:积分奖励
    5:现金返利
    6.返利拼团',
      `reward_value` varchar(255) NOT NULL COMMENT '奖励 (reward_type=6时为返现金额)',
      `reward_send_type` tinyint(3) unsigned DEFAULT NULL COMMENT '奖励发放类型: 1=成团立即发送 2=配送单完成之后15天 3=订单完成后七天',
      `reward_expect_time` datetime DEFAULT NULL COMMENT '奖励预计发送时间',
      `status` tinyint(3) DEFAULT '1' COMMENT '发放状态 1.待发放 2.已发放 3.待审核',
      `created_at` datetime DEFAULT NULL,
      `updated_at` datetime DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=855 DEFAULT CHARSET=utf8 COMMENT='拼团奖励表';

    总结

    拼团活动的设计基本要素上面已经说到,离不开:拼团人数,拼团有效时间,拼团成团时间,成团商品。更多的扩展就要看需求了,上面的设计仅做参考,也希望能帮助到你。

    CREATE TABLE `pintuan_activities` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `activity_title` varchar(255) NOT NULL COMMENT '活动标题',
      `activity_cover` varchar(255) NOT NULL COMMENT '活动封面',
      `share_title` varchar(255) NOT NULL COMMENT '分享标题',
      `share_desc` varchar(255) NOT NULL COMMENT '分享描述',
      `share_cover` varchar(255) NOT NULL COMMENT '分享封面',
      `start_time` datetime DEFAULT NULL COMMENT '活动开始时间',
      `end_time` datetime DEFAULT NULL COMMENT '活动结束时间',
      `expire_hour` tinyint(3) unsigned NOT NULL DEFAULT '24' COMMENT '成团有效时间',
      `is_on_sale` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '是否上架 1:上架 0:下架',
      `sort` tinyint(3) unsigned NOT NULL COMMENT '排序',
      `mode` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '拼团方式:1. 老带新 2. 所有用户',
      `type` tinyint(3) unsigned NOT NULL COMMENT '拼团类型:1. 普通拼团 2. 阶梯拼团 3. 加价拼团 4. 返现拼团',
      `range` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '拼团位置:1. 线上拼团 2. 线下拼团',
      `recommend` tinyint(3) NOT NULL DEFAULT '0' COMMENT '推荐',
      `goods_package_id` int(10) unsigned NOT NULL COMMENT '商品套餐ID',
      `original_price` decimal(10,2) unsigned NOT NULL COMMENT '原价',
      `active_rule` text COMMENT '拼团规则JSON格式',
      `is_help` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否助力0否,1是',
      `help_user_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '助力用户类型 1 老用户 2所有用户',
      `help_people_num` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '助力人数',
      `success_reward_rule` text COMMENT '成功奖励规则JSON格式 
    reward_type:奖励类型
    1:实物奖励-充值到账户
    2:实物奖励-直接发货
    3:优惠券奖励
    4:积分奖励
    5:现金返利
    reward_value:奖励物品
    reward_send_type:发放时间类型
    1:成团立即发放
    2:下一次配送完成后15天
    3:订单完成后7天',
      `failure_reward_rule` text COMMENT '失败奖励规则JSON格式 
    reward_type:奖励类型
    1:实物奖励-充值到账户
    2:实物奖励-直接发货
    3:优惠券奖励
    4:积分奖励
    5:现金返利
    reward_value:奖励物品
    reward_send_type:发放时间类型
    1:失败立即发放
    2:退款审核后发放',
      `return_money_rule` text COMMENT '返现规则',
      `created_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
      `updated_at` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=128 DEFAULT CHARSET=utf8 COMMENT='拼团活动表';

    拼团订单表

    CREATE TABLE `pintuan_activity_orders` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `order_sn` varchar(255) NOT NULL DEFAULT '' COMMENT '拼团订单SN',
      `business_id` int(10) NOT NULL COMMENT '商家ID',
      `user_id` int(10) unsigned NOT NULL COMMENT '拼主',
      `group_activity_id` int(10) unsigned NOT NULL COMMENT '拼团活动ID',
      `success_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
      `goods_package_id` int(10) unsigned NOT NULL COMMENT '拼团套餐ID',
      `status` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '状态:1. 未支付 2.拼团中 3. 拼团成功 4. 拼团失败',
      `range` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '拼团位置:1. 线上拼团 2. 线下拼团',
      `people_number` int(10) unsigned NOT NULL COMMENT '成团人数',
      `remaining_people_number` int(10) unsigned NOT NULL COMMENT '剩余人数',
      `expire_hour` tinyint(3) unsigned NOT NULL COMMENT '成团有效时间',
      `created_at` datetime DEFAULT NULL COMMENT '创建时间',
      `updated_at` datetime DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1127 DEFAULT CHARSET=utf8 COMMENT='拼团订单表';

    如果拼团有设置,比如拼团成功,团长有啥奖励,则就有拼团奖励表

    CREATE TABLE `pintuan_activity_rewards` (
      `id` int(10unsigned NOT NULL AUTO_INCREMENT,
      `user_id` int(10unsigned NOT NULL COMMENT '用户ID',
      `range` tinyint(3unsigned NOT NULL DEFAULT '1' COMMENT '拼团位置:1. 线上拼团 2. 线下拼团',
      `group_activity_order_id` int(10unsigned NOT NULL COMMENT '拼团订单ID',
      `order_id` int(10NOT NULL COMMENT '销售单id',
      `order_status` tinyint(3unsigned NOT NULL DEFAULT '0' COMMENT '奖励人:1, 团长奖励     2. 失败奖励 3. 返现拼团',
      `send_time` datetime DEFAULT NULL COMMENT '发放时间',
      `reward_type` tinyint(3unsigned NOT NULL COMMENT '奖励类型 1:实物奖励-充值到账户 2:实物奖励-直接发货 3:优惠券奖励 4:积分奖励 5:现金返利 6.返利拼团',
      `reward_value` varchar(255NOT NULL COMMENT '奖励 (reward_type=6时为返现金额)',
      `reward_send_type` tinyint(3unsigned DEFAULT NULL COMMENT '奖励发放类型: 1=成团立即发送 2=配送单完成之后15天 3=订单完成后七天',
      `reward_expect_time` datetime DEFAULT NULL COMMENT '奖励预计发送时间',
      `status` tinyint(3DEFAULT '1' COMMENT '发放状态 1.待发放 2.已发放 3.待审核',
      `created_at` datetime DEFAULT NULL,
      `updated_at` datetime DEFAULT NULL,
      PRIMARY KEY (`id`)
    ENGINE=InnoDB AUTO_INCREMENT=855 DEFAULT CHARSET=utf8 COMMENT='拼团奖励表';

  • 相关阅读:
    iOS开发之即时通讯之Socket(AsyncSocket)
    iOS 拨打电话功能
    iOS text的长文本换行
    IOS Mac上查看iPhone上的SQlite数据库
    iOS Code Signing的Invalid处理(根证书无效)
    判断UITextField 输入为空 输入全为空格
    IOS Constraints自动布局适应不同尺寸
    IOS App打包发布流程(公司账号)
    IOS App发布问题:code signing is required for product type "Application" in SDK 'iOS 9.2'
    IOS UIAlertView 和 UIActionSheet的区别
  • 原文地址:https://www.cnblogs.com/zxf100/p/12712327.html
Copyright © 2020-2023  润新知