springboot医疗管理系统项目———无套路全干货,代码直接可以C+V

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>
<!--&lt;!&ndash;        JSP&ndash;&gt;-->
<!--        &lt;!&ndash;引入Spring Boot内嵌的TomcatJSP的解析包,不加解析不了jsp页面&ndash;&gt;-->
<!--        &lt;!&ndash;如果只是使用JSP页面,可以只添加该依赖&ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>org.apache.tomcat.embed</groupId>-->
<!--            <artifactId>tomcat-embed-jasper</artifactId>-->
<!--        </dependency>-->

<!--        &lt;!&ndash;如果使用JSTL必须添加该依赖&ndash;&gt;-->
<!--        &lt;!&ndash;jstl标签依赖的jar包start&ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>javax.servlet</groupId>-->
<!--            <artifactId>jstl</artifactId>-->
<!--        </dependency>-->

<!--        &lt;!&ndash;如果要使用servlet必须添加该以下两个依赖&ndash;&gt;-->
<!--        &lt;!&ndash; servlet依赖的jar包&ndash;&gt;-->
<!--        <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>-->


<!--        &lt;!&ndash;&ndash;&gt;-->
        <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+"\'>&nbsp;"+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)

结束!!!

切记以上有什么问题记得私信我!!!或者评论区大家也可以交流!!!
这篇文章就到这结束了,爆肝不易来手三连支持一下吧~~~

在这里插入图片描述
我累了先撤了,铁子们下期见!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java缝合怪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值