user.go 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  1. package casbin
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "strconv"
  6. "strings"
  7. "time"
  8. "dashoo.cn/backend/api/business/accountinfo"
  9. "dashoo.cn/backend/api/business/company"
  10. "dashoo.cn/backend/api/business/printscheme"
  11. . "dashoo.cn/backend/api/controllers"
  12. "dashoo.cn/business2/parameter"
  13. "dashoo.cn/backend/api/business/logsinfo"
  14. "dashoo.cn/business2/auth"
  15. "dashoo.cn/backend/api/business/organize"
  16. "dashoo.cn/backend/api/models"
  17. "dashoo.cn/business2/permission"
  18. "dashoo.cn/business2/userRole"
  19. "dashoo.cn/utils"
  20. )
  21. // Operations about Users
  22. type UserController struct {
  23. BaseController
  24. }
  25. type UserModel struct {
  26. Username string `json:"username"`
  27. Realname string `json:"realname"`
  28. Telephone string `json:"telephone"`
  29. Mobile string `json:"mobile"`
  30. Description string `json:"description"`
  31. Photo string `json:"photo"`
  32. Role string `json:"role"`
  33. RoleId int `json:"roleid"`
  34. Id int `json:"id"`
  35. ChannelIds string `json:"channelids"`
  36. Password string `json:"password"`
  37. DepartmentId string `json:"departmentid"`
  38. DepartmentName string `json:"departmentname"`
  39. Sign string `json:"sign"`
  40. IsCompanyUser int `json:"Iscompanyuser"`
  41. Superior string `json:"superior"`
  42. }
  43. type ChangePwdModel struct {
  44. Pwd string `json:"pass"`
  45. NwePwd string `json:"newpass"`
  46. }
  47. type RegisteModel struct {
  48. Companyname string `json:"companyname"`
  49. Username string `json:"username"`
  50. Password string `json:"password"`
  51. Source string `json:"source"`
  52. }
  53. // @Title get
  54. // @Description get user by token
  55. // @Param uid path string true "The key for staticblock"
  56. // @Success 200 {object} models.User
  57. // @Failure 403 :uid is empty
  58. // @router /me [get]
  59. func (this *UserController) Get() {
  60. svc := userRole.GetUserService(utils.DBE)
  61. usermodel := svc.GetUserInfoSelf(this.User.Username)
  62. // var companyentity company.Base_Company
  63. // svc.GetEntityById(usermodel.AccCode, &companyentity)
  64. var user models.User
  65. user.Id = utils.ToStr(usermodel.Id)
  66. user.Username = usermodel.Username
  67. user.Profile.Address = usermodel.Homeaddress
  68. user.Profile.Email = usermodel.Email
  69. user.Profile.Realname = usermodel.Realname
  70. user.Profile.Roleid = usermodel.Roleid
  71. user.Profile.Mobile = usermodel.Mobile
  72. user.Profile.Telephone = usermodel.Telephone
  73. user.Profile.Photo = usermodel.Photo
  74. user.Profile.Description = usermodel.Description
  75. user.Profile.Host = this.Ctx.Request.Host
  76. user.Profile.AccCode = usermodel.AccCode
  77. user.Profile.DepartmentId = usermodel.Departmentid
  78. user.Profile.IsCompanyUser = usermodel.IsCompanyUser
  79. user.Profile.Superior = usermodel.Superior
  80. user.Profile.Id = usermodel.Id
  81. // todo 从this.User获取用户名,再查询出具体用户
  82. // user := models.User{"user01", "张三", models.Profile{Gender: "male", Age: 20, Address: "china", Email: "123zs@gmail.com", Realname: "ppppppp"}}
  83. this.Data["json"] = user
  84. this.ServeJSON()
  85. }
  86. // @Title 获取用户菜单权限
  87. // @Description 获取用户菜单权限
  88. // @Success 200 {object} controllers.Request
  89. // @router /getusermodule [get]
  90. func (this *UserController) GetUserModule() {
  91. //svc := permission.GetPermissionService(utils.DBE)
  92. //var model UserModuleModel
  93. //model.A1list = svc.GetModuleAllNamesByCode(this.User.Id, "A1")
  94. //model.A2list = svc.GetModuleAllNamesByCode(this.User.Id, "A2")
  95. //this.Data["json"] = model
  96. //this.ServeJSON()
  97. }
  98. // @Title 获取用户菜单权限
  99. // @Description 获取用户菜单权限
  100. // @Success 200 {object} controllers.Request
  101. // @router /getusermoduletree [get]
  102. func (this *UserController) GetUserModuleTree() {
  103. svc := permission.GetPermissionService(utils.DBE)
  104. list := svc.GetModuleAll(this.User.Id, "30000000")
  105. this.Data["json"] = list
  106. this.ServeJSON()
  107. }
  108. // @Title 获得用户角色id
  109. // @Description 获得用户角色id
  110. // @Success 200 {object} controllers.Request
  111. // @router /getuserrole/:id [get]
  112. func (this *UserController) UserPowerCheckRole() {
  113. userid := this.Ctx.Input.Param(":id")
  114. roleofuser := utils.RBAC.GetRolesForUserInDomain("uid_"+userid, utils.DOMAIN)
  115. for i := 0; i < len(roleofuser); i++ {
  116. roleofuser[i] = strings.Replace(roleofuser[i], "rid_", "", 1)
  117. }
  118. this.Data["json"] = &roleofuser
  119. this.ServeJSON()
  120. }
  121. // @Title get
  122. // @Description get user by token
  123. // @Success 200 {object} models.User
  124. // @router /list [get]
  125. func (this *UserController) List() {
  126. page := this.GetPageInfoForm()
  127. keyword := this.GetString("keyword")
  128. username := this.GetString("username")
  129. departmentname := this.GetString("departmentname")
  130. unit := this.GetString("Unit")
  131. IsCompanyUser := this.GetString("IsCompanyUser")
  132. svc := permission.GetPermissionService(utils.DBE)
  133. organsvc := organize.GetOrganizeService(utils.DBE)
  134. var users []userRole.Base_User
  135. svcPerm := permission.GetPermissionService(utils.DBE)
  136. isauth := svcPerm.IsAuthorized(this.User.Id, "oil_admin")
  137. topid := ""
  138. if isauth {
  139. paramSvc := baseparameter.GetBaseparameterService(utils.DBE)
  140. topid = paramSvc.GetBaseparameterMessage("", "paramset", "HeadquartersID") // 总公司Id
  141. } else {
  142. topid = organsvc.GetMyUnitDepartmentId(this.User.DepartmentId)
  143. }
  144. depids := organsvc.GetAllChildById(topid)
  145. where := "(IsVisible=1 and IsCompanyUser = 0 and DepartmentId in (" + depids + ") or Id = '" + utils.ToStr(this.User.Id) + "') "
  146. //外部用户 IsCompanyUser == 1
  147. if IsCompanyUser == "1" {
  148. where = "(IsVisible=1 and IsCompanyUser = 1 and CreateUserId='" + utils.ToStr(this.User.Id) + "' or Id = '" + utils.ToStr(this.User.Id) + "')"
  149. }
  150. if keyword != "" {
  151. where = where + " and UserName like '%" + keyword + "%'"
  152. }
  153. if username != "" {
  154. where = where + " and Realname like '%" + username + "%'"
  155. }
  156. if departmentname != "" {
  157. where = where + " and DepartmentName like '%" + departmentname + "%'"
  158. }
  159. if unit != "" {
  160. where = where + " and Unit like '%" + unit + "%'"
  161. }
  162. total := svc.GetPagingEntitiesWithOrder(page.CurrentPage, page.Size, "Id", false, &users, where)
  163. var datainfo DataInfo
  164. datainfo.Items = users
  165. datainfo.CurrentItemCount = total
  166. this.Data["json"] = &datainfo
  167. this.ServeJSON()
  168. }
  169. // @Title 用户角色设置
  170. // @Description 用户角色设置
  171. // @Success 200 {object} controllers.Request
  172. // @router /setuserrole/:id [put]
  173. func (this *UserController) UserPowerPostRole() {
  174. inputstr := this.Ctx.Input.Param(":id")
  175. serial := strings.Split(inputstr, "_")
  176. userid := serial[0]
  177. var errinfo ErrorInfo
  178. if userid == "" || userid == "0" {
  179. errinfo.Message = "操作失败!请求信息不完整"
  180. errinfo.Code = -2
  181. this.Data["json"] = &errinfo
  182. this.ServeJSON()
  183. return
  184. }
  185. roleids := strings.Split(serial[1], ",")
  186. utils.RBAC.DeleteRolesForUser("uid_" + userid)
  187. var err error = nil
  188. for i := 0; i < len(roleids); i++ {
  189. if roleids[i] != "0" && roleids[i] != "" {
  190. //err = svc.AddUserToRole(userid, roleids[i], entity[0])
  191. utils.RBAC.AddRoleForUserInDomain("uid_"+userid, "rid_"+roleids[i], utils.DOMAIN)
  192. }
  193. }
  194. if err == nil {
  195. errinfo.Message = utils.AlertProcess("用户角色调整成功!")
  196. errinfo.Code = 0
  197. this.Data["json"] = &errinfo
  198. this.ServeJSON()
  199. } else {
  200. errinfo.Message = utils.AlertProcess("用户角色调整失败!" + err.Error())
  201. errinfo.Code = -1
  202. this.Data["json"] = &errinfo
  203. this.ServeJSON()
  204. }
  205. }
  206. // @Title 创建用户
  207. // @Description 创建用户
  208. // @Param body body business.device.DeviceChannels "传感器信息"
  209. // @Success 200 {object} controllers.Request
  210. // @router / [post]
  211. func (this *UserController) AddUser() {
  212. var model UserModel
  213. var jsonblob = this.Ctx.Input.RequestBody
  214. json.Unmarshal(jsonblob, &model)
  215. var errinfo ErrorDataInfo
  216. departidint, _ := utils.StrTo(model.DepartmentId).Int()
  217. if departidint < 1 {
  218. errinfo.Message = "请选择所属组织!"
  219. errinfo.Code = -3
  220. this.Data["json"] = &errinfo
  221. this.ServeJSON()
  222. return
  223. }
  224. // 获取组织名称
  225. svcorg := organize.GetOrganizeService(utils.DBE)
  226. model.DepartmentName = svcorg.GetNameById(model.DepartmentId)
  227. //获取组织上级组织
  228. //var orginizeentity organize.Base_Organize
  229. //svcorg.GetEntityById(model.DepartmentId, &orginizeentity)
  230. unitId := svcorg.GetMyUnitDepartmentId(model.DepartmentId)
  231. var org organize.Base_Organize
  232. svcorg.GetEntityById(unitId, &org)
  233. var userentity userRole.Base_User
  234. userentity.Companyid = "0"
  235. userentity.Superior = model.Superior
  236. userentity.Roleid, _ = utils.StrTo(model.Role).Int()
  237. userentity.UnitId = org.Id
  238. userentity.Unit = org.Fullname
  239. if userentity.Roleid == 0 {
  240. //userentity.Roleid = 10000123 //普通用户
  241. }
  242. if model.IsCompanyUser == 1 {
  243. parameterSvc := baseparameter.GetBaseparameterService(utils.DBE) //取出外部门ID
  244. extOrganizeId := parameterSvc.GetBaseparameterMessage("GFGL", "paramset", "ExtRoleId")
  245. model.RoleId, _ = strconv.Atoi(extOrganizeId)
  246. userentity.Roleid = model.RoleId
  247. userentity.IsCompanyUser = model.IsCompanyUser
  248. }
  249. userentity.Username = model.Username
  250. userentity.Realname = model.Realname
  251. userentity.Telephone = model.Telephone
  252. userentity.Mobile = model.Mobile
  253. if model.Sign == "" {
  254. userentity.Description = model.Description
  255. } else {
  256. userentity.Description = model.Sign
  257. }
  258. userentity.Photo = model.Photo
  259. currentuser := this.User
  260. userentity.Createuserid, _ = utils.StrTo(currentuser.Id).Int()
  261. userentity.Createby = currentuser.Realname
  262. userentity.AccCode = this.GetAccode()
  263. userentity.QRCode = utils.GetGuid()
  264. userentity.Departmentid = model.DepartmentId
  265. userentity.Departmentname = model.DepartmentName
  266. //salt := utils.GetRandomString(5)
  267. //userentity.Userpassword = fmt.Sprintf("%s$%s", salt, utils.EncodePassword("123456", salt))
  268. //更改密码算法2014-11-21
  269. pwd, key, errrk := utils.TripleDesEncrypt("123456")
  270. if errrk != nil {
  271. errinfo.Message = "添加失败!" + utils.AlertProcess(errrk.Error())
  272. errinfo.Code = -2
  273. this.Data["json"] = &errinfo
  274. this.ServeJSON()
  275. return
  276. }
  277. userentity.Userpassword = pwd
  278. userentity.Publickey = key
  279. userentity.Auditstatus = 1
  280. userentity.Email = userentity.Username
  281. svc := userRole.GetUserService(utils.DBE)
  282. err := svc.AddUser(&userentity)
  283. if err == nil {
  284. errinfo.Message = "添加用户成功,初始密码为123456!"
  285. errinfo.Code = 0
  286. errinfo.Item = userentity.Id
  287. this.Data["json"] = &errinfo
  288. this.ServeJSON()
  289. return
  290. } else {
  291. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  292. errinfo.Code = -1
  293. this.Data["json"] = &errinfo
  294. this.ServeJSON()
  295. return
  296. }
  297. }
  298. // @Title 编辑用户
  299. // @Description 编辑用户
  300. // @Param id path string true "需要修改的传感器编号"
  301. // @Param body body business.device.DeviceChannels "传感器信息"
  302. // @Success 200 {object} controllers.Request
  303. // @router /:id [put]
  304. func (this *UserController) EditUser() {
  305. id := this.Ctx.Input.Param(":id")
  306. var errinfo ErrorInfo
  307. if id == "" {
  308. errinfo.Message = "操作失败!请求信息不完整"
  309. errinfo.Code = -2
  310. this.Data["json"] = &errinfo
  311. this.ServeJSON()
  312. return
  313. }
  314. var model UserModel
  315. var jsonblob = this.Ctx.Input.RequestBody
  316. json.Unmarshal(jsonblob, &model)
  317. var userentity userRole.Base_User
  318. var userentityempty userRole.Base_User
  319. svc := userRole.GetUserService(utils.DBE)
  320. has := svc.GetEntityById(id, &userentity)
  321. if has {
  322. //获取组织名称
  323. svcorg := organize.GetOrganizeService(utils.DBE)
  324. model.DepartmentName = svcorg.GetNameById(model.DepartmentId)
  325. //获取组织上级组织
  326. //var orginizeentity organize.Base_Organize
  327. //svcorg.GetEntityById(model.DepartmentId, &orginizeentity)
  328. userentity.Superior = model.Superior
  329. userentity.Realname = model.Realname
  330. userentity.Telephone = model.Telephone
  331. userentity.Mobile = model.Mobile
  332. if model.Sign == "" {
  333. userentity.Description = model.Description
  334. } else {
  335. userentity.Description = model.Sign
  336. }
  337. userentity.Photo = model.Photo
  338. // userentity.Roleid = roleid
  339. userentity.Modifieduserid, _ = utils.StrTo(this.User.Id).Int()
  340. userentity.Modifiedby = this.User.Realname
  341. userentity.Departmentid = model.DepartmentId
  342. userentity.Departmentname = model.DepartmentName
  343. var cols []string = []string{"Realname", "CompanyId", "DepartmentId", "DepartmentName", "Telephone", "Mobile", "Description", "Photo", "Modifieduserid", "Modifiedby", "Superior"}
  344. err := svc.UpdateEntityAndBackupByCols(id, &userentity, &userentityempty, cols, utils.ToStr(this.User.Id), this.User.Realname)
  345. if err == nil {
  346. errinfo.Message = "保存成功!"
  347. errinfo.Code = 0
  348. this.Data["json"] = &errinfo
  349. this.ServeJSON()
  350. } else {
  351. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  352. errinfo.Code = -1
  353. this.Data["json"] = &errinfo
  354. this.ServeJSON()
  355. }
  356. } else {
  357. errinfo.Message = "操作失败!操作数据不存在"
  358. errinfo.Code = -3
  359. this.Data["json"] = &errinfo
  360. this.ServeJSON()
  361. return
  362. }
  363. }
  364. // @Title 删除用户
  365. // @Description 删除用户
  366. // @Param id path string true "需要删除的用户编号"
  367. // @Success 200 {object} ErrorInfo
  368. // @Failure 403 :id 为空
  369. // @router /:id [delete]
  370. func (this *UserController) Delete() {
  371. id := this.Ctx.Input.Param(":id")
  372. var errinfo ErrorInfo
  373. if id == "" {
  374. errinfo.Message = "操作失败!请求信息不完整"
  375. errinfo.Code = -2
  376. this.Data["json"] = &errinfo
  377. this.ServeJSON()
  378. return
  379. }
  380. var entity userRole.Base_User
  381. var entityempty userRole.Base_User
  382. svc := userRole.GetUserService(utils.DBE)
  383. err := svc.DeleteEntityAndBackup(id, &entity, &entityempty, utils.ToStr(this.User.Id), this.User.Username)
  384. if err == nil {
  385. svc.ClearUserRole(id) //清除角色
  386. errinfo.Message = "删除成功"
  387. errinfo.Code = 0
  388. this.Data["json"] = &errinfo
  389. this.ServeJSON()
  390. } else {
  391. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  392. errinfo.Code = -1
  393. this.Data["json"] = &errinfo
  394. this.ServeJSON()
  395. }
  396. }
  397. // @Title 修改密码
  398. // @Description 修改密码
  399. // @Param body body business.device.DeviceChannels "传感器信息"
  400. // @Success 200 {object} controllers.Request
  401. // @router /userchangepwd [put]
  402. func (this *UserController) UserChangePWD() {
  403. var model ChangePwdModel
  404. var jsonblob = this.Ctx.Input.RequestBody
  405. json.Unmarshal(jsonblob, &model)
  406. var errinfo ErrorInfo
  407. svcauth := auth.GetAuthServic(utils.DBE)
  408. var user userRole.Base_User
  409. if svcauth.VerifyUser3DES(this.User.Username, model.Pwd, &user) {
  410. var entitypaw1, entitypaw2 logsinfo.Userpassword
  411. idint, _ := utils.StrTo(this.User.Id).Int()
  412. var umodel userRole.Base_User = userRole.Base_User{Id: idint}
  413. svcauth.UpdateLog(this.User.Id, &entitypaw1, &entitypaw2, this.User.Id, this.User.Realname)
  414. err := svcauth.SetNewPassword3DES(&umodel, model.NwePwd)
  415. if err != nil {
  416. errinfo.Message = "修改失败!" + err.Error()
  417. errinfo.Code = -2
  418. this.Data["json"] = &errinfo
  419. this.ServeJSON()
  420. } else {
  421. errinfo.Message = "密码修改成功"
  422. errinfo.Code = 0
  423. this.Data["json"] = &errinfo
  424. this.ServeJSON()
  425. }
  426. } else {
  427. errinfo.Message = "修改失败!当前密码输入错误"
  428. errinfo.Code = -1
  429. this.Data["json"] = &errinfo
  430. this.ServeJSON()
  431. return
  432. }
  433. }
  434. // @Title 注册管理账号
  435. // @Description 注册管理账号
  436. // @Param body body business.device.DeviceChannels "传感器信息"
  437. // @Success 200 {object} controllers.Request
  438. // @router /registemanage [put]
  439. func (this *UserController) Registerput() {
  440. var model RegisteModel
  441. var jsonblob = this.Ctx.Input.RequestBody
  442. json.Unmarshal(jsonblob, &model)
  443. var errinfo ErrorInfo
  444. var user userRole.Base_User
  445. user.Username = model.Username
  446. user.Realname = model.Companyname
  447. // this.ParseForm(&user) //去页面数值
  448. svc := company.GetCompanyService(utils.DBE)
  449. err, comacccode := svc.AddCompany(user.Realname, user.Username) //这两个参数传到company库,返回id
  450. if err == nil {
  451. svcuser := userRole.GetUserService(utils.DBE)
  452. user.AccCode = comacccode //id传到 user库的acccode
  453. pass := model.Password //取到前台密码
  454. //更改密码算法2014-11-21
  455. pwd, key, errrk := utils.TripleDesEncrypt(pass)
  456. if errrk != nil {
  457. errinfo.Message = "添加失败!" + utils.AlertProcess(errrk.Error())
  458. errinfo.Code = -2
  459. this.Data["json"] = &errinfo
  460. this.ServeJSON()
  461. return
  462. }
  463. user.Roleid = 10000120 //企业用户
  464. user.Auditstatus = 1
  465. user.Userpassword = pwd
  466. user.Publickey = key
  467. user.Email = user.Username
  468. err = svcuser.AddUser(&user)
  469. //svcSampleOrgan := sampleorgan.GetSampleOrganService(utils.DBE)
  470. //var entityOrgan sampleorgan.SampleOrgan
  471. //entityOrgan.AccCode = comacccode
  472. //entityOrgan.TNode = "SystemInner"
  473. //entityOrgan.TNodeParent = "0"
  474. //entityOrgan.Item = 1
  475. //entityOrgan.Code = "ALL"
  476. //entityOrgan.Name = "全部"
  477. //entityOrgan.CreateBy = user.Username
  478. //entityOrgan.CreateUserId = user.Id
  479. //_, err = svcSampleOrgan.InsertEntity(&entityOrgan)
  480. svcPrintScheme := printscheme.GetPrintSchemeService(utils.DBE)
  481. var listPrintScheme []printscheme.PrintScheme
  482. var listPrintScheme_new []printscheme.PrintScheme
  483. listPrintScheme = svcPrintScheme.GetPrintSchemeList("IsSystem=2")
  484. for i := 0; i < len(listPrintScheme); i++ {
  485. listPrintScheme[i].IsSystem = 1
  486. listPrintScheme[i].CreateBy = user.Username
  487. listPrintScheme[i].CreateUserId = user.Id
  488. listPrintScheme[i].AccCode = user.AccCode
  489. listPrintScheme_new = append(listPrintScheme_new, listPrintScheme[i])
  490. }
  491. svc.InsertEntity(&listPrintScheme_new)
  492. if err == nil {
  493. //创建表结构
  494. err := svc.CreateSampleDonorTable(user.AccCode, model.Source)
  495. if err != nil {
  496. fmt.Println(err.Error())
  497. }
  498. //写入账户信息,赠送短信
  499. var accountinfo accountinfo.AccountInfo
  500. accountinfo.ProjectSourse = "biobank"
  501. accountinfo.ProjectAccount = user.AccCode
  502. accountinfo.ProjectAccountName = user.Realname
  503. accountinfo.SurplusCount = 50
  504. accountinfo.ActionType = "sms"
  505. u, p := this.GetuAndp()
  506. strUrl := utils.Cfg.MustValue("server", "apiurl") + "/accountinfos/?u=" + u + "&p=" + p
  507. Apipost(strUrl, "POST", accountinfo)
  508. //添加一条组织根节点
  509. var entityorg organize.Base_Organize
  510. // 编辑后添加一条数据
  511. entityorg.Fullname = model.Companyname
  512. entityorg.Parentid = 0
  513. entityorg.Createuserid = user.Id
  514. entityorg.Createby = user.Realname
  515. entityorg.AccCode = user.AccCode
  516. svcuser.InsertEntity(&entityorg)
  517. //修改用户的组织id
  518. user.Departmentid = utils.ToStr(entityorg.Id)
  519. user.Departmentname = entityorg.Fullname
  520. var usercols []string = []string{"Departmentid", "Departmentname"}
  521. svcuser.UpdateEntityByIdCols(user.Id, &user, usercols)
  522. errinfo.Message = "注册用户成功!"
  523. errinfo.Code = 0
  524. this.Data["json"] = &errinfo
  525. this.ServeJSON()
  526. } else {
  527. errinfo.Message = "注册失败!" + utils.AlertProcess(err.Error())
  528. errinfo.Code = -2
  529. this.Data["json"] = &errinfo
  530. this.ServeJSON()
  531. return
  532. }
  533. } else {
  534. errinfo.Message = "注册失败!" + utils.AlertProcess(err.Error())
  535. errinfo.Code = -3
  536. this.Data["json"] = &errinfo
  537. this.ServeJSON()
  538. return
  539. }
  540. }
  541. // @Title 跟新用户二级单位
  542. // @Description 跟新用户二级单位
  543. // @Success 200 {object} organize.Base_Organize
  544. // @router /updatauser2Org [get]
  545. func (this *UserController) UpdataUser2Org() {
  546. t := time.Now()
  547. var userlist []userRole.Base_User
  548. var user1 userRole.Base_User
  549. svc := userRole.GetUserService(utils.DBE)
  550. svc.GetEntities(&userlist, "DepartmentId != ''")
  551. unitIdcopy := ""
  552. fullname := ""
  553. unitsvc := organize.GetOrganizeService(utils.DBE)
  554. for i,user := range userlist {
  555. unitId := unitsvc.GetMyUnitDepartmentId(user.Departmentid)
  556. var org organize.Base_Organize
  557. if unitIdcopy != unitId {
  558. unitsvc.GetEntityById(unitId, &org)
  559. fullname = org.Fullname
  560. }
  561. user1.UnitId,_ = strconv.Atoi(unitId)
  562. user1.Unit = fullname
  563. cols := []string{"UnitId", "Unit"}
  564. unitsvc.UpdateEntityByIdCols(user.Id, &user1, cols)
  565. unitIdcopy = unitId
  566. fmt.Println(i)
  567. }
  568. elapsed := time.Since(t)
  569. fmt.Println(elapsed)
  570. }