商城后台系统 — 新手练习 —毕业设计
- 业务功能介绍
- 项目地址:
- 一、商品管理
- 1.商品列表
-
- 2.添加商品
-
- 3.商品分类
-
- 4.商品类型
-
- 二、订单管理
- 1.订单列表
-
- 2.订单设置
-
- 3.退货申请处理
-
- 4.退货原因设置
-
- 三、营销管理
-
- 四、系统监控
-
- 系统管理
-
- 动态路由
- 非业务功能介绍
- 一、接口鉴权
-
- 二、接口计数器
-
- 三、接口幂等
-
- 四、接口限流
-
- 五、接口灰度
-
- 六、接口缓存
-
- 其他注意事项
- 参考项目
- 目前刚上大一,还在学习中 如果项目有问题可以给我留言、私信、评论,如果你觉得可以点下start星星来鼓励我,后继会持续更新 非常感谢!!
业务功能介绍
项目地址:
后端: 点我跳转
前端:点我跳转
一、商品管理
1.商品列表
描述
筛选搜索(商品名称、商品货号、上架状态、审核状态)
展示列表(商品图片、商品名称、价格/货号、标签 (上架、新品、推荐)、SKU库存编辑、销量、审核状态)
操作:添加、编辑、删除
效果
2.添加商品
描述
商品信息(商品分类、商品名称、副标题、商品介绍、商品货号、商品售价、市场价、商品库存、库存预警值、计算单位、商品重量(单位:克))
商品促销(商品上架、商品推荐(新品、推荐)、服务保证(无忧退货、快速退款、免费包邮)、详细页标题、详细页描述、商品备注)
商品属性(属性类型、商品规格、属性图片、商品参数、商品相册、规格参数)
效果
3.商品分类
描述
展示列表(分类名称、级别、商品数量、数量单位、是否显示)
设置 - 查看下级(通过分类id,查看他有的子分类,展示分类名称、级别、商品数量、数量单位、是否显示)
操作 - 添加、编辑(分类名称、上级分类、数量单位、是否显示、分类描述)、删除
效果
4.商品类型
描述
展示列表
设置 - 属性列表、参数列表(根据类型查询他拥有的属性、参数 – 展示(属性名称、商品类型、属性的否可选、属性值的录入方式、可选择列表))
操作 - 添加、编辑(属性名称、商品类型、属性是否可选(唯一、单选、复选)、属性值的录入方式(手工录入、从列表中选择)、属性值可选列表、是否支持手动新增(是、否))、删除
效果
二、订单管理
1.订单列表
描述
筛选搜索(订单编号、收货人姓名、提交时间、订单状态)
展示列表(订单编号、提交时间、用户账号、订单金额、支付方式、订单状态)
操作 - 查看订单(基本信息、收货人信息、商品信息、费用信息、操作信息)、删除订单、订单发货、订单跟踪、订单关闭
效果
2.订单设置
描述
超过X分钟未付款,订单自动关闭、发货超过X天,订单自动完成订单完成超过X天,自动结束交易不能申请售后、订单完成超过X天,自动五星好评
效果
3.退货申请处理
描述
筛选搜索(服务单号、申请时间、操作人员、处理时间、处理状态)
展示列表(服务单号、申请时间、用户账号、退款金额、联系人、申请状态、处理时间)
操作 - 查看详情 (退货商品、服务单信息、确认退货、拒绝退货)
效果
4.退货原因设置
描述
展示列表(原因类型、排序、是否可用、添加时间)
操作 - 新增、编辑(原因类型、排序、是否可用)删除
效果
三、营销管理
1.新品推荐
描述
筛选搜索(商品名称、推荐状态)
选择商品(商品名称、货号、价格)
展示列表(商品名称、是否推荐、排序、状态)
效果
2.人气推荐
描述
筛选搜索(商品名称、推荐状态)
选择商品(商品名称、货号、价格)
展示列表(商品名称、是否推荐、排序、状态)
效果
3.广告列表
描述
筛选搜索(广告名称、到期时间)
展示列表(广告名称、广告位置、广告图片、时间 -> 开始时间和到期时间、上线/下线、点击次数)
操作 - 添加广告(广告名称、广告位置、开始时间、到期时间、上线/下线、广告图片、广告链接、广告备注)、编辑、删除
效果
四、系统监控
1.操作日志
描述
展示列表(用户名、IP、IP来源、描述、浏览器、请求耗时、创建日期)
操作 - 清空
效果
2.异常日志
描述
展示列表(用户名、IP、IP来源、描述、浏览器、请求耗时、创建日期)
操作 - 清空、查看详情
效果
系统管理
用户列表
描述
展示列表(账号、姓名、邮箱、注册时间、最后登录时间、是否启用)操作(分配角色、编辑、删除)
效果
角色列表
描述
展示列表(角色名称、描述、添加时间、是否启用)操作(分配菜单、编辑、删除)
效果
菜单列表
描述
展示列表(菜单名称、菜单级数、图标、权限标识、组件路径、排序、创建日期、显示、)、设置(查看下级)、操作(编辑、删除)
效果
动态路由
可以根据用户所拥有的菜单,进行动态显示
匹配关系:用户 — 角色、角色 — 菜单
非业务功能介绍
一、接口鉴权
为了保证接口调用的安全性,计实现一个接口调用鉴权功能,**只有经过认证之后的系统才能调用我们的接口,没有认证过的系统调用我们的接口会被拒绝。
注意事项
如果要使用这个功能的话,打开common -> config下的InterceptorConfig类,将这个代码取消注释,因为为了方便测试,因此将他注释了
二、接口计数器
能够获取接口调用的各种统计信息,比如,响应时间的最大值(max)、最小值(min)、平均值(avg)、百分位值(percentile)、接口调用次数(count)、频率(tps)等
支持将统计结果以各种显示格式(比如:JSON 格式、网页格式、自定义显示格式等)输出到各种终端(Console 命令行、HTTP 网页、Email、日志文件、自定义输出终端等),以方便查看。
注意事项
1.控制台
默认会统计60秒内请求的接口 并且每隔60秒会推送一次数据到控制台,如果需要修改统计时间打开content ->metrics-> application下的ApplicationTimer类,修改参数值
consoleReporter.startRepeatedReport(60, 60)
2.发送邮件
1.默认会将一天内的接口统计,并且于0点时发送,如果要修改发送时间,打开content ->metrics->report下的EmailReporter类,修改参数值
private static final Long DAY_HOURS_IN_SECONDS = 86400L;
2.邮件收件人,在application.yml中email.mailTo进行调整,如果有多个人采用逗号分隔,示例如下
email:
mailTo: 3421793724@qq.com
三、接口幂等
避免同一业务被多次重复执行,接口需要支持幂等特性。
注意事项
要使用此功能,需要给使用幂等的方法上添加@IdempotenceAuth注解
四、接口限流
限制每个调用方对接口请求的频率。当超过预先设定的访问频率后,我们就触发限流熔断,避免服务器宕机、业务流量突发导致请求超时等…
注意事项
采用的是阿里云的sentinel限流,因此如果要使用此功能,需要下载sentinel,并且在yaml中配置sentinel地址
cloud:
sentinel:
transport:
dashboard: localhost:8080
五、接口灰度
不只是使用功能开关做新老接口调用方式的切换,我们还希望调用方在替换某个接口的时候,先让小部分接口请求,调用新的 RESTful 接口,剩下的大部分接口请求,还是调用老的 RPC 接口,验证没有问题之后,再逐步加大调用新接口的请求比例,最终,将所有的接口请求,都替换成调用新的接口。这就是所谓的“灰度”。
注意事项
1.此功能可以自定义配置,也可以采用已经规定的配置文件(dark-rule.yml)
2.如果想自定义配置,需要定义一个类实现IDarkFeature接口,在dark里实现我们想要的规则
使用方式参考
DarkLaunch darkLaunch = new DarkLaunch();
IDarkFeature darkFeature = darkLaunch.getDarkFeature("newalgo_loan");
Assumptions.assumingThat(darkFeature.dark(1001), () -> System.out.println("执行新功能进行测试"));
System.out.println("不在区间范围内,执行旧功能");
六、接口缓存
当一个数据被重复访问时,如果每次都去数据库查询,这显然是没必要的,因此使用接口缓存就可以大大提高效率,减少IO连接
注意事项
采用的是springboot的缓存注解 + redis的方式,因此使用此功能需要配置redis
其他注意事项
1、使用图片上传需要自行去阿里云获取oss相关信息(有免费额度)
oss使用参考: 点我跳转
2、使用发送邮件功能需要获得邮箱配置信息
邮箱配置参考: 点我跳转
3、使用限流功能需要配置sentinel环境
4、由于项目中使用redis作为缓存,因此需要配置redis环境
5、因为采用的是GeoLite2来获取IP的相应信息,因此在resources下有个GeoLite2-City.mmdb文件
参考项目
由于本人前端不是很会, 因此采用了mall-admin-web和EL-Admin两个大佬的页面并进行修改
mall-admin-web链接:http://www.macrozheng.com/#/database/mall_database_overview
EL-ADMIN链接:https://el-admin.vip
目前刚上大一,还在学习中 如果项目有问题可以给我留言、私信、评论,如果你觉得可以点下start星星来鼓励我,后继会持续更新 非常感谢!!
联系方式:扣扣 – 3421793724
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)