service_updateused.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  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"
  7. "github.com/xinliangnote/go-gin-api/internal/repository/redis"
  8. "gorm.io/gorm"
  9. )
  10. func (s *service) UpdateUsed(ctx core.Context, id int32, used int32) (err error) {
  11. authorizedInfo, err := authorized.NewQueryBuilder().
  12. WhereIsDeleted(mysql.EqualPredicate, -1).
  13. WhereId(mysql.EqualPredicate, id).
  14. First(s.db.GetDbR().WithContext(ctx.RequestContext()))
  15. if err == gorm.ErrRecordNotFound {
  16. return nil
  17. }
  18. data := map[string]interface{}{
  19. "is_used": used,
  20. "updated_user": ctx.SessionUserInfo().UserName,
  21. }
  22. qb := authorized.NewQueryBuilder()
  23. qb.WhereId(mysql.EqualPredicate, id)
  24. err = qb.Updates(s.db.GetDbW().WithContext(ctx.RequestContext()), data)
  25. if err != nil {
  26. return err
  27. }
  28. s.cache.Del(configs.RedisKeyPrefixSignature+authorizedInfo.BusinessKey, redis.WithTrace(ctx.Trace()))
  29. return
  30. }