修改 处理科室问题-更新云证书
This commit is contained in:
parent
9949125252
commit
85c2cc8d56
@ -83,6 +83,14 @@ func (r *UserDoctor) GetUserDoctor(c *gin.Context) {
|
|||||||
|
|
||||||
// PutUserDoctor 修改医生
|
// PutUserDoctor 修改医生
|
||||||
func (r *UserDoctor) PutUserDoctor(c *gin.Context) {
|
func (r *UserDoctor) PutUserDoctor(c *gin.Context) {
|
||||||
|
// 开始事务
|
||||||
|
tx := global.Db.Begin()
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil {
|
||||||
|
tx.Rollback()
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
userDoctorRequest := requests.UserDoctorRequest{}
|
userDoctorRequest := requests.UserDoctorRequest{}
|
||||||
req := userDoctorRequest.PutUserDoctor
|
req := userDoctorRequest.PutUserDoctor
|
||||||
if err := c.ShouldBindJSON(&req); err != nil {
|
if err := c.ShouldBindJSON(&req); err != nil {
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import (
|
|||||||
"hospital-admin-api/api/dto"
|
"hospital-admin-api/api/dto"
|
||||||
"hospital-admin-api/api/model"
|
"hospital-admin-api/api/model"
|
||||||
"hospital-admin-api/api/requests"
|
"hospital-admin-api/api/requests"
|
||||||
|
"hospital-admin-api/config"
|
||||||
"hospital-admin-api/extend/aliyun"
|
"hospital-admin-api/extend/aliyun"
|
||||||
"hospital-admin-api/extend/ca"
|
"hospital-admin-api/extend/ca"
|
||||||
"strconv"
|
"strconv"
|
||||||
@ -104,6 +105,12 @@ func (r *UserCaCertService) AddUserCloudCert(tx *gorm.DB, userId int64) (bool, e
|
|||||||
return false, errors.New(err.Error())
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 到期时间-测试:180,正式:365
|
||||||
|
CertExpireTime := model.LocalTime(time.Now().AddDate(0, 0, 180))
|
||||||
|
if config.C.Env == "prod" {
|
||||||
|
CertExpireTime = model.LocalTime(time.Now().AddDate(0, 0, 365))
|
||||||
|
}
|
||||||
|
|
||||||
// 新增ca监管证书表
|
// 新增ca监管证书表
|
||||||
userCaCert = &model.UserCaCert{
|
userCaCert = &model.UserCaCert{
|
||||||
UserId: &userId,
|
UserId: &userId,
|
||||||
@ -117,7 +124,7 @@ func (r *UserCaCertService) AddUserCloudCert(tx *gorm.DB, userId int64) (bool, e
|
|||||||
IsSignConfig: 0,
|
IsSignConfig: 0,
|
||||||
SignConfig: "",
|
SignConfig: "",
|
||||||
CertApplicationTime: model.LocalTime(time.Now()),
|
CertApplicationTime: model.LocalTime(time.Now()),
|
||||||
CertExpireTime: model.LocalTime(time.Now().AddDate(0, 0, 180)), // 180天以后的时间
|
CertExpireTime: CertExpireTime, // 180天以后的时间
|
||||||
}
|
}
|
||||||
|
|
||||||
userCaCert, err = userCaCertDao.AddUserCaCert(tx, userCaCert)
|
userCaCert, err = userCaCertDao.AddUserCaCert(tx, userCaCert)
|
||||||
|
|||||||
@ -102,19 +102,9 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo
|
|||||||
doctorBankCardDao := dao.DoctorBankCardDao{}
|
doctorBankCardDao := dao.DoctorBankCardDao{}
|
||||||
doctorBankCard, _ := doctorBankCardDao.GetDoctorBankCardByDoctorId(doctorId)
|
doctorBankCard, _ := doctorBankCardDao.GetDoctorBankCardByDoctorId(doctorId)
|
||||||
|
|
||||||
// 获取医生云证书
|
|
||||||
userCaCertDao := dao.UserCaCertDao{}
|
|
||||||
|
|
||||||
maps := make(map[string]interface{})
|
|
||||||
maps["user_id"] = userDoctor.UserId
|
|
||||||
maps["type"] = 2
|
|
||||||
maps["is_latest"] = 1
|
|
||||||
userCaCert, _ := userCaCertDao.GetUserCaCert(maps)
|
|
||||||
|
|
||||||
userDoctorData := make(map[string]interface{}) // 医生数据
|
userDoctorData := make(map[string]interface{}) // 医生数据
|
||||||
userDoctorInfoData := make(map[string]interface{}) // 医生详情数据
|
userDoctorInfoData := make(map[string]interface{}) // 医生详情数据
|
||||||
userData := make(map[string]interface{}) // 用户数据
|
userData := make(map[string]interface{}) // 用户数据
|
||||||
userCaCertData := make(map[string]interface{}) // 用户云证书
|
|
||||||
|
|
||||||
// 处理头像
|
// 处理头像
|
||||||
avatar := utils.RemoveOssDomain(req.Avatar)
|
avatar := utils.RemoveOssDomain(req.Avatar)
|
||||||
@ -135,7 +125,7 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo
|
|||||||
}
|
}
|
||||||
|
|
||||||
if departmentCustomId == 0 && userDoctor.DepartmentCustomId != 0 {
|
if departmentCustomId == 0 && userDoctor.DepartmentCustomId != 0 {
|
||||||
return false, errors.New("未选择新的科室")
|
return false, errors.New("未选择科室")
|
||||||
}
|
}
|
||||||
if userDoctor.DepartmentCustomId != departmentCustomId || userDoctor.DepartmentCustomName != req.DepartmentCustomName {
|
if userDoctor.DepartmentCustomId != departmentCustomId || userDoctor.DepartmentCustomName != req.DepartmentCustomName {
|
||||||
// 获取科室数据
|
// 获取科室数据
|
||||||
@ -210,10 +200,6 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo
|
|||||||
licenseCert = strings.Join(result, ",")
|
licenseCert = strings.Join(result, ",")
|
||||||
}
|
}
|
||||||
if userDoctorInfo.LicenseCert != licenseCert {
|
if userDoctorInfo.LicenseCert != licenseCert {
|
||||||
if userDoctor.IdenAuthStatus == 3 {
|
|
||||||
// 如果认证失败,修改属性会重新进入待审核
|
|
||||||
userDoctorData["iden_auth_status"] = 2
|
|
||||||
}
|
|
||||||
userDoctorInfoData["license_cert"] = licenseCert
|
userDoctorInfoData["license_cert"] = licenseCert
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,10 +214,6 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo
|
|||||||
qualificationCert = strings.Join(result, ",")
|
qualificationCert = strings.Join(result, ",")
|
||||||
}
|
}
|
||||||
if userDoctorInfo.QualificationCert != qualificationCert {
|
if userDoctorInfo.QualificationCert != qualificationCert {
|
||||||
if userDoctor.IdenAuthStatus == 3 {
|
|
||||||
// 如果认证失败,修改属性会重新进入待审核
|
|
||||||
userDoctorData["iden_auth_status"] = 2
|
|
||||||
}
|
|
||||||
userDoctorInfoData["qualification_cert"] = qualificationCert
|
userDoctorInfoData["qualification_cert"] = qualificationCert
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,10 +228,6 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo
|
|||||||
workCert = strings.Join(result, ",")
|
workCert = strings.Join(result, ",")
|
||||||
}
|
}
|
||||||
if userDoctorInfo.WorkCert != workCert {
|
if userDoctorInfo.WorkCert != workCert {
|
||||||
if userDoctor.IdenAuthStatus == 3 {
|
|
||||||
// 如果认证失败,修改属性会重新进入待审核
|
|
||||||
userDoctorData["iden_auth_status"] = 2
|
|
||||||
}
|
|
||||||
userDoctorInfoData["work_cert"] = workCert
|
userDoctorInfoData["work_cert"] = workCert
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -318,36 +296,16 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 处理身份审核状态
|
||||||
|
if userDoctor.Avatar != avatar || userDoctor.DepartmentCustomMobile != req.DepartmentCustomMobile || userDoctor.DepartmentCustomId != departmentCustomId || userDoctor.DepartmentCustomName != req.DepartmentCustomName || userDoctor.BriefIntroduction != req.BriefIntroduction || userDoctor.BeGoodAt != req.BeGoodAt || userDoctorInfo.LicenseCert != licenseCert || userDoctorInfo.QualificationCert != qualificationCert || userDoctorInfo.WorkCert != workCert {
|
||||||
|
if userDoctor.IdenAuthStatus == 3 {
|
||||||
|
// 如果认证失败,修改属性会重新进入待审核
|
||||||
|
userDoctorData["iden_auth_status"] = 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 处理多点状态更新问题
|
// 处理多点状态更新问题
|
||||||
if signImage != "" && idCardBack != "" && idCardFront != "" {
|
if signImage != "" && idCardBack != "" && idCardFront != "" {
|
||||||
// 任何情况下科室修改,多点进入待审核
|
|
||||||
if userDoctor.DepartmentCustomId != departmentCustomId {
|
|
||||||
if userDoctor.MultiPointStatus == 2 {
|
|
||||||
return false, errors.New("多点执业审核中,请操作后进行修改")
|
|
||||||
}
|
|
||||||
|
|
||||||
userDoctorData["multi_point_status"] = 2
|
|
||||||
userDoctorData["multi_point_fail_reason"] = ""
|
|
||||||
|
|
||||||
// 检测是否存在正在审核中的处方
|
|
||||||
orderPrescriptionDao := dao.OrderPrescriptionDao{}
|
|
||||||
|
|
||||||
maps := make(map[string]interface{})
|
|
||||||
maps["doctor_id"] = doctorId
|
|
||||||
maps["prescription_status"] = 1
|
|
||||||
orderPrescription, err := orderPrescriptionDao.GetList(maps)
|
|
||||||
if err != nil {
|
|
||||||
return false, errors.New("修改失败")
|
|
||||||
}
|
|
||||||
if len(orderPrescription) > 0 {
|
|
||||||
return false, errors.New("存在审核中的处方,请勿修改科室数据")
|
|
||||||
}
|
|
||||||
|
|
||||||
if userCaCert != nil {
|
|
||||||
userCaCertData["is_latest"] = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 审核失败、未审核情况下,如果数据存在修改,重新进入待审核
|
// 审核失败、未审核情况下,如果数据存在修改,重新进入待审核
|
||||||
if userDoctor.MultiPointStatus == 0 || userDoctor.MultiPointStatus == 3 {
|
if userDoctor.MultiPointStatus == 0 || userDoctor.MultiPointStatus == 3 {
|
||||||
if signImage != userDoctorInfo.SignImage || idCardBack != userDoctorInfo.IdCardBack || idCardFront != userDoctorInfo.IdCardFront {
|
if signImage != userDoctorInfo.SignImage || idCardBack != userDoctorInfo.IdCardBack || idCardFront != userDoctorInfo.IdCardFront {
|
||||||
@ -644,12 +602,16 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改医生云证书状态
|
// 处理科室问题-更新云证书
|
||||||
if len(userCaCertData) > 0 && userCaCert != nil {
|
if userDoctor.DepartmentCustomId != departmentCustomId {
|
||||||
err = userCaCertDao.EditUserCaCertById(tx, userCaCert.CertId, userCaCertData)
|
if userDoctor.IdenAuthStatus == 1 {
|
||||||
if err != nil {
|
// 更新云证书
|
||||||
tx.Rollback()
|
userCaCertService := UserCaCertService{}
|
||||||
return false, errors.New("用户云证书修改失败")
|
_, err = userCaCertService.RenewUserCloudCert(tx, userDoctor.UserId)
|
||||||
|
if err != nil {
|
||||||
|
tx.Rollback()
|
||||||
|
return false, errors.New(err.Error())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -670,6 +632,15 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, req requests.PutUserDo
|
|||||||
|
|
||||||
// 处理签名图片-如果更改,查看是否已添加签章配置,会进行删除
|
// 处理签名图片-如果更改,查看是否已添加签章配置,会进行删除
|
||||||
if req.SignImage != "" {
|
if req.SignImage != "" {
|
||||||
|
// 获取医生云证书
|
||||||
|
userCaCertDao := dao.UserCaCertDao{}
|
||||||
|
|
||||||
|
maps := make(map[string]interface{})
|
||||||
|
maps["user_id"] = userDoctor.UserId
|
||||||
|
maps["type"] = 2
|
||||||
|
maps["is_latest"] = 1
|
||||||
|
userCaCert, _ := userCaCertDao.GetUserCaCert(maps)
|
||||||
|
|
||||||
signImage := utils.RemoveOssDomain(req.SignImage)
|
signImage := utils.RemoveOssDomain(req.SignImage)
|
||||||
if signImage != userDoctorInfo.SignImage && userCaCert != nil {
|
if signImage != userDoctorInfo.SignImage && userCaCert != nil {
|
||||||
// 检测是否已经添加签章配置
|
// 检测是否已经添加签章配置
|
||||||
@ -848,12 +819,6 @@ func (r *UserDoctorService) AddUserDoctor(userId string, req requests.AddUserDoc
|
|||||||
signImage = utils.RemoveOssDomain(req.SignImage)
|
signImage = utils.RemoveOssDomain(req.SignImage)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 多点执业状态
|
|
||||||
var multiPointStatus int
|
|
||||||
if req.IdCardFront != "" && req.IdCardBack != "" && req.SignImage != "" && departmentCustomId != 0 {
|
|
||||||
multiPointStatus = 2
|
|
||||||
}
|
|
||||||
|
|
||||||
// 处理专长
|
// 处理专长
|
||||||
if len(req.DoctorExpertise) > 0 {
|
if len(req.DoctorExpertise) > 0 {
|
||||||
// 检测专长是否存在
|
// 检测专长是否存在
|
||||||
@ -981,7 +946,6 @@ func (r *UserDoctorService) AddUserDoctor(userId string, req requests.AddUserDoc
|
|||||||
Status: 1,
|
Status: 1,
|
||||||
IdcardStatus: 1, // 身份证默认审核通过
|
IdcardStatus: 1, // 身份证默认审核通过
|
||||||
IdenAuthStatus: 2,
|
IdenAuthStatus: 2,
|
||||||
MultiPointStatus: multiPointStatus,
|
|
||||||
IsBindBank: isBindBank,
|
IsBindBank: isBindBank,
|
||||||
IsRecommend: req.IsRecommend,
|
IsRecommend: req.IsRecommend,
|
||||||
Avatar: avatar,
|
Avatar: avatar,
|
||||||
@ -1051,7 +1015,7 @@ func (r *UserDoctorService) AddUserDoctor(userId string, req requests.AddUserDoc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 修改专长数据
|
// 新增专长数据
|
||||||
if len(req.DoctorExpertise) > 0 {
|
if len(req.DoctorExpertise) > 0 {
|
||||||
doctorExpertiseDao := dao.DoctorExpertiseDao{}
|
doctorExpertiseDao := dao.DoctorExpertiseDao{}
|
||||||
|
|
||||||
@ -1207,6 +1171,16 @@ func (r *UserDoctorService) PutUserDoctorPending(doctorId int64, req requests.Pu
|
|||||||
return false, errors.New("审核失败")
|
return false, errors.New("审核失败")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取医生云证书数据
|
||||||
|
userCaCertDao := dao.UserCaCertDao{}
|
||||||
|
maps := make(map[string]interface{})
|
||||||
|
maps["user_id"] = userDoctor.UserId
|
||||||
|
maps["type"] = 2
|
||||||
|
_, err = userCaCertDao.GetUserCaCert(maps)
|
||||||
|
if err != nil {
|
||||||
|
return false, errors.New("请先申请云证书")
|
||||||
|
}
|
||||||
|
|
||||||
userDoctorData := make(map[string]interface{}) // 医生数据
|
userDoctorData := make(map[string]interface{}) // 医生数据
|
||||||
userDoctorInfoData := make(map[string]interface{}) // 医生详情数据
|
userDoctorInfoData := make(map[string]interface{}) // 医生详情数据
|
||||||
|
|
||||||
@ -1218,6 +1192,17 @@ func (r *UserDoctorService) PutUserDoctorPending(doctorId int64, req requests.Pu
|
|||||||
return false, errors.New("请勿重复操作")
|
return false, errors.New("请勿重复操作")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 审核通过
|
||||||
|
if req.IdenAuthStatus == 1 {
|
||||||
|
// 处理多点审核状态
|
||||||
|
if userDoctorInfo.IdCardFront != "" && userDoctorInfo.IdCardBack != "" && userDoctorInfo.SignImage != "" && userDoctor.DepartmentCustomId != 0 {
|
||||||
|
userDoctorData["multi_point_status"] = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
userDoctorData["iden_auth_status"] = 1
|
||||||
|
userDoctorInfoData["qualification_cert_num"] = req.QualificationCertNum
|
||||||
|
}
|
||||||
|
|
||||||
// 开始事务
|
// 开始事务
|
||||||
tx := global.Db.Begin()
|
tx := global.Db.Begin()
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -1228,10 +1213,11 @@ func (r *UserDoctorService) PutUserDoctorPending(doctorId int64, req requests.Pu
|
|||||||
|
|
||||||
doctorIdenFailDao := dao.DoctorIdenFailDao{}
|
doctorIdenFailDao := dao.DoctorIdenFailDao{}
|
||||||
|
|
||||||
|
// 审核时间
|
||||||
userDoctorData["iden_auth_time"] = time.Now().Format("2006-01-02 15:04:05")
|
userDoctorData["iden_auth_time"] = time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
|
||||||
// 审核通过删除所有不通过原因数据
|
// 审核通过删除所有不通过原因数据
|
||||||
maps := make(map[string]interface{})
|
maps = make(map[string]interface{})
|
||||||
maps["doctor_id"] = doctorId
|
maps["doctor_id"] = doctorId
|
||||||
err = doctorIdenFailDao.DeleteDoctorIdenFail(tx, maps)
|
err = doctorIdenFailDao.DeleteDoctorIdenFail(tx, maps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -1348,11 +1334,24 @@ func (r *UserDoctorService) PutUserDoctorPending(doctorId int64, req requests.Pu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 审核通过
|
// 修改医生数据
|
||||||
if req.IdenAuthStatus == 1 {
|
err = userDoctorDao.EditUserDoctorById(tx, doctorId, userDoctorData)
|
||||||
userDoctorData["iden_auth_status"] = 1
|
if err != nil {
|
||||||
userDoctorInfoData["qualification_cert_num"] = req.QualificationCertNum
|
tx.Rollback()
|
||||||
|
return false, errors.New("审核失败")
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改医生详情数据
|
||||||
|
if len(userDoctorInfoData) != 0 {
|
||||||
|
err = userDoctorInfoDao.EditUserDoctorInfoById(tx, userDoctorInfo.DoctorInfoId, userDoctorInfoData)
|
||||||
|
if err != nil {
|
||||||
|
tx.Rollback()
|
||||||
|
return false, errors.New("审核失败")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改im数据-审核通过
|
||||||
|
if req.IdenAuthStatus == 1 {
|
||||||
// 更新医生im资料
|
// 更新医生im资料
|
||||||
profileItem := []tencentIm.ProfileItem{
|
profileItem := []tencentIm.ProfileItem{
|
||||||
{
|
{
|
||||||
@ -1370,23 +1369,6 @@ func (r *UserDoctorService) PutUserDoctorPending(doctorId int64, req requests.Pu
|
|||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
return false, errors.New(err.Error())
|
return false, errors.New(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改医生数据
|
|
||||||
err = userDoctorDao.EditUserDoctorById(tx, doctorId, userDoctorData)
|
|
||||||
if err != nil {
|
|
||||||
tx.Rollback()
|
|
||||||
return false, errors.New("审核失败")
|
|
||||||
}
|
|
||||||
|
|
||||||
// 修改医生详情数据
|
|
||||||
if len(userDoctorInfoData) != 0 {
|
|
||||||
err = userDoctorInfoDao.EditUserDoctorInfoById(tx, userDoctorInfo.DoctorInfoId, userDoctorInfoData)
|
|
||||||
if err != nil {
|
|
||||||
tx.Rollback()
|
|
||||||
return false, errors.New("审核失败")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tx.Commit()
|
tx.Commit()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user