package controllers import ( "fmt" "github.com/jinzhu/gorm" "strconv" "strings" "time" "Xcx_New/enums" "Xcx_New/models" "Xcx_New/service" "github.com/astaxie/beego" ) func RoleAPIControllerRegistRouters() { beego.Router("/api/roles", &RoleAPIController{}, "get:GetRoles") beego.Router("/api/role/create", &RoleAPIController{}, "post:CreateRole") beego.Router("/api/role/modify", &RoleAPIController{}, "post:ModifyRole") beego.Router("/api/role/setstatus", &RoleAPIController{}, "post:ModifyRoleStatus") beego.Router("/role/purview/editinit", &RoleAPIController{}, "get:EditPurviewInitData") beego.Router("/role/purview/edit", &RoleAPIController{}, "post:EditPurview") beego.Router("/api/adminmain", &RoleAPIController{}, "get:AdminMainView") beego.Router("/api/admins", &RoleAPIController{}, "get:Admins") beego.Router("/api/admin/addinit", &RoleAPIController{}, "get:AddAdminInitData") beego.Router("/api/admin/add", &RoleAPIController{}, "get:AddAdmin") beego.Router("/api/admin/editinit", &RoleAPIController{}, "get:EditAdminInitData") beego.Router("/api/admin/edit", &RoleAPIController{}, "get:EditAdmin") beego.Router("/api/admin/setstatus", &RoleAPIController{}, "post:AdminSetStatus") beego.Router("/api/admin/specialpermission/initdata", &RoleAPIController{}, "get:SpecialPermissionInitData") beego.Router("/api/admin/specialpermission/dialysisrecord/submit", &RoleAPIController{}, "post:SubmitDialysisRecordPermission") beego.Router("/api/roles/list", &RoleAPIController{}, "get:GetAllOrgRole") beego.Router("/api/staff", &RoleAPIController{}, "get:GetAllOrgUser") beego.Router("/api/role/addStaff", &RoleAPIController{}, "post:AddRoleStaff") beego.Router("/api/role/staff", &RoleAPIController{}, "get:GetRoleStaff") beego.Router("/api/role", &RoleAPIController{}, "get:GetRoleInfo") } type RoleAPIController struct { BaseAuthAPIController } // /api/roles [get] // @param page?:int func (this *RoleAPIController) GetRoles() { page, _ := this.GetInt("page") adminUserInfo := this.GetAdminUserInfo() //beego.Alert(adminUserInfo.AdminUser) //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} if page <= 0 { page = 1 } roles, total, getRoleErr := service.GetRoles(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, page, 100) if getRoleErr != nil { //beego.Error("获取角色列表失败:", getRoleErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } else { this.ServeSuccessJSON(map[string]interface{}{ "roles": roles, "total_count": total, }) } } // /api/role/create [post] // @param name:string // @param intro:string func (this *RoleAPIController) CreateRole() { name := this.GetString("name") intro := this.GetString("intro") if len(name) == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} total := service.FindRoleRecordByRoleName(name, adminUserInfo.CurrentOrgId) if total > 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRoleNameIsExist) return } role, createErr := service.CreateRole(adminUserInfo.AdminUser.Id, adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, name, intro) if createErr != nil { //beego.Error("创建角色失败:", createErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) } else { this.ServeSuccessJSON(map[string]interface{}{ "id": role.Id, "name": role.RoleName, "intro": role.RoleIntro, "status": role.Status, }) } } // /api/role/modify // @param role_id:int // @param name:string // @param intro:string func (this *RoleAPIController) ModifyRole() { roleID, _ := this.GetInt64("role_id") name := this.GetString("name") intro := this.GetString("intro") if roleID <= 0 || len(name) == 0 || len(intro) == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } //adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} role, getRoleErr := service.GetRoleByRoleID(roleID) if getRoleErr != nil { //beego.Error("获取角色失败:", getRoleErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if role == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRoleNotExist) return } role.RoleName = name role.RoleIntro = intro role.ModifyTime = time.Now().Unix() saveErr := service.ModifyRole(role) if saveErr != nil { //beego.Error("修改角色失败:", role.Id, saveErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) } else { this.ServeSuccessJSON(nil) } } // /api/role/setstatus // @param role_id:int // @param enable:bool func (this *RoleAPIController) ModifyRoleStatus() { roleID, _ := this.GetInt64("role_id") enable, _ := this.GetBool("enable") if roleID <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} role, getRoleErr := service.GetRoleByRoleID(roleID) if getRoleErr != nil { //beego.Error("获取角色失败:", getRoleErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if role == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRoleNotExist) return } if enable == false { if count, _ := service.RoleAdminUserCountTwo(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, roleID); count != 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCannotRemoveRole) return } } if enable { role.Status = 1 } else { role.Status = 2 } role.ModifyTime = time.Now().Unix() saveErr := service.ModifyRole(role) if saveErr != nil { //beego.Error("修改角色失败:", role.Id, saveErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) } else { this.ServeSuccessJSON(nil) } } // /role/purview/editinit [get] // @param role_id:int func (this *RoleAPIController) EditPurviewInitData() { //adminUserInfo := this.GetAdminUserInfo() //if //} roleId, _ := this.GetInt64("role_id") if roleId <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } role, _ := service.GetRoleByRoleID(roleId) //purviews_xt, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(3) purviews_scrm, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(6) purviews_cdm, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(4) purviews_mall, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(7) purviews_ky_mall, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(8) purviews_func, _ := service.GetAllGeneralFuncPurviewVMsProcessed() //门诊 outpatientRegistration, _, _ := service.GetOtherAllGeneralPurviewVMsProcessed("/outpatientRegistration/manage") //电子病历 _, _, originEle := service.GetOtherAllGeneralPurviewVMsProcessed("/patinets/ele") //透析管理 _, _, originDialysis := service.GetOtherAllGeneralPurviewVMsProcessed("/dialysis/manage") //库房管理 _, _, originStock := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/manage") //配置管理 //_, _, orginConfig := service.GetOtherAllGeneralPurviewVMsProcessed("/config/manage") //门诊管理 _, _, outpatientRegistrationPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/outpatientRegistration/index") _, _, outpatientRegistrationPurviewTwo := service.GetOtherAllGeneralPurviewVMsProcessed("/outpatientDoctorStation") _, _, outpatientRegistrationPurviewThree := service.GetOtherAllGeneralPurviewVMsProcessed("/outpatientCharges") _, _, outpatientRegistrationPurviewFour := service.GetOtherAllGeneralPurviewVMsProcessed("/hospitalStation") //透析管理 _, _, originDialysisWatchPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/dialysis/watch") _, _, originWorkforcePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/workforce/patient") _, _, originSignPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/sign/lineup") _, _, originMedicalSchedulingPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/medicalScheduling/index") _, _, originQcdPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/qcd/manage") _, _, originDevicePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/device/manage") _, _, originDataUploadPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/data/upload") _, _, originConsumablesPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/consumablesManagement") _, _, originDrugsPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/drugs") _, _, originSelfPreparedMedicinePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/selfPreparedMedicineIndex") _, _, originOtherPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/other") _, _, originIntegrationPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/integration/manage") _, _, originTemplatePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/template/manage") _, _, originDictMedicinePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/dict/manage") _, _, originBedPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/bed/manage") //门诊管理 subPurviewTreeViewModel := []*service.PurviewTreeViewModel{} subPurviewTreeViewModelTwo := []*service.PurviewTreeViewModel{} subPurviewTreeViewModelThree := []*service.PurviewTreeViewModel{} subPurviewTreeViewModelFour := []*service.PurviewTreeViewModel{} for _, item := range outpatientRegistrationPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subPurviewTreeViewModel = append(subPurviewTreeViewModel, temp) } for _, item := range outpatientRegistrationPurviewTwo { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subPurviewTreeViewModelTwo = append(subPurviewTreeViewModelTwo, temp) } for _, item := range outpatientRegistrationPurviewThree { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subPurviewTreeViewModelThree = append(subPurviewTreeViewModelThree, temp) } for _, item := range outpatientRegistrationPurviewFour { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subPurviewTreeViewModelFour = append(subPurviewTreeViewModelFour, temp) } for _, item := range outpatientRegistration { if item.Name == "门诊挂号" { item.Childs = append(item.Childs, subPurviewTreeViewModel...) } if item.Name == "门诊医生站" { item.Childs = append(item.Childs, subPurviewTreeViewModelTwo...) } if item.Name == "门诊收费" { item.Childs = append(item.Childs, subPurviewTreeViewModelThree...) } if item.Name == "住院工作站" { item.Childs = append(item.Childs, subPurviewTreeViewModelFour...) } } //电子病历 subElePurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originEle { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subElePurviewTreeViewModel = append(subElePurviewTreeViewModel, temp) } //透析管理 subDialysisPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originDialysis { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subDialysisPurviewTreeViewModel = append(subDialysisPurviewTreeViewModel, temp) } //库存管理 subStockPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originStock { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subStockPurviewTreeViewModel = append(subStockPurviewTreeViewModel, temp) } ////配置管理 //subConfigPurviewTreeViewModel := []*service.PurviewTreeViewModel{} //for _, item := range orginConfig { // temp := &service.PurviewTreeViewModel{ // ID: item.Id, // PID: item.Parentid, // Name: item.Name, // Number: 1, // } // subConfigPurviewTreeViewModel = append(subConfigPurviewTreeViewModel, temp) //} // // //监测管理 subWatchPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originDialysisWatchPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subWatchPurviewTreeViewModel = append(subWatchPurviewTreeViewModel, temp) } //排班管理 subWorkforcePurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originWorkforcePurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subWorkforcePurviewTreeViewModel = append(subWorkforcePurviewTreeViewModel, temp) } //签到排队 subSignPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originSignPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subSignPurviewTreeViewModel = append(subSignPurviewTreeViewModel, temp) } //医护排班 subMedicalSchedulingPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originMedicalSchedulingPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subMedicalSchedulingPurviewTreeViewModel = append(subMedicalSchedulingPurviewTreeViewModel, temp) } subQCDPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originQcdPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subQCDPurviewTreeViewModel = append(subQCDPurviewTreeViewModel, temp) } subDevicePurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originDevicePurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subDevicePurviewTreeViewModel = append(subDevicePurviewTreeViewModel, temp) } subDataUploadPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originDataUploadPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subDataUploadPurviewTreeViewModel = append(subDataUploadPurviewTreeViewModel, temp) } subConsumablesPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originConsumablesPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subConsumablesPurviewTreeViewModel = append(subConsumablesPurviewTreeViewModel, temp) } subDrugPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originDrugsPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subDrugPurviewTreeViewModel = append(subDrugPurviewTreeViewModel, temp) } subSelfPreparedMedicinePurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originSelfPreparedMedicinePurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subSelfPreparedMedicinePurviewTreeViewModel = append(subSelfPreparedMedicinePurviewTreeViewModel, temp) } subOtherPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originOtherPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subOtherPurviewTreeViewModel = append(subOtherPurviewTreeViewModel, temp) } subIntegrationPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originIntegrationPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subIntegrationPurviewTreeViewModel = append(subIntegrationPurviewTreeViewModel, temp) } subTemplatePurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originTemplatePurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subTemplatePurviewTreeViewModel = append(subTemplatePurviewTreeViewModel, temp) } subDictPurviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originDictMedicinePurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subDictPurviewTreeViewModel = append(subDictPurviewTreeViewModel, temp) } subBedPrviewTreeViewModel := []*service.PurviewTreeViewModel{} for _, item := range originBedPurview { temp := &service.PurviewTreeViewModel{ ID: item.Id, PID: item.Parentid, Name: item.Name, Number: 1, } subBedPrviewTreeViewModel = append(subBedPrviewTreeViewModel, temp) } for _, item := range subDialysisPurviewTreeViewModel { if item.Name == "透析记录" { item.Childs = append(item.Childs, purviews_func...) } if item.Name == "透析监控" { item.Childs = append(item.Childs, subWatchPurviewTreeViewModel...) } if item.Name == "患者排班" { item.Childs = append(item.Childs, subWorkforcePurviewTreeViewModel...) } if item.Name == "签到排队" { item.Childs = append(item.Childs, subSignPurviewTreeViewModel...) } if item.Name == "医护排班" { item.Childs = append(item.Childs, subMedicalSchedulingPurviewTreeViewModel...) } if item.Name == "质控管理" { item.Childs = append(item.Childs, subQCDPurviewTreeViewModel...) } if item.Name == "院感管理" { item.Childs = append(item.Childs, subDevicePurviewTreeViewModel...) } if item.Name == "质控上报" { item.Childs = append(item.Childs, subDataUploadPurviewTreeViewModel...) } } for _, item := range subStockPurviewTreeViewModel { if item.Name == "耗材管理" { item.Childs = append(item.Childs, subConsumablesPurviewTreeViewModel...) } if item.Name == "药库管理" { item.Childs = append(item.Childs, subDrugPurviewTreeViewModel...) } if item.Name == "自备药管理" { item.Childs = append(item.Childs, subSelfPreparedMedicinePurviewTreeViewModel...) } if item.Name == "其他管理" { item.Childs = append(item.Childs, subOtherPurviewTreeViewModel...) } } //for _, item := range subConfigPurviewTreeViewModel { // if item.Name == "集成管理" { // item.Childs = append(item.Childs, subIntegrationPurviewTreeViewModel...) // } // if item.Name == "模版管理" { // item.Childs = append(item.Childs, subTemplatePurviewTreeViewModel...) // } // if item.Name == "字典管理" { // item.Childs = append(item.Childs, subDictPurviewTreeViewModel...) // } // if item.Name == "床位管理" { // item.Childs = append(item.Childs, subBedPrviewTreeViewModel...) // } // //} purviews := []*service.PurviewTreeViewModel{} menzhen := &service.PurviewTreeViewModel{ ID: 0, PID: 0, Name: "门诊管理", Number: 3, Childs: outpatientRegistration, } purviews = append(purviews, menzhen) dianzi := &service.PurviewTreeViewModel{ ID: 0, PID: 0, Name: "电子病历", Number: 3, Childs: subElePurviewTreeViewModel, } purviews = append(purviews, dianzi) touxi := &service.PurviewTreeViewModel{ ID: 0, PID: 0, Name: "透析管理", Number: 3, Childs: subDialysisPurviewTreeViewModel, } purviews = append(purviews, touxi) kufang := &service.PurviewTreeViewModel{ ID: 0, PID: 0, Name: "库房管理", Number: 3, Childs: subStockPurviewTreeViewModel, } purviews = append(purviews, kufang) ky_mall := &service.PurviewTreeViewModel{ ID: 0, PID: 0, Name: "酷医商城", Number: 3, Childs: purviews_ky_mall, } purviews = append(purviews, ky_mall) cdm := &service.PurviewTreeViewModel{ ID: 0, PID: 0, Number: 3, Name: "慢病管理", Childs: purviews_cdm, } purviews = append(purviews, cdm) scrm := &service.PurviewTreeViewModel{ ID: 0, PID: 0, Name: "营销管理", Number: 3, Childs: purviews_scrm, } purviews = append(purviews, scrm) mall := &service.PurviewTreeViewModel{ ID: 0, PID: 0, Name: "分销商城", Number: 3, Childs: purviews_mall, } purviews = append(purviews, mall) //peizhi := &service.PurviewTreeViewModel{ // ID: 0, // PID: 0, // Name: "配置管理", // Number: 3, // Childs: subConfigPurviewTreeViewModel, //} //purviews = append(purviews, peizhi) if getPurviewsErr != nil { //beego.Error("获取所有权限时出错:", getPurviewsErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } rolePurviewIdStr, getRPIdsErr := service.GetRolePurviewIds(roleId) if getRPIdsErr != nil { //beego.Error("获取角色的权限时出错:", getRPIdsErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } roleFuncPurview, getFuncRPIdsErr := service.GetRoleFuncPurview(roleId) if getFuncRPIdsErr == gorm.ErrRecordNotFound { //beego.Error("获取角色的权限时出错:", getRPIdsErr) if roleFuncPurview.ID == 0 { rolePurviewIdStr = rolePurviewIdStr } else { rolePurviewIdStr = rolePurviewIdStr + "," + roleFuncPurview.PurviewIds } } else if getFuncRPIdsErr != nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else { if roleFuncPurview.ID == 0 { rolePurviewIdStr = rolePurviewIdStr } else { rolePurviewIdStr = rolePurviewIdStr + "," + roleFuncPurview.PurviewIds } } this.ServeSuccessJSON(map[string]interface{}{ "purviews": purviews, "role": role, "role_purview_ids": rolePurviewIdStr + "," + roleFuncPurview.PurviewIds, }) } // /role/purview/edit [post] // @param role_id:int // @param purview_ids:string func (this *RoleAPIController) EditPurview() { adminUserInfo := this.GetAdminUserInfo() roleId, _ := this.GetInt64("role_id") purviewIds := this.GetString("purview_ids") funcPurviewIds := this.GetString("func_purview_ids") if roleId <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } redis := service.RedisClient() defer redis.Close() users := service.GetAllUserRole(adminUserInfo.CurrentOrgId) for _, item := range users { key := "purviews_" + strconv.FormatInt(adminUserInfo.CurrentOrgId, 10) + strconv.FormatInt(item.AdminUserId, 10) redis.Set(redis.Context(),key, "", time.Second) } err := service.SaveRolePurviewIds(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, roleId, purviewIds) err = service.SaveFuncRolePurviewIds(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, roleId, funcPurviewIds) if err != nil { //beego.Error("设置角色的权限时出错:", err) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) } else { this.ServeSuccessJSON(nil) } } // func (this *RoleAPIController) doesUserHaveAccess(userID int64) bool { // adminUser, getAdminUserErr := service.GetAdminUserByUserID(userID) // if getAdminUserErr != nil { // beego.Error("获取用户信息失败:%v", getAdminUserErr) // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return false // } else if adminUser == nil { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdminUserNotExist) // return false // } else if adminUser.Status == 2 { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUserWasForbidden) // return false // } else if adminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return false // } // return true // } // func (this *RoleAPIController) isAppRoleExist(orgID int64, appID int64, userID int64) bool { // appRole, getAppRoleErr := service.GetAppRole(orgID, appID, userID) // if getAppRoleErr != nil { // beego.Error("检查用户和机构应用对应关系时失败:%v", getAppRoleErr) // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return false // } else if appRole == nil { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return false // } // return true // } // /api/adminmain [get] func (this *RoleAPIController) AdminMainView() { adminUserInfo := this.GetAdminUserInfo() var isSubSuperAdmin bool = false adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id) if len(adminUserRole.RoleIds) > 0 { role_ids := strings.Split(adminUserRole.RoleIds, ",") org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) if adminUserInfo.AdminUser.Id != org.Creator { for _, item := range role_ids { id, _ := strconv.ParseInt(item, 10, 64) if id != 0 { role, _ := service.GetRoleByRoleID(id) if role != nil { if role.IsSystem == 1 && role.RoleName == "子管理员" { isSubSuperAdmin = true } } } } } } org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) viewModels, _, getAdminsErr := service.GetAdminUsersAndLoginInfo(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, 1, 100) if getAdminsErr != nil { //beego.Error("获取管理员列表失败:", getAdminsErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "admins": viewModels, "org": org, "isSubSuperAdmin": isSubSuperAdmin, }) } // /api/admins [get] // @param page?:int func (this *RoleAPIController) Admins() { adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} page, _ := this.GetInt("page") viewModels, total, getAdminsErr := service.GetAdminUsersAndLoginInfo(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, page, 100) if getAdminsErr != nil { //beego.Error("获取管理员列表失败:", getAdminsErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } else { this.ServeSuccessJSON(map[string]interface{}{ "admins": viewModels, "total_count": total, }) } } // /api/admin/addinit [get] func (this *RoleAPIController) AddAdminInitData() { adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} var isSubSuperAdmin bool = false adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id) if len(adminUserRole.RoleIds) > 0 { //app_role, _ := service.GetAppRoleById(adminUserInfo.) role_ids := strings.Split(adminUserRole.RoleIds, ",") org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) if adminUserInfo.AdminUser.Id != org.Creator { for _, item := range role_ids { id, _ := strconv.ParseInt(item, 10, 64) if id != 0 { role, _ := service.GetRoleByRoleID(id) if role != nil { if role.IsSystem == 1 && role.RoleName == "子管理员" { isSubSuperAdmin = true } } } } } } org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) roles, getRoleErr := service.GetAllValidRoles(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId) if getRoleErr != nil { //beego.Error("获取所有角色失败:", getRoleErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } redisClient := service.RedisClient() defer redisClient.Close() qntoken, _ := redisClient.Get(redisClient.Context(),"qn_token").Result() this.ServeSuccessJSON(map[string]interface{}{ "roles": roles, "qntoken": qntoken, "isSubSuperAdmin": isSubSuperAdmin, "org": org, }) } // /api/admin/add [post] // @param mobile:string // @param name:string // @param type:int 管理员类型:2.医生 3.护士 4.运营 // @param title:int 用户职称(1.医士;2.医师;3.住院医师;4.主治医师;5.副主任医师;6.主任医师;7.护士;8.护师;9.主管护师;10.副主任护师;11.主任护师;12.运营专员;13.运营主管) // @param role:int // @param intro?:string func (this *RoleAPIController) AddAdmin() { adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} mobile := this.GetString("mobile") name := this.GetString("name") userType, _ := this.GetInt("type") userTitle, _ := this.GetInt("title") roleIds := this.GetString("role") user_title_name := this.GetString("user_title_name") department := this.GetString("department") department_id, _ := this.GetInt64("department_id") sex, _ := this.GetInt64("sex") age, _ := this.GetInt64("age") nation := this.GetString("nation") card_type, _ := this.GetInt64("card_type") id_card := this.GetString("id_card") education, _ := this.GetInt64("education") study_major_name := this.GetString("study_major_name") work_major_name := this.GetString("work_major_name") role_type, _ := this.GetInt64("role_type") medical_code := this.GetString("medical_code") doctor_code := this.GetString("doctor_code") licensing, _ := this.GetInt64("licensing") job_number := this.GetString("job_number") prescription_qualification_identification, _ := this.GetInt64("prescription_qualification_identification") identification_outpatients, _ := this.GetInt64("identification_outpatients") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") start_time := this.GetString("start_time") theStartTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) medical_range_code, _ := this.GetInt64("medical_range_code") medical_level, _ := this.GetInt64("medical_level") medical_type_job, _ := this.GetInt64("medical_type_job") pharmacist_registration_number := this.GetString("pharmacist_registration_number") doctor_range_code, _ := this.GetInt64("doctor_range_code") doctor_level, _ := this.GetInt64("doctor_level") doctor_type_job, _ := this.GetInt64("doctor_type_job") doctor_number := this.GetString("doctor_number") outpatient_illnessCategory := this.GetString("outpatient_illnessCategory") is_active, _ := this.GetInt64("is_active") active_status, _ := this.GetInt64("active_status") fmt.Println("active_status", active_status) if len(mobile) == 0 || len(name) == 0 || (userType != 2 && userType != 3 && userType != 4) || len(roleIds) <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } // 判断是否已存在该手机号 if adminUser, err := service.GetValidAdminUserByMobileReturnErr(mobile); err != nil { //beego.Error("查询用户是否已被添加为管理员时失败:", err) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else { if adminUser == nil { //新增账号和用户 _, password, createErr := service.CreateGeneralAdminUserOne(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, mobile, name, user_title_name, roleIds, userType, userTitle, department_id, department, sex, age, nation, card_type, id_card, education, study_major_name, work_major_name, role_type, medical_code, doctor_code, licensing, job_number, prescription_qualification_identification, identification_outpatients, theStartTime.Unix(), medical_range_code, medical_level, medical_type_job, pharmacist_registration_number, doctor_range_code, doctor_level, doctor_type_job, doctor_number, outpatient_illnessCategory, is_active, active_status) if createErr != nil { //beego.Error("创建管理员失败:", createErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } else { sendSMSErr := service.SMSSendInviteMobileToJoinOrgAdmin(name, mobile, password) if sendSMSErr != nil { } this.ServeSuccessJSON(nil) return } } else { total, _ := service.FindAdminUserByID(adminUser.Id, adminUserInfo.CurrentOrgId) if total <= 0 { //新增用户 app_role := &models.App_Role{ AdminUserId: adminUser.Id, OrgId: adminUserInfo.CurrentOrgId, AppId: adminUserInfo.CurrentAppId, Avatar: "", UserName: name, UserTitleName: user_title_name, Status: 1, UserType: int8(userType), UserTitle: int8(userTitle), CreateTime: time.Now().Unix(), ModifyTime: time.Now().Unix(), RoleIds: roleIds, Department: department, DepartmentId: department_id, Sex: sex, Age: age, Nation: nation, CardType: card_type, IdCard: id_card, Education: education, StudyMajorName: study_major_name, WorkMajorName: work_major_name, RoleType: role_type, MedicalCode: medical_code, DoctorCode: doctor_code, Licensing: licensing, JobNumber: job_number, PrescriptionQualificationIdentification: prescription_qualification_identification, IdentificationOutpatients: identification_outpatients, StartTime: theStartTime.Unix(), MedicalRangeCode: medical_range_code, MedicalLevel: medical_level, MedicalTypeJob: medical_type_job, PharmacistRegistrationNumber: pharmacist_registration_number, DoctorRangeCode: doctor_range_code, DoctorLevel: doctor_level, DoctorTypeJob: doctor_type_job, DoctorNumber: doctor_number, OutpatientIllnesscategory: outpatient_illnessCategory, IsActive: is_active, ActiveStatus: active_status, } err := service.CreateUserRole(app_role) if err != nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate) return } this.ServeSuccessJSON(nil) } else { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRepeatCreateStaffException) return } return } } } // /api/admin/editinit [get] // @param uid:int func (this *RoleAPIController) EditAdminInitData() { adminUserInfo := this.GetAdminUserInfo() admin_user_id, _ := this.GetInt64("uid") if admin_user_id <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } appRole, getAppRoleErr := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, admin_user_id) if getAppRoleErr != nil { //beego.Error("查询管理员信息时失败:", getAppRoleErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if appRole == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdminUserNotExist) return } roles, getRoleErr := service.GetAllValidRoles(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId) if getRoleErr != nil { //beego.Error("获取所有角色失败:", getRoleErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var isSubSuperAdmin bool = false adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id) if len(adminUserRole.RoleIds) > 0 { role_ids := strings.Split(adminUserRole.RoleIds, ",") org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) if adminUserInfo.AdminUser.Id != org.Creator { for _, item := range role_ids { id, _ := strconv.ParseInt(item, 10, 64) if id != 0 { role, _ := service.GetRoleByRoleID(id) if role.IsSystem == 1 && role.RoleName == "子管理员" { isSubSuperAdmin = true } } } } } org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) redisClient := service.RedisClient() defer redisClient.Close() qntoken, _ := redisClient.Get(redisClient.Context(),"qn_token").Result() this.ServeSuccessJSON(map[string]interface{}{ "admin": appRole, "roles": roles, "qntoken": qntoken, "isSubSuperAdmin": isSubSuperAdmin, "org": org, }) } // /api/admin/edit [post] // @param uid:int // @param name:string // @param type:int // @param title:int // @param role:int // @param intro?:string func (this *RoleAPIController) EditAdmin() { adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} adminUserId, _ := this.GetInt64("uid") name := this.GetString("name") userType, _ := this.GetInt("type") userTitle, _ := this.GetInt("title") roleIds := this.GetString("role") intro := this.GetString("intro") user_title_name := this.GetString("user_title_name") department := this.GetString("department") department_id, _ := this.GetInt64("department_id") sort, _ := this.GetInt64("sort") sex, _ := this.GetInt64("sex") age, _ := this.GetInt64("age") nation := this.GetString("nation") card_type, _ := this.GetInt64("card_type") id_card := this.GetString("id_card") education, _ := this.GetInt64("education") study_major_name := this.GetString("study_major_name") work_major_name := this.GetString("work_major_name") role_type, _ := this.GetInt64("role_type") medical_code := this.GetString("medical_code") doctor_code := this.GetString("doctor_code") licensing, _ := this.GetInt64("licensing") job_number := this.GetString("job_number") prescription_qualification_identification, _ := this.GetInt64("prescription_qualification_identification") identification_outpatients, _ := this.GetInt64("identification_outpatients") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") start_time := this.GetString("start_time") fmt.Println("start_time22222222222", start_time) theStartTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) medical_range_code, _ := this.GetInt64("medical_range_code") medical_level, _ := this.GetInt64("medical_level") medical_type_job, _ := this.GetInt64("medical_type_job") pharmacist_registration_number := this.GetString("pharmacist_registration_number") doctor_range_code, _ := this.GetInt64("doctor_range_code") doctor_level, _ := this.GetInt64("doctor_level") doctor_type_job, _ := this.GetInt64("doctor_type_job") doctor_number := this.GetString("doctor_number") outpatient_illnessCategory := this.GetString("outpatient_illnessCategory") is_active, _ := this.GetInt64("is_active") active_status, _ := this.GetInt64("active_status") _, titleExist := models.UserTitle[userTitle] fmt.Println(titleExist) if adminUserId <= 0 || len(name) == 0 || (userType != 2 && userType != 3 && userType != 4) || !titleExist || len(roleIds) <= 0 { fmt.Println("进来了吗") this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } appRole, getAppRoleErr := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserId) if getAppRoleErr != nil { //beego.Error("查询管理员信息时失败:", getAppRoleErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if appRole == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdminUserNotExist) return } appRole.Department = department appRole.DepartmentId = department_id appRole.UserName = name appRole.UserType = int8(userType) appRole.UserTitle = int8(userTitle) appRole.RoleIds = roleIds appRole.Intro = intro appRole.UserTitleName = user_title_name appRole.ModifyTime = time.Now().Unix() appRole.Sort = sort appRole.Age = age appRole.Nation = nation appRole.CardType = card_type appRole.IdCard = id_card appRole.Education = education appRole.StudyMajorName = study_major_name appRole.WorkMajorName = work_major_name appRole.RoleType = role_type appRole.MedicalCode = medical_code appRole.DoctorCode = doctor_code appRole.Licensing = licensing appRole.JobNumber = job_number appRole.PrescriptionQualificationIdentification = prescription_qualification_identification appRole.IdentificationOutpatients = identification_outpatients appRole.StartTime = theStartTime.Unix() appRole.MedicalCode = medical_code appRole.MedicalRangeCode = medical_range_code appRole.MedicalLevel = medical_level appRole.MedicalTypeJob = medical_type_job appRole.PharmacistRegistrationNumber = pharmacist_registration_number appRole.DoctorRangeCode = doctor_range_code appRole.DoctorLevel = doctor_level appRole.DoctorTypeJob = doctor_type_job appRole.DoctorNumber = doctor_number appRole.OutpatientIllnesscategory = outpatient_illnessCategory appRole.IsActive = is_active appRole.ActiveStatus = active_status appRole.Sex = sex saveErr := service.SaveAppRole(appRole) if saveErr != nil { //beego.Error("修改App_Role失败:", saveErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) } else { this.ServeSuccessJSON(map[string]interface{}{ "approle": appRole, }) this.ServeSuccessJSON(nil) } } // /api/admin/setstatus [post] // @param uid:int // @param enable:bool func (this *RoleAPIController) AdminSetStatus() { adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} userID, _ := this.GetInt64("uid") if userID <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } appRole, getAppRoleErr := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, userID) if getAppRoleErr != nil { //beego.Error("查询管理员信息失败:", getAppRoleErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else if appRole == nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdminUserNotExist) return } enable, _ := this.GetBool("enable") if enable { appRole.Status = 1 } else { appRole.Status = 0 } appRole.ModifyTime = time.Now().Unix() saveErr := service.SaveAppRole(appRole) if saveErr != nil { //beego.Error("保存AppRole失败:", saveErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) } else { this.ServeSuccessJSON(nil) } } // /api/admin/specialpermission/initdata [get] func (this *RoleAPIController) SpecialPermissionInitData() { adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} adminUsers, getAdminUsersErr := service.GetAllGeneralAdminUsers(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId) if getAdminUsersErr != nil { this.ErrorLog("获取所有普通用户失败:%v", getAdminUsersErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } headNurses, getAllHeadNursesErr := service.GetAllValidAdminUsersWithSpecialPermission(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, models.SpecialPermissionTypeHeadNurse) if getAllHeadNursesErr != nil { this.ErrorLog("获取所有拥有护士长特殊权限的用户失败:%v", getAllHeadNursesErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "users": adminUsers, "head_nurses": headNurses, }) } // /api/admin/specialpermission/dialysisrecord/submit [post] // @param ids:string ("1,2,5") func (this *RoleAPIController) SubmitDialysisRecordPermission() { adminUserInfo := this.GetAdminUserInfo() //if adminUserInfo.AdminUser.IsSuperAdmin == false { // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied) // return //} idsString := this.GetString("ids") if len(idsString) == 0 { // 取消所有用户的护士长权限 cancelErr := service.CancelAllSpecialPermissionAdminUsers(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, models.SpecialPermissionTypeHeadNurse) if cancelErr != nil { this.ErrorLog("取消所有用户的护士长权限失败:%v", cancelErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else { this.ServeSuccessJSON(nil) return } } else { ids := make([]int64, 0) idStrs := strings.Split(idsString, ",") for _, idStr := range idStrs { id, parseErr := strconv.Atoi(idStr) if parseErr != nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } ids = append(ids, int64(id)) } headNurses, getAllHeadNursesErr := service.GetAllSpecialPermissionAdminUsersWithoutStatus(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, models.SpecialPermissionTypeHeadNurse) if getAllHeadNursesErr != nil { this.ErrorLog("获取所有拥有或曾拥有护士长特殊权限的用户失败:%v", getAllHeadNursesErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } cancelList := make([]*models.AdminUserSpecialPermission, 0) addList := make([]*models.AdminUserSpecialPermission, 0) for _, id := range ids { exit := false for _, headNurse := range headNurses { if headNurse.AdminUserID == id { exit = true if headNurse.Status != 1 { headNurse.Status = 1 headNurse.ModifyTime = time.Now().Unix() addList = append(addList, headNurse) } break } } if exit == false { newHeadNurse := &models.AdminUserSpecialPermission{ OrgID: adminUserInfo.CurrentOrgId, AppID: adminUserInfo.CurrentAppId, AdminUserID: id, Permission: int64(models.SpecialPermissionTypeHeadNurse), Status: 1, CreateTime: time.Now().Unix(), ModifyTime: time.Now().Unix(), } addList = append(addList, newHeadNurse) } } for _, headNurse := range headNurses { cancel := true for _, willAdd := range addList { if willAdd.AdminUserID == headNurse.AdminUserID { cancel = false break } } if cancel { headNurse.Status = 0 headNurse.ModifyTime = time.Now().Unix() cancelList = append(cancelList, headNurse) } } addErr := service.BatchSaveSpecialPermissionAdminUsers(addList) if addErr != nil { this.ErrorLog("授权失败:%v", addErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } cancelErr := service.BatchSaveSpecialPermissionAdminUsers(cancelList) if cancelErr != nil { this.ErrorLog("取消授权失败:%v", cancelErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(nil) } } func (this *RoleAPIController) GetAllOrgRole() { adminUserInfo := this.GetAdminUserInfo() var isSubSuperAdmin bool = false adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id) if len(adminUserRole.RoleIds) > 0 { //app_role, _ := service.GetAppRoleById(adminUserInfo.) role_ids := strings.Split(adminUserRole.RoleIds, ",") org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) if adminUserInfo.AdminUser.Id != org.Creator { for _, item := range role_ids { id, _ := strconv.ParseInt(item, 10, 64) if id != 0 { role, _ := service.GetRoleByRoleID(id) if role != nil { if role.IsSystem == 1 && role.RoleName == "子管理员" { isSubSuperAdmin = true } } } } } } org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) roles, err := service.GetAllOrgValidRoles(adminUserInfo.CurrentOrgId, isSubSuperAdmin) if err != nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else { this.ServeSuccessJSON(map[string]interface{}{ "roles": roles, "isSubSuperAdmin": isSubSuperAdmin, "org": org, }) } } func (this *RoleAPIController) GetAllOrgUser() { adminUserInfo := this.GetAdminUserInfo() org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) var isSubSuperAdmin bool = false adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id) if len(adminUserRole.RoleIds) > 0 { //app_role, _ := service.GetAppRoleById(adminUserInfo.) role_ids := strings.Split(adminUserRole.RoleIds, ",") org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) if adminUserInfo.AdminUser.Id != org.Creator { for _, item := range role_ids { id, _ := strconv.ParseInt(item, 10, 64) if id != 0 { role, _ := service.GetRoleByRoleID(id) if role != nil { if role.IsSystem == 1 && role.RoleName == "子管理员" { isSubSuperAdmin = true } } } } } } viewModels, _, _ := service.GetAllAdminUsersAndRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, 1, 100) this.ServeSuccessJSON(map[string]interface{}{ "admins": viewModels, "org": org, "isSubSuperAdmin": isSubSuperAdmin, }) } func (this *RoleAPIController) AddRoleStaff() { //adminUserInfo := this.GetMobileAdminUserInfo() role_id, _ := this.GetInt64("id", 0) staff_ids := this.GetString("ids") ids := strings.Split(staff_ids, ",") for _, item := range ids { id, _ := strconv.ParseInt(item, 10, 64) role, _ := service.FindAdminUserID(id) role.RoleIds = role.RoleIds + "," + strconv.FormatInt(role_id, 10) service.SaveAdminUser(&role) } this.ServeSuccessJSON(map[string]interface{}{ "msg": "添加成功", }) } func (this *RoleAPIController) GetRoleStaff() { adminUserInfo := this.GetAdminUserInfo() var isSubSuperAdmin bool = false adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id) if len(adminUserRole.RoleIds) > 0 { role_ids := strings.Split(adminUserRole.RoleIds, ",") org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) if adminUserInfo.AdminUser.Id != org.Creator { for _, item := range role_ids { id, _ := strconv.ParseInt(item, 10, 64) if id != 0 { role, _ := service.GetRoleByRoleID(id) if role.IsSystem == 1 && role.RoleName == "子管理员" { isSubSuperAdmin = true } } } } } org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) viewModels, _, getAdminsErr := service.GetAdminUsersAndLoginInfo(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, 1, 100) if getAdminsErr != nil { //beego.Error("获取管理员列表失败:", getAdminsErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "admins": viewModels, "org": org, "isSubSuperAdmin": isSubSuperAdmin, }) } func (this *RoleAPIController) GetRoleInfo() { roleId, _ := this.GetInt64("role_id") if roleId <= 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } role, _ := service.GetRoleByRoleID(roleId) this.ServeSuccessJSON(map[string]interface{}{ "role": role, }) }