diff --git a/internal/db/models/origin_dao.go b/internal/db/models/origin_dao.go index b9786022..986766fe 100644 --- a/internal/db/models/origin_dao.go +++ b/internal/db/models/origin_dao.go @@ -305,6 +305,19 @@ func (this *OriginDAO) UpdateOrigin(tx *dbs.Tx, return this.NotifyUpdate(tx, originId) } +// UpdateOriginIsOn 修改源站是否启用 +func (this *OriginDAO) UpdateOriginIsOn(tx *dbs.Tx, originId int64, isOn bool) error { + err := this.Query(tx). + Pk(originId). + Set("isOn", isOn). + UpdateQuickly() + if err != nil { + return err + } + + return this.NotifyUpdate(tx, originId) +} + // CloneOrigin 复制源站 func (this *OriginDAO) CloneOrigin(tx *dbs.Tx, fromOriginId int64) (newOriginId int64, err error) { if fromOriginId <= 0 { diff --git a/internal/rpc/services/service_origin.go b/internal/rpc/services/service_origin.go index 593974b6..ee969a2d 100644 --- a/internal/rpc/services/service_origin.go +++ b/internal/rpc/services/service_origin.go @@ -248,3 +248,27 @@ func (this *OriginService) FindEnabledOriginConfig(ctx context.Context, req *pb. return &pb.FindEnabledOriginConfigResponse{OriginJSON: configData}, nil } + +// UpdateOriginIsOn 修改源站是否启用 +func (this *OriginService) UpdateOriginIsOn(ctx context.Context, req *pb.UpdateOriginIsOnRequest) (*pb.RPCSuccess, error) { + _, userId, err := this.ValidateAdminAndUser(ctx, true) + if err != nil { + return nil, err + } + + var tx = this.NullTx() + + if userId > 0 { + err = models.SharedOriginDAO.CheckUserOrigin(tx, userId, req.OriginId) + if err != nil { + return nil, err + } + } + + err = models.SharedOriginDAO.UpdateOriginIsOn(tx, req.OriginId, req.IsOn) + if err != nil { + return nil, err + } + + return this.Success() +}