hi铁子们这期主要来讲一讲spring boot项目如何去编写,以及给大家提供一个完整的spring boot项目,帮助有需要的兄弟们,如果有用就点个关注吧~
百分百全干货没有广子!!!
来废话少说直接进入正题!!!
代码均为源码,详细!!!
展示效果
springboot医疗项目演示(学生学习适用)
在展示效果中没有展示登录界面(如下,没有账号密码登录可以直接手机号登录,简单来点小b格~,下面会教你们的)
精选界面
项目简介
该项目主要使用:spring boot+Thymeleaf+bootstrap+redis+阿里云短信验证+原生JS (如果这些技术恰好你需要那么这个项目可以来试一试~)
使用软件:IDEA+Navicat(什么数据库都可以)+VM(redis在虚拟机Linux系统中)
阿里云登录注册
第一步:注册/登录阿里云
第二步:搜索短信服务,点击快速学习与测试
第三步:点击申请签名(这里选自用即可,如下)
在第三步申请成功之后才可以进行第四步,申请不成功可以按提示进行更改,写说明时写多一点即可
第四步:点击申请模板
这里还是说明时写详细一点就好通过了~
第五步:在申请成功之后我们会获取到key,这个key等等后续会使用
这样子我们就注册好了一个阿里云短信登录!!!
项目配置
首先创建项目,项目名建议为medical
pom.xml中的配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>medical</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>medical</name>
<description>medical</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<!--<!– JSP–>-->
<!-- <!–引入Spring Boot内嵌的Tomcat对JSP的解析包,不加解析不了jsp页面–>-->
<!-- <!–如果只是使用JSP页面,可以只添加该依赖–>-->
<!-- <dependency>-->
<!-- <groupId>org.apache.tomcat.embed</groupId>-->
<!-- <artifactId>tomcat-embed-jasper</artifactId>-->
<!-- </dependency>-->
<!-- <!–如果使用JSTL必须添加该依赖–>-->
<!-- <!–jstl标签依赖的jar包start–>-->
<!-- <dependency>-->
<!-- <groupId>javax.servlet</groupId>-->
<!-- <artifactId>jstl</artifactId>-->
<!-- </dependency>-->
<!-- <!–如果要使用servlet必须添加该以下两个依赖–>-->
<!-- <!– servlet依赖的jar包–>-->
<!-- <dependency>-->
<!-- <groupId>javax.servlet</groupId>-->
<!-- <artifactId>javax.servlet-api</artifactId>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>javax.servlet.jsp</groupId>-->
<!-- <artifactId>javax.servlet.jsp-api</artifactId>-->
<!-- <version>2.3.1</version>-->
<!-- </dependency>-->
<!-- <!––>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- druid连接-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 分页pageHelper依赖-->
<!-- <dependency>-->
<!-- <groupId>com.github.pagehelper</groupId>-->
<!-- <artifactId>pagehelper-spring-boot-starter</artifactId>-->
<!-- <version>1.2.5</version>-->
<!-- </dependency>-->
<!-- 小辣椒-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 整合html-->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId></dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
</dependency>
<!-- 分页 pageHelper依赖-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 短信验证码-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-dysmsapi20170525</artifactId>
<version>2.0.22</version>
</dependency>
<!-- redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.4.0</version>
</dependency>
<!-- 随机生成器-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.11</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
<!--引入NekoHTML,配合spring.thymeleaf.mode=LEGACYHTML5使用,使Thymeleaf 可以解析非严格html格式的文档-->
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.10.0</version>
</dependency>
<!---->
<!-- 引入org.json所需依赖 -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
<!-- 百度智能提取-->
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.12.0</version>
</dependency>
<dependency>
<groupId>com.baidubce</groupId>
<artifactId>api-explorer-sdk</artifactId>
<version>1.0.3.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
</dependency>
<!-- 拦截-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- j2cache 两层数缓存 -->
<dependency>
<groupId>net.oschina.j2cache</groupId>
<artifactId>j2cache-core</artifactId>
<version>2.8.0-release</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<!-- -->
<resources>
<resource>
<!--源文件位置-->
<directory>src/main/webapp</directory>
<!--指定编译到META-INF/resources,该目录不能随便写-->
<targetPath>META-INF/resources</targetPath>
<!--指定要把哪些文件编译进去,**表示webapp目录及子目录,*.*表示所有文件-->
<includes>
<include>**/*.*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
</build>
</project>
application.yml中的配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql:///medicals?serverTimezone=Asia/Shanghai
username: root
password: root
type: com.alibaba.druid.pool.DruidDataSource
thymeleaf:
cache: false
encoding: UTF-8
mode: LEGACYHTML5
prefix: classpath:/templates/
suffix: .html
check-template-location: true
mybatis:
mapper-locations: classpath:mappers/*.xml
type-aliases-package: com.example.medical.entity
logging:
level:
com.example.medical.dao: debug
server:
port: 6061
MedicalApplication中的配置
package com.example.medical;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.util.ResourceUtils;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@SpringBootApplication
@MapperScan(basePackages = "com.example.medical.dao")
public class MedicalApplication extends WebMvcConfigurationSupport {
public static void main(String[] args) {
SpringApplication.run(MedicalApplication.class, args);
}
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + "/templates/");
registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + "/static/");
super.addResourceHandlers(registry);
}
}
数据库创建
我这里使用的navicat可视化直接创建即可!
一共有这表
后台管理项目数据库会稍微简单一些~~
在创建时表名和字段类型一定与我一致防止后期出bug!!!
下面是数据库开发文档大家可以下载浏览
医疗开发文档(提取码0136)
为了防止大家创建有误我下面用图片进行展示
正式开始编写代码!!!
这是src下的项目结构~
这里呢我直接放源码进行分享,如果有疑问大家可以私信问我(看见就回),如果有看不懂可以单独源码讲解(私信截屏说详细一点问我就好因为上线时间随机),大家评论区可以相互交流相互学习进步~~~
用人格担保无套路!!!百分之一亿肯定是源码!!!全部是我自己爆肝来的!!!
再次申明此项目代码禁止商用只供学习,如有转载请注明来处!!!
铁子们请大家一起帮我监督,如有异议请私信联系我!!!
下面开始正题!!!
代码可以直接c+v,中途报错可以暂时忽略,运行等到全部贴完!!!
entity层
有如下类(其中实体类的属性名在开发文档中有注明):
DaySick
package com.example.medical.entity;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/20 1:16
*/
public class DaySick {
private String day;
private Integer number;
public String getDay() {
return day;
}
public void setDay(String day) {
this.day = day;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
@Override
public String toString() {
return "DaySick{" +
"day='" + day + '\'' +
", number=" + number +
'}';
}
}
Doctor
package com.example.medical.entity;
/**
id 编号
name 医生名称
position 职位
age 年龄
sex 性别
phone 电话
tx_img 头像
bj_img 背景
bio 签名
password 密钥
*/
public class Doctor {
private Integer id;
private String name;
private String positions;
private Integer age;
private String sex;
private String phone;
private String tx_img;
private String bj_img;
private String bio;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPosition() {
return positions;
}
public void setPosition(String position) {
this.positions = position;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getTx_img() {
return tx_img;
}
public void setTx_img(String tx_img) {
this.tx_img = tx_img;
}
public String getBj_img() {
return bj_img;
}
public void setBj_img(String bj_img) {
this.bj_img = bj_img;
}
public String getBio() {
return bio;
}
public void setBio(String bio) {
this.bio = bio;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "Doctor{" +
"id=" + id +
", name='" + name + '\'' +
", positions='" + positions + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
", phone='" + phone + '\'' +
", tx_img='" + tx_img + '\'' +
", bj_img='" + bj_img + '\'' +
", bio='" + bio + '\'' +
", password='" + password + '\'' +
'}';
}
}
Drug
package com.example.medical.entity;
/**
drug 药品表
id 编号
name 药物名称
type 药物类型
num 药物编号
prices 药物价格
seri 药品序列号
*/
public class Drug {
private Integer id;
private String name;
private String type;
private String seri;
private Double prices;
private Integer num;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getSeri() {
return seri;
}
public void setSeri(String seri) {
this.seri = seri;
}
public Double getPrices() {
return prices;
}
public void setPrices(Double prices) {
this.prices = prices;
}
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
@Override
public String toString() {
return "Drug{" +
"id=" + id +
", name='" + name + '\'' +
", type='" + type + '\'' +
", seri='" + seri + '\'' +
", prices=" + prices +
", num=" + num +
'}';
}
}
Meeting
package com.example.medical.entity;
import java.util.Date;
/**
meeting 会议表
id 编号
name 会议名称
lecturer 主持人
star_time 开始时间
end_time 结束时间
phone 咨询电话
*/
public class Meeting {
private Integer id;
private String name;
private Integer lecturer;
private Date star_time;
private Date end_time;
private String phone;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getLecturer() {
return lecturer;
}
public void setLecturer(Integer lecturer) {
this.lecturer = lecturer;
}
public Date getStar_time() {
return star_time;
}
public void setStar_time(Date star_time) {
this.star_time = star_time;
}
public Date getEnd_time() {
return end_time;
}
public void setEnd_time(Date end_time) {
this.end_time = end_time;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "Meeting{" +
"id=" + id +
", name='" + name + '\'' +
", lecturer='" + lecturer + '\'' +
", star_time=" + star_time +
", end_time=" + end_time +
", phone='" + phone + '\'' +
'}';
}
}
Meeting_Doctor
package com.example.medical.entity;
import java.util.Date;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/20 11:25
*/
public class Meeting_Doctor {
private Integer id;
private Integer did;
private String name;
private String doctorname;
private String tx_img;
private String star_time;
private String end_time;
private String phone;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDid() {
return did;
}
public void setDid(Integer did) {
this.did = did;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDoctorname() {
return doctorname;
}
public void setDoctorname(String doctorname) {
this.doctorname = doctorname;
}
public String getTx_img() {
return tx_img;
}
public void setTx_img(String tx_img) {
this.tx_img = tx_img;
}
public String getStar_time() {
return star_time;
}
public void setStar_time(String star_time) {
this.star_time = star_time;
}
public String getEnd_time() {
return end_time;
}
public void setEnd_time(String end_time) {
this.end_time = end_time;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "Meeting_Doctor{" +
"id=" + id +
", did=" + did +
", name='" + name + '\'' +
", doctorname='" + doctorname + '\'' +
", tx_img='" + tx_img + '\'' +
", star_time=" + star_time +
", end_time=" + end_time +
", phone='" + phone + '\'' +
'}';
}
}
My_Date
package com.example.medical.entity;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/2/16 9:51
*/
public class My_Date {
private String year;
private String month;
private String day;
private String time;
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getMonth() {
return month;
}
public void setMonth(String month) {
this.month = month;
}
public String getDay() {
return day;
}
public void setDay(String day) {
this.day = day;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
@Override
public String toString() {
return "My_Date{" +
"year='" + year + '\'' +
", month='" + month + '\'' +
", day='" + day + '\'' +
", time='" + time + '\'' +
'}';
}
}
Notes_1
package com.example.medical.entity;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/25 23:39
*/
public class Notes_1 {
private Integer id;
private String phone;
private String notes;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getNotes() {
return notes;
}
public void setNotes(String notes) {
this.notes = notes;
}
@Override
public String toString() {
return "Notes_1{" +
"id=" + id +
", phone='" + phone + '\'' +
", notes='" + notes + '\'' +
'}';
}
}
NumberAll
package com.example.medical.entity;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/22 2:43
*/
public class NumberAll {
private Integer out_p;
private Integer y_p;
private Integer in_p;
private Integer drug;
public Integer getOut_p() {
return out_p;
}
public void setOut_p(Integer out_p) {
this.out_p = out_p;
}
public Integer getY_p() {
return y_p;
}
public void setY_p(Integer y_p) {
this.y_p = y_p;
}
public Integer getIn_p() {
return in_p;
}
public void setIn_p(Integer in_p) {
this.in_p = in_p;
}
public Integer getDrug() {
return drug;
}
public void setDrug(Integer drug) {
this.drug = drug;
}
@Override
public String toString() {
return "NumberAll{" +
"out_p=" + out_p +
", y_p=" + y_p +
", in_p=" + in_p +
", drug=" + drug +
'}';
}
}
Pre_DS
package com.example.medical.entity;
import java.util.Date;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/21 1:37
*/
public class Pre_DS {
private Integer id;
private String p_name;
private String s_name;
private String d_name;
private String p_time;
private String medicine;
private String drug;
private String address;
private String memo;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getP_name() {
return p_name;
}
public void setP_name(String p_name) {
this.p_name = p_name;
}
public String getS_name() {
return s_name;
}
public void setS_name(String s_name) {
this.s_name = s_name;
}
public String getD_name() {
return d_name;
}
public void setD_name(String d_name) {
this.d_name = d_name;
}
public String getP_time() {
return p_time;
}
public void setP_time(String p_time) {
this.p_time = p_time;
}
public String getMedicine() {
return medicine;
}
public void setMedicine(String medicine) {
this.medicine = medicine;
}
public String getDrug() {
return drug;
}
public void setDrug(String drug) {
this.drug = drug;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
@Override
public String toString() {
return "Pre_DS{" +
"id=" + id +
", p_name='" + p_name + '\'' +
", s_name='" + s_name + '\'' +
", d_name='" + d_name + '\'' +
", p_time='" + p_time + '\'' +
", medicine='" + medicine + '\'' +
", drug='" + drug + '\'' +
", address='" + address + '\'' +
", memo='" + memo + '\'' +
'}';
}
}
Prescription
package com.example.medical.entity;
import java.util.Date;
/**
prescription 处方表
id 编号
did 医生编号
sid 患者编号
name 处方名称
address 现住址
memo 医嘱
medicine 药物
drug 辅助药物
p_time 开具时间
*/
public class Prescription {
private Integer id;
private Integer did;
private Integer sid;
private String name;
private String address;
private String memo;
private String medicine;
private String drug;
private Date p_time;
public Date getP_time() {
return p_time;
}
public void setP_time(Date p_time) {
this.p_time = p_time;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDid() {
return did;
}
public void setDid(Integer did) {
this.did = did;
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public String getMedicine() {
return medicine;
}
public void setMedicine(String medicine) {
this.medicine = medicine;
}
public String getDrug() {
return drug;
}
public void setDrug(String drug) {
this.drug = drug;
}
@Override
public String toString() {
return "Prescription{" +
"id=" + id +
", did=" + did +
", sid=" + sid +
", name='" + name + '\'' +
", address='" + address + '\'' +
", memo='" + memo + '\'' +
", medicine='" + medicine + '\'' +
", drug='" + drug + '\'' +
", p_time=" + p_time +
'}';
}
}
Result
package com.example.medical.entity;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/17 0:21
*/
public class Result {
private Integer status;
private String msg;
private Object data;
public Result() {
}
public Result(Integer status, String msg) {
this.status = status;
this.msg = msg;
}
public Result(Integer status, String msg, Object data) {
this.status = status;
this.msg = msg;
this.data = data;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
}
Sick
package com.example.medical.entity;
import java.util.Date;
/**
患者表sick
id 编号
did 医生编号
name 姓名
sex 性别
tx_img 头像图片
age 年龄
memo 医嘱
phone 电话
symptom 病状
state 是否出院
address 家庭住址
id_num 身份证号(主要!!!通过这个去重)
a入院,b出院时间
*/
public class Sick {
private Integer id;
private Integer did;
private String name;
private String sex;
private String tx_img;
private Integer age;
private String memo;
private String phone;
private String symptom;
private String state;
private String address;
private String id_num ;// 身份证
private Date a_time;
private Date b_time;
public Date getA_time() {
return a_time;
}
public void setA_time(Date a_time) {
this.a_time = a_time;
}
public Date getB_time() {
return b_time;
}
public void setB_time(Date b_time) {
this.b_time = b_time;
}
public String getId_num() {
return id_num;
}
public void setId_num(String id_num) {
this.id_num = id_num;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDid() {
return did;
}
public void setDid(Integer did) {
this.did = did;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getTx_img() {
return tx_img;
}
public void setTx_img(String tx_img) {
this.tx_img = tx_img;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getSymptom() {
return symptom;
}
public void setSymptom(String symptom) {
this.symptom = symptom;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Sick{" +
"id=" + id +
", did=" + did +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", tx_img='" + tx_img + '\'' +
", age=" + age +
", memo='" + memo + '\'' +
", phone='" + phone + '\'' +
", symptom='" + symptom + '\'' +
", state='" + state + '\'' +
", address='" + address + '\'' +
", id_num='" + id_num + '\'' +
", a_time=" + a_time +
", b_time=" + b_time +
'}';
}
}
Sub_Sick
package com.example.medical.entity;
import java.util.Date;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/17 21:24
*/
public class Sub_Sick {
private Integer id;
private String name;
private String tx_img;
private Integer age;
private String symptom;
private String phone;
private String day_time;
private Integer sid;
private String doctor;
private String sex;
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getDoctor() {
return doctor;
}
public void setDoctor(String doctor) {
this.doctor = doctor;
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTx_img() {
return tx_img;
}
public void setTx_img(String tx_img) {
this.tx_img = tx_img;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSymptom() {
return symptom;
}
public void setSymptom(String symptom) {
this.symptom = symptom;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getDay_time() {
return day_time;
}
public void setDay_time(String day_time) {
this.day_time = day_time;
}
@Override
public String toString() {
return "Sub_Sick{" +
"id=" + id +
", name='" + name + '\'' +
", tx_img='" + tx_img + '\'' +
", age=" + age +
", symptom='" + symptom + '\'' +
", phone='" + phone + '\'' +
", day_time='" + day_time + '\'' +
", sid=" + sid +
", doctor='" + doctor + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
Subscribe
package com.example.medical.entity;
import java.util.Date;
/**
预约表 subscribe
id 编号
did 医生编号
sid 患者编号
y_time 预约时间
phone 预约电话
*/
public class Subscribe {
private Integer id;
private Integer did;
private Integer sid;
private Date y_time;
private String phone;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDid() {
return did;
}
public void setDid(Integer did) {
this.did = did;
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public Date getY_time() {
return y_time;
}
public void setY_time(Date y_time) {
this.y_time = y_time;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "Subscribe{" +
"id=" + id +
", did=" + did +
", sid=" + sid +
", y_time=" + y_time +
", phone='" + phone + '\'' +
'}';
}
}
Test
package com.example.medical.entity;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/2/14 9:34
*/
public class Test {
private Integer id;
private String bio;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBio() {
return bio;
}
public void setBio(String bio) {
this.bio = bio;
}
@Override
public String toString() {
return "tset{" +
"id=" + id +
", bio='" + bio + '\'' +
'}';
}
}
dao层
结构如下:
DoctorDao
package com.example.medical.dao;
import com.example.medical.entity.Doctor;
import java.util.List;
public interface DoctorDao {
Doctor getPhone(String phone);//手机号查询用户
Integer addUser(Doctor doctor);//添加用户
Doctor getOne(Integer id);//通过id查询
List<Doctor> getAll();//查询全部医生
Doctor getPassword(Doctor doctor);//查询密钥
Integer setUser(Doctor doctor);//修改用户信息
}
DrugDao
package com.example.medical.dao;
import com.example.medical.entity.Drug;
import java.util.List;
public interface DrugDao {
List<Drug> getAll();//查询全部
Integer setOne(Drug drug);//修改药品
Integer addDrug(Drug drug);//添加药品
Integer delDrug(Integer id);//删除
}
MeetingDao
package com.example.medical.dao;
import com.example.medical.entity.Meeting;
import java.util.Date;
import java.util.List;
public interface MeetingDao {
List<Meeting> getAll();//查询全部会议
List<Meeting> getLecturer(Integer lecturer);//查询主持人会议
List<Meeting> getDay();//查询当天会议
List<Meeting> getOneDay(Date date);//查询对应天数会议
Integer addMeeting(Meeting meeting);//添加会议
Integer del(Integer id);//删除会议
Integer setMeeting(Meeting meeting);//更改会议名称
}
Notes_1Dao
package com.example.medical.dao;
import com.example.medical.entity.Notes_1;
public interface Notes_1Dao {
Notes_1 getOne(Notes_1 notes1);
Integer setOne(Notes_1 notes1);
Integer addOne(Notes_1 notes1);
String getNotes(String phone);
}
PrescriptionDao
package com.example.medical.dao;
import com.example.medical.entity.Prescription;
import java.util.List;
public interface PrescriptionDao {
Integer addOne(Prescription prescription);//添加处方
List<Prescription> getAll();//查看全部处方
Integer delOne(Integer id);//删除处方
List<Prescription> getDid(Integer did);//查看医生开具的处方
}
SickDao
package com.example.medical.dao;
import com.example.medical.entity.Sick;
import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
public interface SickDao {
Integer addUser(Sick sick);//添加患者
List<Sick> getAll();//查询全部患者
Integer setUser(Sick sick);//修改患者信息
Integer setState(Sick sick);//修改患者状态
Sick getOne(Integer id);//查询患者
List<Sick> getDoctor(Integer did);//查询医生对应患者
Sick getID(String id_number);//身份证查询患者
Integer num(String state);//查看患者数量
Integer setInTime(Sick sick);//修改住院时间
Integer setOutTime(Sick sick);//修改出院时间
List<Sick> getState(String state);//查询患者状态
List<Sick> getday(Integer date);//查询对应天数入院的患者 DATE_FORMAT
}
SubscribeDao
package com.example.medical.dao;
import com.example.medical.entity.Subscribe;
import java.util.Date;
import java.util.List;
//预约
public interface SubscribeDao {
List<Subscribe> getAll();//获取全部
Subscribe getSick(Integer sid);//病人id获取
Subscribe getOne(Integer id);//id获取
List<Subscribe> getDoctor(Integer did);//获取医生对应预约
Integer addSub(Subscribe subscribe);//添加预约
Integer setSub(Subscribe subscribe);//修改预约时间
Integer delOne(Integer id);//删除预约
}
TestDao
package com.example.medical.dao;
import com.example.medical.entity.Test;
import java.util.List;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/17 0:26
*/
public interface TestDao {//测试使用
List<Test> getTest();
}
service层
结构如下:
接口
DoctorService
package com.example.medical.service;
import com.example.medical.entity.Doctor;
import com.example.medical.entity.NumberAll;
import com.example.medical.entity.Result;
import java.util.List;
public interface DoctorService {
Result DL(String phone, String code);//登录
Result Zc(Doctor doctor,String code);//注册
Doctor getPhone(String phone);//手机号登录
Integer addUser(Doctor doctor);//添加信息
Doctor getOne(Integer id);//通过id查询
List<Doctor> getAll();//查询全部医生
Doctor getPassword(Integer id,String password);//密钥登录
Integer setUser(Doctor doctor);//修改用户信息
NumberAll getNum();//获取全部数量
}
DrugService
package com.example.medical.service;
import com.example.medical.entity.Drug;
import java.util.List;
public interface DrugService {
List<Drug> getAll();//查询全部
Integer setOne(Drug drug);//修改药品
Integer addDrug(Drug drug);//添加药品
Integer delDrug(Integer id);//删除
}
MeetingService
package com.example.medical.service;
import com.example.medical.entity.Meeting;
import com.example.medical.entity.Meeting_Doctor;
import java.util.Date;
import java.util.List;
public interface MeetingService {
List<Meeting_Doctor> getAll();//查询全部会议
List<Meeting_Doctor> getLecturer(Integer lecturer);//查询主持人会议
List<Meeting_Doctor> getDay();//查询当天会议
List<Meeting_Doctor> getOneDay(Date date);//查询对应天数会议
Integer addMeeting(Meeting meeting);//添加会议
Integer del(Integer id);//删除会议
Integer setMeeting(Integer id,String name);//更改会议名称
}
PrescriptionService
package com.example.medical.service;
import com.example.medical.entity.Pre_DS;
import com.example.medical.entity.Prescription;
import java.util.List;
public interface PrescriptionService {
Integer addOne(Prescription prescription);//添加处方
List<Prescription> getAll();//查看全部处方
Integer delOne(Integer id);//删除处方
List<Prescription> getDid(Integer did);//查看医生开具的处方
List<Pre_DS> getMonth();//查看最近一个月的处方
}
SickService
package com.example.medical.service;
import com.example.medical.entity.Sick;
import com.example.medical.entity.Sub_Sick;
import com.example.medical.entity.Subscribe;
import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
public interface SickService {
List<Sick> getAll();//查询全部患者
Integer a_state();//未出院患者
Integer b_state();//出院患者
String getIn(Integer id);//患者入院
String getOut(Integer id);//患者出院
List<Sick> getDoctor(Integer did);//查询医生对应患者
Integer addUser(Sick sick);//添加患者
Integer setUser(Sick sick);//修改患者信息
Integer setState(Sick sick);//修改患者状态
Sick getOne(Integer id);//查询患者
Sick getID(String id_num);//身份证查询患者
Integer getOneId(String id_num);//查询是否有该患者
List<Sick> getMonth(String month);//该月住院患者
List<Sub_Sick> getSick(List<Subscribe> subscribes);//预约患者信息
List<Sick> getday(Integer date);//查询对应天数入院的患者 DATE_FORMAT
Integer getHave(Integer did,String id_num,String name,Integer age,String address,String phone,String symptom,String sex);//添加预约看是否有该患者,没有就添加上该患者
}
SubscribeService
package com.example.medical.service;
import com.example.medical.entity.Subscribe;
import java.util.Date;
import java.util.List;
public interface SubscribeService {
List<Subscribe> getAll();//获取全部
Subscribe getSick(Integer sid);//病人id获取
Subscribe getOne(Integer id);//id获取
List<Subscribe> getDoctor(Integer did);//获取医生对应预约
Integer addSub(Subscribe subscribe);//添加预约
Integer setSub(Date time,Integer id);//修改预约时间
Integer delOne(Integer id);//删除预约
List<Subscribe> getDay(Date date);//获取对应时间的预约
}
impl实现接口层
DoctorServiceImpl
package com.example.medical.service.impl;
import com.example.medical.dao.DoctorDao;
import com.example.medical.dao.DrugDao;
import com.example.medical.dao.SickDao;
import com.example.medical.dao.SubscribeDao;
import com.example.medical.entity.Doctor;
import com.example.medical.entity.Drug;
import com.example.medical.entity.NumberAll;
import com.example.medical.entity.Result;
import com.example.medical.service.DoctorService;
import com.example.medical.util.NotesImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/17 15:23
*/
@Service
public class DoctorServiceImpl implements DoctorService {
@Autowired
DoctorDao doctorDao;
@Autowired
SickDao sickDao;
@Autowired
DrugDao drugDao;
@Autowired
SubscribeDao subscribeDao;
// @Autowired
// private StringRedisTemplate stringRedisTemplate;
// @Autowired
// private RedisTemplate<String, String> redisTemplate;
@Autowired
NotesImpl notes;
@Override
public Result DL(String phone, String code) {
String s = notes.Notes(phone);
// String s = stringRedisTemplate.opsForValue().get(phone);
Doctor phone1 = doctorDao.getPhone(phone);
System.out.println("==================");
Result result = new Result();
if (s.equals(code)&&phone1!=null){
result.setStatus(0);
result.setMsg("登录成功");
result.setData(phone1);
Integer uid = phone1.getId();
// redisTemplate.opsForValue().set(uid+"", JSON.toJSONString(phone1),1, TimeUnit.DAYS);
return result;
}else {
result.setStatus(1);
result.setMsg("登录失败,请检查手机号/验证码是否正确!!!");
result.setData(null);
return result;
}
}
@Override
public Result Zc(Doctor doctor,String code) {
String phone = doctor.getPhone();
Doctor doctor1 = doctorDao.getPhone(phone);
if (doctor1==null){
doctorDao.addUser(doctor);
Result dl = DL(phone, code);
dl.setMsg("注册成功!!!");
return dl;
}else {
Result result = new Result();
result.setStatus(1);
result.setMsg("手机号已注册!!!");
result.setData(null);
return result;
}
}
@Override
public Doctor getPhone(String phone) {
Doctor phone1 = doctorDao.getPhone(phone);
if (phone1!=null){
return phone1;
}else {
return null;
}
}
@Override
public Integer addUser(Doctor doctor) {
return doctorDao.addUser(doctor);
}
@Override
public Doctor getOne(Integer id) {
return doctorDao.getOne(id);
}
@Override
public List<Doctor> getAll() {
return doctorDao.getAll();
}
@Override
public Doctor getPassword(Integer id,String password) {
Doctor doctor = new Doctor();
doctor.setId(id);
doctor.setPassword(password);
return doctorDao.getPassword(doctor);
}
@Override
public Integer setUser(Doctor doctor) {
return doctorDao.setUser(doctor);
}
@Override
public NumberAll getNum() {
int size = doctorDao.getAll().size();
int size1 = sickDao.getAll().size();
int size2 = subscribeDao.getAll().size();
List<Drug> all = drugDao.getAll();
int size3=0;
for (Drug drug : all) {
Integer num = drug.getNum();
size3+=num;
}
NumberAll numberAll = new NumberAll();
numberAll.setOut_p(size);
numberAll.setDrug(size3);
numberAll.setY_p(size2);
numberAll.setIn_p(size1);
return numberAll;
}
}
DrugServiceImpl
package com.example.medical.service.impl;
import com.example.medical.dao.DrugDao;
import com.example.medical.entity.Drug;
import com.example.medical.service.DrugService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/21 23:27
*/
@Service
public class DrugServiceImpl implements DrugService {
@Autowired
DrugDao drugDao;
@Override
public List<Drug> getAll() {
return drugDao.getAll();
}
@Override
public Integer setOne(Drug drug) {
return drugDao.setOne(drug);
}
@Override
public Integer addDrug(Drug drug) {
return drugDao.addDrug(drug);
}
@Override
public Integer delDrug(Integer id) {
return drugDao.delDrug(id);
}
}
MeetingServiceImpl
package com.example.medical.service.impl;
import com.example.medical.dao.DoctorDao;
import com.example.medical.dao.MeetingDao;
import com.example.medical.entity.Doctor;
import com.example.medical.entity.Meeting;
import com.example.medical.entity.Meeting_Doctor;
import com.example.medical.service.MeetingService;
import com.example.medical.util.Get_MyDate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/20 11:23
*/
@Service
public class MeetingServiceImpl implements MeetingService {
@Autowired
MeetingDao meetingDao;
@Autowired
DoctorDao doctorDao;
@Override
public List<Meeting_Doctor> getAll() {
List<Meeting> all = meetingDao.getAll();
ArrayList<Meeting_Doctor> doctors = new ArrayList<>();
for (Meeting meeting : all) {
Meeting_Doctor doctor1 = new Meeting_Doctor();
Doctor doctor = doctorDao.getOne(meeting.getLecturer());
doctor1.setId(meeting.getId());
doctor1.setDid(meeting.getLecturer());
doctor1.setName(meeting.getName());
doctor1.setDoctorname(doctor.getName());
doctor1.setTx_img(doctor.getTx_img());
doctor1.setPhone(meeting.getPhone());
doctor1.setEnd_time(meeting.getEnd_time().toString());
doctor1.setStar_time(meeting.getStar_time().toString());
doctors.add(doctor1);
}
return doctors;
}
@Override
public List<Meeting_Doctor> getLecturer(Integer lecturer) {
List<Meeting> all = meetingDao.getLecturer(lecturer);
ArrayList<Meeting_Doctor> doctors = new ArrayList<>();
for (Meeting meeting : all) {
Meeting_Doctor doctor1 = new Meeting_Doctor();
Doctor doctor = doctorDao.getOne(meeting.getLecturer());
doctor1.setId(meeting.getId());
doctor1.setDid(meeting.getLecturer());
doctor1.setName(meeting.getName());
doctor1.setDoctorname(doctor.getName());
doctor1.setTx_img(doctor.getTx_img());
doctor1.setPhone(meeting.getPhone());
doctor1.setEnd_time(meeting.getEnd_time().toString());
doctor1.setStar_time(meeting.getStar_time().toString());
doctors.add(doctor1);
}
return doctors;
}
@Override
public List<Meeting_Doctor> getDay() {
List<Meeting> list = meetingDao.getDay();
ArrayList<Meeting_Doctor> doctors = new ArrayList<>();
for (Meeting meeting : list) {
Meeting_Doctor doctor1 = new Meeting_Doctor();
Doctor doctor = doctorDao.getOne(meeting.getLecturer());
doctor1.setId(meeting.getId());
doctor1.setDid(meeting.getLecturer());
doctor1.setName(meeting.getName());
doctor1.setDoctorname(doctor.getName());
doctor1.setTx_img(doctor.getTx_img());
doctor1.setPhone(meeting.getPhone());
doctor1.setEnd_time(meeting.getEnd_time().toString());
doctor1.setStar_time(meeting.getStar_time().toString());
doctors.add(doctor1);
}
return doctors;
}
@Override
public List<Meeting_Doctor> getOneDay(Date date) {
List<Meeting> day = meetingDao.getOneDay(date);
ArrayList<Meeting_Doctor> doctors = new ArrayList<>();
for (Meeting meeting : day) {
Meeting_Doctor doctor1 = new Meeting_Doctor();
Doctor doctor = doctorDao.getOne(meeting.getLecturer());
doctor1.setId(meeting.getId());
doctor1.setDid(meeting.getLecturer());
doctor1.setName(meeting.getName());
doctor1.setDoctorname(doctor.getName());
doctor1.setTx_img(doctor.getTx_img());
doctor1.setPhone(meeting.getPhone());
doctor1.setEnd_time(meeting.getEnd_time().toString());
doctor1.setStar_time(meeting.getStar_time().toString());
doctors.add(doctor1);
}
return doctors;
}
@Override
public Integer addMeeting(Meeting meeting) {
return meetingDao.addMeeting(meeting);
}
@Override
public Integer del(Integer id) {
return meetingDao.del(id);
}
@Override
public Integer setMeeting(Integer id, String name) {
Meeting meeting = new Meeting();
meeting.setId(id);
meeting.setName(name);
return meetingDao.setMeeting(meeting);
}
}
PrescriptionServiceImpl
package com.example.medical.service.impl;
import com.example.medical.dao.PrescriptionDao;
import com.example.medical.dao.SickDao;
import com.example.medical.entity.Pre_DS;
import com.example.medical.entity.Prescription;
import com.example.medical.entity.Sick;
import com.example.medical.service.PrescriptionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/21 1:05
*/
@Service
public class PrescriptionServiceImpl implements PrescriptionService {
@Autowired
PrescriptionDao prescriptionDao;
@Autowired
SickDao sickDao;
@Override
public Integer addOne(Prescription prescription) {
return prescriptionDao.addOne(prescription);
}
@Override
public List<Prescription> getAll() {
return prescriptionDao.getAll();
}
@Override
public Integer delOne(Integer id) {
return prescriptionDao.delOne(id);
}
@Override
public List<Prescription> getDid(Integer did) {
return prescriptionDao.getDid(did);
}
@Override
public List<Pre_DS> getMonth() {
List<Pre_DS> ds = new ArrayList<>();
List<Prescription> list = prescriptionDao.getAll();
for (Prescription prescription : list) {
Pre_DS pre_ds = new Pre_DS();
long time = new Date().getTime()-(1000*60*60*24*7);
long time1 = prescription.getP_time().getTime();
if (time1>time){
pre_ds.setP_name(prescription.getName());
Integer sid = prescription.getSid();
Sick sick = sickDao.getOne(sid);
pre_ds.setS_name(sick.getName());
pre_ds.setAddress(sick.getPhone());
ds.add(pre_ds);
}
}
return ds;
}
}
SickServiceImpl
package com.example.medical.service.impl;
import com.example.medical.dao.SickDao;
import com.example.medical.entity.Sick;
import com.example.medical.entity.Sub_Sick;
import com.example.medical.entity.Subscribe;
import com.example.medical.service.DoctorService;
import com.example.medical.service.SickService;
import com.example.medical.util.Get_MyDate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.xml.crypto.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/17 17:09
*/
@Service
public class SickServiceImpl implements SickService {
@Autowired
SickDao sickDao;
@Autowired
Get_MyDate myDate;
@Autowired
DoctorService doctorService;
@Override
public List<Sick> getAll() {
return sickDao.getAll();
}
@Override
public Integer a_state() {
return sickDao.num("住院");
}
@Override
public Integer b_state() {
return sickDao.num("出院");
}
@Override
public String getIn(Integer id) {
Sick sick = sickDao.getOne(id);
if (sick!=null){
sick.setState("住院");
sickDao.setState(sick);
Date date = new Date();
Sick s1 = new Sick();
s1.setId(sick.getId());
s1.setA_time(date);
sickDao.setInTime(sick);
sickDao.setOutTime(sick);
return "ok";
}
return null;
}
@Override
public String getOut(Integer id) {
Sick sick = sickDao.getOne(id);
if (sick!=null){
sick.setState("出院");
sickDao.setState(sick);
Date date = new Date();
Sick s1 = new Sick();
s1.setId(sick.getId());
s1.setB_time(date);
sickDao.setOutTime(sick);
return "ok";
}
return null;
}
@Override
public List<Sick> getDoctor(Integer did) {
return sickDao.getDoctor(did);
}
@Override
public Integer addUser(Sick sick) {
return sickDao.addUser(sick);
}
@Override
public Integer setUser(Sick sick) {
return sickDao.setUser(sick);
}
@Override
public Integer setState(Sick sick) {
return sickDao.setState(sick);
}
@Override
public Sick getOne(Integer id) {
return sickDao.getOne(id);
}
@Override
public Sick getID(String id_number) {
return sickDao.getID(id_number);
}
@Override
public Integer getOneId(String id_num) {
Sick id = sickDao.getID(id_num);
int i=0;
if (id!=null){
i++;
}
return i;//0不存在,1存在
}
@Override
public List<Sick> getMonth(String month) {
List<Sick> sicks = sickDao.getState("住院");
List<Sick> sicks1 = new ArrayList<>();
for (Sick sick : sicks) {
String month1 = myDate.getOne(sick.getA_time()).getMonth();
if (month.equals(month1)){
sicks1.add(sick);
}
}
return sicks1;
}
@Override
public List<Sub_Sick> getSick(List<Subscribe> subscribes) {
// System.out.println(subscribes+"@@@@@@@@@@@@@@@@@");
ArrayList<Sub_Sick> sicks = new ArrayList<>();
for (Subscribe subscribe : subscribes) {
Integer id = subscribe.getSid();
Sick sick = sickDao.getOne(id);
Sub_Sick sub_sick = new Sub_Sick();
sub_sick.setId(subscribe.getId());
sub_sick.setName(sick.getName());
sub_sick.setAge(sick.getAge());
sub_sick.setPhone(sick.getPhone());
sub_sick.setSymptom(sick.getSymptom());
sub_sick.setTx_img(sick.getTx_img());
sub_sick.setDoctor(doctorService.getOne(subscribe.getDid()).getName());
sub_sick.setSex(sick.getSex());
String time = myDate.getOne(subscribe.getY_time()).getTime();
sub_sick.setDay_time(time);
sub_sick.setSid(subscribe.getSid());
sicks.add(sub_sick);
}
return sicks;
}
@Override
public List<Sick> getday(Integer date) {
return sickDao.getday(date);
}
@Override
public Integer getHave(Integer did,String id_num, String name, Integer age, String address, String phone, String symptom, String sex) {
Integer oneId = getOneId(id_num);
if (oneId==0){
Sick sick = new Sick();
Date date = new Date();
sick.setName(name);
sick.setA_time(date);
sick.setDid(did);
sick.setAge(age);
sick.setAddress(address);
sick.setPhone(phone);
sick.setSymptom(symptom);
sick.setSex(sex);
return sickDao.addUser(sick);
}
return oneId;
}
}
SubscribeServiceImpl
package com.example.medical.service.impl;
import com.example.medical.dao.SubscribeDao;
import com.example.medical.entity.Subscribe;
import com.example.medical.service.SubscribeService;
import com.example.medical.util.Get_MyDate;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/17 18:16
*/
@Service
public class SubscribeServiceImpl implements SubscribeService {
@Autowired
SubscribeDao subscribeDao;
@Autowired
Get_MyDate getMyDate;
@Override
public List<Subscribe> getAll() {
return subscribeDao.getAll();
}
@Override
public Subscribe getSick(Integer sid) {
return subscribeDao.getSick(sid);
}
@Override
public Subscribe getOne(Integer id) {
return subscribeDao.getOne(id);
}
@Override
public List<Subscribe> getDoctor(Integer did) {
return subscribeDao.getDoctor(did);
}
@Override
public Integer addSub(Subscribe subscribe) {
return subscribeDao.addSub(subscribe);
}
@Override
public Integer setSub(Date time, Integer id) {
Subscribe subscribe = new Subscribe();
subscribe.setY_time(time);
subscribe.setId(id);
return subscribeDao.setSub(subscribe);
}
@Override
public Integer delOne(Integer id) {
return subscribeDao.delOne(id);
}
@Override
public List<Subscribe> getDay(Date date) {
List<Subscribe> all = subscribeDao.getAll();
String day = getMyDate.getOne(date).getDay()+getMyDate.getOne(date).getMonth()+getMyDate.getOne(date).getYear();
List<Subscribe> list = new ArrayList<Subscribe>();
for (Subscribe subscribe : all) {
String day1 = getMyDate.getOne(subscribe.getY_time()).getDay()+getMyDate.getOne(subscribe.getY_time()).getMonth()+getMyDate.getOne(subscribe.getY_time()).getYear();;
if (day.equals(day1)){
list.add(subscribe);
}
}
return list;
}
}
controller层
有如下类:
DoctorController
package com.example.medical.controller;
import com.alibaba.fastjson.JSON;
import com.example.medical.entity.*;
import com.example.medical.service.*;
import com.example.medical.util.GetFile;
import com.example.medical.util.Get_MyDate;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import javax.xml.crypto.Data;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/17 16:07
*/
@Controller
public class DoctorController {
@Autowired
DoctorService doctorService;
@Autowired
SickService sickService;
@Autowired
SubscribeService subscribeService;
@Autowired
PrescriptionService prescriptionService;
@Autowired
MeetingService meetingService;
@Autowired
GetFile getFile;
@Autowired
Get_MyDate myDate;
@RequestMapping("/getuser")
public String getUser(Map map, @CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
List<Doctor> doctorList = doctorService.getAll();//医生列表
Date date = new Date();
System.out.println(date);
String month = myDate.getOne(date).getMonth();
List<Sick> sickMonth = sickService.getMonth(month);//本月患者
List<Subscribe> day = subscribeService.getDay(new Date());//当天预约
List<Pre_DS> pre_ds = prescriptionService.getMonth();
List<Sub_Sick> sick = sickService.getSick(day);
List<Meeting_Doctor> day1 = meetingService.getDay();
NumberAll num = doctorService.getNum();
map.put("num",num);
map.put("days",day1);
map.put("sicks",sick);
map.put("pds",pre_ds);
map.put("doctor",doctor);
map.put("lists",doctorList);
map.put("sickMonth",sickMonth);
return "index_2";
}
@RequestMapping("/getAll")
public String getAll(Map map, @CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
List<Doctor> list = doctorService.getAll();
map.put("doctor",doctor);
map.put("lists",list);
return "doctor-list";
}
@RequestMapping("setMy")
public String setmy(@CookieValue("uid") String value, Doctor doctor, String A, MultipartFile f1) throws IOException {
String path="E:/千峰/代码/medical/src/main/resources/static/imgs";
String path2="E:/千峰/代码/medical/target/classes/static/imgs";
String str = getFile.getOne(f1, path, path2);
System.out.println(doctor);
System.out.println(A+"{}{{{{{{{{{{{{{{");
int uid = Integer.parseInt(value);
doctor.setId(uid);
doctor.setTx_img(str);
doctor.setPosition(A);
Integer integer = doctorService.setUser(doctor);
return "redirect:/getuser";
}
@RequestMapping("/getUid")
@ResponseBody
public Result getUid(@CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Result result = new Result();
result.setData(uid);
return result;
}
}
DrugController
package com.example.medical.controller;
import com.example.medical.entity.Doctor;
import com.example.medical.entity.Drug;
import com.example.medical.entity.Result;
import com.example.medical.service.DoctorService;
import com.example.medical.service.DrugService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
import java.util.Map;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/21 23:36
*/
@Controller
public class DrugController {
@Autowired
DrugService drugService;
@Autowired
DoctorService doctorService;
@RequestMapping("/addDrug")
public String add(Map map, @CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
return "add-drug";
}
@RequestMapping("/addDOne")
public String addOne( Drug drug){
Integer integer = drugService.addDrug(drug);
return "redirect:/addDrug";
}
@RequestMapping("/getAllD")
public String getAll(Map map, @CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
return "notice-list";
}
@RequestMapping("/delDrug")
private String del(Integer id){
Integer integer = drugService.delDrug(id);
return "redirect:/getAllD";
}
@RequestMapping("/getAllDrug")
@ResponseBody
public Result getAllD(){
List<Drug> all = drugService.getAll();
Result result = new Result();
result.setData(all);
return result;
}
@RequestMapping("/setDrug")
public String setDrug(Drug drug,Integer id){
System.out.println(drug);
drug.setId(id);
drugService.setOne(drug);
return "redirect:/getAllD";
}
}
First
package com.example.medical.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/21 12:13
*/
@Controller
@RequestMapping("/aa")
public class First {
@RequestMapping("/test")
public String func01(){
System.out.println("Controller测试");
return "/first";
}
}
IndexController
package com.example.medical.controller;
import com.example.medical.entity.Doctor;
import com.example.medical.entity.Result;
import com.example.medical.service.DoctorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/17 0:18
*/
@Controller
public class IndexController {
@Autowired
DoctorService doctorService;
@RequestMapping("/medical")
public String medical() {
return "index_1";
}
@RequestMapping("/medical_zc")
public String medicalzc() {
return "index_zc";
}
@RequestMapping("/dl")//登录
@ResponseBody
public Result Dl(String phone, String code, HttpServletResponse resp) {
System.out.println(code+"!!!!!!!!!!!!!!!!!!!!!!!!!!");
Result result = doctorService.DL(phone, code);
if (result.getStatus()==0) {
Doctor doctor = (Doctor) result.getData();
Cookie uid = new Cookie("uid", doctor.getId() + "");//将登录信息存入
resp.addCookie(uid);
}
return result;
}
@RequestMapping("/zc")
@ResponseBody
public Result Zc(String phone, String code, HttpServletResponse resp,String name,String bio,Integer age){
Doctor doctor = new Doctor();
doctor.setPhone(phone);
doctor.setAge(age);
doctor.setBio(bio);
doctor.setName(name);
Result result = doctorService.Zc(doctor, code);
if (result.getStatus()==0) {
Doctor doctor1 = (Doctor) result.getData();
Cookie uid = new Cookie("uid", doctor1.getId() + "");//将登录信息存入
resp.addCookie(uid);
}
return result;
}
}
LockController
package com.example.medical.controller;
import com.alibaba.fastjson.JSON;
import com.baidubce.http.HttpMethodName;
import com.baidubce.model.ApiExplorerRequest;
import com.example.medical.entity.Doctor;
import com.example.medical.entity.My_Date;
import com.example.medical.entity.Result;
import com.example.medical.service.DoctorService;
import com.github.tomakehurst.wiremock.common.Json;
import com.google.gson.JsonArray;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/21 18:18
*/
@Controller
public class LockController {
// private static String url="http://quan.suning.com/getSysTime.do";
// @RequestMapping("/getTime")
// public Result getTime(){
//
// }
@Autowired
DoctorService doctorService;
@RequestMapping("/Mylock")
public String Mylock(Map map,@CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
return "lock-screen";
}
@RequestMapping("/time")
@ResponseBody
public Result getTime(){
Date date = new Date();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf1.format(date);
// System.out.println(format);
String[] s = format.split(" ");
// System.out.println(s[1]);
My_Date my_date = new My_Date();
my_date.setDay(s[0]);
String[] split = s[1].split(":");
String time= split[0]+":"+ split[1];
my_date.setTime(s[1]);
Result result = new Result();
result.setData(my_date);
return result;
}
@RequestMapping("/getPassword")
@ResponseBody
public Result getPass(String password,@CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor password1 = doctorService.getPassword(uid, password);
Result result = new Result();
if (password1!=null){
result.setStatus(0);
result.setMsg("密钥输入正确!");
}else {
result.setStatus(1);
result.setMsg("密钥输入错误!");
}
return result;
}
}
MeetingController
package com.example.medical.controller;
import com.example.medical.entity.Doctor;
import com.example.medical.entity.Meeting;
import com.example.medical.entity.Meeting_Doctor;
import com.example.medical.entity.Result;
import com.example.medical.service.DoctorService;
import com.example.medical.service.MeetingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/20 11:35
*/
@Controller
public class MeetingController {
@Autowired
MeetingService meetingService;
@Autowired
DoctorService doctorService;
@RequestMapping("/addmeeting")
public String getmeeting(Map map, @CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
List<Meeting_Doctor> doctors = meetingService.getDay();
map.put("meetings",doctors);
map.put("doctor",doctor);
return "add-schedule";
}
@RequestMapping("/getaddmeeting")
public String getaddmeeting( @CookieValue("uid") String value,String phone,String name,String star_time,String end_time) throws ParseException {
int uid = Integer.parseInt(value);
Meeting meeting = new Meeting();
meeting.setName(name);
meeting.setLecturer(uid);
meeting.setPhone(phone);
String[] time = star_time.split("T");
String times=time[0]+" "+time[1];
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date star_time1 = ft.parse(times);
meeting.setStar_time(star_time1);
String[] time1 = end_time.split("T");
String times1=time1[0]+" "+time1[1];
SimpleDateFormat ft1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date end_time1 = ft1.parse(times1);
meeting.setEnd_time(end_time1);
Integer integer = meetingService.addMeeting(meeting);
return "redirect:/addmeeting";
}
@RequestMapping("/getMeeting")
public String getMeeting2(Map map, @CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
return "schedule-list";
}
@RequestMapping("/getAllMeeting")
@ResponseBody
public Result getMeeting(){
List<Meeting_Doctor> all = meetingService.getAll();
Result result = new Result();
result.setData(all);
return result;
}
@RequestMapping("/delMeeting")
public String delMeeting(Integer id){
Integer del = meetingService.del(id);
return "redirect:/getMeeting";
}
@RequestMapping("/setMeeting")
public String setMeeting(String name,Integer id){
Integer integer = meetingService.setMeeting(id, name);
return "redirect:/getMeeting";
}
}
MsgController
package com.example.medical.controller;
import com.example.medical.entity.Notes_1;
import com.example.medical.entity.Result;
import com.example.medical.util.GetMsg;
import com.example.medical.util.Msg;
import com.example.medical.util.NotesImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/2/14 12:14
*/
//验证码发送
@RestController
@RequestMapping("/msg")
public class MsgController {
@Autowired
private StringRedisTemplate stringRedisTemplate;
@Autowired
NotesImpl notes;
@RequestMapping("/getOne")
public Result getOne(String number) throws ExecutionException, InterruptedException {
GetMsg getMsg = new GetMsg();
String code = getMsg.getOne();
Notes_1 notes_1 = new Notes_1();
notes_1.setNotes(code);
notes_1.setPhone(number);
notes.getAll(notes_1);
// stringRedisTemplate.opsForValue().set(number,code,300, TimeUnit.SECONDS);
Msg.send(number,code);
Result result = new Result();
result.setStatus(0);
result.setMsg("发送成功");
result.setData("验证码发送成功!");
System.out.println("向手机号:"+number+"发送了验证码:"+code);
return result;
}
}
PrescriptionController
package com.example.medical.controller;
import com.example.medical.entity.*;
import com.example.medical.service.DoctorService;
import com.example.medical.service.PrescriptionService;
import com.example.medical.service.SickService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/21 1:07
*/
@Controller
public class PrescriptionController {
@Autowired
DoctorService doctorService;
@Autowired
SickService sickService;
@Autowired
PrescriptionService prescriptionService;
@RequestMapping("/getPre")
public String getPre(Map map,@CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
return "add-bed";
}
@RequestMapping("/addPre")
public String addPre(@CookieValue("uid") String value,String name,Integer age,String id_num,String address,String phone,String medicine,String drug,String memo){
System.out.println("来了!!!!");
int uid = Integer.parseInt(value);
Sick sick = sickService.getID(id_num);
if (sick!=null){
Prescription prescription = new Prescription();
prescription.setDid(uid);
prescription.setSid(sick.getId());
prescription.setAddress(address);
prescription.setMedicine(medicine);
prescription.setP_time(new Date());
prescription.setDrug(drug);
prescription.setName(name);
prescription.setMemo(memo);
prescriptionService.addOne(prescription);
return "redirect:getPre";
}
return "redirect:getPre";
}
@RequestMapping("/getAllPre")
@ResponseBody
public Result getAll(){
List<Prescription> list = prescriptionService.getAll();
ArrayList<Pre_DS> ds = new ArrayList<>();
for (Prescription prescription : list) {
Pre_DS pre_ds = new Pre_DS();
pre_ds.setId(prescription.getId());
pre_ds.setAddress(prescription.getAddress());
pre_ds.setD_name(doctorService.getOne(prescription.getDid()).getName());
pre_ds.setP_name(prescription.getName());
pre_ds.setS_name(sickService.getOne(prescription.getSid()).getName());
pre_ds.setDrug(prescription.getDrug());
pre_ds.setMedicine(prescription.getMedicine());
pre_ds.setP_time(prescription.getP_time().toString());
pre_ds.setMemo(prescription.getMemo());
ds.add(pre_ds);
}
Result result = new Result();
result.setData(ds);
return result;
}
@RequestMapping("getAllP")
public String getA(Map map,@CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
return "bed-list";
}
@RequestMapping("/delPre")
public String delPre(Integer id){
Integer integer = prescriptionService.delOne(id);
return "redirect:getAllP";
}
}
SickController
package com.example.medical.controller;
import com.example.medical.entity.*;
import com.example.medical.service.DoctorService;
import com.example.medical.service.SickService;
import com.example.medical.util.GetFile;
import com.example.medical.util.Get_MyDate;
import org.checkerframework.checker.units.qual.A;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/19 19:36
*/
@Controller
public class SickController {
@Autowired
DoctorService doctorService;
@Autowired
GetFile getFile;
@Autowired
Get_MyDate myDate;
@Autowired
SickService sickService;
@RequestMapping("/addSick")
public String AddSick(Map map, @CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
// System.out.println("来了!!!");
return "add-patient";
}
@RequestMapping("/getadd_sick")
public String getAdd(Sick sick, MultipartFile f1, @CookieValue("uid") String value) throws IOException {
int uid = Integer.parseInt(value);
System.out.println(sick+"!!!!!!!!!!!!!!!!");
String path="E:/千峰/代码/medical/src/main/resources/static/imgs/sick";
String path2="E:/千峰/代码/medical/target/classes/static/imgs/sick";
String str = getFile.getOne(f1, path, path2);
Sick sick1 = new Sick();
sick1.setName(sick.getName());
sick1.setAge(sick.getAge());
sick1.setPhone(sick.getPhone());
sick1.setSex(sick.getSex());
sick1.setDid(uid);
sick1.setSymptom(sick.getSymptom());
sick1.setId_num(sick.getId_num());
sick1.setA_time(new Date());
sick1.setAddress(sick.getAddress());
sick1.setTx_img(str);
Integer integer = sickService.addUser(sick1);
return "redirect:/addSick";
}
@RequestMapping("/getSick")
public String getSick(Map map,@CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
return "patient-list";
}
@RequestMapping("/getAllSick")
@ResponseBody
public Result getallsick(){
System.out.println("来了老弟!!!");
List<Sick> all = sickService.getAll();
Result result = new Result();
result.setData(all);
// var str="[\"<img src=\'static/imgs/sick/"+element.tx_img+"\'> "+element.name+"\","+
// "\""+element.sex+"\","+ "\""+element.symptom+"\"," +"\""+element.age+"\","+ "\""+element.state+"\","+ "\""+element.phone+"\","
// +"\"<a href='#'><i class='fas fa-pencil-alt ms-text-primary'></i></a> <a href='a'><i class='far fa-trash-alt ms-text-danger'></i></a>\"]"
// s=s+str+"";
return result;
}
@RequestMapping("/getdays")
@ResponseBody
public Result getdays(){
List<DaySick> days = new ArrayList<>();
Date date = new Date();
//格式转换
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
//设置当前时间
calendar.setTime(date);
//增加一天
for (int i = 1; i <=9; i++) {
calendar.add(Calendar.DATE,-1);
Date time = calendar.getTime();
int size = sickService.getday(i).size();
int size2 = sickService.getday(i-1).size();
String format = f.format(calendar.getTime());
String[] s = format.split(" ");
String[] split = s[0].split("-");
String day=split[1]+"-"+split[2];
DaySick daySick = new DaySick();
daySick.setDay(day);
daySick.setNumber(size-size2);
days.add(daySick);
}
Result result = new Result();
result.setData(days);
result.setStatus(0);
return result;
}
@RequestMapping("/SetSick")
public String setSick(Integer id,Sick sick, MultipartFile f1) throws IOException {
String path="E:/千峰/代码/medical/src/main/resources/static/imgs/sick";
String path2="E:/千峰/代码/medical/target/classes/static/imgs/sick";
String str = getFile.getOne(f1, path, path2);
sick.setId(id);
sick.setTx_img(str);
Integer integer = sickService.setUser(sick);
return "redirect:/getSick";
}
@RequestMapping("/lookSick")
@ResponseBody
public Result lookOne(Integer id){
Sick one = sickService.getOne(id);
Result result = new Result();
result.setData(one);
return result;
}
}
SubscribeController
package com.example.medical.controller;
import com.example.medical.entity.*;
import com.example.medical.service.DoctorService;
import com.example.medical.service.SickService;
import com.example.medical.service.SubscribeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/20 17:32
*/
@Controller
public class SubscribeController {
@Autowired
SubscribeService subscribeService;
@Autowired
SickService sickService;
@Autowired
DoctorService doctorService;
@RequestMapping("/addsub")
public String addsub(@CookieValue("uid") String value, Map map){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
return "add-appointment";
}
@RequestMapping("/addyy1")
public String AddOne(@CookieValue("uid") String value, String name, String sex, String address, String symptom, String phone, String id_num, Integer age, String aaa) throws ParseException {
System.out.println(aaa+"!!!!"+id_num);
String[] time = aaa.split("T");
String times=time[0]+" "+time[1];
System.out.println(aaa);
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date y_time1 = ft.parse(times);
// System.out.println("come!!!!");
int uid = Integer.parseInt(value);
Sick ss = sickService.getID(id_num);
System.out.println(ss+"!!!!!!!!!!!!!");
if (ss!=null){
System.out.println("@@@@@@@@@@@@@");
Sick sick = new Sick();
// name=#{name},age=#{age},phone=#{phone},address=#{address},symptom=#{symptom}
sick.setAddress(address);
sick.setName(name);
sick.setAge(age);
sick.setPhone(phone);
sick.setSymptom(symptom);
sick.setId(ss.getId());
System.out.println(symptom+"!@#$%");
Integer integer = sickService.setUser(sick);
sickService.getIn(ss.getId());
Subscribe subscribe = new Subscribe();
//sid,symptom,y_time,phone,did
subscribe.setSid(ss.getId());
subscribe.setY_time(y_time1);
subscribe.setPhone(phone);
subscribe.setDid(uid);
subscribeService.addSub(subscribe);
return "redirect:/addsub";
}else {
Sick sick = new Sick();
sick.setDid(uid);
sick.setSex(sex);
sick.setA_time(y_time1);
sick.setAge(age);
sick.setAddress(address);
sick.setSymptom(symptom);
sick.setPhone(phone);
sick.setId_num(id_num);
sick.setName(name);
Integer integer = sickService.addUser(sick);
Sick s1 = sickService.getID(id_num);
Subscribe subscribe = new Subscribe();
//sid,symptom,y_time,phone,did
subscribe.setSid(s1.getId());
subscribe.setY_time(y_time1);
subscribe.setPhone(phone);
subscribe.setDid(uid);
subscribeService.addSub(subscribe);
return "redirect:/addsub";
}
}
@RequestMapping("/getSub")
public String getsub(Map map,@CookieValue("uid") String value){
int uid = Integer.parseInt(value);
Doctor doctor = doctorService.getOne(uid);//个人信息
map.put("doctor",doctor);
return "appointment-list";
}
@RequestMapping("/getSubAll")
@ResponseBody
public Result getSubAll(){
List<Subscribe> list = subscribeService.getAll();
List<Sub_Sick> sick = sickService.getSick(list);
Result result = new Result();
result.setData(sick);
return result;
}
@RequestMapping("/setSub")
public String setSub(String y_time,Integer id) throws ParseException {
String[] time = y_time.split("T");
String times=time[0]+" "+time[1];
System.out.println(y_time);
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date y_time1 = ft.parse(times);
subscribeService.setSub(y_time1,id);
return "redirect:/getSub";
}
@RequestMapping("/delSub")
public String delSub(Integer id){
Integer integer = subscribeService.delOne(id);
return "redirect:/getSub";
}
}
TextChat
package com.example.medical.controller;
import com.example.medical.entity.Doctor;
import com.example.medical.service.DoctorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2022/10/8 11:44
*/
@Controller
public class TextChat {
@RequestMapping("/chat")
public String webs(){
return "webSocketTest";
}
}
util层
结构如图:
Bk_Check
package com.example.medical.util;
import com.baidu.aip.contentcensor.AipContentCensor;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.context.annotation.Configuration;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/2/16 17:01
*/
@Configuration
public class Bk_Check {
public static final String APP_ID = "28262827";
public static final String API_KEY = "OlGdPpyptPljH0HMINTyOiW5";
public static final String SECRET_KEY = "V3UYQgs7dEiDLD4SOBk2ExNwNA0pte1d";
//进行审核
public Integer BkAudit(String name,String bio) throws JSONException {
String str = name +"。"+ bio;
//设置APPID/AK/SK
System.out.println(str);
// 初始化一个AipImageCensor
AipContentCensor client = new AipContentCensor(APP_ID, API_KEY, SECRET_KEY);
// 调用接口
String txt = str;
JSONObject res = client.textCensorUserDefined(txt);
System.out.println(res.toString(2));
String a = (res.toString(2).split(",")[0]).split(":")[1];
System.out.println(a);
if (a.equals(" \"合规\"")){
return 1;//合规
}else {
return 0;//不合规
}
}
}
ChatEntPoint
package com.example.medical.util;
/**
* author: 等风来
* datetime:2022/9/29 9:22
*/
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.CrossOrigin;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArraySet;
//用注解 @ServerEndPoint
@ServerEndpoint("/websocket/chat/{name}")
@Component
//定义websocket服务器端,它的功能主要是将目前的类定义成一个websocket服务器端。注解的值将被用于监听用户连接的终端访问URL地址
//如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf4j;可以直接调用log.info
@Slf4j
@CrossOrigin //只要加上这个注解即可解决socket跨域问题
public class ChatEntPoint {
//用于构建用户名称,是前缀
//private static final String GUEST_PREFIX="访客";
//定义后面的名称,是个不重复的索引值,从0开始。 AtomicInteger AtomicInteger
//private static final AtomicInteger connectionIds=new AtomicInteger(0);
//定义Set 集合,用于存放客户端连接, 不重复
public static void aaa(){
System.out.println("进来了!!!!!!");
}
private static final Set<ChatEntPoint> clientSet=new CopyOnWriteArraySet<>();
public static ConcurrentHashMap<String, ChatEntPoint> webSocketSet = new ConcurrentHashMap<String, ChatEntPoint>();
//设置为静态的 公用一个消息map ConcurrentMap为线程安全的map HashMap不安全
private static ConcurrentMap<String, Map<String, List<Object>>> messageMap=new ConcurrentHashMap<>();
//显示的昵称
private String nickName;
private String name;
//session 对象,用于接收
private Session session;
//构造方法,初始化 每一个 ChatEntPoint 对象的 nickName,构建成 访问+数字的形式
/*public ChatEntPoint(){
//后面生成一个不重复的数字
nickName=GUEST_PREFIX+connectionIds.getAndIncrement();
}*/
// OnOpen ,表示每一个客户端连接时的事件
@OnOpen
public void start(Session session,@PathParam(value = "name") String name){
this.name=name;
//单独接收一个客户端与服务器端的Session
this.session=session;
//添加到这里面
//clientSet.add(this);
webSocketSet.put(name,this);
System.out.println(name+"加入");
//用于发送消息
//broadcast(message);
if(messageMap.get(name)!=null) {
//说明在用户没有登录的时候有人给用户发送消息
//该用户所有未收的消息
Map<String, List<Object>> maps=messageMap.get(name);//所有人的所有离线消息
Set<Map.Entry<String, List<Object>>> entries = maps.entrySet();
for (Map.Entry<String, List<Object>> entry : entries) {
String key = entry.getKey();//某个人
List<Object> value = entry.getValue();//他的所有消息
if(value!=null){
for (Object o : value) {
System.out.println(key + ":" + (String)o);
String msg=(String)o+"/"+key;
try {
webSocketSet.get(name).session.getBasicRemote().sendText(msg);
} catch (IOException e) {
e.printStackTrace();
}
//appointSending(name, (String)o+"/"+key);
}
}
}
messageMap.remove(name);
}
}
//OnClose 注解, 每一个关闭时的事件
@OnClose
public void end(){
//移除掉
//clientSet.remove(this);
webSocketSet.remove(name);
//格式化消息
//String message=String.format("【%s %s】",name,"已经下线");
//发送消息
//broadcast(message);
}
//OnMessage, 接收客户端发送过来的消息的事件 OnMessage OnMessage
@OnMessage
public void incoming(String message){ //abcd /2
System.out.println(message);// 我爱你/4
int i = message.lastIndexOf("/"); //
String receiveName = message.substring(i+1, message.length());//接收人的id
message = message.substring(0, i);
System.out.println(receiveName+","+message);
//单独消息
appointSending(receiveName,message);
}
// 服务器端错误时的,事件处理
@OnError
public void onError(Throwable t) throws Throwable{
System.out.println("WebScoket 服务端错误"+t.getMessage());
}
public void appointSending(String name, String message) {
if(webSocketSet.get(name)==null){//用户不在线
System.out.println("不在线");
if (messageMap.get(name) == null) {//在公用消息的map中查询有无这个人之前的map
//用户不在线时 第一次给他发消息
Map<String, List<Object>> maps = new HashMap<>();//创建一个map 用来存该用户的所有消息
List<Object> list = new ArrayList<>();//该用户发的离线消息的集合
list.add(message);//消息放入消息集合
maps.put(this.name, list);//当前发送消息的人和他的信息
messageMap.put(name, maps);
} else {
//不在线再次发送消息
//给用户的所有消息
Map<String, List<Object>> listObject = messageMap.get(name);
List<Object> objects = new ArrayList<>();
if (listObject.get(this.name) != null) {//这个用户给收消息的这个用户发过消息
//此用户给该用户发送过离线消息(此用户给该用户发过的所有消息)
objects = listObject.get(this.name);
objects.add(message);//加上这次发送的消息
//maps.put(sendUserId, objects);
//替换原来的map
listObject.put(this.name, objects);
} else {//这个用户没给该用户发送过离线消息
objects.add(message);
listObject.put(this.name, objects);
}
messageMap.put(name, listObject);
}
}else{//在线直接发送
try {
// 123/tjy
webSocketSet.get(name).session.getBasicRemote().sendText(message+"/"+this.name);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
ChatOne
package com.example.medical.util;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArraySet;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2022/10/8 16:54
*/
//@ServerEndpoint(value="/websocket/chat/{name}")
public class ChatOne {
//定义Set 集合,用于存放客户端连接, 不重复
private static final Set<ChatOne> clientSet=new CopyOnWriteArraySet<>();
public static ConcurrentHashMap<String, ChatOne> webSocketSet = new ConcurrentHashMap<String, ChatOne>();
//设置为静态的 公用一个消息map ConcurrentMap为线程安全的map HashMap不安全
private static ConcurrentMap<String, Map<String, List<Object>>> messageMap=new ConcurrentHashMap<>();
private String name;
//session 对象,用于接收
private Session session;
@OnOpen
public void start(Session session,@PathParam(value = "name") String name){
this.name=name;
//单独接收一个客户端与服务器端的Session
this.session=session;
webSocketSet.put(name,this);
System.out.println("id:"+name+"加入会话");
if(messageMap.get(name)!=null) {
//说明在用户没有登录的时候有人给用户发送消息
//该用户所有未收的消息
Map<String, List<Object>> maps=messageMap.get(name);//所有人的所有离线消息
Set<Map.Entry<String, List<Object>>> entries = maps.entrySet();
for (Map.Entry<String, List<Object>> entry : entries) {
String key = entry.getKey();//某个人
List<Object> value = entry.getValue();//他的所有消息
if(value!=null){
for (Object o : value) {
System.out.println(key + ":" + (String)o);
String msg=(String)o+"/"+key;
try {
webSocketSet.get(name).session.getBasicRemote().sendText(msg);
} catch (IOException e) {
e.printStackTrace();
}
//appointSending(name, (String)o+"/"+key);
}
}
}
messageMap.remove(name);
}
}
@OnClose
public void end(){
//移除掉
//clientSet.remove(this);
webSocketSet.remove(name);
//格式化消息
//String message=String.format("【%s %s】",name,"已经下线");
//发送消息
//broadcast(message);
}
//OnMessage, 接收客户端发送过来的消息的事件 OnMessage OnMessage
@OnMessage
public void incoming(String message){ //abcd /2
System.out.println(message);// 我爱你/4
int i = message.lastIndexOf("/"); //
String receiveName = message.substring(i+1, message.length());//接收人的名字
message = message.substring(0, i);
System.out.println(receiveName+","+message);
//群消息
//broadcast(filteredMessage);
//单独消息
appointSending(receiveName,message);
}
// 服务器端错误时的,事件处理
@OnError
public void onError(Throwable t) throws Throwable{
System.out.println("WebScoket 服务端错误"+t.getMessage());
}
public void appointSending(String name, String message) {
if(webSocketSet.get(name)==null){//用户不在线
System.out.println("不在线");
if (messageMap.get(name) == null) {//在公用消息的map中查询有无这个人之前的map
//用户不在线时 第一次给他发消息
Map<String, List<Object>> maps = new HashMap<>();//创建一个map 用来存该用户的所有消息
List<Object> list = new ArrayList<>();//该用户发的离线消息的集合
list.add(message);//消息放入消息集合
maps.put(this.name, list);//当前发送消息的人和他的信息
messageMap.put(name, maps);
} else {
//不在线再次发送消息
//给用户的所有消息
Map<String, List<Object>> listObject = messageMap.get(name);
List<Object> objects = new ArrayList<>();
if (listObject.get(this.name) != null) {//这个用户给收消息的这个用户发过消息
//此用户给该用户发送过离线消息(此用户给该用户发过的所有消息)
objects = listObject.get(this.name);
objects.add(message);//加上这次发送的消息
//maps.put(sendUserId, objects);
//替换原来的map
listObject.put(this.name, objects);
} else {//这个用户没给该用户发送过离线消息
objects.add(message);
listObject.put(this.name, objects);
}
messageMap.put(name, listObject);
}
}else{//在线直接发送
try {
// 123/tjy
webSocketSet.get(name).session.getBasicRemote().sendText(message+"/"+this.name);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Delimgs
package com.example.medical.util;
import org.springframework.context.annotation.Configuration;
import java.io.File;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/2/16 14:27
*/
@Configuration
public class Delimgs {//删除文件
public void delOne(String fname){
String path = "E:/千峰/代码/bs_ZOTS/src/main/resources/static/imgs/"+fname;
File file = new File(path);
if (file.isFile() && file.exists()) {
file.delete();
}
}
}
Get_MyDate
package com.example.medical.util;
import com.example.medical.entity.My_Date;
import org.springframework.context.annotation.Configuration;
import java.util.Date;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/2/16 9:53
*/
@Configuration
public class Get_MyDate {
public My_Date getOne(Date date){
String str=date.toString();
// String str="Wed Feb 08 17:26:45 CST 2023";
// Calendar cal = Calendar.getInstance();
// Date time = cal.getTime();
// System.out.println("当期时间: " + time);
String[] s = str.split(" ");
My_Date myDate = new My_Date();
myDate.setMonth(s[1]);
myDate.setDay(s[2]);
myDate.setYear(s[5]);
myDate.setTime(s[3]);
// System.out.println(myDate);
return myDate;
}
// @Test
// public void aaa(){
// Calendar cal = Calendar.getInstance();
// Date time = cal.getTime();
// System.out.println("当期时间: " + time);
// getOne(time);
// }
}
GetFile
package com.example.medical.util;
import org.apache.commons.io.FilenameUtils;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import static org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/2/16 17:41
*/
@Configuration
public class GetFile {
public String getOne(MultipartFile m1,String path,String path2) throws IOException {
String str = null;
String img_1 = m1.getOriginalFilename();
String s1 = randomAlphanumeric(8);
String ext = FilenameUtils.getExtension(img_1);
if (ext.equals("jpg") || ext.equals("png")) {//判断头像格式
File file = new File(path);
if (!file.exists()) {
file.mkdirs();
}
str = s1 + "." + ext;
m1.transferTo(new File(path, str));
//开始文件复制
FileInputStream fa1 = new FileInputStream(path + "/" + str);
FileOutputStream f2 = new FileOutputStream(path2 + "/" + str);
BufferedInputStream b1 = new BufferedInputStream(fa1);
BufferedOutputStream b2 = new BufferedOutputStream(f2);
byte[] bytes = new byte[1024];
int c;
while ((c = b1.read(bytes)) != -1) {
b2.write(bytes, 0, c);
}
b2.close();
b1.close();
f2.close();
fa1.close();
return str;
}
return null;
}
}
GetMsg
package com.example.medical.util;
import java.util.Random;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/1/7 17:10
*/
public class GetMsg {
public String getOne(){
Random random = new Random();
Integer num = (int) ((Math.random() * 9 + 1) * 100000);
String str= String.valueOf(num);
System.out.println(str);
return str;
}
}
Msg
package com.example.medical.util;
import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient;
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsResponse;
import com.google.gson.Gson;
import darabonba.core.client.ClientOverrideConfiguration;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/1/7 16:59
*/
public class Msg {
public static void send(String number,String code) throws ExecutionException, InterruptedException {
System.out.println("进来了:"+number+code);
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
.accessKeyId("这里填写当时阿里云短信服务注册的KEYID")
.accessKeySecret("这里填写当时阿里云短信服务注册的KeySecret")
//.securityToken("<your-token>") // use STS token
.build());
// Configure the Client
AsyncClient client = AsyncClient.builder()
.region("cn-zhangjiakou") // Region ID
//.httpClient(httpClient) // Use the configured HttpClient, otherwise use the default HttpClient (Apache HttpClient)
.credentialsProvider(provider)
//.serviceConfiguration(Configuration.create()) // Service-level configuration
// Client-level configuration rewrite, can set Endpoint, Http request parameters, etc.
.overrideConfiguration(
ClientOverrideConfiguration.create()
.setEndpointOverride("dysmsapi.aliyuncs.com")
//.setConnectTimeout(Duration.ofSeconds(30))
)
.build();
// Parameter settings for API request
SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
.signName("ZOTS服务平台")
.templateCode("SMS_267870116")
.templateParam("{\"code\":\""+code+"\"}")
.phoneNumbers(number)
// Request-level configuration rewrite, can set Http request parameters, etc.
// .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
.build();
// Asynchronously get the return value of the API request
CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
// Synchronously get the return value of the API request
SendSmsResponse resp = response.get();
System.out.println(new Gson().toJson(resp));
// Asynchronous processing of return values
/*response.thenAccept(resp -> {
System.out.println(new Gson().toJson(resp));
}).exceptionally(throwable -> { // Handling exceptions
System.out.println(throwable.getMessage());
return null;
});*/
// Finally, close the client
client.close();
}
}
NotesImpl
package com.example.medical.util;
import com.example.medical.dao.Notes_1Dao;
import com.example.medical.entity.Notes_1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/25 23:47
*/
@Configuration
public class NotesImpl {
@Autowired
Notes_1Dao notes1Dao;
public Integer getAll(Notes_1 notes1){
Notes_1 one = notes1Dao.getOne(notes1);
if (one!=null){
return notes1Dao.setOne(notes1);
}else {
return notes1Dao.addOne(notes1);
}
}
public String Notes(String phone){
return notes1Dao.getNotes(phone);
}
}
RedisUtil
package com.example.medical.util;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/2/14 16:23
*/
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class RedisUtil {
private static String ip="192.168.183.129";
private static int port=6379;
private static int timeout=10000;
private static JedisPool pool=null;
static{
JedisPoolConfig config=new JedisPoolConfig();
config.setMaxTotal(1024);//最大连接数
config.setMaxIdle(200);//最大空闲实例数
config.setMaxWaitMillis(10000);//等连接池给连接的最大时间,毫秒
config.setTestOnBorrow(true);//borrow一个实例的时候,是否提前vaildate操作
pool=new JedisPool(config,ip,port,timeout);
}
//得到redis连接
public static Jedis getJedis(){
if(pool!=null){
return pool.getResource();
}else{
return null;
}
}
//关闭redis连接
public static void close(final Jedis redis){
if(redis != null){
redis.close();
}
}
}
SerializeUtil
package com.example.medical.util;
import java.io.*;
public class SerializeUtil {
/**
*
* 序列化
*/
public static byte[] serialize(Object obj) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
// 序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
byte[] byteArray = baos.toByteArray();
return byteArray;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
*
* 反序列化
*
* @param bytes
* @return
*/
public static Object unSerialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
// 反序列化为对象
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
Time
package com.example.medical.util;
import org.springframework.context.annotation.Configuration;
import java.util.Date;
import static org.apache.commons.lang3.RandomStringUtils.random;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/2/14 13:56
*/
@Configuration
public class Time {
public String getOne(){
int time = (int)new Date().getTime();
int round =(int) Math.round((Math.random()) * 100000);
int uuid=(time- round)/10000;
String s = randomAlphanumeric();
return s+uuid;
}
public static String randomAlphanumeric() {
return random(6, true, true);
}
}
MySock层
结构如下:
MyWebSocket
package com.example.medical.MySock;
import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.concurrent.CopyOnWriteArraySet;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/21 17:36
*/
@ServerEndpoint(value = "/websocket/{nickname}")
@Component
public class MyWebSocket {
private String nickname;
//用来存放每个客户端对应的MyWebSocket对象。
private static CopyOnWriteArraySet<MyWebSocket> webSocketSet = new CopyOnWriteArraySet<MyWebSocket>();
//与某个客户端的连接会话,需要通过它来给客户端发送数据
private Session session;
/**
* 连接建立成功调用的方法
*/
@OnOpen
public void onOpen(Session session,@PathParam("nickname") String nickname) {
this.session = session;
this.nickname=nickname;
webSocketSet.add(this); //加入set中
System.out.println("有新连接加入:"+nickname+",当前在线人数为" + webSocketSet.size());
this.session.getAsyncRemote().sendText("恭喜您成功连接上WebSocket-->当前在线人数为:"+webSocketSet.size());
}
/**
* 连接关闭调用的方法
*/
@OnClose
public void onClose() {
webSocketSet.remove(this); //从set中删除
System.out.println("有一连接关闭!当前在线人数为" + webSocketSet.size());
}
/**
* 收到客户端消息后调用的方法
*
* @param message 客户端发送过来的消息*/
@OnMessage
public void onMessage(String message, Session session,@PathParam("nickname") String nickname) {
System.out.println("来自客户端的消息-->"+nickname+": " + message);
//群发消息
broadcast(nickname+": "+message);
}
/**
* 发生错误时调用
*
*/
@OnError
public void onError(Session session, Throwable error) {
System.out.println("发生错误");
error.printStackTrace();
}
/**
* 群发自定义消息
* */
public void broadcast(String message){
for (MyWebSocket item : webSocketSet) {
//同步异步说明参考:http://blog.csdn.net/who_is_xiaoming/article/details/53287691
//this.session.getBasicRemote().sendText(message);
item.session.getAsyncRemote().sendText(message);//异步发送消息.
}
}
}
SocketMsg
package com.example.medical.MySock;
/**
* @Auther: morou
* @Description:这里我们就不能使用简单的文本消息进行消息的发送了,我们使用json进行消息的发送。
* 所以需要先创建一个消息对象,里面包含了消息发送者,消息接受者,消息类型(单聊还是群聊),还是就是消息,如下:
*/
public class SocketMsg {
private int type; //聊天类型0:群聊,1:单聊.
private String fromUser;//发送者.
private String toUser;//接受者.
private String msg;//消息
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getFromUser() {
return fromUser;
}
public void setFromUser(String fromUser) {
this.fromUser = fromUser;
}
public String getToUser() {
return toUser;
}
public void setToUser(String toUser) {
this.toUser = toUser;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
WebSocketConfig
package com.example.medical.MySock;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
/**
* @author 等风来
* @email 3391953427@qq.com
* @date 2023/4/21 17:35
*/
@Configuration
public class WebSocketConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
resources中的Mappers
结构如下:
DoctorMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.medical.dao.DoctorDao">
<select id="getPhone" resultType="Doctor">
select * from doctor where phone=#{phone}
</select>
<select id="getOne" resultType="Doctor">
select *
from doctor where id=#{id};
</select>
<select id="getAll" resultType="Doctor">
select * from doctor
</select>
<insert id="addUser" parameterType="Doctor">
insert into doctor(name,positions,age,sex,phone,tx_img,bj_img,bio,password)
values (#{name},#{positions},#{age},#{sex},#{phone},"tx.jpg","bj.jpg",#{bio},#{password})
</insert>
<select id="getPassword" resultType="Doctor">
select *
from doctor where id=#{id} and password=#{password};
</select>
<update id="setUser" parameterType="Doctor">
update doctor
<set>
name=#{name},bio=#{bio},positions=#{positions},password=#{password},
<if test="tx_img!=null">
tx_img=#{tx_img},
</if>
<if test="bj_img!=null ">
bj_img=#{bj_img},
</if>
</set>
where id=#{id}
</update>
</mapper>
DrugMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.medical.dao.DrugDao">
<select id="getAll" resultType="Drug">
select *
from drug
</select>
<insert id="addDrug" parameterType="Drug">
insert into drug(name,type,num,prices,seri)
values (#{name},#{type},#{num},#{prices},#{seri})
</insert>
<update id="setOne" parameterType="Drug">
update drug set name=#{name},prices=#{prices},num=#{num} where id=#{id}
</update>
<delete id="delDrug" parameterType="Integer">
delete from drug where id=#{id}
</delete>
</mapper>
MeetingMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
Integer del(Integer id);//删除会议-->
<mapper namespace="com.example.medical.dao.MeetingDao">
<select id="getAll" resultType="Meeting">
select * from meeting
</select>
<select id="getLecturer" resultType="Meeting">
select *
from meeting where lecturer=#{lecturer};
</select>
<select id="getDay" resultType="Meeting">
SELECT * FROM meeting WHERE DATEDIFF(star_time,NOW())=0
</select>
<select id="getOneDay" resultType="Meeting">
select * from meeting where star_time> DATE_SUB(NOW(),INTERVAL #{date} day);
</select>
<insert id="addMeeting" parameterType="Meeting">
insert into meeting(name,lecturer,star_time,end_time,phone)
values (#{name},#{lecturer},#{star_time},#{end_time},#{phone})
</insert>
<delete id="del" parameterType="Integer">
delete from meeting where id=#{id}
</delete>
<update id="setMeeting" parameterType="Meeting">
update meeting set name=#{name} where id=#{id}
</update>
</mapper>
Notes_1Mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.medical.dao.Notes_1Dao">
<select id="getOne" resultType="Notes_1">
select * from notes_1 where phone=#{phone}
</select>
<insert id="addOne" parameterType="Notes_1">
insert into notes_1(phone,notes)
values (#{phone},#{notes})
</insert>
<update id="setOne" parameterType="Notes_1">
update notes_1 set notes=#{notes} where phone=#{phone}
</update>
<select id="getNotes" parameterType="String" resultType="String">
select notes from notes_1 where phone=#{phone}
</select>
</mapper>
PrescriptionMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.medical.dao.PrescriptionDao">
<select id="getAll" resultType="Prescription">
select *
from prescription;
</select>
<select id="getDid" resultType="Prescription">
select * from prescription where id=#{id}
</select>
<insert id="addOne" parameterType="Prescription">
insert into prescription(did,sid,name,address,memo,medicine,drug,p_time)
values (#{did},#{sid},#{name},#{address},#{memo},#{medicine},#{drug},#{p_time})
</insert>
<delete id="delOne" parameterType="Integer">
delete from prescription where id=#{id}
</delete>
</mapper>
SickMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.medical.dao.SickDao">
<insert id="addUser" parameterType="Sick">
insert into sick(did,name,sex,tx_img,age,phone,id_num,symptom,state,address,a_time)
values (#{did},#{name},#{sex},#{tx_img},#{age},#{phone},#{id_num},#{symptom},"住院",#{address},#{a_time})
</insert>
<select id="getAll" resultType="Sick">
select * from sick
</select>
<update id="setUser" parameterType="Sick">
update sick
<set>
name=#{name},age=#{age},state=#{state},
<if test="tx_img!=null">
tx_img=#{tx_img},
</if>
</set>
where id=#{id}
</update>
<update id="setState" parameterType="Sick">
update sick set state=#{state} where id=#{id}
</update>
<select id="getOne" resultType="Sick">
select * from sick where id=#{id}
</select>
<select id="getDoctor" resultType="Sick">
select *
from sick where did=#{did};
</select>
<select id="getID" resultType="Sick">
select * from sick where id_num=#{id_num}
</select>
<select id="num" resultType="Integer" parameterType="String">
select count(*) from sick where state=#{state}
</select>
<update id="setInTime" parameterType="Sick">
update sick set a_time=#{a_time} where id=#{id}
</update>
<update id="setOutTime" parameterType="Sick">
update sick set b_time=#{b_time} where id=#{id}
</update>
<select id="getState" resultType="Sick">
select * from sick where state=#{state}
</select>
<select id="getday" resultType="Sick">
select * from sick where a_time > DATE_SUB(NOW(),INTERVAL #{date} day);
</select>
</mapper>
SubscribeMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.medical.dao.SubscribeDao">
<!-- List<Subscribe> getAll();//获取全部
Subscribe getSick(Integer sid);//病人id获取
Subscribe getOne(Integer id);//id获取
List<Subscribe> getDoctor(Integer did);//获取医生对应预约
Integer addSub(Subscribe subscribe);//添加预约
Integer setSub(Subscribe subscribe);//修改预约-->
<select id="getAll" resultType="Subscribe">
select * from subscribe
</select>
<select id="getSick" resultType="Subscribe">
select * from subscribe where sid=#{sid}
</select>
<select id="getOne" resultType="Subscribe">
select * from subscribe where id=#{id}
</select>
<select id="getDoctor" resultType="Subscribe">
select * from subscribe where did=#{did}
</select>
<insert id="addSub" parameterType="Subscribe">
insert into subscribe(sid,y_time,phone,did)
values (#{sid},#{y_time},#{phone},#{did})
</insert>
<update id="setSub" parameterType="Subscribe">
update subscribe set y_time=#{y_time} where id=#{id}
</update>
<delete id="delOne" parameterType="Integer">
delete from subscribe where id=#{id}
</delete>
</mapper>
TestMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.medical.dao.TestDao">
<!-- 这个就是该dao接口的具体位置 -->
<select id="getTest" resultType="Test">
-- 这个是select语句 注意id必须和方法名相同,resultType为方法的返回类型
select *
from test
</select>
</mapper>
以上就是这些后端代码,前端代码我用网盘进行分享
行数太多写不下了~~~~
结构如下:
前端完整代码!!!(提取码0136)
结束!!!
切记以上有什么问题记得私信我!!!或者评论区大家也可以交流!!!
这篇文章就到这结束了,爆肝不易来手三连支持一下吧~~~
我累了先撤了,铁子们下期见!!!