Files
go-gin-api/internal/services/authorized/service_deleteapi.go
T
新亮 4c37a7e6b5 feature(1.2.8): swagger 接口文档新增 Security
- 将 middleware 命名为 interceptor
- 将 deploy 命名为 deployments
- 移除 pkg/errno
- 使用 proposal 目录
- 优化代码
2021-11-28 13:25:27 +08:00

39 lines
1.1 KiB
Go

package authorized
import (
"github.com/xinliangnote/go-gin-api/configs"
"github.com/xinliangnote/go-gin-api/internal/pkg/core"
"github.com/xinliangnote/go-gin-api/internal/repository/mysql"
"github.com/xinliangnote/go-gin-api/internal/repository/mysql/authorized_api"
"github.com/xinliangnote/go-gin-api/internal/repository/redis"
"gorm.io/gorm"
)
func (s *service) DeleteAPI(ctx core.Context, id int32) (err error) {
// 先查询 id 是否存在
authorizedApiInfo, err := authorized_api.NewQueryBuilder().
WhereIsDeleted(mysql.EqualPredicate, -1).
WhereId(mysql.EqualPredicate, id).
First(s.db.GetDbR().WithContext(ctx.RequestContext()))
if err == gorm.ErrRecordNotFound {
return nil
}
data := map[string]interface{}{
"is_deleted": 1,
"updated_user": ctx.SessionUserInfo().UserName,
}
qb := authorized_api.NewQueryBuilder()
qb.WhereId(mysql.EqualPredicate, id)
err = qb.Updates(s.db.GetDbW().WithContext(ctx.RequestContext()), data)
if err != nil {
return err
}
s.cache.Del(configs.RedisKeyPrefixSignature+authorizedApiInfo.BusinessKey, redis.WithTrace(ctx.Trace()))
return
}