(附源码)springboot电影院售票与管理系统 毕业设计 011449
相关技术介绍
2.1Myeclipse描述
我们在利用Java来开发系统时通常采用的软件就是Myeclipse,它是用来设计Java, JavaEE的Eclipse插件的调集,采取了 Myeclipse大部分可以实现对Mysql的数据库和Javaee的研究和开发。用了Myeclipse很大的便利了开发人员,系统开发的进度也会得到一些提高。
2.2Mysql描述
现在Mysql数据库在网络上它可以支撑许多个用户,而且也可以适应客服机和服务器的部署或者配置等,我们这里的服务器和客户机其实就是一种软件上的概念,并且我们使用的计算机硬件也与他们不存在一一对应的关系。
Mysql是一款非常流行的关系型数据库管理系统,它的出现一直都是佼佼者,它不仅功能非常强大,而且使用起来非常方便,并且Mysql的跨平台能力也很好,软件开发人员非常喜欢它的这些强大的优点。不同于其他关系型数据库,对于数据库的管理它有着自己的一套方案,通过对用户设定相应的权限和角色来达到对数据库的管理。由此可见,Mysql是一个能够适用于吞吐量高,可靠性高,效率高的一款数据库管理软件[4]。
优点一:Mysql中对于不同身份的用户都设定其不同的权限来完成不同的业务逻辑,这使得Mysql在安全和完整性远远超出了其他关系型数据库。
优点二:对于那些动画、图形和声音的数据类型Mysql也可以支持,这说明多数据类型Mysql也是可以支持的。
优点三:Mysql还可以做到多个平台的开发,软件开发的多种编程语言都可以实现对Mysql数据库的操作。
2.3 B/S结构
在系统的开发上采用了B/S结构,在B/S结构中,统一采用浏览器,而不需要去开发任何的用户界面,Web浏览器向处理它的Web服务器发送请求,并一步一步地将处理结果返回给客户端。B/S结构主要采用了各种脚本语言和ActiveX技术,降低了系统的开发难度并简化了系统维护以及使用。
B/S结构有如下特点:B/S结构建立在广域网上,不需要专门为其配置硬件环境,比C/S结构的适应范围更强;由于其基于广域网,所以其对安全的控制能力相对较弱;B/S的多种结构要求构造相对独立的函数,这样才能可以更好地重用;B/S结构组成简单,便于对个别构件进行更换,降低了系统的维护成本B/S信息流向与C/S不同,B/S信息流向可变化。
2.4Tomcat描述
Tomcat是一个不收费的服务器。使用场景比较适合访问量比较少的情况下。意思就是,将Tomcat安装到电脑上的时候,前端HTML页面的访问请求可以通过它进行解析。实际上,Tomcat是对Apache的扩展,但它相对于Apache却是相对独立作业的,由此可以看作它与Apache 是相对独立进程运行的。
Tomcat最开始是sun公司的戴维森进行开发应用的,经过他的努力,不断地将其变为开源的服务器。还由sun公司将其交给了Apache软件基金会。不断发展的tomcat服务器在最近的一个版本中进行了大量的重构和梳理,使其使用起来更加的方便。基于Tomcat负载均衡算法是一种开源的软件,实现方式。不需要增加额外的硬件投入,实现起来也很方便,特别适用于一般的小企业网站服务器在现在和将来一段时间的扩展。从目前的实践来看,可作为需要进行类似应用的一个参考借鉴。
2.5 spring boot框架介绍
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。
系统分析 可行性分析
技术性方面,采用当前主流的是springboot框架进行系统主体框架的搭建,前台使用jquery,ajax,实现前台页面的设计与美观调整,以上技术,均由本人经过系统学习,并且都是在课程设计中实践过的,可以使得开发更加便捷和系统。从技术角度看,这个系统是完全可以实现的。
实用性方面,本次设计的主要任务是在电影院售票与管理系统内¥购票会员卡等,符合当前潮流的发展。从用户角度出发,同时也考虑系统运营成本和人力资源,采用网络上的便捷方式,实现线上业务,使得业务流程更系统,也更方便用户的体验,比较实用。
经济性方面,由于本课题中设计的电影院售票与管理系统的主要目的是为了能够更加方便及快捷的进行信息的查询管理及检索服务,也就是能够可以直接投入使用的信息化软件。系统的主要成本主要是集中在对使用数据后期继续维护及其管理更新这个操作上。但是一旦系统投入到实际的运行及使用之后就能够很好的提高信息查询检索的效率,同时也需要有效的保证查询者的信息方面的安全性,同时这个电影院售票与管理系统所带来的实际应用方面的价值是远远的超过了实际系统进行开发与维护方面的成本,因此,从经济上来说开发这个软件是可行的。
功能需求分析
电影院售票与管理系统的功能主要分为前台用户根据自己的需求进行注册登录,浏览电影资讯并对选中的电影进行购票操作。后台系统管理员因职责的不同,分为普通管理员和超级管理员,普通管理员主要对购票单进行处理,处理退票单,而超级管理员主要对注册用户,影院信息、影片信息、购票中心、退票记录进行处理。
管理员用例图如下所示。
图3-1 管理员用例图
用户用例图如下所示。
图3-1 用户用例图
前台用户功能
前台用户可分为未注册用户需求和以注册用户需求。
前台用户的功能如下:
登录:根据账号密码进行登录操作。
维护个人信息:用户因个人信息的变更可以随时修改自己注册信息。
浏览影片信息:用户可以根据电影类型浏览影片的信息,并选中某个影片查看详情,例如:影片编号、影片名称、影片类型、影院名称、上映时间、票价等。
浏览影院信息:用户可以根据电影类型浏览影院的信息,并选中某个影院查看详情,例如:影院编号、影院名称、影院地址、影院电话等。
浏览评论信息:选中某间电影可查看其用户的评论。
CRM(Customer Relationship Management)系统:即客户关系管理系统,主要用于用户的管理及运营,是用户运营人员工作中的重要工具之一。
本文试图从具体业务的视角,谈谈在实际项目中CRM系统建设的背景、目标和行动计划。
一、业务背景
不同行业或业务场景下的CRM系统差别是很大的,系统建设必须要立足于业务,因此下面先简单交代下业务背景。
本文所探讨的CRM系统涉及的业务是“K12在线1对1陪练”,服务的用户主要是学生和学生家长。学生是产品和服务的实际使用者,而家长则是产品和服务的决策者和买单者。
而系统的主要使用者是CC和CR:
K12:K12或K-12,是kindergarten through twelfth grade的简写,是指从幼儿园(Kindergarten,通常5-6岁)到十二年级(Grade Twelve,通常17-18岁),K12是国际上对基础教育的统称。
以上解释来自百度百科,它界定了k12教育服务的目标用户的年龄范围。
关于1v1,这个很好理解,从教学场景上讲就是1个老师在上课时只辅导1个学生。
但是从系统的角度来看,1对1和班课完全是不同的结构,1对1是没有班级概念的,老师和学生也没有强关联,学员上课基本是没有规律的(家长可随意约课、选老师),所以1v1需要的系统和班课模式是完全不同的。
二、项目背景
在进行系统建设前,了解清楚项目背景,有助于我们理解系统的建设目标,而建设目标则是指引我们做产品设计的一盏明灯。
1. 战略背景:精细化运营
公司的在线1对1陪练业务在经过初期的快速试错后,已确定产品模式和服务边界,业务上也基本实现了稳定增长。
所以为了更好地促进业务发展,公司在战略上提出要从粗放式运营转变为精细化运营,CRM系统建设就在这样的大背景下被提上了日程。
2. 业务现状:多系统并行使用,系统间不互通
在业务从0-1的阶段,业务团队既在使用我们自己的ERP教学管理系统,也在使用第三方系统如“客服外呼系统”、“客户管理系统”还有无数的Excle表格。
这些系统之间并不互通,导致需要做很多数据导入导出的工作,在不同系统间切换,既浪费时间也容易出错。
在业务刚起步时人工还能应付,业务量一旦上来,业务团队便陷入了抓狂的境地,纷纷呼吁要建设自己的CRM系统。
三、系统建设目标
在了解清楚项目背景后,产品技术团队总结出本次系统建设的目标。
1. 规范业务流程,提升工作效率
笔者经过2周轮岗做课程顾问的体验,了解到在当前业务中,一条线索从触达到上完体验课,总共需要经过7个关键节点:
课程顾问触达用户体验课邀约成功教研部审批-选择体验课试卷师资部审批-选择体验课老师行政部审批-发送快递(寄送体验课设备)技术部审批-设备检测上体验课
以上流程全部走完才算是完课,这个过程通常需要5~6天左右,这显然太久了,很多用户在等待的过程中就失去了耐心,转向其他机构。
经过深入调研,笔者发现其中的某些审批环节是可以省去的,由系统来代替人工,比如选择试卷环节,体验课的试卷是根据年级、学科标准化的试卷,只需在系统上进行配置即可,无需每节课人工审批、上传(具体实现非本文讨论重点,此处不再展开)。
类似这样的情况还有很多,这次的系统建设目标之一,就是要解决这些冗余流程,建立标准化业务SOP,提升业务运转效率。
2. 沉淀业务数据,分析改善业务问题
由于当前业务团队使用的是多个系统,这些系统之间还不互通,所以目前的业务数据是分散开的,收集整理工作非常困难,会耗费大量的人力。
收集不到数据就没有办法从数据层面发现业务中存在的问题,精细化运营也就无从谈起了。
精细化运营其中一个很关键的点就是将业务中的大环节切分成一个个小环节来看,比如在销售环节,如果只统计付费学员占总线索的比例,则很难分析出哪里出了问题,哪里需要优化。
但假如我们将销售环节切分成:线索到触达、触达到邀约成功、邀约成功到完课、完课到付费四个环节,再通过不同渠道去分别看这四个环节的漏斗转化,则很容易就能看出问题所在,从而指导业务团队针对性的优化某个环节,实现业务增长。
四、制定行动计划
清楚目标之后,就可以着手制定系统建设的行动计划(这里的计划主要是针对产品设计而言)了,有了计划后续的行动才会更有条理和章法。
1. 业务调研(第一周完成)
这一步其实在我们了解项目背景和系统建设目标时已经开始了,后续的重点则放在了解业务细节和业务痛点上。
针对当前业务,业务调研的目标就是要摸清以下几个问题:
线索是从哪里来的?从线索到成单经历了哪些环节?如何对正式学员进行分层管理,提供个性化服务的?系统涉及的角色有哪些,分别参与业务的哪些环节?不同角色的考核指标是什么?业务现状的痛点是什么?哪些环节最影响效率?
等等。
2. 梳理核心业务流程(第一周完成)
核心业务流程是基于对业务的深入了解后才能梳理出来的,能让我们对业务的关键节点和关键节点涉及的角色有清晰的认识。核心业务流程的梳理可以适当放大颗粒度,此时不必在细节上纠结。
另外在梳理的时候,不一定要完全按照线下实际业务流程,可以加入自己的思考,调整优化流程。
梳理完成后需要和业务团队核对流程,确保理解一致。
3. 功能模块设计(第二周完成)
功能模块设计是对系统的高度抽象,需要考虑系统有哪些应用场景,用户可能在系统上做哪些操作等,设计好的功能模块图是能够体现系统的一二级导航菜单结构的。
这就好比要设计一栋房子,首先得规划出客厅、厨房、卫生间、卧室和阳台等等。功能模块设计好之后,整个系统的架构就建立起来了。
4. 演进蓝图设计(第二周完成)
在进行功能模块设计时,我们需要尽可能的把模块想的很全,将我们对系统的未来展望也考虑进去,这样做的好处是,在进行细节方案的设计时,能考虑到方案的可扩展性,同时也能让开发在设计技术方案时考虑周全。
但是在实际开发时,考虑到时间成本,一般不会一次性全部开发出来,所以就需要根据业务优先级去分期实现,那么每一期该实现哪些模块,就是所谓的演进蓝图了。
5. 细节方案设计(第三周至第四周完成)
细节方案的设计就是将各个功能模块设计成一个个页面,这里涉及的内容较多,碍于篇幅,就不在此展开,将会在后续的文章中分模块来讨论。
最后,再来做个总结,笔者在建设公司内部的CRM系统时,先去了解了本次项目的背景,然后根据项目背景提炼出系统建设目标,最后依据目标制定出具体行动的计划。
这些便是笔者在系统建设之初所做的事情,下一步,笔者将继续进行后续具体行动的复盘。