user.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552
  1. package handler
  2. import (
  3. "context"
  4. "dashoo.cn/micro/app/model"
  5. "dashoo.cn/micro/app/service"
  6. "dashoo.cn/opms_libary/myerrors"
  7. "github.com/gogf/gf/errors/gerror"
  8. "github.com/gogf/gf/util/gvalid"
  9. "dashoo.cn/common_definition/comm_def"
  10. "github.com/gogf/gf/frame/g"
  11. )
  12. type UserHandler struct{}
  13. // GetList 获取用户列表
  14. func (h *UserHandler) GetList(ctx context.Context, req *model.SysUserSearchReq, rsp *comm_def.CommonMsg) error {
  15. userService, err := service.NewUserService(ctx)
  16. if err != nil {
  17. g.Log().Error(err)
  18. return err
  19. }
  20. total, list, err := userService.GetUserList(req)
  21. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  22. if err != nil {
  23. g.Log().Error(err)
  24. return err
  25. }
  26. rsp.Data = g.Map{"list": list, "total": total}
  27. return nil
  28. }
  29. // Create 添加用户
  30. func (h *UserHandler) Create(ctx context.Context, req *model.AddUserReq, rsp *comm_def.CommonMsg) error {
  31. // 参数校验
  32. if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
  33. return err
  34. }
  35. //req.RoleIds = utils.IntArrayToIdsString(req.RoleArray)
  36. //req.PostIds = utils.IntArrayToIdsString(req.PostArray)
  37. userService, err := service.NewUserService(ctx)
  38. if err != nil {
  39. g.Log().Error(err)
  40. return err
  41. }
  42. //userinfo, err := micro_srv.GetUserInfo(ctx)
  43. //if err != nil {
  44. // return err
  45. //}
  46. err = userService.CreateUser(req)
  47. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  48. if err != nil {
  49. g.Log().Error(err)
  50. return err
  51. }
  52. return nil
  53. }
  54. // UpdateById 更新用户
  55. func (h *UserHandler) UpdateById(ctx context.Context, req *model.EditUserReq, rsp *comm_def.CommonMsg) error {
  56. // 参数校验
  57. if req.Id == 0 {
  58. return NoParamsErr
  59. }
  60. if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
  61. return err
  62. }
  63. //req.RoleIds = utils.IntArrayToIdsString(req.RoleArray)
  64. //req.PostIds = utils.IntArrayToIdsString(req.PostArray)
  65. userService, err := service.NewUserService(ctx)
  66. if err != nil {
  67. g.Log().Error(err)
  68. return err
  69. }
  70. // 获取用户信息
  71. //userInfo, err := micro_srv.GetUserInfo(ctx)
  72. //if err != nil {
  73. // return err
  74. //}
  75. err = userService.UpdateUser(req)
  76. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  77. if err != nil {
  78. g.Log().Error(err)
  79. return err
  80. }
  81. return nil
  82. }
  83. // GetUserInfo 获取用户实体信息
  84. func (e *UserHandler) GetUserInfo(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
  85. userService, err := service.NewUserService(ctx)
  86. if err != nil {
  87. g.Log().Error(err)
  88. return gerror.New("系统异常,请重新尝试")
  89. }
  90. userId := int(req.Id)
  91. if req.Id == 0 {
  92. // 从上下文中获取用户
  93. userId = userService.GetCxtUserId()
  94. }
  95. data, err := userService.GetUserInfoById(userId)
  96. if err != nil {
  97. g.Log().Error(err)
  98. return err
  99. }
  100. // 获取用户权限 角色
  101. userRoles, err := userService.GetUserRoleIds(userId)
  102. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  103. if err != nil {
  104. g.Log().Error(err)
  105. return err
  106. }
  107. userPosts, err := userService.GetUserPostIds(userId)
  108. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  109. if err != nil {
  110. g.Log().Error(err)
  111. return err
  112. }
  113. userGroups, err := userService.GetUserGroupIds(userId)
  114. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  115. if err != nil {
  116. g.Log().Error(err)
  117. return err
  118. }
  119. rsp.Data = g.Map{
  120. "entity": data,
  121. "roleIds": userRoles,
  122. "postIds": userPosts,
  123. "groupIds": userGroups,
  124. }
  125. return nil
  126. }
  127. //// GetEntityByUuId 根据UUID获取用户实体信息
  128. //func (e *UserHandler) GetEntityByUuId(ctx context.Context, req *user_def.UuIdReq, rsp *comm_def.CommonMsg) error {
  129. // // 获取租户码
  130. // tenant, err := micro_srv.GetTenant(ctx)
  131. // if err != nil {
  132. // return err
  133. // }
  134. // g.Log().Info("Received UserHandler.GetEntityByUuId request @ " + tenant)
  135. // // 参数校验
  136. // if req.Uuid == "" {
  137. // return NoParamsErr
  138. // }
  139. // service, err := user.NewService(tenant)
  140. // if err != nil {
  141. // g.Log().Error(err)
  142. // return gerror.New("系统异常,请重新尝试")
  143. // }
  144. // data, err := service.GetEntityByUuId(req.Uuid)
  145. // _, err, code, msg := myerrors.CheckError(err)
  146. // if err != nil {
  147. // g.Log().Error(err)
  148. // return err
  149. // }
  150. // rsp.Code = code
  151. // rsp.Msg = msg
  152. // rsp.Data = data
  153. // return nil
  154. //}
  155. // DeleteByIds 删除 支持批量删除
  156. func (h *UserHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
  157. // 参数校验
  158. if len(req.Ids) == 0 {
  159. return NoParamsErr
  160. }
  161. userService, err := service.NewUserService(ctx)
  162. if err != nil {
  163. g.Log().Error(err)
  164. return gerror.New("系统异常,请重新尝试")
  165. }
  166. err = userService.DeleteUserByIds(ctx, req.Ids)
  167. _, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
  168. if err != nil {
  169. g.Log().Error(err)
  170. return err
  171. }
  172. return nil
  173. }
  174. //// ResetPassword 密码重置(管理员进行操作)
  175. //func (e *UserHandler) ResetPassword(ctx context.Context, req *user_def.ResetPwdReq, rsp *comm_def.CommonMsg) error {
  176. // // 获取租户码
  177. // tenant, err := micro_srv.GetTenant(ctx)
  178. // if err != nil {
  179. // return err
  180. // }
  181. // g.Log().Info("Received UserHandler.ResetPassword request @ " + tenant)
  182. // if req.Id == 0 || req.Password == "" {
  183. // return NoParamsErr
  184. // }
  185. // if err = gvalid.CheckStruct(ctx, req, nil); err != nil {
  186. // return err
  187. // }
  188. // // todo:校验用户是否有修改权限
  189. // service, err := user.NewService(tenant)
  190. // if err != nil {
  191. // g.Log().Error(err)
  192. // return gerror.New("系统异常,请重新尝试")
  193. // }
  194. // userInfo, err := micro_srv.GetUserInfo(ctx)
  195. // if err != nil {
  196. // return err
  197. // }
  198. // err = service.ResetPassword(&userInfo, req.Id, req.Password)
  199. // _, err, code, msg := myerrors.CheckError(err)
  200. // if err != nil {
  201. // g.Log().Error(err)
  202. // return err
  203. // }
  204. // rsp.Code = code
  205. // rsp.Msg = msg
  206. // return nil
  207. //}
  208. //
  209. //// SetStatus 设置用户状态
  210. //func (e *UserHandler) SetStatus(ctx context.Context, req *user_def.SetStatusReq, rsp *comm_def.CommonMsg) error {
  211. // // 获取租户码
  212. // tenant, err := micro_srv.GetTenant(ctx)
  213. // if err != nil {
  214. // return err
  215. // }
  216. // g.Log().Info("Received UserHandler.SetStatus request @ " + tenant)
  217. // // 参数校验
  218. // if req.Id == 0 {
  219. // return NoParamsErr
  220. // }
  221. // service, err := user.NewService(tenant)
  222. // if err != nil {
  223. // g.Log().Error(err)
  224. // return gerror.New("系统异常,请重新尝试")
  225. // }
  226. // userInfo, err := micro_srv.GetUserInfo(ctx)
  227. // if err != nil {
  228. // return err
  229. // }
  230. // err = service.SetStatus(&userInfo, req.Id, req.Enabled)
  231. // _, err, code, msg := myerrors.CheckError(err)
  232. // if err != nil {
  233. // g.Log().Error(err)
  234. // return err
  235. // }
  236. // rsp.Code = code
  237. // rsp.Msg = msg
  238. // return nil
  239. //}
  240. //
  241. //// GetUserBelongDept 获取部门下所属用户
  242. //func (e *UserHandler) GetUserBelongDept(ctx context.Context, req *user_def.DeptIdReq, rsp *comm_def.CommonMsg) error {
  243. // // 获取租户码
  244. // tenant, err := micro_srv.GetTenant(ctx)
  245. // if err != nil {
  246. // return err
  247. // }
  248. // g.Log().Info("Received UserHandler.GetUserBelongDept request @ " + tenant)
  249. // // 参数校验
  250. // if req.DeptId == 0 {
  251. // return NoParamsErr
  252. // }
  253. // service, err := user.NewService(tenant)
  254. // if err != nil {
  255. // g.Log().Error(err)
  256. // return gerror.New("系统异常,请重新尝试")
  257. // }
  258. //
  259. // list, err := service.GetUserBelongDept(req.DeptId)
  260. // _, err, code, msg := myerrors.CheckError(err)
  261. // if err != nil {
  262. // g.Log().Error(err)
  263. // return err
  264. // }
  265. // rsp.Code = code
  266. // rsp.Msg = msg
  267. // rsp.Data = list
  268. // return nil
  269. //}
  270. //
  271. //// GetIdByUuid 根据uuid 获取用户id
  272. //func (e *UserHandler) GetIdByUuid(ctx context.Context, req *user_def.UuIdReq, rsp *comm_def.CommonMsg) error {
  273. // // 获取租户码
  274. // tenant, err := micro_srv.GetTenant(ctx)
  275. // if err != nil {
  276. // return err
  277. // }
  278. // g.Log().Info("Received UserHandler.GetIdByUuid request @ " + tenant)
  279. // // 参数校验
  280. // if req.Uuid == "" {
  281. // return NoParamsErr
  282. // }
  283. // service, err := user.NewService(tenant)
  284. // if err != nil {
  285. // g.Log().Error(err)
  286. // return gerror.New("系统异常,请重新尝试")
  287. // }
  288. //
  289. // userId, err := service.GetIdByUuid(req.Uuid)
  290. // _, err, code, msg := myerrors.CheckError(err)
  291. // if err != nil {
  292. // g.Log().Error(err)
  293. // return err
  294. // }
  295. // rsp.Code = code
  296. // rsp.Msg = msg
  297. // rsp.Data = userId
  298. // return nil
  299. //}
  300. //
  301. //// GetDictList 获取用户列表字典项(返回字典数据形式,一般用来绑定用户的下拉列表)
  302. //func (e *UserHandler) GetDictList(ctx context.Context, req *user_def.DictSelectReq, rsp *comm_def.CommonMsg) error {
  303. // // 获取租户码
  304. // tenant, err := micro_srv.GetTenant(ctx)
  305. // if err != nil {
  306. // return err
  307. // }
  308. // g.Log().Info("Received UserHandler.GetDictList request @ " + tenant)
  309. //
  310. // service, err := user.NewService(tenant)
  311. // if flag, err, _, _ := myerrors.CheckError(err); flag {
  312. // return err
  313. // }
  314. //
  315. // list, err := service.GetDict(req)
  316. // _, err, code, msg := myerrors.CheckError(err)
  317. // if err != nil {
  318. // g.Log().Error(err)
  319. // return err
  320. // }
  321. // rsp.Code = code
  322. // rsp.Msg = msg
  323. // rsp.Data = list
  324. // return nil
  325. //}
  326. //
  327. //// GetUsersDictByDepartment 获取当前部门下用户信息列表(返回字典数据形式,一般用来绑定用户的下拉列表)
  328. //func (e *UserHandler) GetUsersDictByDepartment(ctx context.Context, req *user_def.DeptIdReq,
  329. // rsp *comm_def.CommonMsg) error {
  330. // // 获取租户码
  331. // tenant, err := micro_srv.GetTenant(ctx)
  332. // if err != nil {
  333. // return err
  334. // }
  335. // g.Log().Info("Received UserHandler.GetUsersDictByDepartment request @ " + tenant)
  336. // service, err := user.NewService(tenant)
  337. // if err != nil {
  338. // g.Log().Error(err)
  339. // return gerror.New("系统异常,请重新尝试")
  340. // }
  341. // list, err := service.GetUsersDictByDepartment(req.DeptId)
  342. // _, err, code, msg := myerrors.CheckError(err)
  343. // if err != nil {
  344. // g.Log().Error(err)
  345. // return err
  346. // }
  347. // rsp.Code = code
  348. // rsp.Msg = msg
  349. // rsp.Data = list
  350. // return nil
  351. //}
  352. //
  353. //// GetProfile 获取用户信息
  354. //func (e *UserHandler) GetProfile(ctx context.Context, numParams interface{}, rsp *comm_def.CommonMsg) error {
  355. // // 获取租户码
  356. // tenant, err := micro_srv.GetTenant(ctx)
  357. // if err != nil {
  358. // return err
  359. // }
  360. // g.Log().Info("Received UserHandler.GetProfile request @ " + tenant)
  361. //
  362. // service, err := user.NewService(tenant)
  363. // if flag, err, _, _ := myerrors.CheckError(err); flag {
  364. // return err
  365. // }
  366. // userInfo, err := micro_srv.GetUserInfo(ctx)
  367. // if err != nil {
  368. // return err
  369. // }
  370. // profile, err := service.GetProfile(int64(userInfo.Id))
  371. // _, err, code, msg := myerrors.CheckError(err)
  372. // if err != nil {
  373. // glog.Error(err)
  374. // return err
  375. // }
  376. // rsp.Code = code
  377. // rsp.Msg = msg
  378. // rsp.Data = profile
  379. // return nil
  380. //}
  381. //
  382. //// UpdateProfile 更新Profile
  383. //func (e *UserHandler) UpdateProfile(ctx context.Context, req *user_def.EditProfileEntity, rsp *comm_def.CommonMsg) error {
  384. // // 获取租户码
  385. // tenant, err := micro_srv.GetTenant(ctx)
  386. // if err != nil {
  387. // return err
  388. // }
  389. // g.Log().Info("Received UserHandler.UpdateProfile request @ " + tenant)
  390. // if req.Id == 0 {
  391. // return NoParamsErr
  392. // }
  393. // validErr := gvalid.CheckStruct(ctx, req, nil)
  394. // if validErr != nil {
  395. // return validErr.Current()
  396. // }
  397. // service, err := user.NewService(tenant)
  398. // if flag, err, _, _ := myerrors.CheckError(err); flag {
  399. // return err
  400. // }
  401. // userInfo, err := micro_srv.GetUserInfo(ctx)
  402. // if err != nil {
  403. // return err
  404. // }
  405. // err = service.UpdateProfile(&userInfo, req)
  406. // _, err, code, msg := myerrors.CheckError(err)
  407. // if err != nil {
  408. // glog.Error(err)
  409. // return err
  410. // }
  411. // rsp.Code = code
  412. // rsp.Msg = msg
  413. // return nil
  414. //}
  415. //
  416. //// SetAvatar 设置用户头像
  417. //func (e *UserHandler) SetAvatar(ctx context.Context, req *user_def.AvatarReq, rsp *comm_def.CommonMsg) error {
  418. // // 获取租户码
  419. // tenant, err := micro_srv.GetTenant(ctx)
  420. // if err != nil {
  421. // return err
  422. // }
  423. // g.Log().Info("Received UserHandler.SetAvatar request @ " + tenant)
  424. // if req.FileUrl == "" {
  425. // return NoParamsErr
  426. // }
  427. // service, err := user.NewService(tenant)
  428. // if err != nil {
  429. // g.Log().Error(err)
  430. // return gerror.New("系统异常,请重新尝试")
  431. // }
  432. // userInfo, err := micro_srv.GetUserInfo(ctx)
  433. // if err != nil {
  434. // return err
  435. // }
  436. // err = service.SetAvatar(&userInfo, req.FileUrl)
  437. // _, err, code, msg := myerrors.CheckError(err)
  438. // if err != nil {
  439. // glog.Error(err)
  440. // return err
  441. // }
  442. // rsp.Code = code
  443. // rsp.Msg = msg
  444. // return nil
  445. //}
  446. //
  447. //// ChangePassword 用户修改密码
  448. //func (e *UserHandler) ChangePassword(ctx context.Context, req *user_def.PWDReq, rsp *comm_def.CommonMsg) error {
  449. // // 获取租户码
  450. // tenant, err := micro_srv.GetTenant(ctx)
  451. // if err != nil {
  452. // return err
  453. // }
  454. // g.Log().Info("Received UserHandler.ChangePassword request @ " + tenant)
  455. // gvalidErr := gvalid.CheckStruct(ctx, req, nil)
  456. // if gvalidErr != nil {
  457. // return gvalidErr.Current()
  458. // }
  459. // service, err := user.NewService(tenant)
  460. // if flag, err, _, _ := myerrors.CheckError(err); flag {
  461. // return err
  462. // }
  463. // userInfo, err := micro_srv.GetUserInfo(ctx)
  464. // if err != nil {
  465. // return err
  466. // }
  467. // err = service.ChangePassword(&userInfo, req.OldPassword, req.NewPassword)
  468. // _, err, code, msg := myerrors.CheckError(err)
  469. // rsp.Code = code
  470. // rsp.Msg = msg
  471. // return err
  472. //}
  473. //
  474. //// GetUserByUserName 根据用户名获取用户信息
  475. //func (e *UserHandler) GetUserByUserName(ctx context.Context, req *user_def.UserNameReq, rsp *comm_def.CommonMsg) error {
  476. // // 获取租户码
  477. // tenant, err := micro_srv.GetTenant(ctx)
  478. // if err != nil {
  479. // return err
  480. // }
  481. // g.Log().Info("Received UserHandler.GetUserByUserName request @ " + tenant)
  482. // if req.UserName == "" {
  483. //
  484. // }
  485. // service, err := user.NewService(tenant)
  486. // if err != nil {
  487. // g.Log().Error(err)
  488. // return gerror.New("系统异常,请重新尝试")
  489. // }
  490. //
  491. // userEntity, err := service.GetUserByUserName(req.UserName)
  492. // _, err, code, msg := myerrors.CheckError(err)
  493. // rsp.Code = code
  494. // rsp.Msg = msg
  495. // rsp.Data = userEntity
  496. // return nil
  497. //}
  498. //
  499. //func (e *UserHandler) SendResetPasswordEmail(ctx context.Context, req *user_def.UserNameReq, rsp *comm_def.CommonMsg) error {
  500. // tenant, err := micro_srv.GetTenant(ctx)
  501. // if err != nil {
  502. // return err
  503. // }
  504. // service, err := user.NewService(tenant)
  505. // if err != nil {
  506. // g.Log().Error(err)
  507. // return gerror.New("系统异常,请重新尝试")
  508. // }
  509. // email, expired, err := service.SendResetPasswordEmail(req)
  510. // _, err, code, msg := myerrors.CheckError(err)
  511. // rsp.Code = code
  512. // rsp.Msg = msg
  513. // if err == nil {
  514. // rsp.Data = map[string]interface{}{
  515. // "email": email,
  516. // "expired": expired,
  517. // }
  518. // }
  519. // return nil
  520. //}
  521. //
  522. //func (e *UserHandler) ResetPasswordFromEmail(ctx context.Context, req *user.ResetPasswordFromEmailReq, rsp *comm_def.CommonMsg) error {
  523. // tenant, err := micro_srv.GetTenant(ctx)
  524. // if err != nil {
  525. // return err
  526. // }
  527. // service, err := user.NewService(tenant)
  528. // if err != nil {
  529. // g.Log().Error(err)
  530. // return gerror.New("系统异常,请重新尝试")
  531. // }
  532. // err = service.ResetPasswordFromEmail(ctx, req)
  533. // _, err, code, msg := myerrors.CheckError(err)
  534. // rsp.Code = code
  535. // rsp.Msg = msg
  536. // return nil
  537. //}