sso

org_controller.go 37KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229
  1. package controllers
  2. import (
  3. "SSO/enums"
  4. "SSO/models"
  5. "SSO/service"
  6. "SSO/utils"
  7. "bytes"
  8. "encoding/json"
  9. "fmt"
  10. "log"
  11. "os"
  12. "path"
  13. "regexp"
  14. "runtime"
  15. "strconv"
  16. "time"
  17. "github.com/astaxie/beego"
  18. )
  19. type OrgController struct {
  20. BaseController
  21. }
  22. // /org/create [get]
  23. func (this *OrgController) Create() {
  24. adminUserObj := this.GetSession("admin_user")
  25. if adminUserObj == nil {
  26. this.Redirect302(beego.URLFor("LoginController.PwdLogin"))
  27. return
  28. }
  29. adminUser := adminUserObj.(*models.AdminUser)
  30. if !adminUser.IsSuperAdmin {
  31. utils.ErrorLog("用户%v不是超级管理员,没有权限创建机构,应跳转到错误页", adminUser.Mobile)
  32. this.Redirect302(beego.URLFor("OrgController.CreateAppHint"))
  33. return
  34. }
  35. if didCreateOrg, checkCreateOrgErr := service.DidAdminUserCreateOrg(adminUser.Id); checkCreateOrgErr != nil {
  36. utils.ErrorLog("检查id = %v的用户是否创建了机构时出错:%v", adminUser.Id, checkCreateOrgErr)
  37. // this.Redirect302(beego.URLFor("LoginController.PwdLogin"))
  38. this.Abort("404")
  39. return
  40. } else {
  41. if didCreateOrg {
  42. // if didCreateApp, checkCreateAppErr := service.DidAdminUserOrgCreateApp(adminUser.Id); checkCreateAppErr != nil {
  43. // utils.ErrorLog("检查id = %v的用户是否创建了应用时出错:%v", adminUser.Id, checkCreateAppErr)
  44. // this.Redirect302(beego.URLFor("LoginController.Login"))
  45. // return
  46. // } else {
  47. // if didCreateApp {
  48. // // 前往该去的地方 LoginController.getRedirectURL()
  49. // }
  50. // }
  51. utils.ErrorLog("id = %v 的用户已创建机构,接下来应当前往应用页或者前往错误页", adminUser.Id)
  52. this.Redirect302(beego.URLFor("LoginController.CreateApp"))
  53. return
  54. }
  55. }
  56. cats, getCatErr := service.GetOrgCategoriesByPid(0)
  57. if getCatErr != nil {
  58. utils.ErrorLog("获取机构类型失败:%v", getCatErr)
  59. this.Abort("404")
  60. return
  61. }
  62. this.Data["categories"] = cats
  63. this.Data["avatar"] = "/static/images/userData.png"
  64. this.Data["user_name"] = adminUser.Mobile
  65. this.Data["province"] = service.GetAllProvince()
  66. this.Data["illness"], _ = service.GetIllness()
  67. this.SetTpl("new_main/create_org.html")
  68. }
  69. // /org/create/submit [post]
  70. // @param name:string
  71. // @param short_name:string 已和 name 同步,不需要传了
  72. // @param intro?:string
  73. // @param logo?:string
  74. // @param province:int
  75. // @param city:int
  76. // @param district:int
  77. // @param address:string
  78. // @param ill?:string ("病种1,病种2")
  79. // @param category:int
  80. // @param contact_name:string
  81. // @param org_phone?:string
  82. // @param business_week?:string
  83. // @param business_time?:string
  84. // @param business_state?:int
  85. // @param org_pics?:string (url1@@url2@@url3)
  86. // @param open_xt?:bool 是否开启血透系统
  87. // @param open_cdm?:bool 是否开启慢病系统
  88. // @param open_scrm?:bool 是否开启SCRM
  89. // @param open_mall?:bool 是否开启Mall
  90. func (this *OrgController) CreateSubmit() {
  91. adminUserObj := this.GetSession("admin_user")
  92. if adminUserObj == nil {
  93. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeLoginTimeout)
  94. this.ServeJSON()
  95. return
  96. }
  97. adminUser := adminUserObj.(*models.AdminUser)
  98. if !adminUser.IsSuperAdmin {
  99. utils.ErrorLog("用户%v不是超级管理员,没有权限创建机构", adminUser.Mobile)
  100. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  101. this.ServeJSON()
  102. return
  103. }
  104. if didCreateOrg, checkCreateOrgErr := service.DidAdminUserCreateOrg(adminUser.Id); checkCreateOrgErr != nil {
  105. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  106. this.ServeJSON()
  107. return
  108. } else if didCreateOrg {
  109. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeRepeatCreateOrg)
  110. this.ServeJSON()
  111. return
  112. }
  113. user_name := this.GetString("user_name")
  114. name := this.GetString("name")
  115. shortName := name // this.GetString("short_name")
  116. intro := this.GetString("intro")
  117. logo := this.GetString("logo")
  118. province, _ := this.GetInt("province", 0)
  119. city, _ := this.GetInt("city", 0)
  120. district, _ := this.GetInt("district", 0)
  121. address := this.GetString("address")
  122. ill := this.GetString("ill")
  123. category, _ := this.GetInt64("category")
  124. contactName := this.GetString("contact_name")
  125. openXT, _ := this.GetBool("open_xt")
  126. openCDM, _ := this.GetBool("open_cdm")
  127. openSCRM, _ := this.GetBool("open_scrm")
  128. openMall, _ := this.GetBool("open_mall")
  129. if len(name) == 0 || len(shortName) == 0 || len(contactName) == 0 || len(address) == 0 || province <= 0 || city <= 0 || district <= 0 || category <= 0 || (!openXT && !openCDM && !openSCRM && !openMall) {
  130. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  131. this.ServeJSON()
  132. return
  133. }
  134. orgPhone := this.GetString("org_phone")
  135. businessWeek := this.GetString("business_week")
  136. businessTime := this.GetString("business_time")
  137. businessState, _ := this.GetInt64("business_state")
  138. orgPics := this.GetString("org_pics")
  139. //orgPics := this.GetString("name")
  140. if len(orgPhone) > 0 {
  141. if utils.PhoneRegexp().MatchString(orgPhone) == false {
  142. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  143. this.ServeJSON()
  144. return
  145. }
  146. }
  147. if businessState != 0 && businessState != 1 {
  148. businessState = 0
  149. }
  150. org := models.Org{
  151. Creator: adminUser.Id,
  152. OrgName: name,
  153. OrgShortName: shortName,
  154. OrgIntroduction: intro,
  155. OrgLogo: logo,
  156. Province: province,
  157. City: city,
  158. District: district,
  159. Address: address,
  160. Illness: ill,
  161. OrgType: category,
  162. OperatingState: businessState,
  163. Telephone: orgPhone,
  164. ContactName: contactName,
  165. BusinessWeek: businessWeek,
  166. BusinessTime: businessTime,
  167. Gallery: orgPics,
  168. Claim: 1,
  169. Evaluate: 5,
  170. Status: 1,
  171. CreateTime: time.Now().Unix(),
  172. ModifyTime: time.Now().Unix(),
  173. }
  174. createErr := service.CreateOrg(&org, adminUser.Mobile, openXT, openCDM, openSCRM, openMall, user_name) // 创建机构以及所有类型的 app,如果有新类型的平台,则需要在这个方法里面把创建这一新类型的 app 的代码加上
  175. if createErr != nil {
  176. utils.ErrorLog("mobile=%v的超级管理员创建机构失败:%v", adminUser.Mobile, createErr)
  177. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
  178. this.ServeJSON()
  179. } else {
  180. //初始化病人和排班相关数据
  181. InitPatientAndSchedule(&org)
  182. //初始化透析方案
  183. InitSystemPrescrption(&org)
  184. //初始化医嘱模版
  185. //InitAdviceTemplate(org)
  186. //初始化角色和权限
  187. InitRoleAndPurviews(&org)
  188. //初始化设备管理org
  189. InitEquitMentInformation(&org)
  190. redirectURL := beego.AppConfig.String("submodule_domain_dialysis_manage")
  191. //} else if openCDM {
  192. // redirectURL = beego.AppConfig.String("submodule_domain_cdm_manage")
  193. //} else if openSCRM {
  194. // redirectURL = beego.AppConfig.String("submodule_domain_patient_manage")
  195. //} else if openMall {
  196. // redirectURL = beego.AppConfig.String("submodule_domain_mall_manage")
  197. //}
  198. this.Data["json"] = enums.MakeSuccessResponseJSON(map[string]interface{}{
  199. "url": redirectURL,
  200. })
  201. this.ServeJSON()
  202. }
  203. }
  204. // /org/app/create [get] 19.06.04 之前的管理应用逻辑,已弃用
  205. func (this *OrgController) CreateApp() {
  206. // this.Abort("404")
  207. // return
  208. adminUserObj := this.GetSession("admin_user")
  209. if adminUserObj == nil {
  210. this.Redirect302(beego.URLFor("LoginController.PwdLogin"))
  211. return
  212. }
  213. adminUser := adminUserObj.(*models.AdminUser)
  214. if !adminUser.IsSuperAdmin {
  215. utils.ErrorLog("用户%v不是超级管理员,没有权限创建应用,应跳转到错误页", adminUser.Mobile)
  216. this.Redirect302(beego.URLFor("OrgController.CreateAppHint"))
  217. return
  218. }
  219. org, getOrgErr := service.GetOrgWithAdminUserID(adminUser.Id)
  220. if getOrgErr != nil {
  221. utils.ErrorLog("获取id = %v的用户创建的机构时出错:%v", adminUser.Id, getOrgErr)
  222. // this.Redirect302(beego.URLFor("LoginController.PwdLogin"))
  223. this.Abort("404")
  224. return
  225. } else {
  226. if org == nil {
  227. this.Redirect302(beego.URLFor("OrgController.Create"))
  228. return
  229. } else {
  230. _, getAppsErr := service.GetOrgApps(adminUser.Id, org.Id)
  231. if getAppsErr != nil {
  232. utils.ErrorLog("获取id = %v的用户创建的机构下已创建的应用时出错:%v", adminUser.Id, getOrgErr)
  233. // this.Redirect302(beego.URLFor("LoginController.PwdLogin"))
  234. this.Abort("404")
  235. return
  236. } else {
  237. this.Data["avatar"] = org.OrgLogo //"/static/images/userData.png"
  238. this.Data["user_name"] = org.OrgShortName //adminUser.Mobile
  239. // 已创建的应用的信息
  240. //did_patient_manage_create := false
  241. //did_dialysis_manage_create := false
  242. //did_cdm_manage_create := false
  243. //did_mall_manage_create := false
  244. //for _, app := range apps {
  245. // if app.AppType == 1 {
  246. // did_patient_manage_create = true
  247. // } else if app.AppType == 3 {
  248. // did_dialysis_manage_create = true
  249. // } else if app.AppType == 4 {
  250. // did_cdm_manage_create = true
  251. // } else if app.AppType == 5 {
  252. // did_mall_manage_create = true
  253. // }
  254. //}
  255. //// 自动创建所有应用
  256. //if did_patient_manage_create == false {
  257. // err := service.CreateOrgApp(adminUser.Id, org.Id, 1, true)
  258. // if err != nil {
  259. // utils.ErrorLog("自动创建酷医聚客应用失败:%v", err)
  260. // this.Abort("404")
  261. // return
  262. // }
  263. //}
  264. //if did_dialysis_manage_create == false {
  265. // err := service.CreateOrgApp(adminUser.Id, org.Id, 3, true)
  266. // if err != nil {
  267. // utils.ErrorLog("自动创建透析管理应用失败:%v", err)
  268. // this.Abort("404")
  269. // return
  270. // }
  271. //}
  272. //if did_cdm_manage_create == false {
  273. // err := service.CreateOrgApp(adminUser.Id, org.Id, 4, true)
  274. // if err != nil {
  275. // utils.ErrorLog("自动创建慢病管理应用失败:%v", err)
  276. // this.Abort("404")
  277. // return
  278. // }
  279. //}
  280. //if did_mall_manage_create == false {
  281. // err := service.CreateOrgApp(adminUser.Id, org.Id, 5, true)
  282. // if err != nil {
  283. // utils.ErrorLog("自动创建微商城应用失败:%v", err)
  284. // this.Abort("404")
  285. // return
  286. // }
  287. //}
  288. this.Data["submodule_domain_patient_manage"] = beego.AppConfig.String("submodule_domain_patient_manage")
  289. this.Data["submodule_domain_dialysis_manage"] = beego.AppConfig.String("submodule_domain_dialysis_manage")
  290. this.Data["submodule_domain_cdm_manage"] = beego.AppConfig.String("submodule_domain_cdm_manage")
  291. this.Data["submodule_domain_mall_manage"] = beego.AppConfig.String("submodule_domain_mall_manage")
  292. this.SetTpl("new_main/manage_app.html")
  293. }
  294. }
  295. }
  296. }
  297. // /org/admin/apps [get]
  298. // @param org:int
  299. //func (this *OrgController) ViewApps() {
  300. // adminUserObj := this.GetSession("admin_user")
  301. // if adminUserObj == nil {
  302. // this.Redirect302(beego.URLFor("LoginController.PwdLogin"))
  303. // return
  304. // }
  305. // adminUser := adminUserObj.(*models.AdminUser)
  306. // orgID, _ := this.GetInt("org")
  307. // if orgID <= 0 {
  308. // this.Abort("404")
  309. // return
  310. // }
  311. // org, getOrgErr := service.GetOrgById(orgID)
  312. // if getOrgErr != nil {
  313. // utils.ErrorLog("获取id = %v的用户创建的机构时出错:%v", adminUser.Id, getOrgErr)
  314. // this.Abort("404")
  315. // return
  316. // } else {
  317. // if org == nil {
  318. // if adminUser.IsSuperAdmin == true {
  319. // this.Redirect302(beego.URLFor("OrgController.Create"))
  320. // } else {
  321. // this.Abort("404")
  322. // }
  323. // return
  324. // } else {
  325. // this.Data["avatar"] = org.OrgLogo
  326. // this.Data["user_name"] = org.OrgShortName
  327. // this.Data["is_super_admin"] = adminUser.IsSuperAdmin
  328. // this.Data["org_id"] = org.Id
  329. //
  330. // apps, getAppsErr := service.GetAdminUserAllOrgApp(adminUser.Id, org.Id)
  331. // if getAppsErr != nil {
  332. // utils.ErrorLog("获取 id = %v,org_id = %v 的用户有权限的应用时出错:%v", adminUser.Id, org.Id, getOrgErr)
  333. // this.Abort("404")
  334. // return
  335. // }
  336. // this.Data["scrm_role_exist"] = false
  337. // this.Data["xt_role_exist"] = false
  338. // this.Data["cdm_role_exist"] = false
  339. // this.Data["mall_role_exist"] = false
  340. // for _, app := range apps {
  341. // if app.AppType == 1 && app.OpenStatus == 1 {
  342. // this.Data["scrm_role_exist"] = true
  343. // }
  344. // if app.AppType == 3 && app.OpenStatus == 1 {
  345. // this.Data["xt_role_exist"] = true
  346. // }
  347. // if app.AppType == 4 && app.OpenStatus == 1 {
  348. // this.Data["cdm_role_exist"] = true
  349. // }
  350. // if app.AppType == 5 && app.OpenStatus == 1 {
  351. // this.Data["mall_role_exist"] = true
  352. // }
  353. // }
  354. //
  355. // this.Data["submodule_domain_patient_manage"] = beego.AppConfig.String("submodule_domain_patient_manage")
  356. // this.Data["submodule_domain_dialysis_manage"] = beego.AppConfig.String("submodule_domain_dialysis_manage")
  357. // this.Data["submodule_domain_cdm_manage"] = beego.AppConfig.String("submodule_domain_cdm_manage")
  358. // this.Data["submodule_domain_mall_manage"] = beego.AppConfig.String("submodule_domain_mall_manage")
  359. // this.SetTpl("new_main/manage_app.html")
  360. // }
  361. // }
  362. //}
  363. // /app/open [post]
  364. // @param type:int
  365. func (this *OrgController) OpenAppSubmit() {
  366. adminUserObj := this.GetSession("admin_user")
  367. if adminUserObj == nil {
  368. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeLoginTimeout)
  369. this.ServeJSON()
  370. return
  371. }
  372. adminUser := adminUserObj.(*models.AdminUser)
  373. if !adminUser.IsSuperAdmin {
  374. utils.ErrorLog("用户%v不是超级管理员,没有权限启用应用", adminUser.Mobile)
  375. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  376. this.ServeJSON()
  377. return
  378. }
  379. appType, _ := this.GetInt("type")
  380. if url := service.GetAppURLWithAppType(appType); len(url) == 0 {
  381. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  382. this.ServeJSON()
  383. return
  384. }
  385. org, getOrgErr := service.GetOrgWithAdminUserID(adminUser.Id)
  386. if getOrgErr != nil {
  387. utils.ErrorLog("获取id = %v的用户创建的机构时出错:%v", adminUser.Id, getOrgErr)
  388. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  389. this.ServeJSON()
  390. return
  391. } else {
  392. if org == nil {
  393. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeMissingOrg)
  394. this.ServeJSON()
  395. return
  396. } else {
  397. app, getAppErr := service.GetOrgAppWithType(adminUser.Id, org.Id, appType)
  398. if getAppErr != nil {
  399. utils.ErrorLog("获取 id=%v 的用户的类型为%v的应用时失败:%v", adminUser.Id, appType)
  400. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  401. this.ServeJSON()
  402. return
  403. }
  404. if app == nil {
  405. createAppErr := service.CreateOrgApp(adminUser.Id, org.Id, appType, true)
  406. if createAppErr != nil {
  407. utils.ErrorLog("id=%v的超级管理员创建类型为%v的应用时失败:%v", adminUser.Id, appType, createAppErr)
  408. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
  409. this.ServeJSON()
  410. } else {
  411. this.Data["json"] = enums.MakeSuccessResponseJSON(nil)
  412. this.ServeJSON()
  413. }
  414. } else {
  415. if app.OpenStatus != 1 {
  416. app.OpenStatus = 1
  417. app.ModifyTime = time.Now().Unix()
  418. updateErr := service.SaveOrgApp(app)
  419. if updateErr != nil {
  420. utils.ErrorLog("id=%v的超级管理员开启类型为%v的应用时失败:%v", adminUser.Id, appType, updateErr)
  421. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
  422. this.ServeJSON()
  423. return
  424. }
  425. }
  426. this.Data["json"] = enums.MakeSuccessResponseJSON(nil)
  427. this.ServeJSON()
  428. }
  429. }
  430. }
  431. }
  432. // /org/app/create/submit [post] 已废弃
  433. // @param app_type:int
  434. func (this *OrgController) CreateAppSubmit() {
  435. adminUserObj := this.GetSession("admin_user")
  436. if adminUserObj == nil {
  437. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeLoginTimeout)
  438. this.ServeJSON()
  439. return
  440. }
  441. adminUser := adminUserObj.(*models.AdminUser)
  442. if !adminUser.IsSuperAdmin {
  443. utils.ErrorLog("用户%v不是超级管理员,没有权限创建机构", adminUser.Mobile)
  444. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodePermissionDenied)
  445. this.ServeJSON()
  446. return
  447. }
  448. appType, _ := this.GetInt("app_type", 0)
  449. // if appType != 1 && appType != 3 && appType != 5 {
  450. // this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  451. // this.ServeJSON()
  452. // return
  453. // }
  454. if url := service.GetAppURLWithAppType(appType); len(url) == 0 {
  455. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
  456. this.ServeJSON()
  457. return
  458. }
  459. org, getOrgErr := service.GetOrgWithAdminUserID(adminUser.Id)
  460. if getOrgErr != nil {
  461. utils.ErrorLog("获取id = %v的用户创建的机构时出错:%v", adminUser.Id, getOrgErr)
  462. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  463. this.ServeJSON()
  464. return
  465. } else {
  466. if org == nil {
  467. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeMissingOrg)
  468. this.ServeJSON()
  469. return
  470. } else {
  471. if didCreate, checkErr := service.DidOrgDidCreateAppWithType(org.Id, appType); checkErr != nil {
  472. utils.ErrorLog("检查id = %v的用户是否创建了类型为%v的应用时出错:%v", adminUser.Id, appType, checkErr)
  473. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  474. this.ServeJSON()
  475. return
  476. } else {
  477. if didCreate {
  478. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeRepeatCreateApp)
  479. this.ServeJSON()
  480. return
  481. }
  482. }
  483. // 创建应用
  484. if createErr := service.CreateOrgApp(adminUser.Id, org.Id, appType, false); createErr != nil {
  485. utils.ErrorLog("id=%v的超级管理员创建类型为%v的应用时失败:%v", adminUser.Id, appType, createErr)
  486. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
  487. this.ServeJSON()
  488. } else {
  489. this.Data["json"] = enums.MakeSuccessResponseJSON(nil)
  490. this.ServeJSON()
  491. }
  492. }
  493. }
  494. }
  495. type OrgCategoryController struct {
  496. BaseController
  497. }
  498. // /get_org_cat [get]
  499. // @param pid?:int
  500. func (this *OrgCategoryController) GetOrgCategories() {
  501. pid, _ := this.GetInt64("pid")
  502. if pid < 0 {
  503. pid = 0
  504. }
  505. cats, getCatErr := service.GetOrgCategoriesByPid(pid)
  506. if getCatErr != nil {
  507. utils.ErrorLog("获取机构类型失败:%v", getCatErr)
  508. this.Data["json"] = enums.MakeFailResponseJSONWithSGJErrorCode(enums.ErrorCodeDataException)
  509. this.ServeJSON()
  510. return
  511. } else {
  512. this.Data["json"] = enums.MakeSuccessResponseJSON(map[string]interface{}{
  513. "list": cats,
  514. })
  515. this.ServeJSON()
  516. return
  517. }
  518. }
  519. // /create_app_hint [get]
  520. func (this *OrgController) CreateAppHint() {
  521. this.SetTpl("error/create_app_hint.html")
  522. }
  523. //func InitAdviceTemplate(org *models.Org) {
  524. //
  525. // //初始化医嘱模版
  526. // adviceInit := &models.AdviceInit{
  527. // UserOrgId: org.Id,
  528. // CreateTime: time.Now().Unix(),
  529. // UpdateTime: time.Now().Unix(),
  530. // Status: 1,
  531. // IsInit: 1,
  532. // }
  533. //
  534. // adviceParentTemplate := LoadConfig("./advice_template.json").Parent_template
  535. // for _, item := range adviceParentTemplate {
  536. // parentTemplate := &models.DoctorAdviceParentTemplate{
  537. // OrgId: org.Id,
  538. // Name: item.Name,
  539. // Status: 1,
  540. // CreatedTime: time.Now().Unix(),
  541. // UpdatedTime: time.Now().Unix(),
  542. // AdviceType: item.AdviceType,
  543. // }
  544. //
  545. // createErr := service.CreateDoctorParentTemplate(parentTemplate)
  546. // fmt.Println(parentTemplate.ID)
  547. // if createErr == nil {
  548. // for _, adviceTemplateItem := range item.DoctorAdviceTemplate {
  549. // adviceTeplate := &models.DoctorAdviceTemplate{
  550. // OrgId: org.Id,
  551. // AdviceName: adviceTemplateItem.AdviceName,
  552. // AdviceDesc: adviceTemplateItem.AdviceDesc,
  553. // SingleDose: adviceTemplateItem.SingleDose,
  554. // SingleDoseUnit: adviceTemplateItem.SingleDoseUnit,
  555. // PrescribingNumber: adviceTemplateItem.PrescribingNumber,
  556. // PrescribingNumberUnit: adviceTemplateItem.PrescribingNumberUnit,
  557. // DeliveryWay: adviceTemplateItem.DeliveryWay,
  558. // ExecutionFrequency: adviceTemplateItem.ExecutionFrequency,
  559. // AdviceDoctor: adviceTemplateItem.AdviceDoctor,
  560. // Status: 1,
  561. // CreatedTime: time.Now().Unix(),
  562. // UpdatedTime: time.Now().Unix(),
  563. // TemplateId: parentTemplate.ID,
  564. // DrugSpec: adviceTemplateItem.DrugSpec,
  565. // DrugSpecUnit: adviceTemplateItem.DrugSpecUnit,
  566. // ParentId: adviceTemplateItem.ParentId,
  567. // AdviceType: adviceTemplateItem.AdviceType,
  568. // DayCount: adviceTemplateItem.DayCount,
  569. // WeekDays: adviceTemplateItem.WeekDays,
  570. // FrequencyType: adviceTemplateItem.FrequencyType,
  571. // }
  572. // createErr := service.CreateDoctorTemplate(adviceTeplate)
  573. //
  574. // if createErr == nil {
  575. // for _, childItem := range adviceTemplateItem.SubDoctorAdviceTemplate {
  576. // adviceTeplate := &models.DoctorAdviceTemplate{
  577. // OrgId: org.Id,
  578. // AdviceName: childItem.AdviceName,
  579. // AdviceDesc: childItem.AdviceDesc,
  580. // SingleDose: childItem.SingleDose,
  581. // SingleDoseUnit: childItem.SingleDoseUnit,
  582. // PrescribingNumber: childItem.PrescribingNumber,
  583. // PrescribingNumberUnit: childItem.PrescribingNumberUnit,
  584. // DeliveryWay: childItem.DeliveryWay,
  585. // ExecutionFrequency: childItem.ExecutionFrequency,
  586. // AdviceDoctor: childItem.AdviceDoctor,
  587. // Status: 1,
  588. // CreatedTime: time.Now().Unix(),
  589. // UpdatedTime: time.Now().Unix(),
  590. // TemplateId: parentTemplate.ID,
  591. // DrugSpec: childItem.DrugSpec,
  592. // DrugSpecUnit: childItem.DrugSpecUnit,
  593. // ParentId: adviceTeplate.ID,
  594. // AdviceType: childItem.AdviceType,
  595. // DayCount: childItem.DayCount,
  596. // WeekDays: childItem.WeekDays,
  597. // FrequencyType: childItem.FrequencyType,
  598. // }
  599. // service.CreateDoctorTemplate(adviceTeplate)
  600. // }
  601. // }
  602. // }
  603. // }
  604. // }
  605. // service.CreateAdviceInitConfig(adviceInit)
  606. //
  607. //}
  608. func InitSystemPrescrption(org *models.Org) {
  609. //初始化透析方案
  610. prescriptions := LoadPrescriptionConfig("./system_dialysis_prescription.json").Prescription
  611. for _, item := range prescriptions {
  612. item.UserOrgId = int64(org.Id)
  613. item.CreatedTime = time.Now().Unix()
  614. item.UpdatedTime = time.Now().Unix()
  615. service.CreateVMPrescription(item)
  616. }
  617. }
  618. func InitPatientAndSchedule(org *models.Org) {
  619. var ids []int64
  620. //数据初始化
  621. //创建两个虚拟病人
  622. patients := LoadPatientConfig("./patient.json").Patients
  623. for _, item := range patients {
  624. item.UserOrgId = int64(org.Id)
  625. item.CreatedTime = time.Now().Unix()
  626. item.UpdatedTime = time.Now().Unix()
  627. item.Status = 1
  628. service.CreateVMOrgPatient(item)
  629. ids = append(ids, item.ID)
  630. }
  631. //创建两个血透的虚拟病人到新表
  632. fmt.Print("patients", patients)
  633. for _, it := range patients {
  634. patientsNew := models.XtPatientsNew{
  635. UserOrgId: int64(org.Id),
  636. CreatedTime: time.Now().Unix(),
  637. UpdatedTime: time.Now().Unix(),
  638. Status: 1,
  639. BloodId: it.ID,
  640. BloodPatients: 1,
  641. Name: it.Name,
  642. Avatar: it.Avatar,
  643. PatientType: it.PatientType,
  644. Source: it.Source,
  645. Lapseto: it.Lapseto,
  646. Gender: it.Gender,
  647. Nation: it.Nation,
  648. NativePlace: it.NativePlace,
  649. MaritalStatus: it.MaritalStatus,
  650. IdCardNo: it.IdCardNo,
  651. Birthday: it.Birthday,
  652. ReimbursementWayId: it.ReimbursementWayId,
  653. HealthCareNo: it.HealthCareNo,
  654. Phone: it.Phone,
  655. HomeAddress: it.HomeAddress,
  656. WorkUnit: it.WorkUnit,
  657. UnitAddress: it.UnitAddress,
  658. Children: it.Children,
  659. IsHospitalFirstDialysis: it.IsHospitalFirstDialysis,
  660. FirstDialysisDate: it.FirstDialysisDate,
  661. BindingState: it.BindingState,
  662. PatientComplains: it.PatientComplains,
  663. PresentHistory: it.PresentHistory,
  664. PastHistory: it.PastHistory,
  665. Temperature: it.Temperature,
  666. Pulse: it.Pulse,
  667. Respiratory: it.Respiratory,
  668. Age: it.Age,
  669. IsOpenRemind: it.IsOpenRemind,
  670. TellPhone: it.TellPhone,
  671. FirstTreatmentDate: it.FirstTreatmentDate,
  672. ContactName: it.ContactName,
  673. }
  674. service.CreateVMOrgNewPatient(&patientsNew)
  675. }
  676. //创建1个分组
  677. vmGroup := &models.VMDeviceGroup{
  678. OrgId: int64(org.Id),
  679. Name: "护理一组",
  680. Status: 1,
  681. Ctime: time.Now().Unix(),
  682. Mtime: time.Now().Unix(),
  683. }
  684. service.CreateVMGroup(vmGroup)
  685. //创建两个虚拟分区
  686. vmZone1 := &models.VMDeviceZone{
  687. OrgId: int64(org.Id),
  688. Name: "A区",
  689. Type: 1,
  690. Status: 1,
  691. Ctime: time.Now().Unix(),
  692. Mtime: time.Now().Unix(),
  693. }
  694. service.CreateVMZone(vmZone1)
  695. vmZone2 := &models.VMDeviceZone{
  696. OrgId: int64(org.Id),
  697. Name: "B区",
  698. Type: 2,
  699. Status: 1,
  700. Ctime: time.Now().Unix(),
  701. Mtime: time.Now().Unix(),
  702. }
  703. service.CreateVMZone(vmZone2)
  704. //创建2个虚拟床位
  705. vmDeviceNumber1 := &models.VMDeviceNumber{
  706. OrgId: int64(org.Id),
  707. Number: "1号床",
  708. GroupId: vmGroup.ID,
  709. ZoneId: vmZone1.ID,
  710. Status: 1,
  711. Ctime: time.Now().Unix(),
  712. Mtime: time.Now().Unix(),
  713. }
  714. service.CreateVMDeviceNumber(vmDeviceNumber1)
  715. vmDeviceNumber2 := &models.VMDeviceNumber{
  716. OrgId: int64(org.Id),
  717. Number: "2号床",
  718. GroupId: vmGroup.ID,
  719. ZoneId: vmZone2.ID,
  720. Status: 1,
  721. Ctime: time.Now().Unix(),
  722. Mtime: time.Now().Unix(),
  723. }
  724. service.CreateVMDeviceNumber(vmDeviceNumber2)
  725. var dates []int64
  726. mondayDate := GetDateOfWeek(1)
  727. tuesdayDate := GetDateOfWeek(2)
  728. wednesdayDate := GetDateOfWeek(3)
  729. thursdayDate := GetDateOfWeek(4)
  730. fridayDate := GetDateOfWeek(5)
  731. saturdayDate := GetDateOfWeek(6)
  732. sundayDate := GetDateOfWeek(7)
  733. dates = append(dates, mondayDate)
  734. dates = append(dates, tuesdayDate)
  735. dates = append(dates, wednesdayDate)
  736. dates = append(dates, thursdayDate)
  737. dates = append(dates, fridayDate)
  738. dates = append(dates, saturdayDate)
  739. dates = append(dates, sundayDate)
  740. //创建两个虚拟病人本周的排班
  741. //stime, _ := time.Parse("2006-01-02", time.Now().Format("2006-01-02"))
  742. for week_type, date := range dates {
  743. for index, id := range ids {
  744. if index == 0 {
  745. sch := &models.VMSchedule{
  746. UserOrgId: int64(org.Id),
  747. PartitionId: vmZone1.ID,
  748. BedId: vmDeviceNumber1.ID,
  749. PatientId: id,
  750. ScheduleDate: date,
  751. ScheduleType: 1,
  752. ScheduleWeek: int64(week_type + 1),
  753. ModeId: 1,
  754. Status: 1,
  755. CreatedTime: time.Now().Unix(),
  756. UpdatedTime: time.Now().Unix(),
  757. }
  758. service.CreateVMSch(sch)
  759. }
  760. if index == 1 {
  761. sch := &models.VMSchedule{
  762. UserOrgId: int64(org.Id),
  763. PartitionId: vmZone2.ID,
  764. BedId: vmDeviceNumber2.ID,
  765. PatientId: id,
  766. ScheduleDate: date,
  767. ScheduleType: 2,
  768. ScheduleWeek: int64(week_type + 1),
  769. ModeId: 1,
  770. Status: 1,
  771. CreatedTime: time.Now().Unix(),
  772. UpdatedTime: time.Now().Unix(),
  773. }
  774. service.CreateVMSch(sch)
  775. }
  776. }
  777. }
  778. //创建单周模版
  779. //1.创建模版模式
  780. mode := &models.VMPatientScheduleTemplateMode{
  781. OrgId: int64(org.Id),
  782. Mode: 1,
  783. ExecuteTimes: 0,
  784. Status: 1,
  785. Ctime: time.Now().Unix(),
  786. Mtime: time.Now().Unix(),
  787. }
  788. service.CreateVMSchMode(mode)
  789. //2.创建模版id
  790. templaeIdOne := &models.VMPatientScheduleTemplateId{
  791. OrgId: int64(org.Id),
  792. Status: 1,
  793. Ctime: time.Now().Unix(),
  794. Mtime: time.Now().Unix(),
  795. }
  796. service.CreateVMSchTemplateId(templaeIdOne)
  797. templaeIdTwo := &models.VMPatientScheduleTemplateId{
  798. OrgId: int64(org.Id),
  799. Status: 1,
  800. Ctime: time.Now().Unix(),
  801. Mtime: time.Now().Unix(),
  802. }
  803. service.CreateVMSchTemplateId(templaeIdTwo)
  804. //3.创建单周排班模版
  805. items := LoadSchTemplateConfig("./schedule_template.json").Item
  806. for _, item := range items {
  807. if item.TimeType == 1 {
  808. item.OrgId = int64(org.Id)
  809. item.TemplateId = templaeIdOne.ID
  810. item.DeviceNumberId = vmDeviceNumber1.ID
  811. item.PatientId = ids[0]
  812. item.Status = 1
  813. item.Ctime = time.Now().Unix()
  814. item.Mtime = time.Now().Unix()
  815. } else if item.TimeType == 2 {
  816. item.OrgId = int64(org.Id)
  817. item.TemplateId = templaeIdOne.ID
  818. item.DeviceNumberId = vmDeviceNumber2.ID
  819. item.PatientId = ids[1]
  820. item.Status = 1
  821. item.Ctime = time.Now().Unix()
  822. item.Mtime = time.Now().Unix()
  823. }
  824. service.CreateVMSchTemplate(item)
  825. }
  826. }
  827. func InitRoleAndPurviews(org *models.Org) {
  828. roles := LoadRoleConfig("./role.json").Roles
  829. app, _ := service.GetOrgApp(org.Id, 3)
  830. for _, item := range roles {
  831. role := &models.Role{
  832. RoleName: item.RoleName,
  833. RoleIntro: item.RoleIntroduction,
  834. Creator: 0,
  835. OrgId: org.Id,
  836. AppId: app.Id,
  837. IsSuperAdmin: false,
  838. Status: 1,
  839. CreateTime: time.Now().Unix(),
  840. ModifyTime: time.Now().Unix(),
  841. Number: item.Number,
  842. IsSystem: item.IsSystem,
  843. }
  844. err := service.CreateOrgRole(role)
  845. if err == nil {
  846. purview := &models.RolePurview{
  847. RoleId: role.Id,
  848. OrgId: org.Id,
  849. AppId: role.AppId,
  850. PurviewIds: item.PurviewIds,
  851. Status: 1,
  852. CreateTime: time.Now().Unix(),
  853. ModifyTime: time.Now().Unix(),
  854. }
  855. func_purview := &models.SgjUserRoleFuncPurview{
  856. RoleId: int64(role.Id),
  857. OrgId: int64(org.Id),
  858. AppId: int64(role.AppId),
  859. PurviewIds: item.FuncIds,
  860. Status: 1,
  861. Ctime: time.Now().Unix(),
  862. Mtime: time.Now().Unix(),
  863. }
  864. service.CreateRolePurview(purview)
  865. service.CreateFuncRolePurview(func_purview)
  866. }
  867. }
  868. }
  869. type RoleConfig struct {
  870. Roles []*models.VMUserRoleAndPurview "json:roles"
  871. }
  872. type PatientConfig struct {
  873. Patients []*models.VMOrgPatients "json:patients"
  874. }
  875. type SchTemplateConfig struct {
  876. Item []*models.VMPatientScheduleTemplateItem "json:item"
  877. }
  878. type PrescriptionConfig struct {
  879. Prescription []*models.SystemPrescription "json:prescription"
  880. }
  881. func LoadRoleConfig(dataFile string) *RoleConfig {
  882. var config RoleConfig
  883. _, filename, _, _ := runtime.Caller(1)
  884. datapath := path.Join(path.Dir(filename), dataFile)
  885. config_file, err := os.Open(datapath)
  886. if err != nil {
  887. emit("Failed to open config file '%s': %s\n", datapath, err)
  888. return &config
  889. }
  890. fi, _ := config_file.Stat()
  891. buffer := make([]byte, fi.Size())
  892. _, err = config_file.Read(buffer)
  893. buffer, err = StripComments(buffer) //去掉注释
  894. if err != nil {
  895. emit("Failed to strip comments from json: %s\n", err)
  896. return &config
  897. }
  898. buffer = []byte(os.ExpandEnv(string(buffer))) //特殊
  899. err = json.Unmarshal(buffer, &config) //解析json格式数据
  900. if err != nil {
  901. emit("Failed unmarshalling json: %s\n", err)
  902. return &config
  903. }
  904. return &config
  905. }
  906. func LoadPatientConfig(dataFile string) *PatientConfig {
  907. var config PatientConfig
  908. _, filename, _, _ := runtime.Caller(1)
  909. datapath := path.Join(path.Dir(filename), dataFile)
  910. config_file, err := os.Open(datapath)
  911. if err != nil {
  912. emit("Failed to open config file '%s': %s\n", datapath, err)
  913. return &config
  914. }
  915. fi, _ := config_file.Stat()
  916. buffer := make([]byte, fi.Size())
  917. _, err = config_file.Read(buffer)
  918. buffer, err = StripComments(buffer) //去掉注释
  919. if err != nil {
  920. emit("Failed to strip comments from json: %s\n", err)
  921. return &config
  922. }
  923. buffer = []byte(os.ExpandEnv(string(buffer))) //特殊
  924. err = json.Unmarshal(buffer, &config) //解析json格式数据
  925. if err != nil {
  926. emit("Failed unmarshalling json: %s\n", err)
  927. return &config
  928. }
  929. return &config
  930. }
  931. func LoadSchTemplateConfig(dataFile string) *SchTemplateConfig {
  932. var config SchTemplateConfig
  933. _, filename, _, _ := runtime.Caller(1)
  934. datapath := path.Join(path.Dir(filename), dataFile)
  935. config_file, err := os.Open(datapath)
  936. if err != nil {
  937. emit("Failed to open config file '%s': %s\n", datapath, err)
  938. return &config
  939. }
  940. fi, _ := config_file.Stat()
  941. buffer := make([]byte, fi.Size())
  942. _, err = config_file.Read(buffer)
  943. buffer, err = StripComments(buffer) //去掉注释
  944. if err != nil {
  945. emit("Failed to strip comments from json: %s\n", err)
  946. return &config
  947. }
  948. buffer = []byte(os.ExpandEnv(string(buffer))) //特殊
  949. err = json.Unmarshal(buffer, &config) //解析json格式数据
  950. if err != nil {
  951. emit("Failed unmarshalling json: %s\n", err)
  952. return &config
  953. }
  954. return &config
  955. }
  956. func LoadPrescriptionConfig(dataFile string) *PrescriptionConfig {
  957. var config PrescriptionConfig
  958. _, filename, _, _ := runtime.Caller(1)
  959. datapath := path.Join(path.Dir(filename), dataFile)
  960. config_file, err := os.Open(datapath)
  961. if err != nil {
  962. emit("Failed to open config file '%s': %s\n", datapath, err)
  963. return &config
  964. }
  965. fi, _ := config_file.Stat()
  966. buffer := make([]byte, fi.Size())
  967. _, err = config_file.Read(buffer)
  968. buffer, err = StripComments(buffer) //去掉注释
  969. if err != nil {
  970. emit("Failed to strip comments from json: %s\n", err)
  971. return &config
  972. }
  973. buffer = []byte(os.ExpandEnv(string(buffer))) //特殊
  974. err = json.Unmarshal(buffer, &config) //解析json格式数据
  975. if err != nil {
  976. emit("Failed unmarshalling json: %s\n", err)
  977. return &config
  978. }
  979. return &config
  980. }
  981. func emit(msgfmt string, args ...interface{}) {
  982. log.Printf(msgfmt, args...)
  983. }
  984. func StripComments(data []byte) ([]byte, error) {
  985. data = bytes.Replace(data, []byte("\r"), []byte(""), 0) // Windows
  986. lines := bytes.Split(data, []byte("\n")) //split to muli lines
  987. filtered := make([][]byte, 0)
  988. for _, line := range lines {
  989. match, err := regexp.Match(`^\s*#`, line)
  990. if err != nil {
  991. return nil, err
  992. }
  993. if !match {
  994. filtered = append(filtered, line)
  995. }
  996. }
  997. return bytes.Join(filtered, []byte("\n")), nil
  998. }
  999. func GetDateOfWeek(week_type int) (weekMonday int64) {
  1000. thisTime := time.Now()
  1001. weekDay := int(thisTime.Weekday())
  1002. if weekDay == 0 {
  1003. weekDay = 7
  1004. }
  1005. weekEnd := 7 - weekDay
  1006. weekStart := weekEnd - 6
  1007. weekTitle := make([]string, 0)
  1008. days := make([]string, 0)
  1009. for index := weekStart; index <= weekEnd; index++ {
  1010. theDay := thisTime.AddDate(0, 0, index)
  1011. indexYear, indexMonthTime, indexDay := theDay.Date()
  1012. indexMonth := int(indexMonthTime)
  1013. indexWeek := strconv.Itoa(indexYear) + "." + strconv.Itoa(indexMonth) + "." + strconv.Itoa(indexDay)
  1014. weekTitle = append(weekTitle, indexWeek)
  1015. days = append(days, theDay.Format("2006-01-02"))
  1016. }
  1017. var targetDayStr string
  1018. switch week_type {
  1019. case 1:
  1020. targetDayStr = days[0]
  1021. break
  1022. case 2:
  1023. targetDayStr = days[1]
  1024. break
  1025. case 3:
  1026. targetDayStr = days[2]
  1027. break
  1028. case 4:
  1029. targetDayStr = days[3]
  1030. break
  1031. case 5:
  1032. targetDayStr = days[4]
  1033. break
  1034. case 6:
  1035. targetDayStr = days[5]
  1036. break
  1037. case 7:
  1038. targetDayStr = days[6]
  1039. break
  1040. }
  1041. targetDay, _ := utils.ParseTimeStringToTime("2006-01-02", targetDayStr)
  1042. return targetDay.Unix()
  1043. }
  1044. func InitEquitMentInformation(org *models.Org) {
  1045. //添加设备型号
  1046. mode := models.VMDeviceMode{
  1047. DeviceMode: "5008S",
  1048. Status: 1,
  1049. UserOrgId: int64(org.Id),
  1050. Ctime: time.Now().Unix(),
  1051. Mtime: time.Now().Unix(),
  1052. }
  1053. service.CreatedDeviceMode(&mode)
  1054. deviceMode := models.VMDeviceMode{
  1055. DeviceMode: "4008S",
  1056. Status: 1,
  1057. UserOrgId: int64(org.Id),
  1058. Ctime: time.Now().Unix(),
  1059. Mtime: time.Now().Unix(),
  1060. }
  1061. service.CreatedDeviceMode(&deviceMode)
  1062. firstDeviceMode, _ := service.GetFirstDeviceMode(int64(org.Id))
  1063. //获取机构下对应的第一数据
  1064. number, _ := service.GetFirstBedNumber(int64(org.Id))
  1065. //添加设备
  1066. deviceAddmacher := models.VmDeviceAddmacher{
  1067. SerialNumber: "8VSAHE13",
  1068. DeviceType: 1,
  1069. BedId: number.ID,
  1070. DeviceName: "费森尤斯",
  1071. UnitType: firstDeviceMode.ID,
  1072. MachineStatus: 1,
  1073. Status: 1,
  1074. UserOrgId: int64(org.Id),
  1075. Ctime: time.Now().Unix(),
  1076. }
  1077. service.CreateDeviceAddMacher(&deviceAddmacher)
  1078. macher, _ := service.GetLastMacher(int64(org.Id))
  1079. fmt.Print(macher.ID)
  1080. treatmentmode := models.VmDeviceTreatmentmode{
  1081. MachineId: macher.ID,
  1082. Status: 1,
  1083. Ctime: time.Now().Unix(),
  1084. Mtime: time.Now().Unix(),
  1085. UserOrgId: int64(org.Id),
  1086. TreateMode: 1,
  1087. }
  1088. service.CreatedTreateMode(&treatmentmode)
  1089. treatmentmodeone := models.VmDeviceTreatmentmode{
  1090. MachineId: macher.ID,
  1091. Status: 1,
  1092. Ctime: time.Now().Unix(),
  1093. Mtime: time.Now().Unix(),
  1094. UserOrgId: int64(org.Id),
  1095. TreateMode: 2,
  1096. }
  1097. service.CreatedTreateMode(&treatmentmodeone)
  1098. treatmentmodetwo := models.VmDeviceTreatmentmode{
  1099. MachineId: macher.ID,
  1100. Status: 1,
  1101. Ctime: time.Now().Unix(),
  1102. Mtime: time.Now().Unix(),
  1103. UserOrgId: int64(org.Id),
  1104. TreateMode: 3,
  1105. }
  1106. service.CreatedTreateMode(&treatmentmodetwo)
  1107. treatmentmodethree := models.VmDeviceTreatmentmode{
  1108. MachineId: macher.ID,
  1109. Status: 1,
  1110. Ctime: time.Now().Unix(),
  1111. Mtime: time.Now().Unix(),
  1112. UserOrgId: int64(org.Id),
  1113. TreateMode: 4,
  1114. }
  1115. service.CreatedTreateMode(&treatmentmodethree)
  1116. treatmentmodefour := models.VmDeviceTreatmentmode{
  1117. MachineId: macher.ID,
  1118. Status: 1,
  1119. Ctime: time.Now().Unix(),
  1120. Mtime: time.Now().Unix(),
  1121. UserOrgId: int64(org.Id),
  1122. TreateMode: 5,
  1123. }
  1124. service.CreatedTreateMode(&treatmentmodefour)
  1125. treatmentmodefive := models.VmDeviceTreatmentmode{
  1126. MachineId: macher.ID,
  1127. Status: 1,
  1128. Ctime: time.Now().Unix(),
  1129. Mtime: time.Now().Unix(),
  1130. UserOrgId: int64(org.Id),
  1131. TreateMode: 12,
  1132. }
  1133. service.CreatedTreateMode(&treatmentmodefive)
  1134. }