1
0
mirror of https://github.com/ManyakRus/crud_generator.git synced 2025-01-01 13:21:20 +02:00

сделал model_crud.go_

This commit is contained in:
Nikitin Aleksandr 2023-11-08 15:15:52 +03:00
parent e8a16a50f0
commit b553009346
5 changed files with 124 additions and 19 deletions

View File

@ -0,0 +1,13 @@
package lawsuit_status_types
import (
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities"
)
// LawsuitStatusType
type LawsuitStatusType struct {
entities.CommonStruct
entities.NameStruct
Code string `json:"code" gorm:"column:code;default:0"`
}

View File

@ -4,7 +4,6 @@ import (
"encoding/json"
"github.com/vmihailenco/msgpack/v5"
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/functions/calc_struct_version"
"gitlab.aescorp.ru/dsp_dev/claim/sync_service/pkg/object_model/entities"
"reflect"
)
@ -14,13 +13,6 @@ var versionLawsuitStatusType uint32
// crud_LawsuitStatusType - объект контроллер crud операций
var crud_LawsuitStatusType ICrud_LawsuitStatusType
// LawsuitStatusType
type LawsuitStatusType struct {
entities.CommonStruct
entities.NameStruct
Code string `json:"code" gorm:"column:code;default:0"`
}
type ICrud_LawsuitStatusType interface {
Read(*LawsuitStatusType) error
Save(*LawsuitStatusType) error

View File

@ -27,6 +27,8 @@ type SettingsINI struct {
NEED_CRUD bool
NEED_GRPC bool
NEED_NRPC bool
NEED_CREATE_MODEL_STRUCT bool
NEED_CREATE_MODEL_CRUD bool
SERVICE_NAME string
SERVICE_REPOSITORY_URL string
TEXT_TEMPLATE_MODEL string
@ -38,6 +40,7 @@ type SettingsINI struct {
USE_DEFAULT_TEMPLATE bool
REPOSITORY_URL_ALIAS string
PREFIX_SERVER_GRPC string
COMMENT_MODEL_STRUCT string
}
// FillSettings загружает переменные окружения в структуру из переменных окружения
@ -75,6 +78,12 @@ func FillSettings() {
sNEED_NRPC := os.Getenv("NEED_NRPC")
Settings.NEED_NRPC = BoolFromString(sNEED_NRPC)
sNEED_CREATE_MODEL_STRUCT := os.Getenv("NEED_CREATE_MODEL_STRUCT")
Settings.NEED_CREATE_MODEL_STRUCT = BoolFromString(sNEED_CREATE_MODEL_STRUCT)
sNEED_CREATE_MODEL_CRUD := os.Getenv("NEED_CREATE_MODEL_CRUD")
Settings.NEED_CREATE_MODEL_CRUD = BoolFromString(sNEED_CREATE_MODEL_CRUD)
Settings.SERVICE_NAME = os.Getenv("SERVICE_NAME")
Settings.READY_FOLDERNAME = strings.ToLower(Settings.SERVICE_NAME)
@ -95,6 +104,7 @@ func FillSettings() {
HAS_IS_DELETED := BoolFromString(sHAS_IS_DELETED)
Settings.HAS_IS_DELETED = HAS_IS_DELETED
Settings.COMMENT_MODEL_STRUCT = os.Getenv("COMMENT_MODEL_STRUCT")
}
// CurrentDirectory - возвращает текущую директорию ОС

View File

@ -355,7 +355,7 @@ func FindHasTimeColumn(Table1 *types.Table) bool {
}
// AddImportTime - добавляет покет в секцию Import, если его там нет
func AddImportTime(TextModel string, Table1 *types.Table) string {
func AddImportTime(TextModel string) string {
Otvet := TextModel
//если уже есть импорт
@ -364,11 +364,6 @@ func AddImportTime(TextModel string, Table1 *types.Table) string {
return Otvet
}
HasTimeColumn := FindHasTimeColumn(Table1)
if HasTimeColumn == false {
return Otvet
}
//
pos1 = strings.Index(Otvet, "import (")
if pos1 < 0 {
@ -380,3 +375,31 @@ func AddImportTime(TextModel string, Table1 *types.Table) string {
return Otvet
}
// CheckAndAddImportTime_FromTable - добавляет пакет "time" в секцию Import, если его там нет
func CheckAndAddImportTime_FromTable(TextModel string, Table1 *types.Table) string {
Otvet := TextModel
HasTimeColumn := FindHasTimeColumn(Table1)
if HasTimeColumn == false {
return Otvet
}
Otvet = AddImportTime(Otvet)
return Otvet
}
// CheckAndAddImportTime_FromText - добавляет пакет "time" в секцию Import, если его там нет
func CheckAndAddImportTime_FromText(Text string) string {
Otvet := Text
pos1 := strings.Index(Text, " time.")
if pos1 < 0 {
return Otvet
}
Otvet = AddImportTime(Otvet)
return Otvet
}

View File

@ -40,9 +40,6 @@ func CreateFiles(Table1 *types.Table) error {
DirTemplatesModel := DirTemplates + config.Settings.TEMPLATE_FOLDERNAME_MODEL + micro.SeparatorFile()
DirReadyModel := DirReady + config.Settings.TEMPLATE_FOLDERNAME_MODEL + micro.SeparatorFile() + TableName + micro.SeparatorFile()
FilenameTemplateModel := DirTemplatesModel + "entities.go_"
FilenameReadyModel := DirReadyModel + TableName + ".go"
//создадим каталог
ok, err := micro.FileExists(DirReadyModel)
if ok == false {
@ -52,6 +49,36 @@ func CreateFiles(Table1 *types.Table) error {
}
}
// создание файла struct
if config.Settings.NEED_CREATE_MODEL_STRUCT == true {
err = CreateFilesModel_struct(Table1, DirTemplatesModel, DirReadyModel)
if err != nil {
log.Error("CreateFilesModel_struct() table: ", Table1.Name, " error: ", err)
return err
}
}
// создание файла crud
if config.Settings.NEED_CREATE_MODEL_CRUD == true {
err = CreateFilesModel_crud(Table1, DirTemplatesModel, DirReadyModel)
if err != nil {
log.Error("CreateFilesModel_struct() table: ", Table1.Name, " error: ", err)
return err
}
}
return err
}
// CreateFilesModel_struct - создаёт 1 файл со структурой в папке model
func CreateFilesModel_struct(Table1 *types.Table, DirTemplatesModel, DirReadyModel string) error {
var err error
var ModelName string
TableName := strings.ToLower(Table1.Name)
FilenameTemplateModel := DirTemplatesModel + "model.go_"
FilenameReadyModel := DirReadyModel + TableName + ".go"
//чтение файла шаблона
bytes, err := os.ReadFile(FilenameTemplateModel)
if err != nil {
log.Panic("ReadFile() ", FilenameTemplateModel, " error: ", err)
@ -73,7 +100,46 @@ func CreateFiles(Table1 *types.Table) error {
}
TextModel = DeleteFuncFind_byExtID(TextModel, ModelName, Table1)
TextModel = create_files.AddImportTime(TextModel, Table1)
TextModel = create_files.CheckAndAddImportTime_FromTable(TextModel, Table1)
TextModel = create_files.DeleteImportModel(TextModel)
//запись файла
err = os.WriteFile(FilenameReadyModel, []byte(TextModel), constants.FILE_PERMISSIONS)
return err
}
// CreateFilesModel_crud - создаёт 1 файл с crud операциями
func CreateFilesModel_crud(Table1 *types.Table, DirTemplatesModel, DirReadyModel string) error {
var err error
ModelName := Table1.NameGo
TableName := strings.ToLower(Table1.Name)
FilenameTemplateModel := DirTemplatesModel + "model_crud.go_"
FilenameReadyModel := DirReadyModel + TableName + "_crud.go"
//чтение файла шаблона
bytes, err := os.ReadFile(FilenameTemplateModel)
if err != nil {
log.Panic("ReadFile() ", FilenameTemplateModel, " error: ", err)
}
TextModel := string(bytes)
//создание текста
//
TextModel = strings.ReplaceAll(TextModel, config.Settings.TEXT_TEMPLATE_MODEL, ModelName)
TextModel = strings.ReplaceAll(TextModel, config.Settings.TEXT_TEMPLATE_TABLENAME, Table1.Name)
TextModel = constants.TEXT_GENERATED + TextModel
if config.Settings.HAS_IS_DELETED == true {
TextModel = DeleteFuncDelete(TextModel, ModelName, Table1)
TextModel = DeleteFuncRestore(TextModel, ModelName, Table1)
}
TextModel = DeleteFuncFind_byExtID(TextModel, ModelName, Table1)
TextModel = create_files.CheckAndAddImportTime_FromText(TextModel)
TextModel = create_files.DeleteImportModel(TextModel)
//запись файла
@ -92,8 +158,9 @@ func FindTextModelStruct(TextModel string, Table1 *types.Table) (string, string,
ModelName = create_files.FindSingularName(TableName)
ModelName = create_files.FormatName(ModelName)
Table1.NameGo = ModelName
COMMENT_MODEL_STRUCT := config.Settings.COMMENT_MODEL_STRUCT
Otvet = `// ` + ModelName + ` - model from table ` + TableName + `: ` + Table1.Comment + `
Otvet = `// ` + ModelName + ` - ` + COMMENT_MODEL_STRUCT + TableName + `: ` + Table1.Comment + `
type ` + ModelName + ` struct {
`