|
@@ -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
|
|
|
|
|
+}
|