基于 SpringCloud 的在线交易平台乐优商城的设计与实现(三)

news2024/11/25 6:43:42

基于 SpringCloud 的在线交易平台乐优商城的设计与实现

    • 第3章 系统分析与设计
      • 3.1 系统基本功能描述
      • 3.2 可行性分析
      • 3.3 系统需求分析
        • 3.3.1 商家功能
        • 3.3.2 消费者功能:
        • 3.3.3 系统功能要求
        • 3.3.4 系统运行环境
      • 3.4 系统开发工具
        • 3.4.1 IntellijIDEA
        • 3.4.2 Mysql
        • 3.4.3 Maven
        • 3.4.4 Docker
      • 3.5 系统架构设计

前面内容请移步
基于 SpringCloud 的在线交易平台乐优商城的设计与实现(一)
基于 SpringCloud 的在线交易平台乐优商城的设计与实现(二)
相关免费源码资源
乐优商城

第3章 系统分析与设计

3.1 系统基本功能描述

  本系统的主要用途是供企业进行线上商品交易处理,用户分为后台管理员以及前台买家消费者。
  本系统为管理者提供了方便统一的管理功能,包括:商品分类管理,品牌管理,商品规格参数管理,商品增删改查,以及商品的上下架管理等。用户可以实现的功能有,登录注册,商品搜索,搜索自动提示,加入购物车,下单,结算,支付等。

3.2 可行性分析

(1)技术可行性:本系统的配置在这种中小规模的情况下能够提供较快的数据访问,技术上可行。
(2)经济可行性:系统的配置,不需要昂贵的服务器,大部分软件都是可以免费获得,开发成本低。
(3)操作可行性:访问本系统后台的主要是企业的管理员。不需要太复杂的操作,只需通过界面提示的信息直接录入信息或者查询,修改,删除信息即可实现系统的完整、稳定的运行,不会造成系统的巨大压力,不需要太高的技术支持。前台系统对应的操作虽然会有高并发风险,但是我们对应的后台系统可以做异步,缓存及集群等优化部署,可以全方位保证系统安全可靠执行。

3.3 系统需求分析

  通过对系统需求进行分析,我们可以确定系统中有两类用户:商家和消费者。两类用户的具体描述如下:

3.3.1 商家功能

  管理商品分类,商品品牌,商品规格参数,商品的上下架,以及商品的增删改查,一键导入数据库的数据到索引库。

3.3.2 消费者功能:

  实现商品搜索,登录注册,搜索智能提示 ,商品加入购物车,从购物车下单,下单后基于订单的支付

3.3.3 系统功能要求

商家后台管理功能:

  1. 商品分类管理:管理员在后台系统负责处理整个商城所售卖的商品分类信息,可以实现增删改查,如果当前分类下有商品则分类信息不允许删除。
  2. 商品品牌管理:管理员在后台系统负责处理整个商城所售卖的商品品牌信息,品牌需要和分类进行对应,可以实现增删改查,如果当前品牌下有商品,品牌不允许删除。
  3. 商品规格参数管理:管理员针对分类进行对应的商品信息规格进行增删改查,只要当前分类下有商品,规格参数不允许删除。
  4. 商品管理:管理员在商品系统对商品进行添加处理,上下架,修改,删除,查询。
  5. 索引库更新:当商品上下架以及新增后,搜索系统会跟随商品系统的商品变化而变化。
  6. 静态页缓存更新:使用 canal 监听数据库实现数据库表数据变更,对应缓存数据更新。

消费者购物功能:

  1. 用户登录注册:用户可以在系统中先注册再登录实现,注册需要用户名以及手机号唯一,注册时使用发短信验证码方式证验手机号是否真实有效。
  2. 用户搜索提示:当用户搜索时,不需要全部输入搜索内容,会根据现有搜索内容自动补全
  3. 用户实时搜索:当用户键入搜索信息时,会立即响应搜索,并进行高亮,用户可以对搜索结果进行排序,排序条件有上架时间,销量,以及价格等。
  4. 用户购物车:客户对感兴趣的商品可以加入购物车处理,并可以修改数量,以及删除。
  5. 用户下单处理:用户可以筛选购物车中的某个,或者所有商品进行下单处理,后台会生成订单并产生唯一的订单编号,生成订单同时对应会减库存。
  6. 用户支付:支付模块采用微信等第三方支付方式,采用二维码扫描方式识别,校验并完成付款操作。
  7. 支付回调:支付完成后,微信自动请求系统进行订单状态修改,从未支付改为已支付,为后续发货等操作做准备。
