houyaf 3 jaren geleden
bovenliggende
commit
d44e0257ca

+ 17 - 2
cache/redis.go

@@ -89,12 +89,12 @@ func SetUserData(userId int64, userData *viewmodels.UserData) error {
 	return SetCache(keyStr, userData, 0)
 }
 
-func SetObjectData(objectCode string, data *viewmodels.ModelObjectDataInfo) error {
+func SetModelObjectData(objectCode string, data *viewmodels.ModelObjectDataInfo) error {
 	keyStr := fmt.Sprintf("model_object_%s", objectCode)
 	return SetCache(keyStr, data, 0)
 }
 
-func GetObjectData(objectCode string)(*viewmodels.ModelObjectDataInfo, error){
+func GetModelObjectData(objectCode string)(*viewmodels.ModelObjectDataInfo, error){
 	keyStr := fmt.Sprintf("model_object_%s", objectCode)
 	modelData := &viewmodels.ModelObjectDataInfo{}
 	err := Instance().Get(context.Background(), keyStr).Scan(modelData)
@@ -104,6 +104,21 @@ func GetObjectData(objectCode string)(*viewmodels.ModelObjectDataInfo, error){
 	return modelData, nil
 }
 
+func SetBizObjectData(objectCode string, data *viewmodels.BizObjectDataInfo) error {
+	keyStr := fmt.Sprintf("biz_object_%s", objectCode)
+	return SetCache(keyStr, data, 0)
+}
+
+func GetBizObjectData(objectCode string)(*viewmodels.BizObjectDataInfo, error){
+	keyStr := fmt.Sprintf("biz_object_%s", objectCode)
+	bizObjectData := &viewmodels.BizObjectDataInfo{}
+	err := Instance().Get(context.Background(), keyStr).Scan(bizObjectData)
+	if err != nil {
+		return nil, err
+	}
+	return bizObjectData, nil
+}
+
 func SetApiData(apiCode string, data *viewmodels.ApiDataInfo) error {
 	keyStr := fmt.Sprintf("api_%s", apiCode)
 	return SetCache(keyStr, data, 0)

+ 1 - 1
service/api_gateway_service.go

@@ -65,7 +65,7 @@ func (a *apiGatewayService) Handle(apiCode string, action int, m map[string]inte
    for _, transUnit := range transUnits {
        objectCode := transUnit.ObjectCode
        
-       objectInfo, err2 := cache.GetObjectData(objectCode)
+       objectInfo, err2 := cache.GetModelObjectData(objectCode)
        if err2 == nil {
            return err2
        }

+ 1 - 1
service/api_trans_unit_service.go

@@ -115,7 +115,7 @@ func (s *apiTransUnitService) GenerateParams(apiCode string)(map[string]interfac
     transUnits := apiInfo.TransUnits
     for _, transUnit := range transUnits {
         objectCode := transUnit.ObjectCode
-        objectInfo, err2 := cache.GetObjectData(objectCode)
+        objectInfo, err2 := cache.GetModelObjectData(objectCode)
         if err2 != nil {
             return nil, err2
         }

+ 258 - 0
service/biz_object_service.go

@@ -1 +1,259 @@
 package service
+
+import (
+    "errors"
+    "time"
+    "xps/cache"
+    "xps/datamodels"
+    "xps/datasource"
+    "xps/repositories"
+    "xps/viewmodels"
+)
+
+type BizObjectService interface {
+    GetList(m map[string]interface{}) ([]viewmodels.BizObjectInfo, error)
+    GetPage(m map[string]interface{}) (*viewmodels.PageResult, error)
+    GetById(bizId, objectId int64) (*viewmodels.BizObjectInfo, error)
+    Create(d *datamodels.BizObject) error
+    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
+}
+
+type bizObjectService struct {
+    bizObjectRepo     *repositories.BizObjectRepo
+    bizObjectAttrRepo *repositories.BizObjectAttrRepo
+}
+
+func NewBizObjectService() BizObjectService {
+    return &bizObjectService{
+        bizObjectRepo:     repositories.NewBizObjectRepo(datasource.InstanceMaster()),
+        bizObjectAttrRepo: repositories.NewBizObjectAttrRepo(datasource.InstanceMaster()),
+    }
+}
+
+func (s *bizObjectService) GetList(m map[string]interface{}) ([]viewmodels.BizObjectInfo, error) {
+    return s.bizObjectRepo.GetList(m)
+}
+
+func (s *bizObjectService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
+    return s.bizObjectRepo.GetPage(m)
+}
+
+func (s *bizObjectService) GetById(bizId, objectId int64) (*viewmodels.BizObjectInfo, error) {
+    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) Update(Object *datamodels.BizObject) error {
+    return s.bizObjectRepo.Update(Object)
+}
+
+func (s *bizObjectService) Delete(m map[string]interface{}) error {
+    bizId  := m["bizId"].(int64)
+    objectId := m["objectId"].(int64)
+    err := s.bizObjectRepo.Delete(m)
+    if err != nil {
+        return err
+    }
+    return s.bizObjectAttrRepo.DeleteByObjectId(bizId, objectId)
+}
+
+func (s *bizObjectService) GetObjectDataById(bizId, objectId int64) (*viewmodels.BizObjectDataInfo, error) {
+    objectInfo, err := s.bizObjectRepo.GetById(bizId, objectId)
+    if err != nil {
+        return nil, err
+    }
+    
+    attrs, err := s.bizObjectAttrRepo.GetListById(bizId, objectId)
+    if err != nil {
+        return nil, err
+    }
+    
+    objectDataInfo := &viewmodels.BizObjectDataInfo{
+        BizId:       objectInfo.BizId,
+        ObjectId:    objectInfo.ObjectId,
+        ObjectType:  objectInfo.ObjectType,
+        ObjectTitle: objectInfo.ObjectTitle,
+        ObjectCode:  objectInfo.ObjectCode,
+        Comment:     objectInfo.Comment,
+        IsFixed:     objectInfo.IsFixed,
+        Attrs:       attrs,
+    }
+    
+    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,
+        IsFixed:     0,
+        CreatedBy:   createdBy,
+        CreatedAt:   time.Now(),
+    }
+    
+    err := s.bizObjectRepo.Create(object)
+    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,
+            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,
+        IsFixed:     o.IsFixed,
+        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,
+        IsFixed:     0,
+        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,
+            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,
+            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,
+        IsFixed:     o.IsFixed,
+        Attrs:       attrsCache,
+    }
+    
+    err = cache.SetBizObjectData(o.ObjectCode, objectDataCache)
+    if err != nil {
+        return errors.New("Redis缓存Model数据失败")
+    }
+    
+    return nil
+}

+ 51 - 0
service/biz_service.go

@@ -1 +1,52 @@
 package service
+
+import (
+    "xps/datamodels"
+    "xps/datasource"
+    "xps/repositories"
+    "xps/viewmodels"
+)
+
+type BizService interface {
+    GetList(m map[string]interface{}) ([]viewmodels.BizInfo, error)
+    GetPage(m map[string]interface{}) (*viewmodels.PageResult, error)
+    GetById(bizId int64) (*viewmodels.BizInfo, error)
+    Create(d *datamodels.Biz) error
+    Update(d *datamodels.Biz) error
+    Delete(m map[string]interface{}) error
+}
+
+type bizService struct {
+    repo *repositories.BizRepo
+}
+
+func NewBizService() BizService {
+    return &bizService{
+        repo: repositories.NewBizRepo(datasource.InstanceMaster()),
+    }
+}
+
+func (s *bizService) GetList(m map[string]interface{}) ([]viewmodels.BizInfo, error) {
+    return s.repo.GetList(m)
+}
+
+func (s *bizService) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
+    return s.repo.GetPage(m)
+}
+
+func (s *bizService) GetById(bizId int64) (*viewmodels.BizInfo, error) {
+    return s.repo.GetById(bizId)
+}
+
+func (s *bizService) Create(m *datamodels.Biz) error {
+    m.BizId = NewID()
+    return s.repo.Create(m)
+}
+
+func (s *bizService) Update(m *datamodels.Biz) error {
+    return s.repo.Update(m)
+}
+
+func (s *bizService) Delete(m map[string]interface{}) error {
+    return s.repo.Delete(m)
+}

+ 1 - 1
service/init_service.go

@@ -64,7 +64,7 @@ func (s *initService) CacheObjectData() error {
         }
     
         // 缓存数据
-        err3 := cache.SetObjectData(object.ObjectCode, cacheData)
+        err3 := cache.SetModelObjectData(object.ObjectCode, cacheData)
         if err3 != nil {
             return errors.New("Redis缓存Object数据失败")
         }

+ 2 - 2
service/model_object_service.go

@@ -168,7 +168,7 @@ func (s *modelObjectService) CreateObjectData(o *viewmodels.ModelObjectData) err
 	}
 	
 	// 缓存数据
-	err = cache.SetObjectData(o.ObjectCode, objectDataCache)
+	err = cache.SetModelObjectData(o.ObjectCode, objectDataCache)
 	if err != nil {
 		return errors.New("Redis缓存Model数据失败")
 	}
@@ -256,7 +256,7 @@ func (s *modelObjectService) UpdateObjectData(o *viewmodels.ModelObjectData) err
 		Attrs:       attrsCache,
 	}
 	
-	err = cache.SetObjectData(o.ObjectCode, objectDataCache)
+	err = cache.SetModelObjectData(o.ObjectCode, objectDataCache)
 	if err != nil {
 		return errors.New("Redis缓存Model数据失败")
 	}

+ 25 - 0
viewmodels/biz_object_data.go

@@ -0,0 +1,25 @@
+package viewmodels
+import "time"
+
+type BizObjectData struct {
+    BizId       int64            `json:"bizId"           xorm:"'biz_id'          bigint      pk comment('主键ID')      "`
+    BizTitle    string           `json:"bizTitle"        xorm:"'biz_title'       varchar(127)   comment('Biz Title') "`
+    ObjectId    int64            `json:"objectId"        xorm:"'object_id'       bigint      pk comment('主键ID')      "`
+    ObjectType  int64            `json:"objectType"      xorm:"'object_type'     bigint         comment('Type')       "`
+    ObjectTitle string           `json:"objectTitle"     xorm:"'object_title'    varchar(127)   comment('模型名称')    "`
+    ObjectCode  string           `json:"objectCode"      xorm:"'object_code'     varchar(127)   comment('模型名称')    "`
+    Comment     string           `json:"comment"         xorm:"'comment'         varchar(255)   comment('描述')       "`
+    IsFixed     int64            `json:"isFixed"         xorm:"'is_fixed'        int            comment('是否可修改')  "`
+    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'"`
+    Attrs       []BizObjectAttrInfo `json:"attrs"`
+}
+
+func (t *BizObjectData) TableName() string {
+    return "biz_object"
+}

+ 20 - 0
viewmodels/biz_object_data_info.go

@@ -0,0 +1,20 @@
+package viewmodels
+
+import "time"
+
+type BizObjectDataInfo struct {
+    BizId       int64            `json:"bizId"           xorm:"'biz_id'          bigint      pk comment('主键ID')      "`
+    BizTitle    string           `json:"bizTitle"        xorm:"'biz_title'       varchar(127)   comment('Biz Title')  "`
+    ObjectId    int64            `json:"objectId"        xorm:"'object_id'       bigint      pk comment('主键ID')      "`
+    ObjectType  int64            `json:"objectType"      xorm:"'object_type'     bigint         comment('Type')       "`
+    ObjectTitle string           `json:"objectTitle"     xorm:"'object_title'    varchar(127)   comment('模型名称')    "`
+    ObjectCode  string           `json:"objectCode"      xorm:"'object_code'     varchar(127)   comment('模型名称')    "`
+    Comment     string           `json:"comment"         xorm:"'comment'         varchar(255)   comment('描述')       "`
+    IsFixed     int64            `json:"isFixed"         xorm:"'is_fixed'        int            comment('是否可修改')  "`
+    DeletedAt   time.Time        `json:"deletedAt"       xorm:"'deleted_at'"`
+    Attrs       []BizObjectAttrInfo `json:"attrs"`
+}
+
+func (t *BizObjectDataInfo) TableName() string {
+    return "biz_object"
+}