houyaf 3 năm trước cách đây
mục cha
commit
2f3cfce92e

+ 4 - 2
datamodels/biz_object_rule.go

@@ -1,10 +1,12 @@
 package datamodels
 
 type BizObjectRule struct {
-    BizId        int64     `json:"bizId"           xorm:"'biz_id'          bigint      pk comment('主键ID')        "`
-    ObjectId     int64     `json:"objectId"        xorm:"'object_id'       bigint      pk comment('主键ID')        "`
+    RoId         int64     `json:"roId"            xorm:"'ro_id'           bigint      pk comment('主键ID')        "`
+    BizId        int64     `json:"bizId"           xorm:"'biz_id'          bigint         comment('BIZ ID')       "`
+    ObjectId     int64     `json:"objectId"        xorm:"'object_id'       bigint         comment('Object ID')    "`
     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')    "`
 }
 
 func (t *BizObjectRule) TableName() string {

+ 124 - 0
repositories/biz_object_rule_repo.go

@@ -0,0 +1,124 @@
+package repositories
+
+import (
+    "errors"
+    "fmt"
+    "xorm.io/xorm"
+    "xps/datamodels"
+    "xps/viewmodels"
+)
+
+type BizObjectRuleRepo struct {
+    engine *xorm.Engine
+}
+
+func NewBizObjectRuleRepo(engine *xorm.Engine) *BizObjectRuleRepo {
+    return &BizObjectRuleRepo{
+        engine: engine,
+    }
+}
+
+func (d *BizObjectRuleRepo) GetList(m map[string]interface{}) ([]viewmodels.BizObjectRuleInfo, error) {
+    sqlSelect  := ` SELECT A.*,
+                           B.object_title,
+                           B.object_code,
+                           B.object_type `
+    sqlFrom    := ` FROM      biz_object_rule 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    `
+    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 keywords, ok := m["keywords"]; ok {
+        sqlWhere += ` AND A.oam_title like ` + "'%" + fmt.Sprintf("%s", keywords) + "%'"
+    }
+    sqlOrderBy := " ORDER BY A.oam_id ASC "
+    
+    datalist   := make([]viewmodels.BizObjectRuleInfo, 0)
+    err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
+    if err != nil {
+        return nil, err
+    } else {
+        return datalist, nil
+    }
+}
+
+func (d *BizObjectRuleRepo) GetById(roId int64) (*viewmodels.BizObjectRuleInfo, error) {
+    sqlSelect  := ` SELECT A.*,
+                           B.object_title,
+                           B.object_code,
+                           B.object_type `
+    sqlFrom    := ` FROM      biz_object_rule 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.ro_id    = %d ", roId)
+    data    := &viewmodels.BizObjectRuleInfo{}
+    has, err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere).Get(data)
+    if !has || err != nil {
+        return nil, err
+    } else {
+        return data, nil
+    }
+}
+
+func (d *BizObjectRuleRepo) GetListById(bizId, objectId int64) ([]viewmodels.BizObjectRuleInfo, error) {
+    sqlSelect  := ` SELECT A.*,
+                           B.object_title,
+                           B.object_code,
+                           B.object_type `
+    sqlFrom    := ` FROM      biz_object_rule 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)
+    
+    dataList    := make([]viewmodels.BizObjectRuleInfo, 0)
+    has, err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere).Get(&dataList)
+    if !has || err != nil {
+        return nil, err
+    } else {
+        return dataList, nil
+    }
+}
+
+
+func (d *BizObjectRuleRepo) Create(data *datamodels.BizObjectRule) error {
+    _, err := d.engine.Insert(data)
+    return err
+}
+
+func (d *BizObjectRuleRepo) Update(data *datamodels.BizObjectRule) error {
+    roId     := data.RoId
+    _, err := d.engine.
+        Where("ro_id = ?", roId).
+        AllCols().
+        Update(data)
+    return err
+}
+
+func (d *BizObjectRuleRepo) Delete(m map[string]interface{}) error {
+    roId, ok := m["roId"]
+    if !ok {
+        return errors.New("数据不完整")
+    }
+    data := &datamodels.BizObjectRule{}
+    _, err := d.engine.
+        Where("ro_id = ?", roId).
+        Delete(data)
+    return err
+}
+
+func (d *BizObjectRuleRepo) DeleteByObjectId(bizId, objectId int64) error {
+    data := &datamodels.BizObjectRule{}
+    _, err := d.engine.
+        Where("biz_id = ?", bizId).
+        Where("object_id = ?", objectId).
+        Delete(data)
+    return err
+}

