houyaf há 3 anos atrás
pai
commit
73dd6e4edd

+ 27 - 0
datamodels/biz_object_oam_params.go

@@ -0,0 +1,27 @@
+package datamodels
+
+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'"`
+    
+}
+
+func (t *BizObjectOAMParams) TableName() string {
+    return "biz_object_oam_params"
+}

+ 1 - 0
datamodels/biz_object_oam_rule.go

@@ -9,6 +9,7 @@ type BizObjectOAMRule struct {
     RuleId       int64     `json:"ruleId"          xorm:"'rule_id'         bigint         comment('Rule ID')        "`
     TargetAttrId int64     `json:"targetAttrId"    xorm:"'target_attr_id'  bigint         comment('Target AttrId')  "`
     RuleCode     string    `json:"ruleCode"        xorm:"'rule_code'       varchar(1023)  comment('Rule Code')      "`
+    SortNo       int64     `json:"sortNo"          xorm:"'sort_no'         bigint         comment('Sort No')        "`
 }
 
 func (t *BizObjectOAMRule) TableName() string {

+ 155 - 0
repositories/biz_object_oam_params_repo.go

@@ -0,0 +1,155 @@
+package repositories
+
+import (
+    "errors"
+    "fmt"
+    "xorm.io/xorm"
+    "xps/datamodels"
+    "xps/viewmodels"
+)
+
+type BizObjectOAMParamsRepo struct {
+    engine *xorm.Engine
+}
+
+func NewBizObjectOAMParamsRepo(engine *xorm.Engine) *BizObjectOAMParamsRepo {
+    return &BizObjectOAMParamsRepo{
+        engine: engine,
+    }
+}
+
+func (d *BizObjectOAMParamsRepo) GetList(m map[string]interface{}) ([]viewmodels.BizObjectOAMParamsInfo, error) {
+    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    `
+    if bizId, ok := m["bizId"]; ok {
+        sqlWhere += fmt.Sprintf(" AND A.biz_id = %d ", bizId)
+    }
+    if objectId, ok := m["objectId"]; ok {
+        sqlWhere += fmt.Sprintf(" AND A.object_id = %d ", objectId)
+    }
+    if oamId, ok := m["oamId"]; ok {
+        sqlWhere += fmt.Sprintf(" AND A.oam_id = %d ", oamId)
+    }
+    sqlOrderBy := " ORDER BY A.params_id ASC "
+    
+    datalist   := make([]viewmodels.BizObjectOAMParamsInfo, 0)
+    err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
+    if err != nil {
+        return nil, err
+    } else {
+        return datalist, nil
+    }
+}
+
+func (d *BizObjectOAMParamsRepo) GetById(bizId, objectId, oamId, orId int64) (*viewmodels.BizObjectOAMParamsInfo, error) {
+    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    `
+    sqlWhere   += fmt.Sprintf(" AND A.biz_id    = %d ", bizId)
+    sqlWhere   += fmt.Sprintf(" AND A.object_id = %d ", objectId)
+    sqlWhere   += fmt.Sprintf(" AND A.oam_id    = %d ", oamId)
+    sqlWhere   += fmt.Sprintf(" AND A.or_id     = %d ", orId)
+    
+    data    := &viewmodels.BizObjectOAMParamsInfo{}
+    has, err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere).Get(data)
+    if !has || err != nil {
+        return nil, err
+    } else {
+        return data, nil
+    }
+}
+
+func (d *BizObjectOAMParamsRepo) GetListById(bizId, objectId, oamId int64) ([]viewmodels.BizObjectOAMParamsInfo, error) {
+    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    `
+    sqlWhere   += fmt.Sprintf(" AND A.biz_id    = %d ", bizId)
+    sqlWhere   += fmt.Sprintf(" AND A.object_id = %d ", objectId)
+    sqlWhere   += fmt.Sprintf(" AND A.oam_id    = %d ", oamId)
+    
+    sqlOrderBy := " ORDER BY A.sort_no "
+    dataList    := make([]viewmodels.BizObjectOAMParamsInfo, 0)
+    err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&dataList)
+    if err != nil {
+        return nil, err
+    } else {
+        return dataList, nil
+    }
+}
+
+
+func (d *BizObjectOAMParamsRepo) Create(data *datamodels.BizObjectOAMParams) error {
+    _, err := d.engine.Insert(data)
+    return err
+}
+
+func (d *BizObjectOAMParamsRepo) Update(data *datamodels.BizObjectOAMParams) error {
+    bizId     := data.BizId
+    objectId  := data.ObjectId
+    oamId     := data.OamId
+    paramsId  := data.ParamsId
+    _, err := d.engine.
+        Where("biz_id = ?", bizId).
+        Where("object_id = ?", objectId).
+        Where("oam_id = ?", oamId).
+        Where("params_id = ?", paramsId).
+        AllCols().
+        Update(data)
+    return err
+}
+
+func (d *BizObjectOAMParamsRepo) Delete(m map[string]interface{}) error {
+    bizId, ok1 := m["bizId"]
+    objectId, ok2 := m["objectId"]
+    oamId, ok3 := m["oamId"]
+    paramsId, ok4 := m["paramsId"]
+    if !ok1 || !ok2 || !ok3 || !ok4 {
+        return errors.New("数据不完整")
+    }
+    data := &datamodels.BizObjectOAMParams{}
+    _, err := d.engine.
+        Where("biz_id = ?", bizId).
+        Where("object_id = ?", objectId).
+        Where("oam_id = ?", oamId).
+        Where("params_id = ?", paramsId).
+        Delete(data)
+    return err
+}
+
+func (d *BizObjectOAMParamsRepo) DeleteByObjectId(bizId, objectId, oamId int64) error {
+    data := &datamodels.BizObjectOAMParams{}
+    _, err := d.engine.
+        Where("biz_id = ?", bizId).
+        Where("object_id = ?", objectId).
+        Where("oam_id = ?", oamId).
+        Delete(data)
+    return err
+}

+ 6 - 0
repositories/biz_object_oam_rule_repo.go

@@ -122,8 +122,14 @@ func (d *BizObjectOAMRuleRepo) Create(data *datamodels.BizObjectOAMRule) error {
 }
 
 func (d *BizObjectOAMRuleRepo) Update(data *datamodels.BizObjectOAMRule) error {
+    bizId    := data.BizId
+    objectId := data.ObjectId
+    oamId    := data.OamId
     orId     := data.OrId
     _, err := d.engine.
+        Where("biz_id = ?", bizId).
+        Where("object_id = ?", objectId).
+        Where("oam_id = ?", oamId).
         Where("or_id = ?", orId).
         AllCols().
         Update(data)

+ 100 - 0
service/biz_object_oam_params_service.go

@@ -0,0 +1,100 @@
+package service
+
+
+import (
+    "errors"
+    "xps/cache"
+    "xps/datamodels"
+    "xps/datasource"
+    "xps/repositories"
+    "xps/viewmodels"
+)
+
+type BizObjectOAMParamsService interface {
+    GetList(m map[string]interface{}) ([]viewmodels.BizObjectOAMParamsInfo, error)
+    GetById(bizId, objectId, oamId, paramsId int64) (*viewmodels.BizObjectOAMParamsInfo, error)
+    Create(param *datamodels.BizObjectOAMParams) error
+    Update(param *datamodels.BizObjectOAMParams) error
+    Delete(m map[string]interface{}) error
+    
+    
+}
+
+type bizObjectOAMParamsService struct {
+    oamRepo *repositories.BizObjectOAMRepo
+    oamParamsRepo *repositories.BizObjectOAMParamsRepo
+}
+
+func NewBizObjectOAMParamsService() BizObjectOAMParamsService {
+    return &bizObjectOAMParamsService{
+        oamRepo: repositories.NewBizObjectOAMRepo(datasource.InstanceMaster()),
+        oamParamsRepo: repositories.NewBizObjectOAMParamsRepo(datasource.InstanceMaster()),
+    }
+}
+
+func (s *bizObjectOAMParamsService) GetList(m map[string]interface{}) ([]viewmodels.BizObjectOAMParamsInfo, error) {
+    return s.oamParamsRepo.GetList(m)
+}
+
+func (s *bizObjectOAMParamsService) GetById(bizId, objectId, oamId, paramsId int64) (*viewmodels.BizObjectOAMParamsInfo, error) {
+    return s.oamParamsRepo.GetById(bizId, objectId, oamId, paramsId)
+}
+
+func (s *bizObjectOAMParamsService) Create(param *datamodels.BizObjectOAMParams) error {
+    paramsId      := NewID()
+    param.ParamsId = paramsId
+    err1 := s.oamParamsRepo.Create(param)
+    if err1 != nil {
+        return err1
+    }
+    
+    return s.CacheObjectOAMData(param.BizId, param.ObjectId, param.OamId)
+}
+
+func (s *bizObjectOAMParamsService) Update(param *datamodels.BizObjectOAMParams) error {
+    err1 := s.oamParamsRepo.Update(param)
+    if err1 != nil {
+        return err1
+    }
+    return s.CacheObjectOAMData(param.BizId, param.ObjectId, param.OamId)
+}
+
+func (s *bizObjectOAMParamsService) Delete(m map[string]interface{}) error {
+    err1 := s.oamParamsRepo.Delete(m)
+    if err1 != nil {
+        return err1
+    }
+    
+    return nil
+}
+
+
+func (s *bizObjectOAMParamsService) CacheObjectOAMData(bizId, objectId, oamId int64) error {
+    oam, err1 := s.oamRepo.GetById(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,
+    }
+    
+    // 缓存数据
+    err3 := cache.SetBizObjectOAMData(oam.ObjectCode, oam.OamCode, oamData)
+    if err3 != nil {
+        return errors.New("Redis缓存Model数据失败")
+    }
+    
+    return nil
+}

+ 2 - 1
viewmodels/biz_object_oam_data.go

@@ -20,7 +20,8 @@ type BizObjectOAMData struct {
     SqlCount     string    `json:"sqlCount"        xorm:"'sql_count'       varchar(1023)  comment('Sql Count')      "`
     SqlOrder     string    `json:"sqlOrder"        xorm:"'sql_order'       varchar(1023)  comment('Statement')      "`
     OamDesc      string    `json:"oamDesc"         xorm:"'oam_desc'        varchar(1023)  comment('描述')            "`
-    OamRules      []BizObjectOAMRuleInfo `json:"oamRules"`
+    OamRules      []BizObjectOAMRuleInfo   `json:"oamRules"`
+    OamParams     []BizObjectOAMParamsInfo `json:"oamParams"`
 }
 
 func (t *BizObjectOAMData) TableName() string {

+ 18 - 0
viewmodels/biz_object_oam_params_info.go

@@ -0,0 +1,18 @@
+package viewmodels
+
+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')        "`
+}
+
+func (t *BizObjectOAMParamsInfo) TableName() string {
+    return "biz_object_oam_params"
+}
+

