service_deleteaction.go 875 B

1234567891011121314151617181920212223242526272829303132333435
  1. package menu
  2. import (
  3. "github.com/xinliangnote/go-gin-api/internal/pkg/core"
  4. "github.com/xinliangnote/go-gin-api/internal/repository/mysql"
  5. "github.com/xinliangnote/go-gin-api/internal/repository/mysql/menu_action"
  6. "gorm.io/gorm"
  7. )
  8. func (s *service) DeleteAction(ctx core.Context, id int32) (err error) {
  9. // 先查询 id 是否存在
  10. _, err = menu_action.NewQueryBuilder().
  11. WhereIsDeleted(mysql.EqualPredicate, -1).
  12. WhereId(mysql.EqualPredicate, id).
  13. First(s.db.GetDbR().WithContext(ctx.RequestContext()))
  14. if err == gorm.ErrRecordNotFound {
  15. return nil
  16. }
  17. data := map[string]interface{}{
  18. "is_deleted": 1,
  19. "updated_user": ctx.SessionUserInfo().UserName,
  20. }
  21. qb := menu_action.NewQueryBuilder()
  22. qb.WhereId(mysql.EqualPredicate, id)
  23. err = qb.Updates(s.db.GetDbW().WithContext(ctx.RequestContext()), data)
  24. if err != nil {
  25. return err
  26. }
  27. return
  28. }