giaming / yygh-project

本项目是一个预约挂号系统,包含了后台管理系统和前台用户系统,后台包括医院设置管理、数据管理、用户管理、订单管理和统计管理等功能,前台包含用户登录、就诊人管理、用户实名认证和预约挂号等功能。项目采用前后端分离的方式进行开发,前端基于Vue构建,后端采用SpringCloud微服务技术栈搭建。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

项目简介

本项目是一个预约挂号系统,包含了后台管理系统和前台用户系统,后台包括医院设置管理、数据管理、用户管理、订单管理和统计管理等功能,前台包含用户登录、就诊人管理、用户实名认证和预约挂号等功能。项目采用前后端分离的方式进行开发,前端基于Vue构建,后端采用SpringCloud微服务技术栈搭建。

核心技术

微信支付,手机微信登陆,阿里云OSS

SpringBoot:简化新Spring应用的初始搭建以及开发过程

SpringCloud:基于Spring Boot实现的云原生应用开发工具,SpringCloud使用的技术:(SpringCloudGateway、Spring Cloud Alibaba Nacos、Spring Cloud Alibaba Sentinel、SpringCloud Task和SpringCloudFeign等)

MyBatis-Plus:持久层框架

Redis:内存缓存

RabbitMQ:消息中间件

HTTPClient: Http协议客户端

Swagger2:Api接口文档工具

Nginx:负载均衡

Lombok: idea插件,简化实体类

Mysql:关系型数据库

MongoDB:面向文档的NoSQL数据库

Vue.js:web 界面的渐进式框架

Node.js: JavaScript 运行环境

Axios:Axios 是一个基于 promise 的 HTTP 库

NPM:包管理器

Babel:转码器

Webpack:打包工具

Docker :容器技术

Git:代码管理工具

接口文档

API接口文档

1. 文档介绍

1.1. 文档说明

本技术文档用来指导医院与尚医通系统的顺利对接。

1.2. 阅读对象

医院编程人员及测试人员。

1.3. 业务术语

l 医院编号

医院与尚医通合作后,尚医通合提供给医院的唯一标识ID号(hoscode)。

l 签名密钥

医院与尚医通合作后,尚医通提供给医院,用于接口调用的MD5数字签名算法的密码串(signKey)。

2. 安全控制

接口采用数据签名的方式来保证医院与尚医通系统间的身份验证、中间信息传递的完整性,以便进行电子商务安全当中非常重要的交易身份辨识、不可抵赖、防止篡改等功能。

3. 业务接口

3.1. 传参说明

