user.go 15 KB

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