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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

合肥特殊教育中专学校计算机,安徽省特殊教育中专学校

安徽省特殊教育中专学校办学介绍安徽省特殊教育中专学校隶属于安徽省残疾人联合会,是全省唯一一所残健融合、培养残疾人及残疾人事业服务人才的省级职业院校&#xff0c;是国家残疾人职业培训基地、教育部和中国残联特殊艺术人才培养基地,主要招收听力、视力、肢体残疾学生和有…

二层环路保护,RRPP多环的配置

作者:邓聪聪 组网需求&#xff1a; 局域网中&#xff0c;由A/B/C/D构成RRPP域1换网络结构&#xff0c;要求环网机构中的任意两条线路中断都不能影响业务。 配置思路&#xff1a; 环路由两部分组成&#xff0c;ring1、ring2&#xff0c;B为环1的主节点&#xff0c;G0/0/2为主端口…

如图所示是一种轧钢计算机控制系统,高速线材厂轧钢工艺培训(活套)

原标题&#xff1a;高速线材厂轧钢工艺培训(活套)活套现代高速线材轧机为保证产品尺寸精度&#xff0c;采用微张力及无张力轧制&#xff0c;以消除轧制过程中各种动态干扰引起的张力波动和由此引起的轧件尺寸波动。由于精轧机组为集体传动&#xff0c;故精轧采用微张力轧制&…

计算机网络基础实训精品课,《计算机网络技术》精品课程建设总结报告【荐】.doc...

《计算机网络技术》精品课程建设总结报告【荐】.doc《计算机网络技术》精品课程建设总结报告一、课程定位及历史沿革《计算机网络技术》课程是计算机网络技术专业的主干课&#xff0c;是一门应用性较强的专业基础课&#xff0c;在网络技术专业的整个课程体系中&#xff0c;占有…

Leetcode(11)-盛最多水的容器

给定 n 个非负整数 a1&#xff0c;a2&#xff0c;...&#xff0c;an&#xff0c;每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线&#xff0c;使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水…

小学少年宫计算机组活动教案,小学少年宫计算机兴趣小组活动记录表汇编

《小学少年宫计算机兴趣小组活动记录表汇编》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《小学少年宫计算机兴趣小组活动记录表汇编(10页珍藏版)》请在人人文库网上搜索。1、小学少年宫计算机兴趣小组活动记录表活动名称&#xff1a;计算机指导教师&#xff1a;学生…

Linux服务部署之NTP时间服务器

Linux服务部署之NTP时间服务器&#xff1a; 服务器端IP&#xff1a;192.168.11.119 client端Ip&#xff1a; 192.168.11.101 先安装服务器端ntp: 首先先查看是否安装了ntp时间服务器; ~]# rpm -q ntp >查看是否安装了ntp服务器&#xff1b; 如果没有&#xff0c;安装服务器…

计算机读心术的原理,读心术的原理笑容的奥秘

本词条缺少概述图&#xff0c;补充相关内容使词条更完整&#xff0c;还能快速升级&#xff0c;赶紧来编辑吧&#xff01;读心术能够看透一个人的心理所想是众所周知的事情&#xff0c;那么读心术为什么能够从一个人的下意识反应&#xff0c;甚至是很普通的一个动作和笑容中就能…

Dubbo架构设计详解

Dubbo是Alibaba开源的分布式服务框架&#xff0c;它最大的特点是按照分层的方式来架构&#xff0c;使用这种方式可以使各个层之间解耦合&#xff08;或者最大限度地松耦合&#xff09;。从服务模型的角度来看&#xff0c;Dubbo采用的是一种非常简单的模型&#xff0c;要么是提供…

获取计算机内存镜像文件,计算机取证中的内存镜像获取的研究与实现

摘要&#xff1a;随着计算机科学技术的迅猛发展和网络普及,以计算机信息系统为工具和j巳罪对象的各式新型j巳罪案件频繁发生,造成的巨大危害也越来越大.怎么可以最大程度地获取计算机j巳罪相关的计算机证据,将犯罪人员绳之以法,己成为司法部门和计算机领域中需要解决的新问题.由…

