sys_post.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package service
  2. import (
  3. "context"
  4. "dashoo.cn/micro/app/dao"
  5. "dashoo.cn/micro/app/model"
  6. "github.com/gogf/gf/errors/gerror"
  7. "github.com/gogf/gf/frame/g"
  8. )
  9. type postService struct {
  10. *contextService
  11. Dao *dao.SysPostDao
  12. }
  13. func NewPostService(ctx context.Context) (svc *postService, err error) {
  14. svc = new(postService)
  15. if svc.contextService, err = svc.Init(ctx); err != nil {
  16. return nil, err
  17. }
  18. svc.Dao = dao.NewSysPostDao(svc.Tenant)
  19. return svc, nil
  20. }
  21. func (s *postService) GetList(req *model.SysPostSearchParams) (total, page int, list []*model.SysPost, err error) {
  22. db := dao.SysPost.M
  23. if req != nil {
  24. if req.PostCode != "" {
  25. db.Where("post_code like ?", "%"+req.PostCode+"%")
  26. }
  27. if req.PostName != "" {
  28. db.Where("post_name like ?", "%"+req.PostName+"%")
  29. }
  30. if req.Status != "" {
  31. db.Where("status", req.Status)
  32. }
  33. }
  34. total, err = db.Count()
  35. if err != nil {
  36. g.Log().Error(err)
  37. err = gerror.New("获取总行数失败")
  38. }
  39. err = db.Page(req.GetPage()).Order("post_sort asc,post_id asc").Scan(&list)
  40. if err != nil {
  41. g.Log().Error(err)
  42. err = gerror.New("获取数据失败")
  43. }
  44. return
  45. }
  46. func (s *postService) GetEntity(id int64) (post *model.SysPost, err error) {
  47. err = dao.SysPost.WherePri(id).Scan(&post)
  48. return
  49. }
  50. func (s *postService) Create(params *model.SysPostAddParams) error {
  51. _, err := dao.SysPost.Insert(params)
  52. return err
  53. }
  54. func (s *postService) UpdateById(params *model.SysPostEditParams) (err error) {
  55. _, err = dao.SysPost.FieldsEx(dao.SysPost.Columns.Id, dao.SysPost.Columns.CreatedBy).
  56. WherePri(params.PostId).Update(params)
  57. return err
  58. }
  59. func (s *postService) DeleteByIds(ids []int) error {
  60. _, err := dao.SysPost.Where(dao.SysPost.Columns.Id+" in(?)", ids).Delete()
  61. return err
  62. }