service_deleteapi.go 1.1 KB

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