大家好,欢迎来到IT知识分享网。
目录
前言
互联网智慧医院体检平台的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。
与安卓,iOS相比较起来,互联网智慧医院体检平台在流畅性,续航能力,等方方面面都有着很大的优势。这就意味着互联网智慧医院体检平台的设计可以比其他系统更为出色的能力,可以更高效的完成最新的体检项目、套餐信息、健康问卷等功能。
此系统设计主要采用的是JAVA语言来进行开发,采用Spring Boot框架技术,框架分为三层,分别是控制层Controller,业务处理层Service,持久层dao,能够采用多层次管理开发,对于各个模块设计制作有一定的安全性;数据库方面主要采用的是MySQL来进行开发,其特点是稳定性好,数据库存储容量大,处理能力快等优势;服务器采用的是Tomcat服务,能够提供稳固的运行平台,确保系统稳定运行。通过互联网智慧医院体检平台来提升本课题的各项功能的工作效率,提供了一个多样功能,具有良好实用性的互联网智慧医院体检平台。
一、技术栈
末尾获取源码
Spring Boot+JS+ jQuery+Ajax…
二、系统功能介绍
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到互联网智慧医院体检平台的导航条显示首页、体检项目、套餐信息、健康问卷、知识库、公告信息、后台管理、个人中心等。系统首页界面如图4–1所示:
在系统首页点击注册/登录按钮,然后页面跳转到注册登录界面,后来输入信息完成后,单击注册或者登录操作,如图4–2所示:
用户点击体检项目;在体检项目页面的搜索栏输入项目名称,进行查询,然后可以查项目名称、封面、价格、发布时间、点击次数等信息,如果有需要可以点击体检预约或者收藏等操作;如图4–3所示。
用户点击套餐信息;在套餐信息页面的搜索栏输入套餐名称,进行查询,然后可以查套餐编号、套餐名称、封面、价格、发布时间、点击次数等信息,如果有需要可以点击购买套餐或者收藏等操作,如图4–4所示。
用户点击健康问卷;在健康问卷页面的搜索栏输入标题、问卷类型,进行查询,然后可以查标题、问卷类型、截止时间、发布时间、点击次数等信息,如果有需要可以进行问卷提交或者收藏等操作,如图4–5所示。
在个人中心页面可以输入个人详细信息,进行信息更新操作,还可以对我的收藏进行详细操作,如图4–6所示:
管理员通过登录页面填写用户名和密码,完成后进行登录,如图4–7所示。
管理员登录进入互联网智慧医院体检平台的实现可以查看系统首页、个人中心、用户管理、健康档案管理、健康干预管理、体检项目管理、套餐信息管理、体检预约管理、体检报告管理、购买套餐管理、健康问卷管理、问卷提交管理、健康评估管理、知识库管理、分类信息管理、系统管理等信息,如图4–8所示。
管理员点击用户管理;在用户管理页面对账号、姓名、年龄、性别、手机、头像等信息,进行查询,新增或删除用户信息等操作;如图4–9所示。
管理员点击健康档案管理;在健康档案管理页面对账号、姓名、性别、手机、年龄、身高、体重、血压、血糖、心跳、联系人、联系电话、档案文件、健康状态、登记日期等信息,进行查询,新增或删除健康档案等操作;如图4–10所示。
管理员点击健康干预管理;在健康干预管理页面对账号、姓名、干预标题、方案模板、干预时间等信息,进行查询,新增或删除健康干预等操作;如图4–11所示。
管理员点击体检项目管理;在体检项目管理页面对项目名称、封面、价格、发布时间、点击次数等信息,进行查询、新增或删除体检项目等操作;如图4–12所示。
管理员点套餐信息管理;在套餐信息管理页面对套餐编号、套餐名称、封面、价格、发布时间、点击次数等信息,进行查询、新增或删除套餐信息等操作;如图4–13所示。
管理员点击体检预约管理;在体检预约管理页面对预约编号、项目名称、价格、预约时间、账号、姓名、手机、是否支付、审核回复、审核状态、审核等信息,进行查询或删除体检预约等操作;如图4–14所示。
管理员点击体检报告管理;在体检报告管理页面对报告单号、账号、姓名、项目名称、体检报告、登记时间等信息,进行查询或删除体检报告等操作;如图4–15所示。
管理员点击购买套餐管理;在购买套餐管理页面对订单编号、套餐名称、价格、购买时间、账号、姓名、手机、是否支付等信息,进行查询或删除购买套餐等操作;如图4–16所示。
用户点击后台管理,然后页面跳转到用户主页面,可以对系统首页、个人中心、健康档案管理、健康干预管理、体检预约管理、体检报告管理、购买套餐管理、问卷提交管理、健康评估管理等功能进行相应操作,如图4–17所示。
三、核心代码
1、登录模块
package com.controller; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; 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.ResponseBody; import org.springframework.web.bind.annotation.RestController; import com.annotation.IgnoreAuth; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.entity.TokenEntity; import com.entity.UserEntity; import com.service.TokenService; import com.service.UserService; import com.utils.CommonUtil; import com.utils.MD5Util; import com.utils.MPUtil; import com.utils.PageUtils; import com.utils.R; import com.utils.ValidatorUtils; / * 登录相关 */ @RequestMapping("users") @RestController public class UserController{ @Autowired private UserService userService; @Autowired private TokenService tokenService; / * 登录 */ @IgnoreAuth @PostMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username)); if(user==null || !user.getPassword().equals(password)) { return R.error("账号或密码不正确"); } String token = tokenService.generateToken(user.getId(),username, "users", user.getRole()); return R.ok().put("token", token); } / * 注册 */ @IgnoreAuth @PostMapping(value = "/register") public R register(@RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user); if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) { return R.error("用户已存在"); } userService.insert(user); return R.ok(); } / * 退出 */ @GetMapping(value = "logout") public R logout(HttpServletRequest request) { request.getSession().invalidate(); return R.ok("退出成功"); } / * 密码重置 */ @IgnoreAuth @RequestMapping(value = "/resetPass") public R resetPass(String username, HttpServletRequest request){ UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username)); if(user==null) { return R.error("账号不存在"); } user.setPassword(""); userService.update(user,null); return R.ok("密码已重置为:"); } / * 列表 */ @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,UserEntity user){ EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>(); PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params)); return R.ok().put("data", page); } / * 列表 */ @RequestMapping("/list") public R list( UserEntity user){ EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>(); ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew)); } / * 信息 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") String id){ UserEntity user = userService.selectById(id); return R.ok().put("data", user); } / * 获取用户的session用户信息 */ @RequestMapping("/session") public R getCurrUser(HttpServletRequest request){ Long id = (Long)request.getSession().getAttribute("userId"); UserEntity user = userService.selectById(id); return R.ok().put("data", user); } / * 保存 */ @PostMapping("/save") public R save(@RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user); if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) { return R.error("用户已存在"); } userService.insert(user); return R.ok(); } / * 修改 */ @RequestMapping("/update") public R update(@RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user); userService.updateById(user);//全部更新 return R.ok(); } / * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ userService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } }
2、文件上传模块
package com.controller; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import java.util.UUID; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.util.ResourceUtils; import org.springframework.web.bind.annotation.PathVariable; 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 org.springframework.web.multipart.MultipartFile; import com.annotation.IgnoreAuth; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.entity.ConfigEntity; import com.entity.EIException; import com.service.ConfigService; import com.utils.R; / * 上传文件映射表 */ @RestController @RequestMapping("file") @SuppressWarnings({"unchecked","rawtypes"}) public class FileController{ @Autowired private ConfigService configService; / * 上传文件 */ @RequestMapping("/upload") public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception { if (file.isEmpty()) { throw new EIException("上传文件不能为空"); } String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1); File path = new File(ResourceUtils.getURL("classpath:static").getPath()); if(!path.exists()) { path = new File(""); } File upload = new File(path.getAbsolutePath(),"/upload/"); if(!upload.exists()) { upload.mkdirs(); } String fileName = new Date().getTime()+"."+fileExt; File dest = new File(upload.getAbsolutePath()+"/"+fileName); file.transferTo(dest); FileUtils.copyFile(dest, new File("C:\\Users\\Desktop\\jiadian\\springbootl7own\\src\\main\\resources\\static\\upload"+"/"+fileName)); if(StringUtils.isNotBlank(type) && type.equals("1")) { ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile")); if(configEntity==null) { configEntity = new ConfigEntity(); configEntity.setName("faceFile"); configEntity.setValue(fileName); } else { configEntity.setValue(fileName); } configService.insertOrUpdate(configEntity); } return R.ok().put("file", fileName); } / * 下载文件 */ @IgnoreAuth @RequestMapping("/download") public ResponseEntity<byte[]> download(@RequestParam String fileName) { try { File path = new File(ResourceUtils.getURL("classpath:static").getPath()); if(!path.exists()) { path = new File(""); } File upload = new File(path.getAbsolutePath(),"/upload/"); if(!upload.exists()) { upload.mkdirs(); } File file = new File(upload.getAbsolutePath()+"/"+fileName); if(file.exists()){ /*if(!fileService.canRead(file, SessionManager.getSessionUser())){ getResponse().sendError(403); }*/ HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData("attachment", fileName); return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED); } } catch (IOException e) { e.printStackTrace(); } return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR); } }
3、代码封装
package com.utils; import java.util.HashMap; import java.util.Map; / * 返回数据 */ public class R extends HashMap<String, Object> { private static final long serialVersionUID = 1L; public R() { put("code", 0); } public static R error() { return error(500, "未知异常,请联系管理员"); } public static R error(String msg) { return error(500, msg); } public static R error(int code, String msg) { R r = new R(); r.put("code", code); r.put("msg", msg); return r; } public static R ok(String msg) { R r = new R(); r.put("msg", msg); return r; } public static R ok(Map<String, Object> map) { R r = new R(); r.putAll(map); return r; } public static R ok() { return new R(); } public R put(String key, Object value) { super.put(key, value); return this; } }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122149.html