项目实战

您所在的位置:网站首页 黑马结果 项目实战

项目实战

2023-08-18 19:03| 来源: 网络整理| 查看: 265

传智健康项目

2022.3.2-2022.3.16 --BDY

文章目录 传智健康项目项目介绍及技术架构一、项目流程1.后台管理系统编写2.微信端预约系统编写在这里插入图片描述3.图形展示及权限控制4.数据库设计5.项目总框架和配置 二、项目代码收获1.与前端页面交互(springmvc)2.服务层(spring)3.数据访问层(mybatis)4.其他实体类以及操作 三、项目问题1.项目初入杂谈2.关于setmeal中的add方法出现的问题3.关于ordersetting中日期格式问题4.关于ordersetting中mysql时区问题5.关于静态页面展示问题6.关于List的问题7.关于数组空指针异常 的问题8.关于business报表问题 四、总结

项目介绍及技术架构

请添加图片描述

传智健康管理系统是一款应用于健康管理机构的业务系统,实现健康管理机构工作内容可视化、会员管理专业化、健康评估数字化、健康干预流程化、知识库集成化,从而提高健康管理师的工作效率,加强与会员间的互动,增强管理者对健康管理机构运营情况的了解。

请添加图片描述

主要后端技术栈:

Spring,SpringMVC,Mybatis (SSM框架) zookeeper,dubbo,SpringSecrity (分布式与权限) Git,Apache POI,Echarts (版本控制与报表) 腾讯云短信服务,七牛云存储服务,微信开发平台 (第三方服务)

一、项目流程 1.后台管理系统编写

预约管理

在这里插入图片描述

CheckItem

在这里插入图片描述

CheckGroup

在这里插入图片描述

SetMeal

在这里插入图片描述 套餐管理并没有写全,编辑和删除方法没写

OrderSetting

在这里插入图片描述

主要学习内容:

1.主要关于CRUD操作,和基本的SSM项目编写 2.有分页查询的学习 3.关于日历控件和EXCEL文件上传下载 4.有关七牛云服务上传图片

2.微信端预约系统编写 Setmeal全部及详情展示 在这里插入图片描述

在这里插入图片描述

Login及验证码校验

在这里插入图片描述 在这里插入图片描述

主要学习内容:

1.CRUD及腾讯云短信服务 2.登录和短信验证服务 3.微信开发平台操作 4.页面静态化技术

3.图形展示及权限控制

在这里插入图片描述

Report_setmeal

在这里插入图片描述

Report_member

在这里插入图片描述

Report_business

在这里插入图片描述

4.Security

登录验证,赋予权限 在这里插入图片描述 在后台代码中xiaoming没有删除检查项权限 在这里插入图片描述权限管理只是进行初步的学习,只是在系统中简单使用了解流程

主要学习内容:

1.Echarts 有关图形报表的数据的查询上传 2.关于Spring Security的学习使用

4.数据库设计

在这里插入图片描述

##表关联和描述不做展示

5.项目总框架和配置

1.
health_

1.总框架

health_parent

父项,统一管理 在这里插入图片描述

health_backend

后台系统 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

health_common 存放工具和实体类 在这里插入图片描述 health_interface

服务接口 在这里插入图片描述

health_jobs

关于定时组件 在这里插入图片描述

health_M

微信端 在这里插入图片描述

health_servide_provider 存放dubbo中的service服务 在这里插入图片描述 在这里插入图片描述

2.项目pom依赖

主要pom依赖在common,interface依赖于commom,其余依赖interface,parent实现pom文件版本控制。

3.配置

主要配置文件 1.log4j.properties:日志文件 2.springmvc.xml:关于SpringMVC配置,注解驱动,包扫描 3.spring-redis.xml:redis缓存,jedis连接池 4.spring-security.xml:SpringSecurity权限控制 5.web.xml:web容器配置,与前端交互 6.redis.properties:redis启动配置 7.freemarker.properties:网页静态化技术 8.spring-service.xml:服务注册,包扫描 9.spring-dao.xml:mybatis使用JDBC配置 10.spring-tx.xml:用于开启事务支持

二、项目代码收获 1.与前端页面交互(springmvc)

在这里插入图片描述 在这里插入图片描述