new 3ds右摇杆测试软件,电击杂志编辑新3DS评测:防抖3D效果拔群!

电击杂志日前在本周杂志上看在了10月11日任天堂将会发售新型3DS主机“新3DS”与“新3DS LL”的上手报告。究竟新版3DS表现如何&#xff1f;让我们一窥究竟。新3DS与新3DS LL“新3DS”与“新3DS LL”是于8月29日配信的“任天堂8月29日3DS直面会”中发表的&#xff0c;主要特点是…

计算机cad比例尺1 150,CAD图纸里面 1:50 和:1:100和1:150三个比例分别怎么换算...

CAD图纸里面 1&#xff1a;50 和&#xff1a;1&#xff1a;100和1&#xff1a;150三个比例分别怎么换算以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;CAD图纸里面 1&#xff1a;50 和&…

浙江省计算机二级excel函数,浙江省计算机二级excel练习5操作要求

浙江省计算机二级excel1. 在Sheet5的A1单元格中设置为只能录入5位数字或文本。当录入位数错误时&#xff0c;提示错误原因&#xff0c;样式为“警告”&#xff0c;错误信息为“只能录入5位数字或文本”。2. 在Sheet1中&#xff0c;使用条件格式将“预定日期”列中日期为“2008-…

手机系统计算机怎么解决办法,手机与电脑时间不一致如何解决?几种解决方法介绍...

近日有关于手机与电脑时间不一致怎么办的问题受到了很多网友们的关注&#xff0c;大多数网友都想要知道手机与电脑时间不一致怎么办的具体情况&#xff0c;那么关于到手机与电脑时间不一致怎么办的相关信息&#xff0c;小编也是在网上进行了一系列的信息&#xff0c;那么接下来…

服务器测试文件怎么创建,如何创建一个“FTPS”模拟服务器以单元测试Java中的文件传输...

我有一个创建FTPS连接的CreateFTPConnection类。使用此连接传输文件。这里是TransferFile类的代码如何创建一个“FTPS”模拟服务器以单元测试Java中的文件传输public class TransferFile{private CreateFTPConnection ftpConnection;private FTPSClient client;public Transfer…

Thread类学习(一)

Thread类API中的英文描述&#xff1a; file:///D:/Java/JDK8/Docs/docs/api/index.html 英语不好&#xff0c;大致的意思是&#xff1a; 线程是程序执行时的线程&#xff0c;java虚拟机(JVM)允许一个应用运行多个线程(并发)。 每一个线程都自己的优先权&#xff0c;优先级高的线…

做企业网站为什么要服务器呢,企业为什么要建站?

一、企业建站为何要建立自己的网站1、企业建站的第1个好处就是树立企业形象酒香不怕巷子深&#xff0c;说的就是线下企业经营时以自身企业形象带来的效果&#xff0c;但企业在网上经营活动时&#xff0c;一方面没有大量老客户支援&#xff0c;另一方面陌生人也没有信任感&#…

ios信号从4g变成无服务器,苹果信号满格显示是4g却没网络

产品型号&#xff1a;iPhone 12系统版本&#xff1a;iOS 14.2苹果信号满格却没有4G网络&#xff0c;可能是由于周围运营商网络没有覆盖&#xff0c;导致手机4G无法运行&#xff0c;类似这样的问题&#xff0c;走到信号好的地方便可解决&#xff0c;如果不是这个原因所导致&…

[转]Oh My Zsh,安装,主题配置

https://swp-song.com/2017/08/20/Tools/OhMyZsh%E5%AE%89%E8%A3%85%E5%92%8C%E4%B8%BB%E9%A2%98%E9%85%8D%E7%BD%AE%E6%96%B9%E6%B3%95/ Oh MyZsh 是什么 Oh My Zsh 它是基于 zsh 命令行的一个扩展工具集&#xff0c;驱动的命令行工具&#xff0c;提供了主题配置 / 插件机制 /…

路由器密码重置

关闭路由器电源&#xff0c;开启后60S内&#xff0c;按CTRLC 组合键进入monitor模式 Self decompressing the image : ############           monitor: command "boot" aborted due to user interrupt rommon 1 > 进入之后使用命令confreg修改寄存器的…