3.3.4 系统运行环境
  1. 浏览器版本:Google Chrome 45 或以上。
  2. 分辨率:最佳效果 1920*1080 像素。
  3. 操作系统:Windows8,Windows10
  4. 服务器:Tomcat 8.5 或以上
  5. 数据库:Mysql 5.7 或以上
  6. CPU:Intel G5950 3.5GHz
  7. 内存:8G 以上

3.4 系统开发工具

  跟随 Java Web 开发主流,乐优商城设计与实现使用了 SpringCloud 微服务框架进行开发,使用的工具主要有 Intellij IDEA,Mysql,Maven,Docker等。

3.4.1 IntellijIDEA

  IDEA 是一个被广泛使用的、基于 Java 的可扩展开发平台。IDEA 不仅可以当作 Java 集成开发环境来使用,还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 IDEA 的软件开发人员,因为它允许他们构建与 IDEA 环境无缝集成的工具。
  乐优商城设计与实现开发中,正是使用了 IDEA 的这一特点,集成了VUE,Maven,做 Web 开发,方便快捷。

3.4.2 Mysql

  Mysql 是一个基于关系型数据库模型建立的数据库管理系统软件(DBMS)。它帮助用户方使地得到所需信息,并提供强大的数据处理工具。它可以帮助用户组织和共享数据库信息,以便于根据数据库信息作出有效的决策。另外,仅有这样—个数据库管理系统软件(DBMS),则只能进行一些信息系统所需要的简单数据处理,且对操作者有较高的操作技能要求。因此,信息系统的开发者都是在某种数据库管理系统软件〔DBMS〕环境下编写相应的应川程序,以形成一个能够满足应用需求且操作尽可能简单的应用型信息系统,这被称之为二次开发。

3.4.3 Maven

  Maven 翻译为“专家”、“内行”,是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven 利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
  Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
  Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。

3.4.4 Docker

  Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的app),更重要的是容器性能开销极低。
  Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。

3.5 系统架构设计

  系统架构设计在系统的开发中扮演着重要作用,它是对系统的整体规划和系统开发的前提,为整个开发过程服务。优秀的架构设计不但能够提高开发效率,缩短开发周期,而且可以降低后期维护成本。
  由于该电商平台上线之后,可能会面临海量的并发访问,所以需要把系统结构设计成面向服务的分布式系统,分布式系统能够保证在高并发情况下系统运行 。本文设计的电商平台架构设计如图所示:
在这里插入图片描述

图3-1 系统架构图

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

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

相关文章

C/C++ 入门(9)编译链接

个人主页:仍有未知等待探索-CSDN博客 专题分栏:C 目录 一、域 1、分类 2、搜索顺序 二、编译链接 1、代码在形成可执行文件的过程 2、符号表 三、问题 1、带有缺省参数的函数声明和定义分离 一、域 1、分类 域:全局域、局部域、命…

第12章 消息服务

第12章 消息服务 12.1 JMS1. 简介2. ActiveMQ安装Linux安装命令 3. 整合SpringBoot ****************************************************** 12.1 JMS 1. 简介 2. ActiveMQ安装 Linux安装命令 //下载 wget http://mirrors.hust.edu.cn/apache/activemq/5.15.16/apache-acti…

JAVA系列 小白入门参考资料 类和对象(2)

目录 小引 1. this this引用 this的特性 this的使用 2. 对象的构造及初始化 如何初始化对象 构造方法 利用构造方法初始化对象的三种方式 方式一 方式二 方式三 直接初始化 小引 上一篇文章我们讨论到 如果创立类和对象,并且如何实例化对象和怎样…

Vue+Element UI el-progress进度条内显示自定义数字及文字

需求 进度条内展示 具体的数字值&#xff0c;进度条外展示 百分比数值 数据 data() {return {reNum: 3214,rePer:40,warmPer: 40,warmNum:2132,}}因为样式要求&#xff0c;显示的百分数也是自己写的哈 &#xff0c;没有用进度条自带的 代码 <div class"pick"&g…

Java学习3:程序流程控制