项目主要是通过ajax请求来访问,一般get请求是请求数据,将要传给后台的数据放在url中,数据一般是基础类型,post请求一般是向后台传输数据,数据主要放在表单或请求体中。通过观察前端页面可以知道后台需要如何操作 Controller层,通过@RequestMapping 来映射请求,通过@RequestBody来获取传回来的json数据并封装,或者通过@RequestParam来获取一般数据,然后通过@Reference(调用dubbo)调用service层来获取服务。 在返回数据中,一般在实体类entity中添加返回实体类Result,然后返回Result对象。

2.服务层(spring)

项目的Controller层通过调用dubbo服务来访问service层,在service层中主要编写业务代码,然后调用Dao层访问数据库,取得数据 主要注解@Service(interfaceClass = OrderService.class),@Transactional

3.数据访问层(mybatis)

mybatis中Dao接口被调用后会通过dao.xml中的sql语句来查询数据库。主要设计CRUD和多表联查以及条件查询 //mapper动态代理

4.其他实体类以及操作

在编写实体类时需要注意对应数据库中的表,还有分页查询PageQuery,返回结果Result的实体类 @PreAuthorize(“hasAuthority(‘CHECKITEM_DELETE’)”)//权限校验,权限校验注解使用 如何使用分页查询,如何使用日期

三、项目问题 1.项目初入杂谈

//去zookepper服务注册中心查找服务,注解的作用 @Reference

//因为是int所以不用解析不用requestBody public Result delete( Integer id){

//因为RestController ,java数据转为json数据

//明确实现的是哪个服务接口 @Service(interfaceClass = CheckItemService.class)

Mysql版本问题 driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/health?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong"

//checkgroupIds名称要跟前端穿回来的一样 public Result add(@RequestBody Setmeal setmeal,Integer[] checkgroupIds){

2.关于setmeal中的add方法出现的问题

在setmealService中能调用到取到id在Controller中取不到的问题,在前端传回的数据中并没有id,要在调用Dao 的新增方法后才有id值

3.关于ordersetting中日期格式问题

//这里数据库中的数据是2022-03-01; //传过来的数据是2022-3-1; //对ordersetting。html中的月份前面加0 //不加0也能成功,?mybatis会自动判断?==》 sql语句 SELECT * FROM t_ordersetting WHERE orderDate BETWEEN ‘2022-3-4’ AND ‘2022-3-24’;也能查询成功 //说明不需要零,加0不加0都能成功

4.关于ordersetting中mysql时区问题

//这里的date传入后会出现问题,因为数据库的时间是UTC比中国早八个小时,所以时间传过去会变成前一天的时间 时区详解 //https://blog.csdn.net/qq631431929/article/details/51731834 //方法,更改时区hongkong //还有个问题,select错误,insert能操作???

5.关于静态页面展示问题

原视频中的静态页面重新新增数据后并不会覆盖原有页面,需要先删除原有文件,再添加静态页面。 //静态网页并不会覆盖原有静态网页 //解决办法,将原有的文件删除,new File(outputPath + “\” + htmlname).delete();

6.关于List的问题

在这里插入图片描述

//这里list的值会覆盖原来的值????? //https://blog.csdn.net/ChaoticNg/article/details/121669316LIst //在for循环里面Map map = new HashMap(); 即可,每次在堆中创建一个新的map,防止覆盖。 //因为list指向的是map 的地址,所以不管什么时候查list,在map中就只有一个数据

7.关于数组空指针异常 的问题

在这里插入图片描述

//出现数组空指针异常,解决办法先查数量再赋值

8.关于business报表问题

在这里插入图片描述 //这里查询数据库查到的是第一天到之后所有天的数据,不是本月第一天到这一天的数据,有问题 //修改,在数据库查询语句里面限制小于这一天

四、总结

本次项目一共历时16天,总的来说效率很低,正常情况下应该是十天以内。本次项目最主要是练习了基于SSM的CRUD,学习了SpringSecurity和Redis缓存的问题,复习了很多东西,也学习了整个项目的开发流程和开发规范。 包括腾讯云,七牛云,微信端的开发,也简单利用了zookeeper和dubbo构建分布式系统,也学到了分页 查询,日历操作,报表和图文等操作。 项目成功上传到gitee url:https://gitee.com/bian-deyong/project-practice.git



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3