基于SSM的挂号系统(简单)

设计技术:
  • 开发语言:Java
  • 数据库:MySQL
  • 技术:SSM+JSP
  • 工具:IDEA、Maven、Navicat

主要功能:

首页

登录

查看医生信息

挂号

挂号记录查看

个人信息查看

需要可加V分享源码

package com.hg.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.hg.model.Doctor;
import com.hg.model.Patient;
import com.hg.service.PatientService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;



@Controller
public class PatientController {
    @Resource
    private PatientService patientService;

    //病人注册账号
    @RequestMapping(value = "/register", method = RequestMethod.POST)
    @ResponseBody
    public String register(Patient patient) {
        System.out.println("==========================");
        System.out.println("register" + patient);
        System.out.println("==========================");
//        String msg = "false";
//        IDVerifyMessage idVerifyMessage = MyUtil.validateIdCard(patient.getIdNumber(),patient.getPatientName());
//        System.out.println("idVerifyMessage: "+idVerifyMessage);
//        if(idVerifyMessage.getStatus() == 400){
//            msg = "false";
//        }
//        if(idVerifyMessage.getStatus() == 200){
//            if(patientService.add(patient)>0){
//                msg = "true";
//            }
//        }
//
        System.out.println(patient);
        patientService.add(patient);

        return "true";
    }

    //患者登录
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    @ResponseBody
    public String login(Patient patient, HttpSession session) {
        String msg = "false";
        Patient patient1 = patientService.select(patient.getIdNumber());
        if (patient1 != null) {
            if (patient1.getPassword().equals(patient.getPassword())) {
                session.setAttribute("patient1", patient1);
                msg = "true";
            }
        }
        return msg;
    }