Java程序流程控制 1.执行顺序 顺序结构分支顺序 if,switch 循环结构 for ,while ,do-while 2.if分支 三种形式 if(条件表达式){} else if(){} else{}3.switch分支 string week "周一"; switch(week){case "周一":stem.out.println("周一&qu…

六西格玛黑带考试:一场心灵与智慧的较量

终于踏过了六西格玛黑带考试这座大山&#xff0c;心中的激动与释然如波涛汹涌。这场考试&#xff0c;不仅仅是对我知识的检验&#xff0c;更是对我毅力与决心的考验。 备考的日子里&#xff0c;我仿佛进入了一个全新的世界。从统计学的深邃到流程优化的细致&#xff0c;每一个…

C++入门第二节

点赞关注不迷路&#xff01;&#xff0c;本节涉及c入门关键字、命名空间、输入输出... 1. C关键字 C总计63个关键字&#xff0c;C语言32个关键字 asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenam…

在STM32上实现嵌入式人工智能应用

引言 随着微控制器的计算能力不断增强&#xff0c;人工智能&#xff08;AI&#xff09;开始在嵌入式系统中扮演越来越重要的角色。STM32微控制器由于其高性能和低功耗的特性&#xff0c;非常适合部署轻量级AI模型。 本文将探讨如何在STM32平台上实现深度学习应用&#xff0c;…

【活动】AIGC 技术的发展现状与未来趋势

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 AIGC 技术的发展现状与未来趋势引言AIGC技术的发展现状文本生成图像生成音频生成…

Git中单独的功能特性分支是什么含义

在Git中&#xff0c;一个"功能特性分支"&#xff08;通常简称为“特性分支”&#xff09;是指从主开发分支&#xff08;比如main或master&#xff09;独立出来的分支&#xff0c;专门用于开发一个新功能、修复一个bug&#xff0c;或者进行实验性的尝试。使用特性分支…

【Python BUG】connect: permission denied.

问题描述 解决方案 本质是权限问题 sudo密码即可

​基于Python的在线自主评测系统(django)​

基于Python的在线自主评测系统(django) 开发语言:Python 数据库&#xff1a;MySQL所用到的知识&#xff1a;Django框架工具&#xff1a;pycharm、Navicat、Maven 学生功能模块的实现 学生注册的实现 学生登录界面首页 在线考试界面 考试成绩查看界面 教师功能模块的实现 新建…

用什么模型算法可以预测足球胜平负

预测足球胜平负的模型算法有很多种&#xff0c;每种算法都有其特点和适用场景。以下是一些常见的模型算法&#xff1a; Elo预测法&#xff1a; 这是一种通过研究主客场球队在比赛前的积分情况来预测胜负的方法。Elo预测法通过计算两队之间的积分差&#xff0c;根据特定的公式&…

工业互联网通讯协议—欧姆龙(Fins tcp)

一、场景 近期公司要对欧姆龙CP系列设备的数据采集&#xff0c;于是就研究了下欧姆龙的Fins Tcp协议。 二、Fins Tcp 组成字节说明固定头446494E53 FINS对应的ASCII码的十六进制长度4后面剩余指令的长度命令4 握手固定为&#xff1a;00000000 读写固定为&#xff1a;0000000…

http 协议的状态码有哪些?含义是什么?

http 协议的状态码有哪些&#xff1f;含义是什么&#xff1f; 一、http 协议的状态码类别二、常见的http 协议状态码及其含义 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; http 协议是互联网上应用最为广泛的协议之一&#xff0c;而http …

力扣HOT100 - 22. 括号生成

解题思路&#xff1a; class Solution {List<String> res new ArrayList<>();public List<String> generateParenthesis(int n) {if (n < 0) return res;getParenthesis("", n, n);return res;}private void getParenthesis(String str, int …

基于FPGA的数字信号处理(2)--什么是定点数?

在实际的工程应用中&#xff0c;往往会进行大量的数学运算。运算时除了会用到整数&#xff0c;很多时候也会用到小数。而我们知道在数字电路底层&#xff0c;只有「高电平1」和「低电平0」的存在&#xff0c;那么仅凭 0和1 该如何表示小数呢&#xff1f; 数字电路中&#xff0…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.3--Cortex-A7寄存器介绍

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

C#应用程序实现多屏显示

前言 随着业务发展&#xff0c;应用程序在一些特定场景下&#xff0c;只在一个显示器上展示信息已经不能满足用户需求。我们如何把主屏运行程序中多个窗体移动到各个扩展屏幕位置显示呢&#xff1f;C# 是通过什么方式来实现的&#xff0c;下面介绍 C# 使用 Screen 类的方式来实…

maven多模块创建-安装配置

1、前提 许久没有写文章了&#xff0c;荒废了2年多的时间&#xff0c;在整理的时候&#xff0c;发现Maven还差一篇安装配置的文章&#xff0c;现在开始提笔完善它&#xff0c;参考&#xff1a;https://blog.csdn.net/m0_72803119/article/details/134634164。 —写于2024年4月…