|
|
@@ -1,6 +1,7 @@
|
|
|
package domain
|
|
|
|
|
|
import (
|
|
|
+ "git.sxidc.com/go-framework/baize/framework/core/tag/check"
|
|
|
"git.sxidc.com/go-tools/utils/reflectutils"
|
|
|
"git.sxidc.com/go-tools/utils/strutils"
|
|
|
"git.sxidc.com/go-tools/utils/template"
|
|
|
@@ -19,6 +20,24 @@ func HasField(object Object, fieldName string) bool {
|
|
|
return hasField(object, fieldName)
|
|
|
}
|
|
|
|
|
|
+func CheckField(result check.Result, domainCNName string, fieldName string) error {
|
|
|
+ err := result.CheckFields(fieldName)
|
|
|
+ if err != nil {
|
|
|
+ return errors.New(domainCNName + ": " + err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+func CheckFields(result check.Result, domainCNName string, fieldNames []string) error {
|
|
|
+ err := result.CheckFields(fieldNames...)
|
|
|
+ if err != nil {
|
|
|
+ return errors.New(domainCNName + ":\n" + err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
func SetField[T any](object Object, fieldName string, value T) error {
|
|
|
if object == nil {
|
|
|
return errors.New("领域对象为nil")
|
|
|
@@ -77,6 +96,42 @@ func ToConcrete[T Object](object Object) (T, error) {
|
|
|
return concrete, nil
|
|
|
}
|
|
|
|
|
|
+func TableName(schema string, object Object) string {
|
|
|
+ if strutils.IsStringNotEmpty(object.DBSchema()) {
|
|
|
+ schema = object.DBSchema()
|
|
|
+ }
|
|
|
+
|
|
|
+ if strutils.IsStringEmpty(schema) {
|
|
|
+ return template.Plural(strcase.ToSnake(template.Id(object.DomainCamelName())))
|
|
|
+ } else {
|
|
|
+ return schema + "." + template.Plural(strcase.ToSnake(template.Id(object.DomainCamelName())))
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func RelationTableName(schema string, left Object, right Object) string {
|
|
|
+ if strutils.IsStringEmpty(schema) {
|
|
|
+ return strcase.ToSnake(template.Id(left.DomainCamelName())) + "_and_" + strcase.ToSnake(template.Id(right.DomainCamelName()))
|
|
|
+ } else {
|
|
|
+ return schema + "." + strcase.ToSnake(template.Id(left.DomainCamelName())) + "_and_" + strcase.ToSnake(template.Id(right.DomainCamelName()))
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func ColumnName(fieldName string) string {
|
|
|
+ return strcase.ToSnake(template.Id(fieldName))
|
|
|
+}
|
|
|
+
|
|
|
+func RelationColumnName(object Object) string {
|
|
|
+ return strcase.ToSnake(template.Id(object.DomainCamelName())) + "_id"
|
|
|
+}
|
|
|
+
|
|
|
+func RelativeDomainPath(object Object) string {
|
|
|
+ return "/" + strcase.ToLowerCamel(template.Id(object.DomainCamelName()))
|
|
|
+}
|
|
|
+
|
|
|
+func SnakeDomainName(object Object) string {
|
|
|
+ return strcase.ToSnake(template.Id(object.DomainCamelName()))
|
|
|
+}
|
|
|
+
|
|
|
func hasField(object Object, fieldName string) bool {
|
|
|
if object == nil {
|
|
|
return false
|
|
|
@@ -110,35 +165,3 @@ func getFieldValue(object Object, fieldName string) (*reflect.Value, error) {
|
|
|
|
|
|
return &fieldValue, nil
|
|
|
}
|
|
|
-
|
|
|
-func TableName(schema string, object Object) string {
|
|
|
- if strutils.IsStringNotEmpty(object.DBSchema()) {
|
|
|
- schema = object.DBSchema()
|
|
|
- }
|
|
|
-
|
|
|
- if strutils.IsStringEmpty(schema) {
|
|
|
- return template.Plural(strcase.ToSnake(template.Id(object.DomainCamelName())))
|
|
|
- } else {
|
|
|
- return schema + "." + template.Plural(strcase.ToSnake(template.Id(object.DomainCamelName())))
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func RelationTableName(schema string, left Object, right Object) string {
|
|
|
- if strutils.IsStringEmpty(schema) {
|
|
|
- return strcase.ToSnake(template.Id(left.DomainCamelName())) + "_and_" + strcase.ToSnake(template.Id(right.DomainCamelName()))
|
|
|
- } else {
|
|
|
- return schema + "." + strcase.ToSnake(template.Id(left.DomainCamelName())) + "_and_" + strcase.ToSnake(template.Id(right.DomainCamelName()))
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-func RelationColumnName(object Object) string {
|
|
|
- return strcase.ToSnake(template.Id(object.DomainCamelName())) + "_id"
|
|
|
-}
|
|
|
-
|
|
|
-func RelativeDomainPath(object Object) string {
|
|
|
- return "/" + strcase.ToLowerCamel(template.Id(object.DomainCamelName()))
|
|
|
-}
|
|
|
-
|
|
|
-func SnakeDomainName(object Object) string {
|
|
|
- return strcase.ToSnake(template.Id(object.DomainCamelName()))
|
|
|
-}
|