新增修改医生
This commit is contained in:
+9
-8
@@ -16,28 +16,29 @@ type RoleService struct{}
|
||||
// GetRoleMenuList 获取角色菜单
|
||||
func (r *RoleService) GetRoleMenuList(roleId int64, isAdmin bool) ([]*roleResponse.GetRoleMenuList, error) {
|
||||
// 获取角色菜单
|
||||
AdminRoleMenuDao := dao.AdminRoleMenuDao{}
|
||||
AdminMenuDao := dao.AdminMenuDao{}
|
||||
adminRoleMenuDao := dao.AdminRoleMenuDao{}
|
||||
adminMenuDao := dao.AdminMenuDao{}
|
||||
var menuIDs []int64
|
||||
var err error
|
||||
|
||||
if isAdmin {
|
||||
// 超级管理员
|
||||
menuIDs, err = AdminMenuDao.GetAdminMenuId()
|
||||
menuIDs, err = adminMenuDao.GetAdminMenuId()
|
||||
if err != nil {
|
||||
return []*roleResponse.GetRoleMenuList{}, nil
|
||||
return nil, nil
|
||||
}
|
||||
} else {
|
||||
menuIDs, err = AdminRoleMenuDao.GetAdminRoleMenuIdByRoleId(roleId)
|
||||
// 普通用户
|
||||
menuIDs, err = adminRoleMenuDao.GetAdminRoleMenuIdByRoleId(roleId)
|
||||
if err != nil {
|
||||
return []*roleResponse.GetRoleMenuList{}, nil
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
|
||||
// 获取全部正常非按钮菜单列表
|
||||
adminMenu, _ := AdminMenuDao.GetAdminMenuListNonButtonNormalSortOrderNum()
|
||||
adminMenu, _ := adminMenuDao.GetAdminMenuListNonButtonNormalSortOrderNum()
|
||||
if adminMenu == nil {
|
||||
return []*roleResponse.GetRoleMenuList{}, nil
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
var getRoleMenuListResponse []*roleResponse.GetRoleMenuList
|
||||
|
||||
+143
-25
@@ -5,6 +5,8 @@ import (
|
||||
"hospital-admin-api/api/dao"
|
||||
"hospital-admin-api/api/requests"
|
||||
"hospital-admin-api/config"
|
||||
"hospital-admin-api/extend/ca"
|
||||
"hospital-admin-api/extend/tencentIm"
|
||||
"hospital-admin-api/global"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -15,6 +17,7 @@ type UserDoctorService struct {
|
||||
|
||||
// PutUserDoctor 修改医生
|
||||
func (r *UserDoctorService) PutUserDoctor(doctorId int64, userDoctorRequest requests.PutUserDoctor) (bool, error) {
|
||||
|
||||
// 获取医生数据
|
||||
userDoctorDao := dao.UserDoctorDao{}
|
||||
userDoctor, err := userDoctorDao.GetUserDoctorById(doctorId)
|
||||
@@ -29,17 +32,22 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, userDoctorRequest requ
|
||||
return false, errors.New("医生详情数据错误")
|
||||
}
|
||||
|
||||
// 医生数据
|
||||
userDoctorData := make(map[string]interface{})
|
||||
// 获取用户数据
|
||||
userDao := dao.UserDao{}
|
||||
user, err := userDao.GetUserById(userDoctor.UserId)
|
||||
if err != nil {
|
||||
return false, errors.New("医生数据错误")
|
||||
}
|
||||
|
||||
// 医生详情数据
|
||||
userDoctorInfoData := make(map[string]interface{})
|
||||
userDoctorData := make(map[string]interface{}) // 医生数据
|
||||
userDoctorInfoData := make(map[string]interface{}) // 医生详情数据
|
||||
userData := make(map[string]interface{}) // 用户数据
|
||||
|
||||
// 处理头像
|
||||
userDoctorRequest.Avatar = strings.Replace(userDoctorRequest.Avatar, config.C.Oss.OssCustomDomainName, "", 1)
|
||||
if userDoctor.Avatar != userDoctorRequest.Avatar {
|
||||
userDoctorData["avatar"] = userDoctorRequest.Avatar
|
||||
userDoctorInfoData["avatar"] = userDoctorRequest.Avatar
|
||||
avatar := strings.Replace(userDoctorRequest.Avatar, config.C.Oss.OssCustomDomainName, "", 1)
|
||||
if userDoctor.Avatar != avatar {
|
||||
userDoctorData["avatar"] = avatar
|
||||
userData["avatar"] = avatar
|
||||
}
|
||||
|
||||
// 处理职称
|
||||
@@ -53,6 +61,9 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, userDoctorRequest requ
|
||||
return false, errors.New("科室错误")
|
||||
}
|
||||
|
||||
if departmentCustomId == 0 && userDoctor.DepartmentCustomId != 0 {
|
||||
return false, errors.New("未选择新的科室")
|
||||
}
|
||||
if userDoctor.DepartmentCustomId != departmentCustomId || userDoctor.DepartmentCustomName != userDoctorRequest.DepartmentCustomName {
|
||||
// 获取科室数据
|
||||
hospitalDepartmentCustomDao := dao.HospitalDepartmentCustom{}
|
||||
@@ -237,25 +248,132 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, userDoctorRequest requ
|
||||
}
|
||||
}
|
||||
|
||||
// 判断头像是否修改,同步修改im
|
||||
// 判断科室是否修改,同步修改ca平台
|
||||
// 判断签名图片是否修改,同步修改ca平台
|
||||
// 修改医生数据
|
||||
if len(userDoctorData) != 0 {
|
||||
err = userDao.EditUserById(tx, userDoctor.UserId, userData)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("修改失败")
|
||||
}
|
||||
}
|
||||
|
||||
// _, ok := userDoctorData["department_custom_id"]
|
||||
// if ok {
|
||||
// // 变更科室
|
||||
//
|
||||
// }
|
||||
//
|
||||
// paramMap := map[string]string{
|
||||
// "userName": "zj",
|
||||
// "age": "19",
|
||||
// }
|
||||
//
|
||||
// sign := ca.GenerateSignature(paramMap)
|
||||
// fmt.Println(sign)
|
||||
// 判断头像是否修改,同步修改im
|
||||
if userDoctor.Avatar != avatar {
|
||||
profileItem := []tencentIm.ProfileItem{
|
||||
{
|
||||
Tag: "Tag_Profile_IM_Image",
|
||||
Value: userDoctorRequest.Avatar,
|
||||
},
|
||||
}
|
||||
res, err := tencentIm.SetProfile(strconv.FormatInt(userDoctor.UserId, 10), profileItem)
|
||||
if err != nil || res != true {
|
||||
tx.Rollback()
|
||||
return false, errors.New("头像设置失败")
|
||||
}
|
||||
}
|
||||
|
||||
// 判断科室是否修改,同步修改ca平台
|
||||
if userDoctor.DepartmentCustomId != departmentCustomId {
|
||||
// 获取科室数据
|
||||
hospitalDepartmentCustomDao := dao.HospitalDepartmentCustom{}
|
||||
hospitalDepartmentCustom, err := hospitalDepartmentCustomDao.GetHospitalDepartmentCustomById(departmentCustomId)
|
||||
if err != nil || hospitalDepartmentCustom == nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("科室错误")
|
||||
}
|
||||
|
||||
// 获取云证书数据
|
||||
userCaCertDao := dao.UserCaCert{}
|
||||
userCaCerts, err := userCaCertDao.GetUserCaCertListByUserId(userDoctor.UserId)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("修改失败")
|
||||
}
|
||||
|
||||
if userCaCerts != nil && len(userCaCerts) > 0 {
|
||||
// 修改云证书
|
||||
editCloudCertRequestData := &ca.EditCloudCertRequestData{
|
||||
EntityId: strconv.FormatInt(userDoctor.UserId, 10),
|
||||
EntityType: "Personal",
|
||||
PersonalPhone: user.Mobile,
|
||||
PersonalName: userDoctorInfo.CardName,
|
||||
PersonalIdNumber: userDoctorInfo.CardNum,
|
||||
OrgName: "",
|
||||
OrgNumber: "",
|
||||
Pin: strconv.FormatInt(userDoctor.UserId, 10),
|
||||
OrgDept: hospitalDepartmentCustom.DepartmentName, // // 卫生证书:医院部门
|
||||
Province: "四川省",
|
||||
Locality: "成都市",
|
||||
AuthType: "实人认证",
|
||||
// AuthTime: strconv.FormatInt(time.Now().Unix(), 10),
|
||||
AuthTime: "1688694270",
|
||||
AuthResult: "认证通过",
|
||||
AuthNoticeType: "数字证书变更告知",
|
||||
}
|
||||
|
||||
editCloudCertResponse, err := ca.EditCloudCert(editCloudCertRequestData)
|
||||
if err != nil || editCloudCertResponse == nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New(err.Error())
|
||||
}
|
||||
|
||||
// 修改ca监管证书表
|
||||
userCaCertDao := dao.UserCaCert{}
|
||||
data := make(map[string]interface{})
|
||||
data["cert_base64"] = editCloudCertResponse.CertBase64
|
||||
data["cert_chain_p7"] = editCloudCertResponse.CertP7
|
||||
data["cert_serial_number"] = editCloudCertResponse.CertP7
|
||||
err = userCaCertDao.EditUserCaCertById(tx, userCaCerts[0].CertId, data)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("删除失败")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 判断签名图片是否修改,同步修改ca平台
|
||||
// 1、新用户,未存在证书
|
||||
if userDoctorRequest.SignImage != "" {
|
||||
signImage := strings.Replace(userDoctorRequest.SignImage, "https://img.applets.igandanyiyuan.com", "", 1)
|
||||
if signImage != userDoctorInfo.SignImage {
|
||||
// 检测是否存在云证书
|
||||
userCaCertDao := dao.UserCaCert{}
|
||||
userCaCerts, err := userCaCertDao.GetUserCaCertListByUserId(userDoctor.UserId)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("修改失败")
|
||||
}
|
||||
|
||||
if userCaCerts != nil && len(userCaCerts) > 0 {
|
||||
userCaCert := userCaCerts[0]
|
||||
// 检测是否已经添加签章配置
|
||||
if userCaCert.IsSignConfig == 1 {
|
||||
// 修改签章配置为未添加
|
||||
data := make(map[string]interface{})
|
||||
data["is_sign_config"] = 0
|
||||
err = userCaCertDao.EditUserCaCertById(tx, userCaCert.CertId, data)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New(err.Error())
|
||||
}
|
||||
|
||||
// 删除签章配置
|
||||
deleteUserSignConfigRequestData := &ca.DeleteUserSignConfigRequestData{
|
||||
UserId: strconv.FormatInt(userDoctor.UserId, 10),
|
||||
ConfigKey: strconv.FormatInt(userDoctor.UserId, 10),
|
||||
}
|
||||
|
||||
_, err := ca.DeleteUserSignConfig(deleteUserSignConfigRequestData)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New(err.Error())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
tx.Commit()
|
||||
return true, nil
|
||||
//
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user