+ 47 - 0
service/biz_object_rule_service.go

@@ -1 +1,48 @@
 package service
+
+import (
+    "xps/datamodels"
+    "xps/datasource"
+    "xps/repositories"
+    "xps/viewmodels"
+)
+
+type BizObjectRuleService interface {
+    GetList(m map[string]interface{}) ([]viewmodels.BizObjectRuleInfo, error)
+    GetById(roId int64) (*viewmodels.BizObjectRuleInfo, error)
+    Create(d *datamodels.BizObjectRule) error
+    Update(d *datamodels.BizObjectRule) error
+    Delete(m map[string]interface{}) error
+}
+
+type bizObjectRuleService struct {
+    repo *repositories.BizObjectRuleRepo
+}
+
+func NewBizObjectRuleService() BizObjectRuleService {
+    return &bizObjectRuleService{
+        repo: repositories.NewBizObjectRuleRepo(datasource.InstanceMaster()),
+    }
+}
+
+func (s *bizObjectRuleService) GetList(m map[string]interface{}) ([]viewmodels.BizObjectRuleInfo, error) {
+    return s.repo.GetList(m)
+}
+
+func (s *bizObjectRuleService) GetById(roId int64) (*viewmodels.BizObjectRuleInfo, error) {
+    return s.repo.GetById(roId)
+}
+
+func (s *bizObjectRuleService) Create(ro *datamodels.BizObjectRule) error {
+    roId    := NewID()
+    ro.RoId = roId
+    return s.repo.Create(ro)
+}
+
+func (s *bizObjectRuleService) Update(ro *datamodels.BizObjectRule) error {
+    return s.repo.Update(ro)
+}
+
+func (s *bizObjectRuleService) Delete(m map[string]interface{}) error {
+    return s.repo.Delete(m)
+}

+ 14 - 0
viewmodels/biz_object_rule_info.go

@@ -0,0 +1,14 @@
+package viewmodels
+
+type BizObjectRuleInfo struct {
+    RoId         int64     `json:"roId"            xorm:"'ro_id'           bigint      pk comment('主键ID')        "`
+    BizId        int64     `json:"bizId"           xorm:"'biz_id'          bigint         comment('BIZ ID')       "`
+    ObjectId     int64     `json:"objectId"        xorm:"'object_id'       bigint         comment('Object ID')    "`
+    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')    "`
+}
+
+func (t *BizObjectRuleInfo) TableName() string {
+    return "biz_object_rule"
+}

+ 88 - 0
web/controllers/biz_object_rule_controller.go

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

+ 5 - 1
web/router/routes.go

@@ -168,7 +168,6 @@ func Configure(b *bootstrap.Bootstrapper) {
 		modelObjectOAMApp.Handle(new(controllers.ModelObjectOAMController))
 	}
 	
-	
 	// Biz
 	bizParty := b.Party("/biz", crs).AllowMethods(iris.MethodOptions)
 	{
@@ -197,6 +196,11 @@ func Configure(b *bootstrap.Bootstrapper) {
 		bizRuleApp := mvc.New(bizParty.Party("/rule"))
 		bizRuleApp.Register(bizRuleService)
 		bizRuleApp.Handle(new(controllers.BizRuleController))
+		
+		bizObjectRuleService := service.NewBizObjectRuleService()
+		bizObjectRuleApp := mvc.New(bizParty.Party("/object/rule"))
+		bizObjectRuleApp.Register(bizObjectRuleService)
+		bizObjectRuleApp.Handle(new(controllers.BizObjectRuleController))
 	}
 	
 	// database