​ 1、所有参数递交的方式必须为POST,参数值编码为gb2312。如果采用拼接(如http://localhost?a=1&b=李四)的形式提交,传参时要对参数值进行url编码,尤其是汉字、网址等;采用Form表单形式提交则不需要。参数值不要带空格。

​ 2、验签参数sign生成。

​ a、组成加密串。所有变量值按照参数名(不包含sign参数)升序用|连接,最后连接signKey。

​ b、加密。采用32位Md5小写(编码utf-8)加密。

​ c、例子。假设接口参数a=1,b=张三,c=13012345678,指派给商户的 签名密钥signKey=1234567890,则加密串如下:

​ 1|张三|13012345678|1234567890。

​ d、MD5(32位小写)加密值核对。 Md5("123456")=e10adc3949ba59abbe56e057f20f883e

3、所有的字段都使用驼峰形式,如:agent_id改为agentId

3.2. 返回/通知结果

​ 所有接口同步返回

4. 平台接口

4.1.上传医院

​ 医院的基本信息与规则信息

4.1.1.提交地址

http://localhost/api/hosp/saveHospital

4.1.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
hosname string 50 医院名称
hostype string 1 医院类型(1:三级甲等,2:三级乙等,3:二级甲等,4:二级乙等,5:一级)
provinceCode string 18 省code(国家统计局对应省的code)
cityCode string 50 市code(国家统计局对应市的code)
districtCode string 10 区code(国家统计局对应区的code)
address string 20 详情地址
logoData string 11 医院logo(转换为base64字符串)
intro string 医院简介
route string 255 坐车路线
bookingRule string 8000 预约规则,json数据
bookingRule****例子:{"cycle": "1","releaseTime": "08:30","stopTime": "11:30","quitDay": "-1","quitTime": "15:30","rule": ["西院区预约号取号地点:西院区门诊楼一层大厅挂号窗口取号","东院区预约号取号地点:东院区老门诊楼一层大厅挂号窗口或新门诊楼各楼层挂号/收费窗口取号" ]}bookingRule说明:1、属性说明 cycle:预约周期 releaseTime:放号时间 stopTime:停挂时间 quitDay:退号截止天数(如:就诊前一天为-1,当天为0) quitTime:退号时间 rule:预约规则,以数组形式传递
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

4.1.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

4.2.上传科室

​ 科室信息

4.2.1.提交地址

http://localhost/api/hosp/saveDepartment

4.2.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
depcode string 50 科室编号
depname string 1 科室名称
intro string 18 科室描述
bigcode string 50 大科室编号
bigname string 10 大科室名称
address string 20 详情地址
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

4.2.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

4.3.上传排班

​ 排班信息

4.3.1.提交地址

http://localhost/api/hosp/saveSchedule

4.3.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
depcode string 20 科室编号
title string 30 职称
docname string 30 医生名称
skill string 300 擅长技能
workDate string 10 安排日期(yyyy-MM-dd)
workTime int 安排时间(0:上午 1:下午)
reservedNumber int 可预约数
availableNumber int 剩余预约数
amount string 5 挂号费
status int 排班状态(-1:停诊 0:停约 1:可约)
hosScheduleId string 30 排班编号(医院自己的排班主键)
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

4.3.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

4.4.查询医院

​ 医院信息

4.4.1.提交地址

http://localhost/api/hosp/hospital/show

4.4.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

4.4.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

4.5.查询科室

​ 科室信息

4.5.1.提交地址

http://localhost/api/hosp/department/list

4.5.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
pageNum Int 第几页
pageSize Int 每页个数
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

4.5.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

4.6.查询排班

​ 医院信息

4.6.1.提交地址

http://localhost/api/hosp/schedule/list

4.6.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
pageNum Int 第几页
pageSize Int 每页个数
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

4.6.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

4.7.删除科室

​ 删除科室信息

4.7.1.提交地址

http://localhost/api/hosp/department/remove

4.7.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
depcode string 30 科室编号
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

4.7.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

4.8.删除排班

​ 删除排班信息

4.8.1.提交地址

http://localhost/api/hosp/schedule/remove

4.8.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
hosScheduleId string 30 排班编号(医院自己的排班主键)
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

4.8.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

5. 医院接口

5.1.预约下单

​ 医院的基本信息与规则信息

5.1.1.提交地址

${basePath}/order/submitOrder

5.1.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
depcode string 20 科室编号
hosScheduleId string 30 排班编号(医院自己的排班主键)
reserveDate string 10 安排日期(yyyy-MM-dd)
reserveTime int 安排时间(0:上午 1:下午)
amount string 5 挂号费
name string 20 就诊人姓名
sex int 就诊人性别
birthdate string 20 就诊人出生年月
phone string 11 就诊人手机
isMarry int 就诊人是否结婚
provinceCode string 50
cityCode string 50 市code(国家统计局对应市的code)
districtCode string 10 区code(国家统计局对应区的code)
address string 20 就诊人详情地址
contactsName string 11 联系人姓名
contactsCertificatesType int 联系人证件类型
contactsCertificatesNo string 30 联系人证件号
contactsPhone string 11 联系人手机
isInsure int 是否有医保
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

5.1.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

data业务数据字段:

字段名 类型 长度 必输 说明
hosRecordId string 预约记录唯一标识(医院预约记录主键)
number int 预约序号
reservedNumber int 排班可预约数
availableNumber int 排班剩余预约数
fetchTime string 50 取号时间
fetchAddress string 200 取号地址

5.2.更新支付状态

​ 平台支付成功,通过该接口更新医院支付状态

5.2.1.提交地址

${basePath}/order/updatePayStatus

5.2.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
hosRecordId string 预约记录唯一标识(医院预约记录主键)
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

5.2.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

5.3.取消预约

​ 平台通过该接口取消预约

5.3.1.提交地址

${basePath}/order/updateCancelStatus

5.3.2.请求参数

​ ◎ 变量定义

字段名 类型 长度 必输 说明
hoscode string 30 给医院分配的唯一标识
hosRecordId string 预约记录唯一标识(医院预约记录主键)
timestamp long 时间戳。从1970-01-01 00:00:00算起的毫秒数
sign string 32 验签参数。

5.3.3.同步返回

​ ◎ 结果参数含义

字段名 类型 长度 必输 说明
code string 结果编码。200:请求成功不等于200:请求失败(message:失败原因)
message string 100 结果描述
data string 5000 业务数据

运行项目

运行环境:redis, nacos,rabbitMQ,Mysql,Mongodb

数据初始化:sql目录下有mysql和mongodb数据初始化的脚本,其中mongodb的脚本需要运行hospital-manage项目后浏览器访问http://localhost:9998/,在里面执行导入操作

服务:

前端服务:npm install, npm run dev

yygh-site(前台用户预约端) http://localhost:3000/

hospital_admin(后台医院管理端) http://localhost:9528/

后端接口服务:

service目录下:

service_cmn 字典服务,service_hosp医院相关接口服务,service_msm短信服务,service_order订单服务,service_oss文件存储服务,service_statistics数据统计服务,service_task定时任务服务,service_user用户中心服务

service_gateway网关服务

hospital-manage医院平台服务

service_client feign代理服务

About

本项目是一个预约挂号系统,包含了后台管理系统和前台用户系统,后台包括医院设置管理、数据管理、用户管理、订单管理和统计管理等功能,前台包含用户登录、就诊人管理、用户实名认证和预约挂号等功能。项目采用前后端分离的方式进行开发,前端基于Vue构建,后端采用SpringCloud微服务技术栈搭建。

License:Apache License 2.0


Languages

Language:CSS 37.8%Language:JavaScript 34.6%Language:Java 16.5%Language:Vue 8.0%Language:HTML 1.9%Language:Less 0.9%Language:SCSS 0.2%