houyaf 3 سال پیش
والد
کامیت
739d028e9b
32فایلهای تغییر یافته به همراه594 افزوده شده و 557 حذف شده
  1. 155 15
      cache/redis.go
  2. 18 16
      datamodels/biz_object_oam_params.go
  3. 2 2
      go.mod
  4. 23 13
      repositories/biz_object_attr_repo.go
  5. 40 25
      repositories/biz_object_mapping_repo.go
  6. 18 28
      repositories/biz_object_oam_params_repo.go
  7. 22 0
      repositories/biz_object_oam_repo.go
  8. 3 0
      repositories/biz_object_oam_rule_repo.go
  9. 22 10
      repositories/data_bus_rebo.go
  10. 28 15
      repositories/model_object_attr_repo.go
  11. 14 17
      service/api_gateway_service.go
  12. 1 0
      service/api_service.go
  13. 25 4
      service/biz_object_attr_service.go
  14. 21 0
      service/biz_object_mapping_service.go
  15. 10 19
      service/biz_object_oam_params_service.go
  16. 9 18
      service/biz_object_oam_rule_service.go
  17. 10 22
      service/biz_object_oam_service.go
  18. 28 168
      service/biz_object_service.go
  19. 2 82
      service/init_service.go
  20. 19 0
      service/model_object_attr_service.go
  21. 15 71
      service/model_object_service.go
  22. 10 0
      viewmodels/biz_object_attr_info.go
  23. 10 0
      viewmodels/biz_object_info.go
  24. 20 8
      viewmodels/biz_object_mapping_info.go
  25. 0 1
      viewmodels/biz_object_oam_info.go
  26. 24 8
      viewmodels/biz_object_oam_params_info.go
  27. 13 1
      viewmodels/biz_object_oam_rule_info.go
  28. 11 0
      viewmodels/model_object_attr_info.go
  29. 10 0
      viewmodels/model_object_info.go
  30. 7 7
      web/controllers/biz_object_controller.go
  31. 1 4
      web/controllers/biz_object_oam_controller.go
  32. 3 3
      web/controllers/biz_object_oam_params_controller.go

+ 155 - 15
cache/redis.go

