From ac53f09dd829b527fe4e0c8fc49c0c060a55814f Mon Sep 17 00:00:00 2001
From: Yang Haoyu <2241399212@qq.com>
Date: Sat, 28 Oct 2023 13:55:24 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 38 +++++
.idea/.gitignore | 8 +
.idea/encodings.xml | 13 ++
.idea/jpa-buddy.xml | 6 +
.idea/misc.xml | 15 ++
.idea/vcs.xml | 6 +
Dockerfile | 21 +++
grail-doctor-public-common/.gitignore | 38 +++++
grail-doctor-public-common/pom.xml | 28 ++++
.../com/grail/publice/domain/Comment.java | 51 ++++++
.../grail/publice/domain/Consultation.java | 66 ++++++++
.../java/com/grail/publice/domain/Doctor.java | 80 ++++++++++
.../java/com/grail/publice/domain/Gift.java | 33 ++++
.../grail/publice/domain/MiddleDiagnosis.java | 42 +++++
.../java/com/grail/publice/domain/User.java | 15 ++
.../publice/domain/request/RequestDoctor.java | 24 +++
.../response/MiddleDiagnosisResponse.java | 53 +++++++
.../domain/response/ResponseComment.java | 55 +++++++
.../domain/response/ResponseDoctor.java | 71 +++++++++
.../publice/domain/response/ResponseGift.java | 33 ++++
grail-doctor-public-remote/.gitignore | 38 +++++
grail-doctor-public-remote/pom.xml | 28 ++++
...ot.autoconfigure.AutoConfiguration.imports | 1 +
grail-doctor-public-server/.gitignore | 38 +++++
grail-doctor-public-server/pom.xml | 121 +++++++++++++++
.../publice/ConsultationApplication.java | 23 +++
.../publice/controller/CommentController.java | 145 ++++++++++++++++++
.../controller/ConsultationController.java | 129 ++++++++++++++++
.../publice/controller/DoctorController.java | 76 +++++++++
.../doctor/publice/mapper/CommentMapper.java | 33 ++++
.../publice/mapper/ConsultationMapper.java | 28 ++++
.../doctor/publice/mapper/DoctorMapper.java | 25 +++
.../publice/service/CommentServlce.java | 32 ++++
.../publice/service/ConsultationService.java | 25 +++
.../doctor/publice/service/DoctorService.java | 22 +++
.../service/impl/CommentServlceimpl.java | 104 +++++++++++++
.../service/impl/ConsultationServiceimpl.java | 58 +++++++
.../service/impl/DoctorServiceimpl.java | 42 +++++
.../src/main/resources/banner.txt | 2 +
.../src/main/resources/bootstrap.yml | 29 ++++
.../src/main/resources/logback.xml | 74 +++++++++
.../main/resources/mapper/CommentMapper.xml | 51 ++++++
.../resources/mapper/ConsultationMapper.xml | 39 +++++
.../main/resources/mapper/DoctorMapper.xml | 45 ++++++
pom.xml | 27 ++++
45 files changed, 1931 insertions(+)
create mode 100644 .gitignore
create mode 100644 .idea/.gitignore
create mode 100644 .idea/encodings.xml
create mode 100644 .idea/jpa-buddy.xml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/vcs.xml
create mode 100644 Dockerfile
create mode 100644 grail-doctor-public-common/.gitignore
create mode 100644 grail-doctor-public-common/pom.xml
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/Comment.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/Consultation.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/Doctor.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/Gift.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/MiddleDiagnosis.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/User.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/request/RequestDoctor.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/MiddleDiagnosisResponse.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseComment.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseDoctor.java
create mode 100644 grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseGift.java
create mode 100644 grail-doctor-public-remote/.gitignore
create mode 100644 grail-doctor-public-remote/pom.xml
create mode 100644 grail-doctor-public-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
create mode 100644 grail-doctor-public-server/.gitignore
create mode 100644 grail-doctor-public-server/pom.xml
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/ConsultationApplication.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/CommentController.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/ConsultationController.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/DoctorController.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/CommentMapper.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/ConsultationMapper.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/DoctorMapper.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/CommentServlce.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/ConsultationService.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/DoctorService.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/CommentServlceimpl.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/ConsultationServiceimpl.java
create mode 100644 grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/DoctorServiceimpl.java
create mode 100644 grail-doctor-public-server/src/main/resources/banner.txt
create mode 100644 grail-doctor-public-server/src/main/resources/bootstrap.yml
create mode 100644 grail-doctor-public-server/src/main/resources/logback.xml
create mode 100644 grail-doctor-public-server/src/main/resources/mapper/CommentMapper.xml
create mode 100644 grail-doctor-public-server/src/main/resources/mapper/ConsultationMapper.xml
create mode 100644 grail-doctor-public-server/src/main/resources/mapper/DoctorMapper.xml
create mode 100644 pom.xml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..35410ca
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..0f8d2a0
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jpa-buddy.xml b/.idea/jpa-buddy.xml
new file mode 100644
index 0000000..966d5f5
--- /dev/null
+++ b/.idea/jpa-buddy.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..82ab2cc
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..4c0b056
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,21 @@
+FROM anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/openjdk:17-8.6
+
+
+# 暴露端口号
+EXPOSE 10003/tcp
+
+
+# 挂载目录位置
+VOLUME /home/logs/grail-consultation
+
+#构造 复制外部文件到docker 内部
+COPY /grail-doctor-public-server/target/grail-doctor-public-server.jar /home/app.jar
+
+# 工作目录 exec -it 进来就是默认这个目录
+WORKDIR /home
+
+# 指定东八区
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > .etc.timezone
+
+# 启动java程序
+CMD ["java","-Dfile.encoding=UTF-8","-jar","/home/app.jar"]
diff --git a/grail-doctor-public-common/.gitignore b/grail-doctor-public-common/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/grail-doctor-public-common/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/grail-doctor-public-common/pom.xml b/grail-doctor-public-common/pom.xml
new file mode 100644
index 0000000..5d9dcb1
--- /dev/null
+++ b/grail-doctor-public-common/pom.xml
@@ -0,0 +1,28 @@
+
+
+ 4.0.0
+
+ com.grail
+ grail-doctor-public
+ 3.6.3
+
+
+ grail-doctor-public-common
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ com.grail
+ grail-common-core
+
+
+
+
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Comment.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Comment.java
new file mode 100644
index 0000000..4421a65
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Comment.java
@@ -0,0 +1,51 @@
+package com.grail.publice.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @ClassName : Comment
+ * @Description : 问诊好评表
+ * @Author : YHY
+ * @Date: 2023-10-24 14:40
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Comment {
+ /**
+ * 好评主键Id
+ */
+ private Integer commentId;
+ /**
+ * 好评文字内容
+ */
+ private String commentContent;
+ /**
+ * 好评时间
+ */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date commentTime;
+ /**
+ * 发布评论患者Id
+ */
+ private Integer userId;
+ /**
+ * 医生专业度
+ */
+ private Integer commentSpeciality;
+ /**
+ * 医生服务满意度
+ */
+ private Integer commentSatisfied;
+ /**
+ * 礼物id
+ */
+ private Integer giftId;
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Consultation.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Consultation.java
new file mode 100644
index 0000000..766e6a8
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Consultation.java
@@ -0,0 +1,66 @@
+package com.grail.publice.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @ClassName : Consultation
+ * @Description : 问诊内容详情表
+ * @Author : YHY
+ * @Date: 2023-10-19 20:29
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Consultation {
+ //主键Id:consultation_id
+ //问诊时间:consultation_time
+ //问诊内容:consultation_content
+ //消息发送人Id:user_id
+ //消息接收人Id:user_id
+ //问诊状态:consultation_status
+ /**
+ * 主键Id
+ */
+ private Integer consultationId;
+ /**
+ * 问诊时间
+ */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date consultationTime;
+ /**
+ * 问诊内容
+ */
+ private String consultationContent;
+ /**
+ * 消息发送人Id
+ */
+ private Integer userId;
+ /**
+ * 消息发送人姓名
+ */
+ private String userName;
+ /**
+ * 消息接收人id
+ */
+ private Integer doctorId;
+ /**
+ * 消息接受人姓名
+ */
+ private String doctorName;
+ /**
+ * 问诊状态 1:问诊中;2问诊结束
+ */
+ private Integer consultationStatus;
+ /**
+ * 问诊时间:患者结束问诊的时间
+ */
+ private Date diagnosisDime;
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Doctor.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Doctor.java
new file mode 100644
index 0000000..0fece5b
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Doctor.java
@@ -0,0 +1,80 @@
+package com.grail.publice.domain;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @ClassName : Doctor
+ * @Description : 医生信息表
+ * @Author : YHY
+ * @Date: 2023-10-20 15:09
+ */
+@Data
+public class Doctor {
+ //主键Id:doctor_id
+ //真实姓名:docker_name
+ //所在医院:doctor_hospital
+ //医生职务:doctor_career
+ //形象照片:doctor_picture
+ //个人简介:personal_profile
+ //擅长领域:doctor_field
+ //所属科室外键Id:department_id
+ //自动回复权限:reply_status
+ //自动回复内容:reply_content
+ //-------------------------------------
+ //医生设置的问诊金额 : consultation_price
+
+ /**
+ *主键Id
+ */
+ private Integer doctorId;
+ /**
+ *真实姓名
+ */
+ private String dockerName;
+ /**
+ * 所在医院
+ */
+ private String doctorHospital;
+ /**
+ * 医生职务
+ */
+ private String doctorCareer;
+ /**
+ * 形象照片
+ */
+ private String doctorPicture;
+ /**
+ * 个人简介
+ */
+ private String personalProfile;
+ /**
+ * 擅长领域
+ */
+ private String doctorField;
+ /**
+ * 所属科室外键Id
+ */
+ private Integer departmentId;
+ /**
+ * 科室名称
+ */
+ private String departmentName;
+ /**
+ * 自动回复权限
+ */
+ private Integer replyStatus;
+ /**
+ * 自动回复内容
+ */
+ private String replyContent;
+ /**
+ * 医生用户注册Id
+ */
+ private Integer userId;
+ /**
+ * 医生设置的问诊金额
+ */
+ private BigDecimal consultationPrice;
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Gift.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Gift.java
new file mode 100644
index 0000000..ff76f9c
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/Gift.java
@@ -0,0 +1,33 @@
+package com.grail.publice.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @ClassName : Gift
+ * @Description : 礼物列表
+ * @Author : YHY
+ * @Date: 2023-10-24 14:46
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Gift {
+ /**
+ * 礼物Id
+ */
+ private Integer giftId;
+ /**
+ * 礼物名称
+ */
+ private String giftName;
+ /**
+ * 礼物价格
+ */
+ private Integer giftPrice;
+ /**
+ * 礼物图片
+ */
+ private String giftPicture;
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/MiddleDiagnosis.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/MiddleDiagnosis.java
new file mode 100644
index 0000000..afecd26
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/MiddleDiagnosis.java
@@ -0,0 +1,42 @@
+package com.grail.publice.domain;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * @ClassName : MiddleDiagnosis
+ * @Description : 问诊咨询结束记录表
+ * @Author : YHY
+ * @Date: 2023-10-26 14:40
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MiddleDiagnosis {
+ /**
+ * 主键Id
+ */
+ private Integer diagnosisId;
+ /**
+ * 医生Id
+ */
+ private Integer doctorId;
+ /**
+ * 科室id
+ */
+ private Integer departmentId;
+ /**
+ * 评论Id
+ */
+ private Integer commentId;
+ /**
+ * 医生价格
+ */
+ private Integer diagnosisCost;
+ /**
+ * 是否给出评论 0:未评论;1:已评论
+ */
+ private Integer diagnosisStatus;
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/User.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/User.java
new file mode 100644
index 0000000..73257df
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/User.java
@@ -0,0 +1,15 @@
+package com.grail.publice.domain;
+
+import lombok.Data;
+
+/**
+ * @ClassName : User
+ * @Description : 登录患者表
+ * @Author : YHY
+ * @Date: 2023-10-20 15:08
+ */
+@Data
+public class User {
+ private Integer userId;
+ private String userName;
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/request/RequestDoctor.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/request/RequestDoctor.java
new file mode 100644
index 0000000..9e7f453
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/request/RequestDoctor.java
@@ -0,0 +1,24 @@
+package com.grail.publice.domain.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @ClassName : RequestDoctor
+ * @Description : 排序查询
+ * @Author : YHY
+ * @Date: 2023-10-22 10:51
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RequestDoctor {
+
+ // 点及那个 ,就排序 1综合 2.好评 3.咨询数 4 价格
+ private Integer sort=1;
+
+ // 升序 和 降序
+ private Integer key=1;
+
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/MiddleDiagnosisResponse.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/MiddleDiagnosisResponse.java
new file mode 100644
index 0000000..c190648
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/MiddleDiagnosisResponse.java
@@ -0,0 +1,53 @@
+package com.grail.publice.domain.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @ClassName : MiddleDiagnosisResponse
+ * @Description : 患者查看历史问诊记录
+ * @Author : YHY
+ * @Date: 2023-10-26 15:18
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MiddleDiagnosisResponse {
+ /**
+ * 主键Id
+ */
+ private Integer diagnosisId;
+ /**
+ * 医生Id
+ */
+ private Integer doctorId;
+ /**
+ * 科室id
+ */
+ private Integer departmentId;
+ /**
+ * 评论id
+ */
+ private Integer commentId;
+ /**
+ * 医生问诊费用
+ */
+ private Integer diagnosisCost;
+ /**
+ * 是否给出评价:0:未评论;1:已评论
+ */
+ private Integer diagnosisStatus;
+ /**
+ * 医生姓名
+ */
+ private String doctorName;
+ /**
+ * 医生职务
+ */
+ private String doctorCareer;
+ /**
+ * 科室名称
+ */
+ private String departmentName;
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseComment.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseComment.java
new file mode 100644
index 0000000..a48d386
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseComment.java
@@ -0,0 +1,55 @@
+package com.grail.publice.domain.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * @ClassName : ResponseComment
+ * @Description :
+ * @Author : YHY
+ * @Date: 2023-10-24 15:29
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ResponseComment {
+ /**
+ * 好评主键Id
+ */
+ private Integer commentId;
+ /**
+ * 好评文字内容
+ */
+ private String commentContent;
+ /**
+ * 好评时间
+ */
+ private Date commentTime;
+ /**
+ * 发布评论患者Id
+ */
+ private Integer userId;
+ /**
+ * 送礼用户名
+ */
+ private String userName;
+ /**
+ * 医生专业度
+ */
+ private Integer commentSpeciality;
+ /**
+ * 医生服务满意度
+ */
+ private Integer commentSatisfied;
+ /**
+ * 礼物id
+ */
+ private Integer giftId;
+ /**
+ * 礼物名称
+ */
+ private String giftName;
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseDoctor.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseDoctor.java
new file mode 100644
index 0000000..3ebb451
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseDoctor.java
@@ -0,0 +1,71 @@
+package com.grail.publice.domain.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * @ClassName : ResponseDoctor
+ * @Description : 医生联查信息请求类
+ * @Author : YHY
+ * @Date: 2023-10-24 13:49
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ResponseDoctor {
+ /**
+ *主键Id
+ */
+ private Integer doctorId;
+ /**
+ *真实姓名
+ */
+ private String dockerName;
+ /**
+ * 所在医院
+ */
+ private String doctorHospital;
+ /**
+ * 医生职务
+ */
+ private String doctorCareer;
+ /**
+ * 形象照片
+ */
+ private String doctorPicture;
+ /**
+ * 个人简介
+ */
+ private String personalProfile;
+ /**
+ * 擅长领域
+ */
+ private String doctorField;
+ /**
+ * 所属科室外键Id
+ */
+ private Integer departmentId;
+ /**
+ * 科室名称
+ */
+ private String departmentName;
+ /**
+ * 自动回复权限
+ */
+ private Integer replyStatus;
+ /**
+ * 自动回复内容
+ */
+ private String replyContent;
+ /**
+ * 医生用户注册Id
+ */
+ private Integer userId;
+ /**
+ * 医生设置的问诊金额
+ */
+ private BigDecimal consultationPrice;
+}
diff --git a/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseGift.java b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseGift.java
new file mode 100644
index 0000000..bb8b1ac
--- /dev/null
+++ b/grail-doctor-public-common/src/main/java/com/grail/publice/domain/response/ResponseGift.java
@@ -0,0 +1,33 @@
+package com.grail.publice.domain.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @ClassName : ResponseGift
+ * @Description : 礼物联查
+ * @Author : YHY
+ * @Date: 2023-10-24 16:28
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ResponseGift {
+ /**
+ * 礼物Id
+ */
+ private Integer giftId;
+ /**
+ * 礼物名称
+ */
+ private String giftName;
+ /**
+ * 礼物价格
+ */
+ private Integer giftPrice;
+ /**
+ * 礼物图片
+ */
+ private String giftPicture;
+}
diff --git a/grail-doctor-public-remote/.gitignore b/grail-doctor-public-remote/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/grail-doctor-public-remote/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/grail-doctor-public-remote/pom.xml b/grail-doctor-public-remote/pom.xml
new file mode 100644
index 0000000..81744d1
--- /dev/null
+++ b/grail-doctor-public-remote/pom.xml
@@ -0,0 +1,28 @@
+
+
+ 4.0.0
+
+ com.grail
+ grail-doctor-public
+ 3.6.3
+
+
+ grail-doctor-public-remote
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.grail
+ grail-doctor-public-common
+ 3.6.3
+
+
+
+
diff --git a/grail-doctor-public-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/grail-doctor-public-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
new file mode 100644
index 0000000..b5fd409
--- /dev/null
+++ b/grail-doctor-public-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -0,0 +1 @@
+# 调用接口相对路径
diff --git a/grail-doctor-public-server/.gitignore b/grail-doctor-public-server/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/grail-doctor-public-server/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/grail-doctor-public-server/pom.xml b/grail-doctor-public-server/pom.xml
new file mode 100644
index 0000000..5ed0eca
--- /dev/null
+++ b/grail-doctor-public-server/pom.xml
@@ -0,0 +1,121 @@
+
+
+ 4.0.0
+
+ com.grail
+ grail-doctor-public
+ 3.6.3
+
+
+ 3.6.3
+
+ grail-doctor-public-server
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ io.springfox
+ springfox-swagger-ui
+ ${swagger.fox.version}
+
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+
+ com.grail
+ grail-common-datasource
+
+
+
+
+ com.grail
+ grail-common-datascope
+
+
+
+
+ com.grail
+ grail-common-log
+
+
+
+
+ com.grail
+ grail-common-swagger
+
+
+
+
+ com.grail
+ grail-doctor-public-common
+ 3.6.3
+
+
+
+ com.qiniu
+ qiniu-java-sdk
+ 7.10.4
+
+
+
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.3.0.RELEASE
+
+
+
+ repackage
+
+
+
+
+
+
+
+
+
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/ConsultationApplication.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/ConsultationApplication.java
new file mode 100644
index 0000000..e5bda36
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/ConsultationApplication.java
@@ -0,0 +1,23 @@
+package com.grail.doctor.publice;
+
+import com.grail.common.security.annotation.EnableCustomConfig;
+import com.grail.common.security.annotation.EnableRyFeignClients;
+import com.grail.common.swagger.annotation.EnableCustomSwagger2;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @ClassName : ConsultationApplication
+ * @Description : 问诊聊天启动类
+ * @Author : YHY
+ * @Date: 2023-10-19 22:27
+ */
+@EnableCustomConfig
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+public class ConsultationApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(ConsultationApplication.class,args);
+ }
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/CommentController.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/CommentController.java
new file mode 100644
index 0000000..836a61e
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/CommentController.java
@@ -0,0 +1,145 @@
+package com.grail.doctor.publice.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.grail.common.core.domain.Result;
+import com.grail.doctor.publice.service.CommentServlce;
+import com.grail.publice.domain.Comment;
+import com.grail.publice.domain.Gift;
+import com.grail.publice.domain.response.ResponseComment;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDateTime;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * @ClassName : CommentController
+ * @Description : 问诊好评
+ * @Author : YHY
+ * @Date: 2023-10-24 14:53
+ */
+@RestController
+@RequestMapping("/comment")
+@Log4j2
+public class CommentController {
+ @Autowired
+ private CommentServlce commentServlce;
+ @Autowired
+ private HttpServletRequest request;
+
+ /**
+ * @Description:医生查询问诊结束后的所有已评论数据 && 礼物详情记录共用
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result>
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/24 15:37
+ */
+ @GetMapping("/commentList")
+ public Result> commentList(){
+ log.info("功能名称:查询患者问诊评论信息,根据用户选择查科室及详细功能进行排序,请求URL:【{}】,请求方法:【{}】",request.getRequestURI(),
+ request.getMethod());
+ Result> result = commentServlce.commentList();
+ log.info("功能名称:查询患者问诊评论信息,根据用户选择查科室及详细功能进行排序,请求URL:【{}】,请求方法:【{}】",request.getRequestURI(),
+ request.getMethod());
+ return result;
+ }
+
+ /**
+ * @Description:查询礼物类型
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result>
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/24 16:26
+ */
+ @GetMapping("/giftList")
+ public Result> giftList(){
+ log.info("功能名称:查询礼物记录,根据用户选择查科室及详细功能进行排序,请求URL:【{}】,请求方法:【{}】",request.getRequestURI(),
+ request.getMethod());
+ Result> result = commentServlce.giftList();
+ log.info("功能名称:查询礼物记录,根据用户选择查科室及详细功能进行排序,请求URL:【{}】,请求方法:【{}】",request.getRequestURI(),
+ request.getMethod());
+ return result;
+ }
+ /**
+ * @Description:添加礼物详情
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/26 20:39
+ */
+ @PostMapping("/addGift")
+ public Result addGift(@RequestBody Gift gift){
+ log.info("功能名称:添加礼物,请求URL:【{}】,请求方法:【{}】,请求参数:【{}】",request.getRequestURI(),
+ request.getMethod(),gift);
+ Result result = commentServlce.addGift(gift);
+ log.info("功能名称:添加礼物,根据用户选择查科室及详细功能进行排序,请求URL:【{}】,请求方法:【{}】",request.getRequestURI(),
+ request.getMethod(),JSONObject.toJSONString(result));
+ return result;
+ }
+ /**
+ * @Description: 礼物列表管理下架
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/27 16:49
+ */
+ @PostMapping("/deleteGiftById/{giftId}")
+ public Result deleteGiftById(@PathVariable Integer giftId){
+ log.info("功能名称:礼物管理下架,请求URL:【{}】,请求方法:【{}】,请求参数:【{}】",request.getRequestURI(),
+ request.getMethod(),giftId);
+ Result result = commentServlce.deleteGiftById(giftId);
+ log.info("功能名称:礼物管理下架,请求URL:【{}】,请求方法:【{}】,响应结果:【{}】",request.getRequestURI(),
+ request.getMethod(),JSONObject.toJSONString(result));
+ return result;
+ }
+
+
+
+
+ public CommentController(CommentServlce commentServlce){
+ this.commentServlce = commentServlce;
+ }
+
+ /**
+ * 用户进行评价
+ * @param comment
+ * @return 是否评价成功结果
+ */
+ @PostMapping("/addComment")
+ public Result addComment(@RequestBody Comment comment){
+ log.info("功能名称:添加评论,请求URL:【{}】,请求方法:【{}】,请求参数:【{}】",request.getRequestURI(),
+ request.getMethod(),comment);
+ comment.setCommentTime(new Date());
+ commentServlce.addComment(comment);
+ Result result = Result.success();
+ log.info("功能名称:添加评论,请求URL:【{}】,请求方法:【{}】,响应结果:【{}】",request.getRequestURI(),
+ request.getMethod(), JSONObject.toJSONString(result));
+ return Result.success("评论成功");
+ }
+ @PostMapping ("/exit/{userId}")
+ public Result handleExit(@PathVariable Integer userId){
+ //从数据中查询未评价的记录数
+ int unfinishedCount = commentServlce.countUnfinishedComments(userId);
+
+ if (unfinishedCount > 0){
+ //在7天后添加中评
+ LocalDateTime delayedTime = LocalDateTime.now().plusDays(7);
+ commentServlce.addDelayedComment(userId, delayedTime);
+ return Result.success("已成功添加延迟评价任务");
+ }else {
+ //没有未评价的记录不需要添加延迟任务
+ return Result.success("无需添加延迟任务评价");
+ }
+ }
+
+
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/ConsultationController.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/ConsultationController.java
new file mode 100644
index 0000000..2cbc453
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/ConsultationController.java
@@ -0,0 +1,129 @@
+package com.grail.doctor.publice.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.grail.common.core.domain.Result;
+import com.grail.doctor.publice.service.ConsultationService;
+import com.grail.publice.domain.Consultation;
+import com.grail.publice.domain.response.MiddleDiagnosisResponse;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * @ClassName : ConsultationController
+ * @Description : 公共数据问诊聊天详情
+ * @Author : YHY
+ * @Date: 2023-10-19 21:43
+ */
+@RestController
+@RequestMapping("/consultation")
+@Log4j2
+public class ConsultationController {
+
+ @Autowired
+ private ConsultationService consultationService;
+ @Autowired
+ private HttpServletRequest request;
+
+
+ /**
+ * @Description:问诊聊天详情数据
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result>
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/19 22:12
+ */
+ @GetMapping("/consultationList")
+ public Result> consultationList(){
+ log.info("功能名称:问诊聊天详情数据,请求URL:【{}】,请求方法:【{}】",request.getRequestURI(),
+ request.getMethod());
+ Result> result = consultationService.consultationList();
+ log.info("功能名称:问诊聊天详情数据,请求URL:【{}】,请求方法:【{}】",request.getRequestURI(),
+ request.getMethod());
+ return result;
+ }
+
+ /**
+ * @Description:根据Id删除某一条聊天记录
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/19 22:17
+ */
+ @PostMapping("/deleteConsultationById/{consultationId}")
+ public Result deleteConsultationById(@PathVariable("consultationId") Integer consultationId){
+ log.info("功能名称:根据Id删除某一条聊天记录,请求URL:【{}】,请求方法:【{}】,请求参数:【{}】",request.getRequestURI(),
+ request.getMethod(),consultationId);
+ consultationService.deleteConsultationById(consultationId);
+ Result result = Result.success();
+ log.info("功能名称:根据Id删除某一条聊天记录,请求URL:【{}】,请求方法:【{}】,响应结果:【{}】",request.getRequestURI(),
+ request.getMethod(), JSONObject.toJSONString(result));
+ return result;
+ }
+
+ /**
+ * @Description: 发送消息添加聊天记录
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/20 11:23
+ */
+ @PostMapping("/addConsultation")
+ public Result addConsultation(@RequestBody Consultation consultation){
+ log.info("功能名称:发送消息添加聊天记录,请求URL:【{}】,请求方法:【{}】,请求参数:【{}】",request.getRequestURI(),
+ request.getMethod(),consultation);
+ Result result = consultationService.addConsultation(consultation);
+ log.info("功能名称:发送消息添加聊天记录,请求URL:【{}】,请求方法:【{}】,响应结果:【{}】",request.getRequestURI(),
+ request.getMethod(), JSONObject.toJSONString(result));
+ return result;
+ }
+
+ /**
+ * @Description: 根据医生信息是否立即资讯改医生——资讯人数大于5时给出提示
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result>
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/20 14:30
+ */
+ @PostMapping("/ImmediateConsultation/doctorId")
+ public Result> ImmediateConsultation(@PathVariable("doctorId") Integer doctorId){
+ log.info("功能名称:根据医生信息是否立即资讯改医生,请求URL:【{}】,请求方法:【{}】,请求参数:【{}】",request.getRequestURI(),
+ request.getMethod(),doctorId);
+ Result> result = consultationService.ImmediateConsultation(doctorId);
+ log.info("功能名称:根据医生信息是否立即资讯改医生,请求URL:【{}】,请求方法:【{}】,响应结果:【{}】",request.getRequestURI(),
+ request.getMethod(), JSONObject.toJSONString(result));
+ return result;
+ }
+
+ /**
+ * @Description: 患者查看历史问诊详情
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result>
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/26 15:26
+ */
+ @GetMapping("/middleDiagnosisList")
+ public Result> middleDiagnosisList(){
+ log.info("功能名称:患者查询历史问诊,请求URL:【{}】,请求方法:【{}】",request.getRequestURI(),
+ request.getMethod());
+ Result> result = consultationService.middleDiagnosisList();
+ log.info("功能名称:患者查询历史问诊,请求URL:【{}】,请求方法:【{}】,响应结果:【{}】",request.getRequestURI(),
+ request.getMethod(),JSONObject.toJSONString(result));
+ return result;
+ }
+
+
+
+
+
+
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/DoctorController.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/DoctorController.java
new file mode 100644
index 0000000..786a392
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/controller/DoctorController.java
@@ -0,0 +1,76 @@
+package com.grail.doctor.publice.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.grail.common.core.domain.Result;
+import com.grail.doctor.publice.service.DoctorService;
+import com.grail.publice.domain.Consultation;
+import com.grail.publice.domain.Doctor;
+import com.grail.publice.domain.request.RequestDoctor;
+import com.grail.publice.domain.response.ResponseDoctor;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * @ClassName : DoctorController
+ * @Description : 医生信息
+ * @Author : YHY
+ * @Date: 2023-10-22 10:08
+ */
+@RestController
+@RequestMapping("/doctor")
+@Log4j2
+public class DoctorController {
+ @Autowired
+ private DoctorService doctorService;
+ @Autowired
+ private HttpServletRequest request;
+
+ /**
+ * @Description:查询医生信息,根据用户选择查科室及详细功能进行排序
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result>
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/22 15:40
+ */
+ @GetMapping("/doctorList")
+ public Result> doctorList(@RequestBody RequestDoctor requestDoctor){
+ log.info("功能名称:查询医生信息,根据用户选择查科室及详细功能进行排序,请求URL:【{}】,请求方法:【{}】,请求参数:【{}】",request.getRequestURI(),
+ request.getMethod(),requestDoctor);
+ Result> result = doctorService.doctorList(requestDoctor);
+ log.info("功能名称:查询医生信息,根据用户选择查科室及详细功能进行排序,请求URL:【{}】,请求方法:【{}】,响应结果:【{}】",request.getRequestURI(),
+ request.getMethod(), JSONObject.toJSONString(result));
+ return result;
+ }
+
+
+ /**
+ * @Description:根据Id查询医生详细信息
+ No such property: code for class: Script1
+ * @return: com.grail.common.core.domain.Result
+ * @Author: YHY
+ * @Updator: YHY
+ * @Date 2023/10/24 14:07
+ */
+ @GetMapping("/findDoctorById/{doctorId}")
+ public Result findDoctorById(@PathVariable("doctorId") Integer doctorId){
+ log.info("功能名称:根据Id查询医生详细信息,请求URL:【{}】,请求方法:【{}】,请求参数:【{}】",request.getRequestURI(),
+ request.getMethod(),doctorId);
+ Result result = doctorService.findDoctorById(doctorId);
+ log.info("功能名称:根据Id查询医生详细信息,请求URL:【{}】,请求方法:【{}】,响应结果:【{}】",request.getRequestURI(),
+ request.getMethod(), JSONObject.toJSONString(result));
+ return result;
+ }
+
+ @PostMapping("/updateDoctor")
+ public Result updateDoctor(@RequestBody Doctor doctor){
+ log.info("功能名称:完善修改医生信息,请求URL:【{}】,请求方法:【{}】,请求参数:【{}】",request.getRequestURI(),
+ request.getMethod(),doctor);
+ Result result = doctorService.updateDoctor(doctor);
+ return result;
+ }
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/CommentMapper.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/CommentMapper.java
new file mode 100644
index 0000000..b4f6631
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/CommentMapper.java
@@ -0,0 +1,33 @@
+package com.grail.doctor.publice.mapper;
+
+import com.grail.publice.domain.Comment;
+import com.grail.publice.domain.Gift;
+import com.grail.publice.domain.response.ResponseComment;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @ClassName : CommentMapper
+ * @Description :
+ * @Author : YHY
+ * @Date: 2023-10-24 15:25
+ */
+@Mapper
+public interface CommentMapper {
+ List commentList();
+
+ List giftList();
+
+
+
+ void addComment(Comment comment);
+
+ int countUnfinishedComments(Integer userId);
+
+ int addGift(Gift gift);
+
+ int deleteGiftById(@Param("giftId") Integer giftId);
+
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/ConsultationMapper.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/ConsultationMapper.java
new file mode 100644
index 0000000..3c33fc3
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/ConsultationMapper.java
@@ -0,0 +1,28 @@
+package com.grail.doctor.publice.mapper;
+
+import com.grail.common.core.domain.Result;
+import com.grail.publice.domain.Consultation;
+import com.grail.publice.domain.response.MiddleDiagnosisResponse;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @ClassName : ConsultationMapper
+ * @Description :
+ * @Author : YHY
+ * @Date: 2023-10-19 21:48
+ */
+@Mapper
+public interface ConsultationMapper {
+ List consultationList();
+
+ void deleteConsultationById(@Param("consultationId") Integer consultationId);
+
+ Result addConsultation(Consultation consultation);
+
+ List ImmediateConsultation(@Param("doctorId") Integer doctorId);
+
+ List middleDiagnosisList();
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/DoctorMapper.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/DoctorMapper.java
new file mode 100644
index 0000000..b39ad01
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/mapper/DoctorMapper.java
@@ -0,0 +1,25 @@
+package com.grail.doctor.publice.mapper;
+
+import com.grail.common.core.domain.Result;
+import com.grail.publice.domain.Doctor;
+import com.grail.publice.domain.request.RequestDoctor;
+import com.grail.publice.domain.response.ResponseDoctor;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @ClassName : DoctorMapper
+ * @Description :
+ * @Author : YHY
+ * @Date: 2023-10-22 10:10
+ */
+@Mapper
+public interface DoctorMapper {
+ List doctorList(RequestDoctor requestDoctor);
+
+ Result findDoctorById(@Param("doctorId") Integer doctorId);
+
+ int updateDoctor(Doctor doctor);
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/CommentServlce.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/CommentServlce.java
new file mode 100644
index 0000000..50670fe
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/CommentServlce.java
@@ -0,0 +1,32 @@
+package com.grail.doctor.publice.service;
+
+import com.grail.common.core.domain.Result;
+import com.grail.publice.domain.Comment;
+import com.grail.publice.domain.Gift;
+import com.grail.publice.domain.response.ResponseComment;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @ClassName : CommentServlce
+ * @Description :
+ * @Author : YHY
+ * @Date: 2023-10-24 15:23
+ */
+public interface CommentServlce {
+ Result> commentList();
+
+ Result> giftList();
+
+ void addComment(Comment comment);
+
+ int countUnfinishedComments(Integer userId);
+
+ void addDelayedComment(Integer userId, LocalDateTime delayedTime);
+
+
+ Result addGift(Gift gift);
+
+ Result deleteGiftById(Integer giftId);
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/ConsultationService.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/ConsultationService.java
new file mode 100644
index 0000000..a060ec7
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/ConsultationService.java
@@ -0,0 +1,25 @@
+package com.grail.doctor.publice.service;
+
+import com.grail.common.core.domain.Result;
+import com.grail.publice.domain.Consultation;
+import com.grail.publice.domain.response.MiddleDiagnosisResponse;
+
+import java.util.List;
+
+/**
+ * @ClassName : ConsultationService
+ * @Description :
+ * @Author : YHY
+ * @Date: 2023-10-19 21:47
+ */
+public interface ConsultationService {
+ Result> consultationList();
+
+ void deleteConsultationById(Integer consultationId);
+
+ Result addConsultation(Consultation consultation);
+
+ Result> ImmediateConsultation(Integer doctorId);
+
+ Result> middleDiagnosisList();
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/DoctorService.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/DoctorService.java
new file mode 100644
index 0000000..62a0f60
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/DoctorService.java
@@ -0,0 +1,22 @@
+package com.grail.doctor.publice.service;
+
+import com.grail.common.core.domain.Result;
+import com.grail.publice.domain.Doctor;
+import com.grail.publice.domain.request.RequestDoctor;
+import com.grail.publice.domain.response.ResponseDoctor;
+
+import java.util.List;
+
+/**
+ * @ClassName : DoctorService
+ * @Description :
+ * @Author : YHY
+ * @Date: 2023-10-22 10:09
+ */
+public interface DoctorService {
+ Result> doctorList(RequestDoctor requestDoctor);
+
+ Result findDoctorById(Integer doctorId);
+
+ Result updateDoctor(Doctor doctor);
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/CommentServlceimpl.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/CommentServlceimpl.java
new file mode 100644
index 0000000..90ac725
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/CommentServlceimpl.java
@@ -0,0 +1,104 @@
+package com.grail.doctor.publice.service.impl;
+
+import com.grail.common.core.domain.Result;
+import com.grail.doctor.publice.mapper.CommentMapper;
+import com.grail.doctor.publice.service.CommentServlce;
+import com.grail.publice.domain.Comment;
+import com.grail.publice.domain.Gift;
+import com.grail.publice.domain.response.ResponseComment;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
+
+/**
+ * @ClassName : CommentServlceimpl
+ * @Description : 问诊好评业务层
+ * @Author : YHY
+ * @Date: 2023-10-24 15:23
+ */
+@Service
+public class CommentServlceimpl implements CommentServlce {
+ @Autowired
+ private CommentMapper commentMapper;//注入CommenMapper实例
+ private final Timer timer;
+
+ public CommentServlceimpl() {
+ this.timer = new Timer();
+ }
+
+ @Override
+ public Result> commentList() {
+ List list = commentMapper.commentList();
+ return Result.success(list);
+ }
+
+ @Override
+ public Result> giftList() {
+ List list = commentMapper.giftList();
+ return Result.success(list);
+ }
+
+
+
+
+
+
+
+ @Override
+ public void addComment(Comment comment) {
+ //根据具体的持久框架,使用相应的方法将comment对象保存到数据库
+ //这里我们假设使用MyBatista,调用commentMapper等方法
+ commentMapper.addComment(comment);
+ }
+
+ @Override
+ public int countUnfinishedComments(Integer userId) {
+ // 根据具体的持久化框架,使用相应的方法查询未评价的记录数
+ // 这里我们假设使用MyBatis,调用commentMapper的方法
+ return commentMapper.countUnfinishedComments(userId);
+ }
+
+ @Override
+ public void addDelayedComment(Integer userId, LocalDateTime delayedTime) {
+ //计算延迟时间和当前时间之间的时间差
+ LocalDateTime now = LocalDateTime.now();
+ long delay = Duration.between(now, delayedTime).toMillis();
+
+ //创建一个 TimeTask 任务
+ TimerTask task = new TimerTask() {
+ @Override
+ public void run() {
+ //任务执行时,添加中评
+ Comment comment = new Comment();
+ comment.setCommentContent("满意");//自动给出中评
+ comment.setCommentTime(new Date()); //默认添加当前时间
+ comment.setUserId(userId); //默认给出评价的用户
+ comment.setCommentSpeciality(3); //表示医生专业度中等评价
+ comment.setCommentSatisfied(3); //表示医生满意度中等评价
+ comment.setGiftId(null); //礼物默认添加为空
+ }
+ };
+ //在指定的延迟时间后执行任务
+ timer.schedule(task, delay);
+ }
+
+ @Override
+ public Result addGift(Gift gift) {
+ int i = commentMapper.addGift(gift);
+ return i>0?Result.success(200,"礼物添加成功"):Result.error(500,"礼物添加异常,稍后再试");
+ }
+
+ @Override
+ public Result deleteGiftById(Integer giftId) {
+ int i = commentMapper.deleteGiftById(giftId);
+ return i>0?Result.success(200,"礼物已下架"):Result.success(500,"礼物下架失败");
+ }
+
+
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/ConsultationServiceimpl.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/ConsultationServiceimpl.java
new file mode 100644
index 0000000..4a33d3f
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/ConsultationServiceimpl.java
@@ -0,0 +1,58 @@
+package com.grail.doctor.publice.service.impl;
+
+import com.grail.common.core.domain.Result;
+import com.grail.doctor.publice.mapper.ConsultationMapper;
+import com.grail.doctor.publice.service.ConsultationService;
+import com.grail.publice.domain.Consultation;
+import com.grail.publice.domain.response.MiddleDiagnosisResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName : ConsultationServiceimpl
+ * @Description : 问诊聊天详情数据层
+ * @Author : YHY
+ * @Date: 2023-10-19 21:47
+ */
+@Service
+public class ConsultationServiceimpl implements ConsultationService {
+ @Autowired
+ private ConsultationMapper consultationMapper;
+
+ @Override
+ public Result> consultationList() {
+ List list = consultationMapper.consultationList();
+ return Result.success(list);
+ }
+
+ @Override
+ public void deleteConsultationById(Integer consultationId) {
+ consultationMapper.deleteConsultationById(consultationId);
+ }
+
+ @Override
+ public Result addConsultation(Consultation consultation) {
+ consultation.setConsultationTime(new Date());
+ return consultationMapper.addConsultation(consultation);
+ }
+
+ @Override
+ public Result> ImmediateConsultation(Integer doctorId) {
+ List list = consultationMapper.ImmediateConsultation(doctorId);
+ int size = list.size();
+ if (size > 5){
+ return Result.error(500,"当前医生问诊患者大于5人,请稍后在试");
+ }
+ Consultation consultation = new Consultation();
+ return consultationMapper.addConsultation(consultation);
+ }
+
+ @Override
+ public Result> middleDiagnosisList() {
+ List list = consultationMapper.middleDiagnosisList();
+ return Result.success(list);
+ }
+}
diff --git a/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/DoctorServiceimpl.java b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/DoctorServiceimpl.java
new file mode 100644
index 0000000..0ad2680
--- /dev/null
+++ b/grail-doctor-public-server/src/main/java/com/grail/doctor/publice/service/impl/DoctorServiceimpl.java
@@ -0,0 +1,42 @@
+package com.grail.doctor.publice.service.impl;
+
+import com.grail.common.core.domain.Result;
+import com.grail.doctor.publice.mapper.DoctorMapper;
+import com.grail.doctor.publice.service.DoctorService;
+import com.grail.publice.domain.Doctor;
+import com.grail.publice.domain.request.RequestDoctor;
+import com.grail.publice.domain.response.ResponseDoctor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+/**
+ * @ClassName : DoctorServiceimpl
+ * @Description : 医生信息数据层
+ * @Author : YHY
+ * @Date: 2023-10-22 10:09
+ */
+@Service
+public class DoctorServiceimpl implements DoctorService {
+ @Autowired
+ private DoctorMapper doctorMapper;
+
+ @Override
+ public Result> doctorList(RequestDoctor requestDoctor) {
+ List list = doctorMapper.doctorList(requestDoctor);
+ return Result.success(list);
+ }
+
+ @Override
+ public Result findDoctorById(Integer doctorId) {
+ return doctorMapper.findDoctorById(doctorId);
+ }
+
+ @Override
+ public Result updateDoctor(Doctor doctor) {
+ int i = doctorMapper.updateDoctor(doctor);
+ return i>0?Result.success(200,"信息完善成功"):Result.error(500,"系统异常");
+ }
+}
diff --git a/grail-doctor-public-server/src/main/resources/banner.txt b/grail-doctor-public-server/src/main/resources/banner.txt
new file mode 100644
index 0000000..0dd5eee
--- /dev/null
+++ b/grail-doctor-public-server/src/main/resources/banner.txt
@@ -0,0 +1,2 @@
+Spring Boot Version: ${spring-boot.version}
+Spring Application Name: ${spring.application.name}
diff --git a/grail-doctor-public-server/src/main/resources/bootstrap.yml b/grail-doctor-public-server/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..6202516
--- /dev/null
+++ b/grail-doctor-public-server/src/main/resources/bootstrap.yml
@@ -0,0 +1,29 @@
+# Tomcat
+server:
+ port: 10003
+
+# Spring
+spring:
+ application:
+ # 应用名称
+ name: grail-consultation
+ profiles:
+ # 环境配置
+ active: dev
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: 10.100.1.3:8848
+ config:
+ # 配置中心地址
+ server-addr: 10.100.1.3:8848
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+ rabbitmq:
+ host: 10.100.1.5
+
+
diff --git a/grail-doctor-public-server/src/main/resources/logback.xml b/grail-doctor-public-server/src/main/resources/logback.xml
new file mode 100644
index 0000000..37e8d12
--- /dev/null
+++ b/grail-doctor-public-server/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+ ${log.pattern}
+
+
+
+
+
+ ${log.path}/info.log
+
+
+
+ ${log.path}/info.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ INFO
+
+ ACCEPT
+
+ DENY
+
+
+
+
+ ${log.path}/error.log
+
+
+
+ ${log.path}/error.%d{yyyy-MM-dd}.log
+
+ 60
+
+
+ ${log.pattern}
+
+
+
+ ERROR
+
+ ACCEPT
+
+ DENY
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/grail-doctor-public-server/src/main/resources/mapper/CommentMapper.xml b/grail-doctor-public-server/src/main/resources/mapper/CommentMapper.xml
new file mode 100644
index 0000000..8835021
--- /dev/null
+++ b/grail-doctor-public-server/src/main/resources/mapper/CommentMapper.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+ insert into t_gift (
+ "gift_id",
+ "gift_name",
+ "gift_price",
+ "gift_picture") values(
+ #{giftId},
+ #{giftName},
+ #{giftPrice},
+ #{giftPicture})
+
+
+ delete from t_girt where girt_id=#{giftId}
+
+
+
+
+
+
+
+
+
+
diff --git a/grail-doctor-public-server/src/main/resources/mapper/ConsultationMapper.xml b/grail-doctor-public-server/src/main/resources/mapper/ConsultationMapper.xml
new file mode 100644
index 0000000..f5328c9
--- /dev/null
+++ b/grail-doctor-public-server/src/main/resources/mapper/ConsultationMapper.xml
@@ -0,0 +1,39 @@
+
+
+
+
+ INSERT INTO `All_healthcare`.`t_consultation`
+ (`consultation_id`,
+ `consultation_time`,
+ `consultation_content`,
+ `user_id`,
+ `doctor_id`,
+ `consultation_status`) VALUES (
+ #{consultationId},
+ #{consultationTime}',
+ #{consultationContent},
+ #{userId},
+ #{doctorId},
+ #{consultationStatus});
+
+
+ delete from t_consultation where consultation_id=#{consultationId}
+
+
+
+
+
+
diff --git a/grail-doctor-public-server/src/main/resources/mapper/DoctorMapper.xml b/grail-doctor-public-server/src/main/resources/mapper/DoctorMapper.xml
new file mode 100644
index 0000000..992b788
--- /dev/null
+++ b/grail-doctor-public-server/src/main/resources/mapper/DoctorMapper.xml
@@ -0,0 +1,45 @@
+
+
+
+
+ update t_doctor set
+ docker_name=#{dockerName},
+ doctor_hospital=#{doctorHospital},
+ doctor_career=#{doctorCareer},
+ doctor_picture=#{doctorPicture},
+ personal_profile=#{personalProfile},
+ doctor_field=#{doctorField},
+ department_id=#{departmentId},
+ reply_status=#{replyStatus},
+ reply_content=#{replyContent},
+ user_id=#{userId},
+ consultation_price=#{consultationPrice} where doctor_id=#{doctorId}
+
+
+
+
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..05f977d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,27 @@
+
+
+
+
+ com.grail
+ grail-doctor
+ 3.6.3
+
+ 3.6.3
+
+ grail-doctor-public-common
+ grail-doctor-public-remote
+ grail-doctor-public-server
+
+
+ 4.0.0
+
+
+ grail-doctor-pulic 问诊公共模块
+
+
+ grail-doctor-public
+ pom
+
+