user.go 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "strings"
  5. "dashoo.cn/backend/api/business/device"
  6. "dashoo.cn/backend/api/business/logsinfo"
  7. "dashoo.cn/backend/api/business/organize"
  8. "dashoo.cn/backend/api/business/role"
  9. "dashoo.cn/backend/api/business/userchannels"
  10. "dashoo.cn/backend/api/models"
  11. "dashoo.cn/business2/auth"
  12. "dashoo.cn/business2/permission"
  13. "dashoo.cn/business2/userRole"
  14. "dashoo.cn/utils"
  15. )
  16. // Operations about Users
  17. type UserController struct {
  18. BaseController
  19. }
  20. type UserModel struct {
  21. Username string `json:"username"`
  22. Realname string `json:"realname"`
  23. Telephone string `json:"telephone"`
  24. Mobile string `json:"mobile"`
  25. Description string `json:"description"`
  26. Photo string `json:"photo"`
  27. Role string `json:"role"`
  28. Id int `json:"id"`
  29. ChannelIds string `json:"channelids"`
  30. Password string `json:"password"`
  31. DepartmentId string `json:"departmentid"`
  32. DepartmentName string `json:"departmentname"`
  33. Sign string `json:"sign"`
  34. }
  35. type Note struct {
  36. Surplus int `json:"surplus"`
  37. }
  38. type UserAccountModel struct {
  39. ChannelOffNum int64 `json:"channeloffnum"`
  40. ChannelTriggerNum int64 `json:"channeltriggernum"`
  41. ChannelNormalNum int64 `json:"channelnormalnum"`
  42. NoteNum int64 `json:"notenum"`
  43. VoiceNum int64 `json:"voicenum"`
  44. }
  45. type ChangePwdModel struct {
  46. Pwd string `json:"pass"`
  47. NwePwd string `json:"newpass"`
  48. }
  49. type UserModuleModel struct {
  50. A1list string `json:"a1"` // 第一级菜单
  51. A2list string `json:"a2"` // 第二级菜单
  52. }
  53. type RegisteModel struct {
  54. Companyname string `json:"companyname"`
  55. Username string `json:"username"`
  56. Password string `json:"password"`
  57. Source string `json:"source"`
  58. }
  59. // @Title get
  60. // @Description get user by token
  61. // @Param uid path string true "The key for staticblock"
  62. // @Success 200 {object} models.User
  63. // @Failure 403 :uid is empty
  64. // @router /me [get]
  65. func (this *UserController) Get() {
  66. svc := userRole.GetUserService(utils.DBE)
  67. usermodel := svc.GetUserInfoSelf(this.User.Username)
  68. // var companyentity company.Base_Company
  69. // svc.GetEntityById(usermodel.AccCode, &companyentity)
  70. var user models.User
  71. user.Id = utils.ToStr(usermodel.Id)
  72. user.Username = usermodel.Username
  73. user.Profile.Address = usermodel.Homeaddress
  74. user.Profile.Email = usermodel.Email
  75. user.Profile.Realname = usermodel.Realname
  76. user.Profile.Roleid = usermodel.Roleid
  77. user.Profile.Mobile = usermodel.Mobile
  78. user.Profile.Telephone = usermodel.Telephone
  79. user.Profile.Photo = usermodel.Photo
  80. user.Profile.Description = usermodel.Description
  81. user.Profile.Host = this.Ctx.Request.Host
  82. user.Profile.AccCode = usermodel.AccCode
  83. user.Profile.DepartmentId = usermodel.Departmentid
  84. user.Profile.Id = usermodel.Id
  85. // todo 从this.User获取用户名,再查询出具体用户
  86. // user := models.User{"user01", "张三", models.Profile{Gender: "male", Age: 20, Address: "china", Email: "123zs@gmail.com", Realname: "ppppppp"}}
  87. this.Data["json"] = user
  88. this.ServeJSON()
  89. }
  90. // @Title 获取账户信息
  91. // @Description 获取账户信息
  92. // @Success 200 {object} models.User
  93. // @router /account [get]
  94. func (this *UserController) GetAccount() {
  95. u, p := this.GetuAndp()
  96. var model UserAccountModel
  97. svc := userchannels.GetUserChannelService(utils.DBE)
  98. channelid := svc.GetChannelids(utils.ToStr(this.User.Id))
  99. where := " (CreateUserId=" + utils.ToStr(this.User.Id) + " or Id in (" + strings.Join(channelid, ",") + ")) and DataItem in (" + ChannelItem_Sensor + ")"
  100. var entity device.Channels
  101. model.ChannelNormalNum, _ = svc.GetCount(&entity, where+" and ChannelState in (1,0)")
  102. model.ChannelOffNum, _ = svc.GetCount(&entity, where+" and ChannelState in (2)")
  103. model.ChannelTriggerNum, _ = svc.GetCount(&entity, where+" and ChannelState in (3)")
  104. var note Note
  105. strUrlnote := utils.Cfg.MustValue("server", "apiurl") + "/accountinfos/get?u=" + u + "&p=" + p + "&source=coldchain&account=" + this.GetAccode() + "&atype=sms"
  106. json.Unmarshal(Apiget(strUrlnote), &note)
  107. model.NoteNum = int64(note.Surplus)
  108. //语音剩余
  109. var voice Note
  110. strUrlvoice := utils.Cfg.MustValue("server", "apiurl") + "/accountinfos/get?u=" + u + "&p=" + p + "&source=coldchain&account=" + this.GetAccode() + "&atype=voice"
  111. json.Unmarshal(Apiget(strUrlvoice), &voice)
  112. model.VoiceNum = int64(voice.Surplus)
  113. this.Data["json"] = model
  114. this.ServeJSON()
  115. }
  116. // @Title 获取账户统计信息
  117. // @Description 获取账户统计信息
  118. // @Success 200 {object} controllers.Request
  119. // @router /getaccountingo [get]
  120. func (this *UserController) GetAccountInfo() {
  121. // svcs := equipment.GetEquipmentService(utils.DBE)
  122. // svcrole := role.GetRoleService(utils.DBE)
  123. // roleids := svcrole.GetRoleidsByuid(utils.ToStr(this.User.Id))
  124. // where := " a.AccCode = '" + this.User.AccCode + "'"
  125. // where = where + " and (a.CreateUserId=" + utils.ToStr(this.User.Id) + " or a.Id in (select EquipmentId Id FROM Base_RoleEquipment where RoleId in (" + strings.Join(roleids, ",") + ")))"
  126. // devicetotal, _ := svcs.GetEquipmenViewtList(1, 1, "a.Id", where)
  127. // //已录入样本
  128. // where1 := " IState =1 and DeletionStateCode=0 "
  129. // poweeids := svcs.GetPowerEquipmentids(this.User.AccCode, utils.ToStr(this.User.Id))
  130. // where1 = where1 + " and a.EquipmentId in(" + strings.Join(poweeids, ",") + ")"
  131. // svc := samplesinfo.GetSamplesInfoService(utils.DBE)
  132. // yilurutotal, _ := svc.GetPagingEntitiesWithOrderSearch(this.User.AccCode, 1, 1, "Id desc", where1)
  133. // // 预录入
  134. // where2 := " a.IState in (2,3,4,7,8) and a.DeletionStateCode=0 "
  135. // yulurutotal, _ := svc.GetPagingEntitiesWithOrderSearch(this.User.AccCode, 1, 1, "Id desc", where2)
  136. // //待复存
  137. // where3 := " DeletionStateCode=0 and (IState=6 or ( IState=5 and a.EquipmentId in(" + strings.Join(poweeids, ",") + ")))"
  138. // daifuchuntotal, _ := svc.GetPagingEntitiesWithOrderSearch(this.User.AccCode, 1, 1, "Id desc", where3)
  139. // //已归档
  140. // svcf := samplesfileinfo.GetSamplesFileInfoService(utils.DBE)
  141. // where4 := " DeletionStateCode=0 "
  142. // yiguidangtotal, _ := svcf.GetPagingEntitiesWithOrderSearch(this.User.AccCode, 1, 1, "Id desc", where4)
  143. // //待办事项
  144. // svcw := samplesapply.GetSamplesApplyService(utils.DBE)
  145. // where_rk := " ApplyType = 1 and ApplyStatus = 0 "
  146. // rktotal, rklist := svcw.GetApplyViewtList(1, 1, this.User.AccCode+SamplesApplyName, "Id", where_rk)
  147. // where_ck := " ApplyType = 2 and ApplyStatus = 0 "
  148. // cktotal, cklist := svcw.GetApplyViewtList(1, 1, this.User.AccCode+SamplesApplyName, "Id", where_ck)
  149. // //待随访
  150. // svcsf := flupplan.GetFlupPlanService(utils.DBE)
  151. // where_sf := " a.AccCode='" + this.User.AccCode + "' and a.DeletionStateCode=0 "
  152. // sftotal, _ := svcsf.GetPagingEntitiesWithOrderSearch(1, 1, "a.Id desc", where_sf, this.User.AccCode+DonorstbName)
  153. // this.Data["json"] = AccountTjModel{devicetotal, yilurutotal, yulurutotal, daifuchuntotal, yiguidangtotal, sftotal, rktotal, rklist, cktotal, cklist}
  154. // this.ServeJSON()
  155. }
  156. // @Title get
  157. // @Description get user by token
  158. // @Success 200 {object} models.User
  159. // @router /list [get]
  160. func (this *UserController) List() {
  161. page := this.GetPageInfoForm()
  162. keyword := this.GetString("keyword")
  163. svc := permission.GetPermissionService(utils.DBE)
  164. var users []userRole.Base_User
  165. //是否开启组织结构
  166. // isopenorg := IsAuthorized(this.User.Id, "coldclouds.user.openorg")
  167. // var orgtree []organize.Base_Organizetree
  168. // svc1 := device.GetDeviceService(utils.DBE)
  169. // uid := utils.ToStr(this.User.Id)
  170. // wherebindingcompany := "CreateUserId=" + uid
  171. // wheredevice := " a.DataItem in (" + ChannelItem_Sensor + ") and a.CreateUserId=" + utils.ToStr(this.User.Id)
  172. // tree := svc1.GetTree_OrgAndDevice(wherebindingcompany, wheredevice, uid, isopenorg)
  173. //orgtree = append(tree, organize.Base_Organizetree{Id: 0, ParentId: -1, FullName: this.User.Realname, Icon: "/static/img/1_open.png"})
  174. // orgtree = append(tree, organize.Base_Organizetree{Id: 0, ParentId: -1, FullName: this.User.Realname})
  175. // this.Data["orgtree"] = orgtree
  176. where := "IsVisible=1 and CreateUserId='" + utils.ToStr(this.User.Id) + "' or Id = '" + utils.ToStr(this.User.Id) + "' "
  177. if keyword != "" {
  178. where = where + " and Realname like '%" + keyword + "%'"
  179. }
  180. total := svc.GetPagingEntitiesWithOrder(page.CurrentPage, page.Size, "Id", false, &users, where)
  181. var datainfo DataInfo
  182. datainfo.Items = users
  183. datainfo.CurrentItemCount = total
  184. this.Data["json"] = &datainfo
  185. this.ServeJSON()
  186. }
  187. // @Title get
  188. // @Description get user by token
  189. // @Success 200 {object} models.User
  190. // @router /usualwithrole [get]
  191. func (this *UserController) UsualWithRole() {
  192. page := this.GetPageInfoForm()
  193. keyword := this.GetString("keyword")
  194. svc := permission.GetPermissionService(utils.DBE)
  195. var users []userRole.UserRoleModel
  196. orderby := "a.Id desc"
  197. Order := this.GetString("Order")
  198. Prop := this.GetString("Prop")
  199. if Order != "" && Prop != "" {
  200. orderby = Prop + " " + Order
  201. }
  202. where := "a.IsVisible=1 and d.GroupId is NULL "
  203. where += " and ( a.CreateUserId='" + utils.ToStr(this.User.Id) + "' or a.Id = '" + utils.ToStr(this.User.Id) + "' )"
  204. if keyword != "" {
  205. where = where + " and a.UserName like '%" + keyword + "%'"
  206. }
  207. total, users := svc.GetUserListWithRole(page.CurrentPage, page.Size, orderby, where)
  208. var datainfo DataInfo
  209. datainfo.Items = users
  210. datainfo.CurrentItemCount = total
  211. this.Data["json"] = &datainfo
  212. this.ServeJSON()
  213. }
  214. // @Title get
  215. // @Description get user by token
  216. // @Success 200 {object} models.User
  217. // @router /listwithrole [get]
  218. func (this *UserController) ListWithRole() {
  219. //page := this.GetPageInfoForm()
  220. //keyword := this.GetString("keyword")
  221. //svc := permission.GetPermissionService(utils.DBE)
  222. //var users []userRole.UserRoleModel
  223. //orderby := "m.Id desc"
  224. //Order := this.GetString("Order")
  225. //Prop := this.GetString("Prop")
  226. //if Order != "" && Prop != "" {
  227. // orderby = Prop + " " + Order
  228. //}
  229. //where := "a.IsVisible=1 and a.CreateUserId='" + utils.ToStr(this.User.Id) + "' or a.Id = '" + utils.ToStr(this.User.Id) + "' "
  230. //if keyword != "" {
  231. // where = where + " and a.Realname like '%" + keyword + "%'"
  232. //}
  233. //total, users := svc.GetPartnerListWithRole(page.CurrentPage, page.Size, this.User.AccCode+GroupDetailName, orderby, where)
  234. //var datainfo DataInfo
  235. //datainfo.Items = users
  236. //datainfo.CurrentItemCount = total
  237. //this.Data["json"] = &datainfo
  238. //this.ServeJSON()
  239. }
  240. // @Title 创建用户
  241. // @Description 创建用户
  242. // @Param body body business.device.DeviceChannels "传感器信息"
  243. // @Success 200 {object} controllers.Request
  244. // @router / [post]
  245. func (this *UserController) AddUser() {
  246. /*var model UserModel
  247. var jsonblob = this.Ctx.Input.RequestBody
  248. json.Unmarshal(jsonblob, &model)
  249. var errinfo ErrorDataInfo
  250. departidint, _ := utils.StrTo(model.DepartmentId).Int()
  251. if departidint < 1 {
  252. errinfo.Message = "请选择所属组织!"
  253. errinfo.Code = -3
  254. this.Data["json"] = &errinfo
  255. this.ServeJSON()
  256. return
  257. }
  258. //获取组织名称
  259. svcorg := organize.GetOrganizeService(utils.DBE)
  260. model.DepartmentName = svcorg.GetNameById(model.DepartmentId)
  261. var userentity userRole.Base_User
  262. userentity.Roleid, _ = utils.StrTo(model.Role).Int()
  263. if userentity.Roleid == 0 {
  264. //userentity.Roleid = 10000123 //普通用户
  265. }
  266. userentity.Username = model.Username
  267. userentity.Realname = model.Realname
  268. userentity.Telephone = model.Telephone
  269. userentity.Mobile = model.Mobile
  270. if model.Sign == "" {
  271. userentity.Description = model.Description
  272. } else {
  273. userentity.Description = model.Sign
  274. }
  275. userentity.Photo = model.Photo
  276. currentuser := this.User
  277. userentity.Createuserid, _ = utils.StrTo(currentuser.Id).Int()
  278. userentity.Createby = currentuser.Realname
  279. userentity.AccCode = this.GetAccode()
  280. userentity.QRCode = utils.GetGuid()
  281. userentity.Departmentid = model.DepartmentId
  282. userentity.Departmentname = model.DepartmentName
  283. //salt := utils.GetRandomString(5)
  284. //userentity.Userpassword = fmt.Sprintf("%s$%s", salt, utils.EncodePassword("123456", salt))
  285. //更改密码算法2014-11-21
  286. pwd, key, errrk := utils.TripleDesEncrypt("123456")
  287. if errrk != nil {
  288. errinfo.Message = "添加失败!" + utils.AlertProcess(errrk.Error())
  289. errinfo.Code = -2
  290. this.Data["json"] = &errinfo
  291. this.ServeJSON()
  292. return
  293. }
  294. userentity.Userpassword = pwd
  295. userentity.Publickey = key
  296. userentity.Auditstatus = 1
  297. userentity.Email = userentity.Username
  298. svc := userRole.GetUserService(utils.DBE)
  299. err := svc.AddUser(&userentity)
  300. if err == nil {
  301. errinfo.Message = "添加用户成功,初始密码为123456!"
  302. errinfo.Code = 0
  303. errinfo.Item = userentity.Id
  304. this.Data["json"] = &errinfo
  305. this.ServeJSON()
  306. return
  307. } else {
  308. errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
  309. errinfo.Code = -1
  310. this.Data["json"] = &errinfo
  311. this.ServeJSON()
  312. return
  313. }*/
  314. }
  315. // @Title 编辑用户
  316. // @Description 编辑用户
  317. // @Param id path string true "需要修改的传感器编号"
  318. // @Param body body business.device.DeviceChannels "传感器信息"
  319. // @Success 200 {object} controllers.Request
  320. // @router /:id [put]
  321. func (this *UserController) EditUser() {
  322. id := this.Ctx.Input.Param(":id")
  323. var errinfo ErrorInfo
  324. if id == "" {
  325. errinfo.Message = "操作失败!请求信息不完整"
  326. errinfo.Code = -2
  327. this.Data["json"] = &errinfo
  328. this.ServeJSON()
  329. return
  330. }
  331. var model UserModel
  332. var jsonblob = this.Ctx.Input.RequestBody
  333. json.Unmarshal(jsonblob, &model)
  334. var userentity userRole.Base_User
  335. var userentityempty userRole.Base_User
  336. svc := userRole.GetUserService(utils.DBE)
  337. has := svc.GetEntityById(id, &userentity)
  338. if has {
  339. //获取组织名称
  340. svcorg := organize.GetOrganizeService(utils.DBE)
  341. model.DepartmentName = svcorg.GetNameById(model.DepartmentId)
  342. // roleid, _ := utils.StrTo(model.Role).Int()
  343. // if userentity.Roleid != roleid {
  344. // svc.ClearUserRole(id)
  345. // svc.AddUserToRole(id, model.Role, userentity)
  346. // }
  347. userentity.Realname = model.Realname
  348. userentity.Telephone = model.Telephone
  349. userentity.Mobile = model.Mobile
  350. if model.Sign == "" {
  351. userentity.Description = model.Description
  352. } else {
  353. userentity.Description = model.Sign
  354. }
  355. userentity.Photo = model.Photo
  356. // userentity.Roleid = roleid
  357. userentity.Modifieduserid, _ = utils.StrTo(this.User.Id).Int()
  358. userentity.Modifiedby = this.User.Realname
  359. userentity.Departmentid = model.DepartmentId
  360. userentity.Departmentname = model.DepartmentName
  361. var cols []string = []string{"Realname", "DepartmentId", "DepartmentName", "Telephone", "Mobile", "Description", "Photo", "Modifieduserid", "Modifiedby"}
  362. err := svc.UpdateEntityAndBackupByCols(id, &userentity, &userentityempty, cols, utils.ToStr(this.User.Id), this.User.Realname)
  363. if err == nil {
  364. errinfo.Message = "保存成功!"
  365. errinfo.Code = 0
  366. this.Data["json"] = &errinfo
  367. this.ServeJSON()
  368. } else {
  369. errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
  370. errinfo.Code = -1
  371. this.Data["json"] = &errinfo
  372. this.ServeJSON()
  373. }
  374. } else {
  375. errinfo.Message = "操作失败!操作数据不存在"
  376. errinfo.Code = -3
  377. this.Data["json"] = &errinfo
  378. this.ServeJSON()
  379. return
  380. }
  381. }
  382. // @Title 删除用户
  383. // @Description 删除用户
  384. // @Param id path string true "需要删除的用户编号"
  385. // @Success 200 {object} ErrorInfo
  386. // @Failure 403 :id 为空
  387. // @router /:id [delete]
  388. func (this *UserController) Delete() {
  389. id := this.Ctx.Input.Param(":id")
  390. var errinfo ErrorInfo
  391. if id == "" {
  392. errinfo.Message = "操作失败!请求信息不完整"
  393. errinfo.Code = -2
  394. this.Data["json"] = &errinfo
  395. this.ServeJSON()
  396. return
  397. }
  398. var entity userRole.Base_User
  399. var entityempty userRole.Base_User
  400. svc := userRole.GetUserService(utils.DBE)
  401. err := svc.DeleteEntityAndBackup(id, &entity, &entityempty, utils.ToStr(this.User.Id), this.User.Username)
  402. if err == nil {
  403. svc.ClearUserRole(id) //清除角色
  404. errinfo.Message = "删除成功"
  405. errinfo.Code = 0
  406. this.Data["json"] = &errinfo
  407. this.ServeJSON()
  408. } else {
  409. errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
  410. errinfo.Code = -1
  411. this.Data["json"] = &errinfo
  412. this.ServeJSON()
  413. }
  414. }
  415. // @Title 创建用户
  416. // @Description 创建用户
  417. // @Param id path string true "需要修改的传感器编号"
  418. // @Param body body business.device.DeviceChannels "传感器信息"
  419. // @Success 200 {object} controllers.Request
  420. // @router /permission/:id [put]
  421. func (this *UserController) SetPermission() {
  422. id := this.Ctx.Input.Param(":id")
  423. var errinfo ErrorInfo
  424. if id == "" {
  425. errinfo.Message = "操作失败!请求信息不完整"
  426. errinfo.Code = -2
  427. this.Data["json"] = &errinfo
  428. this.ServeJSON()
  429. return
  430. }
  431. var model UserModel
  432. var jsonblob = this.Ctx.Input.RequestBody
  433. json.Unmarshal(jsonblob, &model)
  434. svc := userchannels.GetUserChannelService(utils.DBE)
  435. ids := strings.Split(model.ChannelIds, ",")
  436. uid, _ := utils.StrTo(id).Int()
  437. svc.ClearUserChannel(uid)
  438. var uc userchannels.Base_UserChannels
  439. uc.UserId = uid
  440. uc.AccCode = this.GetAccode()
  441. uc.Createuserid, _ = utils.StrTo(this.User.Id).Int()
  442. uc.Createby = this.User.Realname
  443. for i := 0; i < len(ids); i++ {
  444. id, _ := utils.StrTo(ids[i]).Int()
  445. if id != 0 {
  446. uc.ChannelsId = id
  447. svc.InsertEntity(&uc)
  448. }
  449. }
  450. errinfo.Message = "权限调整成功"
  451. errinfo.Code = 0
  452. this.Data["json"] = &errinfo
  453. this.ServeJSON()
  454. }
  455. // @Title 创建用户
  456. // @Description 创建用户
  457. // @Param id path string true "需要修改的传感器编号"
  458. // @Param body body business.device.DeviceChannels "传感器信息"
  459. // @Success 200 {object} controllers.Request
  460. // @router /permission/:id [get]
  461. func (this *UserController) GetPermission() {
  462. id := this.Ctx.Input.Param(":id")
  463. svc := userchannels.GetUserChannelService(utils.DBE)
  464. this.Data["json"] = svc.GetChannelids(id)
  465. this.ServeJSON()
  466. }
  467. // @Title 创建用户
  468. // @Description 创建用户
  469. // @Param id path string true "需要修改的传感器编号"
  470. // @Param body body business.device.DeviceChannels "传感器信息"
  471. // @Success 200 {object} controllers.Request
  472. // @router /resetpwd/:id [put]
  473. func (this *UserController) ResetPassWord() {
  474. id := this.Ctx.Input.Param(":id")
  475. var errinfo ErrorInfo
  476. uid, err := utils.StrTo(id).Int()
  477. if err == nil {
  478. svcauth := auth.GetAuthServic(utils.DBE)
  479. var umodel userRole.Base_User = userRole.Base_User{Id: uid}
  480. var entitypaw1, entitypaw2 logsinfo.Userpassword
  481. svcauth.UpdateLog(id, &entitypaw1, &entitypaw2, utils.ToStr(this.User.Id), this.User.Realname)
  482. errset := svcauth.SetNewPassword3DES(&umodel, "123456")
  483. if errset == nil {
  484. errinfo.Message = "密码重置成功!已重置为:123456"
  485. errinfo.Code = 0
  486. this.Data["json"] = &errinfo
  487. this.ServeJSON()
  488. } else {
  489. errinfo.Message = "密码重置失败!" + utils.AlertProcess(err.Error())
  490. errinfo.Code = -1
  491. this.Data["json"] = &errinfo
  492. this.ServeJSON()
  493. }
  494. } else {
  495. errinfo.Message = "操作失败!请求信息不完整"
  496. errinfo.Code = -2
  497. this.Data["json"] = &errinfo
  498. this.ServeJSON()
  499. }
  500. }
  501. // @Title 创建用户
  502. // @Description 创建用户
  503. // @Param body body business.device.DeviceChannels "传感器信息"
  504. // @Success 200 {object} controllers.Request
  505. // @router /uploadphoto [post]
  506. func (this *UserController) UploadPhoto() {
  507. var path string
  508. path = "/static/upload/img/user/"
  509. photopath := UploadImage("png", path, this.Ctx.Request)
  510. this.Data["json"] = photopath
  511. this.ServeJSON()
  512. }
  513. // @Title 创建用户
  514. // @Description 创建用户
  515. // @Param body body business.device.DeviceChannels "传感器信息"
  516. // @Success 200 {object} controllers.Request
  517. // @router /membersetting [put]
  518. func (this *UserController) MemberSetting() {
  519. var model models.Profile
  520. var jsonblob = this.Ctx.Input.RequestBody
  521. json.Unmarshal(jsonblob, &model)
  522. var errinfo ErrorInfo
  523. svc := userRole.GetUserService(utils.DBE)
  524. userentity := svc.GetUserInfoSelf(this.User.Username)
  525. userentity.Homeaddress = model.Address
  526. userentity.Email = model.Email
  527. userentity.Realname = model.Realname
  528. userentity.Mobile = model.Mobile
  529. userentity.Telephone = model.CompanyCode
  530. userentity.Photo = model.Photo
  531. userentity.Description = model.Description
  532. var userentityempty userRole.Base_User
  533. userentity.Modifieduserid = userentity.Id
  534. userentity.Modifiedby = userentity.Realname
  535. var cols []string = []string{"Realname", "Telephone", "Email", "Photo", "Description", "Modifieduserid", "Modifiedby", "Homeaddress", "Mobile"}
  536. err := svc.UpdateEntityAndBackupByCols(userentity.Id, &userentity, &userentityempty, cols, utils.ToStr(this.User.Id), this.User.Realname)
  537. if err == nil {
  538. // var companyentity company.Base_Company
  539. // companyentity.Fullname = userentity.Realname
  540. // companyentity.Address = userentity.Homeaddress
  541. // var cols []string = []string{"Fullname", "Address", "OuterPhone", "Manager", "Code"}
  542. // svc.UpdateEntityByIdCols(userentity.AccCode, &companyentity, cols)
  543. if "10000120" == this.User.Roles { // 企业管理员
  544. //修改根组织
  545. var orgentity organize.Base_Organize
  546. orgentity.Fullname = userentity.Realname
  547. var orgcols []string = []string{"Fullname"}
  548. svc.UpdateEntityByIdCols(userentity.Departmentid, &orgentity, orgcols)
  549. }
  550. errinfo.Message = "设置成功"
  551. errinfo.Code = 0
  552. this.Data["json"] = &errinfo
  553. this.ServeJSON()
  554. } else {
  555. errinfo.Message = "设置失败!" + utils.AlertProcess(err.Error())
  556. errinfo.Code = 0
  557. this.Data["json"] = &errinfo
  558. this.ServeJSON()
  559. }
  560. }
  561. // @Title 修改密码
  562. // @Description 修改密码
  563. // @Param body body business.device.DeviceChannels "传感器信息"
  564. // @Success 200 {object} controllers.Request
  565. // @router /userchangepwd [put]
  566. func (this *UserController) UserChangePWD() {
  567. var model ChangePwdModel
  568. var jsonblob = this.Ctx.Input.RequestBody
  569. json.Unmarshal(jsonblob, &model)
  570. var errinfo ErrorInfo
  571. svcauth := auth.GetAuthServic(utils.DBE)
  572. var user userRole.Base_User
  573. if svcauth.VerifyUser3DES(this.User.Username, model.Pwd, &user) {
  574. var entitypaw1, entitypaw2 logsinfo.Userpassword
  575. idint, _ := utils.StrTo(this.User.Id).Int()
  576. var umodel userRole.Base_User = userRole.Base_User{Id: idint}
  577. svcauth.UpdateLog(this.User.Id, &entitypaw1, &entitypaw2, this.User.Id, this.User.Realname)
  578. err := svcauth.SetNewPassword3DES(&umodel, model.NwePwd)
  579. if err != nil {
  580. errinfo.Message = "修改失败!" + err.Error()
  581. errinfo.Code = -2
  582. this.Data["json"] = &errinfo
  583. this.ServeJSON()
  584. } else {
  585. errinfo.Message = "密码修改成功"
  586. errinfo.Code = 0
  587. this.Data["json"] = &errinfo
  588. this.ServeJSON()
  589. }
  590. } else {
  591. errinfo.Message = "修改失败!当前密码输入错误"
  592. errinfo.Code = -1
  593. this.Data["json"] = &errinfo
  594. this.ServeJSON()
  595. return
  596. }
  597. }
  598. // @Title 按样本类型统计样本数量
  599. // @Description 按样本类型统计样本数量
  600. // @Success 200 {object} controllers.Request
  601. // @router /gettotalbysampletype [get]
  602. //func (this *UserController) GetTotalByGroupbysampletype() {
  603. // diseases := this.GetString("diseases")
  604. // svc := samplesinfo.GetSamplesInfoService(utils.DBE)
  605. // where := " a.DeletionStateCode=0 "
  606. // if diseases != "" {
  607. // where = where + " and c.PathologicalNum = '" + diseases + "'"
  608. // }
  609. // this.Data["json"] = svc.GetTJBysampletype(this.User.AccCode, where)
  610. // this.ServeJSON()
  611. //}
  612. // @Title 按设备统计样本数量
  613. // @Description 按设备统计样本数量
  614. // @Success 200 {object} controllers.Request
  615. // @router /gettotalbygroupbydevice [get]
  616. //func (this *UserController) GetTotalByGroupbydevice() {
  617. // svcrole := role.GetRoleService(utils.DBE)
  618. // roleids := svcrole.GetRoleidsByuid(utils.ToStr(this.User.Id))
  619. // where := " a.AccCode = '" + this.User.AccCode + "'"
  620. // where = where + " and b.IState =1 and b.DeletionStateCode=0 and (a.CreateUserId=" + utils.ToStr(this.User.Id) + " or a.Id in (select EquipmentId Id FROM Base_RoleEquipment where RoleId in (" + strings.Join(roleids, ",") + ")))"
  621. // svc := samplesinfo.GetSamplesInfoService(utils.DBE)
  622. // this.Data["json"] = svc.GetTJBydevice(this.User.AccCode, where)
  623. // this.ServeJSON()
  624. //}
  625. // @Title 用户角色设置
  626. // @Description 用户角色设置
  627. // @Success 200 {object} controllers.Request
  628. // @router /setuserrole/:id [put]
  629. func (this *UserController) UserPowerPostRole() {
  630. //svc := userRole.GetUserService(utils.DBE)
  631. //inputstr := this.Ctx.Input.Param(":id")
  632. //serial := strings.Split(inputstr, "_")
  633. //userid := serial[0]
  634. //var errinfo ErrorInfo
  635. //if userid == "" || userid == "0" {
  636. // errinfo.Message = "操作失败!请求信息不完整"
  637. // errinfo.Code = -2
  638. // this.Data["json"] = &errinfo
  639. // this.ServeJSON()
  640. // return
  641. //}
  642. //roleids := strings.Split(serial[1], ",")
  643. //svc.ClearUserRole(userid)
  644. //entity := svc.GetReport(userid)
  645. //var err error = nil
  646. //for i := 0; i < len(roleids); i++ {
  647. // if roleids[i] != "0" && roleids[i] != "" {
  648. // err = svc.AddUserToRole(userid, roleids[i], entity[0])
  649. // }
  650. //}
  651. //if err == nil {
  652. // errinfo.Message = utils.AlertProcess("用户角色调整成功!")
  653. // errinfo.Code = 0
  654. // this.Data["json"] = &errinfo
  655. // this.ServeJSON()
  656. //} else {
  657. // errinfo.Message = utils.AlertProcess("用户角色调整失败!" + err.Error())
  658. // errinfo.Code = -1
  659. // this.Data["json"] = &errinfo
  660. // this.ServeJSON()
  661. //}
  662. }
  663. // @Title 获得用户角色id
  664. // @Description 获得用户角色id
  665. // @Success 200 {object} controllers.Request
  666. // @router /getuserrole/:id [get]
  667. func (this *UserController) UserPowerCheckRole() {
  668. userid := this.Ctx.Input.Param(":id")
  669. svc := role.GetRoleService(utils.DBE)
  670. roleofuser := svc.GetSelfRoleids(userid)
  671. this.Data["json"] = &roleofuser
  672. this.ServeJSON()
  673. }
  674. // @Title 注册管理账号
  675. // @Description 注册管理账号
  676. // @Param body body business.device.DeviceChannels "传感器信息"
  677. // @Success 200 {object} controllers.Request
  678. // @router /registemanage [put]
  679. //func (this *UserController) Registerput() {
  680. // var model RegisteModel
  681. // var jsonblob = this.Ctx.Input.RequestBody
  682. // json.Unmarshal(jsonblob, &model)
  683. // var errinfo ErrorInfo
  684. // var user userRole.Base_User
  685. // user.Username = model.Username
  686. // user.Realname = model.Companyname
  687. // // this.ParseForm(&user) //去页面数值
  688. // svc := company.GetCompanyService(utils.DBE)
  689. // err, comacccode := svc.AddCompany(user.Realname, user.Username) //这两个参数传到company库,返回id
  690. // if err == nil {
  691. // svcuser := userRole.GetUserService(utils.DBE)
  692. // user.AccCode = comacccode //id传到 user库的acccode
  693. // pass := model.Password //取到前台密码
  694. // //更改密码算法2014-11-21
  695. // pwd, key, errrk := utils.TripleDesEncrypt(pass)
  696. // if errrk != nil {
  697. // errinfo.Message = "添加失败!" + utils.AlertProcess(errrk.Error())
  698. // errinfo.Code = -2
  699. // this.Data["json"] = &errinfo
  700. // this.ServeJSON()
  701. // return
  702. // }
  703. // user.Roleid = 10000120 //企业用户
  704. // user.Auditstatus = 1
  705. // user.Userpassword = pwd
  706. // user.Publickey = key
  707. // user.Email = user.Username
  708. // err = svcuser.AddUser(&user)
  709. // svcSampleOrgan := sampleorgan.GetSampleOrganService(utils.DBE)
  710. // var entityOrgan sampleorgan.SampleOrgan
  711. // entityOrgan.AccCode = comacccode
  712. // entityOrgan.TNode = "SystemInner"
  713. // entityOrgan.TNodeParent = "0"
  714. // entityOrgan.Item = 1
  715. // entityOrgan.Code = "ALL"
  716. // entityOrgan.Name = "全部"
  717. // entityOrgan.CreateBy = user.Username
  718. // entityOrgan.CreateUserId = user.Id
  719. // _, err = svcSampleOrgan.InsertEntity(&entityOrgan)
  720. // svcPrintScheme := printscheme.GetPrintSchemeService(utils.DBE)
  721. // var listPrintScheme []printscheme.PrintScheme
  722. // var listPrintScheme_new []printscheme.PrintScheme
  723. // listPrintScheme = svcPrintScheme.GetPrintSchemeList("IsSystem=2")
  724. // for i := 0; i < len(listPrintScheme); i++ {
  725. // listPrintScheme[i].IsSystem = 1
  726. // listPrintScheme[i].CreateBy = user.Username
  727. // listPrintScheme[i].CreateUserId = user.Id
  728. // listPrintScheme[i].AccCode = user.AccCode
  729. // listPrintScheme_new = append(listPrintScheme_new, listPrintScheme[i])
  730. // }
  731. // svc.InsertEntity(&listPrintScheme_new)
  732. // if err == nil {
  733. // //创建表结构
  734. // err := svc.CreateSampleDonorTable(user.AccCode, model.Source)
  735. // if err != nil {
  736. // fmt.Println(err.Error())
  737. // }
  738. // //写入账户信息,赠送短信
  739. // var accountinfo accountinfo.AccountInfo
  740. // accountinfo.ProjectSourse = "biobank"
  741. // accountinfo.ProjectAccount = user.AccCode
  742. // accountinfo.ProjectAccountName = user.Realname
  743. // accountinfo.SurplusCount = 50
  744. // accountinfo.ActionType = "sms"
  745. // u, p := this.GetuAndp()
  746. // strUrl := utils.Cfg.MustValue("server", "apiurl") + "/accountinfos/?u=" + u + "&p=" + p
  747. // Apipost(strUrl, "POST", accountinfo)
  748. // //添加一条组织根节点
  749. // var entityorg organize.Base_Organize
  750. // // 编辑后添加一条数据
  751. // entityorg.Fullname = model.Companyname
  752. // entityorg.Parentid = 0
  753. // entityorg.Createuserid = user.Id
  754. // entityorg.Createby = user.Realname
  755. // entityorg.AccCode = user.AccCode
  756. // svcuser.InsertEntity(&entityorg)
  757. // //修改用户的组织id
  758. // user.Departmentid = utils.ToStr(entityorg.Id)
  759. // user.Departmentname = entityorg.Fullname
  760. // var usercols []string = []string{"Departmentid", "Departmentname"}
  761. // svcuser.UpdateEntityByIdCols(user.Id, &user, usercols)
  762. // errinfo.Message = "注册用户成功!"
  763. // errinfo.Code = 0
  764. // this.Data["json"] = &errinfo
  765. // this.ServeJSON()
  766. // } else {
  767. // errinfo.Message = "注册失败!" + utils.AlertProcess(err.Error())
  768. // errinfo.Code = -2
  769. // this.Data["json"] = &errinfo
  770. // this.ServeJSON()
  771. // return
  772. // }
  773. // } else {
  774. // errinfo.Message = "注册失败!" + utils.AlertProcess(err.Error())
  775. // errinfo.Code = -3
  776. // this.Data["json"] = &errinfo
  777. // this.ServeJSON()
  778. // return
  779. // }
  780. //}
  781. // @Title 获取用户菜单权限
  782. // @Description 获取用户菜单权限
  783. // @Success 200 {object} controllers.Request
  784. // @router /getusermodule [get]
  785. func (this *UserController) GetUserModule() {
  786. //svc := permission.GetPermissionService(utils.DBE)
  787. //var model UserModuleModel
  788. //model.A1list = svc.GetModuleAllNamesByCode(this.User.Id, "A1")
  789. //model.A2list = svc.GetModuleAllNamesByCode(this.User.Id, "A2")
  790. //this.Data["json"] = model
  791. //this.ServeJSON()
  792. }
  793. // @Title 获取用户菜单权限
  794. // @Description 获取用户菜单权限
  795. // @Success 200 {object} controllers.Request
  796. // @router /getusermoduletree [get]
  797. func (this *UserController) GetUserModuleTree() {
  798. svc := permission.GetPermissionService(utils.DBE)
  799. list := svc.GetModuleAll(this.User.Id, "30000000")
  800. this.Data["json"] = list
  801. this.ServeJSON()
  802. }
  803. // @Title CheckToken
  804. // @Description create token
  805. // @Param body body models.User4CreateToken true "The user info for create token"
  806. // @Success 200 {object} models.UserToken
  807. // @Failure 403 body is empty
  808. // @router /checkUserPwd [post]
  809. func (this *UserController) CheckUserPwd() {
  810. var errinfo ErrorInfo
  811. realName := this.GetString("RealName")
  812. if len(realName) == 0 {
  813. errinfo.Message = "参数错误"
  814. errinfo.Code = -1
  815. this.Data["json"] = &errinfo
  816. this.ServeJSON()
  817. return
  818. }
  819. svc := auth.GetAuthServic(utils.DBE)
  820. var user4CreateToken models.User4CreateToken
  821. json.Unmarshal(this.Ctx.Input.RequestBody, &user4CreateToken)
  822. svc2 := userRole.GetUserService(utils.DBE)
  823. usermodel := svc2.GetUserInfoByRealName(realName)
  824. var user userRole.Base_User
  825. if svc.VerifyUser3DES(usermodel.Username, user4CreateToken.Password, &user) {
  826. if user.Realname != realName {
  827. errinfo.Message = "账号不匹配,无权进行此操作!"
  828. errinfo.Code = -1
  829. this.Data["json"] = &errinfo
  830. this.ServeJSON()
  831. return
  832. }
  833. errinfo.Message = "登录成功"
  834. errinfo.Code = 0
  835. this.Data["json"] = &errinfo
  836. this.ServeJSON()
  837. } else {
  838. errinfo.Message = "密码错误,无权进行此操作!"
  839. errinfo.Code = -1
  840. this.Data["json"] = &errinfo
  841. this.ServeJSON()
  842. }
  843. }