同步操作将从 linlinjava/litemall 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
目前litemall基础系统主要由litemall数据库、litemall-db模块和litemall-os-api模块组成。
litemall数据库基于nideshop中的nideshop.sql数据库,然后在实际开发过程中进行了调整和修改:
具体不同可以比较litemall-db模块下sql文件夹中nideshop.sql和litemall.sql。
以下讨论一些关键性设计
注意:
以下设计基于个人理解,很可能存在不合理或者与实际系统不符合的地方。
这里商品存在商品,商品属性,商品规格,货品四种表
商品表是一种商品的基本信息,主要包括商品介绍,商品图片,商品所属类目,商品品牌商等;
商品参数表其实也是商品的基本信息,但是由于是一对多关系,因此不能直接保存在商品表中(虽然采用JSON也可以但是不合理), 因此采用独立的商品参数表,通常是商品的一些公共基本商品参数;
商品规格表是商品进一步区分货品的标识,例如同样一款衣服,基本信息一致,基本属性一致,但是在尺寸这个属性上可以 把衣服区分成多个货品,而且造成对应的数量和价格不一致。
商品规格和规格值存在以下几种关系:
货品则是最终面向用户购买的商品标识,存在数量和价格两种属性。
因此这里一个商品表项,存在(至少0个)多个商品属性表项目,存在(至少一个)多个商品规格表项, 存在(至少一个)多个货品表项。
举例如下:
以下是一些细节的讨论:
注意:
这里的设计可能与实际项目设计不一致,但是目前是可行的。 商品的中文用语“商品”和英语用语“goods”,货品的中文用语“货品”和英语用语“product”可能是不正确的。
目前准备支持用户普通账号登陆和微信登陆两种方式,两种登陆方式仅仅采用一个litemall-user表可能不是很合适。此外,如果进一步支持其他多种第三方登陆,那么这里需要重新设计。
原nideship.sql中存在region数据,但是litemall.sql的region数据则来自 Administrative-divisions-of-China项目。从该项目中导入数据到litemall.sql的litemall-province、litemall-city、litemall-area和litemall-street四个表,然后重新生成一个新的litemall-region表。
订单信息主要由基本信息、商品信息、地址信息、费用信息、快递信息、支付信息和其他信息组成。
基本信息 订单创建时的一些基本信息。
商品信息 由于订单可以存在多个商品,因此订单的商品信息是由独立的订单商品表记录(可能更应该称为货品)。
费用信息
快递信息 目前快递信息仅仅记录快递公司、快递单号、快递发出时间、快递接收时间。而如果快递过程中如果存在一些异常,例如物品丢失,则目前系统难以处理。关于快递费的计算,目前采取简单方式,即满88元则免费,否则10元。
支付信息
其他信息
订单分成几种基本的状态:
除了这几种正常状态以外,还存在一些非普通的状态:
当然,以上的基本状态和非普通状态,和实际项目相比仍然相对简单。
此外,当订单状态码是102、202、401、402时,订单可以设置删除状态,此时 用户查看自己订单信息时将看不到这些“已删除”的订单。
不同的状态码下面,用户能够进行的操作是:
目前不支持售后或退货相关业务。
从一些资料看,如果用户订单多次取消,应该加入黑名单。 目前不支持。
这里litemall-db模块可以分成以下几种代码:
通过mybatis generator插件可以自动生成三种代码:
domain
Java代码dao
Java代码dao
Mapper代码这里的代码封装了对数据库的操作,因此用户不需要直接操作sql代码,而是直接操作Java代码即可完成对数据库的访问处理。
当然,为了达到数据库访问效率,用户也可以自定义mapper文件和对应的Java代码,但是至少目前这里不采用。例如,当需要访问两个表的数据时,这里是在业务层通过Java代码遍历的形式来访问两个表。
基于2.2.1的代码,业务代码处理一些具体业务相关的操作,对其他模块提供具体的服务。
采用Java注解的方式来完成一些特定的配置操作。
对象存储服务目前的目标是支持图片的上传下载。
支持服务:
警告
目前这里没有任何安全机制,这意味着任何人如果知道对象存储服务的地址,都可以直接存储访问对象数据。
这样简化的目的是对象存储服务建议最终采用云服务,因此这里仅仅实现一个简单的服务面向测试开发。
如果用户需要局域网部署,那么这里需要加入一定的安全机制。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。