12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package services
- import (
- "eta/eta_forum_admin/models"
- "eta/eta_forum_admin/models/mgodb"
- "fmt"
- "strconv"
- )
- func BatchAddOrUpdateEdbData(req []*models.AddEdbDataReq) (err error) {
- for _, reqData := range req {
- err = AddOrUpdateEdbData(reqData.EdbCode, reqData.DataList)
- if err != nil {
- return
- }
- }
- return
- }
- func AddOrUpdateEdbData(edbCode string, dataList []*mgodb.EdbDataBase) (err error) {
- addList := make([]interface{}, 0)
- existList, err := mgodb.GetEdbDataBaseByEdbCode(edbCode)
- if err != nil {
- err = fmt.Errorf("查询指标数据出错 error, %v", err)
- return
- }
- existMap := make(map[string]string, len(existList))
- for _, exist := range existList {
- existMap[exist.DataTime] = exist.Value
- }
- for _, v := range dataList {
- if oldVal, ok := existMap[v.DataTime]; !ok {
- v.EdbInfoId = 0
- addList = append(addList, v)
- } else {
- if v.Value != oldVal {
- err = mgodb.ModifyValueEdbInfoDataStatus(v.EdbCode, v.DataTime, v.Value)
- if err != nil {
- err = fmt.Errorf("更新指标数据出错 error, %v", err)
- return
- }
- }
- }
- }
- if len(addList) > 0 {
- err = mgodb.InsertBatch(addList)
- }
- return
- }
- // GetEdbDataList 获取指标的数据(日期正序返回)
- func GetEdbDataList(endInfoId int, startDate, endDate string) (list []*models.EdbDataList, err error) {
- dataList, err := mgodb.GetEdbDataList(endInfoId, startDate, endDate)
- if err != nil {
- err = fmt.Errorf("查询指标数据出错 error, %v", err)
- return
- }
- list = make([]*models.EdbDataList, 0)
- for _, v := range dataList {
- // 字符串转成浮点数
- f, _ := strconv.ParseFloat(v.Value, 64)
- list = append(list, &models.EdbDataList{
- EdbDataId: 0,
- EdbInfoId: v.EdbInfoId,
- DataTime: v.DataTime,
- DataTimestamp: v.DataTimestamp,
- Value: f,
- },
- )
- }
- return
- }
|