    //判断患者是否登录
    @RequestMapping(value = "/isLogin", method = RequestMethod.POST)
    @ResponseBody
    public String isLogin(HttpSession session) {
        Patient patient = (Patient) session.getAttribute("patient1");
        if (patient != null) {
            ObjectMapper objectMapper = new ObjectMapper();
            //余额问题
            Patient patient1 = patientService.selectById(patient.getId());
            session.setAttribute("patient1", patient1);
            try {
                return objectMapper.writeValueAsString(patient1);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        }
        return "false";
    }

    //退出登录
    @RequestMapping("/p/exitLogin")
    public void exitLogin(HttpServletResponse response, HttpServletRequest request) throws IOException {
        request.getSession().removeAttribute("patient1");
        response.sendRedirect(request.getContextPath() + "/index.html");
    }

    //当天挂号
    @RequestMapping(value = "/p/hosReg", method = RequestMethod.POST)
    @ResponseBody
    public String hosReg(HttpSession session) {
        Patient patient = (Patient) session.getAttribute("patient1");
        Doctor doctor = (Doctor) session.getAttribute("doctorDetail");
        if (patient != null && doctor != null) {
            Date date = new Date();
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEEE");
            String s = simpleDateFormat.format(date);
            if (s.equals(doctor.getWorkTime())) {
                return "true";
            }
        }
        return "false";
    }

    //修改个人信息
    @RequestMapping(value = "/pUpdate", method = RequestMethod.POST)
    @ResponseBody
    public String update(String json, HttpSession session) throws JsonProcessingException {
        System.out.println(json);
        ObjectMapper objectMapper = new ObjectMapper();
        Patient patient = objectMapper.readValue(json, Patient.class);
        System.out.println(patient);
        if (patientService.update(patient) > 0) {
            session.setAttribute("patient1", patient);
            return "true";
        }
        return "false";
    }

    //显示病人列表
    @RequestMapping(value = "/all", method = RequestMethod.POST)
    @ResponseBody
    public String all() throws JsonProcessingException {
        ObjectMapper objectMapper = new ObjectMapper();
        List<Patient> patientList = patientService.all();
        if (patientList.size() > 0) {
            return objectMapper.writeValueAsString(patientList);
        }
        return "null";
    }

    //根据id查找病人信息
    @RequestMapping(value = "/selectPatientById", method = RequestMethod.GET)
    @ResponseBody
    public String selectPatientById(String id) throws JsonProcessingException {
        ObjectMapper objectMapper = new ObjectMapper();
        Patient patient = patientService.selectById(Integer.parseInt(id));
        if (patient != null) {
            return objectMapper.writeValueAsString(patient);
        }
        return "null";
    }

    @RequestMapping(value = "/pDelete", method = RequestMethod.POST)
    @ResponseBody
    public String delete(String id) {
        if (patientService.delete(Integer.parseInt(id)) > 0) {
            return "true";
        }
        return "false";
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/761391.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

idk17配置

只需要把zip包解压&#xff0c;然后配置环境变量&#xff1a; bin目录路径粘到path里面就好了 然后打开cmd窗口分别输入 java javac java -version 验证

IT专业入门,高考假期预习指南

文章目录 一、了解IT专业的基本概念二、选择适合的编程语言入门三、掌握基本的编程工具和环境四、学习基础的数据结构和算法五、实践项目和动手实验六、利用在线资源进行学习七、参加编程竞赛和社区活动总结 高考结束后&#xff0c;许多同学将迎来大学生活&#xff0c;而对于选…

ARP 原理详解 二

只要确定了 IP 地址后&#xff0c;就能够向这个 IP 地址所在的主机发送数据报&#xff0c;这是我们所熟知的事情。 但是再往深了想&#xff0c;IP 地址只是标识网络层的地址&#xff0c;那么在网络层下方数据链路层是不是也有一个地址能够告诉对方主机自己的地址呢&#xff1f…

【Python画图-循环01】一文叫你搭建python画图最优环境配置

【Python画图-循环01】一文叫你搭建python画图最优环境配置 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档关注&#…

突发!1本“On Hold”期刊惨遭除名!共12本期刊被剔除!Scopus目录更新!

【欧亚科睿学术】 近期&#xff0c;爱思唯尔更新了Scopus期刊目录&#xff0c;这是本年度的第五次更新。 图片来源&#xff1a;Elsevier 本次Scopus来源出版物列表(Scopus Sources)共有46097本期刊被收录。其中&#xff0c;有12本期刊不再被数据库收录(Discontinued titles)&a…

复制 pdf 的表格到 markdown 版本的Typora 或者 word 中

在 pdf 中选中复制表格内容&#xff0c;直接粘贴到 typora 中失败&#xff0c;可以使用 txt文件和 excel 做过渡。 准备一个空的 txt 文件&#xff0c;将 pdf 中表格的数据复制粘贴到txt文件中&#xff0c;文本内容会以空格分开&#xff0c;如下图的形式&#xff1a; 打开 exc…

[Shell编程学习路线]——shell脚本中case语句多分支选择详解

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f6e0;️Shell编程专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月21日16点30分 &#x1f004;️文章质量&#xff1a;95分 ————前言———— 在Shell编程中&#xff0c;处理多种条件…

简单爬虫案例——爬取快手视频

网址&#xff1a;aHR0cHM6Ly93d3cua3VhaXNob3UuY29tL3NlYXJjaC92aWRlbz9zZWFyY2hLZXk9JUU2JThCJTg5JUU5JTlEJUEy 找到视频接口&#xff1a; 视频链接在photourl中 完整代码&#xff1a; import requestsimport re url https://www.kuaishou.com/graphql cookies {did: web_…

SpringCloud-服务网关-Gateway

1.服务网关在微服务中的应用 (1)对外提供服务的难题分析&#xff1a; 微服务架构下的应用系统体系很庞大&#xff0c;光是需要独立部署的基础组件就有注册中心、配置中心和服务总线、Turbine异常聚合和监控大盘、调用链追踪器和链路聚合&#xff0c;还有Kaka和MQ之类的中间件&…

最短路模型——AcWing 188. 武士风度的牛

最短路模型 定义 最短路模型是图论中的一个经典问题&#xff0c;旨在寻找从图中一个顶点到另一个顶点的路径&#xff0c;使得这条路径上的边&#xff08;或边的权重&#xff09;之和最小。这一模型在许多实际问题中有着广泛的应用&#xff0c;比如网络路由、地图导航、物流配…

AI绘画-Stable Diffusion 原理介绍及使用

引言 好像很多朋友对AI绘图有兴趣&#xff0c;AI绘画背后&#xff0c;依旧是大模型的训练。但绘图类AI对计算机显卡有较高要求。建议先了解基本原理及如何使用&#xff0c;在看看如何实现自己垂直行业的绘图AI逻辑。或者作为使用者&#xff0c;调用已有的server接口。 首先需…

Advanced slides插件无法预览幻灯片

advanced-slides的官方地址&#xff1a; MSzturc/obsidian-advanced-slides: Create markdown-based reveal.js presentations in Obsidian (github.com) 官方教程和文档&#xff1a; Advanced Slides Documentation (mszturc.github.io) 中文版也有博客翻译了&#xff1a;Ob…

[数据集][目标检测]桥梁检测数据集VOC+YOLO格式1116张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1116 标注数量(xml文件个数)&#xff1a;1116 标注数量(txt文件个数)&#xff1a;1116 标注…

51单片机第21步_将TIM0用作两个8位定时器同时将TIM1用作波特率发生器

本章重点讲解将TIM0用作两个8位定时器&#xff0c;同时将TIM1用作波特率发生器。 当定时器T0在方式3时&#xff0c;T1不能产生中断&#xff0c;但可以正常工作在方式0、1、2下&#xff0c;大多数情况下&#xff0c;T1将用作串口的波特率发生器。 1、定时器0工作在模式3框图&a…

【基础篇】第4章 Elasticsearch 查询与过滤

在Elasticsearch的世界里&#xff0c;高效地从海量数据中检索出所需信息是其核心价值所在。本章将深入解析查询与过滤的机制&#xff0c;从基础查询到复合查询&#xff0c;再到全文搜索与分析器的定制&#xff0c;为你揭开数据检索的神秘面纱。 4.1 基本查询 4.1.1 Match查询…

从手工作坊到智能工厂:APS与MES的升级之路

一、APS&#xff1a;制造业的中枢 APS&#xff08;AdvancedPlanningandScheduling&#xff09;&#xff0c;堪称制造业的数据接收和处理中枢&#xff0c;其借助前沿的算法与缜密的逻辑构建排程模型&#xff0c;全方位综合考量市场的多元需求、工厂的实际产能、物料的储备情况、…

Sentinel 采用的是什么限流算法?

引言&#xff1a;Sentinel 是一款由阿里巴巴开源的流量控制组件&#xff0c;提供了多种流控规则和限流算法&#xff0c;能够有效保护服务不被过载&#xff0c;同时实现服务的稳定运行。本文将深入探讨 Sentinel 所采用的主要限流算法&#xff0c;包括固定窗口计数器、滑动窗口计…

从0开始建SMARTFORMS表格

一、简介步骤 1、设置纸张的大小&#xff08;页格式&#xff09; 2、设置字体大小&#xff08;样式&#xff09; 3、设置表格模板 二、详细操作步骤 1、设置页格式 事务码&#xff1a;SPAD 参考操作&#xff1a;SAP Smartforms页格式创建与使用_sap 页格式-CSDN博客 SA…

【Altium】AD-焊盘介绍

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 介绍PCB设计工具中焊盘的组成 2、 知识点 为元件创建封装时&#xff0c;焊盘都是不可获取的部分&#xff0c;一个完整的焊盘&#xff0c;包含了哪些部分&#xff0c;各自又是什么作用。 3、软硬件环境 1&#xff…

深度学习 --- stanford cs231学习笔记六(训练神经网络之权重的初始化与批归一化)

权重矩阵的初始化与批归一化 3&#xff0c;权重矩阵的初始化 深度学习所学习的重点就是要根据损失函数训练权重矩阵中的系数。即便如此&#xff0c;权重函数也不能为空&#xff0c;总是需要初始化为某个值。 3&#xff0c;1 全都初始化为同一个常数可以吗&#xff1f; 首先要简…