当前位置: 首页 > news >正文

希尔顿酒店网站建设的优点网站建设汇报稿

希尔顿酒店网站建设的优点,网站建设汇报稿,苏州有哪些做网站公司好,秦皇岛哪有网站优化公司TOC springboot339javaweb的新能源充电系统pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现#xff0c;改变了几千年以来人们的生活#xff0c;不仅仅是生活物资的丰富#xff0c;还有精神层次的丰富。在互联网诞生之前#xff0c;地域位置往往是人们思想上不可跨域…TOC springboot339javaweb的新能源充电系统pf 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现改变了几千年以来人们的生活不仅仅是生活物资的丰富还有精神层次的丰富。在互联网诞生之前地域位置往往是人们思想上不可跨域的鸿沟信息的传播速度极慢信息处理的速度和要求还是通过人们骑马或者是信鸽传递这些信息传递都是不可控制的中间很有可能丢失信息的传递水平决定了人们生活的水平。如今大家都在使用互联网软件产品从内部管理设置计算机管理提高内部信息化的管理水准从外部市场也可以用计算机获取相关数据进行处理如今各行各业已经严重依赖于计算机了。 本课题研究和开发新能源充电系统管理系统让安装在计算机上的该系统变成管理人员的小帮手提高新能源充电系统信息处理速度规范新能源充电系统信息处理流程让管理人员的产出效益更高。 1.2 课题意义 传统处理数据必须是一张张纸然后处理完毕又是统计在一张张纸上面不断的重复处理最终有个结果给最高层作为参考这个模式在互联网没有出现之前是一种常见的事情信息管理的效率提不上去人多不一定力量大因为人多肯定更加消耗资源并且因为人类需要休息需要管理思想会不统一会偷懒所以人们研究出专门帮助人们计算的机器就是计算机的前身到了互联网时代人们发现完全可以让程序供应商提供解决方案自己挑选自己合适的方案来提高自己的产出比。所以在日常工作和生活中会发现各种各样方便人们的工具。 本课题研发的新能源充电系统管理系统就是提供新能源充电系统信息处理的解决方案它可以短时间处理完信息并且这些信息都有专门的存储设备而且数据的备份和迁移都可以设定为无人值守从人力角度和信息处理角度以及信息安全角度新能源充电系统管理系统是完胜传统纸质操作的。 1.3 研究内容 本文对新能源充电系统管理系统的设计与实现分成六个章节来说明。 第1章研究新能源充电系统管理系统的背景以及开发新能源充电系统管理系统的意义。 第2章对开发新能源充电系统管理系统的环境还有技术进行说明。 第3章分析新能源充电系统管理系统的可行性性能流程以及功能。 第4章设计新能源充电系统管理系统的功能结构设计数据库E-R图以及对数据表的存储结构进行设计。 第5章实现新能源充电系统管理系统的功能并进行功能界面展示。 第6章对系统测试进行阐述以及对本系统部分功能进行检测。 第2章 开发环境与技术 本章节对开发新能源充电系统管理系统需要搭建的开发环境还有新能源充电系统管理系统开发中使用的编程技术等进行阐述。 2.1 Java语言 Java语言是当今为止依然在编程语言行业具有生命力的常青树之一。Java语言最原始的诞生不仅仅是创造者感觉C语言在编程上面很麻烦如果只是专注于业务逻辑的处理会导致忽略了各种指针以及垃圾回收这些操作导致出现问题需要解决的时间往往大于正常编程处理业务逻辑的时间这些是非常浪费时间的。Java语言的创造者就考虑到如何避免这个问题把指针处理和垃圾处理全部自动化虽然这会损失一些性能但是计算机硬件在性能上的发展速度是很快的这些性能是可以忽略考虑的。并且C语言是针对硬件开发的语言虽然执行效率高但是随着硬件的变化或者操作系统的变更就需要重新编写程序造成重复劳动只有解决重复性劳动的语言才算符合生存规律的语言。Java语言的创造者就针对C语言的缺点专门开发了Java语言。让Java语言不管是在什么样的环境里都是可以运行因为在Java语言运行外面套了一个壳也就是虚拟机只要是Java虚拟机能安装的电脑都可以运行Java的程序。 2.2 MYSQL数据库 MySQL数据库是一种数据存放方面的专业软件也是传统的行式数据模式获取一些数据是先一行一行的获取然后一行一行的显示与列式数据库不同。行式数据库主要是处理最重要的数据逻辑部分并且必须是有效数据这样每一处的数据关联都是不可损坏对数据安全要求比较严格还是用MySQL数据库比较好。列式数据库的发明仅仅是因为读取效率高但是也就仅仅如此罢了。MySQL虽然比起Oracle或者SQL Server来讲安装包只是几十兆甚至几百兆有点小但是功能并不会弱到哪里严格遵循SQL标准语法。MySQL的数据存放形式从大向小的说是数据库最大然后是表每个表里面存放数据是有一定的规则的数据存放是表格形式的也就是说有横也有竖横着的为行一般表示一条数据表与表之间还可以进行关联进行分表操作如果一条数据相关项目属性太多那么可以把有效的相关联系做成关联可以设定是否唯一。 2.3 IDEA开发工具 IDEA是捷克共和国的Java程序员开发人员创造的一个开发软件刚开始主要是对于用Eclipse软件他们用得不顺手所以直接开发了这款软件。之所以不顺手原因在于没有代码提升功能原因是Eclipse只是把代码提示作为一种插件形式的存在如果有些程序开发人员不清楚代码提示插件可能会出问题并且代码提示只是用来作为插件所以功能上有所欠缺。IDEA不仅仅代码提示做的很好在代码重构上面更上如虎添翼程序开发人员可以选择一段代码然后IDEA就会对代码进行分解重构有效的把代码弄得更够层次感复用性更高用着更简洁和方便大大的减少了代码工作量提升了代码开发效率。当然IDEA对于使用者这么好肯定也是有目的的原因在于插件越多越友好就需要花费大量的金钱来使用所以说IDEA使用主要是看自己喜好。 2.4 Spring Boot框架 Spring Boot是一种不需要代码生成的一种框架并且可以不需要配置任何的XML文件就可以因为Spring Boot里面自带了很多接口只需要配置不同的接口就会自动的应用并且识别需要的依赖在配置方面非常的方便使用起来感觉像没有用到框架的感觉。Spring Boot有很多默认的配置文件并且可以对默认的配置文件进行修改可以设置为自动加载可以对异常处理分为全局异常处理和默认异常处理。Spring Boot使用过程中就像是使用什么直接注册什么所谓的注册也就是在对应的类和方法上面进行一个特殊的声明即可。 第3章 系统分析 本文作者在确定了研究的课题之后从各大数字图书馆下载文献来阅读并了解同类型的网站具备的大致功能然后具体事务具体分析得出本系统要研究的具体功能与性能。虽然分析系统这一阶段性工作主要是确定功能但它却影响着后面系统开发环节的进展系统分析这个环节是不能少的。 3.1 可行性分析 从三个不同的角度来分析确保开发成功的前提是有可行性分析只有进行提前分析符合程序开发流程才不至于开发过程的中断。 3.1.1 技术可行性 在技术实现层次分析了好几种技术实现方法并且都有对应的成功案例也有很多开源模块可以进行参考所以从技术可行性分析来讲实现新能源充电系统管理系统是没有问题的。 3.1.2 经济可行性 对于身为学生的开发者而言在经济资源上面可用者很少为了开发新能源充电系统管理系统通过开发软件对硬件的要求发现自己的电脑是完全能用来开发的并且学校机房的配置也可以达到要求。最重要的是选择的技术都可以在网上找到不花钱的教程以及资料因为不花钱所以经济方面是具有可行性的。 3.1.3 操作可行性 新能源充电系统管理系统的具体实现本身参考人类的正常操作逻辑把常用的操作习惯当做主要的导航实现可以让使用者更快速的理解并且上手操作实现符合逻辑的操作流程是操作可行性的具体体现。 以上就是从不同的角度来分析确保了新能源充电系统管理系统的正常开展。 3.2 系统流程 新能源充电系统管理系统投入使用后使用者如果能看到相应的流程操作图会提高程序的理解能力。 3.2.1 操作流程 使用者在操作新能源充电系统管理系统中应该按照本系统提供的操作流程图3.1即为本系统的操作流程图进行操作可以减少操作失误从而节省进入新能源充电系统管理系统的时间。 图3.1 系统操作流程 3.2.2 登录流程 新能源充电系统管理系统通过登录功能图3.2即为其登录的流程引导使用者进入指定的功能操作区也避免非本系统的用户享受本系统提供的服务以及查看本系统提供的信息进而保证用户安全。 图3.2 登录流程 3.2.3 删除信息流程 新能源充电系统管理系统在经过长期使用后会产生很多的数据信息。为了腾出存储空间存放更多的数据本系统数据库中存储的数据一些没有参考价值的数据需要进行删除图3.3即为删除信息的流程删除数据过程中为避免误删使用者要根据系统的提示来决定是否删除数据。 图3.3 删除信息流程 3.2.4 添加信息流程 新能源充电系统管理系统提供可视化的功能操作区非常方便使用者进行数据操作当使用者往系统中录入数据时图3.4即为添加信息的流程本系统也会进行数据合法性的判断符合要求的数据才能够在数据库指定表中进行登记。 图3.4 添加信息流程 3.3 性能需求 需求分析少不了对项目用到的硬件设备进行分析这样才符合正常的分析流程。只谈功能需求不谈性能需求是一件很严重的事情可能会导致一些不可控的问题出现。 以下从这几个角度来分析系统性能。 (1)系统数据的容量从数据角度来分析每个表和每个数据库达到的数据量到一定的程度是否需要分表或者是分库超过了数据的设定限度可能会导致数据反映迟钝容错量增加。 (2)数据精度的要求需要对需求分析里面数据设定环节考虑相应的数据精度问题需要发现数据是常用的精度还是非常用的精度进而设定不同的数值。 (3)时间响应要求从用户提交操作到页面反映中间有个数据处理的问题需要考虑预测数据量的大小提前预案分库分表的设计数据量再大就要考虑增加列式数据库的问题这些都不是一拍脑门就能决定的都需要经验和同行业的数据分析研判才能符合用户的要求毕竟响应时间太久操作起来也不舒服。 (4)普适性问题用户使用应该不需要感知服务端的数据量问题或者响应问题只需要任意一台电脑不需要更多的操作打开浏览器就能用太多的设置以及操作不符合普适性操作。 (5)页面设计问题功能符合要求之后肯定是要丰富页面的。页面设计才是用户长时间面对的问题首先考虑数据的整洁性让页面看起来更加的清爽。颜色与数据方面该不同颜色就不同颜色降低用户长时间使用出现的视觉疲劳让用户使用起来心情不至于太差。 (6)系统的稳定性正常用户操作系统页面必须是该提交提交正常输入符合逻辑不能随随便便的就出各种问题导致用户操作疲惫并且输入的数据和回显的数据符合用户的要求。如果正常操作都会出现问题那设计就是不稳定的这一点肯定不行。只要是与数据进行交互的系统都必须稳定。系统稳定从开发部署角度上来分析可以考虑数据的冗余备份功能自动值守功能机房数据同步机房分开的功能这些都可以让系统的稳定性得到提升。 系统的性能需求需要对业务很熟练的情况下判断然后分析再从系统性能需求来逐条实现可以让设计的系统有使用价值。 3.4 功能需求 新能源充电系统管理系统根据使用权限的角度进行功能分析并运用用例图来展示各个权限需要操作的功能。 图3.5即为管理员用例图管理员权限操作的功能包括反馈管理、客服聊天管理、充电桩管理、充电桩预约管理、字典管理、新能源公告管理、用户管理、管理员管理等可以管理报修。 第4章 系统设计 用户对着浏览器操作肯定会出现某些不可预料的问题但是不代表着系统对于用户在浏览器上的操作不进行处理所以说要提前考虑可能会出现的问题。 4.1 系统设计思想 系统设计肯定要把设计的思想进行统一只有统一的思想才能指导程序的开发并且可以让众多的程序开发人员更快速的进入状态提高开发速度。根据当前系统的既定需求下面将进行本系统设计思想的阐述。 (1)扩展性开发任何一个系统的时候不可避免要考虑这个问题。软件版本的更迭是一种常识任何一个软件都不会一次性开发就成永恒软件是一个不断成长的东西。所以考虑问题的时候需要对当前问题进行数据上的扩大化然后进行归纳整理最终形成具有一定扩展性的程序。程序的可扩展性必然会影响开发进度所以最终需要综合评估程序的可扩展程度进而有的放矢循序开发。 (2)实用性程序设计是一个先高屋建瓴式的设想然后再具体化实用性就是具体化的第一个步骤要充分考虑使用者是不懂程序设计的这一点使用者只是懂得常规性的上网操作步骤并不需要对程序进行理解所以一定要让使用者感觉到便利感觉到实用性的存在如果使用者使用程序过程中没发现使用程序的好处那么程序设计的实用性将大大降低。 (3)安全性当使用者使用的过程中会产生大量的相关数据这些数据必须有安全性的保证否则当使用者发现数据出现问题的原因是程序设计问题的时候将会对程序开发者失去信任甚至可能会产生大量的费用赔偿问题这是一个不可避免的问题。所以安全性关系开发与使用者双方的经济利益程序的安全性是一定要保证的。 (4)先进性程序设计的先进性是开发者进行考虑的必须要在满足系统功能的前提下必须要选择好当下最合适的技术。最合适的技术要从开发成本使用成本以及维护成本里面综合分析经过综合分析后要让技术实现最优解保持先进的技术生产力。 (5)维护性程序开发之初就要考虑以后的维护问题。维护是在程序开发完毕已经上线可以运作进入生产试用过程和使用过程中才会发现需要维护的必要。要通过各方面降低维护成本不是说维护的越少就代表程序开发的越完美程序既然是人类进行设计制造的肯定有很多不可避免的问题产生那么如何维护好程序的正常运作也是一门很重要的学问。 4.2 功能结构设计 图4.1即为设计的管理员功能结构管理员权限操作的功能包括反馈管理、客服聊天管理、充电桩管理、充电桩预约管理、字典管理、新能源公告管理、用户管理、管理员管理等可以管理报修。 图4.1 管理员功能结构 4.3 数据库设计 新能源充电系统管理系统运行中产生的数据需要按照提前设置的存储规则进行保存设计出一个符合项目的最优数据存储格式因为它能减少用户的等待时间还可以对系统的请求在最短时间内进行响应。所以对数据库设计时需要对功能需求进行详细的拆分以及对业务状态的细分然后设计具体的存储规则保证数据库能正常运作缩短数据处理时间并在一定程度上降低数据冗余节省存储空间。 4.3.1 数据库概念设计 实体-联系图还有一个名称即E-R图是Entity Relationship Diagram各英文单词首字母的缩写它这种概念模型通常用于对现实世界进行描述。同时它还是一种能够直观表达数据中实体联系属性的有效手段。绘制E-R图能够选择的工具也有很多但是Office Visio 这款软件在E-R图的绘制上一般都是作为首选工具因为它是基于可视化处理使用它创建E-R图非常简单。使用基本的E-R图构成元素比如椭圆菱形矩形还有实线段来表达对应的信息椭圆代表属性即实体的特征矩形代表实体即数据库中的一个具体数据表菱形代表实体中相互关系实线段主要是完成椭圆矩形菱形的连接。 1下图是客服聊天实体和其具备的属性。 客服聊天实体属性图 2下图是新能源公告实体和其具备的属性。 新能源公告实体属性图 3下图是反馈实体和其具备的属性。 反馈实体属性图 4下图是用户实体和其具备的属性。 用户实体属性图 5下图是充电桩预约实体和其具备的属性。 充电桩预约实体属性图 6下图是充电桩实体和其具备的属性。 充电桩实体属性图 4.3.2 数据库物理设计 本小节主要任务即是根据上述内容进行数据存储结构的设计实体的属性就用来表示字段名称不同的字段表示的数据类型以及取值都不相同以及该表各个字段是否能够保持空等进行说明设计完成一张数据表的结构之后在保存时同样要命名尽量选择英文名称进行命名并保存还不容易导致系统出错。接下来就对设计的表进行简单说明。 表4.1反馈表 序号列名数据类型说明允许空1IdIntid否2yonghu_idInteger用户是3chongdianzhuang_idInteger充电桩是4baoxui_nameString报修名称是5baoxui_photoString报修图片是6baoxui_typesInteger报修类型是7insert_timeDate申请反馈时间是8baoxui_zhuangtai_typesInteger报修状态是9baoxui_contentString报修详情是10create_timeDate创建时间是 表4.2客服聊天表 序号列名数据类型说明允许空1IdIntid否2yonghu_idInteger提问用户是3chat_issueString问题是4issue_timeDate问题时间是5chat_replyString回复是6reply_timeDate回复时间是7zhuangtai_typesInteger状态是8chat_typesInteger数据类型是9insert_timeDate创建时间是 表4.3充电桩表 序号列名数据类型说明允许空1IdIntid否2chongdianzhuang_nameString充电桩名称是3chongdianzhuang_uuid_numberString充电桩编号是4chongdianzhuang_photoString充电桩照片是5chongdianzhuang_typesInteger充电桩类型是6chongdianzhuang_zhuangtai_typesInteger充电桩状态是7chongdianzhuang_kucun_numberInteger可充时长是8chongdianzhuang_new_moneyBigDecimal金额/小时是9chongdianzhuang_contentString充电桩介绍是10shangxia_typesInteger是否上架是11chongdianzhuang_deleteInteger逻辑删除是12insert_timeDate录入时间是13create_timeDate创建时间是 表4.4充电桩预约表 序号列名数据类型说明允许空1IdIntid否2chongdianzhuang_idInteger充电桩是3yonghu_idInteger用户是4buy_numberInteger充电小时是5chongdianzhuang_order_timeDate预约时间是6chongdianzhuang_order_true_priceBigDecimal实付价格是7chongdianzhuang_order_typesInteger订单类型是8insert_timeDate订单创建时间是9create_timeDate创建时间是 表4.5字典表 序号列名数据类型说明允许空1IdIntid否2dic_codeString字段是3dic_nameString字段名是4code_indexInteger编码是5index_nameString编码名字是6super_idInteger父字段id是7beizhuString备注是8create_timeDate创建时间是 表4.6新能源公告表 序号列名数据类型说明允许空1IdIntid否2gonggao_nameString公告名称是3gonggao_photoString公告图片是4gonggao_typesInteger公告类型是5insert_timeDate公告发布时间是6gonggao_contentString公告详情是7create_timeDate创建时间是 表4.7用户表 序号列名数据类型说明允许空1IdIntid否2yonghu_nameString用户姓名是3yonghu_phoneString用户手机号是4yonghu_id_numberString用户身份证号是5yonghu_photoString用户头像是6yonghu_emailString用户邮箱是7new_moneyBigDecimal余额是8create_timeDate创建时间是 表4.8管理员表 序号列名数据类型说明允许空1IdIntid否2usernameString儿童名是3passwordString密码是4roleString角色是5addtimeDate新增时间是 第5章 系统实现 编程人员在搭建的开发环境中会让各种编程技术一起呈现出最终效果。本节就展示关键部分的页面效果。 5.1 管理员功能实现 5.1.1 充电桩管理 图5.1 即为编码实现的充电桩管理界面管理员在充电桩管理界面中可以对界面中显示的所有数据进行可以对充电桩信息的充电桩状态进行查看可以添加新的充电桩信息等。 图5.1 充电桩管理界面 5.1.2 充电桩预约管理 图5.2 即为编码实现的充电桩预约管理界面管理员在充电桩预约管理界面中查看奖罚种类信息奖罚描述信息可以导出充电桩预约信息新增充电桩预约信息等。 图5.2 充电桩预约管理界面 5.1.3 报修管理 图5.3 即为编码实现的报修管理界面管理员在报修管理界面中新增报修并设置报修的角色可以删除报修。 图5.3 报修管理界面 5.1.4 公告管理 图5.4 即为编码实现的公告管理界面管理员在公告管理界面查看公告的工作状态为正式公告还是实习公告可以对公告的数据进行导出可以添加新公告的信息可以编辑公告信息删除公告信息。 图5.4 公告管理界面 5.2 用户功能实现 5.2.1 充电桩 图5.5 即为编码实现的充电桩界面。 图5.5 充电桩界面 5.2.2 在线客服 图5.6 即为编码实现的在线客服界面。 图5.6 在线客服界面 5.2.3 报修 图5.7 即为编码实现的报修界面。 图5.7 报修界面 ChongdianzhuangOrderController.java package com.controller;import java.io.File; import java.math.BigDecimal; import java.net.URL; import java.text.SimpleDateFormat; import com.alibaba.fastjson.JSONObject; import java.util.*; import org.springframework.beans.BeanUtils; import javax.servlet.http.HttpServletRequest; import org.springframework.web.context.ContextLoader; import javax.servlet.ServletContext; import com.service.TokenService; import com.utils.*; import java.lang.reflect.InvocationTargetException;import com.service.DictionaryService; import org.apache.commons.lang3.StringUtils; import com.annotation.IgnoreAuth; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.entity.*; import com.entity.view.*; import com.service.*; import com.utils.PageUtils; import com.utils.R; import com.alibaba.fastjson.*;/*** 充电桩预约* 后端接口* author* email */ RestController Controller RequestMapping(/chongdianzhuangOrder) public class ChongdianzhuangOrderController {private static final Logger logger LoggerFactory.getLogger(ChongdianzhuangOrderController.class);private static final String TABLE_NAME chongdianzhuangOrder;Autowiredprivate ChongdianzhuangOrderService chongdianzhuangOrderService;Autowiredprivate TokenService tokenService;Autowiredprivate BaoxuiService baoxuiService;//反馈Autowiredprivate ChatService chatService;//客服聊天Autowiredprivate ChongdianzhuangService chongdianzhuangService;//充电桩Autowiredprivate DictionaryService dictionaryService;//字典Autowiredprivate GonggaoService gonggaoService;//新能源公告Autowiredprivate YonghuService yonghuService;//用户Autowiredprivate UsersService usersService;//管理员/*** 后端列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params, HttpServletRequest request){logger.debug(page方法:,,Controller:{},,params:{},this.getClass().getName(),JSONObject.toJSONString(params));String role String.valueOf(request.getSession().getAttribute(role));if(false)return R.error(511,永不会进入);else if(用户.equals(role))params.put(yonghuId,request.getSession().getAttribute(userId));CommonUtil.checkMap(params);PageUtils page chongdianzhuangOrderService.queryPage(params);//字典表数据转换ListChongdianzhuangOrderView list (ListChongdianzhuangOrderView)page.getList();for(ChongdianzhuangOrderView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put(data, page);}/*** 后端详情*/RequestMapping(/info/{id})public R info(PathVariable(id) Long id, HttpServletRequest request){logger.debug(info方法:,,Controller:{},,id:{},this.getClass().getName(),id);ChongdianzhuangOrderEntity chongdianzhuangOrder chongdianzhuangOrderService.selectById(id);if(chongdianzhuangOrder !null){//entity转viewChongdianzhuangOrderView view new ChongdianzhuangOrderView();BeanUtils.copyProperties( chongdianzhuangOrder , view );//把实体数据重构到view中//级联表 充电桩//级联表ChongdianzhuangEntity chongdianzhuang chongdianzhuangService.selectById(chongdianzhuangOrder.getChongdianzhuangId());if(chongdianzhuang ! null){BeanUtils.copyProperties( chongdianzhuang , view ,new String[]{ id, createTime, insertTime, updateTime, yonghuId});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表view.setChongdianzhuangId(chongdianzhuang.getId());}//级联表 用户//级联表YonghuEntity yonghu yonghuService.selectById(chongdianzhuangOrder.getYonghuId());if(yonghu ! null){BeanUtils.copyProperties( yonghu , view ,new String[]{ id, createTime, insertTime, updateTime, yonghuId});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表view.setYonghuId(yonghu.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put(data, view);}else {return R.error(511,查不到数据);}}/*** 后端保存*/RequestMapping(/save)public R save(RequestBody ChongdianzhuangOrderEntity chongdianzhuangOrder, HttpServletRequest request){logger.debug(save方法:,,Controller:{},,chongdianzhuangOrder:{},this.getClass().getName(),chongdianzhuangOrder.toString());String role String.valueOf(request.getSession().getAttribute(role));if(false)return R.error(511,永远不会进入);else if(用户.equals(role))chongdianzhuangOrder.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute(userId))));chongdianzhuangOrder.setCreateTime(new Date());chongdianzhuangOrder.setInsertTime(new Date());chongdianzhuangOrderService.insert(chongdianzhuangOrder);return R.ok();}/*** 后端修改*/RequestMapping(/update)public R update(RequestBody ChongdianzhuangOrderEntity chongdianzhuangOrder, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug(update方法:,,Controller:{},,chongdianzhuangOrder:{},this.getClass().getName(),chongdianzhuangOrder.toString());ChongdianzhuangOrderEntity oldChongdianzhuangOrderEntity chongdianzhuangOrderService.selectById(chongdianzhuangOrder.getId());//查询原先数据String role String.valueOf(request.getSession().getAttribute(role)); // if(false) // return R.error(511,永远不会进入); // else if(用户.equals(role)) // chongdianzhuangOrder.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute(userId))));chongdianzhuangOrderService.updateById(chongdianzhuangOrder);//根据id更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Integer[] ids, HttpServletRequest request){logger.debug(delete:,,Controller:{},,ids:{},this.getClass().getName(),ids.toString());ListChongdianzhuangOrderEntity oldChongdianzhuangOrderList chongdianzhuangOrderService.selectBatchIds(Arrays.asList(ids));//要删除的数据chongdianzhuangOrderService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 批量上传*/RequestMapping(/batchInsert)public R save( String fileName, HttpServletRequest request){logger.debug(batchInsert方法:,,Controller:{},,fileName:{},this.getClass().getName(),fileName);Integer yonghuId Integer.valueOf(String.valueOf(request.getSession().getAttribute(userId)));SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);try {ListChongdianzhuangOrderEntity chongdianzhuangOrderList new ArrayList();//上传的东西MapString, ListString seachFields new HashMap();//要查询的字段Date date new Date();int lastIndexOf fileName.lastIndexOf(.);if(lastIndexOf -1){return R.error(511,该文件没有后缀);}else{String suffix fileName.substring(lastIndexOf);if(!.xls.equals(suffix)){return R.error(511,只支持后缀为xls的excel文件);}else{URL resource this.getClass().getClassLoader().getResource(static/upload/ fileName);//获取文件路径File file new File(resource.getFile());if(!file.exists()){return R.error(511,找不到上传文件请联系管理员);}else{ListListString dataList PoiUtil.poiImport(file.getPath());//读取xls文件dataList.remove(0);//删除第一行因为第一行是提示for(ListString data:dataList){//循环ChongdianzhuangOrderEntity chongdianzhuangOrderEntity new ChongdianzhuangOrderEntity(); // chongdianzhuangOrderEntity.setChongdianzhuangId(Integer.valueOf(data.get(0))); //充电桩 要改的 // chongdianzhuangOrderEntity.setYonghuId(Integer.valueOf(data.get(0))); //用户 要改的 // chongdianzhuangOrderEntity.setBuyNumber(Integer.valueOf(data.get(0))); //充电小时 要改的 // chongdianzhuangOrderEntity.setChongdianzhuangOrderTime(sdf.parse(data.get(0))); //预约时间 要改的 // chongdianzhuangOrderEntity.setChongdianzhuangOrderTruePrice(data.get(0)); //实付价格 要改的 // chongdianzhuangOrderEntity.setChongdianzhuangOrderTypes(Integer.valueOf(data.get(0))); //订单类型 要改的 // chongdianzhuangOrderEntity.setInsertTime(date);//时间 // chongdianzhuangOrderEntity.setCreateTime(date);//时间chongdianzhuangOrderList.add(chongdianzhuangOrderEntity);//把要查询是否重复的字段放入map中}//查询是否重复chongdianzhuangOrderService.insertBatch(chongdianzhuangOrderList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,批量插入数据异常请联系管理员);}}/*** 前端列表*/IgnoreAuthRequestMapping(/list)public R list(RequestParam MapString, Object params, HttpServletRequest request){logger.debug(list方法:,,Controller:{},,params:{},this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);PageUtils page chongdianzhuangOrderService.queryPage(params);//字典表数据转换ListChongdianzhuangOrderView list (ListChongdianzhuangOrderView)page.getList();for(ChongdianzhuangOrderView c:list)dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段return R.ok().put(data, page);}/*** 前端详情*/RequestMapping(/detail/{id})public R detail(PathVariable(id) Long id, HttpServletRequest request){logger.debug(detail方法:,,Controller:{},,id:{},this.getClass().getName(),id);ChongdianzhuangOrderEntity chongdianzhuangOrder chongdianzhuangOrderService.selectById(id);if(chongdianzhuangOrder !null){//entity转viewChongdianzhuangOrderView view new ChongdianzhuangOrderView();BeanUtils.copyProperties( chongdianzhuangOrder , view );//把实体数据重构到view中//级联表ChongdianzhuangEntity chongdianzhuang chongdianzhuangService.selectById(chongdianzhuangOrder.getChongdianzhuangId());if(chongdianzhuang ! null){BeanUtils.copyProperties( chongdianzhuang , view ,new String[]{ id, createDate});//把级联的数据添加到view中,并排除id和创建时间字段view.setChongdianzhuangId(chongdianzhuang.getId());}//级联表YonghuEntity yonghu yonghuService.selectById(chongdianzhuangOrder.getYonghuId());if(yonghu ! null){BeanUtils.copyProperties( yonghu , view ,new String[]{ id, createDate});//把级联的数据添加到view中,并排除id和创建时间字段view.setYonghuId(yonghu.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put(data, view);}else {return R.error(511,查不到数据);}}/*** 前端保存*/RequestMapping(/add)public R add(RequestBody ChongdianzhuangOrderEntity chongdianzhuangOrder, HttpServletRequest request){logger.debug(add方法:,,Controller:{},,chongdianzhuangOrder:{},this.getClass().getName(),chongdianzhuangOrder.toString());ChongdianzhuangEntity chongdianzhuangEntity chongdianzhuangService.selectById(chongdianzhuangOrder.getChongdianzhuangId());if(chongdianzhuangEntity null){return R.error(511,查不到该充电桩);}// Double chongdianzhuangNewMoney chongdianzhuangEntity.getChongdianzhuangNewMoney();if(false){}else if(chongdianzhuangEntity.getChongdianzhuangNewMoney() null){return R.error(511,金额/小时不能为空);}else if((chongdianzhuangEntity.getChongdianzhuangKucunNumber() -chongdianzhuangOrder.getBuyNumber())0){return R.error(511,购买数量不能大于库存数量);}//计算所获得积分Double buyJifen 0.0;Integer userId (Integer) request.getSession().getAttribute(userId);YonghuEntity yonghuEntity yonghuService.selectById(userId);if(yonghuEntity null)return R.error(511,用户不能为空);if(yonghuEntity.getNewMoney() null)return R.error(511,用户金额不能为空);double balance yonghuEntity.getNewMoney() - chongdianzhuangEntity.getChongdianzhuangNewMoney()*chongdianzhuangOrder.getBuyNumber();//余额if(balance0)return R.error(511,余额不够支付);chongdianzhuangOrder.setChongdianzhuangOrderTypes(101); //设置订单状态为已预约充电chongdianzhuangOrder.setChongdianzhuangOrderTruePrice(chongdianzhuangEntity.getChongdianzhuangNewMoney()*chongdianzhuangOrder.getBuyNumber()); //设置实付价格chongdianzhuangOrder.setYonghuId(userId); //设置订单支付人idchongdianzhuangOrder.setInsertTime(new Date());chongdianzhuangOrder.setCreateTime(new Date());chongdianzhuangEntity.setChongdianzhuangKucunNumber( chongdianzhuangEntity.getChongdianzhuangKucunNumber() -chongdianzhuangOrder.getBuyNumber());chongdianzhuangService.updateById(chongdianzhuangEntity);chongdianzhuangOrderService.insert(chongdianzhuangOrder);//新增订单//更新第一注册表yonghuEntity.setNewMoney(balance);//设置金额yonghuService.updateById(yonghuEntity);return R.ok();}/*** 取消预约*/RequestMapping(/refund)public R refund(Integer id, HttpServletRequest request){logger.debug(refund方法:,,Controller:{},,id:{},this.getClass().getName(),id);String role String.valueOf(request.getSession().getAttribute(role));ChongdianzhuangOrderEntity chongdianzhuangOrder chongdianzhuangOrderService.selectById(id);//当前表serviceInteger buyNumber chongdianzhuangOrder.getBuyNumber();Integer chongdianzhuangId chongdianzhuangOrder.getChongdianzhuangId();if(chongdianzhuangId null)return R.error(511,查不到该充电桩);ChongdianzhuangEntity chongdianzhuangEntity chongdianzhuangService.selectById(chongdianzhuangId);if(chongdianzhuangEntity null)return R.error(511,查不到该充电桩);Double chongdianzhuangNewMoney chongdianzhuangEntity.getChongdianzhuangNewMoney();if(chongdianzhuangNewMoney null)return R.error(511,充电桩价格不能为空);Integer userId (Integer) request.getSession().getAttribute(userId);YonghuEntity yonghuEntity yonghuService.selectById(userId);if(yonghuEntity null)return R.error(511,用户不能为空);if(yonghuEntity.getNewMoney() null)return R.error(511,用户金额不能为空);Double zhekou 1.0;//计算金额Double money chongdianzhuangEntity.getChongdianzhuangNewMoney() * buyNumber * zhekou;//计算所获得积分Double buyJifen 0.0;yonghuEntity.setNewMoney(yonghuEntity.getNewMoney() money); //设置金额chongdianzhuangEntity.setChongdianzhuangKucunNumber(chongdianzhuangEntity.getChongdianzhuangKucunNumber() buyNumber);chongdianzhuangOrder.setChongdianzhuangOrderTypes(102);//设置订单状态为已取消预约chongdianzhuangOrderService.updateById(chongdianzhuangOrder);//根据id更新yonghuService.updateById(yonghuEntity);//更新用户信息chongdianzhuangService.updateById(chongdianzhuangEntity);//更新订单中充电桩的信息return R.ok();}/*** 在充电中*/RequestMapping(/deliver)public R deliver(Integer id , HttpServletRequest request){logger.debug(refund:,,Controller:{},,ids:{},this.getClass().getName(),id.toString());ChongdianzhuangOrderEntity chongdianzhuangOrderEntity chongdianzhuangOrderService.selectById(id);ChongdianzhuangEntity chongdianzhuangEntitychongdianzhuangService.selectById(chongdianzhuangOrderEntity.getChongdianzhuangId());chongdianzhuangEntity.setChongdianzhuangZhuangtaiTypes(1);chongdianzhuangOrderEntity.setChongdianzhuangOrderTypes(103);//设置订单状态为已在充电中chongdianzhuangOrderService.updateById( chongdianzhuangOrderEntity);chongdianzhuangService.updateById(chongdianzhuangEntity);return R.ok();}/*** 完成充电*/RequestMapping(/receiving)public R receiving(Integer id , HttpServletRequest request){logger.debug(refund:,,Controller:{},,ids:{},this.getClass().getName(),id.toString());ChongdianzhuangOrderEntity chongdianzhuangOrderEntity chongdianzhuangOrderService.selectById(id);ChongdianzhuangEntity chongdianzhuangEntitychongdianzhuangService.selectById(chongdianzhuangOrderEntity.getChongdianzhuangId());chongdianzhuangEntity.setChongdianzhuangZhuangtaiTypes(2);chongdianzhuangOrderEntity.setChongdianzhuangOrderTypes(104);//设置订单状态为完成充电chongdianzhuangOrderService.updateById( chongdianzhuangOrderEntity);chongdianzhuangService.updateById(chongdianzhuangEntity);return R.ok();}} UsersController.java package com.controller;import java.util.Arrays; import java.util.Map;import javax.servlet.http.HttpServletRequest;import com.service.UsersService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.entity.UsersEntity; import com.service.TokenService; import com.utils.MPUtil; import com.utils.PageUtils; import com.utils.R;/*** 登录相关*/ RequestMapping(users) RestController public class UsersController {Autowiredprivate UsersService usersService;Autowiredprivate TokenService tokenService;/*** 登录*/IgnoreAuthPostMapping(value /login)public R login(String username, String password, String captcha, HttpServletRequest request) {UsersEntity user usersService.selectOne(new EntityWrapperUsersEntity().eq(username, username));if(usernull || !user.getPassword().equals(password)) {return R.error(账号或密码不正确);}String token tokenService.generateToken(user.getId(),username, users, user.getRole());R r R.ok();r.put(token, token);r.put(role,user.getRole());r.put(userId,user.getId());return r;}/*** 注册*/IgnoreAuthPostMapping(value /register)public R register(RequestBody UsersEntity user){ // ValidatorUtils.validateEntity(user);if(usersService.selectOne(new EntityWrapperUsersEntity().eq(username, user.getUsername())) !null) {return R.error(用户已存在);}usersService.insert(user);return R.ok();}/*** 退出*/GetMapping(value logout)public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok(退出成功);}/*** 密码重置*/IgnoreAuthRequestMapping(value /resetPass)public R resetPass(String username, HttpServletRequest request){UsersEntity user usersService.selectOne(new EntityWrapperUsersEntity().eq(username, username));if(usernull) {return R.error(账号不存在);}user.setPassword(123456);usersService.update(user,null);return R.ok(密码已重置为123456);}/*** 列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params,UsersEntity user){EntityWrapperUsersEntity ew new EntityWrapperUsersEntity();PageUtils page usersService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put(data, page);}/*** 列表*/RequestMapping(/list)public R list( UsersEntity user){EntityWrapperUsersEntity ew new EntityWrapperUsersEntity();ew.allEq(MPUtil.allEQMapPre( user, user)); return R.ok().put(data, usersService.selectListView(ew));}/*** 信息*/RequestMapping(/info/{id})public R info(PathVariable(id) String id){UsersEntity user usersService.selectById(id);return R.ok().put(data, user);}/*** 获取用户的session用户信息*/RequestMapping(/session)public R getCurrUser(HttpServletRequest request){Integer id (Integer)request.getSession().getAttribute(userId);UsersEntity user usersService.selectById(id);return R.ok().put(data, user);}/*** 保存*/PostMapping(/save)public R save(RequestBody UsersEntity user){ // ValidatorUtils.validateEntity(user);if(usersService.selectOne(new EntityWrapperUsersEntity().eq(username, user.getUsername())) !null) {return R.error(用户已存在);}usersService.insert(user);return R.ok();}/*** 修改*/RequestMapping(/update)public R update(RequestBody UsersEntity user){ // ValidatorUtils.validateEntity(user);usersService.updateById(user);//全部更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Long[] ids){usersService.deleteBatchIds(Arrays.asList(ids));return R.ok();} } ConfigController.java package com.controller;import java.util.Arrays; import java.util.Map;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.entity.ConfigEntity; import com.service.ConfigService; import com.utils.PageUtils; import com.utils.R; import com.utils.ValidatorUtils;/*** 登录相关*/ RequestMapping(config) RestController public class ConfigController{Autowiredprivate ConfigService configService;/*** 列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params,ConfigEntity config){EntityWrapperConfigEntity ew new EntityWrapperConfigEntity();PageUtils page configService.queryPage(params);return R.ok().put(data, page);}/*** 列表*/IgnoreAuthRequestMapping(/list)public R list(RequestParam MapString, Object params,ConfigEntity config){EntityWrapperConfigEntity ew new EntityWrapperConfigEntity();PageUtils page configService.queryPage(params);return R.ok().put(data, page);}/*** 信息*/RequestMapping(/info/{id})public R info(PathVariable(id) String id){ConfigEntity config configService.selectById(id);return R.ok().put(data, config);}/*** 详情*/IgnoreAuthRequestMapping(/detail/{id})public R detail(PathVariable(id) String id){ConfigEntity config configService.selectById(id);return R.ok().put(data, config);}/*** 根据name获取信息*/RequestMapping(/info)public R infoByName(RequestParam String name){ConfigEntity config configService.selectOne(new EntityWrapperConfigEntity().eq(name, faceFile));return R.ok().put(data, config);}/*** 保存*/PostMapping(/save)public R save(RequestBody ConfigEntity config){ // ValidatorUtils.validateEntity(config);configService.insert(config);return R.ok();}/*** 修改*/RequestMapping(/update)public R update(RequestBody ConfigEntity config){ // ValidatorUtils.validateEntity(config);configService.updateById(config);//全部更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Long[] ids){configService.deleteBatchIds(Arrays.asList(ids));return R.ok();} } 声明 本博客适用于广泛的学术和教育用途包括但不限于个人学习、开发设计产品设计。仅供学习参考旨在为读者提供深入理解和学术研究的材料。
http://www.tj-hxxt.cn/news/227436.html

