user.go 15 KB

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