|
|
@@ -10,11 +10,12 @@ import (
|
|
|
"xps/viewmodels"
|
|
|
)
|
|
|
|
|
|
-type ApiGatewayService interface {
|
|
|
- Get(objectCode, oamCode string, m map[string]interface{})(map[string]interface{}, error)
|
|
|
- GetPage(objectCode, oamCode string, m map[string]interface{})(*viewmodels.PageResult, error)
|
|
|
- GetList(objectCode, oamCode string, m map[string]interface{})([]map[string]interface{}, error)
|
|
|
- GetParams(objectCode, oamCode string)(map[string]interface{}, error)
|
|
|
+type XGatewayService interface {
|
|
|
+ Get(objectCode, oamCode string, params []viewmodels.QueryParam)(map[string]interface{}, error)
|
|
|
+ GetPage(objectCode, oamCode string, params []viewmodels.QueryParam)(*viewmodels.PageResult, error)
|
|
|
+ GetList(objectCode, oamCode string, params []viewmodels.QueryParam)([]map[string]interface{}, error)
|
|
|
+
|
|
|
+ GenerateParams(objectCode, oamCode string)(map[string]interface{}, error)
|
|
|
|
|
|
Create(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo)error
|
|
|
Update(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo)error
|
|
|
@@ -22,23 +23,22 @@ type ApiGatewayService interface {
|
|
|
Delete(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo)error
|
|
|
}
|
|
|
|
|
|
-type apiGatewayService struct {
|
|
|
- dataBus *repositories.DataBusRepo
|
|
|
+type xGatewayService struct {
|
|
|
+ xBus *repositories.XBusRepo
|
|
|
}
|
|
|
|
|
|
-func NewApiGatewayService() ApiGatewayService {
|
|
|
- return &apiGatewayService{
|
|
|
- dataBus: repositories.NewDataBusRepo(datasource.InstanceSlave()),
|
|
|
+func NewApiGatewayService() XGatewayService {
|
|
|
+ return &xGatewayService{
|
|
|
+ xBus: repositories.NewXBusRepo(datasource.InstanceSlave()),
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) GetParams(objectCode, oamCode string) (map[string]interface{}, error) {
|
|
|
+func (a *xGatewayService) GenerateParams(objectCode, oamCode string) (map[string]interface{}, error) {
|
|
|
attrs, err2 := cache.GetBizObjectAttrs(objectCode)
|
|
|
if err2 != nil {
|
|
|
return nil, err2
|
|
|
}
|
|
|
|
|
|
-
|
|
|
result := make(map[string]interface{}, 0)
|
|
|
for _, attr := range attrs {
|
|
|
attrType := attr.AttrType
|
|
|
@@ -46,7 +46,7 @@ func (a *apiGatewayService) GetParams(objectCode, oamCode string) (map[string]in
|
|
|
result[attr.AttrCode] = 1
|
|
|
} else if attrType == constant.DATA_TYPE_VARCHAR {
|
|
|
result[attr.AttrCode] = "test"
|
|
|
- } else if attrType == constant.DATA_TYPE_FLOAT {
|
|
|
+ } else if attrType == constant.DATA_TYPE_DECIMAL {
|
|
|
result[attr.AttrCode] = 1.1
|
|
|
} else if attrType == constant.DATA_TYPE_DATE {
|
|
|
result[attr.AttrCode] = "2022-01-01"
|
|
|
@@ -58,122 +58,157 @@ func (a *apiGatewayService) GetParams(objectCode, oamCode string) (map[string]in
|
|
|
return result, nil
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) Get(objectCode, oamCode string, m map[string]interface{})(map[string]interface{}, error) {
|
|
|
- params, err1 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
+func (a *xGatewayService) Get(objectCode, oamCode string, params []viewmodels.QueryParam)(map[string]interface{}, error) {
|
|
|
+ oam, err1:= cache.GetBizObjectOAM(objectCode, oamCode)
|
|
|
if err1 != nil {
|
|
|
return nil, err1
|
|
|
}
|
|
|
|
|
|
- oam , err2:= cache.GetBizObjectOAM(objectCode, oamCode)
|
|
|
+ sqlStatement := oam.SqlStatement
|
|
|
+ data, err2 := a.xBus.GetById(sqlStatement, params)
|
|
|
if err2 != nil {
|
|
|
return nil, err2
|
|
|
}
|
|
|
|
|
|
- sqlStatement := oam.SqlStatement
|
|
|
- data, err3 := a.dataBus.GetById(sqlStatement, params)
|
|
|
- if err3 != nil {
|
|
|
- return nil, err3
|
|
|
- }
|
|
|
-
|
|
|
return a.Mapping2BizObjectAttr(objectCode, data)
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) GetList(objectCode, oamCode string, m map[string]interface{})([]map[string]interface{}, error) {
|
|
|
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
- if err2 != nil {
|
|
|
- return nil, err2
|
|
|
+func (a *xGatewayService) GetList(objectCode, oamCode string, params []viewmodels.QueryParam)([]map[string]interface{}, error) {
|
|
|
+ oam, err1:= cache.GetBizObjectOAM(objectCode, oamCode)
|
|
|
+ if err1 != nil {
|
|
|
+ return nil, err1
|
|
|
}
|
|
|
-
|
|
|
- oam , err2:= cache.GetBizObjectOAM(objectCode, oamCode)
|
|
|
+ sqlStatement := oam.SqlStatement
|
|
|
+ dataList, err2 := a.xBus.GetList(sqlStatement, params)
|
|
|
if err2 != nil {
|
|
|
return nil, err2
|
|
|
}
|
|
|
- sqlStatement := oam.SqlStatement
|
|
|
- dataList, err3 := a.dataBus.GetList(sqlStatement, params)
|
|
|
- if err3 != nil {
|
|
|
- return nil, err3
|
|
|
- }
|
|
|
return a.Mapping2BizObjectList(objectCode, dataList)
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) GetPage(objectCode, oamCode string, m map[string]interface{}) (*viewmodels.PageResult, error) {
|
|
|
- params, err1 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
+func (a *xGatewayService) GetPage(objectCode, oamCode string, params []viewmodels.QueryParam) (*viewmodels.PageResult, error) {
|
|
|
+ oam , err1:= cache.GetBizObjectOAM(objectCode, oamCode)
|
|
|
if err1 != nil {
|
|
|
return nil, err1
|
|
|
}
|
|
|
|
|
|
- oam , err2:= cache.GetBizObjectOAM(objectCode, oamCode)
|
|
|
- if err2 != nil {
|
|
|
- return nil, err2
|
|
|
- }
|
|
|
-
|
|
|
sqlStatement := oam.SqlStatement
|
|
|
sqlCount := oam.SqlCount
|
|
|
- pageData, err3 := a.dataBus.GetPage(sqlStatement, sqlCount, params)
|
|
|
- if err3 != nil {
|
|
|
- return nil, err3
|
|
|
+ pageData, err2 := a.xBus.GetPage(sqlStatement, sqlCount, params)
|
|
|
+ if err2 != nil {
|
|
|
+ return nil, err2
|
|
|
}
|
|
|
-
|
|
|
return a.Mapping2BizPageObject(objectCode, pageData)
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) Create(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
+func (a *xGatewayService) Create(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
err1 := a.HandleOAMRuleList(objectCode, oamCode, m, user)
|
|
|
if err1 != nil {
|
|
|
return err1
|
|
|
}
|
|
|
|
|
|
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
+
|
|
|
+
|
|
|
+ data, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
if err2 != nil {
|
|
|
return err2
|
|
|
}
|
|
|
|
|
|
- return a.dataBus.Create(objectCode, params)
|
|
|
+ objectMappingList, err3 := cache.GetBizObjectMapping(objectCode)
|
|
|
+ if err3 != nil {
|
|
|
+ return err3
|
|
|
+ }
|
|
|
+ for _, mappingObject := range objectMappingList {
|
|
|
+ mappingObjectCode := mappingObject.MappingObjectCode
|
|
|
+ err4 := a.xBus.Create(mappingObjectCode, data)
|
|
|
+ if err4 != nil {
|
|
|
+ return err4
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) Update(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
+func (a *xGatewayService) Update(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
err1 := a.HandleOAMRuleList(objectCode, oamCode, m, user)
|
|
|
if err1 != nil {
|
|
|
return err1
|
|
|
}
|
|
|
|
|
|
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
+ data, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
if err2 != nil {
|
|
|
return err2
|
|
|
}
|
|
|
|
|
|
- return a.dataBus.Update(objectCode, params)
|
|
|
+ objectMappingList, err3 := cache.GetBizObjectMapping(objectCode)
|
|
|
+ if err3 != nil {
|
|
|
+ return err3
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, mappingObject := range objectMappingList {
|
|
|
+ mappingObjectCode := mappingObject.MappingObjectCode
|
|
|
+ err4 := a.xBus.Update(mappingObjectCode, data)
|
|
|
+ if err4 != nil {
|
|
|
+ return err4
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) Patch(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
+func (a *xGatewayService) Patch(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
err1 := a.HandleOAMRuleList(objectCode, oamCode, m, user)
|
|
|
if err1 != nil {
|
|
|
return err1
|
|
|
}
|
|
|
|
|
|
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
+ data, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
if err2 != nil {
|
|
|
return err2
|
|
|
}
|
|
|
|
|
|
- return a.dataBus.Patch(objectCode, params)
|
|
|
+ objectMappingList, err3 := cache.GetBizObjectMapping(objectCode)
|
|
|
+ if err3 != nil {
|
|
|
+ return err3
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, mappingObject := range objectMappingList {
|
|
|
+ mappingObjectCode := mappingObject.MappingObjectCode
|
|
|
+ err4 := a.xBus.Patch(mappingObjectCode, data)
|
|
|
+ if err4 != nil {
|
|
|
+ return err4
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) Delete(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
+func (a *xGatewayService) Delete(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
err1 := a.HandleOAMRuleList(objectCode, oamCode, m, user)
|
|
|
if err1 != nil {
|
|
|
return err1
|
|
|
}
|
|
|
|
|
|
- params, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
+ data, err2 := a.Mapping2ModelObjectAttr(objectCode, m)
|
|
|
if err2 != nil {
|
|
|
return err2
|
|
|
}
|
|
|
|
|
|
- return a.dataBus.Delete(objectCode, params)
|
|
|
+ objectMappingList, err3 := cache.GetBizObjectMapping(objectCode)
|
|
|
+ if err3 != nil {
|
|
|
+ return err3
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, mappingObject := range objectMappingList {
|
|
|
+ mappingObjectCode := mappingObject.MappingObjectCode
|
|
|
+ err4 := a.xBus.Delete(mappingObjectCode, data)
|
|
|
+ if err4 != nil {
|
|
|
+ return err4
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return nil
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) HandleOAMRuleList(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
+func (a *xGatewayService) HandleOAMRuleList(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
|
|
|
oamRules, err1 := cache.GetBizObjectOAMRules(objectCode, oamCode)
|
|
|
if err1 != nil {
|
|
|
return err1
|
|
|
@@ -188,7 +223,7 @@ func (a *apiGatewayService) HandleOAMRuleList(objectCode, oamCode string, m map[
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) HandleOAMRule(oamRule *viewmodels.BizObjectOAMRuleInfo, m map[string]interface{}, user *viewmodels.CurUserInfo)(error) {
|
|
|
+func (a *xGatewayService) HandleOAMRule(oamRule *viewmodels.BizObjectOAMRuleInfo, m map[string]interface{}, user *viewmodels.CurUserInfo)(error) {
|
|
|
if oamRule.RuleId == constant.BIZ_RULE_NEW_ID {
|
|
|
m[oamRule.TargetAttrCode] = NewID()
|
|
|
} else if oamRule.RuleId == constant.BIZ_RULE_CUR_DATETIME {
|
|
|
@@ -211,7 +246,7 @@ func (a *apiGatewayService) HandleOAMRule(oamRule *viewmodels.BizObjectOAMRuleIn
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) Mapping2ModelObjectAttr(objectCode string, m map[string]interface{})(map[string]interface{}, error) {
|
|
|
+func (a *xGatewayService) Mapping2ModelObjectAttr(objectCode string, m map[string]interface{})(map[string]interface{}, error) {
|
|
|
bizObjectAttrs, err := cache.GetBizObjectAttrs(objectCode)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -228,7 +263,7 @@ func (a *apiGatewayService) Mapping2ModelObjectAttr(objectCode string, m map[str
|
|
|
return m, nil
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) Mapping2BizObjectAttr(objectCode string, m map[string]interface{})(map[string]interface{}, error) {
|
|
|
+func (a *xGatewayService) Mapping2BizObjectAttr(objectCode string, m map[string]interface{})(map[string]interface{}, error) {
|
|
|
bizObjectAttrs, err := cache.GetBizObjectAttrs(objectCode)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -246,7 +281,7 @@ func (a *apiGatewayService) Mapping2BizObjectAttr(objectCode string, m map[strin
|
|
|
}
|
|
|
|
|
|
|
|
|
-func (a *apiGatewayService) Mapping2BizObjectList(objectCode string, dataList []map[string]interface{})([]map[string]interface{}, error) {
|
|
|
+func (a *xGatewayService) Mapping2BizObjectList(objectCode string, dataList []map[string]interface{})([]map[string]interface{}, error) {
|
|
|
bizObjectAttrs, err := cache.GetBizObjectAttrs(objectCode)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
@@ -267,7 +302,7 @@ func (a *apiGatewayService) Mapping2BizObjectList(objectCode string, dataList []
|
|
|
return targetDataList, nil
|
|
|
}
|
|
|
|
|
|
-func (a *apiGatewayService) Mapping2BizPageObject(objectCode string, pageData *viewmodels.PageResult)(*viewmodels.PageResult, error) {
|
|
|
+func (a *xGatewayService) Mapping2BizPageObject(objectCode string, pageData *viewmodels.PageResult)(*viewmodels.PageResult, error) {
|
|
|
bizObjectAttrs, err := cache.GetBizObjectAttrs(objectCode)
|
|
|
if err != nil {
|
|
|
return nil, err
|