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

贵州省建设厅建筑质监站网站wordpress图片加速

贵州省建设厅建筑质监站网站,wordpress图片加速,微信上如何投放广告,安徽省外经建设集团有限公司网站TOC springboot182基于springboot的网上服装商城 第一章 课题背景及研究内容 1.1 课题背景 信息数据从传统到当代#xff0c;是一直在变革当中#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光#xff0c;因为传统信息管理从时效性#xff0c;还是安全性…TOC springboot182基于springboot的网上服装商城 第一章 课题背景及研究内容 1.1 课题背景 信息数据从传统到当代是一直在变革当中突如其来的互联网让传统的信息管理看到了革命性的曙光因为传统信息管理从时效性还是安全性还是可操作性等各个方面来讲遇到了互联网时代才发现能补上自古以来的短板有效的提升管理的效率和业务水平。传统的管理模式时间越久管理的内容越多也需要更多的人来对数据进行整理并且数据的汇总查询方面效率也是极其的低下并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点在互联网时代都可以得到有效的补充。结合先进的互联网技术开发符合需求的软件让数据内容管理不管是从录入的及时性查看的及时性还是汇总分析的及时性都能让正确率达到最高管理更加的科学和便捷。本次开发的网上服装商城实现了收货地址管理、购物车管理、字典管理、服装管理、服装收藏管理、服装评价管理、服装订单管理、公告信息管理、用户管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库有效的对数据进行安全的存储有效的备份对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能使得操作性还是安全性都大大提高让网上服装商城更能从理念走到现实确确实实的让人们提升信息处理效率。 1.2 开发目的和意义 小康时代的到来使得人们满意度上升生活各个方面都产生了许多变化比如办公都有相应软件很多工作都要求员工会操作计算机可以说现在的时代基本被软件覆盖得差不多了软件行业的特征就是大家都在使用软件代替传统手工记载操作软件的出现让我们的生活还有工作又向前翻了新篇章。网上服装商城是一个利用软件形式管理车辆租赁信息的平台。管理员管理租车信息也不再需要用纸张进行信息记录及查询管理操作所有的操作都是利用电脑进行办公用户需要使用密码还有用户名进行系统登录操作按照系统主页界面的各个功能展示进行相关操作无论添加或者是删除拟或是修改查询等操作时间上不需要太多短短几分钟就会搞定。况且软件是不限制办公地点以及办公时间的只要有操作需要随时随地登录系统就可以完成任务。办公效率提高这个不再是难题。公告租赁店对于租车信息的管理操作早就应该进行变革了利用软件管理租车信息节约人力物力成本这是一个新的租车信息管理的创举。 1.3 论文研究内容 本次开发的网上服装商城的论文从下面几个部分进行编写 第一章本章介绍了程序开发背景和目的意义罗列出了论文写作内容信息让我们知道论文编写是如何进展的。 第二章本章主要讲解了系统开发用到的相关技术方面的知识比如SSM技术MySQL数据库知识等内容。帮助人们更好的理解系统技术上面的相关知识。 第三章文章第3章主要介绍了系统开发的可行性问题从经济时间操作等内容上面进行了大致介绍确定系统开发确实可行然后分析了系统的开发流程确定系统需要具备的大概的功能保障系统能够稳定使用和运行。 第四章这个章节主要绘制出了系统功能架构让我们更直观了解网上服装商城的功能对后台数据库表进行了设计还画出了对应的图。 第五章这个章节主要介绍系统各个部分功能具体实现的界面效果。让我们了解到各个部分的功能详细情况。 第六章这个部分主要就是对网上服装商城进行整体测试看看程序是否能够达到用户使用要求程序能否进行验收上交操作。 第二章 相关技术 本次开发网上服装商城使用的是B/S结构模式进行程序开发网上服装商城的数据信息选择MySQL数据库进行存放。 2.1 B/S结构 B/S结构实际上就是Browser/Server浏览器/服务器的缩写B/S结构是目前软件开发中的主流结构大多数软件开发者都采用B/S这样的三层体系结构。采用B/S结构开发的网上服装商城能够大大方便用户使用操作用户随时随地都可以进行网上服装商城的访问操作只需要用户拥有一台会连上网络的计算机就行了并且使用B/S 模式开发的网上服装商城是基于浏览器的操作方式在与用户进行交互以及程序的表现方式上面将会更加吸引人这样的模式也给程序员开发程序降低了难度程序开发成本也会相应缩减不少。我们在使用网上服装商城期间系统也会随着用户需求进行完善升级使用B/S 模式开发的网上服装商城就完全不需要担心因为它的升级速度快升级产生的成本费用很低大多依赖于用户自己在网络上下载最新版本进行安装完成程序更新。下图为B/S结构图。 图2.2 B/S结构图 2.2 MySQL数据库 开发的程序面向用户的只是程序的功能界面让用户操作程序界面的各个功能那么很多人就会问用户使用程序功能生成的数据信息放在哪里的这个就需要涉及到数据库的知识了一般来说程序开发通常就会对常用数据存储工具的特点进行分析比对比如Mysql数据库的特点与优势Access数据库的特点与优势Sqlserver数据库的特点与优势等最终看哪个数据库与需要开发的程序比较匹配也符合程序功能运行需要的数据存储要求比如需要开发商业级别的程序存储的数据对数据库要求较高可以选用Oracle如果只是比较简单的程序对数据存储没有过多要求可以选用微软旗下的Access当开发程序要求数据库占用空间小并能满足程序数据存储要求时就可以考虑Oracle公司从瑞典MySQL AB公司在很早之前就收购过一个关系型数据库它是现在的Mysql数据库。所以网上服装商城后台数据库使用的是MySQL进行数据库方面的开发工作的MySQL它是微软开发的一款平台软件这个软件可以给用户提供高效率的智能数据并且数据信息还是很可靠使用它进行数据存储可以满足大众企业管理各种各样的数据信息的需求。MySQL在MySQL版本里面它是最全面的也是最强大的开发平台 MySQL在许多关键之处都进行了改进的操作它也增加了很多新特性这些改进和更新让公司能够对关键应用程序进行高效运行并且还可以让公司降低发送信息给用户的成本以及降低数据信息管理的基础设施。因此MySQL在公司以及企业中它的地位是非常高的ERP还有OA系统以及公司财务的系统都离不开MySQL在软件开发非常流行的今天MySQL也被用来作为网站开发的网站后台数据库可以说公司使用MySQL进行数据管理不仅节约成本还可以让公司数据信息的管理效率大大提高公司数据存放在MySQL平台上数据信息的安全性也不用担心因为MySQL他可以给数据库里面的日志还有数据文件以及整个数据库进行加密操作另外MySQL还提供在线备份功能这样可以节约存储空间加快数据备份的速度。总之选择MySQL进行在线系统的后台数据库开发是很有优势的。这是个不错的软件选择。 第三章 系统分析 3.1可行性分析 可行性分析从时间经济以及操作和技术上面进行调查和研究确保合理利用信息资源避免在进行程序设计过程中因为考虑不周到所带来的困扰帮助我们更好的进行程序设计。 3.1.1时间可行性 本次进行系统开发我预留了两个月时间来完成从系统的需求分析功能结构设计功能详细设计以及系统测试等环节两个月时间是可以完成程序开发操作的我打算每天早中晚都进行程序的编写操作这期间也包括查阅各种资料信息加上同学以及老师的帮助和指点相信程序开发的时间也会缩短不少。所以时间上是可行的。 3.1.2 经济可行性 网上服装商城的开发平台是IDEA数据库选用MySQL数据库使用的浏览器都是大众浏览器这些软件是不需要收费就能进行下载安装操作的。在系统开发的硬件选择上面我使用的是自己的笔记本进行开发操作。因此在进行系统开发时经济上面无需额外支出。开发出来的程序可以提高办公效率带来的经济效益比较高系统开发的投入产出比很可观。 3.1.3 操作可行性 网上服装商城的界面设计比较简单界面布局根据用户日常使用习惯进行设计网站各个功能在导航栏里面清晰可见网站的数据操作可视化用户操作网站不需要培训就能上手只需要跟着网站功能提示进行操作就行。 3.1.4 技术可行性 作为计算机专业学生在学校期间就学习到许多关于编程方面的知识像SSM技术还有MySQL数据库等知识我对IDEA开发平台以及MySQL数据库的操作也比较熟练所以技术上面还是有一定把握。 3.1.5 法律可行性 自己本人开发的软件和用到的资料来源都是图书馆以及百度文库和百度网页等渠道并不涉及违法。在个人毕业设计上面无论源代码还是论文编写内容不存在抄袭行为。 从上面的经济操作以及时间上面进行的分析得出结论就是这次开发的网上服装商城在开发上面是能够进行的系统开发出来能创造更大的经济效益越早开发升值空间越大。 3.2系统流程分析 网上服装商城的开发也是有对应的流程开发之前必须要进行用户功能需求的分析最后根据功能需求进行网站设计还有数据库相关数据的设计工作此次开发的网上服装商城开发流程如图3.1所示。 图3.1 系统开发流程图 系统开发完成之后会给用户提供登录入口在这个界面用户输入的信息会得到验证通过验证之后才能进去网上服装商城的访问主界面系统登录执行流程如下 图3.2 系统执行流程图 3.3系统功能需求分析 系统的开发离不开前期的需求分析这个阶段就是让程序员知道自己该做什么事情在进行需求分析的时候着重点就是用户对系统的功能要求这个阶段要是分析得很到位系统开发出来投入使用时用户就会发现系统的功能跟用户需求保持一致程序稳定性也是达标的可以说需求分析是决定系统开发成败的关键它主要就是把现实世界进行抽象化然后把抽象化的对象用来构建模型。 网上服装商城的受益群体主要是工作人员该网站能够方便使用者进行数据信息的查找和管理工作本次开发的网站我们设计的界面展示主要分为管理员界面以及用户界面具体界面的功能分布如下。 网上服装商城管理员可以管理用户的基本信息可以管理公告信息可以管理公告信息等。 3.4 系统非功能需求分析 1完整性需求 本次开发的网上服装商城里面记录的数据信息不能保持为空并且数据信息一定要核对正确才行系统里面数据之间存在的联系不能出错不能够张冠李戴数据表里面同一数据在不同数据表里面的显示内容要一样。 2性能需求 用户在操作网上服装商城的各个部分内容时弹出的页面响应时间不能太长最好控制在三秒钟以内最大限制值就是四秒这个是给用户一个好的程序体验。并且系统还要能够承载多人同时在线进行网上服装商城的访问操作。 3界面需求 网上服装商城界面设计上面应该考虑到用户日常操作习惯比如导航栏的设计不能在右边这个完全违背了用户使用网站的操作习惯同时功能导航的字体以及颜色应该比较显眼方便用户容易找寻避免用户在进行功能操作上面浪费太多时间。 4安全性需求 网上服装商城的安全性要有保证给用户一种可靠可以信赖的感觉系统在运行过程中不能总是出错与用户进行功能界面交互时要及时给出反馈信息另外系统要设置登录窗口让不是系统的用户不可以进行系统功能界面的访问操作。系统用户也要经过用户名密码的填写操作才可以进入系统主界面这样就可以保障系统数据信息处于一种安全状态。 第四章 系统设计 4.1 总体功能 网上服装商城是根据需求定制开发开发软件选用IDEA平台配合MySQL数据库进行开发环境的搭建操作网站采用WEB应用程序中最流行的B/S结构进行开发用户访问系统数据仅仅需要在客户端安装谷歌浏览器或者是当下常用浏览器就可以访问网站内容。 4.2 系统模块设计 网上服装商城系统在进行系统中功能模块的划分时采用层次图来进行表示。层次图具有树形结构它能使用矩形框来描绘数据信息。顶层代表的数据结构很完整顶层下面的矩形框表示的数据就是子集数据当然处于最下面的矩形框就是不能再进行细分的数据元素了使用层次方框图描述系统功能能让用户一目了然能够明白系统的功能以及对应功能板块下面的子功能都可以清楚领会。网上服装商城分为管理员和用户两部分操作角色下面将对他们的功能进行阐述。 管理员可以管理用户的基本信息可以管理等功能。管理员功能结构图如下 网上服装商城 系个人信息管理 管公告类型管理 管服装收藏管理 管服装订单管理 大服装管理 修个人信息修改 密 修改密码 新服装新增 是服装修改 删服装删除 删服装收货 申 购买服装 申 服装发货 删公告类型删除 新公告类型新增 修公告类型修改 用服装收藏新增 用服装收藏修改 用服装收藏删除 管公告管理 新公告新增 吸公告修改 删公告删除 图4.1 管理员功能结构图 4.3 数据库设计 开发一个系统也需要提前设计数据库。这里的数据库是相关数据的集合存储在一起的这些数据也是按照一定的组织方式进行的。目前数据库能够服务于多种应用程序则是源于它存储方式最佳具备数据冗余率低的优势。虽然数据库为程序提供信息存储服务但它与程序之间也可以保持较高的独立性。总而言之数据库经历了很长一段时间的发展从最初的不为人知到现在的人尽皆知其相关技术也越发成熟同时也拥有着坚实的理论基础。 4.3.1 数据库概念设计 这部分内容需要借助数据库关系图来完成也需要使用专门绘制数据库关系图的工具比如Visio工具就可以设计E-R图数据库关系图。设计数据库也需要按照设计的流程进行首先还是要根据需求完成实体的确定分析实体具有的特征还有对实体间的关联关系进行确定。最后才是使用E-R模型的表示方法绘制本系统的E-R图。不管是使用亿图软件还是Visio工具对于E-R模型的表示符号都一样通常矩形代表实体实体间存在的关系用菱形符号表示实体的属性也就是实体的特征用符号椭圆表示。最后使用直线将矩形菱形和椭圆等符号连接起来。接下来就开始对本系统的E-R图进行绘制。 1下图是服装评价实体和其具备的属性。 图4.1 服装评价实体属性图 2下图是服装订单实体和其具备的属性。 图4.2 服装订单实体属性图 3下图是用户实体和其具备的属性。 图4.3 用户实体属性图 4下图是服装实体和其具备的属性。 图4.4 服装实体属性图 5下图是公告信息实体和其具备的属性。 图4.5 公告信息实体属性图 6下图是服装收藏实体和其具备的属性。 图4.6 服装收藏实体属性图 7下图是购物车实体和其具备的属性。 图4.7 购物车实体属性图 8下图是收货地址实体和其具备的属性。 图4.8 收货地址实体属性图 4.3.2 数据库表设计 数据库里面的数据表存放的就是各种数据记录我们在进行系统增删改查操作时其实也是在对应数据表里面进行的增删改查操作一个好的数据库能够缩短信息处理时间所以说数据库的设计工作不容小觑数据库里面设置哪些表表里面的字段设计以及字段类型和字段长度等信息都要考虑周到才行比如时间这个字段它的数据类型就不能是int型不然在系统操作中就会弹出输入数据格式不符合要求的报错提示。下面简单介绍网上服装商城的一些数据表。 表4.1收货地址表 序号列名数据类型说明允许空1IdIntid否2yonghu_idInteger创建用户是3address_nameString收货人是4address_phoneString电话是5address_dizhiString地址是6isdefault_typesInteger是否默认地址是7insert_timeDate添加时间是8update_timeDate修改时间是9create_timeDate创建时间是 表4.2购物车表 序号列名数据类型说明允许空1IdIntid否2yonghu_idInteger所属用户是3fuzhuang_idInteger服装是4buy_numberInteger购买数量是5create_timeDate添加时间是6update_timeDate更新时间是7insert_timeDate创建时间是 表4.3字典表 序号列名数据类型说明允许空1IdIntid否2dic_codeString字段是3dic_nameString字段名是4code_indexInteger编码是5index_nameString编码名字是6super_idInteger父字段id是7beizhuString备注是8create_timeDate创建时间是 表4.4服装表 序号列名数据类型说明允许空1IdIntid否2fuzhuang_nameString服装名称是3fuzhuang_photoString服装照片是4fuzhuang_typesInteger服装类型是5fuzhuang_kucun_numberInteger服装库存是6fuzhuang_priceInteger购买获得积分是7fuzhuang_old_moneyBigDecimal服装原价是8fuzhuang_new_moneyBigDecimal现价/积分是9fuzhuang_clicknumInteger点击次数是10fuzhuang_contentString服装简介是11shangxia_typesInteger是否上架是12fuzhuang_deleteInteger逻辑删除是13create_timeDate创建时间是 表4.5服装收藏表 序号列名数据类型说明允许空1IdIntid否2fuzhuang_idInteger服装是3yonghu_idInteger用户是4fuzhuang_collection_typesInteger类型是5insert_timeDate收藏时间是6create_timeDate创建时间是 表4.6服装评价表 序号列名数据类型说明允许空1IdIntid否2fuzhuang_idInteger服装是3yonghu_idInteger用户是4fuzhuang_commentback_textString评价内容是5insert_timeDate评价时间是6reply_textString回复内容是7update_timeDate回复时间是8create_timeDate创建时间是 表4.7服装订单表 序号列名数据类型说明允许空1IdIntid否2fuzhuang_order_uuid_numberString订单号是3address_idInteger收获地址是4fuzhuang_idInteger服装是5yonghu_idInteger用户是6buy_numberInteger购买数量是7fuzhuang_order_true_priceBigDecimal实付价格是8fuzhuang_order_courier_nameString快递公司是9fuzhuang_order_courier_numberString订单快递单号是10fuzhuang_order_typesInteger订单类型是11fuzhuang_order_payment_typesInteger支付类型是12insert_timeDate订单创建时间是13create_timeDate创建时间是 表4.8公告信息表 序号列名数据类型说明允许空1IdIntid否2gonggao_nameString公告名称是3gonggao_photoString公告图片是4gonggao_typesInteger公告类型是5insert_timeDate公告发布时间是6gonggao_contentString公告详情是7create_timeDate创建时间是 表4.9用户表 序号列名数据类型说明允许空1IdIntid否2yonghu_nameString用户姓名是3yonghu_phoneString用户手机号是4yonghu_id_numberString用户身份证号是5yonghu_photoString用户头像是6yonghu_emailString电子邮箱是7yonghu_sum_jifenBigDecimal总积分是8yonghu_new_jifenBigDecimal现积分是9huiyuandengji_typesInteger会员等级是10create_timeDate创建时间是 表4.10管理员表 序号列名数据类型说明允许空1IdIntid否2usernameString用户名是3passwordString密码是4roleString角色是5addtimeDate新增时间是 第五章 系统实现 5.1 管理员功能模块的实现 5.1.1 服装列表 如图5.1显示的就是服装列表页面此页面提供给管理员的功能有查看服装、新增服装、修改服装、删除服装等。 图5.1 服装列表页面 5.1.2 公告信息管理 管理员可以对前台的注册用户的基本信息进行管理可以设置注册用户的账号为冻结或者是在用状态管理员也能选择很多个已经失效的注册用户的信息进行批量删除操作。注册用户管理界面如图5.2所示。 图5.2 公告信息管理页面 5.1.3 公告类型管理 公告类型管理页面显示所有公告类型在此页面既可以让管理员添加新的公告信息类型也能对已有的公告类型信息执行编辑更新失效的公告类型信息也能让管理员快速删除。下图就是公告类型管理页面。公告类型管理界面如图5.3所示。 图5.3公告类型管理界面 AddressServiceImpl.java package com.service.impl;import com.utils.StringUtil; import org.springframework.stereotype.Service; import java.lang.reflect.Field; import java.util.*; import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; import com.utils.PageUtils; import com.utils.Query; import org.springframework.web.context.ContextLoader; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import com.dao.AddressDao; import com.entity.AddressEntity; import com.service.AddressService; import com.entity.view.AddressView;/*** 收货地址 服务实现类*/ Service(addressService) Transactional public class AddressServiceImpl extends ServiceImplAddressDao, AddressEntity implements AddressService {Overridepublic PageUtils queryPage(MapString,Object params) {if(params ! null (params.get(limit) null || params.get(page) null)){params.put(page,1);params.put(limit,10);}PageAddressView page new QueryAddressView(params).getPage();page.setRecords(baseMapper.selectListView(page,params));return new PageUtils(page);}} CartController.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(/cart) public class CartController {private static final Logger logger LoggerFactory.getLogger(CartController.class);Autowiredprivate CartService cartService;Autowiredprivate TokenService tokenService;Autowiredprivate DictionaryService dictionaryService;//级联表serviceAutowiredprivate FuzhuangService fuzhuangService;Autowiredprivate YonghuService yonghuService;/*** 后端列表*/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));if(params.get(orderBy)null || params.get(orderBy)){params.put(orderBy,id);}PageUtils page cartService.queryPage(params);//字典表数据转换ListCartView list (ListCartView)page.getList();for(CartView 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);CartEntity cart cartService.selectById(id);if(cart !null){//entity转viewCartView view new CartView();BeanUtils.copyProperties( cart , view );//把实体数据重构到view中//级联表FuzhuangEntity fuzhuang fuzhuangService.selectById(cart.getFuzhuangId());if(fuzhuang ! null){BeanUtils.copyProperties( fuzhuang , view ,new String[]{ id, createTime, insertTime, updateTime});//把级联的数据添加到view中,并排除id和创建时间字段view.setFuzhuangId(fuzhuang.getId());}//级联表YonghuEntity yonghu yonghuService.selectById(cart.getYonghuId());if(yonghu ! null){BeanUtils.copyProperties( yonghu , view ,new String[]{ id, createTime, insertTime, updateTime});//把级联的数据添加到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 CartEntity cart, HttpServletRequest request){logger.debug(save方法:,,Controller:{},,cart:{},this.getClass().getName(),cart.toString());String role String.valueOf(request.getSession().getAttribute(role));if(false)return R.error(511,永远不会进入);else if(用户.equals(role))cart.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute(userId))));WrapperCartEntity queryWrapper new EntityWrapperCartEntity().eq(yonghu_id, cart.getYonghuId()).eq(fuzhuang_id, cart.getFuzhuangId()).eq(buy_number, cart.getBuyNumber());logger.info(sql语句:queryWrapper.getSqlSegment());CartEntity cartEntity cartService.selectOne(queryWrapper);if(cartEntitynull){cart.setCreateTime(new Date());cart.setInsertTime(new Date());cartService.insert(cart);return R.ok();}else {return R.error(511,商品已添加到购物车);}}/*** 后端修改*/RequestMapping(/update)public R update(RequestBody CartEntity cart, HttpServletRequest request){logger.debug(update方法:,,Controller:{},,cart:{},this.getClass().getName(),cart.toString());String role String.valueOf(request.getSession().getAttribute(role)); // if(false) // return R.error(511,永远不会进入); // else if(用户.equals(role)) // cart.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute(userId))));//根据字段查询是否有相同数据WrapperCartEntity queryWrapper new EntityWrapperCartEntity().notIn(id,cart.getId()).andNew().eq(yonghu_id, cart.getYonghuId()).eq(fuzhuang_id, cart.getFuzhuangId()).eq(buy_number, cart.getBuyNumber());logger.info(sql语句:queryWrapper.getSqlSegment());CartEntity cartEntity cartService.selectOne(queryWrapper);cart.setUpdateTime(new Date());if(cartEntitynull){cartService.updateById(cart);//根据id更新return R.ok();}else {return R.error(511,表中有相同数据);}}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Integer[] ids){logger.debug(delete:,,Controller:{},,ids:{},this.getClass().getName(),ids.toString());cartService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 批量上传*/RequestMapping(/batchInsert)public R save( String fileName){logger.debug(batchInsert方法:,,Controller:{},,fileName:{},this.getClass().getName(),fileName);try {ListCartEntity cartList 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){//循环CartEntity cartEntity new CartEntity(); // cartEntity.setYonghuId(Integer.valueOf(data.get(0))); //所属用户 要改的 // cartEntity.setFuzhuangId(Integer.valueOf(data.get(0))); //服装 要改的 // cartEntity.setBuyNumber(Integer.valueOf(data.get(0))); //购买数量 要改的 // cartEntity.setCreateTime(date);//时间 // cartEntity.setUpdateTime(new Date(data.get(0))); //更新时间 要改的 // cartEntity.setInsertTime(date);//时间cartList.add(cartEntity);//把要查询是否重复的字段放入map中}//查询是否重复cartService.insertBatch(cartList);return R.ok();}}}}catch (Exception e){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));// 没有指定排序字段就默认id倒序if(StringUtil.isEmpty(String.valueOf(params.get(orderBy)))){params.put(orderBy,id);}PageUtils page cartService.queryPage(params);//字典表数据转换ListCartView list (ListCartView)page.getList();for(CartView 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);CartEntity cart cartService.selectById(id);if(cart !null){//entity转viewCartView view new CartView();BeanUtils.copyProperties( cart , view );//把实体数据重构到view中//级联表FuzhuangEntity fuzhuang fuzhuangService.selectById(cart.getFuzhuangId());if(fuzhuang ! null){BeanUtils.copyProperties( fuzhuang , view ,new String[]{ id, createDate});//把级联的数据添加到view中,并排除id和创建时间字段view.setFuzhuangId(fuzhuang.getId());}//级联表YonghuEntity yonghu yonghuService.selectById(cart.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 CartEntity cart, HttpServletRequest request){logger.debug(add方法:,,Controller:{},,cart:{},this.getClass().getName(),cart.toString());WrapperCartEntity queryWrapper new EntityWrapperCartEntity().eq(yonghu_id, cart.getYonghuId()).eq(fuzhuang_id, cart.getFuzhuangId()).eq(buy_number, cart.getBuyNumber());logger.info(sql语句:queryWrapper.getSqlSegment());CartEntity cartEntity cartService.selectOne(queryWrapper);if(cartEntitynull){cart.setCreateTime(new Date());cart.setInsertTime(new Date());cartService.insert(cart);return R.ok();}else {return R.error(511,表中有相同数据);}}} MPUtil.java package com.utils;import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.Map;import org.apache.commons.lang3.StringUtils;import cn.hutool.core.bean.BeanUtil;import com.baomidou.mybatisplus.mapper.Wrapper;/*** Mybatis-Plus工具类*/ public class MPUtil {public static final char UNDERLINE _;//mybatis plus allEQ 表达式转换public static Map allEQMapPre(Object bean,String pre) {MapString, Object map BeanUtil.beanToMap(bean);return camelToUnderlineMap(map,pre);}//mybatis plus allEQ 表达式转换public static Map allEQMap(Object bean) {MapString, Object map BeanUtil.beanToMap(bean);return camelToUnderlineMap(map,);}public static Wrapper allLikePre(Wrapper wrapper,Object bean,String pre) {MapString, Object map BeanUtil.beanToMap(bean);Map result camelToUnderlineMap(map,pre);return genLike(wrapper,result);}public static Wrapper allLike(Wrapper wrapper,Object bean) {Map result BeanUtil.beanToMap(bean, true, true); return genLike(wrapper,result);}public static Wrapper genLike( Wrapper wrapper,Map param) {IteratorMap.EntryString, Object it param.entrySet().iterator();int i0;while (it.hasNext()) {if(i0) wrapper.and();Map.EntryString, Object entry it.next();String key entry.getKey();String value (String) entry.getValue();wrapper.like(key, value);i;}return wrapper;}public static Wrapper likeOrEq(Wrapper wrapper,Object bean) {Map result BeanUtil.beanToMap(bean, true, true); return genLikeOrEq(wrapper,result);}public static Wrapper genLikeOrEq( Wrapper wrapper,Map param) {IteratorMap.EntryString, Object it param.entrySet().iterator();int i0;while (it.hasNext()) {if(i0) wrapper.and();Map.EntryString, Object entry it.next();String key entry.getKey();if(entry.getValue().toString().contains(%)) {wrapper.like(key, entry.getValue().toString().replace(%, ));} else {wrapper.eq(key, entry.getValue());}i;}return wrapper;}public static Wrapper allEq(Wrapper wrapper,Object bean) {Map result BeanUtil.beanToMap(bean, true, true); return genEq(wrapper,result);}public static Wrapper genEq( Wrapper wrapper,Map param) {IteratorMap.EntryString, Object it param.entrySet().iterator();int i0;while (it.hasNext()) {if(i0) wrapper.and();Map.EntryString, Object entry it.next();String key entry.getKey();wrapper.eq(key, entry.getValue());i;}return wrapper;}public static Wrapper between(Wrapper wrapper,MapString, Object params) {for(String key : params.keySet()) {String columnName ;if(key.endsWith(_start)) {columnName key.substring(0, key.indexOf(_start));if(StringUtils.isNotBlank(params.get(key).toString())) {wrapper.ge(columnName, params.get(key));}}if(key.endsWith(_end)) {columnName key.substring(0, key.indexOf(_end));if(StringUtils.isNotBlank(params.get(key).toString())) {wrapper.le(columnName, params.get(key));}}}return wrapper;}public static Wrapper sort(Wrapper wrapper,MapString, Object params) {String order ;if(params.get(order) ! null StringUtils.isNotBlank(params.get(order).toString())) {order params.get(order).toString();}if(params.get(sort) ! null StringUtils.isNotBlank(params.get(sort).toString())) {if(order.equalsIgnoreCase(desc)) {wrapper.orderDesc(Arrays.asList(params.get(sort)));} else {wrapper.orderAsc(Arrays.asList(params.get(sort)));}}return wrapper;}/*** 驼峰格式字符串转换为下划线格式字符串* * param param* return*/public static String camelToUnderline(String param) {if (param null || .equals(param.trim())) {return ;}int len param.length();StringBuilder sb new StringBuilder(len);for (int i 0; i len; i) {char c param.charAt(i);if (Character.isUpperCase(c)) {sb.append(UNDERLINE);sb.append(Character.toLowerCase(c));} else {sb.append(c);}}return sb.toString();}public static void main(String[] ages) {System.out.println(camelToUnderline(ABCddfANM));}public static Map camelToUnderlineMap(Map param, String pre) {MapString, Object newMap new HashMapString, Object();IteratorMap.EntryString, Object it param.entrySet().iterator();while (it.hasNext()) {Map.EntryString, Object entry it.next();String key entry.getKey();String newKey camelToUnderline(key);if (pre.endsWith(.)) {newMap.put(pre newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre . newKey, entry.getValue());}}return newMap;} }
http://www.dnsts.com.cn/news/224369.html

