Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
M
medical-server
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
aiming-medical
medical-server
Commits
9314f5f1
提交
9314f5f1
authored
11月 06, 2023
作者:
zhu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.develop
2.fix bug
上级
df029c88
显示空白字符变更
内嵌
并排
正在显示
29 个修改的文件
包含
363 行增加
和
50 行删除
+363
-50
SaTokenConfig.java
...in/java/com/xwd/hospital/server/config/SaTokenConfig.java
+3
-0
Constant.java
...main/java/com/xwd/hospital/server/constants/Constant.java
+5
-0
MedicalReport.java
...in/java/com/xwd/hospital/server/domain/MedicalReport.java
+3
-0
User.java
src/main/java/com/xwd/hospital/server/domain/User.java
+26
-26
DoctorAskDto.java
src/main/java/com/xwd/hospital/server/dto/DoctorAskDto.java
+31
-0
SmsCodeLoginDto.java
...ain/java/com/xwd/hospital/server/dto/SmsCodeLoginDto.java
+9
-0
MedicalReportMapper.java
...m/xwd/hospital/server/repository/MedicalReportMapper.java
+4
-1
PatientInfoMapper.java
...com/xwd/hospital/server/repository/PatientInfoMapper.java
+1
-1
CouponInfoController.java
...va/com/xwd/hospital/server/rest/CouponInfoController.java
+1
-1
FamilyDoctorController.java
.../com/xwd/hospital/server/rest/FamilyDoctorController.java
+2
-2
MedicalReportController.java
...com/xwd/hospital/server/rest/MedicalReportController.java
+17
-0
PatientInfoController.java
...a/com/xwd/hospital/server/rest/PatientInfoController.java
+8
-3
ReferralRecordController.java
...om/xwd/hospital/server/rest/ReferralRecordController.java
+9
-0
SmsController.java
...main/java/com/xwd/hospital/server/rest/SmsController.java
+24
-0
UserController.java
...ain/java/com/xwd/hospital/server/rest/UserController.java
+47
-1
MedicalReportService.java
...com/xwd/hospital/server/service/MedicalReportService.java
+5
-0
ReferralRecordService.java
...om/xwd/hospital/server/service/ReferralRecordService.java
+1
-0
UserService.java
...ain/java/com/xwd/hospital/server/service/UserService.java
+4
-0
MedicalReportServiceImpl.java
...ospital/server/service/impl/MedicalReportServiceImpl.java
+7
-4
OrderServiceImpl.java
...om/xwd/hospital/server/service/impl/OrderServiceImpl.java
+9
-0
ReferralRecordServiceImpl.java
...spital/server/service/impl/ReferralRecordServiceImpl.java
+7
-1
SmsServiceImpl.java
.../com/xwd/hospital/server/service/impl/SmsServiceImpl.java
+0
-1
UserServiceImpl.java
...com/xwd/hospital/server/service/impl/UserServiceImpl.java
+34
-0
TencentCOSUtil.java
...ain/java/com/xwd/hospital/server/util/TencentCOSUtil.java
+3
-3
TencentOCRUtil.java
...ain/java/com/xwd/hospital/server/util/TencentOCRUtil.java
+53
-0
application-prod.yml
src/main/resources/application-prod.yml
+5
-5
MedicalReportMapper.xml
src/main/resources/mappers/MedicalReportMapper.xml
+35
-0
OrderMapper.xml
src/main/resources/mappers/OrderMapper.xml
+1
-1
PatientInfoMapper.xml
src/main/resources/mappers/PatientInfoMapper.xml
+9
-0
没有找到文件。
src/main/java/com/xwd/hospital/server/config/SaTokenConfig.java
浏览文件 @
9314f5f1
...
...
@@ -42,11 +42,14 @@ public class SaTokenConfig implements WebMvcConfigurer {
.
excludePathPatterns
(
"/v1/system/user/miniAppRegister"
)
.
excludePathPatterns
(
"/v1/system/user/wxUpdate"
)
.
excludePathPatterns
(
"/v1/system/user/getPhoneNumber"
)
.
excludePathPatterns
(
"/v1/system/user/checkUserName"
)
.
excludePathPatterns
(
"/v1/system/user/smsCodeLogin"
)
.
excludePathPatterns
(
"/v1/system/sms/sendSms"
)
.
excludePathPatterns
(
"/v1/system/home/patientMiniAppHome"
)
.
excludePathPatterns
(
"/v1/system/payment/payNotify"
)
.
excludePathPatterns
(
"/v1/system/payment/refundNotify"
)
.
excludePathPatterns
(
"/v1/system/sms/callback"
)
.
excludePathPatterns
(
"/v1/system/sms/checkCode"
)
// swagger 放行
.
excludePathPatterns
(
"/webjars/**"
)
.
excludePathPatterns
(
"/doc.html"
)
...
...
src/main/java/com/xwd/hospital/server/constants/Constant.java
浏览文件 @
9314f5f1
...
...
@@ -5,6 +5,11 @@ import lombok.Data;
@Data
public
class
Constant
{
public
static
final
String
SMS_PREFIX
=
"sms_code_login_"
;
public
static
final
String
SMS_REGISTER_PREFIX
=
"sms_code_register_"
;
public
static
final
String
DOCTOR_ASKS
=
"DOCTOR_ASKS"
;
/**
* 订单未支付到期自动取消,30分钟
...
...
src/main/java/com/xwd/hospital/server/domain/MedicalReport.java
浏览文件 @
9314f5f1
...
...
@@ -155,6 +155,9 @@ public class MedicalReport extends BaseDomain {
@TableField
(
exist
=
false
)
private
List
<
String
>
pictureList
;
@TableField
(
exist
=
false
)
private
String
phoneNumber
;
/**
* 设置默认值
*/
...
...
src/main/java/com/xwd/hospital/server/domain/User.java
浏览文件 @
9314f5f1
...
...
@@ -186,32 +186,32 @@ public class User extends BaseDomain {
}
return
false
;
}
int
openIdMaxLength
=
Integer
.
valueOf
(
"50"
);
if
(
this
.
getOpenId
().
length
()
>=
openIdMaxLength
)
{
if
(
throwException
)
{
throw
new
ApiCode
.
ApiException
(-
1
,
"微信open_id长度不能大于50!"
);
}
return
false
;
}
if
(
this
.
getUserType
()
==
null
)
{
if
(
throwException
)
{
throw
new
ApiCode
.
ApiException
(-
1
,
"用户类型不能为空!"
);
}
return
false
;
}
if
(
this
.
getRegisterSource
()
==
null
)
{
if
(
throwException
)
{
throw
new
ApiCode
.
ApiException
(-
1
,
"注册来源不能为空!"
);
}
return
false
;
}
Long
objIdMax
=
Long
.
valueOf
(
"50"
);
if
(
this
.
getObjId
()
>=
objIdMax
)
{
if
(
throwException
)
{
throw
new
ApiCode
.
ApiException
(-
1
,
"关联对象(doctor_info、user_info)不能大于或等于50!"
);
}
return
false
;
}
//
int openIdMaxLength = Integer.valueOf("50");
//
if (this.getOpenId().length() >= openIdMaxLength) {
//
if (throwException) {
//
throw new ApiCode.ApiException(-1, "微信open_id长度不能大于50!");
//
}
//
return false;
//
}
//
if (this.getUserType() == null) {
//
if (throwException) {
//
throw new ApiCode.ApiException(-1, "用户类型不能为空!");
//
}
//
return false;
//
}
//
if (this.getRegisterSource() == null) {
//
if (throwException) {
//
throw new ApiCode.ApiException(-1, "注册来源不能为空!");
//
}
//
return false;
//
}
//
Long objIdMax = Long.valueOf("50");
//
if (this.getObjId() >= objIdMax) {
//
if (throwException) {
//
throw new ApiCode.ApiException(-1, "关联对象(doctor_info、user_info)不能大于或等于50!");
//
}
//
return false;
//
}
if
(
this
.
getDeleteStatus
()
==
null
)
{
if
(
throwException
)
{
throw
new
ApiCode
.
ApiException
(-
1
,
"是否删除不能为空!"
);
...
...
src/main/java/com/xwd/hospital/server/dto/DoctorAskDto.java
0 → 100644
浏览文件 @
9314f5f1
package
com
.
xwd
.
hospital
.
server
.
dto
;
import
com.xwd.hospital.server.enums.ReportStateEnum
;
import
com.xwd.hospital.server.enums.ReportTypeEnum
;
import
com.xwd.hospital.server.enums.SexTypeEnum
;
import
lombok.Data
;
@Data
public
class
DoctorAskDto
{
private
Long
id
;
private
String
patientName
;
private
String
patientPhone
;
private
String
patientIdNo
;
private
SexTypeEnum
sex
;
private
String
reportItem
;
private
ReportTypeEnum
reportType
;
private
ReportStateEnum
reportState
;
private
Integer
age
;
private
String
reportDeclare
;
private
String
reportHospital
;
/**
* 报告一声
*/
private
String
reportDoctor
;
private
java
.
util
.
Date
reportTime
;
private
String
doctorAsks
;
/**
* 医嘱医生
*/
private
String
doctorName
;
}
src/main/java/com/xwd/hospital/server/dto/SmsCodeLoginDto.java
0 → 100644
浏览文件 @
9314f5f1
package
com
.
xwd
.
hospital
.
server
.
dto
;
import
lombok.Data
;
@Data
public
class
SmsCodeLoginDto
{
private
String
phone
;
private
String
code
;
}
src/main/java/com/xwd/hospital/server/repository/MedicalReportMapper.java
浏览文件 @
9314f5f1
...
...
@@ -14,7 +14,10 @@ import java.util.List;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.toolkit.Constants
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.xwd.hospital.server.dto.DoctorAskDto
;
import
org.springframework.stereotype.Repository
;
import
org.apache.ibatis.annotations.Param
;
import
com.xwd.hospital.server.domain.MedicalReport
;
...
...
@@ -23,5 +26,5 @@ import com.xwd.hospital.server.repository.base.MedicalReportBaseMapper;
@Repository
public
interface
MedicalReportMapper
extends
MedicalReportBaseMapper
{
IPage
<
DoctorAskDto
>
queryDoctorAskList
(
@Param
(
"page"
)
Page
page
,
@Param
(
"reportState"
)
String
reportState
);
}
src/main/java/com/xwd/hospital/server/repository/PatientInfoMapper.java
浏览文件 @
9314f5f1
...
...
@@ -22,6 +22,6 @@ import com.xwd.hospital.server.repository.base.PatientInfoBaseMapper;
@Repository
public
interface
PatientInfoMapper
extends
PatientInfoBaseMapper
{
String
selectPhoneByIdNo
(
String
idNo
);
}
src/main/java/com/xwd/hospital/server/rest/CouponInfoController.java
浏览文件 @
9314f5f1
...
...
@@ -67,7 +67,7 @@ public class CouponInfoController extends BaseController<CouponInfoService, Coup
entity
.
setEditorName
(
user
.
getUsername
());
entity
.
setDefault
().
validate
(
true
);
if
(!
entity
.
getCouponEndDate
().
after
(
entity
.
getCouponStartDate
())){
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
);
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
.
getCode
(),
"优惠券有效期输入不正确"
);
}
this
.
service
.
save
(
entity
);
return
ApiResponse
.
ok
(
this
.
service
.
getById
(
entity
.
getId
()));
...
...
src/main/java/com/xwd/hospital/server/rest/FamilyDoctorController.java
浏览文件 @
9314f5f1
...
...
@@ -65,10 +65,10 @@ public class FamilyDoctorController extends BaseController<FamilyDoctorService,
public
ApiResponse
<
FamilyDoctor
>
add
(
@RequestBody
FamilyDoctor
entity
,
@AuthUser
User
user
)
{
if
(
StringUtils
.
isEmpty
(
entity
.
getIdNo
())){
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
);
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
.
getCode
(),
"身份证号码验证不正确"
);
}
if
(!
IdcardUtil
.
isValidCard
(
entity
.
getIdNo
())){
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
);
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
.
getCode
(),
"身份证号码验证不正确"
);
}
entity
.
setEditorId
(
user
.
getId
());
...
...
src/main/java/com/xwd/hospital/server/rest/MedicalReportController.java
浏览文件 @
9314f5f1
...
...
@@ -22,8 +22,12 @@ import com.xwd.hospital.server.annotation.ApiCommon;
import
com.xwd.hospital.server.annotation.AuthUser
;
import
com.xwd.hospital.server.base.BaseController
;
import
com.xwd.hospital.server.domain.User
;
import
com.xwd.hospital.server.dto.DoctorAskDto
;
import
com.xwd.hospital.server.dto.MedicalQualificationDto
;
import
com.xwd.hospital.server.dto.OrderDto
;
import
com.xwd.hospital.server.dto.ReportDto
;
import
com.xwd.hospital.server.enums.OrderStateEnum
;
import
com.xwd.hospital.server.enums.ReportStateEnum
;
import
com.xwd.hospital.server.rest.res.ApiCode
;
import
com.xwd.hospital.server.domain.MedicalReport
;
import
com.xwd.hospital.server.rest.req.MedicalReportParam
;
...
...
@@ -116,4 +120,17 @@ public class MedicalReportController extends BaseController<MedicalReportService
return
ApiResponse
.
ok
(
this
.
service
.
myDoctorAsk
());
}
/**
* 医生医嘱列表
*
*/
@GetMapping
(
"/queryDoctorAskList"
)
@Operation
(
summary
=
"医生医嘱列表"
)
public
ApiResponse
queryDoctorAskList
(
@RequestParam
(
value
=
"state"
,
required
=
false
)
ReportStateEnum
state
,
@RequestParam
(
value
=
"pageNum"
,
defaultValue
=
"1"
)
Integer
pageNum
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
Page
<
DoctorAskDto
>
page
=
new
Page
<>(
pageNum
,
pageSize
);
return
ApiResponse
.
ok
(
this
.
service
.
queryDoctorAskList
(
page
,
null
==
state
?
null
:
state
.
toString
()));
}
}
src/main/java/com/xwd/hospital/server/rest/PatientInfoController.java
浏览文件 @
9314f5f1
...
...
@@ -64,16 +64,21 @@ public class PatientInfoController extends BaseController<PatientInfoService, Pa
@Override
public
ApiResponse
<
PatientInfo
>
add
(
@RequestBody
PatientInfo
entity
,
@AuthUser
User
user
)
{
if
(
StringUtils
.
isEmpty
(
entity
.
getIdNo
())){
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
);
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
.
getCode
(),
"身份证号码验证不正确"
);
}
if
(!
IdcardUtil
.
isValidCard
(
entity
.
getIdNo
())){
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
);
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
.
getCode
(),
"身份证号码验证不正确"
);
}
if
(!
StringUtils
.
isEmpty
(
entity
.
getGuardianIdentificationNumber
())){
if
(!
IdcardUtil
.
isValidCard
(
entity
.
getGuardianIdentificationNumber
())){
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
);
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
.
getCode
(),
"监护人身份证号码验证不正确"
);
}
}
PatientInfo
one
=
this
.
service
.
getOne
(
Wrappers
.<
PatientInfo
>
lambdaQuery
().
eq
(
PatientInfo:
:
getIdNo
,
entity
.
getIdNo
())
.
eq
(
PatientInfo:
:
getUserInfoId
,
entity
.
getUserInfoId
()));
if
(
null
!=
one
){
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
.
getCode
(),
"此就诊人身份证号已添加"
);
}
entity
.
setEditorId
(
user
.
getId
());
entity
.
setEditorName
(
user
.
getUsername
());
entity
.
setDefault
().
validate
(
true
);
...
...
src/main/java/com/xwd/hospital/server/rest/ReferralRecordController.java
浏览文件 @
9314f5f1
...
...
@@ -87,5 +87,14 @@ public class ReferralRecordController extends BaseController<ReferralRecordServi
return
ApiResponse
.
ok
(
this
.
service
.
saveBatch
(
entityList
));
}
/**
* 审核
*/
@PostMapping
(
"/audit"
)
@Operation
(
summary
=
"审核"
)
public
ApiResponse
<
Boolean
>
audit
(
@RequestBody
ReferralRecord
entity
,
@AuthUser
User
user
)
{
return
ApiResponse
.
ok
(
this
.
service
.
audit
(
entity
));
}
}
src/main/java/com/xwd/hospital/server/rest/SmsController.java
浏览文件 @
9314f5f1
package
com
.
xwd
.
hospital
.
server
.
rest
;
import
com.xwd.hospital.server.annotation.ApiCommon
;
import
com.xwd.hospital.server.constants.Constant
;
import
com.xwd.hospital.server.dto.PatientMiniAppHomeDto
;
import
com.xwd.hospital.server.rest.res.ApiCode
;
import
com.xwd.hospital.server.rest.res.ApiResponse
;
import
com.xwd.hospital.server.service.RedisService
;
import
com.xwd.hospital.server.service.SmsService
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
jakarta.annotation.Resource
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
@Slf4j
...
...
@@ -17,6 +21,8 @@ import org.springframework.web.bind.annotation.*;
public
class
SmsController
{
@Resource
private
SmsService
smsService
;
@Resource
private
RedisService
redisService
;
/**
* <pre>
...
...
@@ -30,6 +36,24 @@ public class SmsController {
return
ApiResponse
.
ok
(
smsService
.
sendSms
(
phone
));
}
/**
* <pre>
* 校验短信验证码
* </pre>
*/
@Operation
(
summary
=
"校验短信验证码"
)
@PostMapping
(
"/checkCode"
)
@ApiCommon
public
ApiResponse
checkCode
(
@RequestParam
(
"phone"
)
String
phone
,
@RequestParam
(
"code"
)
String
code
)
{
String
authCode
=
redisService
.
get
(
Constant
.
SMS_PREFIX
+
phone
);
if
(
StringUtils
.
isBlank
(
code
)
||
StringUtils
.
isBlank
(
code
)
||
!
authCode
.
equals
(
code
))
{
return
ApiResponse
.
fail
(-
1
,
"短信验证码不正确"
);
}
return
ApiResponse
.
ok
(
null
);
}
/**
* <pre>
* 绑定手机号码
...
...
src/main/java/com/xwd/hospital/server/rest/UserController.java
浏览文件 @
9314f5f1
...
...
@@ -31,6 +31,7 @@ import com.xwd.hospital.server.domain.User;
import
com.xwd.hospital.server.rest.req.UserParam
;
import
com.xwd.hospital.server.rest.res.ApiResponse
;
import
com.xwd.hospital.server.service.UserService
;
import
com.xwd.hospital.server.util.TencentOCRUtil
;
import
io.swagger.v3.oas.annotations.Operation
;
import
io.swagger.v3.oas.annotations.tags.Tag
;
import
jakarta.annotation.Resource
;
...
...
@@ -56,6 +57,8 @@ public class UserController extends BaseController<UserService, User, UserParam>
public
void
setService
(
UserService
service
)
{
this
.
service
=
service
;
}
@Resource
public
TencentOCRUtil
tencentOCRUtil
;
/**
* 新增
...
...
@@ -164,6 +167,25 @@ public class UserController extends BaseController<UserService, User, UserParam>
return
ApiResponse
.
ok
(
result
);
}
/**
* <pre>
* 管理端用户短信验证码登陆接口
* </pre>
*/
@Operation
(
summary
=
"管理端用户短信验证码登陆接口"
)
@PostMapping
(
"/smsCodeLogin"
)
@ApiCommon
public
ApiResponse
<
Map
>
smsCodeLogin
(
@RequestBody
SmsCodeLoginDto
dto
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
User
loginUser
=
this
.
service
.
smsCodeLogin
(
dto
.
getPhone
(),
dto
.
getCode
());
result
.
put
(
"userInfo"
,
loginUser
);
var
loginModel
=
new
SaLoginModel
();
loginModel
.
setExtra
(
"userId"
,
loginUser
.
getId
());
StpUtil
.
login
(
loginUser
.
getUsername
(),
loginModel
);
result
.
put
(
"token"
,
StpUtil
.
getTokenValue
());
return
ApiResponse
.
ok
(
result
);
}
/**
* <pre>
* 用户登出接口
...
...
@@ -189,6 +211,18 @@ public class UserController extends BaseController<UserService, User, UserParam>
return
ApiResponse
.
ok
(
this
.
service
.
register
(
user
,
"ROLE_USER"
));
}
/**
* <pre>
* 检查用户名
* </pre>
*/
@Operation
(
summary
=
"检查用户名"
)
@PostMapping
(
"/checkUserName"
)
@ApiCommon
public
ApiResponse
<
Boolean
>
checkUserName
(
@RequestParam
(
"username"
)
String
username
)
{
return
ApiResponse
.
ok
(
this
.
service
.
checkUserName
(
username
));
}
/**
* <pre>
* 微信获取用户手机号码接口
...
...
@@ -212,7 +246,7 @@ public class UserController extends BaseController<UserService, User, UserParam>
public
ApiResponse
updateUserInfo
(
@RequestBody
UpdateUserInfoDto
updateInfoDto
,
@AuthUser
User
user
)
{
UserDto
userDto
=
this
.
service
.
updateUserInfo
(
updateInfoDto
);
if
(
null
==
userDto
){
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
);
return
ApiResponse
.
fail
(
ApiCode
.
FAILED
.
getCode
(),
"身份证号码验证不正确"
);
}
else
{
return
ApiResponse
.
ok
(
userDto
);
}
...
...
@@ -356,4 +390,16 @@ public class UserController extends BaseController<UserService, User, UserParam>
}
return
ApiResponse
.
ok
(
null
);
}
/**
* <pre>
* 身份证OCR识别
* </pre>
*/
@Operation
(
summary
=
"身份证OCR识别"
)
@PostMapping
(
"/idCardOCR"
)
@ApiCommon
public
ApiResponse
idCardOCR
(
@AuthUser
User
user
,
@RequestBody
String
image
)
{
return
ApiResponse
.
ok
(
tencentOCRUtil
.
idCardOcr
(
image
));
}
}
src/main/java/com/xwd/hospital/server/service/MedicalReportService.java
浏览文件 @
9314f5f1
...
...
@@ -9,8 +9,12 @@
package
com
.
xwd
.
hospital
.
server
.
service
;
import
java.util.List
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.xwd.hospital.server.base.BaseService
;
import
com.xwd.hospital.server.domain.MedicalReport
;
import
com.xwd.hospital.server.dto.DoctorAskDto
;
import
com.xwd.hospital.server.dto.ReportDto
;
import
com.xwd.hospital.server.rest.req.MedicalReportParam
;
...
...
@@ -20,4 +24,5 @@ public interface MedicalReportService extends BaseService<MedicalReport> {
MedicalReport
myDoctorAsk
();
IPage
<
DoctorAskDto
>
queryDoctorAskList
(
Page
page
,
String
state
);
}
src/main/java/com/xwd/hospital/server/service/ReferralRecordService.java
浏览文件 @
9314f5f1
...
...
@@ -15,4 +15,5 @@ import com.xwd.hospital.server.rest.req.ReferralRecordParam;
public
interface
ReferralRecordService
extends
BaseService
<
ReferralRecord
>
{
boolean
audit
(
ReferralRecord
entity
);
}
src/main/java/com/xwd/hospital/server/service/UserService.java
浏览文件 @
9314f5f1
...
...
@@ -52,6 +52,10 @@ public interface UserService extends BaseService<User> {
*/
User
selectByUsername
(
String
username
);
boolean
checkUserName
(
String
username
);
User
smsCodeLogin
(
String
phone
,
String
code
);
/**
* 小程序登录
* @return
...
...
src/main/java/com/xwd/hospital/server/service/impl/MedicalReportServiceImpl.java
浏览文件 @
9314f5f1
...
...
@@ -17,7 +17,10 @@ import cn.dev33.satoken.stp.StpUtil;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.IdcardUtil
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.xwd.hospital.server.domain.*
;
import
com.xwd.hospital.server.dto.DoctorAskDto
;
import
com.xwd.hospital.server.dto.ReportDto
;
import
com.xwd.hospital.server.enums.PatientRelationEnum
;
import
com.xwd.hospital.server.enums.ReportStateEnum
;
...
...
@@ -152,9 +155,9 @@ public class MedicalReportServiceImpl extends ServiceImpl<MedicalReportMapper, M
return
medicalReport
;
}
public
static
void
main
(
String
[]
args
)
{
DateTime
birthday
=
DateUtil
.
parse
(
IdcardUtil
.
getBirthByIdCard
(
"321088199311287715"
));
String
format
=
DateUtil
.
format
(
birthday
,
"yyyy-MM-dd"
);
System
.
out
.
println
(
format
);
@Override
public
IPage
<
DoctorAskDto
>
queryDoctorAskList
(
Page
page
,
String
state
)
{
return
this
.
getBaseMapper
().
queryDoctorAskList
(
page
,
state
);
}
}
src/main/java/com/xwd/hospital/server/service/impl/OrderServiceImpl.java
浏览文件 @
9314f5f1
...
...
@@ -20,6 +20,7 @@ import com.xwd.hospital.server.constants.Constant;
import
com.xwd.hospital.server.domain.*
;
import
com.xwd.hospital.server.dto.*
;
import
com.xwd.hospital.server.enums.*
;
import
com.xwd.hospital.server.rest.res.ApiCode
;
import
com.xwd.hospital.server.service.*
;
import
jakarta.annotation.Resource
;
import
com.baomidou.mybatisplus.core.enums.SqlMethod
;
...
...
@@ -131,6 +132,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
}
User
sysUser
=
userService
.
getById
(
Long
.
valueOf
(
userId
.
toString
()));
Date
date
=
new
Date
();
if
(
createOrderDto
.
getOrderType
()
!=
OrderTypeEnum
.
PRESCRIPTION
){
if
(
createOrderDto
.
getAppointmentDate
().
before
(
date
)){
throw
new
ApiCode
.
ApiException
(-
1
,
"预约日期不得早于当前时间!"
);
}
}
Order
order
=
new
Order
();
//写入订单相关记录记录
order
.
setUserInfoId
(
userInfo
.
getId
());
...
...
src/main/java/com/xwd/hospital/server/service/impl/ReferralRecordServiceImpl.java
浏览文件 @
9314f5f1
...
...
@@ -13,6 +13,7 @@ import java.util.List;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
cn.dev33.satoken.stp.StpUtil
;
import
jakarta.annotation.Resource
;
import
com.baomidou.mybatisplus.core.enums.SqlMethod
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
...
...
@@ -48,5 +49,10 @@ public class ReferralRecordServiceImpl extends ServiceImpl<ReferralRecordMapper,
return
executeBatch
(
entityList
,
batchSize
,
(
sqlSession
,
entity
)
->
sqlSession
.
insert
(
sqlStatement
,
entity
));
}
@Override
public
boolean
audit
(
ReferralRecord
entity
)
{
Object
userId
=
StpUtil
.
getExtra
(
"userId"
);
entity
.
setAuditId
(
Long
.
valueOf
(
userId
.
toString
()));
return
this
.
saveOrUpdate
(
entity
);
}
}
src/main/java/com/xwd/hospital/server/service/impl/SmsServiceImpl.java
浏览文件 @
9314f5f1
...
...
@@ -72,7 +72,6 @@ public class SmsServiceImpl implements SmsService {
// 生成一个100000到999999之间的随机整数
int
randomNumber
=
random
.
nextInt
(
900000
)
+
100000
;
//调用短信sdk发送短信
//todo 暂时屏蔽短信接口
sendAuth
(
String
.
valueOf
(
randomNumber
),
phoneNumber
);
//存入redis中,缓存默认5分钟失效
redisService
.
setExpire
(
Constant
.
SMS_PREFIX
+
phoneNumber
,
String
.
valueOf
(
randomNumber
),
5
,
TimeUnit
.
MINUTES
);
...
...
src/main/java/com/xwd/hospital/server/service/impl/UserServiceImpl.java
浏览文件 @
9314f5f1
...
...
@@ -156,6 +156,13 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
if
(
existUser
!=
null
)
{
throw
new
ApiCode
.
ApiException
(-
2
,
"用户已注册,请登录!"
);
}
User
checkUser
=
this
.
getOne
(
Wrappers
.<
User
>
query
().
eq
(
"phone"
,
user
.
getPhone
()).
eq
(
"user_type"
,
UserTypeEnum
.
ADMIN
));
if
(
checkUser
!=
null
)
{
throw
new
ApiCode
.
ApiException
(-
2
,
"该手机号已注册,请登录!"
);
}
user
.
setUserType
(
UserTypeEnum
.
ADMIN
);
user
.
setRegisterSource
(
RegisterSourceEnum
.
PLATFORM
);
user
.
setDeleteStatus
(
YesNoEnum
.
NO
);
this
.
save
(
user
);
// 分配默认角色给用户
Role
defaultRole
=
this
.
roleMapper
.
selectOne
(
Wrappers
.<
Role
>
lambdaQuery
().
eq
(
Role:
:
getName
,
roleName
));
...
...
@@ -170,6 +177,33 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
return
this
.
getOne
(
Wrappers
.<
User
>
query
().
eq
(
"username"
,
username
));
}
@Override
public
boolean
checkUserName
(
String
username
)
{
User
user
=
this
.
getOne
(
Wrappers
.<
User
>
query
().
eq
(
"username"
,
username
));
if
(
null
==
user
){
return
true
;
}
else
{
return
false
;
}
}
@Override
public
User
smsCodeLogin
(
String
phone
,
String
code
)
{
String
authCode
=
redisService
.
get
(
Constant
.
SMS_PREFIX
+
phone
);
if
(
StringUtils
.
isBlank
(
code
)
||
StringUtils
.
isBlank
(
code
)
||
!
authCode
.
equals
(
code
))
{
throw
new
ApiCode
.
ApiException
(-
1
,
"短信验证码不正确"
);
}
// 判断用户名是否存在
User
user
=
this
.
getOne
(
Wrappers
.<
User
>
query
().
eq
(
"phone"
,
phone
).
eq
(
"user_type"
,
UserTypeEnum
.
ADMIN
));
if
(
user
!=
null
)
{
return
user
;
}
else
{
throw
new
ApiCode
.
ApiException
(-
1
,
"该用户不存在,请先注册"
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
save
(
User
entity
)
{
...
...
src/main/java/com/xwd/hospital/server/util/TencentCOSUtil.java
浏览文件 @
9314f5f1
...
...
@@ -26,11 +26,11 @@ public class TencentCOSUtil {
private
static
String
secretId
=
"AKIDhM2Wpy0TjneHhuwpSoxseOBrhMqDh1GK"
;
// 子账户的SecretKey
private
static
String
secretKey
=
"53zrjX7hPvcBjJ1d1gDWeyaHNOGwNYff"
;
//文件上传后访问路径的根路径
,后面要最佳文件名字与类型
//文件上传后访问路径的根路径
private
static
String
rootSrc
=
"https://medical-server-1321105819.cos.ap-shanghai.myqcloud.com/"
;
//上传的存储桶的地域
,可参考根路径https://qq-test-1303******.cos.地域.myqcloud.com
,此参数在COS的后台能查询。
//上传的存储桶的地域,此参数在COS的后台能查询。
private
static
String
bucketAddr
=
"ap-shanghai"
;
//存储桶的名字,是自己在存储空间自己创建的
,我创建的名字是:qq-test-1303******
//存储桶的名字,是自己在存储空间自己创建的
private
static
String
bucketName
=
"medical-server-1321105819"
;
/**
...
...
src/main/java/com/xwd/hospital/server/util/TencentOCRUtil.java
0 → 100644
浏览文件 @
9314f5f1
package
com
.
xwd
.
hospital
.
server
.
util
;
import
com.qcloud.cos.COSClient
;
import
com.tencentcloudapi.common.Credential
;
import
com.tencentcloudapi.common.exception.TencentCloudSDKException
;
import
com.tencentcloudapi.ocr.v20181119.OcrClient
;
import
com.tencentcloudapi.ocr.v20181119.models.IDCardOCRRequest
;
import
com.tencentcloudapi.ocr.v20181119.models.IDCardOCRResponse
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.stereotype.Component
;
@Component
@Slf4j
public
class
TencentOCRUtil
{
// 子账户的SecretId
private
static
String
secretId
=
"AKIDhM2Wpy0TjneHhuwpSoxseOBrhMqDh1GK"
;
// 子账户的SecretKey
private
static
String
secretKey
=
"53zrjX7hPvcBjJ1d1gDWeyaHNOGwNYff"
;
//地区
private
static
String
region
=
"ap-shanghai"
;
private
static
OcrClient
getOCRClient
()
{
Credential
credential
=
new
Credential
(
secretId
,
secretKey
);
OcrClient
ocrClient
=
new
OcrClient
(
credential
,
region
);
return
ocrClient
;
}
public
IDCardOCRResponse
idCardOcr
(
String
imageBase64String
)
{
if
(
StringUtils
.
isEmpty
(
imageBase64String
)){
return
null
;
}
IDCardOCRResponse
idCardOCRResponse
=
null
;
OcrClient
OCRClient
=
getOCRClient
();
IDCardOCRRequest
idCardOCRRequest
=
new
IDCardOCRRequest
();
idCardOCRRequest
.
setImageBase64
(
imageBase64String
);
idCardOCRRequest
.
setCardSide
(
"FRONT"
);
try
{
log
.
info
(
"开始OCR识别身份证-----------------------"
);
idCardOCRResponse
=
OCRClient
.
IDCardOCR
(
idCardOCRRequest
);
log
.
info
(
"OCR识别身份证结束-----------------------"
);
log
.
info
(
"姓名"
+
idCardOCRResponse
.
getName
());
log
.
info
(
"idNo"
+
idCardOCRResponse
.
getIdNum
());
}
catch
(
TencentCloudSDKException
e
){
log
.
error
(
e
.
getMessage
());
return
null
;
}
return
idCardOCRResponse
;
}
}
src/main/resources/application-prod.yml
浏览文件 @
9314f5f1
...
...
@@ -33,11 +33,11 @@ wx:
msgDataFormat
:
JSON
pay
:
wx
:
appId
:
wx
c447fccb6a2745ce
merchantId
:
1
535738101
keyPath
:
/home/ubuntu/1
535738101_2023101
2_cert/apiclient_key.pem
merchantSerialNumber
:
52849767F52ACCC2743E0C5439F3EAFA816FA1D7
apiV3Key
:
YG1e4n9oBPhuuYZaP7arXy232ejma6FW
appId
:
wx
508b7d59b1a20314
merchantId
:
1
658241598
keyPath
:
/home/ubuntu/1
658241598_2023110
2_cert/apiclient_key.pem
merchantSerialNumber
:
2DEF0D3F1BCA883B5D065909E7D4B6AE40D95F40
apiV3Key
:
NC3nfoMdfaxnatkxXi6Bt4RMUFZBJLwF
payNotifyUrl
:
http://175.24.172.212:8099/v1/system/payment/payNotify
refundNotifyUrl
:
http://175.24.172.212:8099/v1/system/payment/refundNotify
tencent
:
...
...
src/main/resources/mappers/MedicalReportMapper.xml
浏览文件 @
9314f5f1
...
...
@@ -36,4 +36,39 @@
from pms_medical_report
${ew.customSqlSegment}
</select>
<select
id=
"queryDoctorAskList"
resultType=
"com.xwd.hospital.server.dto.DoctorAskDto"
>
SELECT
r.id,
r.patient_name,
r.patient_id_no,
p.phone_number AS patientPhone,
r.sex,
r.report_item,
r.report_state,
r.report_type,
r.age,
r.report_declare,
r.report_hospital,
r.report_doctor,
r.report_time,
r.doctor_asks,
d.doctor_name
FROM pms_medical_report r
LEFT JOIN (
SELECT id_no, phone_number
FROM (
SELECT id_no, phone_number, create_time,
ROW_NUMBER() OVER(PARTITION BY id_no ORDER BY create_time DESC) AS rn
FROM pms_patient_info
) t
WHERE t.rn = 1
) p ON r.patient_id_no = p.id_no
left join pms_doctor_info d on d.id = r.doctor_id
WHERE r.report_state != 'TO_INTERPRET' AND p.phone_number IS NOT NULL
<if
test=
"reportState != null and reportState != ''"
>
AND r.report_state = #{reportState}
</if>
</select>
</mapper>
src/main/resources/mappers/OrderMapper.xml
浏览文件 @
9314f5f1
...
...
@@ -72,7 +72,7 @@
INNER JOIN pms_medical_qualifications pmq on pmq.doctor_id = di.id
INNER JOIN pms_department_info pdi on pdi.id = pmq.department_id
INNER JOIN sys_user su on su.obj_id = di.id
WHERE pdi.hidden_status = 'NO' and di.id in (select a.doctorId FROM
WHERE
su.user_type = 'DOCTOR' and
pdi.hidden_status = 'NO' and di.id in (select a.doctorId FROM
(SELECT count(o.id) orderNum, o.doctor_id doctorId
FROM pms_order o
WHERE 1=1 GROUP BY o.doctor_id ORDER BY orderNum desc LIMIT 3) a)
...
...
src/main/resources/mappers/PatientInfoMapper.xml
浏览文件 @
9314f5f1
...
...
@@ -36,4 +36,13 @@
from pms_patient_info
${ew.customSqlSegment}
</select>
<select
id=
"selectPhoneByIdNo"
resultType=
"string"
>
select
phone_number
from pms_patient_info
where id_no = #{idNo}
and delete_status = 'NO' and phone_number is not null
order by create_time desc limit 1
</select>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论