Skip to main content

需求分析与设计

前台商城系统#

前台商城系统包含首页门户商品分类新品上线首页轮播商品推荐商品搜索商品展示购物车订单结算订单流程个人订单管理会员中心帮助中心极光秒杀等模块。

首页门户#

首页门户包含导航栏、快捷分类入口、右上角的用户入口、轮播图、搜索框、闪购专区、其他专区(可能可以有品牌专区、新品推荐等等)。

商品分类#

用户可通过商品分类,查询到不同类别的商品,通过分页在前台进行展示

新品上线/推荐#

这里可以把设置为新品的商品展示在特定的专区

首页轮播#

页面渲染完成之前,查询到轮播图的链接,进行渲染。但是不必等图片加载完再渲染页面,避免用户等待过长。

商品搜索#

商品搜索模块为前台的一个亮点,目前采用ES做,希望能够把功能搞出来!!!

商品展示#

在商品展示页,可以展示商品的信息,主要是做好排版。由于商品有不同的套餐可供选择,所以,要显示出不同的按钮。可参考淘宝、京东和小米。

购物车#

购物车设计分为主次表的设计,购物车主表和子表,因为一个购物车可能要存放多个商品。并且,添加到购物车之后,要能够保存商品信息,在用户下次进入购物车时能看到。

如果商品存放于购物车,但是同时商品又下架了的话,可以把购物车的商品设置为下架状态,并设置为不可选,只能做删除操作。

订单结算#

用户可以从购物车选择商品下单,也可以直接在商品详情页进行购买下单。

下单时只需选择收货信息即可,下单业务和支付业务是分开的。提交订单即为“锁单”状态,库存也会进行相应的扣除。

订单管理#

在订单管理可以进行一些操作,比如订单查看、订单支付、订单取消、订单售后、订单追踪等。

会员中心/个人中心#

会员中心可进行:头像修改、姓名修改、邮箱修改、手机修改、密码修改、地址管理等操作。。。

其他模块#

待定

后台商城系统#

后台管理系统包含数据面板轮播图管理(广告)、商品管理订单管理会员管理分类管理权限管理营销模块设置等模块。

数据面板#

后台系统登录后,可以在面板上展示一些数据,可选择用图表做。

  • 订单数基本展示:今日订单、总订单(可每天统计一次进行缓存,避免多次全表查询)
  • 销售总额展示:今日销售总额、昨日销售总额,总销售额应该给权限级别更高的人看得到。
  • XX待处理事务:待付款订单、已完成订单、待确认收货订单、待发货订单、新缺货登记、待处理退款申请、已发货订单、待处理退货订单等(应根据用户不同的角色,显示不同的内容)
  • 商品总览:已上架商品、已下架商品、待审核商品、库存不足商品、商品总数等
  • 用户总览:昨日新增、今日新增、本月新增、会员总数
  • 数据统计展示:本月订单总数(跟上个月对比)、本周订单总数(跟上周对比)、本月销售总额(跟上个月对比)、本周销售总额(跟上周对比)

轮播图(广告)管理#

轮播图管理,是跟营销模块一起的,属于广告的范畴。

  • 主要有这些需求:广告名称、广告位置(轮播图、嵌入广告)、广告图片、广告作用的时间范围、是否上线(默认不上线)、营销订单(通过广告链接下的订单)、添加广告、编辑广告、删除广告等。
  • 添加广告:名称、位置、开始时间、结束时间、图片上传(建议切好图上传。。。)、排序、跳转链接、备注
  • 编辑广告:同上
  • 删除:软删除

商品管理#

