瀏覽代碼

Merge remote-tracking branch 'origin/master'

gaoyagang 1 年之前
父節點
當前提交
84f3a4cfb2
共有 1 個文件被更改,包括 10 次插入7 次删除
  1. 10 7
      app/model/dcitemhistorydatamodel.go

+ 10 - 7
app/model/dcitemhistorydatamodel.go

@@ -66,18 +66,21 @@ func (m *defaultDcItemHistoryDataModel) MultiInsert(ctx context.Context, project
 func (m *defaultDcItemHistoryDataModel) QueryHistoryDataByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) ([]*ItemHistoryData, error) {
 	resp := make([]*ItemHistoryData, 0)
 	var err error
-	query := fmt.Sprintf("SELECT hd.* FROM %s AS hd "+
-		" LEFT JOIN dc_item_config as ic ON hd.item_name = ic.item_name AND hd.val > ic.min_val AND hd.val < ic.max_val "+
-		" WHERE hd.item_name in (?) AND h_time BETWEEN ? AND ? AND (ic.item_name IS NOT NULL OR ic.item_name IS NULL)", m.getTableName(in.ProjectId))
 	if strings.Index(in.ItemName, ",") > 0 {
 		ItemNames := strings.Split(in.ItemName, ",")
 		var ItemNameStrs []string
 		for _, val := range ItemNames {
-			ItemNameStrs = append(ItemNameStrs, val)
+			ItemNameStrs = append(ItemNameStrs, "'"+val+"'")
 		}
 		inClause := strings.Join(ItemNameStrs, ",")
-		err = m.conn.QueryRowsCtx(ctx, &resp, query, inClause, in.Stime, in.Etime)
+		query := fmt.Sprintf("SELECT hd.* FROM %s AS hd "+
+			" LEFT JOIN dc_item_config as ic ON hd.item_name = ic.item_name "+
+			" WHERE hd.item_name in (%s) AND h_time BETWEEN ? AND ? AND (ic.id IS NULL OR (hd.val > ic.min_val AND hd.val < ic.max_val))", m.getTableName(in.ProjectId), inClause)
+		err = m.conn.QueryRowsCtx(ctx, &resp, query, in.Stime, in.Etime)
 	} else {
+		query := fmt.Sprintf("SELECT hd.* FROM %s AS hd "+
+			" LEFT JOIN dc_item_config as ic ON hd.item_name = ic.item_name "+
+			" WHERE hd.item_name in (?) AND h_time BETWEEN ? AND ? AND (ic.id IS NULL OR (hd.val > ic.min_val AND hd.val < ic.max_val))", m.getTableName(in.ProjectId))
 		err = m.conn.QueryRowsCtx(ctx, &resp, query, in.ItemName, in.Stime, in.Etime)
 	}
 
@@ -95,8 +98,8 @@ func (m *defaultDcItemHistoryDataModel) QueryHistoryDataMaxMinByTime(ctx context
 	resp := &MaxMinData{}
 	var err error
 	query := fmt.Sprintf("SELECT max(hd.val) as max_val, min(hd.val) as min_val FROM %s AS hd "+
-		" LEFT JOIN dc_item_config as ic ON hd.item_name = ic.item_name AND hd.val > ic.min_val AND hd.val < ic.max_val "+
-		" WHERE hd.item_name = ? AND h_time BETWEEN ? AND ? AND (ic.item_name IS NOT NULL OR ic.item_name IS NULL)", m.getTableName(in.ProjectId))
+		" LEFT JOIN dc_item_config as ic ON hd.item_name = ic.item_name "+
+		" WHERE hd.item_name = ? AND h_time BETWEEN ? AND ? AND (ic.id IS NULL OR (hd.val > ic.min_val AND hd.val < ic.max_val))", m.getTableName(in.ProjectId))
 	err = m.conn.QueryRowCtx(ctx, resp, query, in.ItemName, in.Stime, in.Etime)
 
 	switch err {