role_controller.go 42KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369
  1. package controllers
  2. import (
  3. "github.com/jinzhu/gorm"
  4. "strconv"
  5. "strings"
  6. "time"
  7. "XT_New/enums"
  8. "XT_New/models"
  9. "XT_New/service"
  10. "github.com/astaxie/beego"
  11. )
  12. func RoleAPIControllerRegistRouters() {
  13. beego.Router("/api/roles", &RoleAPIController{}, "get:GetRoles")
  14. beego.Router("/api/role/create", &RoleAPIController{}, "post:CreateRole")
  15. beego.Router("/api/role/modify", &RoleAPIController{}, "post:ModifyRole")
  16. beego.Router("/api/role/setstatus", &RoleAPIController{}, "post:ModifyRoleStatus")
  17. beego.Router("/role/purview/editinit", &RoleAPIController{}, "get:EditPurviewInitData")
  18. beego.Router("/role/purview/edit", &RoleAPIController{}, "post:EditPurview")
  19. beego.Router("/api/adminmain", &RoleAPIController{}, "get:AdminMainView")
  20. beego.Router("/api/admins", &RoleAPIController{}, "get:Admins")
  21. beego.Router("/api/admin/addinit", &RoleAPIController{}, "get:AddAdminInitData")
  22. beego.Router("/api/admin/add", &RoleAPIController{}, "post:AddAdmin")
  23. beego.Router("/api/admin/editinit", &RoleAPIController{}, "get:EditAdminInitData")
  24. beego.Router("/api/admin/edit", &RoleAPIController{}, "post:EditAdmin")
  25. beego.Router("/api/admin/setstatus", &RoleAPIController{}, "post:AdminSetStatus")
  26. beego.Router("/api/admin/specialpermission/initdata", &RoleAPIController{}, "get:SpecialPermissionInitData")
  27. beego.Router("/api/admin/specialpermission/dialysisrecord/submit", &RoleAPIController{}, "post:SubmitDialysisRecordPermission")
  28. beego.Router("/api/roles/list", &RoleAPIController{}, "get:GetAllOrgRole")
  29. beego.Router("/api/staff", &RoleAPIController{}, "get:GetAllOrgUser")
  30. beego.Router("/api/role/addStaff", &RoleAPIController{}, "post:AddRoleStaff")
  31. beego.Router("/api/role/staff", &RoleAPIController{}, "get:GetRoleStaff")
  32. beego.Router("/api/role", &RoleAPIController{}, "get:GetRoleInfo")
  33. }
  34. type RoleAPIController struct {
  35. BaseAuthAPIController
  36. }
  37. // /api/roles [get]
  38. // @param page?:int
  39. func (this *RoleAPIController) GetRoles() {
  40. page, _ := this.GetInt("page")
  41. adminUserInfo := this.GetAdminUserInfo()
  42. //beego.Alert(adminUserInfo.AdminUser)
  43. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  44. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  45. // return
  46. //}
  47. if page <= 0 {
  48. page = 1
  49. }
  50. roles, total, getRoleErr := service.GetRoles(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, page, 100)
  51. if getRoleErr != nil {
  52. //beego.Error("获取角色列表失败:", getRoleErr)
  53. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  54. } else {
  55. this.ServeSuccessJSON(map[string]interface{}{
  56. "roles": roles,
  57. "total_count": total,
  58. })
  59. }
  60. }
  61. // /api/role/create [post]
  62. // @param name:string
  63. // @param intro:string
  64. func (this *RoleAPIController) CreateRole() {
  65. name := this.GetString("name")
  66. intro := this.GetString("intro")
  67. if len(name) == 0 {
  68. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  69. return
  70. }
  71. adminUserInfo := this.GetAdminUserInfo()
  72. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  73. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  74. // return
  75. //}
  76. total := service.FindRoleRecordByRoleName(name, adminUserInfo.CurrentOrgId)
  77. if total > 0 {
  78. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRoleNameIsExist)
  79. return
  80. }
  81. role, createErr := service.CreateRole(adminUserInfo.AdminUser.Id, adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, name, intro)
  82. if createErr != nil {
  83. //beego.Error("创建角色失败:", createErr)
  84. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
  85. } else {
  86. this.ServeSuccessJSON(map[string]interface{}{
  87. "id": role.Id,
  88. "name": role.RoleName,
  89. "intro": role.RoleIntro,
  90. "status": role.Status,
  91. })
  92. }
  93. }
  94. // /api/role/modify
  95. // @param role_id:int
  96. // @param name:string
  97. // @param intro:string
  98. func (this *RoleAPIController) ModifyRole() {
  99. roleID, _ := this.GetInt64("role_id")
  100. name := this.GetString("name")
  101. intro := this.GetString("intro")
  102. if roleID <= 0 || len(name) == 0 || len(intro) == 0 {
  103. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  104. return
  105. }
  106. //adminUserInfo := this.GetAdminUserInfo()
  107. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  108. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  109. // return
  110. //}
  111. role, getRoleErr := service.GetRoleByRoleID(roleID)
  112. if getRoleErr != nil {
  113. //beego.Error("获取角色失败:", getRoleErr)
  114. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  115. return
  116. } else if role == nil {
  117. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRoleNotExist)
  118. return
  119. }
  120. role.RoleName = name
  121. role.RoleIntro = intro
  122. role.ModifyTime = time.Now().Unix()
  123. saveErr := service.ModifyRole(role)
  124. if saveErr != nil {
  125. //beego.Error("修改角色失败:", role.Id, saveErr)
  126. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate)
  127. } else {
  128. this.ServeSuccessJSON(nil)
  129. }
  130. }
  131. // /api/role/setstatus
  132. // @param role_id:int
  133. // @param enable:bool
  134. func (this *RoleAPIController) ModifyRoleStatus() {
  135. roleID, _ := this.GetInt64("role_id")
  136. enable, _ := this.GetBool("enable")
  137. if roleID <= 0 {
  138. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  139. return
  140. }
  141. adminUserInfo := this.GetAdminUserInfo()
  142. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  143. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  144. // return
  145. //}
  146. role, getRoleErr := service.GetRoleByRoleID(roleID)
  147. if getRoleErr != nil {
  148. //beego.Error("获取角色失败:", getRoleErr)
  149. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  150. return
  151. } else if role == nil {
  152. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRoleNotExist)
  153. return
  154. }
  155. if enable == false {
  156. if count, _ := service.RoleAdminUserCountTwo(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, roleID); count != 0 {
  157. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCannotRemoveRole)
  158. return
  159. }
  160. }
  161. if enable {
  162. role.Status = 1
  163. } else {
  164. role.Status = 2
  165. }
  166. role.ModifyTime = time.Now().Unix()
  167. saveErr := service.ModifyRole(role)
  168. if saveErr != nil {
  169. //beego.Error("修改角色失败:", role.Id, saveErr)
  170. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate)
  171. } else {
  172. this.ServeSuccessJSON(nil)
  173. }
  174. }
  175. // /role/purview/editinit [get]
  176. // @param role_id:int
  177. func (this *RoleAPIController) EditPurviewInitData() {
  178. //adminUserInfo := this.GetAdminUserInfo()
  179. //if
  180. //}
  181. roleId, _ := this.GetInt64("role_id")
  182. if roleId <= 0 {
  183. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  184. return
  185. }
  186. role, _ := service.GetRoleByRoleID(roleId)
  187. //purviews_xt, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(3)
  188. purviews_scrm, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(6)
  189. purviews_cdm, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(4)
  190. purviews_mall, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(7)
  191. purviews_ky_mall, getPurviewsErr := service.GetAllGeneralPurviewVMsProcessed(8)
  192. purviews_func, _ := service.GetAllGeneralFuncPurviewVMsProcessed()
  193. //门诊
  194. outpatientRegistration, _, _ := service.GetOtherAllGeneralPurviewVMsProcessed("/outpatientRegistration/manage")
  195. //电子病历
  196. _, _, originEle := service.GetOtherAllGeneralPurviewVMsProcessed("/patinets/ele")
  197. //透析管理
  198. _, _, originDialysis := service.GetOtherAllGeneralPurviewVMsProcessed("/dialysis/manage")
  199. //库房管理
  200. _, _, originStock := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/manage")
  201. //配置管理
  202. //_, _, orginConfig := service.GetOtherAllGeneralPurviewVMsProcessed("/config/manage")
  203. //门诊管理
  204. _, _, outpatientRegistrationPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/outpatientRegistration/index")
  205. //透析管理
  206. _, _, originDialysisWatchPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/dialysis/watch")
  207. _, _, originWorkforcePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/workforce/patient")
  208. _, _, originSignPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/sign/lineup")
  209. _, _, originMedicalSchedulingPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/medicalScheduling/index")
  210. _, _, originQcdPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/qcd/manage")
  211. _, _, originDevicePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/device/manage")
  212. _, _, originDataUploadPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/data/upload")
  213. _, _, originConsumablesPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/consumablesManagement")
  214. _, _, originDrugsPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/drugs")
  215. _, _, originSelfPreparedMedicinePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/selfPreparedMedicineIndex")
  216. _, _, originOtherPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/stock/other")
  217. _, _, originIntegrationPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/integration/manage")
  218. _, _, originTemplatePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/template/manage")
  219. _, _, originDictMedicinePurview := service.GetOtherAllGeneralPurviewVMsProcessed("/dict/manage")
  220. _, _, originBedPurview := service.GetOtherAllGeneralPurviewVMsProcessed("/bed/manage")
  221. //门诊管理
  222. subPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  223. for _, item := range outpatientRegistrationPurview {
  224. temp := &service.PurviewTreeViewModel{
  225. ID: item.Id,
  226. PID: item.Parentid,
  227. Name: item.Name,
  228. Number: 1,
  229. }
  230. subPurviewTreeViewModel = append(subPurviewTreeViewModel, temp)
  231. }
  232. for _, item := range outpatientRegistration {
  233. if item.Name == "门诊挂号" {
  234. item.Childs = append(item.Childs, subPurviewTreeViewModel...)
  235. }
  236. }
  237. //电子病历
  238. subElePurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  239. for _, item := range originEle {
  240. temp := &service.PurviewTreeViewModel{
  241. ID: item.Id,
  242. PID: item.Parentid,
  243. Name: item.Name,
  244. Number: 1,
  245. }
  246. subElePurviewTreeViewModel = append(subElePurviewTreeViewModel, temp)
  247. }
  248. //透析管理
  249. subDialysisPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  250. for _, item := range originDialysis {
  251. temp := &service.PurviewTreeViewModel{
  252. ID: item.Id,
  253. PID: item.Parentid,
  254. Name: item.Name,
  255. Number: 1,
  256. }
  257. subDialysisPurviewTreeViewModel = append(subDialysisPurviewTreeViewModel, temp)
  258. }
  259. //库存管理
  260. subStockPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  261. for _, item := range originStock {
  262. temp := &service.PurviewTreeViewModel{
  263. ID: item.Id,
  264. PID: item.Parentid,
  265. Name: item.Name,
  266. Number: 1,
  267. }
  268. subStockPurviewTreeViewModel = append(subStockPurviewTreeViewModel, temp)
  269. }
  270. ////配置管理
  271. //subConfigPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  272. //for _, item := range orginConfig {
  273. // temp := &service.PurviewTreeViewModel{
  274. // ID: item.Id,
  275. // PID: item.Parentid,
  276. // Name: item.Name,
  277. // Number: 1,
  278. // }
  279. // subConfigPurviewTreeViewModel = append(subConfigPurviewTreeViewModel, temp)
  280. //}
  281. //
  282. //
  283. //监测管理
  284. subWatchPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  285. for _, item := range originDialysisWatchPurview {
  286. temp := &service.PurviewTreeViewModel{
  287. ID: item.Id,
  288. PID: item.Parentid,
  289. Name: item.Name,
  290. Number: 1,
  291. }
  292. subWatchPurviewTreeViewModel = append(subWatchPurviewTreeViewModel, temp)
  293. }
  294. //排班管理
  295. subWorkforcePurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  296. for _, item := range originWorkforcePurview {
  297. temp := &service.PurviewTreeViewModel{
  298. ID: item.Id,
  299. PID: item.Parentid,
  300. Name: item.Name,
  301. Number: 1,
  302. }
  303. subWorkforcePurviewTreeViewModel = append(subWorkforcePurviewTreeViewModel, temp)
  304. }
  305. //签到排队
  306. subSignPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  307. for _, item := range originSignPurview {
  308. temp := &service.PurviewTreeViewModel{
  309. ID: item.Id,
  310. PID: item.Parentid,
  311. Name: item.Name,
  312. Number: 1,
  313. }
  314. subSignPurviewTreeViewModel = append(subSignPurviewTreeViewModel, temp)
  315. }
  316. //医护排班
  317. subMedicalSchedulingPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  318. for _, item := range originMedicalSchedulingPurview {
  319. temp := &service.PurviewTreeViewModel{
  320. ID: item.Id,
  321. PID: item.Parentid,
  322. Name: item.Name,
  323. Number: 1,
  324. }
  325. subMedicalSchedulingPurviewTreeViewModel = append(subMedicalSchedulingPurviewTreeViewModel, temp)
  326. }
  327. subQCDPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  328. for _, item := range originQcdPurview {
  329. temp := &service.PurviewTreeViewModel{
  330. ID: item.Id,
  331. PID: item.Parentid,
  332. Name: item.Name,
  333. Number: 1,
  334. }
  335. subQCDPurviewTreeViewModel = append(subQCDPurviewTreeViewModel, temp)
  336. }
  337. subDevicePurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  338. for _, item := range originDevicePurview {
  339. temp := &service.PurviewTreeViewModel{
  340. ID: item.Id,
  341. PID: item.Parentid,
  342. Name: item.Name,
  343. Number: 1,
  344. }
  345. subDevicePurviewTreeViewModel = append(subDevicePurviewTreeViewModel, temp)
  346. }
  347. subDataUploadPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  348. for _, item := range originDataUploadPurview {
  349. temp := &service.PurviewTreeViewModel{
  350. ID: item.Id,
  351. PID: item.Parentid,
  352. Name: item.Name,
  353. Number: 1,
  354. }
  355. subDataUploadPurviewTreeViewModel = append(subDataUploadPurviewTreeViewModel, temp)
  356. }
  357. subConsumablesPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  358. for _, item := range originConsumablesPurview {
  359. temp := &service.PurviewTreeViewModel{
  360. ID: item.Id,
  361. PID: item.Parentid,
  362. Name: item.Name,
  363. Number: 1,
  364. }
  365. subConsumablesPurviewTreeViewModel = append(subConsumablesPurviewTreeViewModel, temp)
  366. }
  367. subDrugPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  368. for _, item := range originDrugsPurview {
  369. temp := &service.PurviewTreeViewModel{
  370. ID: item.Id,
  371. PID: item.Parentid,
  372. Name: item.Name,
  373. Number: 1,
  374. }
  375. subDrugPurviewTreeViewModel = append(subDrugPurviewTreeViewModel, temp)
  376. }
  377. subSelfPreparedMedicinePurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  378. for _, item := range originSelfPreparedMedicinePurview {
  379. temp := &service.PurviewTreeViewModel{
  380. ID: item.Id,
  381. PID: item.Parentid,
  382. Name: item.Name,
  383. Number: 1,
  384. }
  385. subSelfPreparedMedicinePurviewTreeViewModel = append(subSelfPreparedMedicinePurviewTreeViewModel, temp)
  386. }
  387. subOtherPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  388. for _, item := range originOtherPurview {
  389. temp := &service.PurviewTreeViewModel{
  390. ID: item.Id,
  391. PID: item.Parentid,
  392. Name: item.Name,
  393. Number: 1,
  394. }
  395. subOtherPurviewTreeViewModel = append(subOtherPurviewTreeViewModel, temp)
  396. }
  397. subIntegrationPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  398. for _, item := range originIntegrationPurview {
  399. temp := &service.PurviewTreeViewModel{
  400. ID: item.Id,
  401. PID: item.Parentid,
  402. Name: item.Name,
  403. Number: 1,
  404. }
  405. subIntegrationPurviewTreeViewModel = append(subIntegrationPurviewTreeViewModel, temp)
  406. }
  407. subTemplatePurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  408. for _, item := range originTemplatePurview {
  409. temp := &service.PurviewTreeViewModel{
  410. ID: item.Id,
  411. PID: item.Parentid,
  412. Name: item.Name,
  413. Number: 1,
  414. }
  415. subTemplatePurviewTreeViewModel = append(subTemplatePurviewTreeViewModel, temp)
  416. }
  417. subDictPurviewTreeViewModel := []*service.PurviewTreeViewModel{}
  418. for _, item := range originDictMedicinePurview {
  419. temp := &service.PurviewTreeViewModel{
  420. ID: item.Id,
  421. PID: item.Parentid,
  422. Name: item.Name,
  423. Number: 1,
  424. }
  425. subDictPurviewTreeViewModel = append(subDictPurviewTreeViewModel, temp)
  426. }
  427. subBedPrviewTreeViewModel := []*service.PurviewTreeViewModel{}
  428. for _, item := range originBedPurview {
  429. temp := &service.PurviewTreeViewModel{
  430. ID: item.Id,
  431. PID: item.Parentid,
  432. Name: item.Name,
  433. Number: 1,
  434. }
  435. subBedPrviewTreeViewModel = append(subBedPrviewTreeViewModel, temp)
  436. }
  437. for _, item := range subDialysisPurviewTreeViewModel {
  438. if item.Name == "透析记录" {
  439. item.Childs = append(item.Childs, purviews_func...)
  440. }
  441. if item.Name == "透析监控" {
  442. item.Childs = append(item.Childs, subWatchPurviewTreeViewModel...)
  443. }
  444. if item.Name == "患者排班" {
  445. item.Childs = append(item.Childs, subWorkforcePurviewTreeViewModel...)
  446. }
  447. if item.Name == "签到排队" {
  448. item.Childs = append(item.Childs, subSignPurviewTreeViewModel...)
  449. }
  450. if item.Name == "医护排班" {
  451. item.Childs = append(item.Childs, subMedicalSchedulingPurviewTreeViewModel...)
  452. }
  453. if item.Name == "质控管理" {
  454. item.Childs = append(item.Childs, subQCDPurviewTreeViewModel...)
  455. }
  456. if item.Name == "院感管理" {
  457. item.Childs = append(item.Childs, subDevicePurviewTreeViewModel...)
  458. }
  459. if item.Name == "质控上报" {
  460. item.Childs = append(item.Childs, subDataUploadPurviewTreeViewModel...)
  461. }
  462. }
  463. for _, item := range subStockPurviewTreeViewModel {
  464. if item.Name == "耗材管理" {
  465. item.Childs = append(item.Childs, subConsumablesPurviewTreeViewModel...)
  466. }
  467. if item.Name == "药品管理" {
  468. item.Childs = append(item.Childs, subDrugPurviewTreeViewModel...)
  469. }
  470. if item.Name == "自备药管理" {
  471. item.Childs = append(item.Childs, subSelfPreparedMedicinePurviewTreeViewModel...)
  472. }
  473. if item.Name == "其他管理" {
  474. item.Childs = append(item.Childs, subOtherPurviewTreeViewModel...)
  475. }
  476. }
  477. //for _, item := range subConfigPurviewTreeViewModel {
  478. // if item.Name == "集成管理" {
  479. // item.Childs = append(item.Childs, subIntegrationPurviewTreeViewModel...)
  480. // }
  481. // if item.Name == "模版管理" {
  482. // item.Childs = append(item.Childs, subTemplatePurviewTreeViewModel...)
  483. // }
  484. // if item.Name == "字典管理" {
  485. // item.Childs = append(item.Childs, subDictPurviewTreeViewModel...)
  486. // }
  487. // if item.Name == "床位管理" {
  488. // item.Childs = append(item.Childs, subBedPrviewTreeViewModel...)
  489. // }
  490. //
  491. //}
  492. purviews := []*service.PurviewTreeViewModel{}
  493. menzhen := &service.PurviewTreeViewModel{
  494. ID: 0,
  495. PID: 0,
  496. Name: "门诊管理",
  497. Number: 3,
  498. Childs: outpatientRegistration,
  499. }
  500. purviews = append(purviews, menzhen)
  501. dianzi := &service.PurviewTreeViewModel{
  502. ID: 0,
  503. PID: 0,
  504. Name: "电子病历",
  505. Number: 3,
  506. Childs: subElePurviewTreeViewModel,
  507. }
  508. purviews = append(purviews, dianzi)
  509. touxi := &service.PurviewTreeViewModel{
  510. ID: 0,
  511. PID: 0,
  512. Name: "透析管理",
  513. Number: 3,
  514. Childs: subDialysisPurviewTreeViewModel,
  515. }
  516. purviews = append(purviews, touxi)
  517. kufang := &service.PurviewTreeViewModel{
  518. ID: 0,
  519. PID: 0,
  520. Name: "库房管理",
  521. Number: 3,
  522. Childs: subStockPurviewTreeViewModel,
  523. }
  524. purviews = append(purviews, kufang)
  525. ky_mall := &service.PurviewTreeViewModel{
  526. ID: 0,
  527. PID: 0,
  528. Name: "酷医商城",
  529. Number: 3,
  530. Childs: purviews_ky_mall,
  531. }
  532. purviews = append(purviews, ky_mall)
  533. cdm := &service.PurviewTreeViewModel{
  534. ID: 0,
  535. PID: 0,
  536. Number: 3,
  537. Name: "慢病管理",
  538. Childs: purviews_cdm,
  539. }
  540. purviews = append(purviews, cdm)
  541. scrm := &service.PurviewTreeViewModel{
  542. ID: 0,
  543. PID: 0,
  544. Name: "营销管理",
  545. Number: 3,
  546. Childs: purviews_scrm,
  547. }
  548. purviews = append(purviews, scrm)
  549. mall := &service.PurviewTreeViewModel{
  550. ID: 0,
  551. PID: 0,
  552. Name: "分销商城",
  553. Number: 3,
  554. Childs: purviews_mall,
  555. }
  556. purviews = append(purviews, mall)
  557. //peizhi := &service.PurviewTreeViewModel{
  558. // ID: 0,
  559. // PID: 0,
  560. // Name: "配置管理",
  561. // Number: 3,
  562. // Childs: subConfigPurviewTreeViewModel,
  563. //}
  564. //purviews = append(purviews, peizhi)
  565. if getPurviewsErr != nil {
  566. //beego.Error("获取所有权限时出错:", getPurviewsErr)
  567. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  568. return
  569. }
  570. rolePurviewIdStr, getRPIdsErr := service.GetRolePurviewIds(roleId)
  571. if getRPIdsErr != nil {
  572. //beego.Error("获取角色的权限时出错:", getRPIdsErr)
  573. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  574. return
  575. }
  576. roleFuncPurview, getFuncRPIdsErr := service.GetRoleFuncPurview(roleId)
  577. if getFuncRPIdsErr == gorm.ErrRecordNotFound {
  578. //beego.Error("获取角色的权限时出错:", getRPIdsErr)
  579. if roleFuncPurview.ID == 0 {
  580. rolePurviewIdStr = rolePurviewIdStr
  581. } else {
  582. rolePurviewIdStr = rolePurviewIdStr + "," + roleFuncPurview.PurviewIds
  583. }
  584. } else if getFuncRPIdsErr != nil {
  585. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  586. return
  587. } else {
  588. if roleFuncPurview.ID == 0 {
  589. rolePurviewIdStr = rolePurviewIdStr
  590. } else {
  591. rolePurviewIdStr = rolePurviewIdStr + "," + roleFuncPurview.PurviewIds
  592. }
  593. }
  594. this.ServeSuccessJSON(map[string]interface{}{
  595. "purviews": purviews,
  596. "role": role,
  597. "role_purview_ids": rolePurviewIdStr + "," + roleFuncPurview.PurviewIds,
  598. })
  599. }
  600. // /role/purview/edit [post]
  601. // @param role_id:int
  602. // @param purview_ids:string
  603. func (this *RoleAPIController) EditPurview() {
  604. adminUserInfo := this.GetAdminUserInfo()
  605. roleId, _ := this.GetInt64("role_id")
  606. purviewIds := this.GetString("purview_ids")
  607. funcPurviewIds := this.GetString("func_purview_ids")
  608. if roleId <= 0 {
  609. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  610. return
  611. }
  612. redis := service.RedisClient()
  613. defer redis.Close()
  614. users := service.GetAllUserRole(adminUserInfo.CurrentOrgId)
  615. for _, item := range users {
  616. key := "purviews_" + strconv.FormatInt(adminUserInfo.CurrentOrgId, 10) + strconv.FormatInt(item.AdminUserId, 10)
  617. redis.Set(key, "", time.Second)
  618. }
  619. err := service.SaveRolePurviewIds(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, roleId, purviewIds)
  620. err = service.SaveFuncRolePurviewIds(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, roleId, funcPurviewIds)
  621. if err != nil {
  622. //beego.Error("设置角色的权限时出错:", err)
  623. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate)
  624. } else {
  625. this.ServeSuccessJSON(nil)
  626. }
  627. }
  628. // func (this *RoleAPIController) doesUserHaveAccess(userID int64) bool {
  629. // adminUser, getAdminUserErr := service.GetAdminUserByUserID(userID)
  630. // if getAdminUserErr != nil {
  631. // beego.Error("获取用户信息失败:%v", getAdminUserErr)
  632. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  633. // return false
  634. // } else if adminUser == nil {
  635. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdminUserNotExist)
  636. // return false
  637. // } else if adminUser.Status == 2 {
  638. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUserWasForbidden)
  639. // return false
  640. // } else if adminUser.IsSuperAdmin == false {
  641. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  642. // return false
  643. // }
  644. // return true
  645. // }
  646. // func (this *RoleAPIController) isAppRoleExist(orgID int64, appID int64, userID int64) bool {
  647. // appRole, getAppRoleErr := service.GetAppRole(orgID, appID, userID)
  648. // if getAppRoleErr != nil {
  649. // beego.Error("检查用户和机构应用对应关系时失败:%v", getAppRoleErr)
  650. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  651. // return false
  652. // } else if appRole == nil {
  653. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  654. // return false
  655. // }
  656. // return true
  657. // }
  658. // /api/adminmain [get]
  659. func (this *RoleAPIController) AdminMainView() {
  660. adminUserInfo := this.GetAdminUserInfo()
  661. var isSubSuperAdmin bool = false
  662. adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id)
  663. if len(adminUserRole.RoleIds) > 0 {
  664. role_ids := strings.Split(adminUserRole.RoleIds, ",")
  665. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  666. if adminUserInfo.AdminUser.Id != org.Creator {
  667. for _, item := range role_ids {
  668. id, _ := strconv.ParseInt(item, 10, 64)
  669. if id != 0 {
  670. role, _ := service.GetRoleByRoleID(id)
  671. if role != nil {
  672. if role.IsSystem == 1 && role.RoleName == "子管理员" {
  673. isSubSuperAdmin = true
  674. }
  675. }
  676. }
  677. }
  678. }
  679. }
  680. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  681. viewModels, _, getAdminsErr := service.GetAdminUsersAndLoginInfo(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, 1, 100)
  682. if getAdminsErr != nil {
  683. //beego.Error("获取管理员列表失败:", getAdminsErr)
  684. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  685. return
  686. }
  687. this.ServeSuccessJSON(map[string]interface{}{
  688. "admins": viewModels,
  689. "org": org,
  690. "isSubSuperAdmin": isSubSuperAdmin,
  691. })
  692. }
  693. // /api/admins [get]
  694. // @param page?:int
  695. func (this *RoleAPIController) Admins() {
  696. adminUserInfo := this.GetAdminUserInfo()
  697. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  698. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  699. // return
  700. //}
  701. page, _ := this.GetInt("page")
  702. viewModels, total, getAdminsErr := service.GetAdminUsersAndLoginInfo(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, page, 100)
  703. if getAdminsErr != nil {
  704. //beego.Error("获取管理员列表失败:", getAdminsErr)
  705. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  706. } else {
  707. this.ServeSuccessJSON(map[string]interface{}{
  708. "admins": viewModels,
  709. "total_count": total,
  710. })
  711. }
  712. }
  713. // /api/admin/addinit [get]
  714. func (this *RoleAPIController) AddAdminInitData() {
  715. adminUserInfo := this.GetAdminUserInfo()
  716. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  717. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  718. // return
  719. //}
  720. var isSubSuperAdmin bool = false
  721. adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id)
  722. if len(adminUserRole.RoleIds) > 0 {
  723. //app_role, _ := service.GetAppRoleById(adminUserInfo.)
  724. role_ids := strings.Split(adminUserRole.RoleIds, ",")
  725. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  726. if adminUserInfo.AdminUser.Id != org.Creator {
  727. for _, item := range role_ids {
  728. id, _ := strconv.ParseInt(item, 10, 64)
  729. if id != 0 {
  730. role, _ := service.GetRoleByRoleID(id)
  731. if role != nil {
  732. if role.IsSystem == 1 && role.RoleName == "子管理员" {
  733. isSubSuperAdmin = true
  734. }
  735. }
  736. }
  737. }
  738. }
  739. }
  740. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  741. roles, getRoleErr := service.GetAllValidRoles(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId)
  742. if getRoleErr != nil {
  743. //beego.Error("获取所有角色失败:", getRoleErr)
  744. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  745. return
  746. }
  747. redisClient := service.RedisClient()
  748. defer redisClient.Close()
  749. qntoken, _ := redisClient.Get("qn_token").Result()
  750. this.ServeSuccessJSON(map[string]interface{}{
  751. "roles": roles,
  752. "qntoken": qntoken,
  753. "isSubSuperAdmin": isSubSuperAdmin,
  754. "org": org,
  755. })
  756. }
  757. // /api/admin/add [post]
  758. // @param mobile:string
  759. // @param name:string
  760. // @param type:int 管理员类型:2.医生 3.护士 4.运营
  761. // @param title:int 用户职称(1.医士;2.医师;3.住院医师;4.主治医师;5.副主任医师;6.主任医师;7.护士;8.护师;9.主管护师;10.副主任护师;11.主任护师;12.运营专员;13.运营主管)
  762. // @param role:int
  763. // @param intro?:string
  764. func (this *RoleAPIController) AddAdmin() {
  765. adminUserInfo := this.GetAdminUserInfo()
  766. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  767. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  768. // return
  769. //}
  770. mobile := this.GetString("mobile")
  771. name := this.GetString("name")
  772. userType, _ := this.GetInt("type")
  773. userTitle, _ := this.GetInt("title")
  774. roleIds := this.GetString("role")
  775. user_title_name := this.GetString("user_title_name")
  776. if len(mobile) == 0 || len(name) == 0 || (userType != 2 && userType != 3 && userType != 4) || len(roleIds) <= 0 {
  777. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  778. return
  779. }
  780. // 判断是否已存在该手机号
  781. if adminUser, err := service.GetValidAdminUserByMobileReturnErr(mobile); err != nil {
  782. //beego.Error("查询用户是否已被添加为管理员时失败:", err)
  783. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  784. return
  785. } else {
  786. if adminUser == nil { //新增账号和用户
  787. _, password, createErr := service.CreateGeneralAdminUser(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, mobile, name, user_title_name, roleIds, userType, userTitle)
  788. if createErr != nil {
  789. //beego.Error("创建管理员失败:", createErr)
  790. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
  791. return
  792. } else {
  793. sendSMSErr := service.SMSSendInviteMobileToJoinOrgAdmin(name, mobile, password)
  794. if sendSMSErr != nil {
  795. }
  796. this.ServeSuccessJSON(nil)
  797. return
  798. }
  799. } else {
  800. total, _ := service.FindAdminUserByID(adminUser.Id, adminUserInfo.CurrentOrgId)
  801. if total <= 0 {
  802. //新增用户
  803. app_role := &models.App_Role{
  804. AdminUserId: adminUser.Id,
  805. OrgId: adminUserInfo.CurrentOrgId,
  806. AppId: adminUserInfo.CurrentAppId,
  807. Avatar: "",
  808. UserName: name,
  809. UserTitleName: user_title_name,
  810. Status: 1,
  811. UserType: int8(userType),
  812. UserTitle: int8(userTitle),
  813. CreateTime: time.Now().Unix(),
  814. ModifyTime: time.Now().Unix(),
  815. RoleIds: roleIds,
  816. }
  817. err := service.CreateUserRole(app_role)
  818. if err != nil {
  819. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
  820. return
  821. }
  822. this.ServeSuccessJSON(nil)
  823. } else {
  824. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRepeatCreateStaffException)
  825. return
  826. }
  827. return
  828. }
  829. }
  830. }
  831. // /api/admin/editinit [get]
  832. // @param uid:int
  833. func (this *RoleAPIController) EditAdminInitData() {
  834. adminUserInfo := this.GetAdminUserInfo()
  835. admin_user_id, _ := this.GetInt64("uid")
  836. if admin_user_id <= 0 {
  837. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  838. return
  839. }
  840. appRole, getAppRoleErr := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, admin_user_id)
  841. if getAppRoleErr != nil {
  842. //beego.Error("查询管理员信息时失败:", getAppRoleErr)
  843. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  844. return
  845. }
  846. if appRole == nil {
  847. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdminUserNotExist)
  848. return
  849. }
  850. roles, getRoleErr := service.GetAllValidRoles(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId)
  851. if getRoleErr != nil {
  852. //beego.Error("获取所有角色失败:", getRoleErr)
  853. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  854. return
  855. }
  856. var isSubSuperAdmin bool = false
  857. adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id)
  858. if len(adminUserRole.RoleIds) > 0 {
  859. role_ids := strings.Split(adminUserRole.RoleIds, ",")
  860. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  861. if adminUserInfo.AdminUser.Id != org.Creator {
  862. for _, item := range role_ids {
  863. id, _ := strconv.ParseInt(item, 10, 64)
  864. if id != 0 {
  865. role, _ := service.GetRoleByRoleID(id)
  866. if role.IsSystem == 1 && role.RoleName == "子管理员" {
  867. isSubSuperAdmin = true
  868. }
  869. }
  870. }
  871. }
  872. }
  873. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  874. redisClient := service.RedisClient()
  875. defer redisClient.Close()
  876. qntoken, _ := redisClient.Get("qn_token").Result()
  877. this.ServeSuccessJSON(map[string]interface{}{
  878. "admin": appRole,
  879. "roles": roles,
  880. "qntoken": qntoken,
  881. "isSubSuperAdmin": isSubSuperAdmin,
  882. "org": org,
  883. })
  884. }
  885. // /api/admin/edit [post]
  886. // @param uid:int
  887. // @param name:string
  888. // @param type:int
  889. // @param title:int
  890. // @param role:int
  891. // @param intro?:string
  892. func (this *RoleAPIController) EditAdmin() {
  893. adminUserInfo := this.GetAdminUserInfo()
  894. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  895. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  896. // return
  897. //}
  898. adminUserId, _ := this.GetInt64("uid")
  899. name := this.GetString("name")
  900. userType, _ := this.GetInt("type")
  901. userTitle, _ := this.GetInt("title")
  902. roleIds := this.GetString("role")
  903. intro := this.GetString("intro")
  904. user_title_name := this.GetString("user_title_name")
  905. sort, _ := this.GetInt64("sort")
  906. _, titleExist := models.UserTitle[userTitle]
  907. if adminUserId <= 0 || len(name) == 0 || (userType != 2 && userType != 3 && userType != 4) || !titleExist || len(roleIds) <= 0 {
  908. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  909. return
  910. }
  911. appRole, getAppRoleErr := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserId)
  912. if getAppRoleErr != nil {
  913. //beego.Error("查询管理员信息时失败:", getAppRoleErr)
  914. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  915. return
  916. }
  917. if appRole == nil {
  918. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdminUserNotExist)
  919. return
  920. }
  921. appRole.UserName = name
  922. appRole.UserType = int8(userType)
  923. appRole.UserTitle = int8(userTitle)
  924. appRole.RoleIds = roleIds
  925. appRole.Intro = intro
  926. appRole.UserTitleName = user_title_name
  927. appRole.ModifyTime = time.Now().Unix()
  928. appRole.Sort = sort
  929. saveErr := service.SaveAppRole(appRole)
  930. if saveErr != nil {
  931. //beego.Error("修改App_Role失败:", saveErr)
  932. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate)
  933. } else {
  934. this.ServeSuccessJSON(nil)
  935. }
  936. }
  937. // /api/admin/setstatus [post]
  938. // @param uid:int
  939. // @param enable:bool
  940. func (this *RoleAPIController) AdminSetStatus() {
  941. adminUserInfo := this.GetAdminUserInfo()
  942. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  943. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  944. // return
  945. //}
  946. userID, _ := this.GetInt64("uid")
  947. if userID <= 0 {
  948. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  949. return
  950. }
  951. appRole, getAppRoleErr := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, userID)
  952. if getAppRoleErr != nil {
  953. //beego.Error("查询管理员信息失败:", getAppRoleErr)
  954. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  955. return
  956. } else if appRole == nil {
  957. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdminUserNotExist)
  958. return
  959. }
  960. enable, _ := this.GetBool("enable")
  961. if enable {
  962. appRole.Status = 1
  963. } else {
  964. appRole.Status = 0
  965. }
  966. appRole.ModifyTime = time.Now().Unix()
  967. saveErr := service.SaveAppRole(appRole)
  968. if saveErr != nil {
  969. //beego.Error("保存AppRole失败:", saveErr)
  970. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate)
  971. } else {
  972. this.ServeSuccessJSON(nil)
  973. }
  974. }
  975. // /api/admin/specialpermission/initdata [get]
  976. func (this *RoleAPIController) SpecialPermissionInitData() {
  977. adminUserInfo := this.GetAdminUserInfo()
  978. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  979. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  980. // return
  981. //}
  982. adminUsers, getAdminUsersErr := service.GetAllGeneralAdminUsers(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId)
  983. if getAdminUsersErr != nil {
  984. this.ErrorLog("获取所有普通用户失败:%v", getAdminUsersErr)
  985. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  986. return
  987. }
  988. headNurses, getAllHeadNursesErr := service.GetAllValidAdminUsersWithSpecialPermission(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, models.SpecialPermissionTypeHeadNurse)
  989. if getAllHeadNursesErr != nil {
  990. this.ErrorLog("获取所有拥有护士长特殊权限的用户失败:%v", getAllHeadNursesErr)
  991. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  992. return
  993. }
  994. this.ServeSuccessJSON(map[string]interface{}{
  995. "users": adminUsers,
  996. "head_nurses": headNurses,
  997. })
  998. }
  999. // /api/admin/specialpermission/dialysisrecord/submit [post]
  1000. // @param ids:string ("1,2,5")
  1001. func (this *RoleAPIController) SubmitDialysisRecordPermission() {
  1002. adminUserInfo := this.GetAdminUserInfo()
  1003. //if adminUserInfo.AdminUser.IsSuperAdmin == false {
  1004. // this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  1005. // return
  1006. //}
  1007. idsString := this.GetString("ids")
  1008. if len(idsString) == 0 {
  1009. // 取消所有用户的护士长权限
  1010. cancelErr := service.CancelAllSpecialPermissionAdminUsers(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, models.SpecialPermissionTypeHeadNurse)
  1011. if cancelErr != nil {
  1012. this.ErrorLog("取消所有用户的护士长权限失败:%v", cancelErr)
  1013. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  1014. return
  1015. } else {
  1016. this.ServeSuccessJSON(nil)
  1017. return
  1018. }
  1019. } else {
  1020. ids := make([]int64, 0)
  1021. idStrs := strings.Split(idsString, ",")
  1022. for _, idStr := range idStrs {
  1023. id, parseErr := strconv.Atoi(idStr)
  1024. if parseErr != nil {
  1025. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  1026. return
  1027. }
  1028. ids = append(ids, int64(id))
  1029. }
  1030. headNurses, getAllHeadNursesErr := service.GetAllSpecialPermissionAdminUsersWithoutStatus(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, models.SpecialPermissionTypeHeadNurse)
  1031. if getAllHeadNursesErr != nil {
  1032. this.ErrorLog("获取所有拥有或曾拥有护士长特殊权限的用户失败:%v", getAllHeadNursesErr)
  1033. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  1034. return
  1035. }
  1036. cancelList := make([]*models.AdminUserSpecialPermission, 0)
  1037. addList := make([]*models.AdminUserSpecialPermission, 0)
  1038. for _, id := range ids {
  1039. exit := false
  1040. for _, headNurse := range headNurses {
  1041. if headNurse.AdminUserID == id {
  1042. exit = true
  1043. if headNurse.Status != 1 {
  1044. headNurse.Status = 1
  1045. headNurse.ModifyTime = time.Now().Unix()
  1046. addList = append(addList, headNurse)
  1047. }
  1048. break
  1049. }
  1050. }
  1051. if exit == false {
  1052. newHeadNurse := &models.AdminUserSpecialPermission{
  1053. OrgID: adminUserInfo.CurrentOrgId,
  1054. AppID: adminUserInfo.CurrentAppId,
  1055. AdminUserID: id,
  1056. Permission: int64(models.SpecialPermissionTypeHeadNurse),
  1057. Status: 1,
  1058. CreateTime: time.Now().Unix(),
  1059. ModifyTime: time.Now().Unix(),
  1060. }
  1061. addList = append(addList, newHeadNurse)
  1062. }
  1063. }
  1064. for _, headNurse := range headNurses {
  1065. cancel := true
  1066. for _, willAdd := range addList {
  1067. if willAdd.AdminUserID == headNurse.AdminUserID {
  1068. cancel = false
  1069. break
  1070. }
  1071. }
  1072. if cancel {
  1073. headNurse.Status = 0
  1074. headNurse.ModifyTime = time.Now().Unix()
  1075. cancelList = append(cancelList, headNurse)
  1076. }
  1077. }
  1078. addErr := service.BatchSaveSpecialPermissionAdminUsers(addList)
  1079. if addErr != nil {
  1080. this.ErrorLog("授权失败:%v", addErr)
  1081. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  1082. return
  1083. }
  1084. cancelErr := service.BatchSaveSpecialPermissionAdminUsers(cancelList)
  1085. if cancelErr != nil {
  1086. this.ErrorLog("取消授权失败:%v", cancelErr)
  1087. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  1088. return
  1089. }
  1090. this.ServeSuccessJSON(nil)
  1091. }
  1092. }
  1093. func (this *RoleAPIController) GetAllOrgRole() {
  1094. adminUserInfo := this.GetAdminUserInfo()
  1095. var isSubSuperAdmin bool = false
  1096. adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id)
  1097. if len(adminUserRole.RoleIds) > 0 {
  1098. //app_role, _ := service.GetAppRoleById(adminUserInfo.)
  1099. role_ids := strings.Split(adminUserRole.RoleIds, ",")
  1100. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  1101. if adminUserInfo.AdminUser.Id != org.Creator {
  1102. for _, item := range role_ids {
  1103. id, _ := strconv.ParseInt(item, 10, 64)
  1104. if id != 0 {
  1105. role, _ := service.GetRoleByRoleID(id)
  1106. if role != nil {
  1107. if role.IsSystem == 1 && role.RoleName == "子管理员" {
  1108. isSubSuperAdmin = true
  1109. }
  1110. }
  1111. }
  1112. }
  1113. }
  1114. }
  1115. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  1116. roles, err := service.GetAllOrgValidRoles(adminUserInfo.CurrentOrgId, isSubSuperAdmin)
  1117. if err != nil {
  1118. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  1119. return
  1120. } else {
  1121. this.ServeSuccessJSON(map[string]interface{}{
  1122. "roles": roles,
  1123. "isSubSuperAdmin": isSubSuperAdmin,
  1124. "org": org,
  1125. })
  1126. }
  1127. }
  1128. func (this *RoleAPIController) GetAllOrgUser() {
  1129. adminUserInfo := this.GetAdminUserInfo()
  1130. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  1131. var isSubSuperAdmin bool = false
  1132. adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id)
  1133. if len(adminUserRole.RoleIds) > 0 {
  1134. //app_role, _ := service.GetAppRoleById(adminUserInfo.)
  1135. role_ids := strings.Split(adminUserRole.RoleIds, ",")
  1136. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  1137. if adminUserInfo.AdminUser.Id != org.Creator {
  1138. for _, item := range role_ids {
  1139. id, _ := strconv.ParseInt(item, 10, 64)
  1140. if id != 0 {
  1141. role, _ := service.GetRoleByRoleID(id)
  1142. if role != nil {
  1143. if role.IsSystem == 1 && role.RoleName == "子管理员" {
  1144. isSubSuperAdmin = true
  1145. }
  1146. }
  1147. }
  1148. }
  1149. }
  1150. }
  1151. viewModels, _, _ := service.GetAllAdminUsersAndRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, 1, 100)
  1152. this.ServeSuccessJSON(map[string]interface{}{
  1153. "admins": viewModels,
  1154. "org": org,
  1155. "isSubSuperAdmin": isSubSuperAdmin,
  1156. })
  1157. }
  1158. func (this *RoleAPIController) AddRoleStaff() {
  1159. //adminUserInfo := this.GetMobileAdminUserInfo()
  1160. role_id, _ := this.GetInt64("id", 0)
  1161. staff_ids := this.GetString("ids")
  1162. ids := strings.Split(staff_ids, ",")
  1163. for _, item := range ids {
  1164. id, _ := strconv.ParseInt(item, 10, 64)
  1165. role, _ := service.FindAdminUserID(id)
  1166. role.RoleIds = role.RoleIds + "," + strconv.FormatInt(role_id, 10)
  1167. service.SaveAdminUser(&role)
  1168. }
  1169. this.ServeSuccessJSON(map[string]interface{}{
  1170. "msg": "添加成功",
  1171. })
  1172. }
  1173. func (this *RoleAPIController) GetRoleStaff() {
  1174. adminUserInfo := this.GetAdminUserInfo()
  1175. var isSubSuperAdmin bool = false
  1176. adminUserRole, _ := service.GetAppRole(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, adminUserInfo.AdminUser.Id)
  1177. if len(adminUserRole.RoleIds) > 0 {
  1178. role_ids := strings.Split(adminUserRole.RoleIds, ",")
  1179. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  1180. if adminUserInfo.AdminUser.Id != org.Creator {
  1181. for _, item := range role_ids {
  1182. id, _ := strconv.ParseInt(item, 10, 64)
  1183. if id != 0 {
  1184. role, _ := service.GetRoleByRoleID(id)
  1185. if role.IsSystem == 1 && role.RoleName == "子管理员" {
  1186. isSubSuperAdmin = true
  1187. }
  1188. }
  1189. }
  1190. }
  1191. }
  1192. org, _ := service.GetOrgById(adminUserInfo.CurrentOrgId)
  1193. viewModels, _, getAdminsErr := service.GetAdminUsersAndLoginInfo(adminUserInfo.CurrentOrgId, adminUserInfo.CurrentAppId, 1, 100)
  1194. if getAdminsErr != nil {
  1195. //beego.Error("获取管理员列表失败:", getAdminsErr)
  1196. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  1197. return
  1198. }
  1199. this.ServeSuccessJSON(map[string]interface{}{
  1200. "admins": viewModels,
  1201. "org": org,
  1202. "isSubSuperAdmin": isSubSuperAdmin,
  1203. })
  1204. }
  1205. func (this *RoleAPIController) GetRoleInfo() {
  1206. roleId, _ := this.GetInt64("role_id")
  1207. if roleId <= 0 {
  1208. this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  1209. return
  1210. }
  1211. role, _ := service.GetRoleByRoleID(roleId)
  1212. this.ServeSuccessJSON(map[string]interface{}{
  1213. "role": role,
  1214. })
  1215. }