@@ -2,6 +2,7 @@ package cache
 
 import (
 	"context"
+	"encoding/json"
 	"errors"
 	"fmt"
 	"github.com/go-redis/redis/v8"
@@ -89,44 +90,101 @@ func SetUserData(userId int64, userData *viewmodels.UserData) error {
 	return SetCache(keyStr, userData, 0)
 }
 
-func SetModelObjectData(objectCode string, data *viewmodels.ModelObjectDataInfo) error {
+func SetModelObject(objectCode string, data *viewmodels.ModelObjectInfo) error {
 	keyStr := fmt.Sprintf("model_object_%s", objectCode)
 	return SetCache(keyStr, data, 0)
 }
 
-func GetModelObjectData(objectCode string)(*viewmodels.ModelObjectDataInfo, error){
+func GetModelObject(objectCode string)(*viewmodels.ModelObjectInfo, error){
 	keyStr := fmt.Sprintf("model_object_%s", objectCode)
-	modelData := &viewmodels.ModelObjectDataInfo{}
-	err := Instance().Get(context.Background(), keyStr).Scan(modelData)
+	modelObjectInfo := &viewmodels.ModelObjectInfo{}
+	err := Instance().Get(context.Background(), keyStr).Scan(modelObjectInfo)
 	if err != nil {
 		return nil, err
 	}
-	return modelData, nil
+	return modelObjectInfo, nil
 }
 
-func SetBizObjectData(objectCode string, data *viewmodels.BizObjectDataInfo) error {
+
+func SetModelObjectAttrs(objectCode string, data []viewmodels.ModelObjectAttrInfo) error {
+	keyStr := fmt.Sprintf("model_object_attr_%s", objectCode)
+	dataList, _ := json.Marshal(data)
+	err := Instance().Set(context.Background(), keyStr, dataList, 0).Err()
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+func GetModelObjectAttrs(objectCode string)([]viewmodels.ModelObjectAttrInfo, error){
+	keyStr := fmt.Sprintf("model_object_attr_%s", objectCode)
+	
+	bytes, err := Instance().Get(context.Background(), keyStr).Bytes()
+	if err != nil {
+		return nil, err
+	}
+	
+	modelObjectAttrInfo := make([]viewmodels.ModelObjectAttrInfo, 0)
+	json.Unmarshal(bytes, modelObjectAttrInfo)
+	return modelObjectAttrInfo, nil
+}
+
+
+// SetBizObject : Biz Object
+func SetBizObject(objectCode string, data *viewmodels.BizObjectInfo) error {
 	keyStr := fmt.Sprintf("biz_object_%s", objectCode)
 	return SetCache(keyStr, data, 0)
 }
 
-func GetBizObjectData(objectCode string)(*viewmodels.BizObjectDataInfo, error){
+// GetBizObject : Biz Object
+func GetBizObject(objectCode string)(*viewmodels.BizObjectInfo, error){
 	keyStr := fmt.Sprintf("biz_object_%s", objectCode)
-	bizObjectData := &viewmodels.BizObjectDataInfo{}
-	err := Instance().Get(context.Background(), keyStr).Scan(bizObjectData)
+	bizObjectInfo := &viewmodels.BizObjectInfo{}
+	err := Instance().Get(context.Background(), keyStr).Scan(bizObjectInfo)
+	if err != nil {
+		return nil, err
+	}
+	return bizObjectInfo, nil
+}
+
+// SetBizObjectAttrs : Biz Object Attrs
+func SetBizObjectAttrs(objectCode string, data []viewmodels.BizObjectAttrInfo) error {
+	keyStr := fmt.Sprintf("biz_object_attrs_%s", objectCode)
+	dataList, _ := json.Marshal(data)
+	err := Instance().Set(context.Background(), keyStr, dataList, 0).Err()
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+// GetBizObjectAttrs : Biz Object Attrs
+func GetBizObjectAttrs(objectCode string)([]viewmodels.BizObjectAttrInfo, error){
+	keyStr := fmt.Sprintf("biz_object_attrs_%s", objectCode)
+	
+	bytes, err := Instance().Get(context.Background(), keyStr).Bytes()
 	if err != nil {
 		return nil, err
 	}
-	return bizObjectData, nil
+	
+	bizObjectAttrs := make([]viewmodels.BizObjectAttrInfo, 0)
+	err2 := json.Unmarshal(bytes, bizObjectAttrs)
+	if err2 != nil {
+		return nil, err2
+	}
+	return bizObjectAttrs, nil
 }
 
-func SetBizObjectOAMData(objectCode, oamCode string, data *viewmodels.BizObjectOAMData) error {
-	keyStr := fmt.Sprintf("oam_%s_%s", objectCode, oamCode)
+// SetBizObjectOAM : Biz Object OAM
+func SetBizObjectOAM(objectCode, oamCode string, data *viewmodels.BizObjectOAMInfo) error {
+	keyStr := fmt.Sprintf("biz_object_oam_%s_%s", objectCode, oamCode)
 	return SetCache(keyStr, data, 0)
 }
 
-func GetBizObjectOAMData(objectCode, oamCode string)(*viewmodels.BizObjectOAMData, error){
-	keyStr := fmt.Sprintf("oam_%s_%s", objectCode, oamCode)
-	oamData := &viewmodels.BizObjectOAMData{}
+// GetBizObjectOAM : Biz Object OAM
+func GetBizObjectOAM(objectCode, oamCode string)(*viewmodels.BizObjectOAMInfo, error){
+	keyStr := fmt.Sprintf("biz_object_oam_%s_%s", objectCode, oamCode)
+	oamData := &viewmodels.BizObjectOAMInfo{}
 	err := Instance().Get(context.Background(), keyStr).Scan(oamData)
 	if err != nil {
 		return nil, err
@@ -134,6 +192,88 @@ func GetBizObjectOAMData(objectCode, oamCode string)(*viewmodels.BizObjectOAMDat
 	return oamData, nil
 }
 
+// SetBizObjectOAMRules : Biz Object OAM Rules
+func SetBizObjectOAMRules(objectCode, oamCode string, data []viewmodels.BizObjectOAMRuleInfo) error {
+	keyStr := fmt.Sprintf("biz_object_oam_rules_%s_%s", objectCode, oamCode)
+	dataList, _ := json.Marshal(data)
+	err := Instance().Set(context.Background(), keyStr, dataList, 0).Err()
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+// GetBizObjectOAMRules : Biz Object OAM Rules
+func GetBizObjectOAMRules(objectCode, oamCode string)([]viewmodels.BizObjectOAMRuleInfo, error){
+	keyStr := fmt.Sprintf("biz_object_oam_rules_%s_%s", objectCode, oamCode)
+	bytes, err1 := Instance().Get(context.Background(), keyStr).Bytes()
+	if err1 != nil {
+		return nil, err1
+	}
+	
+	dataList := make([]viewmodels.BizObjectOAMRuleInfo, 0)
+	err2 := json.Unmarshal(bytes, dataList)
+	if err2 != nil {
+		return nil, err2
+	}
+	return dataList, nil
+}
+
+// SetBizObjectOAMParams : Biz Object OAM Params
+func SetBizObjectOAMParams(objectCode, oamCode string, data []viewmodels.BizObjectOAMParamsInfo) error {
+	keyStr := fmt.Sprintf("biz_object_oam_params_%s_%s", objectCode, oamCode)
+	dataList, _ := json.Marshal(data)
+	err := Instance().Set(context.Background(), keyStr, dataList, 0).Err()
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+// GetBizObjectOAMParams : Biz Object OAM Params
+func GetBizObjectOAMParams(objectCode, oamCode string)([]viewmodels.BizObjectOAMParamsInfo, error){
+	keyStr := fmt.Sprintf("biz_object_oam_params_%s_%s", objectCode, oamCode)
+	bytes, err1 := Instance().Get(context.Background(), keyStr).Bytes()
+	if err1 != nil {
+		return nil, err1
+	}
+	
+	dataList := make([]viewmodels.BizObjectOAMParamsInfo, 0)
+	err2 := json.Unmarshal(bytes, dataList)
+	if err2 != nil {
+		return nil, err2
+	}
+	return dataList, nil
+}
+
+
+// SetBizObjectMapping : Biz Object Mapping
+func SetBizObjectMapping(objectCode string, data []viewmodels.BizObjectMappingInfo) error {
+	keyStr := fmt.Sprintf("biz_object_mapping_%s", objectCode)
+	dataList, _ := json.Marshal(data)
+	err := Instance().Set(context.Background(), keyStr, dataList, 0).Err()
+	if err != nil {
+		return err
+	}
+	return nil
+}
+
+// GetBizObjectMapping : Biz Object Mapping
+func GetBizObjectMapping(objectCode string)([]viewmodels.BizObjectMappingInfo, error){
+	keyStr := fmt.Sprintf("biz_object_mapping_%s", objectCode)
+	bytes, err1 := Instance().Get(context.Background(), keyStr).Bytes()
+	if err1 != nil {
+		return nil, err1
+	}
+	
+	dataList := make([]viewmodels.BizObjectMappingInfo, 0)
+	err2 := json.Unmarshal(bytes, dataList)
+	if err2 != nil {
+		return nil, err2
+	}
+	return dataList, nil
+}
+
 func SetApiData(objectCode, oamCode string, data *viewmodels.ApiInfo) error {
 	keyStr := fmt.Sprintf("api_%s_%s", objectCode, oamCode)
 	return SetCache(keyStr, data, 0)

+ 18 - 16
datamodels/biz_object_oam_params.go

@@ -4,22 +4,24 @@ import "time"
 
 type BizObjectOAMParams struct {
     
-    BizId           int64     `json:"bizId"           xorm:"'biz_id'          bigint      pk comment('BIZ ID')         "`
-    ObjectId        int64     `json:"objectId"        xorm:"'object_id'       bigint      pk comment('Object ID')      "`
-    OamId           int64     `json:"oamId"           xorm:"'oam_id'          bigint      pk comment('OAM ID')         "`
-    ParamsId        int64     `json:"paramsId"        xorm:"'params_id'       bigint      pk comment('Params ID')      "`
-    ParamsOperator  string    `json:"paramsOperator"  xorm:"'params_operator' varchar(15)    comment('Params Operator')"`
-    ParamsTarget    string    `json:"paramsTarget"    xorm:"'params_target'   varchar(127)   comment('Params Target')  "`
-    ParamsValue     string    `json:"paramsValue"     xorm:"'params_value'    varchar(127)   comment('Params Target')  "`
-    SortNo       int64     `json:"sortNo"          xorm:"'sort_no'         bigint         comment('Sort No')        "`
-    CreatedBy   int64     `json:"createdBy"    xorm:"'created_by'"`
-    CreatedAt   time.Time `json:"createdAt"    xorm:"'created_at'"`
-    UpdatedBy   int64     `json:"updatedBy"    xorm:"'updated_by'"`
-    UpdatedAt   time.Time `json:"updatedAt"    xorm:"'updated_at'"`
-    DeletedFlag int64     `json:"deletedFlag"  xorm:"'deleted_flag'"`
-    DeletedBy   int64     `json:"deletedBy"    xorm:"'deleted_by'"`
-    DeletedAt   time.Time `json:"deletedAt"    xorm:"'deleted_at'"`
-    
+    BizId           int64     `json:"bizId"            xorm:"'biz_id'           bigint      pk comment('BIZ ID')           "`
+    ObjectId        int64     `json:"objectId"         xorm:"'object_id'        bigint      pk comment('Object ID')        "`
+    OamId           int64     `json:"oamId"            xorm:"'oam_id'           bigint      pk comment('OAM ID')           "`
+    ParamsId        int64     `json:"paramsId"         xorm:"'params_id'        bigint      pk comment('Params ID')        "`
+    LogicalOperator string    `json:"logicalOperator"  xorm:"'logical_operator' varchar(15)    comment('Logical Operator') "`
+    ParamsTarget    string    `json:"paramsTarget"     xorm:"'params_target'    varchar(127)   comment('Params Target')    "`
+    CompareOperator string    `json:"compareOperator"  xorm:"'compare_operator' varchar(15)    comment('Compare Operator') "`
+    ParamsValue     string    `json:"paramsValue"      xorm:"'params_value'     varchar(127)   comment('Params Value')     "`
+    ParamsType      int64     `json:"paramsType"       xorm:"'params_type'      bigint         comment('Params Type')      "`
+    ParamsRemark    string    `json:"paramsRemark"     xorm:"'params_remark'    varchar(255)   comment('Params Remark')    "`
+    SortNo          int64     `json:"sortNo"           xorm:"'sort_no'          bigint         comment('Sort No')          "`
+    CreatedBy       int64     `json:"createdBy"        xorm:"'created_by'"`
+    CreatedAt       time.Time `json:"createdAt"        xorm:"'created_at'"`
+    UpdatedBy       int64     `json:"updatedBy"        xorm:"'updated_by'"`
+    UpdatedAt       time.Time `json:"updatedAt"        xorm:"'updated_at'"`
+    DeletedFlag     int64     `json:"deletedFlag"      xorm:"'deleted_flag'"`
+    DeletedBy       int64     `json:"deletedBy"        xorm:"'deleted_by'"`
+    DeletedAt       time.Time `json:"deletedAt"        xorm:"'deleted_at'"`
 }
 
 func (t *BizObjectOAMParams) TableName() string {

+ 2 - 2
go.mod

@@ -8,6 +8,7 @@ require (
 	github.com/go-sql-driver/mysql v1.7.0
 	github.com/iris-contrib/middleware/cors v0.0.0-20230311205048-b568fe9b470f
 	github.com/kataras/iris/v12 v12.2.0
+	github.com/stretchr/objx v0.5.0
 	xorm.io/core v0.7.3
 	xorm.io/xorm v1.3.2
 )
@@ -21,7 +22,7 @@ require (
 	github.com/andybalholm/brotli v1.0.5 // indirect
 	github.com/aymerick/douceur v0.2.0 // indirect
 	github.com/blang/semver/v4 v4.0.0 // indirect
-	github.com/cespare/xxhash/v2 v2.1.2 // indirect
+	github.com/cespare/xxhash/v2 v2.2.0 // indirect
 	github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
 	github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 // indirect
 	github.com/fatih/structs v1.1.0 // indirect
@@ -61,7 +62,6 @@ require (
 	github.com/russross/blackfriday/v2 v2.1.0 // indirect
 	github.com/schollz/closestmatch v2.1.0+incompatible // indirect
 	github.com/sirupsen/logrus v1.9.0 // indirect
-	github.com/stretchr/objx v0.5.0 // indirect
 	github.com/syndtr/goleveldb v1.0.0 // indirect
 	github.com/tdewolff/minify/v2 v2.12.5 // indirect
 	github.com/tdewolff/parse/v2 v2.6.5 // indirect

+ 23 - 13
repositories/biz_object_attr_repo.go

@@ -19,12 +19,14 @@ func NewBizObjectAttrRepo(engine *xorm.Engine) *BizObjectAttrRepo {
 }
 
 func (d *BizObjectAttrRepo) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
-    limit     := m["limit"].(int)
-    page      := m["page"].(int)
+    limit      := m["limit"].(int)
+    page       := m["page"].(int)
     
-    sqlSelect := ` SELECT A.*                   `
-    sqlFrom   := ` FROM   biz_object_attr   AS A `
-    sqlWhere  := ` WHERE A.deleted_flag = 0     `
+    sqlSelect  := ` SELECT    A.* ,
+                              B.object_code `
+    sqlFrom    := ` FROM      biz_object_attr AS A
+                    LEFT JOIN biz_object_attr AS B ON(A.biz_id = B.biz_id AND A.object_id = B.object_id) `
+    sqlWhere   := ` WHERE A.deleted_flag = 0     `
     if keywords, ok := m["keywords"]; ok {
         sqlWhere += ` AND A.attr_title like ` + "'%" + fmt.Sprintf("%s", keywords) + "%'"
     }
@@ -54,8 +56,10 @@ func (d *BizObjectAttrRepo) GetPage(m map[string]interface{}) (*viewmodels.PageR
 }
 
 func (d *BizObjectAttrRepo) GetList(m map[string]interface{}) ([]viewmodels.BizObjectAttrInfo, error) {
-    sqlSelect  := ` SELECT A.*                 `
-    sqlFrom    := ` FROM   biz_object_attr AS A  `
+    sqlSelect  := ` SELECT    A.* ,
+                              B.object_code `
+    sqlFrom    := ` FROM      biz_object_attr AS A
+                    LEFT JOIN biz_object_attr AS B ON(A.biz_id = B.biz_id AND A.object_id = B.object_id) `
     sqlWhere   := ` WHERE  A.deleted_flag = 0   `
     if keywords, ok := m["keywords"]; ok {
         sqlWhere += ` AND A.attr_title like ` + "'%" + fmt.Sprintf("%s", keywords) + "%'"
@@ -72,8 +76,10 @@ func (d *BizObjectAttrRepo) GetList(m map[string]interface{}) ([]viewmodels.BizO
 }
 
 func (d *BizObjectAttrRepo) GetAll() ([]viewmodels.BizObjectAttrInfo, error) {
-    sqlSelect  := ` SELECT A.*                  `
-    sqlFrom    := ` FROM   biz_object_attr AS A  `
+    sqlSelect  := ` SELECT    A.* ,
+                              B.object_code `
+    sqlFrom    := ` FROM      biz_object_attr AS A
+                    LEFT JOIN biz_object_attr AS B ON(A.biz_id = B.biz_id AND A.object_id = B.object_id) `
     sqlWhere   := ` WHERE  A.deleted_flag = 0   `
     sqlOrderBy := ` ORDER BY A.sort_no          `
     
@@ -87,8 +93,10 @@ func (d *BizObjectAttrRepo) GetAll() ([]viewmodels.BizObjectAttrInfo, error) {
 }
 
 func (d *BizObjectAttrRepo) GetListById(bizId, objectId int64) ([]viewmodels.BizObjectAttrInfo, error) {
-    sqlSelect  := ` SELECT A.*                 `
-    sqlFrom    := ` FROM  biz_object_attr AS A  `
+    sqlSelect  := ` SELECT    A.* ,
+                              B.object_code `
+    sqlFrom    := ` FROM      biz_object_attr AS A
+                    LEFT JOIN biz_object_attr AS B ON(A.biz_id = B.biz_id AND A.object_id = B.object_id) `
     sqlWhere   := ` WHERE A.deleted_flag = 0   `
     sqlWhere   += fmt.Sprintf(" AND A.biz_id  = %d", bizId)
     sqlWhere   += fmt.Sprintf(" AND A.object_id = %d", objectId)
@@ -104,8 +112,10 @@ func (d *BizObjectAttrRepo) GetListById(bizId, objectId int64) ([]viewmodels.Biz
 }
 
 func (d *BizObjectAttrRepo) GetById(bizId, objectId, attrId int64) (*viewmodels.BizObjectAttrInfo, error) {
-    sqlSelect  := ` SELECT A.*                 `
-    sqlFrom    := ` FROM  biz_object_attr AS A  `
+    sqlSelect  := ` SELECT A.* ,
+                           B.object_code `
+    sqlFrom    := ` FROM      biz_object_attr AS A
+                    LEFT JOIN biz_object_attr AS B ON(A.biz_id = B.biz_id AND A.object_id = B.object_id) `
     sqlWhere   := ` WHERE A.deleted_flag = 0   `
     sqlWhere   += fmt.Sprintf(" AND A.biz_id  = %d", bizId)
     sqlWhere   += fmt.Sprintf(" AND A.object_id = %d", objectId)

+ 40 - 25
repositories/biz_object_mapping_repo.go

@@ -22,11 +22,14 @@ func (d *BizObjectMappingRepo) GetPage(m map[string]interface{}) (*viewmodels.Pa
     page      := m["page"].(int)
     
     sqlSelect := ` SELECT A.*,
-                          B.model_title  as mapping_model_title,
-                          C.object_title as mapping_object_title`
+                          B.object_code,
+                          C.model_title  as mapping_model_title,
+                          D.object_title as mapping_object_title,
+                          D.object_code  as mapping_object_code `
     sqlFrom   := ` FROM      biz_object_mapping AS A
-                   LEFT JOIN ds_model           AS B ON (A.mapping_model_id  = B.model_id)
-                   LEFT JOIN ds_object          AS C ON (A.mapping_object_id = C.object_id)   `
+                   LEFT JOIN biz_object         AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
+                   LEFT JOIN ds_model           AS C ON (A.mapping_model_id  = C.model_id)
+                   LEFT JOIN ds_object          AS D ON (A.mapping_object_id = D.object_id)   `
     sqlWhere  := ` WHERE A.deleted_flag = 0       `
     if keywords, ok := m["keywords"]; ok {
         sqlWhere += ` AND A.object_title like ` + "'%" + fmt.Sprintf("%s", keywords) + "%'"
@@ -58,11 +61,14 @@ func (d *BizObjectMappingRepo) GetPage(m map[string]interface{}) (*viewmodels.Pa
 
 func (d *BizObjectMappingRepo) GetList(m map[string]interface{}) ([]viewmodels.BizObjectMappingInfo, error) {
     sqlSelect := ` SELECT A.*,
-                          B.model_title  as mapping_model_title,
-                          C.object_title as mapping_object_title`
+                          B.object_code,
+                          C.model_title  as mapping_model_title,
+                          D.object_title as mapping_object_title,
+                          D.object_code  as mapping_object_code `
     sqlFrom   := ` FROM      biz_object_mapping AS A
-                   LEFT JOIN ds_model           AS B ON (A.mapping_model_id  = B.model_id)
-                   LEFT JOIN ds_object          AS C ON (A.mapping_object_id = C.object_id)   `
+                   LEFT JOIN biz_object         AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
+                   LEFT JOIN ds_model           AS C ON (A.mapping_model_id  = C.model_id)
+                   LEFT JOIN ds_object          AS D ON (A.mapping_object_id = D.object_id)   `
     sqlWhere  := ` WHERE A.deleted_flag = 0       `
     if keywords, ok := m["keywords"]; ok {
         sqlWhere += ` AND A.object_title like ` + "'%" + fmt.Sprintf("%s", keywords) + "%'"
@@ -79,12 +85,15 @@ func (d *BizObjectMappingRepo) GetList(m map[string]interface{}) ([]viewmodels.B
 }
 
 func (d *BizObjectMappingRepo) GetAll() ([]viewmodels.BizObjectMappingInfo, error) {
-    sqlSelect  := ` SELECT A.*,
-                           B.model_title  as mapping_model_title,
-                           C.object_title as mapping_object_title`
-    sqlFrom    := ` FROM      biz_object_mapping AS A
-                    LEFT JOIN ds_model           AS B ON (A.mapping_model_id  = B.model_id)
-                    LEFT JOIN ds_object          AS C ON (A.mapping_object_id = C.object_id)   `
+    sqlSelect := ` SELECT    A.*,
+                             B.object_code,
+                             C.model_title  as mapping_model_title,
+                             D.object_title as mapping_object_title,
+                             D.object_code  as mapping_object_code `
+    sqlFrom   := ` FROM      biz_object_mapping AS A
+                   LEFT JOIN biz_object         AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
+                   LEFT JOIN ds_model           AS C ON (A.mapping_model_id  = C.model_id)
+                   LEFT JOIN ds_object          AS D ON (A.mapping_object_id = D.object_id)   `
     sqlWhere   := ` WHERE A.deleted_flag = 0       `
     sqlOrderBy := ` ORDER BY A.sort_no          `
     
@@ -98,12 +107,15 @@ func (d *BizObjectMappingRepo) GetAll() ([]viewmodels.BizObjectMappingInfo, erro
 }
 
 func (d *BizObjectMappingRepo) GetListById(bizId, objectId int64) ([]viewmodels.BizObjectMappingInfo, error) {
-    sqlSelect  := ` SELECT A.*,
-                           B.model_title  as mapping_model_title,
-                           C.object_title as mapping_object_title`
-    sqlFrom    := ` FROM      biz_object_mapping AS A
-                    LEFT JOIN ds_model           AS B ON (A.mapping_model_id  = B.model_id)
-                    LEFT JOIN ds_object          AS C ON (A.mapping_object_id = C.object_id)   `
+    sqlSelect := ` SELECT    A.*,
+                             B.object_code,
+                             C.model_title  as mapping_model_title,
+                             D.object_title as mapping_object_title,
+                             D.object_code  as mapping_object_code `
+    sqlFrom   := ` FROM      biz_object_mapping AS A
+                   LEFT JOIN biz_object         AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
+                   LEFT JOIN ds_model           AS C ON (A.mapping_model_id  = C.model_id)
+                   LEFT JOIN ds_object          AS D ON (A.mapping_object_id = D.object_id)   `
     sqlWhere   := ` WHERE A.deleted_flag = 0       `
     sqlWhere   += fmt.Sprintf(" AND A.biz_id  = %d", bizId)
     sqlWhere   += fmt.Sprintf(" AND A.object_id = %d", objectId)
@@ -119,12 +131,15 @@ func (d *BizObjectMappingRepo) GetListById(bizId, objectId int64) ([]viewmodels.
 }
 
 func (d *BizObjectMappingRepo) GetById(bizId, objectId, mappingId int64) (*viewmodels.BizObjectMappingInfo, error) {
-    sqlSelect := ` SELECT A.*,
-                          B.model_title  as mapping_model_title,
-                          C.object_title as mapping_object_title`
+    sqlSelect := ` SELECT    A.*,
+                             B.object_code,
+                             C.model_title  as mapping_model_title,
+                             D.object_title as mapping_object_title,
+                             D.object_code  as mapping_object_code `
     sqlFrom   := ` FROM      biz_object_mapping AS A
-                   LEFT JOIN ds_model           AS B ON (A.mapping_model_id  = B.model_id)
-                   LEFT JOIN ds_object          AS C ON (A.mapping_object_id = C.object_id)   `
+                   LEFT JOIN biz_object         AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
+                   LEFT JOIN ds_model           AS C ON (A.mapping_model_id  = C.model_id)
+                   LEFT JOIN ds_object          AS D ON (A.mapping_object_id = D.object_id)   `
     sqlWhere  := ` WHERE A.deleted_flag = 0       `
     sqlWhere  += fmt.Sprintf(" AND A.biz_id  = %d", bizId)
     sqlWhere  += fmt.Sprintf(" AND A.object_id = %d", objectId)

+ 18 - 28
repositories/biz_object_oam_params_repo.go

@@ -19,18 +19,15 @@ func NewBizObjectOAMParamsRepo(engine *xorm.Engine) *BizObjectOAMParamsRepo {
 }
 
 func (d *BizObjectOAMParamsRepo) GetList(m map[string]interface{}) ([]viewmodels.BizObjectOAMParamsInfo, error) {
-    sqlSelect  := ` SELECT A.*,
+    sqlSelect  := ` SELECT A.* ,
                            B.object_title,
                            B.object_code,
-                           B.object_type,
                            C.oam_title,
-                           D.attr_title AS target_attr_title,
-                           D.attr_code  AS target_attr_code,
-                           R.rule_title `
-    sqlFrom    := ` FROM      biz_object_oam_params AS A
-                    LEFT JOIN biz_object            AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
-                    LEFT JOIN biz_object_oam        AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id) `
-    sqlWhere   := ` WHERE A.deleted_flag = 0    `
+                           C.oam_code   `
+    sqlFrom    := ` FROM   biz_object_oam_params AS A
+                    LEFT   biz_object            AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
+                    LEFT   biz_object_oam        AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id)`
+    sqlWhere   := ` WHERE  A.deleted_flag = 0    `
     if bizId, ok := m["bizId"]; ok {
         sqlWhere += fmt.Sprintf(" AND A.biz_id = %d ", bizId)
     }
@@ -52,17 +49,14 @@ func (d *BizObjectOAMParamsRepo) GetList(m map[string]interface{}) ([]viewmodels
 }
 
 func (d *BizObjectOAMParamsRepo) GetById(bizId, objectId, oamId, orId int64) (*viewmodels.BizObjectOAMParamsInfo, error) {
-    sqlSelect  := ` SELECT A.*,
+    sqlSelect  := ` SELECT A.* ,
                            B.object_title,
                            B.object_code,
-                           B.object_type,
                            C.oam_title,
-                           D.attr_title AS target_attr_title,
-                           D.attr_code  AS target_attr_code,
-                           R.rule_title `
-    sqlFrom    := ` FROM      biz_object_oam_params AS A
-                    LEFT JOIN biz_object            AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
-                    LEFT JOIN biz_object_oam        AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id) `
+                           C.oam_code   `
+    sqlFrom    := ` FROM   biz_object_oam_params AS A
+                    LEFT   biz_object            AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
+                    LEFT   biz_object_oam        AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id)`
     sqlWhere   := ` WHERE A.deleted_flag = 0    `
     sqlWhere   += fmt.Sprintf(" AND A.biz_id    = %d ", bizId)
     sqlWhere   += fmt.Sprintf(" AND A.object_id = %d ", objectId)
@@ -79,17 +73,14 @@ func (d *BizObjectOAMParamsRepo) GetById(bizId, objectId, oamId, orId int64) (*v
 }
 
 func (d *BizObjectOAMParamsRepo) GetListById(bizId, objectId, oamId int64) ([]viewmodels.BizObjectOAMParamsInfo, error) {
-    sqlSelect  := ` SELECT A.*,
+    sqlSelect  := ` SELECT A.* ,
                            B.object_title,
                            B.object_code,
-                           B.object_type,
                            C.oam_title,
-                           D.attr_title AS target_attr_title,
-                           D.attr_code  AS target_attr_code,
-                           R.rule_title `
-    sqlFrom    := ` FROM      biz_object_oam_params AS A
-                    LEFT JOIN biz_object            AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
-                    LEFT JOIN biz_object_oam        AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id) `
+                           C.oam_code   `
+    sqlFrom    := ` FROM   biz_object_oam_params AS A
+                    LEFT   biz_object            AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)
+                    LEFT   biz_object_oam        AS C ON (A.biz_id = C.biz_id AND A.object_id = C.object_id AND A.oam_id = C.oam_id)`
     sqlWhere   := ` WHERE A.deleted_flag = 0    `
     sqlWhere   += fmt.Sprintf(" AND A.biz_id    = %d ", bizId)
     sqlWhere   += fmt.Sprintf(" AND A.object_id = %d ", objectId)
@@ -105,7 +96,6 @@ func (d *BizObjectOAMParamsRepo) GetListById(bizId, objectId, oamId int64) ([]vi
     }
 }
 
-
 func (d *BizObjectOAMParamsRepo) Create(data *datamodels.BizObjectOAMParams) error {
     _, err := d.engine.Insert(data)
     return err
@@ -117,9 +107,9 @@ func (d *BizObjectOAMParamsRepo) Update(data *datamodels.BizObjectOAMParams) err
     oamId     := data.OamId
     paramsId  := data.ParamsId
     _, err := d.engine.
-        Where("biz_id = ?", bizId).
+        Where("biz_id = ?",    bizId).
         Where("object_id = ?", objectId).
-        Where("oam_id = ?", oamId).
+        Where("oam_id = ?",    oamId).
         Where("params_id = ?", paramsId).
         AllCols().
         Update(data)

+ 22 - 0
repositories/biz_object_oam_repo.go

@@ -48,6 +48,28 @@ func (d *BizObjectOAMRepo) GetList(m map[string]interface{}) ([]viewmodels.BizOb
     }
 }
 
+func (d *BizObjectOAMRepo) GetListById(bizId, objectId int64) ([]viewmodels.BizObjectOAMInfo, error) {
+    sqlSelect  := ` SELECT A.*,
+                           B.object_title,
+                           B.object_code,
+                           B.object_type `
+    sqlFrom    := ` FROM      biz_object_oam AS A
+                    LEFT JOIN biz_object     AS B ON (A.biz_id = B.biz_id AND A.object_id = B.object_id)`
+    
+    sqlWhere   := ` WHERE A.deleted_flag = 0    `
+    sqlWhere   += fmt.Sprintf(" AND A.biz_id    = %d ", bizId)
+    sqlWhere   += fmt.Sprintf(" AND A.object_id = %d ", objectId)
+    sqlOrderBy := " ORDER BY A.oam_id ASC "
+    
+    datalist   := make([]viewmodels.BizObjectOAMInfo, 0)
+    err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
+    if err != nil {
+        return nil, err
+    } else {
+        return datalist, nil
+    }
+}
+
 func (d *BizObjectOAMRepo) GetById(bizId, objectId, oamId int64) (*viewmodels.BizObjectOAMInfo, error) {
     sqlSelect  := ` SELECT A.*,
                            B.object_title,

+ 3 - 0
repositories/biz_object_oam_rule_repo.go

@@ -24,6 +24,7 @@ func (d *BizObjectOAMRuleRepo) GetList(m map[string]interface{}) ([]viewmodels.B
                            B.object_code,
                            B.object_type,
                            C.oam_title,
+                           C.oam_code,
                            D.attr_title AS target_attr_title,
                            D.attr_code  AS target_attr_code,
                            R.rule_title `
@@ -63,6 +64,7 @@ func (d *BizObjectOAMRuleRepo) GetById(bizId, objectId, oamId, orId int64) (*vie
                            B.object_code,
                            B.object_type,
                            C.oam_title,
+                           C.oam_code,
                            D.attr_title AS target_attr_title,
                            D.attr_code  AS target_attr_code,
                            R.rule_title `
@@ -92,6 +94,7 @@ func (d *BizObjectOAMRuleRepo) GetListById(bizId, objectId, oamId int64) ([]view
                            B.object_code,
                            B.object_type,
                            C.oam_title,
+                           C.oam_code,
                            D.attr_title AS target_attr_title,
                            D.attr_code  AS target_attr_code,
                            R.rule_title `

+ 22 - 10
repositories/data_bus_rebo.go

@@ -81,13 +81,16 @@ func (d *DataBusRepo) GetById(sqlStatement string, fields map[string]interface{}
 }
 
 func (d *DataBusRepo) Create(objectCode string, values map[string]interface{}) error {
-    object, err1 := cache.GetModelObjectData(objectCode)
+    object, err1 := cache.GetModelObject(objectCode)
     if err1 != nil {
         return err1
     }
     
     tableName := object.ObjectCode
-    fields    := object.Attrs
+    fields, err2 := cache.GetModelObjectAttrs(objectCode)
+    if err2 != nil {
+        return err2
+    }
     
     sql := "INSERT INTO" + fmt.Sprintf(" %s ", tableName)
     sqlFields := "( "
@@ -118,18 +121,21 @@ func (d *DataBusRepo) Create(objectCode string, values map[string]interface{}) e
     sqlFields += ") "
     sqlValues += ") "
     
-    _, err2 := d.engine.Exec(sql + sqlFields + sqlValues)
-    return err2
+    _, err3 := d.engine.Exec(sql + sqlFields + sqlValues)
+    return err3
 }
 
 func (d *DataBusRepo) Update(objectCode string, values map[string]interface{}) error {
-    object, err1 := cache.GetModelObjectData(objectCode)
+    object, err1 := cache.GetModelObject(objectCode)
     if err1 != nil {
         return err1
     }
     
     tableName := object.ObjectCode
-    fields    := object.Attrs
+    fields, err2 := cache.GetModelObjectAttrs(objectCode)
+    if err2 != nil {
+        return err2
+    }
     
     sql := fmt.Sprintf("UPDATE %s ", tableName)
     
@@ -174,13 +180,16 @@ func (d *DataBusRepo) Update(objectCode string, values map[string]interface{}) e
 }
 
 func (d *DataBusRepo) Patch(objectCode string, values map[string]interface{}) error {
-    object, err1 := cache.GetModelObjectData(objectCode)
+    object, err1 := cache.GetModelObject(objectCode)
     if err1 != nil {
         return err1
     }
     
     tableName := object.ObjectCode
-    fields    := object.Attrs
+    fields, err2 := cache.GetModelObjectAttrs(objectCode)
+    if err2 != nil {
+        return err2
+    }
     
     sql := fmt.Sprintf("UPDATE table %s ", tableName)
     
@@ -222,13 +231,16 @@ func (d *DataBusRepo) Patch(objectCode string, values map[string]interface{}) er
 }
 
 func (d *DataBusRepo) Delete(objectCode string, values map[string]interface{}) error {
-    object, err1 := cache.GetModelObjectData(objectCode)
+    object, err1 := cache.GetModelObject(objectCode)
     if err1 == nil {
         return err1
     }
     
     tableName := object.ObjectCode
-    fields    := object.Attrs
+    fields, err2 := cache.GetModelObjectAttrs(objectCode)
+    if err2 != nil {
+        return err2
+    }
     
     deletedBy := values["deletedBy"].(int64)
     

+ 28 - 15
repositories/model_object_attr_repo.go

@@ -22,8 +22,10 @@ func (d *ModelObjectAttrRepo) GetPage(m map[string]interface{}) (*viewmodels.Pag
 	limit     := m["limit"].(int)
 	page      := m["page"].(int)
 
-	sqlSelect := ` SELECT A.*                   `
-	sqlFrom   := ` FROM   ds_object_attr   AS A `
+	sqlSelect := ` SELECT    A.*,
+                             B.object_code   `
+	sqlFrom   := ` FROM      ds_object_attr AS A
+                   LEFT JOIN ds_object      AS B ON (A.model_id = B.model_id AND A.object_id = B.object_id)`
 	sqlWhere  := ` WHERE A.deleted_flag = 0     `
 	if keywords, ok := m["keywords"]; ok {
 		sqlWhere += ` AND A.attr_title like ` + "'%" + fmt.Sprintf("%s", keywords) + "%'"
@@ -54,8 +56,10 @@ func (d *ModelObjectAttrRepo) GetPage(m map[string]interface{}) (*viewmodels.Pag
 }
 
 func (d *ModelObjectAttrRepo) GetList(m map[string]interface{}) ([]viewmodels.ModelObjectAttrInfo, error) {
-	sqlSelect  := ` SELECT A.*                 `
-	sqlFrom    := ` FROM   ds_object_attr AS A  `
+	sqlSelect := ` SELECT    A.*,
+                             B.object_code   `
+	sqlFrom   := ` FROM      ds_object_attr AS A
+                   LEFT JOIN ds_object      AS B ON (A.model_id = B.model_id AND A.object_id = B.object_id)`
 	sqlWhere   := ` WHERE  A.deleted_flag = 0   `
 	if keywords, ok := m["keywords"]; ok {
 		sqlWhere += ` AND A.attr_title like ` + "'%" + fmt.Sprintf("%s", keywords) + "%'"
@@ -72,8 +76,10 @@ func (d *ModelObjectAttrRepo) GetList(m map[string]interface{}) ([]viewmodels.Mo
 }
 
 func (d *ModelObjectAttrRepo) GetAll() ([]viewmodels.ModelObjectAttrInfo, error) {
-	sqlSelect  := ` SELECT A.*                  `
-	sqlFrom    := ` FROM   ds_object_attr AS A  `
+	sqlSelect := ` SELECT    A.*,
+                             B.object_code   `
+	sqlFrom   := ` FROM      ds_object_attr AS A
+                   LEFT JOIN ds_object      AS B ON (A.model_id = B.model_id AND A.object_id = B.object_id)`
 	sqlWhere   := ` WHERE  A.deleted_flag = 0   `
 	sqlOrderBy := ` ORDER BY A.sort_no          `
 	
@@ -87,8 +93,10 @@ func (d *ModelObjectAttrRepo) GetAll() ([]viewmodels.ModelObjectAttrInfo, error)
 }
 
 func (d *ModelObjectAttrRepo) GetListById(modelId, objectId int64) ([]viewmodels.ModelObjectAttrInfo, error) {
-	sqlSelect  := ` SELECT A.*                 `
-	sqlFrom    := ` FROM  ds_object_attr AS A  `
+	sqlSelect := ` SELECT    A.*,
+                             B.object_code   `
+	sqlFrom   := ` FROM      ds_object_attr AS A
+                   LEFT JOIN ds_object      AS B ON (A.model_id = B.model_id AND A.object_id = B.object_id)`
 	sqlWhere   := ` WHERE A.deleted_flag = 0   `
 	sqlWhere   += fmt.Sprintf(" AND A.model_id  = %d", modelId)
 	sqlWhere   += fmt.Sprintf(" AND A.object_id = %d", objectId)
@@ -104,13 +112,18 @@ func (d *ModelObjectAttrRepo) GetListById(modelId, objectId int64) ([]viewmodels
 }
 
 func (d *ModelObjectAttrRepo) GetById(modelId, objectId, attrId int64) (*viewmodels.ModelObjectAttrInfo, error) {
-	data    := &viewmodels.ModelObjectAttrInfo{}
-	ok, err := d.engine.
-		Where("model_id = ?", modelId).
-		Where("object_id = ?", objectId).
-		Where("attr_id = ?", attrId).
-		Get(data)
-	if !ok && err == nil {
+	sqlSelect := ` SELECT    A.*,
+                             B.object_code   `
+	sqlFrom   := ` FROM      ds_object_attr AS A
+                   LEFT JOIN ds_object      AS B ON (A.model_id = B.model_id AND A.object_id = B.object_id)`
+	sqlWhere   := ` WHERE A.deleted_flag = 0   `
+	sqlWhere   += fmt.Sprintf(" AND A.model_id  = %d", modelId)
+	sqlWhere   += fmt.Sprintf(" AND A.object_id = %d", objectId)
+	sqlWhere   += fmt.Sprintf(" AND A.attr_id   = %d", attrId)
+	
+	data := &viewmodels.ModelObjectAttrInfo{}
+	ok, err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere).OrderBy("group_id ASC").Get(data)
+	if !ok && err != nil {
 		return nil, err
 	} else {
 		return data, nil

+ 14 - 17
service/api_gateway_service.go

@@ -33,12 +33,12 @@ func NewApiGatewayService() ApiGatewayService {
 }
 
 func (a *apiGatewayService) GetParams(objectCode, oamCode string) (map[string]interface{}, error) {
-    bzObjectData, err := cache.GetBizObjectData(objectCode)
-    if err != nil {
-        return nil, err
+    attrs, err2 := cache.GetBizObjectAttrs(objectCode)
+    if err2 != nil {
+        return nil, err2
     }
     
-    attrs := bzObjectData.Attrs
+    
     result := make(map[string]interface{}, 0)
     for _, attr := range attrs {
         attrType := attr.AttrType
@@ -64,7 +64,7 @@ func (a *apiGatewayService) Get(objectCode, oamCode string, m map[string]interfa
         return nil, err1
     }
     
-    oam , err2:= cache.GetBizObjectOAMData(objectCode, oamCode)
+    oam , err2:= cache.GetBizObjectOAM(objectCode, oamCode)
     if err2 != nil {
         return nil, err2
     }
@@ -84,7 +84,7 @@ func (a *apiGatewayService) GetList(objectCode, oamCode string, m map[string]int
         return nil, err2
     }
     
-    oam , err2:= cache.GetBizObjectOAMData(objectCode, oamCode)
+    oam , err2:= cache.GetBizObjectOAM(objectCode, oamCode)
     if err2 != nil {
         return nil, err2
     }
@@ -102,7 +102,7 @@ func (a *apiGatewayService) GetPage(objectCode, oamCode string, m map[string]int
         return nil, err1
     }
     
-    oam , err2:= cache.GetBizObjectOAMData(objectCode, oamCode)
+    oam , err2:= cache.GetBizObjectOAM(objectCode, oamCode)
     if err2 != nil {
         return nil, err2
     }
@@ -174,11 +174,11 @@ func (a *apiGatewayService) Delete(objectCode, oamCode string, m map[string]inte
 }
 
 func (a *apiGatewayService) HandleOAMRuleList(objectCode, oamCode string, m map[string]interface{}, user *viewmodels.CurUserInfo) error {
-    oamData, err1 := cache.GetBizObjectOAMData(objectCode, oamCode)
+    oamRules, err1 := cache.GetBizObjectOAMRules(objectCode, oamCode)
     if err1 != nil {
         return err1
     }
-    oamRules := oamData.OamRules
+    
     for _, oamRule := range oamRules {
        err2 := a.HandleOAMRule(&oamRule, m, user)
        if err2 != nil {
@@ -212,12 +212,11 @@ func (a *apiGatewayService) HandleOAMRule(oamRule *viewmodels.BizObjectOAMRuleIn
 }
 
 func (a *apiGatewayService) Mapping2ModelObjectAttr(objectCode string, m map[string]interface{})(map[string]interface{}, error) {
-    bzObject, err := cache.GetBizObjectData(objectCode)
+    bizObjectAttrs, err := cache.GetBizObjectAttrs(objectCode)
     if err != nil {
         return nil, err
     }
     
-    bizObjectAttrs := bzObject.Attrs
     for _, bzAttr := range bizObjectAttrs {
         bzAttrCode    := bzAttr.AttrCode
         bzMappingCode := bzAttr.MappingCode
@@ -230,12 +229,11 @@ func (a *apiGatewayService) Mapping2ModelObjectAttr(objectCode string, m map[str
 }
 
 func (a *apiGatewayService) Mapping2BizObjectAttr(objectCode string, m map[string]interface{})(map[string]interface{}, error) {
-    bzObject, err := cache.GetBizObjectData(objectCode)
+    bizObjectAttrs, err := cache.GetBizObjectAttrs(objectCode)
     if err != nil {
         return nil, err
     }
     
-    bizObjectAttrs := bzObject.Attrs
     params := make(map[string]interface{}, 0)
     for _, bzAttr := range bizObjectAttrs {
         bzAttrCode    := bzAttr.AttrCode
@@ -249,13 +247,13 @@ func (a *apiGatewayService) Mapping2BizObjectAttr(objectCode string, m map[strin
 
 
 func (a *apiGatewayService) Mapping2BizObjectList(objectCode string, dataList []map[string]interface{})([]map[string]interface{}, error) {
-    bzObject, err := cache.GetBizObjectData(objectCode)
+    bizObjectAttrs, err := cache.GetBizObjectAttrs(objectCode)
     if err != nil {
         return nil, err
     }
+    
     targetDataList := make([]map[string]interface{}, 0)
     for _, data := range dataList {
-        bizObjectAttrs := bzObject.Attrs
         targetData := make(map[string]interface{}, 0)
         for _, bzAttr := range bizObjectAttrs {
             bzAttrCode    := bzAttr.AttrCode
@@ -270,7 +268,7 @@ func (a *apiGatewayService) Mapping2BizObjectList(objectCode string, dataList []
 }
 
 func (a *apiGatewayService) Mapping2BizPageObject(objectCode string, pageData *viewmodels.PageResult)(*viewmodels.PageResult, error) {
-    bzObject, err := cache.GetBizObjectData(objectCode)
+    bizObjectAttrs, err := cache.GetBizObjectAttrs(objectCode)
     if err != nil {
         return nil, err
     }
@@ -282,7 +280,6 @@ func (a *apiGatewayService) Mapping2BizPageObject(objectCode string, pageData *v
     
     targetDataList := make([]map[string]interface{}, 0)
     for _, data := range dataList {
-        bizObjectAttrs := bzObject.Attrs
         targetData := make(map[string]interface{}, 0)
         for _, bzAttr := range bizObjectAttrs {
             bzAttrCode    := bzAttr.AttrCode

+ 1 - 0
service/api_service.go

@@ -17,6 +17,7 @@ type ApiService interface {
     Update(d *datamodels.Api) error
     ChangeStatus(apiId, status int64) error
     Delete(m map[string]interface{}) error
+    
     CacheApiData(apiId int64) error
 }
 

+ 25 - 4
service/biz_object_attr_service.go

@@ -1,6 +1,8 @@
 package service
 
 import (
+    "errors"
+    "xps/cache"
     "xps/datamodels"
     "xps/datasource"
     "xps/repositories"
@@ -15,22 +17,24 @@ type BizObjectAttrService interface {
     Create(d *datamodels.BizObjectAttr) error
     Update(d *datamodels.BizObjectAttr) error
     Delete(m map[string]interface{}) error
+    
+    CacheBizObjectAttrs(bizId, objectId int64) error
 }
 
 type bizObjectAttrService struct {
     repo *repositories.BizObjectAttrRepo
 }
 
-func (s *bizObjectAttrService) GetListById(bizId, objectId int64) ([]viewmodels.BizObjectAttrInfo, error) {
-    return s.repo.GetListById(bizId, objectId)
-}
-
 func NewBizObjectAttrService() BizObjectAttrService {
     return &bizObjectAttrService{
         repo: repositories.NewBizObjectAttrRepo(datasource.InstanceMaster()),
     }
 }
 
+func (s *bizObjectAttrService) GetListById(bizId, objectId int64) ([]viewmodels.BizObjectAttrInfo, error) {
+    return s.repo.GetListById(bizId, objectId)
+}
+
 func (s *bizObjectAttrService) GetList(m map[string]interface{}) ([]viewmodels.BizObjectAttrInfo, error) {
     return s.repo.GetList(m)
 }
@@ -55,3 +59,20 @@ func (s *bizObjectAttrService) Update(attr *datamodels.BizObjectAttr) error {
 func (s *bizObjectAttrService) Delete(m map[string]interface{}) error {
     return s.repo.Delete(m)
 }
+
+func (s *bizObjectAttrService) CacheBizObjectAttrs(bizId, objectId int64) error {
+    attrList, err1 := s.repo.GetListById(bizId, objectId)
+    if err1 != nil {
+        return err1
+    }
+    
+    if len(attrList) <= 0 {
+        return errors.New("biz Object Attrs Not Exist")
+    }
+    objectCode := attrList[0].ObjectCode
+    err2 := cache.SetBizObjectAttrs(objectCode, attrList)
+    if err2 != nil {
+        return errors.New("Redis缓存Model数据失败")
+    }
+    return nil
+}

+ 21 - 0
service/biz_object_mapping_service.go

@@ -1,6 +1,8 @@
 package service
 
 import (
+    "errors"
+    "xps/cache"
     "xps/datamodels"
     "xps/datasource"
     "xps/repositories"
@@ -15,6 +17,8 @@ type BizObjectMappingService interface {
     Create(d *datamodels.BizObjectMapping) error
     Update(d *datamodels.BizObjectMapping) error
     Delete(m map[string]interface{}) error
+    
+    CacheBizObjectMapping(bizId, objectId int64) error
 }
 
 type bizObjectMappingService struct {
@@ -56,3 +60,20 @@ func (s *bizObjectMappingService) Update(attr *datamodels.BizObjectMapping) erro
 func (s *bizObjectMappingService) Delete(m map[string]interface{}) error {
     return s.repo.Delete(m)
 }
+
+func (s *bizObjectMappingService) CacheBizObjectMapping(bizId, objectId int64) error {
+    mappingList, err1 := s.repo.GetListById(bizId, objectId)
+    if err1 != nil {
+        return err1
+    }
+    
+    if len(mappingList) <= 0 {
+        return errors.New("biz Object Mapping Not Exist")
+    }
+    objectCode := mappingList[0].ObjectCode
+    err2 := cache.SetBizObjectMapping(objectCode, mappingList)
+    if err2 != nil {
+        return errors.New("Redis缓存Model数据失败")
+    }
+    return nil
+}

+ 10 - 19
service/biz_object_oam_params_service.go

@@ -17,7 +17,7 @@ type BizObjectOAMParamsService interface {
     Update(param *datamodels.BizObjectOAMParams) error
     Delete(m map[string]interface{}) error
     
-    
+    CacheObjectOAMParams(bizId, objectId, oamId int64) error
 }
 
 type bizObjectOAMParamsService struct {
@@ -48,7 +48,7 @@ func (s *bizObjectOAMParamsService) Create(param *datamodels.BizObjectOAMParams)
         return err1
     }
     
-    return s.CacheObjectOAMData(param.BizId, param.ObjectId, param.OamId)
+    return s.CacheObjectOAMParams(param.BizId, param.ObjectId, param.OamId)
 }
 
 func (s *bizObjectOAMParamsService) Update(param *datamodels.BizObjectOAMParams) error {
@@ -56,7 +56,7 @@ func (s *bizObjectOAMParamsService) Update(param *datamodels.BizObjectOAMParams)
     if err1 != nil {
         return err1
     }
-    return s.CacheObjectOAMData(param.BizId, param.ObjectId, param.OamId)
+    return s.CacheObjectOAMParams(param.BizId, param.ObjectId, param.OamId)
 }
 
 func (s *bizObjectOAMParamsService) Delete(m map[string]interface{}) error {
@@ -69,29 +69,20 @@ func (s *bizObjectOAMParamsService) Delete(m map[string]interface{}) error {
 }
 
 
-func (s *bizObjectOAMParamsService) CacheObjectOAMData(bizId, objectId, oamId int64) error {
-    oam, err1 := s.oamRepo.GetById(bizId, objectId, oamId)
+func (s *bizObjectOAMParamsService) CacheObjectOAMParams(bizId, objectId, oamId int64) error {
+    params, err1 := s.oamParamsRepo.GetListById(bizId, objectId, oamId)
     if err1 != nil {
         return err1
     }
     
-    oamParams, err2 := s.oamParamsRepo.GetListById(bizId, objectId, oamId)
-    if err2 != nil {
-        return err2
-    }
-    
-    oamData := &viewmodels.BizObjectOAMData{
-        BizId: oam.BizId,
-        ObjectId: oam.ObjectId,
-        OamId: oam.OamId,
-        OamCode: oam.OamCode,
-        OamType: oam.OamType,
-        OamTitle: oam.OamTitle,
-        OamParams: oamParams,
+    if len(params) <= 0 {
+        return nil
     }
     
+    objectCode := params[0].ObjectCode
+    oamCode    := params[0].OamCode
     // 缓存数据
-    err3 := cache.SetBizObjectOAMData(oam.ObjectCode, oam.OamCode, oamData)
+    err3 := cache.SetBizObjectOAMParams(objectCode, oamCode, params)
     if err3 != nil {
         return errors.New("Redis缓存Model数据失败")
     }

+ 9 - 18
service/biz_object_oam_rule_service.go

@@ -16,7 +16,7 @@ type BizObjectOAMRuleService interface {
     Update(or *datamodels.BizObjectOAMRule) error
     Delete(m map[string]interface{}) error
     
-    
+    CacheObjectOAMRules(bizId, objectId, oamId int64) error
 }
 
 type bizObjectOAMRuleService struct {
@@ -47,7 +47,7 @@ func (s *bizObjectOAMRuleService) Create(or *datamodels.BizObjectOAMRule) error
         return err1
     }
     
-    return s.CacheObjectOAMData(or.BizId, or.ObjectId, or.OamId)
+    return s.CacheObjectOAMRules(or.BizId, or.ObjectId, or.OamId)
 }
 
 func (s *bizObjectOAMRuleService) Update(or *datamodels.BizObjectOAMRule) error {
@@ -55,7 +55,7 @@ func (s *bizObjectOAMRuleService) Update(or *datamodels.BizObjectOAMRule) error
     if err1 != nil {
         return err1
     }
-    return s.CacheObjectOAMData(or.BizId, or.ObjectId, or.OamId)
+    return s.CacheObjectOAMRules(or.BizId, or.ObjectId, or.OamId)
 }
 
 func (s *bizObjectOAMRuleService) Delete(m map[string]interface{}) error {
@@ -68,29 +68,20 @@ func (s *bizObjectOAMRuleService) Delete(m map[string]interface{}) error {
 }
 
 
-func (s *bizObjectOAMRuleService) CacheObjectOAMData(bizId, objectId, oamId int64) error {
-    oam, err1 := s.oamRepo.GetById(bizId, objectId, oamId)
-    if err1 != nil {
-        return err1
-    }
-    
+func (s *bizObjectOAMRuleService) CacheObjectOAMRules(bizId, objectId, oamId int64) error {
     oamRules, err2 := s.oamRuleRepo.GetListById(bizId, objectId, oamId)
     if err2 != nil {
         return err2
     }
     
-    oamData := &viewmodels.BizObjectOAMData{
-        BizId: oam.BizId,
-        ObjectId: oam.ObjectId,
-        OamId: oam.OamId,
-        OamCode: oam.OamCode,
-        OamType: oam.OamType,
-        OamTitle: oam.OamTitle,
-        OamRules: oamRules,
+    if len(oamRules) <= 0 {
+        return nil
     }
     
+    objectCode := oamRules[0].ObjectCode
+    oamCode    := oamRules[0].OamCode
     // 缓存数据
-    err3 := cache.SetBizObjectOAMData(oam.ObjectCode, oam.OamCode, oamData)
+    err3 := cache.SetBizObjectOAMRules(objectCode, oamCode, oamRules)
     if err3 != nil {
         return errors.New("Redis缓存Model数据失败")
     }

+ 10 - 22
service/biz_object_oam_service.go

@@ -11,12 +11,13 @@ import (
 
 type BizObjectOAMService interface {
     GetList(m map[string]interface{}) ([]viewmodels.BizObjectOAMInfo, error)
+    GetListById(bizId, objectId int64) ([]viewmodels.BizObjectOAMInfo, error)
     GetById(bizId, objectId, oamId int64) (*viewmodels.BizObjectOAMInfo, error)
     Create(d *datamodels.BizObjectOAM) error
     Update(d *datamodels.BizObjectOAM) error
     Delete(m map[string]interface{}) error
     
-    CacheObjectOAMData(bizId, objectId, oamId int64) error
+    CacheBizObjectOAM(bizId, objectId, oamId int64) error
     
 }
 
@@ -36,6 +37,10 @@ func (s *bizObjectOAMService) GetList(m map[string]interface{}) ([]viewmodels.Bi
     return s.repo.GetList(m)
 }
 
+func (s *bizObjectOAMService) GetListById(bizId, objectId int64) ([]viewmodels.BizObjectOAMInfo, error) {
+    return s.repo.GetListById(bizId, objectId)
+}
+
 func (s *bizObjectOAMService) GetById(bizId, objectId, oamId int64) (*viewmodels.BizObjectOAMInfo, error) {
     return s.repo.GetById(bizId, objectId, oamId)
 }
@@ -50,7 +55,7 @@ func (s *bizObjectOAMService) Create(oam *datamodels.BizObjectOAM) error {
     if err != nil {
         return err
     }
-    return s.CacheObjectOAMData(bizId, objectId, oamId)
+    return s.CacheBizObjectOAM(bizId, objectId, oamId)
 }
 
 func (s *bizObjectOAMService) Update(oam *datamodels.BizObjectOAM) error {
@@ -61,39 +66,22 @@ func (s *bizObjectOAMService) Update(oam *datamodels.BizObjectOAM) error {
     if err != nil {
         return err
     }
-    return s.CacheObjectOAMData(bizId, objectId, oamId)
+    return s.CacheBizObjectOAM(bizId, objectId, oamId)
 }
 
 func (s *bizObjectOAMService) Delete(m map[string]interface{}) error {
     return s.repo.Delete(m)
 }
 
-func (s *bizObjectOAMService) CacheObjectOAMData(bizId, objectId, oamId int64) error {
+func (s *bizObjectOAMService) CacheBizObjectOAM(bizId, objectId, oamId int64) error {
     oam, err1 := s.repo.GetById(bizId, objectId, oamId)
     if err1 != nil {
         return err1
     }
     
-    oamRules, err2 := s.oamRuleRepo.GetListById(bizId, objectId, oamId)
-    if err2 != nil {
-        return err2
-    }
-    
-    oamData := &viewmodels.BizObjectOAMData{
-        BizId: oam.BizId,
-        ObjectId: oam.ObjectId,
-        OamId: oam.OamId,
-        OamCode: oam.OamCode,
-        OamType: oam.OamType,
-        OamTitle: oam.OamTitle,
-        OamRules: oamRules,
-    }
-    
-    // 缓存数据
-    err3 := cache.SetBizObjectOAMData(oam.ObjectCode, oam.OamCode, oamData)
+    err3 := cache.SetBizObjectOAM(oam.ObjectCode, oam.OamCode, oam)
     if err3 != nil {
         return errors.New("Redis缓存Model数据失败")
     }
-    
     return nil
 }

+ 28 - 168
service/biz_object_service.go

@@ -2,7 +2,6 @@ package service
 
 import (
     "errors"
-    "time"
     "xps/cache"
     "xps/datamodels"
     "xps/datasource"
@@ -18,8 +17,8 @@ type BizObjectService interface {
     Update(d *datamodels.BizObject) error
     Delete(m map[string]interface{}) error
     GetObjectDataById(bizId, objectId int64) (*viewmodels.BizObjectDataInfo, error)
-    CreateObjectData(d *viewmodels.BizObjectData) error
-    UpdateObjectData(d *viewmodels.BizObjectData) error
+    
+    CacheBizObject(bizId, objectId int64) error
 }
 
 type bizObjectService struct {
@@ -46,13 +45,27 @@ func (s *bizObjectService) GetById(bizId, objectId int64) (*viewmodels.BizObject
     return s.bizObjectRepo.GetById(bizId, objectId)
 }
 
-func (s *bizObjectService) Create(Object *datamodels.BizObject) error {
-    Object.ObjectId = NewID()
-    return s.bizObjectRepo.Create(Object)
+func (s *bizObjectService) Create(o *datamodels.BizObject) error {
+    o.ObjectId = NewID()
+    err := s.bizObjectRepo.Create(o)
+    if err != nil {
+        return err
+    }
+    
+    bizId    := o.BizId
+    objectId := o.ObjectId
+    return s.CacheBizObject(bizId, objectId)
 }
 
-func (s *bizObjectService) Update(Object *datamodels.BizObject) error {
-    return s.bizObjectRepo.Update(Object)
+func (s *bizObjectService) Update(o *datamodels.BizObject) error {
+    err :=  s.bizObjectRepo.Update(o)
+    if err != nil {
+        return err
+    }
+    
+    bizId    := o.BizId
+    objectId := o.ObjectId
+    return s.CacheBizObject(bizId, objectId)
 }
 
 func (s *bizObjectService) Delete(m map[string]interface{}) error {
@@ -90,168 +103,15 @@ func (s *bizObjectService) GetObjectDataById(bizId, objectId int64) (*viewmodels
     return objectDataInfo, nil
 }
 
-func (s *bizObjectService) CreateObjectData(o *viewmodels.BizObjectData) error {
-    bizId   := o.BizId
-    objectId  := NewID()
-    createdBy := o.CreatedBy
-    object := &datamodels.BizObject{
-        BizId:     bizId,
-        ObjectId:    objectId,
-        ObjectType:  o.ObjectType,
-        ObjectTitle: o.ObjectTitle,
-        ObjectCode:  o.ObjectCode,
-        Comment:     o.Comment,
-        CreatedBy:   createdBy,
-        CreatedAt:   time.Now(),
+func (s *bizObjectService) CacheBizObject(bizId, objectId int64) error {
+    o, err1 := s.bizObjectRepo.GetById(bizId, objectId)
+    if err1 != nil {
+        return err1
     }
     
-    err := s.bizObjectRepo.Create(object)
-    if err != nil {
-        return err
+    err3 := cache.SetBizObject(o.ObjectCode, o)
+    if err3 != nil {
+        return errors.New("Redis缓存Biz Object数据失败")
     }
-    
-    // cache object
-    attrsCache := make([]viewmodels.BizObjectAttrInfo, 0)
-    for _, a := range o.Attrs {
-        newId := NewID()
-        objectAttr := &datamodels.BizObjectAttr{
-            BizId:        bizId,
-            ObjectId:     objectId,
-            AttrId:       newId,
-            AttrTitle:    a.AttrTitle,
-            AttrCode:     a.AttrCode,
-            AttrType:     a.AttrType,
-            AttrLength:   a.AttrLength,
-            AttrDecimals: a.AttrDecimals,
-            Comment:      a.Comment,
-            IsNotNull:    a.IsNotNull,
-            CreatedAt:    time.Now(),
-            CreatedBy:    createdBy,
-        }
-        
-        err = s.bizObjectAttrRepo.Create(objectAttr)
-        if err != nil {
-            return err
-        }
-        
-        attrCache := viewmodels.BizObjectAttrInfo{
-            BizId:      bizId,
-            ObjectId:     objectId,
-            AttrId:       newId,
-            AttrTitle:    a.AttrTitle,
-            AttrCode:     a.AttrCode,
-            AttrType:     a.AttrType,
-            AttrLength:   a.AttrLength,
-            AttrDecimals: a.AttrDecimals,
-            Comment:      a.Comment,
-            IsNotNull:    a.IsNotNull,
-        }
-        
-        attrsCache = append(attrsCache, attrCache)
-    }
-    
-    objectDataCache := &viewmodels.BizObjectDataInfo{
-        BizId:       o.BizId,
-        BizTitle:    o.BizTitle,
-        ObjectId:    o.ObjectId,
-        ObjectType:  o.ObjectType,
-        ObjectTitle: o.ObjectTitle,
-        ObjectCode:  o.ObjectCode,
-        Comment:     o.Comment,
-        Attrs:       attrsCache,
-    }
-    
-    // 缓存数据
-    err = cache.SetBizObjectData(o.ObjectCode, objectDataCache)
-    if err != nil {
-        return errors.New("Redis缓存Biz数据失败")
-    }
-    
-    return nil
-}
-
-
-
-func (s *bizObjectService) UpdateObjectData(o *viewmodels.BizObjectData) error {
-    bizId     := o.BizId
-    objectId  := o.ObjectId
-    updatedBy := o.UpdatedBy
-    object := &datamodels.BizObject{
-        BizId:     bizId,
-        ObjectId:    objectId,
-        ObjectType:  o.ObjectType,
-        ObjectTitle: o.ObjectTitle,
-        ObjectCode:  o.ObjectCode,
-        Comment:     o.Comment,
-        UpdatedBy:   updatedBy,
-    }
-    
-    err := s.bizObjectRepo.Update(object)
-    if err != nil {
-        return err
-    }
-    
-    err = s.bizObjectAttrRepo.DeleteByObjectId(bizId, objectId)
-    if err != nil {
-        return err
-    }
-    
-    // cache object
-    attrsCache := make([]viewmodels.BizObjectAttrInfo, 0)
-    for _, a := range o.Attrs {
-        newId := NewID()
-        objectAttr := &datamodels.BizObjectAttr{
-            BizId:        bizId,
-            ObjectId:     objectId,
-            AttrId:       newId,
-            AttrTitle:    a.AttrTitle,
-            AttrCode:     a.AttrCode,
-            MappingCode:  a.MappingCode,
-            AttrType:     a.AttrType,
-            AttrLength:   a.AttrLength,
-            AttrDecimals: a.AttrDecimals,
-            Comment:      a.Comment,
-            IsNotNull:    a.IsNotNull,
-            CreatedBy:    updatedBy,
-        }
-        
-        err = s.bizObjectAttrRepo.Create(objectAttr)
-        if err != nil {
-            return err
-        }
-        
-        attrCache := viewmodels.BizObjectAttrInfo{
-            BizId:        bizId,
-            ObjectId:     objectId,
-            AttrId:       newId,
-            AttrTitle:    a.AttrTitle,
-            AttrCode:     a.AttrCode,
-            MappingCode:  a.MappingCode,
-            AttrType:     a.AttrType,
-            AttrLength:   a.AttrLength,
-            AttrDecimals: a.AttrDecimals,
-            Comment:      a.Comment,
-            IsNotNull:    a.IsNotNull,
-        }
-        
-        attrsCache = append(attrsCache, attrCache)
-    }
-    
-    objectDataCache := &viewmodels.BizObjectDataInfo{
-        BizId:       o.BizId,
-        BizTitle:    o.BizTitle,
-        ObjectId:    o.ObjectId,
-        ObjectType:  o.ObjectType,
-        ObjectTitle: o.ObjectTitle,
-        ObjectCode:  o.ObjectCode,
-        Comment:     o.Comment,
-        Attrs:       attrsCache,
-    }
-    
-    err = cache.SetBizObjectData(o.ObjectCode, objectDataCache)
-    if err != nil {
-        return errors.New("Redis缓存Model数据失败")
-    }
-    
     return nil
 }

+ 2 - 82
service/init_service.go

@@ -1,95 +1,15 @@
 package service
 
-import (
-    "errors"
-    "xps/cache"
-    "xps/datasource"
-    "xps/repositories"
-    "xps/viewmodels"
-)
-
 type InitService interface {
-    CacheObjectData() error
-    CacheApiData() error
-    CacheDBData() error
+
 }
 
 type initService struct {
-    modelObjectRepo         *repositories.ModelObjectRepo
-    modelObjectAttrRepo     *repositories.ModelObjectAttrRepo
-    apiRepo                 *repositories.ApiRepo
+
 }
 
 func NewInitService() InitService {
     return &initService{
-        modelObjectRepo:        repositories.NewModelObjectRepo(datasource.InstanceMaster()),
-        modelObjectAttrRepo:    repositories.NewModelObjectAttrRepo(datasource.InstanceMaster()),
-        apiRepo:                repositories.NewApiRepo(datasource.InstanceMaster()),
-    }
-}
-
-func (s *initService) CacheObjectData() error {
-    objectList, err1 := s.modelObjectRepo.GetAll()
-    if err1 != nil {
-        return err1
-    }
-
-    attrsList, err2 := s.modelObjectAttrRepo.GetAll()
-    if err2 != nil {
-        return err2
-    }
-    
-    for _, object := range objectList {
-        objectId := object.ObjectId
-        
-        attrs := make([]viewmodels.ModelObjectAttrInfo, 0)
-        for _, attr := range attrsList {
-            if attr.ObjectId == objectId {
-                attrs = append(attrs, attr)
-            }
-        }
-        
-        cacheData := &viewmodels.ModelObjectDataInfo{
-            ModelId:     object.ModelId,
-            ModelTitle:  object.ModelTitle,
-            ObjectId:    object.ObjectId,
-            ObjectType:  object.ObjectType,
-            ObjectTitle: object.ObjectTitle,
-            ObjectCode:  object.ObjectCode,
-            Comment:     object.Comment,
-            IsFixed:     object.IsFixed,
-            Attrs:       attrs,
-        }
     
-        // 缓存数据
-        err3 := cache.SetModelObjectData(object.ObjectCode, cacheData)
-        if err3 != nil {
-            return errors.New("Redis缓存Object数据失败")
-        }
     }
-    
-    return nil
-}
-
-func (s *initService) CacheApiData() error {
-    apiList, err1 := s.apiRepo.GetAll()
-    if err1 != nil {
-        return nil
-    }
-    
-    for _, api := range apiList {
-        
-        // 缓存数据
-        err3 := cache.SetApiData(api.ObjectCode, api.OamCode, &api)
-        if err3 != nil {
-            return errors.New("Redis缓存Api数据失败")
-        }
-    }
-    
-    return nil
 }
-
-func (s *initService) CacheDBData() error {
-    return nil
-}
-

+ 19 - 0
service/model_object_attr_service.go

@@ -1,6 +1,8 @@
 package service
 
 import (
+	"errors"
+	"xps/cache"
 	"xps/datamodels"
 	"xps/datasource"
 	"xps/repositories"
@@ -50,3 +52,20 @@ func (s *modelObjectAttrService) Update(ObjectAttr *datamodels.ModelObjectAttr)
 func (s *modelObjectAttrService) Delete(m map[string]interface{}) error {
 	return s.repo.Delete(m)
 }
+
+func (s *modelObjectAttrService) CacheModelObjectAttrs(modelId, objectId int64) error {
+	attrList, err1 := s.repo.GetListById(modelId, objectId)
+	if err1 != nil {
+		return err1
+	}
+	
+	if len(attrList) <= 0 {
+		return errors.New("biz Object Attrs Not Exist")
+	}
+	objectCode := attrList[0].ObjectCode
+	err2 := cache.SetModelObjectAttrs(objectCode, attrList)
+	if err2 != nil {
+		return errors.New("Redis缓存Model数据失败")
+	}
+	return nil
+}

+ 15 - 71
service/model_object_service.go

@@ -20,6 +20,8 @@ type ModelObjectService interface {
 	GetObjectDataById(modelId, objectId int64) (*viewmodels.ModelObjectDataInfo, error)
 	CreateObjectData(d *viewmodels.ModelObjectData) error
 	UpdateObjectData(d *viewmodels.ModelObjectData) error
+	
+	CacheModelObject(modelId, objectId int64) error
 }
 
 type modelObjectService struct {
@@ -112,7 +114,6 @@ func (s *modelObjectService) CreateObjectData(o *viewmodels.ModelObjectData) err
 	}
 	
 	// cache object
-	attrsCache := make([]viewmodels.ModelObjectAttrInfo, 0)
 	for _, a := range o.Attrs {
 		newId := NewID()
 		objectAttr := &datamodels.ModelObjectAttr{
@@ -136,44 +137,9 @@ func (s *modelObjectService) CreateObjectData(o *viewmodels.ModelObjectData) err
 		if err != nil {
 			return err
 		}
-		
-		attrCache := viewmodels.ModelObjectAttrInfo{
-			ModelId:      modelId,
-			ObjectId:     objectId,
-			AttrId:       newId,
-			AttrTitle:    a.AttrTitle,
-			AttrCode:     a.AttrCode,
-			AttrType:     a.AttrType,
-			AttrLength:   a.AttrLength,
-			AttrDecimals: a.AttrDecimals,
-			Comment:      a.Comment,
-			IsFixed:      a.IsFixed,
-			IsNotNull:    a.IsNotNull,
-			IsPKey:       a.IsPKey,
-		}
-		
-		attrsCache = append(attrsCache, attrCache)
-	}
-	
-	objectDataCache := &viewmodels.ModelObjectDataInfo{
-		ModelId:     o.ModelId,
-		ModelTitle:  o.ModelTitle,
-		ObjectId:    o.ObjectId,
-		ObjectType:  o.ObjectType,
-		ObjectTitle: o.ObjectTitle,
-		ObjectCode:  o.ObjectCode,
-		Comment:     o.Comment,
-		IsFixed:     o.IsFixed,
-		Attrs:       attrsCache,
-	}
-	
-	// 缓存数据
-	err = cache.SetModelObjectData(o.ObjectCode, objectDataCache)
-	if err != nil {
-		return errors.New("Redis缓存Model数据失败")
 	}
 	
-	return nil
+	return 	s.CacheModelObject(modelId, objectId)
 }
 
 func (s *modelObjectService) UpdateObjectData(o *viewmodels.ModelObjectData) error {
@@ -201,8 +167,6 @@ func (s *modelObjectService) UpdateObjectData(o *viewmodels.ModelObjectData) err
 		return err
 	}
 	
-	// cache object
-	attrsCache := make([]viewmodels.ModelObjectAttrInfo, 0)
 	for _, a := range o.Attrs {
 		newId := NewID()
 		objectAttr := &datamodels.ModelObjectAttr{
@@ -225,41 +189,21 @@ func (s *modelObjectService) UpdateObjectData(o *viewmodels.ModelObjectData) err
 		if err != nil {
 			return err
 		}
-		
-		attrCache := viewmodels.ModelObjectAttrInfo{
-			ModelId:      modelId,
-			ObjectId:     objectId,
-			AttrId:       newId,
-			AttrTitle:    a.AttrTitle,
-			AttrCode:     a.AttrCode,
-			AttrType:     a.AttrType,
-			AttrLength:   a.AttrLength,
-			AttrDecimals: a.AttrDecimals,
-			Comment:      a.Comment,
-			IsFixed:      a.IsFixed,
-			IsNotNull:    a.IsNotNull,
-			IsPKey:       a.IsPKey,
-		}
-		
-		attrsCache = append(attrsCache, attrCache)
 	}
 	
-	objectDataCache := &viewmodels.ModelObjectDataInfo{
-		ModelId:     o.ModelId,
-		ModelTitle:  o.ModelTitle,
-		ObjectId:    o.ObjectId,
-		ObjectType:  o.ObjectType,
-		ObjectTitle: o.ObjectTitle,
-		ObjectCode:  o.ObjectCode,
-		Comment:     o.Comment,
-		IsFixed:     o.IsFixed,
-		Attrs:       attrsCache,
+	return s.CacheModelObject(modelId, objectId)
+}
+
+
+func (s *modelObjectService) CacheModelObject(modelId, objectId int64) error {
+	o, err1 := s.modelObjectRepo.GetById(modelId, objectId)
+	if err1 != nil {
+		return err1
 	}
-	
-	err = cache.SetModelObjectData(o.ObjectCode, objectDataCache)
-	if err != nil {
-		return errors.New("Redis缓存Model数据失败")
+	err3 := cache.SetModelObject(o.ObjectCode, o)
+	if err3 != nil {
+		return errors.New("Redis缓存Biz Object数据失败")
 	}
-	
 	return nil
 }
+

+ 10 - 0
viewmodels/biz_object_attr_info.go

@@ -1,9 +1,11 @@
 package viewmodels
 
+import "encoding/json"
 
 type BizObjectAttrInfo struct {
     BizId           int64     `json:"bizId"           xorm:"'biz_id'            bigint      pk comment('Biz ID')        "`
     ObjectId        int64     `json:"objectId"        xorm:"'object_id'         bigint      pk comment('Object ID')     "`
+    ObjectCode      string    `json:"objectCode"      xorm:"'object_code'       varchar(127)   comment('ObjectCode')    "`
     AttrId          int64     `json:"attrId"          xorm:"'attr_id'           bigint      pk comment('Attr ID')       "`
     AttrType        int64     `json:"attrType"        xorm:"'attr_type'         bigint         comment('Type')          "`
     AttrTitle       string    `json:"attrTitle"       xorm:"'attr_title'        varchar(127)   comment('AttrTitle')     "`
@@ -20,3 +22,11 @@ type BizObjectAttrInfo struct {
 func (t *BizObjectAttrInfo) TableName() string {
     return "biz_object_attr"
 }
+
+func (t *BizObjectAttrInfo) MarshalBinary() (data []byte, err error){
+    return json.Marshal(t)
+}
+
+func (t *BizObjectAttrInfo) UnmarshalBinary(data []byte) (err error){
+    return json.Unmarshal(data, t)
+}

+ 10 - 0
viewmodels/biz_object_info.go

@@ -1,5 +1,7 @@
 package viewmodels
 
+import "encoding/json"
+
 type BizObjectInfo struct {
     BizId       int64     `json:"bizId"           xorm:"'biz_id'          bigint      pk comment('Biz ID')         "`
     ObjectId    int64     `json:"objectId"        xorm:"'object_id'       bigint      pk comment('Object ID')      "`
@@ -13,3 +15,11 @@ type BizObjectInfo struct {
 func (t *BizObjectInfo) TableName() string {
     return "biz_object"
 }
+
+func (t *BizObjectInfo) MarshalBinary() (data []byte, err error){
+    return json.Marshal(t)
+}
+
+func (t *BizObjectInfo) UnmarshalBinary(data []byte) (err error){
+    return json.Unmarshal(data, t)
+}

+ 20 - 8
viewmodels/biz_object_mapping_info.go

@@ -1,16 +1,28 @@
 package viewmodels
 
+import "encoding/json"
+
 type BizObjectMappingInfo struct {
-    MappingId          int64     `json:"mappingId"          xorm:"'mapping_id'           bigint  pk comment('Mapping ID')           "`
-    BizId              int64     `json:"bizId"              xorm:"'biz_id'               bigint     comment('Biz ID')               "`
-    ObjectId           int64     `json:"objectId"           xorm:"'object_id'            bigint     comment('Object ID')            "`
-    MappingModelId     int64     `json:"mappingModelId"     xorm:"'mapping_model_id'     bigint     comment('Mapping Model ID')     "`
-    MappingModelTitle  string    `json:"mappingModelTitle"  xorm:"'mapping_model_title'  bigint     comment('Mapping Model Title')  "`
-    MappingObjectId    int64     `json:"mappingObjectId"    xorm:"'mapping_object_id'    bigint     comment('Mapping Object ID')    "`
-    MappingObjectTitle string    `json:"mappingObjectTitle" xorm:"'mapping_object_title' bigint     comment('Mapping Object Title') "`
-    SortNo             int64     `json:"sortNo"             xorm:"'sort_no'              bigint     comment('Sort No')          "`
+    MappingId          int64     `json:"mappingId"          xorm:"'mapping_id'           bigint     pk comment('Mapping ID')            "`
+    BizId              int64     `json:"bizId"              xorm:"'biz_id'               bigint         comment('Biz ID')               "`
+    ObjectId           int64     `json:"objectId"           xorm:"'object_id'            bigint         comment('Object ID')            "`
+    ObjectCode         string    `json:"objectCode"         xorm:"'object_code'       varchar(127)      comment('ObjectCode')            "`
+    MappingModelId     int64     `json:"mappingModelId"     xorm:"'mapping_model_id'     bigint         comment('Mapping Model ID')     "`
+    MappingModelTitle  string    `json:"mappingModelTitle"  xorm:"'mapping_model_title'  bigint         comment('Mapping Model Title')  "`
+    MappingObjectId    int64     `json:"mappingObjectId"    xorm:"'mapping_object_id'    bigint         comment('Mapping Object ID')    "`
+    MappingObjectTitle string    `json:"mappingObjectTitle" xorm:"'mapping_object_title' bigint         comment('Mapping Object Title') "`
+    MappingObjectCode  string    `json:"mappingObjectCode"  xorm:"'mapping_object_code'  varchar(127)   comment('Mapping ObjectCode')   "`
+    SortNo             int64     `json:"sortNo"             xorm:"'sort_no'              bigint         comment('Sort No')              "`
 }
 
 func (t *BizObjectMappingInfo) TableName() string {
     return "biz_object_mapping"
 }
+
+func (t *BizObjectMappingInfo) MarshalBinary() (data []byte, err error){
+    return json.Marshal(t)
+}
+
+func (t *BizObjectMappingInfo) UnmarshalBinary(data []byte) (err error){
+    return json.Unmarshal(data, t)
+}

+ 0 - 1
viewmodels/biz_object_oam_info.go

@@ -26,7 +26,6 @@ func (t *BizObjectOAMInfo) TableName() string {
     return "biz_object_oam"
 }
 
-
 func (t *BizObjectOAMInfo) MarshalBinary() (data []byte, err error){
     return json.Marshal(t)
 }

+ 24 - 8
viewmodels/biz_object_oam_params_info.go

@@ -1,18 +1,34 @@
 package viewmodels
 
+import "encoding/json"
+
 type BizObjectOAMParamsInfo struct {
     
-    BizId           int64     `json:"bizId"           xorm:"'biz_id'          bigint      pk comment('BIZ ID')         "`
-    ObjectId        int64     `json:"objectId"        xorm:"'object_id'       bigint      pk comment('Object ID')      "`
-    OamId           int64     `json:"oamId"           xorm:"'oam_id'          bigint      pk comment('OAM ID')         "`
-    ParamsId        int64     `json:"paramsId"        xorm:"'params_id'       bigint      pk comment('Params ID')      "`
-    ParamsOperator  string    `json:"paramsOperator"  xorm:"'params_operator' varchar(15)    comment('Params Operator')"`
-    ParamsTarget    string    `json:"paramsTarget"    xorm:"'params_target'   varchar(127)   comment('Params Target')  "`
-    ParamsValue     string    `json:"paramsValue"     xorm:"'params_value'    varchar(127)   comment('Params Target')  "`
-    SortNo       int64     `json:"sortNo"          xorm:"'sort_no'         bigint         comment('Sort No')        "`
+    BizId           int64     `json:"bizId"           xorm:"'biz_id'           bigint      pk comment('BIZ ID')         "`
+    ObjectId        int64     `json:"objectId"        xorm:"'object_id'        bigint      pk comment('Object ID')      "`
+    ObjectTitle     string    `json:"objectTitle"     xorm:"'object_title'     varchar(127)   comment('Object Title')   "`
+    ObjectCode      string    `json:"objectCode"      xorm:"'object_code'      varchar(127)   comment('Object Code')    "`
+    OamId           int64     `json:"oamId"           xorm:"'oam_id'           bigint      pk comment('OAM ID')         "`
+    OamTitle        string    `json:"oamTitle"        xorm:"'oam_title'        varchar(127)   comment('OAM Title')      "`
+    OamCode         string    `json:"oamCode"         xorm:"'oam_code'         varchar(127)   comment('OAM Code')       "`
+    ParamsId        int64     `json:"paramsId"        xorm:"'params_id'        bigint      pk comment('Params ID')      "`
+    LogicalOperator string    `json:"logicalOperator" xorm:"'logical_operator' varchar(15)    comment('Logical Operator') "`
+    ParamsTarget    string    `json:"paramsTarget"    xorm:"'params_target'    varchar(127)   comment('Params Target')    "`
+    CompareOperator string    `json:"compareOperator" xorm:"'compare_operator' varchar(15)    comment('Compare Operator') "`
+    ParamsValue     string    `json:"paramsValue"     xorm:"'params_value'     varchar(127)   comment('Params Target')  "`
+    ParamsType      int64     `json:"paramsType"      xorm:"'params_type'      bigint         comment('Params Type')    "`
+    ParamsRemark    string    `json:"paramsRemark"    xorm:"'params_remark'    varchar(255)   comment('Params Remark')  "`
+    SortNo          int64     `json:"sortNo"          xorm:"'sort_no'          bigint         comment('Sort No')        "`
 }
 
 func (t *BizObjectOAMParamsInfo) TableName() string {
     return "biz_object_oam_params"
 }
 
+func (t *BizObjectOAMParamsInfo) MarshalBinary() (data []byte, err error){
+    return json.Marshal(t)
+}
+
+func (t *BizObjectOAMParamsInfo) UnmarshalBinary(data []byte) (err error){
+    return json.Unmarshal(data, t)
+}

+ 13 - 1
viewmodels/biz_object_oam_rule_info.go

@@ -1,11 +1,15 @@
 package viewmodels
 
+import "encoding/json"
+
 type BizObjectOAMRuleInfo struct {
     BizId           int64     `json:"bizId"           xorm:"'biz_id'            bigint         comment('BIZ ID')         "`
     ObjectId        int64     `json:"objectId"        xorm:"'object_id'         bigint         comment('Object ID')      "`
     ObjectTitle     string    `json:"objectTitle"     xorm:"'object_title'      varchar(127)   comment('Object Title')   "`
+    ObjectCode      string    `json:"objectCode"      xorm:"'object_code'       varchar(127)   comment('Object Code')    "`
     OamId           int64     `json:"oamId"           xorm:"'oam_id'            bigint         comment('Object OAM ID')  "`
-    OamTitle        string    `json:"oamTitle"        xorm:"'oam_title'         varchar(127)   comment('OAMTitle')       "`
+    OamTitle        string    `json:"oamTitle"        xorm:"'oam_title'         varchar(127)   comment('OAM Title')      "`
+    OamCode         string    `json:"oamCode"         xorm:"'oam_code'          varchar(127)   comment('OAM Code')       "`
     OrId            int64     `json:"orId"            xorm:"'or_id'             bigint      pk comment('Object Rule ID') "`
     RuleId          int64     `json:"ruleId"          xorm:"'rule_id'           bigint         comment('Rule ID')        "`
     RuleType        int64     `json:"ruleType"        xorm:"'rule_type'         bigint         comment('Type')           "`
@@ -20,3 +24,11 @@ type BizObjectOAMRuleInfo struct {
 func (t *BizObjectOAMRuleInfo) TableName() string {
     return "biz_object_oam_rule"
 }
+
+func (t *BizObjectOAMRuleInfo) MarshalBinary() (data []byte, err error){
+    return json.Marshal(t)
+}
+
+func (t *BizObjectOAMRuleInfo) UnmarshalBinary(data []byte) (err error){
+    return json.Unmarshal(data, t)
+}

+ 11 - 0
viewmodels/model_object_attr_info.go

@@ -1,8 +1,11 @@
 package viewmodels
 
+import "encoding/json"
+
 type ModelObjectAttrInfo struct {
 	ModelId         int64  `json:"modelId"         xorm:"'model_id'             bigint      pk comment('主键ID')        "`
 	ObjectId        int64  `json:"objectId"        xorm:"'object_id'            bigint      pk comment('主键ID')        "`
+	ObjectCode      string `json:"objectCode"      xorm:"'object_code'          varchar(127)   comment('ObjectCode')    "`
 	AttrId          int64  `json:"attrId"          xorm:"'attr_id'              bigint      pk comment('主键ID')        "`
 	AttrTitle       string `json:"attrTitle"       xorm:"'attr_title'           varchar(127)   comment('AttrTitle')    "`
 	AttrCode        string `json:"attrCode"        xorm:"'attr_code'            varchar(127)   comment('AttrCode')     "`
@@ -21,3 +24,11 @@ type ModelObjectAttrInfo struct {
 func (t *ModelObjectAttrInfo) TableName() string {
 	return "ds_object_attr"
 }
+
+func (t *ModelObjectAttrInfo) MarshalBinary() (data []byte, err error){
+	return json.Marshal(t)
+}
+
+func (t *ModelObjectAttrInfo) UnmarshalBinary(data []byte) (err error){
+	return json.Unmarshal(data, t)
+}

+ 10 - 0
viewmodels/model_object_info.go

@@ -1,5 +1,7 @@
 package viewmodels
 
+import "encoding/json"
+
 type ModelObjectInfo struct {
 	ModelId     int64     `json:"modelId"         xorm:"'model_id'        bigint      pk comment('Model ID')         "`
 	ModelTitle  string    `json:"modelTitle"      xorm:"'model_title'     varchar(127)   comment('Model Title')      "`
@@ -14,3 +16,11 @@ type ModelObjectInfo struct {
 func (t *ModelObjectInfo) TableName() string {
 	return "ds_object"
 }
+
+func (t *ModelObjectInfo) MarshalBinary() (data []byte, err error){
+	return json.Marshal(t)
+}
+
+func (t *ModelObjectInfo) UnmarshalBinary(data []byte) (err error){
+	return json.Unmarshal(data, t)
+}

+ 7 - 7
web/controllers/biz_object_controller.go

@@ -2,8 +2,8 @@ package controllers
 
 import (
     "github.com/kataras/iris/v12/mvc"
+    "xps/datamodels"
     "xps/service"
-    "xps/viewmodels"
 )
 
 type BizObjectController struct {
@@ -63,13 +63,13 @@ func (c *BizObjectController) GetById(bizId, objectId int64) *JsonResult {
 func (c *BizObjectController) Create() *JsonResult {
     userId     := c.GetCurUserId()
     
-    objectData := viewmodels.BizObjectData{}
-    if err := c.Ctx.ReadJSON(&objectData); err != nil {
+    object := datamodels.BizObject{}
+    if err := c.Ctx.ReadJSON(&object); err != nil {
         return ResultErr("读取数据失败", nil)
     }
     
-    objectData.CreatedBy = userId
-    if err := c.Service.CreateObjectData(&objectData); err != nil {
+    object.CreatedBy = userId
+    if err := c.Service.Create(&object); err != nil {
         return ResultErr(err.Error(), nil)
     } else {
         return ResultOk("新增成功", nil)
@@ -79,13 +79,13 @@ func (c *BizObjectController) Create() *JsonResult {
 func (c *BizObjectController) Update() *JsonResult {
     userId     := c.GetCurUserId()
     
-    objectData := viewmodels.BizObjectData{}
+    objectData := datamodels.BizObject{}
     if err := c.Ctx.ReadJSON(&objectData); err != nil {
         return ResultErr("读取数据失败", nil)
     }
     
     objectData.UpdatedBy = userId
-    if err := c.Service.UpdateObjectData(&objectData); err != nil {
+    if err := c.Service.Update(&objectData); err != nil {
         return ResultErr(err.Error(), nil)
     } else {
         return ResultOk("更新成功", nil)

+ 1 - 4
web/controllers/biz_object_oam_controller.go

@@ -31,10 +31,7 @@ func (c *BizObjectOAMController) GetList() *JsonResult {
 }
 
 func (c *BizObjectOAMController) GetListById(bizId, objectId int64) *JsonResult {
-    params    := c.buildParams()
-    params["bizId"] = bizId
-    params["objectId"] = objectId
-    data, err := c.Service.GetList(params)
+    data, err := c.Service.GetListById(bizId, objectId)
     if err != nil {
         return ResultErr(err.Error(), nil)
     } else {

+ 3 - 3
web/controllers/biz_object_oam_params_controller.go

@@ -12,8 +12,8 @@ type BizObjectOAMParamsController struct {
 }
 
 func (c *BizObjectOAMParamsController) BeforeActivation(b mvc.BeforeActivation) {
-    b.Handle("GET",     "/",                                                              "GetList"       )
-    b.Handle("GET",     "/{bizId:int64}/{objectId:int64}/{oamId:int64}",                  "GetListById"   )
+    b.Handle("GET",     "/",                                                              "GetList"      )
+    b.Handle("GET",     "/{bizId:int64}/{objectId:int64}/{oamId:int64}",                  "GetListById"  )
     b.Handle("GET",     "/{bizId:int64}/{objectId:int64}/{oamId:int64}/{paramsId:int64}", "GetById"      )
     b.Handle("POST",    "/add",                                                           "Create"       )
     b.Handle("PUT",     "/update",                                                        "Update"       )
@@ -83,7 +83,7 @@ func (c *BizObjectOAMParamsController) DeleteByID(bizId, objectId, oamId, params
     m["bizId"]    = bizId
     m["objectId"] = objectId
     m["oamId"]    = oamId
-    m["paramsId"]     = paramsId
+    m["paramsId"] = paramsId
     if err := c.Service.Delete(m); err != nil {
         return ResultErr(err.Error(), nil)
     } else {