user.go 14 KB

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