mirror of
https://github.com/ManyakRus/crud_generator.git
synced 2025-03-05 03:07:06 +02:00
сделал CreateFiles_FindModelBy()
This commit is contained in:
parent
c2ae6f4f0e
commit
f9e681a82c
@ -0,0 +1,6 @@
|
||||
package lawsuit_status_types
|
||||
|
||||
import (
|
||||
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/db/db_constants"
|
||||
)
|
||||
|
@ -0,0 +1,14 @@
|
||||
// FindModelBy_FieldNamesWithUnderline - находит запись по FieldNamesWithPlus
|
||||
func (m *LawsuitStatusType) FindModelBy_FieldNamesWithUnderline() (foreign_package.ForeignModel, error) {
|
||||
Otvet := foreign_package.ForeignModel{}
|
||||
var err error
|
||||
|
||||
if Crud_manual_LawsuitStatusType == nil {
|
||||
return Otvet, db_constants.ErrorCrudIsNotInit
|
||||
}
|
||||
|
||||
Otvet, err = Crud_LawsuitStatusType.FindModelBy_FieldNamesWithUnderline(m)
|
||||
|
||||
return Otvet, err
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
|
||||
}
|
||||
|
||||
//создание файлов
|
||||
err = CreateFiles(Table1)
|
||||
err = CreateFiles(MapAll, Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
@ -33,29 +33,36 @@ func CreateAllFiles(MapAll map[string]*types.Table) error {
|
||||
log.Error("CreateFiles() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
//
|
||||
err = CreateFiles_FindBy(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_FindBy() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
//FindMassBy
|
||||
err = CreateFiles_FindMassBy(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_FindMassBy() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
//ReadAll
|
||||
err = CreateFiles_ReadAll(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_ReadAll() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
err = CreateFiles_FindBy(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_FindBy() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
//FindMassBy
|
||||
err = CreateFiles_FindMassBy(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_FindMassBy() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
//ReadAll
|
||||
err = CreateFiles_ReadAll(Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_ReadAll() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
//FindModelBy
|
||||
err = CreateFiles_FindModelBy(MapAll, Table1)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_FindModelBy() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return err
|
||||
|
@ -15,7 +15,7 @@ import (
|
||||
)
|
||||
|
||||
// CreateFiles - создаёт 1 файл в папке model
|
||||
func CreateFiles(Table1 *types.Table) error {
|
||||
func CreateFiles(MapAll map[string]*types.Table, Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
@ -41,7 +41,7 @@ func CreateFiles(Table1 *types.Table) error {
|
||||
|
||||
// создание файла crud
|
||||
if config.Settings.NEED_CREATE_MODEL_CRUD == true {
|
||||
err = CreateFiles_Model_crud(Table1, DirTemplatesModel, DirReadyModel)
|
||||
err = CreateFiles_Model_crud(MapAll, Table1, DirTemplatesModel, DirReadyModel)
|
||||
if err != nil {
|
||||
log.Error("CreateFiles_Model_crud() table: ", Table1.Name, " error: ", err)
|
||||
return err
|
||||
@ -116,7 +116,7 @@ func CreateFiles_Model_struct(Table1 *types.Table, DirTemplatesModel, DirReadyMo
|
||||
}
|
||||
|
||||
// CreateFiles_Model_crud - создаёт 1 файл с crud операциями
|
||||
func CreateFiles_Model_crud(Table1 *types.Table, DirTemplatesModel, DirReadyModel string) error {
|
||||
func CreateFiles_Model_crud(MapAll map[string]*types.Table, Table1 *types.Table, DirTemplatesModel, DirReadyModel string) error {
|
||||
var err error
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
@ -180,6 +180,9 @@ func CreateFiles_Model_crud(Table1 *types.Table, DirTemplatesModel, DirReadyMode
|
||||
//
|
||||
TextModel = AddInterfaces_FindMassBy(TextModel, Table1)
|
||||
|
||||
//
|
||||
TextModel = AddInterfaces_FindModelBy(MapAll, TextModel, Table1)
|
||||
|
||||
//
|
||||
TextModel = AddInterfaces_ReadAll(TextModel, Table1)
|
||||
}
|
||||
|
@ -0,0 +1,203 @@
|
||||
package entities_tables
|
||||
|
||||
import (
|
||||
"github.com/ManyakRus/crud_generator/internal/config"
|
||||
"github.com/ManyakRus/crud_generator/internal/create_files"
|
||||
"github.com/ManyakRus/crud_generator/internal/types"
|
||||
"github.com/ManyakRus/starter/log"
|
||||
"github.com/ManyakRus/starter/micro"
|
||||
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// CreateFiles_FindModelBy - создаёт 1 файл в папке crud
|
||||
func CreateFiles_FindModelBy(MapAll map[string]*types.Table, Table1 *types.Table) error {
|
||||
var err error
|
||||
|
||||
if len(types.MassFindModelBy) == 0 {
|
||||
return err
|
||||
}
|
||||
|
||||
//чтение файлов
|
||||
DirBin := micro.ProgramDir_bin()
|
||||
DirTemplates := DirBin + config.Settings.TEMPLATE_FOLDERNAME + micro.SeparatorFile()
|
||||
DirReady := DirBin + config.Settings.READY_FOLDERNAME + micro.SeparatorFile()
|
||||
DirTemplatesModel := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_MODEL + micro.SeparatorFile()
|
||||
DirReadyModel := DirReady + config.Settings.TEMPLATE_FOLDERNAME_MODEL + micro.SeparatorFile()
|
||||
|
||||
FilenameTemplateModel := DirTemplatesModel + config.Settings.TEMPLATES_MODEL_FINDMODELBY_FILENAME
|
||||
TableName := strings.ToLower(Table1.Name)
|
||||
DirReadyTable := DirReadyModel + TableName
|
||||
FilenameReady := DirReadyTable + micro.SeparatorFile() + config.Settings.PREFIX_MODEL + TableName + "_findmodelby.go"
|
||||
|
||||
//создадим каталог
|
||||
ok, err := micro.FileExists(DirReadyTable)
|
||||
if ok == false {
|
||||
err = os.MkdirAll(DirReadyTable, 0777)
|
||||
if err != nil {
|
||||
log.Panic("Mkdir() ", DirReadyTable, " error: ", err)
|
||||
}
|
||||
}
|
||||
|
||||
//загрузим шаблон файла
|
||||
bytes, err := os.ReadFile(FilenameTemplateModel)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateModel, " error: ", err)
|
||||
}
|
||||
TextModel := string(bytes)
|
||||
|
||||
//загрузим шаблон файла функции
|
||||
FilenameTemplateModelFunction := DirTemplatesModel + config.Settings.TEMPLATES_MODEL_FINDMODELBY_FUNCTION_FILENAME
|
||||
bytes, err = os.ReadFile(FilenameTemplateModelFunction)
|
||||
if err != nil {
|
||||
log.Panic("ReadFile() ", FilenameTemplateModelFunction, " error: ", err)
|
||||
}
|
||||
TextTemplatedFunction := string(bytes)
|
||||
|
||||
//заменим имя пакета на новое
|
||||
TextModel = create_files.Replace_PackageName(TextModel, DirReadyTable)
|
||||
|
||||
//ModelName := Table1.NameGo
|
||||
//заменим импорты
|
||||
if config.Settings.USE_DEFAULT_TEMPLATE == true {
|
||||
TextModel = create_files.Delete_TemplateRepositoryImports(TextModel)
|
||||
|
||||
//ModelTableURL := create_files.Find_ModelTableURL(TableName)
|
||||
//TextModel = create_files.AddImport(TextModel, ModelTableURL)
|
||||
|
||||
ConstantsURL := create_files.Find_DBConstantsURL()
|
||||
TextModel = create_files.AddImport(TextModel, ConstantsURL)
|
||||
|
||||
}
|
||||
|
||||
//создание функций
|
||||
TextModelFunc := CreateFiles_FindModelBy_Table(MapAll, Table1, &TextModel, TextTemplatedFunction)
|
||||
if TextModelFunc == "" {
|
||||
return err
|
||||
}
|
||||
TextModel = TextModel + TextModelFunc
|
||||
|
||||
//создание текста
|
||||
TextModel = create_files.Replace_TemplateModel_to_Model(TextModel, Table1.NameGo)
|
||||
TextModel = create_files.Replace_TemplateTableName_to_TableName(TextModel, Table1.Name)
|
||||
TextModel = create_files.AddText_ModuleGenerated(TextModel)
|
||||
|
||||
//TextModel = strings.ReplaceAll(TextModel, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
|
||||
//TextModel = strings.ReplaceAll(TextModel, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
|
||||
//TextModel = config.Settings.TEXT_MODULE_GENERATED + TextModel
|
||||
|
||||
//замена импортов на новые URL
|
||||
TextModel = create_files.Replace_RepositoryImportsURL(TextModel)
|
||||
|
||||
//uuid
|
||||
TextModel = create_files.CheckAndAdd_ImportUUID_FromText(TextModel)
|
||||
|
||||
//alias
|
||||
TextModel = create_files.CheckAndAdd_ImportAlias(TextModel)
|
||||
|
||||
//удаление пустого импорта
|
||||
TextModel = create_files.Delete_EmptyImport(TextModel)
|
||||
|
||||
//удаление пустых строк
|
||||
TextModel = create_files.Delete_EmptyLines(TextModel)
|
||||
|
||||
//запись файла
|
||||
err = os.WriteFile(FilenameReady, []byte(TextModel), config.Settings.FILE_PERMISSIONS)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// CreateFiles_FindModelBy_Table - создаёт текст всех функций
|
||||
func CreateFiles_FindModelBy_Table(MapAll map[string]*types.Table, Table1 *types.Table, TextModel *string, TextTemplateFunction string) string {
|
||||
Otvet := ""
|
||||
|
||||
for _, TableColumns1 := range types.MassFindModelBy {
|
||||
if TableColumns1.Table != Table1 {
|
||||
continue
|
||||
}
|
||||
Otvet1 := CreateFiles_FindModelBy_Table1(MapAll, Table1, TextModel, TextTemplateFunction, TableColumns1.Column)
|
||||
Otvet = Otvet + Otvet1
|
||||
}
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// CreateFiles_FindModelBy_Table1 - создаёт текст всех функций
|
||||
func CreateFiles_FindModelBy_Table1(MapAll map[string]*types.Table, Table1 *types.Table, TextModel *string, TextTemplateFunction string, Column1 *types.Column) string {
|
||||
Otvet := TextTemplateFunction
|
||||
|
||||
//
|
||||
FieldNamesWithUnderline := ""
|
||||
FieldNamesWithComma := ""
|
||||
|
||||
//
|
||||
Underline := ""
|
||||
Plus := ""
|
||||
FieldNamesWithUnderline = FieldNamesWithUnderline + Underline + Column1.NameGo
|
||||
FieldNamesWithComma = FieldNamesWithComma + Plus + Column1.NameGo
|
||||
Underline = "_"
|
||||
Plus = "+"
|
||||
Otvet = strings.ReplaceAll(Otvet, "FieldNamesWithUnderline", FieldNamesWithUnderline)
|
||||
Otvet = strings.ReplaceAll(Otvet, "FieldNamesWithPlus", FieldNamesWithComma)
|
||||
|
||||
//
|
||||
ForeignTableName := Column1.TableKey
|
||||
ForeignTable, ok := MapAll[ForeignTableName]
|
||||
if ok == false {
|
||||
log.Panic("Table not found: ", ForeignTableName)
|
||||
}
|
||||
|
||||
//
|
||||
TextFindModelBy := "Find" + ForeignTable.NameGo_translit + "By"
|
||||
Otvet = strings.ReplaceAll(Otvet, "FindModelBy", TextFindModelBy)
|
||||
|
||||
//
|
||||
TextForeignPackage := ForeignTable.Name
|
||||
Otvet = strings.ReplaceAll(Otvet, "foreign_package", TextForeignPackage)
|
||||
|
||||
//
|
||||
TextForeignModel := ForeignTable.NameGo
|
||||
Otvet = strings.ReplaceAll(Otvet, "ForeignModel", TextForeignModel)
|
||||
|
||||
//
|
||||
ModelTableURL := create_files.Find_ModelTableURL(ForeignTableName)
|
||||
*TextModel = create_files.AddImport(*TextModel, ModelTableURL)
|
||||
|
||||
return Otvet
|
||||
}
|
||||
|
||||
// AddInterfaces_FindModelBy - добавляет функцию внутрь интерфейса
|
||||
func AddInterfaces_FindModelBy(MapAll map[string]*types.Table, TextModel string, Table1 *types.Table) string {
|
||||
Otvet := TextModel
|
||||
|
||||
if len(types.MassFindModelBy) == 0 {
|
||||
return Otvet
|
||||
}
|
||||
|
||||
TextFunc := ""
|
||||
for _, TableColumns1 := range types.MassFindModelBy {
|
||||
if TableColumns1.Table != Table1 {
|
||||
continue
|
||||
}
|
||||
|
||||
Column1 := TableColumns1.Column
|
||||
|
||||
//
|
||||
ForeignTableName := Column1.TableKey
|
||||
ForeignTable, ok := MapAll[ForeignTableName]
|
||||
if ok == false {
|
||||
log.Panic("Table not found: ", ForeignTableName)
|
||||
}
|
||||
|
||||
FieldNamesWithUnderline := ""
|
||||
FieldNamesWithUnderline = FieldNamesWithUnderline + Column1.NameGo
|
||||
TextFunc1 := "\n\tFind" + ForeignTable.NameGo + "By_" + FieldNamesWithUnderline + "(*" + Table1.NameGo + ") (" + ForeignTable.Name + "." + ForeignTable.NameGo + ",error)"
|
||||
TextFunc = TextFunc + TextFunc1
|
||||
|
||||
}
|
||||
|
||||
Otvet = create_files.AddInterfaceFunction(Otvet, TextFunc)
|
||||
|
||||
return Otvet
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user