sys_post.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /*
  2. * @desc:岗位管理
  3. * @company:云南奇讯科技有限公司
  4. * @Author: yixiaohu<yxh669@qq.com>
  5. * @Date: 2022/9/26 15:28
  6. */
  7. package sysPost
  8. import (
  9. "context"
  10. "github.com/gogf/gf/v2/frame/g"
  11. "github.com/gogf/gf/v2/util/gconv"
  12. "github.com/tiger1103/gfast/v3/api/v1/system"
  13. "github.com/tiger1103/gfast/v3/internal/app/system/consts"
  14. "github.com/tiger1103/gfast/v3/internal/app/system/dao"
  15. "github.com/tiger1103/gfast/v3/internal/app/system/model/do"
  16. "github.com/tiger1103/gfast/v3/internal/app/system/model/entity"
  17. "github.com/tiger1103/gfast/v3/internal/app/system/service"
  18. "github.com/tiger1103/gfast/v3/library/liberr"
  19. )
  20. func init() {
  21. service.RegisterSysPost(New())
  22. }
  23. func New() *sSysPost {
  24. return &sSysPost{}
  25. }
  26. type sSysPost struct {
  27. }
  28. // List 岗位列表
  29. func (s *sSysPost) List(ctx context.Context, req *system.PostSearchReq) (res *system.PostSearchRes, err error) {
  30. res = new(system.PostSearchRes)
  31. err = g.Try(ctx, func(ctx context.Context) {
  32. m := dao.SysPost.Ctx(ctx)
  33. if req != nil {
  34. if req.PostCode != "" {
  35. m = m.Where("post_code like ?", "%"+req.PostCode+"%")
  36. }
  37. if req.PostName != "" {
  38. m = m.Where("post_name like ?", "%"+req.PostName+"%")
  39. }
  40. if req.Status != "" {
  41. m = m.Where("status", gconv.Uint(req.Status))
  42. }
  43. }
  44. res.Total, err = m.Count()
  45. liberr.ErrIsNil(ctx, err, "获取岗位失败")
  46. if req.PageNum == 0 {
  47. req.PageNum = 1
  48. }
  49. if req.PageSize == 0 {
  50. req.PageSize = consts.PageSize
  51. }
  52. res.CurrentPage = req.PageNum
  53. err = m.Page(req.PageNum, req.PageSize).Order("post_sort asc,post_id asc").Scan(&res.PostList)
  54. liberr.ErrIsNil(ctx, err, "获取岗位失败")
  55. })
  56. return
  57. }
  58. func (s *sSysPost) Add(ctx context.Context, req *system.PostAddReq) (err error) {
  59. err = g.Try(ctx, func(ctx context.Context) {
  60. _, err = dao.SysPost.Ctx(ctx).Insert(do.SysPost{
  61. PostCode: req.PostCode,
  62. PostName: req.PostName,
  63. PostSort: req.PostSort,
  64. Status: req.Status,
  65. Remark: req.Remark,
  66. CreatedBy: service.Context().GetUserId(ctx),
  67. })
  68. liberr.ErrIsNil(ctx, err, "添加岗位失败")
  69. })
  70. return
  71. }
  72. func (s *sSysPost) Edit(ctx context.Context, req *system.PostEditReq) (err error) {
  73. err = g.Try(ctx, func(ctx context.Context) {
  74. _, err = dao.SysPost.Ctx(ctx).WherePri(req.PostId).Update(do.SysPost{
  75. PostCode: req.PostCode,
  76. PostName: req.PostName,
  77. PostSort: req.PostSort,
  78. Status: req.Status,
  79. Remark: req.Remark,
  80. UpdatedBy: service.Context().GetUserId(ctx),
  81. })
  82. liberr.ErrIsNil(ctx, err, "修改岗位失败")
  83. })
  84. return
  85. }
  86. func (s *sSysPost) Delete(ctx context.Context, ids []int) (err error) {
  87. err = g.Try(ctx, func(ctx context.Context) {
  88. _, err = dao.SysPost.Ctx(ctx).Where(dao.SysPost.Columns().PostId+" in(?)", ids).Delete()
  89. liberr.ErrIsNil(ctx, err, "删除失败")
  90. })
  91. return
  92. }
  93. // GetUsedPost 获取正常状态的岗位
  94. func (s *sSysPost) GetUsedPost(ctx context.Context) (list []*entity.SysPost, err error) {
  95. err = g.Try(ctx, func(ctx context.Context) {
  96. err = dao.SysPost.Ctx(ctx).Where(dao.SysPost.Columns().Status, 1).
  97. Order(dao.SysPost.Columns().PostSort + " ASC, " + dao.SysPost.Columns().PostId + " ASC ").Scan(&list)
  98. liberr.ErrIsNil(ctx, err, "获取岗位数据失败")
  99. })
  100. return
  101. }