?全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战?
🍅文末获取项目下载方式🍅
一、项目背景介绍:
智慧医药系统(smart-medicine)是一个基于 SpringBoot 开发的标准 Java Web 项目。整体页面非常的简约大气,整合了目前非常火爆的 AIGC 生成式 AI(选用的阿里的通义千问大语言模型)技术充当智能医生,以此提升系统的 B 格,整体来看是一个偏向百科查询类的系统,功能设计的较为简单,便于初学者理解和学习,也适合学校中的项目答辩或者毕业设计。
系统共设计了三个角色:游客、用户、管理员。
游客:尚未进行注册和登录。具备登录注册、疾病、药品的搜索、查询详情等权限。
用户:除了游客的功能权限外,还具备登录、个人资料的修改、登录密码修改、意见反馈、智能医生咨询等权限。
管理员:除了用户的功能权限外,还具备疾病管理、药品管理、反馈管理等权限。
二、项目技术简介:
Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。
5. Bootstrap:Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。 国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。
三、系统功能模块介绍:
四、数据库设计:
1:feedback(feedback)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
name | varchar | NULL | 反馈用户 |
varchar | NULL | 邮箱地址 | |
title | varchar | NULL | 反馈标题 |
content | text | NULL | 反馈内容 |
create_time | datetime | NULL | 创建时间 |
update_time | datetime | NULL | 更新时间 |
2:history(history)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 用户搜索历史主键id |
user_id | int | NULL | 用户ID |
keyword | varchar | NULL | 搜索关键字 |
operate_type | int | NULL | 类型:1搜索,2科目,3药品 |
create_time | datetime | NULL | 创建时间 |
update_time | datetime | NULL | 更新时间 |
3:illness(illness)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 疾病id |
kind_id | int | NULL | 疾病分类ID |
illness_name | varchar | NULL | 疾病名字 |
include_reason | mediumtext | NULL | 诱发因素 |
illness_symptom | mediumtext | NULL | 疾病症状 |
special_symptom | mediumtext | NULL | 特殊症状 |
create_time | datetime | NULL | 创建时间 |
update_time | datetime | NULL | 更新时间 |
4:illness_kind(illness_kind)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键ID |
name | varchar | NULL | 分类名称 |
info | varchar | NULL | 描述 |
create_time | datetime | NULL | 创建时间 |
update_time | datetime | NULL | 更新时间 |
5:illness_medicine(illness_medicine)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 病和药品关联id |
illness_id | int | NULL | 病id |
medicine_id | int | NULL | 药品id |
create_time | datetime | NULL | 创建时间 |
update_time | datetime | NULL | 更新时间 |
6:medicine(medicine)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 药品主键ID |
medicine_name | varchar | NULL | 药的名字 |
keyword | varchar | NULL | 关键字搜索 |
medicine_effect | mediumtext | NULL | 药的功效 |
medicine_brand | varchar | NULL | 药的品牌 |
interaction | mediumtext | NULL | 药的相互作用 |
taboo | mediumtext | NULL | 禁忌 |
us_age | mediumtext | NULL | 用法用量 |
medicine_type | int | NULL | 药的类型,0西药,1中药,2中成药 |
img_path | varchar | NULL | 相关图片路径 |
medicine_price | decimal | NULL | 药的价格 |
create_time | datetime | NULL | 创建时间 |
update_time | datetime | NULL | 更新时间 |
7:pageview(pageview)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 主键id |
pageviews | int | NULL | 浏览量 |
illness_id | int | NULL | 病的id |
8:user(user)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | int | NULL | 用户主键id |
user_account | varchar | NULL | 用户账号 |
user_name | varchar | NULL | 用户的真实名字 |
user_pwd | varchar | NULL | 用户密码 |
user_age | int | NULL | 用户年龄 |
user_sex | varchar | NULL | 用户性别 |
user_email | varchar | NULL | 用户邮箱 |
user_tel | varchar | NULL | 手机号 |
role_status | int | NULL | 角色状态,1管理员,0普通用户 |
img_path | varchar | NULL | 用户头像 |
create_time | datetime | NULL | 创建时间 |
update_time | datetime | NULL | 更新时间 |
五、功能模块:
系统主页:
搜索一下:
疾病百科:
疾病信息:
查找药品:
我的资料:
疾病管理:
药品管理:
智能医生:与智能医生进行交流聊天
六、代码示例:
/**
* 注册
*
* @date 下午1:16 2022/5/1
* @author azhou
*/
@PostMapping("/register")
public RespResult register(User user, String code) {
String email = user.getUserEmail();
if (Assert.isEmpty(email)) {
return RespResult.fail("邮箱不能为空");
}
Map<String, Object> codeData = (Map<String, Object>) session.getAttribute("EMAIL_CODE" + email);
if (codeData == null) {
return RespResult.fail("尚未发送验证码");
}
String sentCode = (String) codeData.get("code");
Calendar calendar = Calendar.getInstance();
calendar.setTime((Date) codeData.get("time"));
calendar.add(Calendar.MINUTE, 5);
if (System.currentTimeMillis() > calendar.getTime().getTime()) {
session.removeAttribute("EMAIL_CODE" + email);
return RespResult.fail("验证码已经超时");
}
if (!sentCode.equals(code)) {
return RespResult.fail("验证码错误");
}
List<User> query = userService.query(User.builder().userAccount(user.getUserAccount()).build());
if (Assert.notEmpty(query)) {
return RespResult.fail("账户已被注册");
}
user.setRoleStatus(0);
user.setImgPath("https://moti-cloud-v2.oss-cn-beijing.aliyuncs.com/Snipaste_2022-05-01_15-37-01.png");
user = userService.save(user);
session.setAttribute("loginUser", user);
return RespResult.success("注册成功", user);
}
/**
* 登录
*
* @date 下午1:16 2022/5/1
* @author azhou
*/
@PostMapping("/login")
public RespResult login(User user) {
List<User> users = userService.query(user);
if (Assert.notEmpty(users)) {
session.setAttribute("loginUser", users.get(0));
return RespResult.success("登录成功");
}
if (Assert.isEmpty(userService.query(User.builder().userAccount(user.getUserAccount()).build()))) {
return RespResult.fail("账户尚未注册");
}
return RespResult.fail("密码错误");
}
七、项目总结:
之前在教材内容读书过程中开发设计技术专业知识,对研究过程的认知,对开发设计设计课程学习,及其如何有效开展系统的市场分析和设计。老师还选了更具有标志性管理方案系统来解读教学过程,课下安排工作使们进行练习。在这段时间,老师还应当掌握系统地完成和测试。应对餐厅点餐管理系统的开发,的脑海里的确有一个清晰的认知。在系统制做及配套文本文件撰写中,按照软件开发流程一步步做好本职工作。
从系统的角度看,依据餐厅点餐管理系统生产,其艰难在于功能清楚、系统构造设计、设计使用性能数据库系统、挑选核心技术进行系统功能等,这种都是自己的难题。针对这一艰难,实行了一些防范措施。当也不知道系统的功能时,在网上找到很多相似的系统,做好记录了一些系统的一般功能,并用了这一系统的高效功能的一部分。除此之外,在在网络上得到了很多关于系统设计的前提知识,包含系统模块划分、设计规范、数据库表的设计和创建,及其程序流程编码的专业技能知识,包含撰写与使用数据和信息加上、删掉和变更编码控制器。在系统序号进行相关功能后,认真的试了系统中所有功能,最后发现自己研发的系统符合规定,能接受。系统功能与系统剖析设计高度一致,系统质量稳定。为应对客户的实际操作不正确,还设有不恰当反馈机制,系统性能稳定。唯一的最大的缺点是系统数据报表的设计不健全,字段名称相匹配的引用类型不正确,一部分系统编码很多地方并没有注解,编码不足简易。
从文本文件的角度看,依据基于JAVA+SpringBoot的线上智能问诊就医平台生产后,应叙述生产过程的需求,包含怎样进行数据分析报告、怎样进行系统设计及其系统功能的具体运作实际效果。在这期间,用了接近一个月的时间来做。要实现院校标准化的文档排版标准,多次在老师的建议下学习办公软件使用和排版设计设计。坚持就是收益。经过长时间的的撰写和优化,的文档终于完成。
总而言之,尽管制做经历了太多阶段,但如果认真完成这件事情,们将在每一个环节得到许多知识,在每一个环节的操作过程中锻练们自己的实践技能。根据该项目的制做,开始明白,许多知识不但来源于书籍,来源于教师在课堂教学中讲的知识,还来源于各种网络学习平台和社会实践。到现在为止,将继续努力,维持新知识的深入学习习惯性
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻
总而言之,尽管制做经历了太多阶段,但如果认真完成这件事情,们将在每一个环节得到许多知识,在每一个环节的操作过程中锻练们自己的实践技能。根据该项目的制做,开始明白,许多知识不但来源于书籍,来源于教师在课堂教学中讲的知识,还来源于各种网络学习平台和社会实践。到现在为止,将继续努力,维持新知识的深入学习习惯性
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取项目下载链接,博主联系方式👇🏻👇🏻👇🏻
链接点击直达:下载链接