user.go 15 KB

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