+ 1 - 0
viewmodels/biz_object_oam_rule_info.go

@@ -14,6 +14,7 @@ type BizObjectOAMRuleInfo struct {
     TargetAttrTitle string    `json:"targetAttrTitle" xorm:"'target_attr_title' varchar(127)   comment('Target AttrTitle')"`
     TargetAttrCode  string    `json:"targetAttrCode"  xorm:"'target_attr_code'  varchar(127)   comment('Target AttrCode') "`
     RuleCode        string    `json:"ruleCode"        xorm:"'rule_code'         varchar(127)   comment('Rule Code')       "`
+    SortNo       int64     `json:"sortNo"          xorm:"'sort_no'         bigint         comment('Sort No')        "`
 }
 
 func (t *BizObjectOAMRuleInfo) TableName() string {

+ 92 - 0
web/controllers/biz_object_oam_params_controller.go

@@ -0,0 +1,92 @@
+package controllers
+
+import (
+    "github.com/kataras/iris/v12/mvc"
+    "xps/datamodels"
+    "xps/service"
+)
+
+type BizObjectOAMParamsController struct {
+    Base
+    Service service.BizObjectOAMParamsService
+}
+
+func (c *BizObjectOAMParamsController) BeforeActivation(b mvc.BeforeActivation) {
+    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"       )
+    b.Handle("DELETE",  "/{bizId:int64}/{objectId:int64}/{oamId:int64}/{paramsId:int64}", "DeleteByID"   )
+}
+
+func (c *BizObjectOAMParamsController) GetList() *JsonResult {
+    params    := c.buildParams()
+    data, err := c.Service.GetList(params)
+    if err != nil {
+        return ResultErr(err.Error(), nil)
+    } else {
+        return ResultOk("获取成功", data)
+    }
+}
+
+func (c *BizObjectOAMParamsController) GetListById(bizId, objectId, oamId int64) *JsonResult {
+    params    := c.buildParams()
+    params["bizId"]    = bizId
+    params["objectId"] = objectId
+    params["oamId"]    = oamId
+    data, err := c.Service.GetList(params)
+    if err != nil {
+        return ResultErr(err.Error(), nil)
+    } else {
+        return ResultOk("获取成功", data)
+    }
+}
+
+func (c *BizObjectOAMParamsController) GetById(bizId, objectId, oamId, paramsId int64) *JsonResult {
+    data, err := c.Service.GetById(bizId, objectId, oamId, paramsId)
+    if err != nil {
+        return ResultErr(err.Error(), nil)
+    } else {
+        return ResultOk("获取成功", data)
+    }
+}
+
+func (c *BizObjectOAMParamsController) Create() *JsonResult {
+    param   := datamodels.BizObjectOAMParams{}
+    if err := c.Ctx.ReadJSON(&param); err != nil {
+        return ResultErr("读取数据失败", nil)
+    }
+    
+    if err := c.Service.Create(&param); err != nil {
+        return ResultErr(err.Error(), nil)
+    } else {
+        return ResultOk("新增成功", nil)
+    }
+}
+
+func (c *BizObjectOAMParamsController) Update() *JsonResult {
+    param    := datamodels.BizObjectOAMParams{}
+    if err := c.Ctx.ReadJSON(&param); err != nil {
+        return ResultErr("读取数据失败", nil)
+    }
+    
+    if err := c.Service.Update(&param); err != nil {
+        return ResultErr(err.Error(), nil)
+    } else {
+        return ResultOk("更新成功", nil)
+    }
+}
+
+func (c *BizObjectOAMParamsController) DeleteByID(bizId, objectId, oamId, paramsId int64) *JsonResult {
+    m := make(map[string]interface{})
+    m["bizId"]    = bizId
+    m["objectId"] = objectId
+    m["oamId"]    = oamId
+    m["paramsId"]     = paramsId
+    if err := c.Service.Delete(m); err != nil {
+        return ResultErr(err.Error(), nil)
+    } else {
+        return ResultOk("删除成功", nil)
+    }
+}

+ 5 - 0
web/router/routes.go

@@ -206,6 +206,11 @@ func Configure(b *bootstrap.Bootstrapper) {
 		bizObjectOAMRuleApp := mvc.New(bizParty.Party("/object/oam/rule"))
 		bizObjectOAMRuleApp.Register(bizObjectOAMRuleService)
 		bizObjectOAMRuleApp.Handle(new(controllers.BizObjectOAMRuleController))
+		
+		bizObjectOAMParamsService := service.NewBizObjectOAMParamsService()
+		bizObjectOAMParamsApp := mvc.New(bizParty.Party("/object/oam/params"))
+		bizObjectOAMParamsApp.Register(bizObjectOAMParamsService)
+		bizObjectOAMParamsApp.Handle(new(controllers.BizObjectOAMParamsController))
 	}
 	
 	// database