pg_project_module_files_dao.go 970 字节
package dao

import (
	"fmt"
	"gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/transaction"
	"strings"
)

type ProjectModuleFilesDao struct {
	transactionContext *transaction.TransactionContext
}

func (dao *ProjectModuleFilesDao) UpdateFilesPath(srcProjectId, srcVersionId int64, oldPath, newPath string) error {
	tx := dao.transactionContext.PgTx
	_, err := tx.Exec(fmt.Sprintf(`update  project_module_files set "path"= regexp_replace("path",'^%v',?) where project_module_id=? and project_module_version_id=? and "path" like '%%%v%%'`, oldPath, strings.Replace(oldPath, "\\", "\\\\", -1)),
		newPath, srcProjectId, srcVersionId)
	return err
}

func NewProjectModuleFilesDao(transactionContext *transaction.TransactionContext) (*ProjectModuleFilesDao, error) {
	if transactionContext == nil {
		return nil, fmt.Errorf("transactionContext参数不能为nil")
	} else {
		return &ProjectModuleFilesDao{
			transactionContext: transactionContext,
		}, nil
	}
}