Skip to content

Commit

Permalink
update code
Browse files Browse the repository at this point in the history
  • Loading branch information
muidea committed Oct 7, 2023
1 parent 32e1fe1 commit 47efddb
Show file tree
Hide file tree
Showing 10 changed files with 88 additions and 31 deletions.
20 changes: 15 additions & 5 deletions database/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,14 +96,14 @@ func (s *Common) GetRelationValue(rModel model.Model) (leftVal, rightVal string,
entityVal, entityErr := s.GetModelValue()
if entityErr != nil {
err = entityErr
log.Errorf("get entity model value failed, err:%s", err.Error())
log.Errorf("GetRelationValue failed, s.GetModelValue error:%s", err.Error())
return
}

relationVal, relationErr := s.EncodeModelValue(rModel)
if relationErr != nil {
err = relationErr
log.Errorf("get relation model value failed, err:%s", err.Error())
log.Errorf("GetRelationValue failed, s.EncodeModelValue error:%s", err.Error())
return
}

Expand All @@ -116,12 +116,14 @@ func (s *Common) EncodeValue(vValue model.Value, vType model.Type) (ret string,
defer func() {
if eErr := recover(); eErr != nil {
err = fmt.Errorf("encode value failed, type:%v, err:%v", vType.GetPkgKey(), eErr)
log.Errorf("EncodeValue failed, error:%s", err.Error())
}
}()

fStr, fErr := s.modelProvider.EncodeValue(vValue, vType)
if fErr != nil {
err = fErr
log.Errorf("EncodeValue failed, s.modelProvider.EncodeValue error:%s", err.Error())
return
}

Expand All @@ -140,14 +142,22 @@ func (s *Common) EncodeModelValue(vModel model.Model) (ret string, err error) {
fStr, fErr := s.EncodeValue(pkField.GetValue(), pkField.GetType())
if fErr != nil {
err = fErr
log.Errorf("encode pkField value failed, pkField name:%s, err:%s", pkField.GetName(), err.Error())
log.Errorf("EncodeModelValue failed, s.EncodeValue error:%s", err.Error())
return
}

ret = fStr
return
}

func (s *Common) GetTypeModel(vType model.Type) (model.Model, error) {
return s.modelProvider.GetTypeModel(vType)
func (s *Common) GetTypeModel(vType model.Type) (ret model.Model, err error) {
vModel, vErr := s.modelProvider.GetTypeModel(vType)
if vErr != nil {
err = vErr
log.Errorf("GetTypeModel failed, s.modelProvider.GetTypeModel error:%s", err.Error())
return
}

ret = vModel
return
}
2 changes: 2 additions & 0 deletions database/mysql/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package mysql

import (
"fmt"
"github.com/muidea/magicCommon/foundation/log"

"github.com/muidea/magicOrm/database/common"
"github.com/muidea/magicOrm/model"
Expand All @@ -23,6 +24,7 @@ func (s *Builder) buildModelFilter() (ret string, err error) {
pkfVal, pkfErr := s.EncodeValue(pkField.GetValue(), pkField.GetType())
if pkfErr != nil {
err = pkfErr
log.Errorf("buildModelFilter failed, s.EncodeValue error:%s", err.Error())
return
}

Expand Down
2 changes: 1 addition & 1 deletion database/mysql/builder_count.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func (s *Builder) BuildCount(filter model.Filter) (ret string, err error) {
filterSQL, filterErr := s.buildFilter(filter)
if filterErr != nil {
err = filterErr
log.Errorf("buildModelFilter failed, err:%s", err.Error())
log.Errorf("BuildCount failed, s.buildFilter error:%s", err.Error())
return
}

Expand Down
4 changes: 4 additions & 0 deletions database/mysql/builder_create.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package mysql

import (
"fmt"
"github.com/muidea/magicCommon/foundation/log"

"github.com/muidea/magicOrm/model"
)
Expand All @@ -17,6 +18,7 @@ func (s *Builder) BuildCreateTable() (ret string, err error) {
infoVal, infoErr := declareFieldInfo(val)
if infoErr != nil {
err = infoErr
log.Errorf("BuildCreateTable failed, declareFieldInfo error:%s", err.Error())
return
}

Expand Down Expand Up @@ -45,13 +47,15 @@ func (s *Builder) BuildCreateRelationTable(field model.Field, rModel model.Model
lPKType, lPKErr := getTypeDeclare(lPKField.GetType())
if lPKErr != nil {
err = lPKErr
log.Errorf("BuildCreateRelationTable failed, getTypeDeclare error:%s", err.Error())
return
}

rPKField := s.GetPrimaryKeyField(rModel)
rPKType, rPKErr := getTypeDeclare(rPKField.GetType())
if rPKErr != nil {
err = rPKErr
log.Errorf("BuildCreateRelationTable failed, getTypeDeclare error:%s", err.Error())
return
}

Expand Down
4 changes: 3 additions & 1 deletion database/mysql/builder_delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func (s *Builder) BuildDelete() (ret string, err error) {
filterStr, filterErr := s.buildModelFilter()
if filterErr != nil {
err = filterErr
log.Errorf("buildModelFilter failed, err:%s", err.Error())
log.Errorf("BuildDelete failed, s.buildModelFilter error:%s", err.Error())
return
}

Expand All @@ -29,8 +29,10 @@ func (s *Builder) BuildDeleteRelation(vField model.Field, rModel model.Model) (d
leftVal, leftErr := s.GetModelValue()
if leftErr != nil {
err = leftErr
log.Errorf("BuildDeleteRelation failed, s.GetModelValue error:%s", err.Error())
return
}

relationTableName := s.GetRelationTableName(vField, rModel)
delRight = fmt.Sprintf("DELETE FROM `%s` WHERE `%s` IN (SELECT `right` FROM `%s` WHERE `left`=%v)", s.GetHostTableName(rModel), s.GetPrimaryKeyField(rModel).GetName(), relationTableName, leftVal)
//log.Print(delRight)
Expand Down
3 changes: 3 additions & 0 deletions database/mysql/builder_insert.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package mysql

import (
"fmt"
"github.com/muidea/magicCommon/foundation/log"

"github.com/muidea/magicOrm/model"
)
Expand All @@ -27,6 +28,7 @@ func (s *Builder) BuildInsert() (ret string, err error) {
}
if valErr != nil {
err = valErr
log.Errorf("BuildInsert failed, s.EncodeValue/getTypeDefaultValue error:%s", err.Error())
return
}

Expand Down Expand Up @@ -55,6 +57,7 @@ func (s *Builder) BuildInsertRelation(vField model.Field, rModel model.Model) (r
leftVal, rightVal, valErr := s.GetRelationValue(rModel)
if valErr != nil {
err = valErr
log.Errorf("BuildInsertRelation failed, s.GetRelationValue error:%s", err.Error())
return
}
relationTableName := s.GetRelationTableName(vField, rModel)
Expand Down
13 changes: 10 additions & 3 deletions database/mysql/builder_query.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ func (s *Builder) BuildQuery(filter model.Filter) (ret string, err error) {
namesVal, nameErr := s.getFieldQueryNames()
if nameErr != nil {
err = nameErr
log.Errorf("BuildQuery failed, s.getFieldQueryNames error:%s", err.Error())
return
}

Expand All @@ -21,6 +22,7 @@ func (s *Builder) BuildQuery(filter model.Filter) (ret string, err error) {
filterSQL, filterErr := s.buildFilter(filter)
if filterErr != nil {
err = filterErr
log.Errorf("BuildQuery failed, s.buildFilter error:%s", err.Error())
return
}

Expand All @@ -31,6 +33,7 @@ func (s *Builder) BuildQuery(filter model.Filter) (ret string, err error) {
sortVal, sortErr := s.buildSorter(filter.Sorter())
if sortErr != nil {
err = sortErr
log.Errorf("BuildQuery failed, s.buildSorter error:%s", err.Error())
return
}

Expand All @@ -53,6 +56,7 @@ func (s *Builder) BuildQueryRelation(vField model.Field, rModel model.Model) (re
leftVal, leftErr := s.GetModelValue()
if leftErr != nil {
err = leftErr
log.Errorf("BuildQueryRelation failed, s.GetModelValue error:%s", err.Error())
return
}

Expand All @@ -70,7 +74,7 @@ func (s *Builder) buildBasicItem(vField model.Field, filterItem model.FilterItem
valueStr, valueErr := s.EncodeValue(oprValue, fType)
if valueErr != nil {
err = valueErr
log.Errorf("encodeValue failed, vField name:%s, err:%s", vField.GetName(), err.Error())
log.Errorf("buildBasicItem failed, EncodeValue error:%s", err.Error())
return
}

Expand All @@ -80,6 +84,7 @@ func (s *Builder) buildBasicItem(vField model.Field, filterItem model.FilterItem
}

err = fmt.Errorf("illegal item type, name:%s", vField.GetName())
log.Errorf("buildBasicItem failed, error:%s", err.Error())
return
}

Expand All @@ -90,14 +95,14 @@ func (s *Builder) buildRelationItem(pkField model.Field, rField model.Field, fil
valueStr, valueErr := s.EncodeValue(oprValue, fType)
if valueErr != nil {
err = valueErr
log.Errorf("encodeValue failed, rField name:%s, err:%s", rField.GetName(), err.Error())
log.Errorf("buildRelationItem failed, s.EncodeValue error:%s", err.Error())
return
}

fieldModel, fieldErr := s.GetTypeModel(fType)
if fieldErr != nil {
err = fieldErr
log.Errorf("GetTypeModel failed, rField name:%s, err:%s", rField.GetName(), err.Error())
log.Errorf("buildRelationItem failed, s.GetTypeModel error:%s", err.Error())
return
}

Expand Down Expand Up @@ -128,6 +133,7 @@ func (s *Builder) buildFilter(filter model.Filter) (ret string, err error) {
basicSQL, basicErr := s.buildBasicItem(field, filterItem)
if basicErr != nil {
err = basicErr
log.Errorf("buildFilter failed, s.buildBasicItem error:%s", err.Error())
return
}

Expand All @@ -143,6 +149,7 @@ func (s *Builder) buildFilter(filter model.Filter) (ret string, err error) {
relationSQL, relationErr := s.buildRelationItem(pkField, field, filterItem)
if relationErr != nil {
err = relationErr
log.Errorf("buildFilter failed, s.buildRelationItem error:%s", err.Error())
return
}

Expand Down
5 changes: 3 additions & 2 deletions database/mysql/builder_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ func (s *Builder) BuildUpdate() (ret string, err error) {
updateStr, updateErr := s.getFieldUpdateValues()
if updateErr != nil {
err = updateErr
log.Errorf("getFieldUpdateValues failed, err:%s", err.Error())
log.Errorf("BuildUpdate failed, s.getFieldUpdateValues error:%s", err.Error())
return
}
filterStr, filterErr := s.buildModelFilter()
if filterErr != nil {
err = filterErr
log.Errorf("buildModelFilter failed, err:%s", err.Error())
log.Errorf("BuildUpdate failed, s.buildModelFilter error:%s", err.Error())
return
}

Expand All @@ -44,6 +44,7 @@ func (s *Builder) getFieldUpdateValues() (ret string, err error) {
fStr, fErr := s.EncodeValue(fValue, fType)
if fErr != nil {
err = fErr
log.Errorf("getFieldUpdateValues failed, s.EncodeValue error:%s", err.Error())
return
}

Expand Down
Loading

0 comments on commit 47efddb

Please sign in to comment.