相关文章:

  • 顺义重庆网站建设开发技术网站开发技术
  • 生道网站建设平台天元建设集团有限公司张桂玉丑闻
  • 永康网站优化网店代运营公司
  • 河南做网站最好的公司wordpress删除仪表盘
  • 深圳企业网站制作公司哪家好西宁市网站建设高端
  • 企业门户网站的建设费用如何将wordpress上传
  • 求职招聘网站开发学生个人网页制作素材
  • 网站建设背景是什么批量管理多个wordpress
  • 做科学实验的网站河北建筑培训网实名认证
  • 做兼职用哪个网站好年度关键词有哪些
  • 我的网站模板那些网站可以做宣传
  • 深圳做网站乐云seo费用优惠长春业之峰装饰公司怎么样
  • 网站怎么做搜索引擎商城网站开发实施方案
  • 在电脑新建网站站点asp网站开发视频教程
  • 网站视觉设计规范专业做简历找什么店
  • 杭州门户网站开发做网站 华普花园
  • 网站建设售后协议平台建网站
  • 东营网站建设培训wordpress php5
  • 青岛企业网站开发wordpress jnews
  • 官网网站开发创建网站目录结构应遵循的方法
  • 杭州网站建设文章动漫设计制作专业学什么
  • 西直门网站建设公司如归网络营销推广企业
  • 企业怎么建设自己的网站单页面的网站模板
  • 台州电子商务网站开发镇江seo网站
  • 顺德定制网站设计设计建立企业网站最佳的公司
  • 建设网站需要设备全媒体门户网站建设方案
  • 外贸建站选择哪个服务器好成都网站游戏设计
  • 有建设银行信用卡怎么登陆不了网站网站内置字体
  • 微信分享接口网站开发手机关键词点击排名软件
  • fontawesome 网站2021世界500强