|
|
@@ -7,6 +7,7 @@ package internal
|
|
|
import (
|
|
|
"context"
|
|
|
"database/sql"
|
|
|
+ "fmt"
|
|
|
"github.com/gogf/gf/container/garray"
|
|
|
"github.com/gogf/gf/database/gdb"
|
|
|
"github.com/gogf/gf/frame/g"
|
|
|
@@ -731,25 +732,21 @@ func (d *WorkOrderDao) DataScope(ctx context.Context, args ...interface{}) *Work
|
|
|
}
|
|
|
}
|
|
|
userIds, ok := dataScope["userIds"]
|
|
|
- specialFlag, userCols, orColsMap := d.checkColumnsName(dataScope, args)
|
|
|
+ specialFlag, userCols, orColsMap := d.checkColumnsName(dataScope, args...)
|
|
|
|
|
|
var orColumns []string
|
|
|
var orValues []interface{}
|
|
|
if ok && userIds != "-1" {
|
|
|
- columns := []string{"created_by"}
|
|
|
- if len(userCols) > 0 {
|
|
|
- columns = userCols
|
|
|
- }
|
|
|
- for _, column := range columns {
|
|
|
- if ok, _ := d.M.HasField(column); ok || specialFlag {
|
|
|
- orColumns = append(orColumns, column+" IN (?) ")
|
|
|
+ for _, col := range userCols {
|
|
|
+ if ok, _ := d.M.HasField(col); ok || specialFlag {
|
|
|
+ orColumns = append(orColumns, fmt.Sprintf(" ( %s IN (?) )", col))
|
|
|
orValues = append(orValues, userIds)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
for col, params := range orColsMap {
|
|
|
if ok, _ := d.M.HasField(col); ok || specialFlag {
|
|
|
- orColumns = append(orColumns, col+" IN (?) ")
|
|
|
+ orColumns = append(orColumns, fmt.Sprintf(" ( %s IN (?) )", col))
|
|
|
orValues = append(orValues, params)
|
|
|
}
|
|
|
}
|
|
|
@@ -758,10 +755,10 @@ func (d *WorkOrderDao) DataScope(ctx context.Context, args ...interface{}) *Work
|
|
|
if !salesEngineerFlag {
|
|
|
var andColumns []string
|
|
|
var andValues []interface{}
|
|
|
- for k, v := range dataScope {
|
|
|
- if ok, _ := d.M.HasField(k); ok || specialFlag {
|
|
|
- andColumns = append(andColumns, k+" IN (?) ")
|
|
|
- andValues = append(andValues, v)
|
|
|
+ for col, params := range dataScope {
|
|
|
+ if ok, _ := d.M.HasField(col); ok || specialFlag {
|
|
|
+ andColumns = append(andColumns, fmt.Sprintf(" ( %s IN (?) )", col))
|
|
|
+ andValues = append(andValues, params)
|
|
|
}
|
|
|
}
|
|
|
if len(andColumns) > 0 {
|
|
|
@@ -808,7 +805,7 @@ func (d *WorkOrderDao) checkColumnsName(dataScope map[string]interface{}, args .
|
|
|
if val, ok := args[0].(map[string]interface{}); ok {
|
|
|
specialFlag = true
|
|
|
colsContrast = val
|
|
|
- if orcols, ok := val["orcols"]; ok && val[orcols.(string)] != "" {
|
|
|
+ if orcols, ok := val["orcols"]; ok {
|
|
|
if col, ok := orcols.(string); ok && gconv.String(val[col]) != "" {
|
|
|
orColsMap[col] = val[col]
|
|
|
delete(colsContrast, col)
|