商品模块的设计:分主表和子表,主表用于存放商品详细信息,子表为套餐表,存放套餐信息。

  • 展示:商品图片、商品名称、价格、商品货号/编号、操作标签(是否上架、是否为新品、是否添加到推荐分区)、排序(默认升序)、套餐管理、商品总销量(统计各个套餐的销量)、审核状态、操作(详情、编辑、操作日志、软删除)

  • 添加商品:

    • 商品信息:商品名称、商品标题、分类选择、品牌选择、商品介绍、商品编号、商品标价、商品库存、商品单位、排序
    • 商品营销:极光币(用于兑换优惠劵和礼品)、极光值(用于会员等级)、商品是否上架(默认不上架)、是否添加到推荐专区、是否添加到新品专区、增值服务(包邮、急速退款、支持7天无理由退货、此商品不可用极光券等)、商品关键字(可用于搜索)、商品备注、关联营销专栏。
    • 商品属性:属性选择、套餐添加(根据选择的不同的属性,弹出不同的商品规格的选择,当然,这些选项应该是放在【商品管理——属性管理】进行管理的。不管什么类型,都会有基础的规格:价格、库存、库存告警值、套餐编号、以及相应的操作,其它的规格属性,应按照属性管理里面定义的来。)、商品参数、商品相册、商品图文详情(目前准备用markdown解析)。
  • 商品详情查看:查看商品总览信息,以及包含的套餐。

  • 商品编辑:同添加商品,只不过回显后进行编辑。

  • 操作日志:不管任何“角色”,对该模块进行操作之后,都要往相应的日志表插入一条信息。

  • 商品删除:实行软删除,或者另准备一张已删除商品表,把数据迁移过去(不知道方案的效果怎样,但是确实能有效减少商品主表的垃圾信息)。

  • 套餐管理:对添加好的套餐可以进行:详情查看、内容编辑、软删除等操作。但是无法进行添加,应当去【商品编辑】添加,或者在添加商品时添加。

  • 筛选搜索:既然要对大量的信息进行管理,那么肯定得有搜索了。

    • 可根据:商品名称、商品编号、商品分类、商品品牌、上架状态、审核状态等进行搜索,如业务有需要,可以用动态SQL。
  • 分页查询:这个必须的,数据量太大,需要用分页。

分类管理#

这里是对商品的分类信息进行管理的模块。这个模块的表设计,可以一张表完成,也可以分为主表和子表。

  • 列表:分类编号(这个必须指定一个,用来区分层级关系)、分类名称、级别、是否展示、排序、导航栏是否展示、操作(添加、编辑、删除)

  • 添加:分类编号、分类名称、上级分类选择(这里就是根据分类编号进行的选择,如果不选,则为第一级分类)、排序、是否展示、是否展示在导航栏、分类的图标(指定图标库的图标名称)、关键词、描述。

  • 编辑分类:同上

  • 删除分类:直接删除

类型管理#

这个目前的打算,是准备多表设计,单表操作可能稍微复杂点。

  • 列表:属性名称、属性数量、参数数量、属性编辑(列表管理、参数管理)、操作(编辑、删除)、添加
  • 添加:类型名称
  • 编辑:类型名称
  • 删除:直接删除
  • 属性管理:属性名称、父属性管理、属性列表(,隔开)、排序、操作(添加、编辑、删除)
    • 添加:属性名称、父属性选择、属性值添加(换行隔开)、属性排序
    • 编辑:同上
    • 删除:直接删除
  • 参数管理(参数主要作为前台的筛选条件之一):参数名称、父属性管理、参数列表、排序、操作(添加、编辑、删除)
    • 添加:参数名称、父属性选择、参数值添加(换行隔开)、参数排序
    • 编辑:同上
    • 删除:直接删除

品牌管理#

品牌管理的设计较简单一些。

  • 列表:品牌名称、品牌LOGO、品牌排序、是否显示、操作(添加、编辑、删除)
  • 添加:品牌名称、品牌LOGO、品牌排序、品牌专区大海报、是否显示
  • 编辑:同上
  • 删除:软删除

订单管理#

订单模块的表设计,也是会分为主次表,主表放订单的一些关联信息、详细信息,而子表存放订单中的每一条商品的订单信息。

注意,订单的编号,是分为主订单编号和子订单编号的,为一对多关系

订单列表#

  • 列表:订单编号、下单用户、下单时间、订单总金额、支付方式(默认未支付,下单和支付的业务不耦合)、订单来源(web端、Android、IOS、小程序等)、订单状态(默认为未支付订单、支付后变为待发货,已发货、已完成、已关闭、退款、异常等)、操作(查看订单,软删除订单)。
  • 查看订单:要包含订单的基本信息、收货信息、商品信息、流水信息、操作日志、操作(修改收货信息、取消订单、订单发货、订单跟踪:尝试对接第三方快递平台,抓取信息。订单备注)。
  • 订单搜索:可根据订单编号、收货人、选择下单时间、订单状态、订单分类、订单来源等进行查询,可根据业务编写动态SQL。

