Java生鲜电商平台-团购模块设计与架构

说明:任何一个电商系统中,对于促销这块是必不可少的,毕竟这块是最吸引用户的,用户也是最爱的模块之一,理由很简单,便宜。

我的经验是无论是大的餐饮点还是小的餐饮店,优惠与折扣永远是说福他们进入平台的最好的手段之一。(大企业叫做节约成本,小企业叫做贪便宜.)

1.Java开源生鲜电商平台中,团购模块,我们采用以下几种维度思考。

     1.1  针对的是生鲜中的标品。(米面粮油,我们要求买家可以自己发送团购,但是团购有次数,与时间以及买家起团金额和最低开团金额几个维度)

因此,需要有一个团购基础信息表:

CREATE TABLE `groups` (`group_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`group_no` varchar(32) DEFAULT NULL COMMENT '团号',`group_title` varchar(128) DEFAULT NULL COMMENT '团购标题',`group_logo` varchar(128) DEFAULT NULL COMMENT '团购logo',`group_area` varchar(128) DEFAULT NULL COMMENT '团购区域(区域ID集合)',`begin_time` datetime DEFAULT NULL COMMENT '开始时间',`end_time` datetime DEFAULT NULL COMMENT '结束时间',`max_num` int(11) DEFAULT NULL COMMENT '最大买家数',`buyer_amt` decimal(12,2) DEFAULT NULL COMMENT '买家起团金额',`min_amt` decimal(12,2) DEFAULT NULL COMMENT '最低开团金额',`group_status` tinyint(4) DEFAULT NULL COMMENT '状态(1发布 -1未发布 2团成 3未团成)',`remarks` varchar(256) DEFAULT NULL,`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`group_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='团购主表';

说明:这里面有一个团购的状态需要指明下,买家用户选择好几样商品后发起了团购,然后默认状态为-1,表示不可用,等组成了团购,最终状态会有团成的状态。

2. 对于团购而言,系统肯定需要记录,那些买家参与了那些团购,因此有以下的一张表记录

CREATE TABLE `groups_buyer` (`gb_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',`buyer_id` bigint(20) DEFAULT NULL COMMENT '买家ID',`group_id` bigint(20) DEFAULT NULL COMMENT '团购ID',`item_id` bigint(20) DEFAULT NULL COMMENT '团购明细ID',`order_id` bigint(20) DEFAULT NULL COMMENT '订单ID',`gb_num` int(11) DEFAULT NULL COMMENT '团购数量',`gb_price` decimal(12,2) DEFAULT NULL COMMENT '团购价格',`gb_amt` decimal(12,2) DEFAULT NULL COMMENT '团购金额',`gb_status` tinyint(4) DEFAULT NULL COMMENT '状态(1完成 -1取消)',`gb_time` datetime DEFAULT NULL COMMENT '团购时间',PRIMARY KEY (`gb_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='团购买家表';

说明:团购买家表,记录那个买家,那个团购,团购的最终数量以及团购的价格等等,最终是否有买家在规定的时间内推出了团购,或者团购未形成等等。

3. 团购最终是对商品的规格进行团购。

谈谈商品的规格系数,我们知道蔬菜中有西红柿对吧,那么西红柿分为两种,一种是大红的,一种是粉红,这两种颜色都是西红柿,那么系统会认为这个是两个产品,而不是两个规格,规格到底是说的什么呢?

   对于平台而言,规格就是一种商品的几种售卖方式。

最终根据业务分析,我们需要记录团购是由那些明细组成.(商品规格组成)

因此,最终系统架构如下:

CREATE TABLE `groups_item` (`item_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',`group_id` bigint(20) DEFAULT NULL COMMENT '团购ID',`goods_id` bigint(20) DEFAULT NULL COMMENT '商品ID',`format_id` bigint(20) DEFAULT NULL COMMENT '商品规格ID',`group_price` decimal(12,2) DEFAULT NULL COMMENT '团购价格',`group_num` int(11) DEFAULT NULL COMMENT '团购数量',`item_status` tinyint(4) DEFAULT NULL COMMENT '状态(1在用 -1停用)',`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人',`create_time` datetime DEFAULT NULL COMMENT '创建时间',PRIMARY KEY (`item_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='团购明细表';

业务总结:

1. 存在 一个买家发起的团购申请记录表。

2. 后端会有一个审核机制,默认1个小时内审核通过。

3. 团购会有商品的明细组成。也有时间段的范围与有消息。

4. 团购最终需要记录那些人参与了,然后交费完成等等。

补充说明:业务代码级别,无外乎提供给APP接口。以下几种功能:

1.  团购列表。

2. 团购明细。

3. 我的团购。

4,我的取消团购等

/*** 团购Controller*/
@RestController
@RequestMapping("/buyer")
public class GroupsController extends BaseController {private static final Logger logger = LoggerFactory.getLogger(GroupsController.class);@Autowiredprivate GroupsService groupsService;/*** 团购活动列表* @param request* @param response*/@RequestMapping(value = "/groups/list", method = { RequestMethod.GET})public JsonResult groupsList(HttpServletRequest request, HttpServletResponse response,Long regionId) {try{if(null == regionId || 0 == regionId){return new JsonResult(JsonResultCode.FAILURE, "参数错误,请检查regionId是否有传","");}List<GroupsVo> cgList = groupsService.getGroupsList(regionId);return new JsonResult(JsonResultCode.SUCCESS, "查询信息成功", cgList);}catch(Exception ex){logger.error("[GroupsController][groupsList] exception :",ex);return new JsonResult(JsonResultCode.FAILURE, "系统错误,请稍后重试","");}}/** 团购活动详情*/@RequestMapping(value = "/groups/detail", method = { RequestMethod.GET })public JsonResult detailGroups(HttpServletRequest request, HttpServletResponse response,Long groupId) {try{if(null == groupId || 0 == groupId){return new JsonResult(JsonResultCode.FAILURE, "参数错误,请检查groupId是否有传","");}GroupsVo groupsVo = groupsService.getGroupsInfo(groupId);if(groupsVo == null){groupsVo = new GroupsVo();}return new JsonResult(JsonResultCode.SUCCESS, "查询信息成功", groupsVo);}catch(Exception ex){logger.error("[GroupsController][detailGroups] exception :",ex);return new JsonResult(JsonResultCode.FAILURE, "系统错误,请稍后重试","");}}/*** 团购下单* @param request* @param response*/@RequestMapping(value = "/groups/createOrder", method = { RequestMethod.POST })public JsonResult createOrder(HttpServletRequest request, HttpServletResponse response,@RequestBody GroupOrder groupOrder) {try {String time = groupOrder.getBestTime();if (StringUtils.isBlank(time)) {return new JsonResult(JsonResultCode.FAILURE, "订单创建失败,收货时间不允许为空", "");}OrderInfo addOrderInfo = groupsService.addOrderInfo(groupOrder);if (addOrderInfo == null) {return new JsonResult(JsonResultCode.FAILURE, "创建订单失败,订单金额小于起送价", "");}return new JsonResult(JsonResultCode.SUCCESS, "创建订单成功", addOrderInfo);} catch (Exception ex) {logger.error("[GroupsController][createOrder] exception :", ex);return new JsonResult(JsonResultCode.FAILURE, "系统错误,请稍后重试", "");}}
}

总结:目前Java开源生鲜电商平台-团购模块设计与架构只是针对的是很普通的一些团购手段,当然对于拼多多而言,差距还是很大的。

这个也是跟业务形态有关,非技术有关,每一种促销方案并不是适合左右的买家用户或者说系统平台本身的。

由于时间关系或者说有关规定, APP运营截图相对而言比较简单,我这边就不贴出来了。

转载于:https://www.cnblogs.com/jurendage/p/9098368.html

Java生鲜电商平台-团购模块设计与架构相关推荐

  1. java 团购开发_Java生鲜电商平台-团购模块设计与架构

    Java生鲜电商平台-团购模块设计与架构 说明:任何一个电商系统中,对于促销这块是必不可少的,毕竟这块是最吸引用户的,用户也是最爱的模块之一,理由很简单,便宜. 我的经验是无论是大的餐饮点还是小的餐饮 ...

  2. 电商平台-团购模块设计与架构

    说明:任何一个电商系统中,对于促销这块是必不可少的,毕竟这块是最吸引用户的,用户也是最爱的模块之一,理由很简单,便宜. 我的经验是无论是大的餐饮点还是小的餐饮店,优惠与折扣永远是说福他们进入平台的最好 ...

  3. Java生鲜电商平台-订单配送模块的架构与设计

    Java生鲜电商平台-订单配送模块的架构与设计 生鲜电商系统最终的目的还是用户下单支付购买, 所以订单管理系统是电商系统中最为复杂的系统,其作为中枢决定着整个商城的运转, 本文将对于生鲜类电商平台的订 ...

  4. java电商商品基本信息表,Java生鲜电商平台-商品表的设计

    Java生鲜电商平台-商品表的设计 任何一个电商,无论是B2C还是B2B的电商,商品表的设计关系到整个系统架构的核心. 1. 商品基本信息表:用单词:goods做为商品表 2. 商品分类信息表: 说明 ...

  5. Java生鲜电商平台-积分,优惠券,会员折扣,签到、预售、拼团、砍价、秒杀及抽奖等促销模块架构设计...

    Java生鲜电商平台-积分,优惠券,会员折扣,签到.预售.拼团.砍价.秒杀及抽奖等促销模块架构设计 说明:本标题列举了所有目前社会上常见的促销方案,目前贴出实际的业务运营手段以及架构设计,包括业务说明 ...

  6. Java生鲜电商平台-异常模块的设计与架构

    Java生鲜电商平台-异常模块的设计与架构 说明:任何一个软件系统都会出现各式各样的异常与错误,我们需要根据异常的情况进行捕获与分析,改善自己的代码,让其更加的稳定的,快速的运行,那么作为一个 B2B ...

  7. Java生鲜电商平台-促销系统的架构设计与源码解析

    Java生鲜电商平台-促销系统的架构设计与源码解析 说明:本文重点讲解现在流行的促销方案以及源码解析,让大家对促销,纳新有一个深入的了解与学习过程. 促销系统是电商系统另外一个比较大,也是比较复杂的系 ...

  8. Java生鲜电商平台-商城后台架构与原型图实战

    Java生鲜电商平台-商城后台架构与原型图实战 说明:生鲜电商平台的运营平台,其中需要很多的功能进行管理.目前把架构与原型图实战分享给大家,希望对大家有用. 仪表盘/首页,简单统计,报表页,运营快捷口 ...

  9. Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战

    Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战 说明:Java生鲜电商平台-小程序或者APP优惠券的设计与源码实战,优惠券是一种常见的促销方式,在规定的周期内购买对应商品类型和额度的商品 ...

最新文章

  1. vscode 终端 进入node_安装了Node.js 从VScode 使用node -v 和 npm -v等命令却无效
  2. CNNIC报告:我国网民达7.72亿 人工智能取得重要进展
  3. html右侧隐藏功能区,html – CSS功能区上的三角形阴影
  4. Python 协程 asyncio 极简入门与爬虫实战
  5. 全新章节抢先读 | 揭秘覆盖全端业务的文娱大前端技术
  6. 陈震学的什么计算机专业,一起来看看陈震学长为我们分享的前沿技术发展趋势及自己的思考吧!...
  7. java context.write_Channel.write() 和 ChannelHandlerContext.write() 的区别
  8. 北航教授吐槽研究生基本废了:985高校成高级蓝翔
  9. 算法不会,尚能饭否之排序——直接选择排序
  10. Python 下的 lambda 算子
  11. 她不讲武德,北航博士竟然把60年来的文本分类综述都整理了!!!
  12. 软件测试的艺术——软件测试的原则
  13. Proteus里设置任意电源值的POWER的实现
  14. 空间相关性(1)——莫兰散点图
  15. 吃饭,睡觉,打豆豆喽~~
  16. ubuntu下解决微信不能发送图片的问题
  17. python线性回归实例 x轴坐标相同_python深度学习-tensorflow实现一个线性回归的案例...
  18. imx6ull移植Linux系统第二篇——Linux内核的移植
  19. 幻影影音 - 免费的多媒体视频播放器
  20. com.android.backupconfirm,使用ADB停用一些自己讨厌的东西记录备忘

热门文章

  1. JS之返回字符首次出现位置的indexOf
  2. java常用jar_常用jar包含义
  3. 逃跑吧少年服务器临时维护中,逃跑吧少年—逃跑吧少年5月30日更新 主动技能解锁...
  4. Xpath语法学习记录
  5. Appium——api常用函数
  6. ThinkPHP框架知识的注意点
  7. 在load事件中关闭窗体
  8. Silverlight 5 Features
  9. C语言中 用选择结构编译算法,C语言程序设计立体化教程(高等教育立体化精品系列规划教材)...
  10. java做报表_一步一步使用POI做java报表