forked from macrozheng/mall
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
zhh
committed
Nov 23, 2018
1 parent
b74ae2b
commit b4ec125
Showing
3 changed files
with
508 additions
and
508 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,375 @@ | ||
# mall | ||
|
||
## 技术选型 | ||
|
||
### 后端技术 | ||
|
||
技术 | 名称 | ||
----|---- | ||
Spring Boot | 容器+MVC框架 | ||
Spring Security | 认证和授权框架 | ||
MyBatis | ORM框架 | ||
MyBatisGenerator | 数据层代码生成 | ||
PageHelper | MyBatis物理分页插件 | ||
Swagger-UI | 文档生产工具 | ||
Hibernator-Validator | 验证框架 | ||
Elasticsearch | 搜索引擎 | ||
RabbitMq | 消息队列 | ||
Redis | 分布式缓存 | ||
MongoDb | NoSql数据库 | ||
Docker | 应用容器引擎 | ||
Druid | 数据库连接池 | ||
|
||
### 前端技术 | ||
|
||
技术 | 名称 | ||
----|---- | ||
Vue | 前端框架 | ||
Vue-router | 路由框架 | ||
Vuex | 全局状态管理框架 | ||
Element | 前端UI框架 | ||
Axios | 前端HTTP框架 | ||
Js-cookie | cookie管理工具 | ||
|
||
### 框架搭建 | ||
|
||
功能 | 完成 | ||
----|---- | ||
集成MyBatis | ✔ | ||
集成MyBatisGenerator | ✔ | ||
集成SpringSecurity | ✔ | ||
集成Swagger-UI | ✔ | ||
集成Hibernator-Validator | ✔ | ||
集成日志功能 | ✔ | ||
集成监控功能 | ✔ | ||
crud操作demo | ✔ | ||
合理规划包结构 | ✔ | ||
SpringAOP通用日志处理 | ✔ | ||
SpringAOP通用验证失败结果返回 | ✔ | ||
CommonResult对通用返回结果进行封装 | ✔ | ||
SpringSecurity登录改为Restful形式 | ✔ | ||
JWT登录、注册、获取token | ✔ | ||
JTA事务处理 | ✔ | ||
集成单元测试 | ✔ | ||
OSS上传功能 | ✔ | ||
Elasticsearch搜索功能 | ✔ | ||
HTTPS支持 | ✔ | ||
Redis数字型ID生成 | ✔ | ||
SpringTask定时任务支持 | ✔ | ||
docker容器化部署 | ✔ | ||
配置区分生产和测试环境 | ✔ | ||
ELK日志收集功能 | ✔ | ||
RabbitMq异步通信 | ✔ | ||
RestTemplate服务间调用 | ✔ | ||
SpringSecurity权限管理功能 | ✔ | ||
集成SpringCloud | | ||
|
||
### 使用工具 | ||
|
||
工具 | 下载地址 | ||
----|---- | ||
开发工具idea | https://www.jetbrains.com/idea/download | ||
redis客户端连接工具 | https://redisdesktop.com/download | ||
mongo客户端连接工具 | https://robomongo.org/download | ||
本地host管理 | https://oldj.github.io/SwitchHosts/ | ||
Linux远程连接工具 | http://www.netsarang.com/download/software.html | ||
数据库连接工具 | http://www.formysql.com/xiazai.html | ||
数据库设计工具 | http://powerdesigner.de/ | ||
原型设计工具 | https://www.axure.com/ | ||
思维导图设计工具 | http://www.edrawsoft.cn/mindmaster | ||
gif录制工具 | https://www.screentogif.com/ | ||
|
||
### 后台功能 | ||
|
||
#### 后台登录功能 ✔ | ||
|
||
- 后台用户注册功能 | ||
- 后台用户登录后获取token | ||
- 刷新token功能 | ||
|
||
#### 商品管理 ✔ | ||
|
||
> **商品分类管理** | ||
- 按父分类编号分页查看分类列表 | ||
- 添加、编辑、删除分类 | ||
- 转移分类商品 | ||
|
||
> **商品品牌管理** | ||
- 按品牌名称搜索分页查看品牌列表 | ||
- 添加、编辑、删除品牌 | ||
- 查看当前品牌的所有产品 | ||
|
||
> **商品属性分类管理** | ||
- 添加商品属性分类(名称) | ||
- 分页查询全部商品属性分类 | ||
- 删除单个商品属性分类 | ||
- 修改单个属性分类名称 | ||
- 查询单个属性分类信息 | ||
|
||
> **商品属性管理** | ||
- 根据分类查询属性列表或参数列表(分页,支持类型) | ||
- 添加商品属性 | ||
- 查询单个商品属性 | ||
- 编辑商品属性 | ||
- 批量删除商品属性 | ||
- 分页查询全部商品属性 | ||
|
||
> **添加商品** | ||
- 选择商品分类:根据商品分类id查找分类 | ||
- 选择品牌:查询全部品牌 | ||
- 选择运费模版:查询全部运费模版 | ||
- 设置会员价格:查询所有会员等级,传入List<PmsMemberPrice> | ||
- 添加阶梯价格: 参数传入List<PmsProductLadder> | ||
- 设置满减价格: 参数传入List<PmsProductFullReduction> | ||
- 选择商品属性类别:获取所有商品属性分类,根据商品属性分类的id获取规格和参数(type=0->规格;type=1->参数) | ||
- 选择规格并生成库存信息:前端实现 | ||
- 添加sku库存信息:参数传入List<PmsSkuStock> | ||
- 设置属性图片:设置到pic和album_pics字段中去 | ||
- 添加商品参数:参数传入List<PmsProductAttributeValue> | ||
- 添加自定义商品规格:参数传入List<PmsProductAttributeValue> | ||
- 关联专题:参数传入List<CmsSubjectProductRelation>关系 | ||
- 关联优选:参数传入List<CmsPrefrenceAreaProductRelation>关系 | ||
|
||
> **修改商品** | ||
- 根据商品id查询商品信息 | ||
- 查询商品基本信息:商品分类名称、品牌名称、运费模版名称 | ||
- 查询商品促销信息:商品的会员价格、阶梯价格、满减价格 | ||
- 查询商品属性信息:商品属性类别名称、sku库存信息、属性分类对应规格和参数值 | ||
- 查询商品关联信息:商品关联专题和关联优选 | ||
- 修改商品信息:商品属性分类及规格不可修改,只支持单个sku的修改、删除、新增;商品属性分类及规格可以修改:修改后同时显示原sku库存及属性分类 | ||
|
||
> **商品分页查询** | ||
- 商品的状态:全部商品、已上架、未上架、待审核、未通过 (publishStatus verifyStatus) | ||
- 商品名称(%name%) | ||
- 商品货号(productSn) | ||
- 商品分类id(productCategoryId) | ||
- 商品品牌id(brandId) | ||
- 批量操作:上下架、推荐、新品、转移分类、放入回收站、审核 | ||
- 查看记录:审核记录,操作日志 | ||
- sku:根据产品及sku编号获取sku信息,批量修改sku信息 | ||
|
||
> **商品回收管理** | ||
- 分页展示回收商品列表 | ||
- 回收商品还原功能 | ||
|
||
#### 促销管理 | ||
|
||
> **秒杀活动管理** | ||
- 活动列表展示 | ||
- 活动上下线 | ||
- 设置活动商品 | ||
- 添加、编辑、删除活动 | ||
|
||
> **优惠券管理** | ||
- 优惠券列表展示 | ||
- 添加、编辑、删除优惠券 | ||
- 查看优惠券领取记录 | ||
|
||
> **活动管理** | ||
- 活动列表展示 | ||
- 添加、编辑、删除活动 | ||
- 活动上下线 | ||
- 发布到广告 | ||
|
||
> **首页推荐** | ||
- 品牌推荐:列表展示、是否推荐、排序、删除、多选加入品牌 | ||
- 新鲜好物:商品列表展示、是否推荐、排序、删除、多选加入商品 | ||
- 人气推荐:商品列表展示、是否推荐、排序、删除、多选加入商品 | ||
- 专题精选:专题列表展示、是否推荐、排序、删除、多选加入专题 | ||
- 广告管理:广告列表展示、是否上线、排序、删除、添加编辑广告 | ||
|
||
#### 内容管理 | ||
|
||
> **专题管理** | ||
- 专题列表:查看、删除、推荐专题 | ||
- 添加、编辑专题:选择专题分类、添加、删除关联商品 | ||
- 专题分类管理:控制显示、排序、编辑删除分类 | ||
|
||
> **优选主题** | ||
- 优选列表:控制显示、排序、删除 | ||
- 添加、编辑优选:关联和删除商品 | ||
|
||
> **话题管理** | ||
- 专题列表:查看、删除、热门话题 | ||
- 话题分类管理:控制显示、排序、编辑删除分类 | ||
|
||
> **帮助管理** | ||
- 帮助列表:查看、删除、控制显示 | ||
- 添加、编辑帮助:选择帮助分类 | ||
- 帮助分类管理:控制显示、排序、编辑删除分类 | ||
|
||
#### 用户管理 | ||
|
||
> **用户管理** | ||
- 用户列表:帐号启用、删除、群发短信 | ||
- 批量操作:群发短信、站内信、推送、设置标签、赠送优惠券 | ||
- 查看、编辑用户信息:用户详情(统计信息、收货地址、订单记录)、编辑资料、登录日志 | ||
- 购买力筛选:最近消费、消费次数、消费金额、订单均价、商品分类、会员等级、用户标签 | ||
- 用户标签管理:标签列表、添加、编辑、删除 | ||
- 会员等级设置:列表、添加、编辑、设置默认会员等级 | ||
|
||
> **成才值及积分** | ||
- 成长值及积分查询:列表展示、积分明细、成长值明细、修改数值 | ||
- 任务奖励设置:新手任务、日常任务 | ||
- 更多规则设置:成长值规则、积分规则、积分消费设置 | ||
|
||
#### 订单管理 | ||
|
||
> **订单列表** | ||
- 订单搜索:订单编号、收货人姓名/号码、订单状态、订单分类、订单来源、提交时间 | ||
- 订单操作:查看订单、关闭订单、订单发货、订单跟踪、删除订单 | ||
- 批量操作:批量发货、关闭订单、删除订单 | ||
|
||
> **查看订单** | ||
- 订单状态:提交订单、支付订单、平台发货、确认收货、完成评价 | ||
- 订单详情操作:修改发票信息、修改收货人信息、修改商品信息、修改费用信息、发送站内信、关闭订单、备注订单、取消订单、订单跟踪、删除订单 | ||
- 订单基本信息:订单信息、优惠信息、用户信息 | ||
- 发票信息:类型、抬头、内容、收票人信息 | ||
- 收货人信息:收货人、手机号、邮政编码、收货地址 | ||
- 商品信息:包含商品基本信息 | ||
- 费用信息:合计及优惠信息 | ||
- 操作信息:订单状态改变记录 | ||
|
||
> **订单设置** | ||
- 秒杀订单超时时间 | ||
- 正常订单超时时间 | ||
- 订单自动完成时间 | ||
- 自动结束交易时间 | ||
- 自动好评时间 | ||
|
||
> **退货申请处理** | ||
- 退货申请搜索:服务单号、收货人姓名/号码、处理状态、申请时间、操作人员、处理时间 | ||
- 批量操作:删除 | ||
- 查看详情:退货商品、服务单信息、确认退货、拒绝退货、确认收货 | ||
|
||
> **退货原因设置** | ||
- 原因列表:类型、排序、是否启用、添加时间 | ||
- 添加、编辑原因:同上 | ||
- 批量操作:删除 | ||
|
||
#### 权限管理 ✔ | ||
|
||
> **权限管理** | ||
- 权限管理:添加权限、删除权限、修改权限、以树形结构返回权限 | ||
- 角色管理:添加角色、删除角色、更新角色、角色列表、获取相应角色权限、修改相应角色权限 | ||
- 成员管理:添加、编辑、删除成员、成员列表、为成员分配角色、获取成员角色、分配+-权限、获取权限列表 | ||
|
||
角色 | 菜单 | ||
----|---- | ||
管理员 | 所有菜单权限 | ||
运营 | 首页、用户、促销、运营、内容 | ||
财务 | 首页、统计、财务 | ||
美工 | 首页、商品 | ||
客服 | 首页、商品、订单 | ||
|
||
### 前台功能 | ||
|
||
#### 商品搜索 ✔ | ||
|
||
> **综合搜索功能** | ||
- 搜索:根据商品标题、副标题、关键字进行搜索; | ||
- 筛选:未选择分类时聚合搜索结果,选择出现次数最多的分类,选择分类以后可以根据选择分类的筛选字段进行筛选; | ||
- 排序:按新品、销量、价格进行排序 | ||
- 搜索返回结果:商品ID、商品图片、名称、副标题、价格、商品销量、新品、商品的参数、品牌名称、分类名称 | ||
- 接口:从数据库中查询相关数据并导入es,插入(修改)数据接口,删除数据接口 | ||
- 品牌分类筛选:根据搜索结果聚合返回品牌、分类及属性 | ||
|
||
> **商品推荐功能** | ||
- 推荐某商品的相关商品、根据该商品的品牌(10)、分类(6)、名称(8)、关键字(2)、副标题(2) | ||
- 根据用户一周浏览记录推荐商品,根据用户搜索记录推荐商品 | ||
|
||
> **商品热搜功能** | ||
- 根据用户搜索记录聚合生成热搜词 | ||
|
||
> **商品搜索联想功能** | ||
- 根据用户搜索记录聚合生成热搜词 | ||
|
||
#### 购物流程 ✔ | ||
|
||
> **购物车** | ||
- 添加商品到购物车 | ||
- 购物车商品列表(商品主图、商品名称、商品数量、商品规格) | ||
- 修改购物车中商品数量 | ||
- 购物车中商品重选规格 | ||
- 购物车中商品删除功能 | ||
|
||
> **生成确认单** | ||
- 生成确认单信息:收货信息、商品信息、价格信息、发票信息、支付方式 | ||
- 选择收货地址:默认收货地址 | ||
- 选择优惠券及积分抵扣:展示可用优惠券和不可以优惠券 | ||
- 计算商品价格:商品合计、运费、优惠券抵扣、积分抵扣、活动优惠 | ||
- 选择支付方式:在线支付及货到付款 | ||
- 计算应付金额:合计+运费-优惠券抵扣-积分抵扣-活动优惠 | ||
|
||
> **提交订单** | ||
- 将确认单信息转化为订单 | ||
- 删除购物车中相关商品 | ||
- 添加订单到数据库并锁定库存 | ||
- 在线支付选择支付方式:支付宝、微信、银联、ApplePay | ||
|
||
> **支付订单** | ||
- 支付完成后修改订单状态为已支付、扣除库存 | ||
|
||
> **取消订单(未支付情况下)** | ||
- 订单超时后自动取消订单,解除商品库存锁定,返还优惠券,积分 | ||
|
||
#### 会员模块(我的)✔ | ||
|
||
> **我的关注** | ||
- 关注品牌列表:品牌logo、名称、地址、关注数量 | ||
- 取消关注功能 | ||
- 关注列表展示 | ||
|
||
> **我的收藏** | ||
- 收藏的商品:商品主图、名称、卖点、价格、找相似 | ||
- 收藏的专题:专题主图、标题、副标题、收藏数、浏览数、评论数 | ||
- 收藏的话题:话题主图、标题、副标题、收藏数、浏览数、评论数 | ||
|
||
> **我的足迹** | ||
- 浏览过的商品:商品主图、名称、卖点、价格、找相似 | ||
- 删除记录功能 | ||
- 浏览列表展示 | ||
|
||
> **会员登录注册** | ||
- 登录功能:https登录 | ||
- 注册功能:用户名、密码、手机号、手机验证码 | ||
- 获取验证码:后台生成验证码,验证码绑定手机号 | ||
- 忘记密码:手机号、短信验证码、新密码 | ||
- 登出功能 |
Oops, something went wrong.