订单定时任务#

  • 设置秒杀订单的超时时间
  • 设置普通订单的超时时间
  • 设置订单自动好评的时间。。。
  • 设置订单自动收货的时间

售后订单处理#

  • 列表:服务单号、申请时间、用户、申请类别(退货退款、换货等)、申请状态、处理时间、操作(详情编辑)
  • 详情编辑:
    • 售后商品信息:子订单编号、商品图片、商品名称、价格、规格、数量、小计
    • 售后服务单信息:服务单号、申请时间、申请用户、申请状态、申请类别、联系人、联系方式、申请描述、图片、售后订单金额、退款金额(非必须)、用户信息(收货人、收货地址、联系方式)、备注、订单处理按钮、审核员。
  • 筛选搜索:可根据审核员、处理状态、选择申请时间、选择处理时间、服务单号、用户等进行搜索,可根据业务需求写动态SQL。

售后原因设置#

  • 列表:原因类型、是否启用、添加时间、排序、操作(添加、编辑、删除)
  • 添加:原因类型、排序
  • 编辑:同上
  • 删除:直接删除

权限管理(管理员才可操作)#

基于RBAC思想设计,配合spring security和jwt进行认证与授权。注:这里的权限管理,指的是可以访问后台管理系统的用户,而非前台的会员用户。

用户管理#

  • 列表:账号、姓名、邮箱、添加时间、最后登录时间、是否启用、操作(添加、分配角色、编辑、删除)
  • 添加:账号、姓名、邮箱、密码、备注
  • 编辑:同上
  • 删除:软删除
  • 分配角色:用户和角色是一对多关系

角色管理#

  • 列表:角色名称、角色描述、用户数(指拥有此角色的用户数量)、添加时间、是否启用、操作(添加、编辑、分配菜单、分配资源、删除)
  • 添加:角色名称、角色描述
  • 编辑:同上
  • 删除:软删除
  • 分配菜单:角色和菜单是一对多的关系,可以用Tree进行分配。
  • 分配资源:角色和资源是一对多的关系,可以用Tree进行分配。

菜单管理#

菜单的设计,一般来说不会嵌套太多层,但还是决定做动态路由进行展示。

  • 列表:菜单名称、菜单层级、父菜单名称、前端名称、前端图标、是否显示、排序、操作(添加、编辑、删除)
  • 添加:菜单名称、父级菜单选择、前端名称、前端图标、排序、是否显示
  • 编辑:同上
  • 删除:软删除

资源管理#

资源就是对应着每一个接口,这个用户所绑定的角色对应的资源,就是这个用户能够有权限请求的接口。

  • 列表:资源名称、资源路径、资源类别、资源描述、添加时间、操作(添加、编辑、删除)
  • 添加:资源名称、资源路径、资源类别选择、资源描述
  • 编辑:同上
  • 删除:软删除(待定)

资源类别管理#

  • 列表:资源类别名称、创建时间、排序、描述、操作(添加、编辑、删除)
  • 添加:资源类别名称、排序、描述
  • 编辑:同上
  • 删除:软删除

营销管理#

秒杀活动管理#

待定

优惠券管理#

  • 列表:优惠券名称、优惠券规则、优惠券有效时间、是否启用、优惠券存量、描述、操作(添加、编辑、删除)

广告管理#

会员管理#

会员列表#

会员为前台商城会员,无法登录后台管理系统,更无权限调用接口。而会员的“角色”,统一为默认的购物角色,当然,根据不同的会员等级,可能会新增不同的角色,这个可以根据业务需求来制定。

  • 列表:账号、姓名、邮箱、手机、注册时间、最后登录、是否启用、操作(添加、编辑、删除)
  • 添加:准确的说这个功能,应该叫注册
  • 编辑:同上
  • 删除:软删除,数据就是钱啊!!!

其他的操作,后期可以加上

Android客户端#

待定。。。

IOS客户端#

待定。。。

小程序端#

待定。。。