相关文章:

  • 网站优化内链怎么做注册公司网站怎么做
  • 微官网与网站的区别大作业网站建设方案
  • 泉州网站开发济南网站建设模板
  • 个人网站免费域名获取十大网站排行榜
  • 福田专门做网站推广公司十大农业网站
  • 建设工程现行标准查询网站网站开发职业类别代码
  • 做化工贸易要用那些网站推广建立公司网站需要注意什么
  • 网站上面如何加入视频做网站哪些好
  • 做网站要备案吗wordpress如何加友链
  • 织梦网站做自动生成地图网站备案查询 api
  • 网站改版设计费进什么科目wordpress类似软件
  • 所有网站打不开网络营销是什么 能做什么
  • 网站建设合同严瑾南宁行业平台开发公司
  • 休闲食品网站建设策划书网站开发人员招聘广告语
  • 没有ftp wordpress网站建设和网络优化
  • 站长统计app软件大全wordpress发送页面失败
  • 东莞大岭山做网站公司wordpress怎么编程
  • 万网的网站怎么建设360免费wifi驱动
  • 网站建设报价明细模板evus在哪个网站做登记
  • ip段访问网站代码网站如何在手机上显示
  • 手机网站功能分析网站开发用哪个框架
  • 沈阳市城市建设局网站长辛店网站建设
  • ui在线设计网站宝塔wordpress动静分离
  • seo网站推广公司wordpress安装403
  • 泰州市城市建设网站天津自己制作网站
  • 苏州网站设计制作公司辽宁市营商环境建设局网站
  • 网站按钮设计成什么颜色原因合肥网站设计公
  • 建筑公司企业愿景兰州官网seo技巧
  • 以下属于网站seo的内容是ss网站代码
  • 中国网站为什么要备案网站制作入门