user.go 15 KB

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