文章目录
前言
👇🏻 精彩专栏 推荐订阅👇🏻(源码+lw+部署文档+讲解等)
2024-2025年最值得选的微信小程序毕业设计选题大全:100个热门选题推荐✅
2024-2025年最值得选的Java毕业设计选题大全:500个热门选题推荐✅
🌟文末获取源码+数据库🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
具体实现截图
目录
摘要: 4
Abstract: 5
第一章 绪论 7
1.1开发环境简介 7
1.1.1 编程语言简介 7
1.1.2 数据库简介 7
1.1.3 spring 开发框架简介 8
1.1.4 面向对象编程思维 8
第二章 需求分析 9
2.1 客户分级管理 9
2.2 优惠券管理 9
2.3 系统定时任务管理 9
2.4 推送功能 10
第三章 总体设计 10
3.1 项目规划 10
3.2 技术选型 10
第四章 数据库设计 12
4.1 数据库需求分析 12
4.2 数据库关系结构 13
4.3 数据库表结构 13
第五章 详细设计 15
5.1系统具体实现设计 15
5.1.1 客户分级管理 15
5.1.1.1 客户分级录入 15
5.1.1.2客户分级查询 16
5.1.1.3 客户分级等级 16
5.1.1.4 客户分级关怀 17
5.1.1.5 客户分级统计 18
5.1.2 优惠券管理 18
5.1.2.1 优惠券定义 19
5.1.2.2 优惠券生成 19
5.1.2.3 优惠券分配 20
5.1.3 积分管理 20
5.1.3.5 积分发放 21
5.1.3.6 积分展示 21
第六章 系统测试 21
6.1客户分级管理测试 21
6.2 积分管理测试 22
6.3 优惠券管理测试 22
第七章 结论和展望 22
7.1创新之处 22
7.2 改进之处和进一步研究工作 23
第八章 结束语 23
参考文献 24
致谢 24
客户分级管理系统
摘要:
目前,随着现代信息科技的飞速发展,互联网时代正在向我们走来,万物互联的时代已经开启。面对各种信息碎片我们也可以通过信息化的方式来进行管理,可以极大地提高人们工作和生活的效率,基于这样一个时代背景下,我研发了这款客户分级管理系统。
在以前,没有借助信息化手段管理的客户分级机制,十分地繁琐、复杂、难以管理和运营,例如:客户分级的信息储存、客户分级的消费情况等等,都需要耗费大量的时间来进行统计、记录,而此款客户分级管理系统正好解决了这些问题,接入此系统后可以更加规范化、系统化、自动化。从而在一方面提高了管理人员的工作效率,极大地减少了传统人工方式所带来的人力、物力上的浪费。另一方面本系统具有容量大、查询高效、可扩展性强等巨大优势,实现了整个客户分级管理的自动化。
本系统是基于B/S架构搭建的一体化服务平台,面向各种管理人员提供了友好、美观操作界面。后台主要用了springboot来开发并且集成了Redis高性能数据库。前端使用vue搭建,遵循组件化开发模式。数据库使用Mysql,并且严格遵守数据库三范式做到了严谨、规范地数据库设计。本系统主要分为客户分级管理、积分管理、优惠券等主要功能模块组成。
关键字:springboot、mysql、vue
Member management system
Abstract:
at present, with the rapid development of information technology, the Internet age is coming to us, all things is the era of the open of the Internet. In the face of all sorts of pieces of information we also can be managed by means of information technology, can greatly improve the efficiency of people’s work and life, based on such a background, I developed the member management system.
In the past, members without using informatization technology management mechanism, very tedious, complicated and difficult to manage and operations, for example: member of information storage and consumption, and so on, all requires a lot of time for statistics, records, and solve these problems, this member management system access this system can be more standardized, systematic and automation. To improve the efficiency of the management on the one hand, greatly reducing the traditional artificial way of the waste of manpower and material resources. On the other hand, this system has a large capacity, query efficiency and strong extensibility, a huge advantage. Realize the automation of the entire member management.
This system is based on C/S architecture of the integrated service platform, for a variety of management provides a friendly and beautiful interface. Background mainly use the springboot to develop and integrate Redis high-performance database. Front end using the vue, follows a modular development mode. Database using Mysql, and strictly abide by the three paradigms did database is rigorous, standardized database design. This system mainly divides into the member management, integral management, coupons and main function modules
Keyword:springboot、mysql、vue
第一章 绪论
1.1开发环境简介
1.1.1 编程语言简介
Java是一款开源的编程语言,其核心思想是面向对象编程,封装、继承、多态是它的特点,不同于传统的C系列语言是面向过程的,Java的将面向对象的思想发展了开来,成为了目前最受欢迎的编程语言之一。截止目前Java依然活跃在各个领域无论是web、服务器、手机都有它的身影,现在配合上Spring家族的整合扩展将Java的热度推向了史无前例的高峰,其可扩展性、高性能、跨平台带给了开发人员极大的便利,用Java开发程序成了软件工程师的不二选择。
1.1.2 数据库简介
Mysql是一款关系型数据库,这种关系型数据库通俗一点来说可以容易地理解为一个“表”的概念就想excel里面的表一样,一个关系型数据库由一个或者多个“表”组成,表的表头代表每一列的名称,也就是表明存储的是哪个数据,而每一列是一条单独的数据,这一点可以参考数据库三范式一起理解,恰好这种关系型数据库对应上了面向对象的编程思维:将各个数据对象抽象、分割以此达到高内聚、低耦合的目的。MySQL采用的是客户/服务器体系结构,因此实际使用时,有两个程序:
- 一个是MySQL的服务器程序,说的是mysqlId程序,其运行在数据库的服务器上,负责监听来自网络的请求并处理来自客户端的服务请求根据这些请求去访问数据库的内容,再把有关信息回传给客户;
- 另一个程序是MySQL客户端程序,负责连接到数据库服务器,并通过发出命令来告知服务器它想要的操作。这种C/S模式很好的满足了工程师们管理数据库的需求。而如今随着行业发展Mysql也成为了数据库领域炙手可热的一颗明珠。
1.1.3 spring 开发框架简介
这款框架本质上就包含两个概念:IOC、AOP,IOC是指容器管理Bean,也就是说Java中的类可以由spring去创建和管理,不在需要工程师们去new 对象,而AOP是指切面拦截的思想,在一个写好的固定程序中使用AOP可以不用修改源码只需要指明在哪切入、切入哪段代码就行。这无疑大大节省了开发者的时间。
1.1.4 面向对象编程思维
面向对象思维无非三个特性:封装、继承、多态,用通俗的语言来讲就是去对代码归类、复用,这样在开发大工程项目时可以极大地提升我们的开发效率,这种思想常常在我们生活中出现比如:部门的划分,上级下发指令下级去执行具体的事。在代码开发中我们要坚守的一条准则就是:高内聚、低耦合,而面向对象的思想也恰好满足了我们这样的需求,所以我们要将这样的思想贯穿到编码中。
第二章 需求分析
2.1 客户分级管理
客户分级管理就包括客户分级的增删改查,以及带来的气态需求,再细化下去:增加客户分级需要由管理员来操作,添加的信息有客户姓名、电话、邮箱等,删除操作也需要管理员操作,这里面就讲到这里自然也就了包含RBAC权限设计,修改操作可以由管理员或者客户分级自行修改也会设计到权限的操作,查询包含模糊查询、精确查询。
2.2 优惠券管理
优惠券管理包括,优惠券的定义、优惠券发放灯功能,优惠券的定义应该定义一个优惠券模板出来,再又优惠券的发放去实例化。优惠券包括满减券、全品类去券、折扣券等由此需要定义不一个类型字段来保存信息。优惠券发放准确来讲就是优惠券的实例化,将一个优惠券开放出来由不同的对象进行领取,将对应的id字段相互绑定。
2.3 系统定时任务管理
客户分级管理系统自然会有定时福利,生日问候等功能,由此就需要一个定时任务管理模块,在一定时间进行不同的处理,在此我是通过邮件的方式进行通知,发放的物品是实体由此也就需要一个商品管理模块,可以进行商品管理,商品的发放等等。
2.4 推送功能
推送消息用户不一定全天候在线常常会看不到消息,所以推送功能需要保证向客户分级推送的及时性、可见性,在此我使用邮件模块进行不同消息的推送。
第三章 总体设计
3.1 项目规划
该系统是一个整合了多个中间件 开发组件的系统,包括了前后端的全栈开发,由此时间的分配上和任务的规划上会有一定斟酌和取舍,前端和后端我准备各拿一半的时间进行开发,相应的留给测试的时间并不多,测试可以留在最后进行。整个项目进行的流程应该是:后端接口 前端界面 测试 部署。
3.2 技术选型
系统的第一要务就是登陆,登陆认证这块功能是用Spring Security开源框架,而鉴权的功能用的是jwt 技术配合redis cookie实现,后端语言选用Java配合Spring注解,使用Springboot作为后端基础框架,方便快速开发。网站的采用的是mvc三层架构进行开发,也就是Controller、Service、Entity三层,由Controller层进行数据的转发与前端数据的交互,由Service进行数据渲染的操作,Entity作为实体层用于映射对应的数据库表配合Service完成数据的存取和筛选,此外为了高性能的读取引入了Redis作为中间数据库,作为一个内存数据库其查询数据比mysql Innodb这样的持久化的数据库在查询速度上高的一个量级,如此高的性能自然也伴随这其他的缺陷,比如:容量小 一共只有16 张表,稳定性差 由于大量的请求进入时常会产生内存溢出的情况。持久层框架选用的是mybatisplus这个框架不需要写大量的sql语句就可以进行通用的一般查询,基本可以覆盖大部分需求,其通过lamda表达式函数进行增删改查,极大的提高了开发人员的效率。前端使用的是vue+elementUI完成界面的开发,vue是一款国人开发的前端框架,其核心思想是:只改变数据不操作dom,由数据驱动dom结构的改变,这样工程师们不需要考虑dom元素的渲染而只需要考虑数据的修改就行,也极大简化了工程师的工作,提升了工作效率。数据库采用mysql innodb 这个数据库引擎适用于大多数中小型应用,一般数据在2000万以内的都快可以考虑用这个数据库,此引擎对事事务的支持也非常友好,以及宕机的数据恢复都比较完善。还值得考虑的是整个系统的权限验证,登陆认证方式,这方面我考虑用Springsecurity框架。而Springsecurity作为spring家族的一员其功能之完善,自定义程度高,安全性是受到广泛关注的主要原因, 用Springsecurity框架来实现登录认证的底层原理就是基于一系列的过滤器对请求进行拦截,并且它包含一个过滤器链,当执行完毕一个过滤器对请求的拦截之后它会继续执行下一个过滤器,直到通过层层过滤器的筛选请求才会到达对应的接口,UsernamePasswordAuthenticationFilter 这些类都直接或间接实现了 Servlet 中的 Filter 接口,并完成某项具体的认证方法。而BasicAuthenticationFilter 这个过滤器是用来验证用户的身份凭证的,又有 UsernamePasswordAuthenticationFilter这个过滤器 会检测用户名的名称密码是否符合,这里面需要工程师们自己去实现对应的Service,并根据认证结果决定是否将这一结果传递给下一个过滤器。
第四章 数据库设计
4.1 数据库需求分析
数据库的设计应该严格遵守数据库三范式:第一:列不可再分:每一个列都是不可再分的不可以再继续分割,确保每列的原子性,两列的属性设计近似或者一样,那就尽可能把他们合并为一个列,这样做的目的是为了在数据库中确保不产生冗余的数据。第二:是在第一范式的理论基础之上建立起来的,也就是说满足第二范式必须先满足第一范式。第二范式要求数据库表中的每一行必须可以被惟一地区分,这样可以保证数据的唯一性。为了实现区分通常需要为数据表再加上一个列,用来存储数据库的两个表之间的联系。这个惟一属性的列被我们称之为主键。第三:在数据库中数据不能存在传递关系,即每个列都和这张表的主键有直接联系而不是间接联系。比如:a-b-c这样的, 属性之间含有这样的关系,是不符合第三范式的。在确立了需求后我们应该针对不同的模块设计不同的表,这也就是运用了DDD的思想,这时候将系统功能的系列表和业务上的系列表进行区分,用下划线进行分割,不同的表代表不同的职责。
4.2 数据库关系结构
数据库拆分开后应该是:领域_表名的形式来命名的,这样就产生了不同的模块,有了这些模块我们就能更好的管理、开发。首先就是系统基础数据表这一部分是用于系统基础搭建的,比如菜单项、 角色、权限,这些变是一个系统的基础构成,也可以说是系统的基础支持,没有这些表就没法正常搭建系统和启动项目。这一部分数据表包括menu、user、role、user_role、role_menu、sys_config、log等等,本系统的权限设计是依照RBAC来实现的,所谓RBAC就是不直接给用户对应的接口权限,而是给用户以对应的权限通过不同的权限进行限制。由此可以得出user用户表user_role用户角色表 role_menu 角色权限表,其中角色权限表就是用户与权限的中间表,用来赋予用户不同权限,基础数据部分大致设计如上,就下来就是业务部分,按模块份就分为客户分级管理:yx_user,此表区别于系统用户,不属于后台系统的一部分,还有优惠券管理:coupon、coupon_user,产品表:product,购物车表:cart,系统日志log。以上就是整个系统数据表的基本设计。
详细视频演示
请联系我获取更详细的演示视频
代码参考
源码获取
文章下方名片联系我即可~
大家点赞、收藏、关注、评论啦
精彩专栏推荐订阅:在下方专栏👇🏻
Java精品实战案例《500套》
微信小程序项目精品案例《500套》