package logic import ( "context" "errors" plantModel "sundynix-micro-go/app/plant/model" "sundynix-micro-go/app/plant/rpc/internal/svc" "sundynix-micro-go/app/plant/rpc/plant" "github.com/zeromicro/go-zero/core/logx" ) type DeleteWikiVectorLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewDeleteWikiVectorLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteWikiVectorLogic { return &DeleteWikiVectorLogic{ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx)} } func (l *DeleteWikiVectorLogic) DeleteWikiVector(in *plant.SyncWikiVectorReq) (*plant.CommonResp, error) { dbCfg, err := getActiveAiConfig(l.svcCtx.DB) if err != nil { return nil, err } if dbCfg.QdrantUrl == "" || dbCfg.QdrantCollection == "" { return nil, errors.New("AI/RAG 未配置 QdrantUrl 或 QdrantCollection") } if err := deleteWikiVector(l.ctx, dbCfg, in.WikiId); err != nil { return nil, err } if err := l.svcCtx.DB.Model(&plantModel.Wiki{}).Where("id = ?", in.WikiId).Update("is_vector_synced", false).Error; err != nil { return nil, err } return &plant.CommonResp{Code: 0, Msg: "ok"}, nil }