|
@@ -405,60 +405,214 @@ func GetEdbBeforeAndAfterDateData(targetDate string, dataList []*data_manage.Edb
|
|
|
// @return dataCount int
|
|
|
// @return dataList []*data_manage.EdbData
|
|
|
// @return err error
|
|
|
-func GetPageData(edbInfoId, source, subSource, startSize, pageSize int) (dataCount int, dataList []*data_manage.EdbData, err error) {
|
|
|
+func GetPageData(edbInfoId, source, subSource int, endDataTime string, startSize, pageSize int) (dataCount int, dataList []*data_manage.EdbData, err error) {
|
|
|
dataList = make([]*data_manage.EdbData, 0)
|
|
|
|
|
|
// 外部数据需要额外处理(从mongo获取)
|
|
|
if source == utils.DATA_SOURCE_BUSINESS {
|
|
|
- mogDataObj := mgo.EdbDataBusiness{}
|
|
|
- // 构建查询条件
|
|
|
- queryConditions := bson.M{
|
|
|
- "edb_info_id": edbInfoId,
|
|
|
- }
|
|
|
+ return getPageDataByMongo(edbInfoId, source, subSource, endDataTime, startSize, pageSize)
|
|
|
+ }
|
|
|
|
|
|
- // 获取数据总量
|
|
|
- tmpCount, tmpErr := mogDataObj.GetCountDataList(queryConditions)
|
|
|
- if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
|
|
|
- err = tmpErr
|
|
|
- return
|
|
|
- }
|
|
|
- dataCount = int(tmpCount)
|
|
|
+ // 默认走mysql
|
|
|
+ return getPageDataByMysql(edbInfoId, source, subSource, endDataTime, startSize, pageSize)
|
|
|
+}
|
|
|
|
|
|
- // 获取列表数据
|
|
|
- tmpDataList, tmpErr := mogDataObj.GetPageDataList(queryConditions, int64(startSize), int64(pageSize), []string{"-data_time"})
|
|
|
+// getPageDataByMysql
|
|
|
+// @Description: 从Mysql获取数据
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-05-07 15:08:41
|
|
|
+// @param edbInfoId int
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @param endDataTime string
|
|
|
+// @param startSize int
|
|
|
+// @param pageSize int
|
|
|
+// @return dataCount int
|
|
|
+// @return dataList []*data_manage.EdbData
|
|
|
+// @return err error
|
|
|
+func getPageDataByMysql(edbInfoId, source, subSource int, endDataTime string, startSize, pageSize int) (dataCount int, dataList []*data_manage.EdbData, err error) {
|
|
|
+ dataList = make([]*data_manage.EdbData, 0)
|
|
|
+ var dataCondition string
|
|
|
+ var dataPars []interface{}
|
|
|
+
|
|
|
+ dataCondition += ` AND edb_info_id=? `
|
|
|
+ dataPars = append(dataPars, edbInfoId)
|
|
|
+
|
|
|
+ // 结束日期
|
|
|
+ if endDataTime != "" {
|
|
|
+ dataCondition += ` AND data_time <= ? `
|
|
|
+ dataPars = append(dataPars, endDataTime)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取数据总量
|
|
|
+ dataCount, err = data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, source, subSource)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取列表数据
|
|
|
+ dataList, err = data_manage.GetEdbDataListByCondition(dataCondition, dataPars, source, subSource, pageSize, startSize)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// getPageDataByMongo
|
|
|
+// @Description: 从MongoDB获取数据
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-05-07 15:06:42
|
|
|
+// @param edbInfoId int
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @param endDataTime string
|
|
|
+// @param startSize int
|
|
|
+// @param pageSize int
|
|
|
+// @return dataCount int
|
|
|
+// @return dataList []*data_manage.EdbData
|
|
|
+// @return err error
|
|
|
+func getPageDataByMongo(edbInfoId, source, subSource int, endDataTime string, startSize, pageSize int) (dataCount int, dataList []*data_manage.EdbData, err error) {
|
|
|
+ dataList = make([]*data_manage.EdbData, 0)
|
|
|
+
|
|
|
+ mogDataObj := mgo.EdbDataBusiness{}
|
|
|
+ // 构建查询条件
|
|
|
+ queryConditions := bson.M{
|
|
|
+ "edb_info_id": edbInfoId,
|
|
|
+ }
|
|
|
+ // 结束日期
|
|
|
+ if endDataTime != "" {
|
|
|
+ endDateTime, tmpErr := time.ParseInLocation(utils.FormatDate, endDataTime, time.Local)
|
|
|
if tmpErr != nil {
|
|
|
err = tmpErr
|
|
|
return
|
|
|
}
|
|
|
- for k, v := range tmpDataList {
|
|
|
- dataList = append(dataList, &data_manage.EdbData{
|
|
|
- EdbDataId: k + 1,
|
|
|
- EdbInfoId: v.EdbInfoId,
|
|
|
- DataTime: v.DataTime.Format(utils.FormatDate),
|
|
|
- Value: v.Value,
|
|
|
- })
|
|
|
- }
|
|
|
+ queryConditions["data_time"] = bson.M{"$lte": endDateTime}
|
|
|
+ }
|
|
|
|
|
|
+ // 获取数据总量
|
|
|
+ tmpCount, tmpErr := mogDataObj.GetCountDataList(queryConditions)
|
|
|
+ if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
|
|
|
+ err = tmpErr
|
|
|
return
|
|
|
}
|
|
|
+ dataCount = int(tmpCount)
|
|
|
|
|
|
+ // 获取列表数据
|
|
|
+ tmpDataList, tmpErr := mogDataObj.GetPageDataList(queryConditions, int64(startSize), int64(pageSize), []string{"-data_time"})
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for k, v := range tmpDataList {
|
|
|
+ dataList = append(dataList, &data_manage.EdbData{
|
|
|
+ EdbDataId: k + 1,
|
|
|
+ EdbInfoId: v.EdbInfoId,
|
|
|
+ DataTime: v.DataTime.Format(utils.FormatDate),
|
|
|
+ Value: v.Value,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// GetAllData
|
|
|
+// @Description: 获取指标的所有数据
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-05-07 15:18:27
|
|
|
+// @param edbInfoId int
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @param startDataTime string
|
|
|
+// @return dataList []*data_manage.EdbData
|
|
|
+// @return err error
|
|
|
+func GetAllData(edbInfoId, source, subSource int, startDataTime string) (dataList []*data_manage.EdbData, err error) {
|
|
|
+ dataList = make([]*data_manage.EdbData, 0)
|
|
|
+
|
|
|
+ // 外部数据需要额外处理(从mongo获取)
|
|
|
+ if source == utils.DATA_SOURCE_BUSINESS {
|
|
|
+ return getAllDataByMongo(edbInfoId, source, subSource, startDataTime)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 默认走mysql
|
|
|
+ return getAllDataByMysql(edbInfoId, source, subSource, startDataTime)
|
|
|
+}
|
|
|
+
|
|
|
+// getAllDataByMysql
|
|
|
+// @Description: 从mysql获取指标的所有数据
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-05-07 15:18:41
|
|
|
+// @param edbInfoId int
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @param startDataTime string
|
|
|
+// @return dataList []*data_manage.EdbData
|
|
|
+// @return err error
|
|
|
+func getAllDataByMysql(edbInfoId, source, subSource int, startDataTime string) (dataList []*data_manage.EdbData, err error) {
|
|
|
+ dataList = make([]*data_manage.EdbData, 0)
|
|
|
var dataCondition string
|
|
|
var dataPars []interface{}
|
|
|
|
|
|
dataCondition += ` AND edb_info_id=? `
|
|
|
dataPars = append(dataPars, edbInfoId)
|
|
|
|
|
|
- // 获取数据总量
|
|
|
- dataCount, err = data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, source, subSource)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- return
|
|
|
+ // 结束日期
|
|
|
+ if startDataTime != "" {
|
|
|
+ dataCondition += ` AND data_time > ? `
|
|
|
+ dataPars = append(dataPars, startDataTime)
|
|
|
}
|
|
|
|
|
|
// 获取列表数据
|
|
|
- dataList, err = data_manage.GetEdbDataListByCondition(dataCondition, dataPars, source, subSource, pageSize, startSize)
|
|
|
+ dataList, err = data_manage.GetAllEdbDataListByCondition(dataCondition, dataPars, source, subSource)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// getAllDataByMongo
|
|
|
+// @Description: 从mongo获取指标的所有数据
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-05-07 15:18:53
|
|
|
+// @param edbInfoId int
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @param startDataTime string
|
|
|
+// @return dataList []*data_manage.EdbData
|
|
|
+// @return err error
|
|
|
+func getAllDataByMongo(edbInfoId, source, subSource int, startDataTime string) (dataList []*data_manage.EdbData, err error) {
|
|
|
+ dataList = make([]*data_manage.EdbData, 0)
|
|
|
+
|
|
|
+ mogDataObj := mgo.EdbDataBusiness{}
|
|
|
+ // 构建查询条件
|
|
|
+ queryConditions := bson.M{
|
|
|
+ "edb_info_id": edbInfoId,
|
|
|
+ }
|
|
|
+ // 结束日期
|
|
|
+ if startDataTime != "" {
|
|
|
+ startDateTime, tmpErr := time.ParseInLocation(utils.FormatDate, startDataTime, time.Local)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ queryConditions["data_time"] = bson.M{"$gt": startDateTime}
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取列表数据
|
|
|
+ tmpDataList, tmpErr := mogDataObj.GetAllDataList(queryConditions, []string{"-data_time"})
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for k, v := range tmpDataList {
|
|
|
+ dataList = append(dataList, &data_manage.EdbData{
|
|
|
+ EdbDataId: k + 1,
|
|
|
+ EdbInfoId: v.EdbInfoId,
|
|
|
+ DataTime: v.DataTime.Format(utils.FormatDate),
|
|
|
+ Value: v.Value,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|