|
@@ -19,7 +19,7 @@ type (
|
|
DcItemHistoryDataModel interface {
|
|
DcItemHistoryDataModel interface {
|
|
dcItemHistoryDataModel
|
|
dcItemHistoryDataModel
|
|
MultiInsert(ctx context.Context, projectId int64, datas []*pb.ItemHistoryData) (int64, error)
|
|
MultiInsert(ctx context.Context, projectId int64, datas []*pb.ItemHistoryData) (int64, error)
|
|
- QueryHistoryDataByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) ([]ItemHistoryData, error)
|
|
|
|
|
|
+ QueryHistoryDataByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) ([]*ItemHistoryData, error)
|
|
QueryHistoryDataMaxMinByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) (*MaxMinData, error)
|
|
QueryHistoryDataMaxMinByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) (*MaxMinData, error)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -63,14 +63,20 @@ func (m *defaultDcItemHistoryDataModel) MultiInsert(ctx context.Context, project
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-func (m *defaultDcItemHistoryDataModel) QueryHistoryDataByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) ([]ItemHistoryData, error) {
|
|
|
|
- resp := make([]ItemHistoryData, 0)
|
|
|
|
|
|
+func (m *defaultDcItemHistoryDataModel) QueryHistoryDataByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) ([]*ItemHistoryData, error) {
|
|
|
|
+ resp := make([]*ItemHistoryData, 0)
|
|
var err error
|
|
var err error
|
|
- query := fmt.Sprintf("SELECT * FROM %s AS hd "+
|
|
|
|
- " LEFT JOIN dc_item_config as ic ON hd.item_name = ic.item_name "+
|
|
|
|
- " WHERE hd.val > ic.min_val AND hd.val < ic.max_val AND hd.item_name in (?) AND h_time BETWEEN ? AND ?", m.getTableName(in.ProjectId))
|
|
|
|
|
|
+ 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 {
|
|
if strings.Index(in.ItemName, ",") > 0 {
|
|
- err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Split(in.ItemName, ","), in.Stime, in.Etime)
|
|
|
|
|
|
+ ItemNames := strings.Split(in.ItemName, ",")
|
|
|
|
+ var ItemNameStrs []string
|
|
|
|
+ for _, val := range ItemNames {
|
|
|
|
+ ItemNameStrs = append(ItemNameStrs, val)
|
|
|
|
+ }
|
|
|
|
+ inClause := strings.Join(ItemNameStrs, ",")
|
|
|
|
+ err = m.conn.QueryRowsCtx(ctx, &resp, query, inClause, in.Stime, in.Etime)
|
|
} else {
|
|
} else {
|
|
err = m.conn.QueryRowsCtx(ctx, &resp, query, in.ItemName, in.Stime, in.Etime)
|
|
err = m.conn.QueryRowsCtx(ctx, &resp, query, in.ItemName, in.Stime, in.Etime)
|
|
}
|
|
}
|
|
@@ -88,9 +94,9 @@ func (m *defaultDcItemHistoryDataModel) QueryHistoryDataByTime(ctx context.Conte
|
|
func (m *defaultDcItemHistoryDataModel) QueryHistoryDataMaxMinByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) (*MaxMinData, error) {
|
|
func (m *defaultDcItemHistoryDataModel) QueryHistoryDataMaxMinByTime(ctx context.Context, in *pb.ItemHistoryDataByTimeReq) (*MaxMinData, error) {
|
|
resp := &MaxMinData{}
|
|
resp := &MaxMinData{}
|
|
var err error
|
|
var err error
|
|
- query := fmt.Sprintf("SELECT max(val) as max_val, min(val) as min_val FROM %s AS hd "+
|
|
|
|
- " LEFT JOIN dc_item_config as ic ON hd.item_name = ic.item_name "+
|
|
|
|
- " WHERE hd.val > ic.min_val AND hd.val < ic.max_val AND hd.item_name = ? AND h_time BETWEEN ? AND ?", m.getTableName(in.ProjectId))
|
|
|
|
|
|
+ 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))
|
|
err = m.conn.QueryRowCtx(ctx, resp, query, in.ItemName, in.Stime, in.Etime)
|
|
err = m.conn.QueryRowCtx(ctx, resp, query, in.ItemName, in.Stime, in.Etime)
|
|
|
|
|
|
switch err {
|
|
switch err {
|