|
@@ -5,6 +5,7 @@ import (
|
|
|
"fmt"
|
|
"fmt"
|
|
|
"time"
|
|
"time"
|
|
|
"xorm.io/xorm"
|
|
"xorm.io/xorm"
|
|
|
|
|
+ "xps/cache"
|
|
|
"xps/datamodels"
|
|
"xps/datamodels"
|
|
|
"xps/viewmodels"
|
|
"xps/viewmodels"
|
|
|
)
|
|
)
|
|
@@ -19,12 +20,11 @@ func NewDataBusRepo(engine *xorm.Engine) *DataBusRepo {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (d *DataBusRepo) GetPage(sqlSelect, sqlFrom, sqlWhere, sqlOrderBy string, m map[string]interface{}) (*viewmodels.PageResult, error) {
|
|
|
|
|
- limit := m["limit"].(int)
|
|
|
|
|
- page := m["page"].(int)
|
|
|
|
|
|
|
+func (d *DataBusRepo) GetPage(sqlStatement, sqlCount string, m map[string]interface{}) (*viewmodels.PageResult, error) {
|
|
|
|
|
+ limit := m["limit"].(int)
|
|
|
|
|
+ page := m["page"].(int)
|
|
|
|
|
|
|
|
- sqlCount := ` SELECT COUNT(*) `
|
|
|
|
|
- _, err1 := d.engine.Exec(sqlCount + sqlFrom + sqlWhere)
|
|
|
|
|
|
|
+ _, err1 := d.engine.Exec(sqlCount)
|
|
|
if err1 != nil {
|
|
if err1 != nil {
|
|
|
return nil, err1
|
|
return nil, err1
|
|
|
}
|
|
}
|
|
@@ -33,7 +33,7 @@ func (d *DataBusRepo) GetPage(sqlSelect, sqlFrom, sqlWhere, sqlOrderBy string, m
|
|
|
sqlLimit := fmt.Sprintf(" LIMIT %d OFFSET %d ", limit, pageStart)
|
|
sqlLimit := fmt.Sprintf(" LIMIT %d OFFSET %d ", limit, pageStart)
|
|
|
|
|
|
|
|
datalist := make([]datamodels.App, 0)
|
|
datalist := make([]datamodels.App, 0)
|
|
|
- err2 := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy + sqlLimit).Find(&datalist)
|
|
|
|
|
|
|
+ err2 := d.engine.SQL(sqlStatement + sqlLimit).Find(&datalist)
|
|
|
if err2 != nil {
|
|
if err2 != nil {
|
|
|
return nil, err2
|
|
return nil, err2
|
|
|
}
|
|
}
|
|
@@ -46,22 +46,21 @@ func (d *DataBusRepo) GetPage(sqlSelect, sqlFrom, sqlWhere, sqlOrderBy string, m
|
|
|
return pageResult, nil
|
|
return pageResult, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (d *DataBusRepo) GetList(sqlSelect, sqlFrom, sqlWhere, sqlOrderBy string, m map[string]interface{}) ([]map[string]interface{}, error) {
|
|
|
|
|
- results, err := d.engine.QueryInterface(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy)
|
|
|
|
|
|
|
+func (d *DataBusRepo) GetList(sqlStatement string, m map[string]interface{}) ([]map[string]interface{}, error) {
|
|
|
|
|
+ results, err := d.engine.QueryInterface(sqlStatement)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return nil, err
|
|
return nil, err
|
|
|
}
|
|
}
|
|
|
return results, nil
|
|
return results, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (d *DataBusRepo) GetById(statement string, fields map[string]interface{})([]map[string]interface{}, error){
|
|
|
|
|
-
|
|
|
|
|
- sql := statement
|
|
|
|
|
|
|
+func (d *DataBusRepo) GetById(sqlStatement string, fields map[string]interface{})(map[string]interface{}, error){
|
|
|
|
|
+ sql := sqlStatement
|
|
|
sql += " WHERE 1 = 1"
|
|
sql += " WHERE 1 = 1"
|
|
|
|
|
|
|
|
- // for fieldName, fieldValue := range fields {
|
|
|
|
|
- // sql += fmt.Sprintf(" AND %v = %v", fieldName, fieldValue)
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ for fieldName, fieldValue := range fields {
|
|
|
|
|
+ sql += fmt.Sprintf(" AND %v = %v", fieldName, fieldValue)
|
|
|
|
|
+ }
|
|
|
results, err := d.engine.QueryInterface(sql)
|
|
results, err := d.engine.QueryInterface(sql)
|
|
|
|
|
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -71,10 +70,15 @@ func (d *DataBusRepo) GetById(statement string, fields map[string]interface{})([
|
|
|
return nil, errors.New(" 主键不唯一")
|
|
return nil, errors.New(" 主键不唯一")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return results, nil
|
|
|
|
|
|
|
+ return results[0], nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (d *DataBusRepo) Create(object *viewmodels.ModelObjectDataInfo, values map[string]interface{}) error {
|
|
|
|
|
|
|
+func (d *DataBusRepo) Create(objectCode string, values map[string]interface{}) error {
|
|
|
|
|
+ object, err1 := cache.GetModelObjectData(objectCode)
|
|
|
|
|
+ if err1 == nil {
|
|
|
|
|
+ return err1
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
tableName := object.ObjectCode
|
|
tableName := object.ObjectCode
|
|
|
fields := object.Attrs
|
|
fields := object.Attrs
|
|
|
|
|
|
|
@@ -99,18 +103,23 @@ func (d *DataBusRepo) Create(object *viewmodels.ModelObjectDataInfo, values map[
|
|
|
sqlFields += ") "
|
|
sqlFields += ") "
|
|
|
sqlValues += ") "
|
|
sqlValues += ") "
|
|
|
|
|
|
|
|
- _, err := d.engine.Exec(sql + sqlFields + sqlValues)
|
|
|
|
|
- return err
|
|
|
|
|
|
|
+ _, err2 := d.engine.Exec(sql + sqlFields + sqlValues)
|
|
|
|
|
+ return err2
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (d *DataBusRepo) Update(object *viewmodels.ModelObjectDataInfo, values map[string]interface{}) error {
|
|
|
|
|
|
|
+func (d *DataBusRepo) Update(objectCode string, values map[string]interface{}) error {
|
|
|
|
|
+ object, err1 := cache.GetModelObjectData(objectCode)
|
|
|
|
|
+ if err1 == nil {
|
|
|
|
|
+ return err1
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
tableName := object.ObjectCode
|
|
tableName := object.ObjectCode
|
|
|
fields := object.Attrs
|
|
fields := object.Attrs
|
|
|
|
|
|
|
|
sql := fmt.Sprintf("UPDATE table %s ", tableName)
|
|
sql := fmt.Sprintf("UPDATE table %s ", tableName)
|
|
|
|
|
|
|
|
- sqlFieldSets := "SET "
|
|
|
|
|
- sqlWhere := "WHERE 1 = 1"
|
|
|
|
|
|
|
+ sqlFieldSets := " SET "
|
|
|
|
|
+ sqlWhere := " WHERE 1 = 1 "
|
|
|
for idx, field := range fields {
|
|
for idx, field := range fields {
|
|
|
fieldName := field.AttrCode
|
|
fieldName := field.AttrCode
|
|
|
fieldValue, ok := values[fieldName]
|
|
fieldValue, ok := values[fieldName]
|
|
@@ -133,14 +142,19 @@ func (d *DataBusRepo) Update(object *viewmodels.ModelObjectDataInfo, values map[
|
|
|
return err
|
|
return err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func (d *DataBusRepo) Patch(object *viewmodels.ModelObjectDataInfo, values map[string]interface{}) error {
|
|
|
|
|
|
|
+func (d *DataBusRepo) Patch(objectCode string, values map[string]interface{}) error {
|
|
|
|
|
+ object, err1 := cache.GetModelObjectData(objectCode)
|
|
|
|
|
+ if err1 == nil {
|
|
|
|
|
+ return err1
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
tableName := object.ObjectCode
|
|
tableName := object.ObjectCode
|
|
|
fields := object.Attrs
|
|
fields := object.Attrs
|
|
|
|
|
|
|
|
sql := fmt.Sprintf("UPDATE table %s ", tableName)
|
|
sql := fmt.Sprintf("UPDATE table %s ", tableName)
|
|
|
|
|
|
|
|
- sqlFieldSets := "SET "
|
|
|
|
|
- sqlWhere := "WHERE 1 = 1"
|
|
|
|
|
|
|
+ sqlFieldSets := "SET "
|
|
|
|
|
+ sqlWhere := "WHERE 1 = 1"
|
|
|
for idx, field := range fields {
|
|
for idx, field := range fields {
|
|
|
fieldName := field.AttrCode
|
|
fieldName := field.AttrCode
|
|
|
fieldValue, ok := values[fieldName]
|
|
fieldValue, ok := values[fieldName]
|
|
@@ -164,7 +178,12 @@ func (d *DataBusRepo) Patch(object *viewmodels.ModelObjectDataInfo, values map[s
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-func (d *DataBusRepo) Delete(object *viewmodels.ModelObjectDataInfo, values map[string]interface{}) error {
|
|
|
|
|
|
|
+func (d *DataBusRepo) Delete(objectCode string, values map[string]interface{}) error {
|
|
|
|
|
+ object, err1 := cache.GetModelObjectData(objectCode)
|
|
|
|
|
+ if err1 == nil {
|
|
|
|
|
+ return err1
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
tableName := object.ObjectCode
|
|
tableName := object.ObjectCode
|
|
|
fields := object.Attrs
|
|
fields := object.Attrs
|
|
|
|
|
|