|
@@ -0,0 +1,172 @@
|
|
|
+package data
|
|
|
+
|
|
|
+import (
|
|
|
+ "eta/eta_mobile/models/data_manage"
|
|
|
+ "eta/eta_mobile/models/mgo"
|
|
|
+ "eta/eta_mobile/utils"
|
|
|
+ "fmt"
|
|
|
+ "go.mongodb.org/mongo-driver/bson"
|
|
|
+)
|
|
|
+
|
|
|
+type BusinessIndexSource2EdbReq struct {
|
|
|
+ EdbCode string
|
|
|
+ EdbName string
|
|
|
+ Frequency string
|
|
|
+ Unit string
|
|
|
+ ClassifyId int
|
|
|
+ AdminId int
|
|
|
+ AdminRealName string
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func BusinessIndexSource2Edb(req BusinessIndexSource2EdbReq, lang string) (edb *data_manage.EdbInfo, err error, errMsg string, skip bool) {
|
|
|
+ if req.EdbCode == "" {
|
|
|
+ err = fmt.Errorf("指标ID为空")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ tips := fmt.Sprintf("BusinessIndexSource2Edb新增失败, Err: %s", err.Error())
|
|
|
+ fmt.Println(tips)
|
|
|
+ utils.FileLog.Info(tips)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ source := utils.DATA_SOURCE_BUSINESS
|
|
|
+
|
|
|
+
|
|
|
+ exist, e := data_manage.GetEdbInfoByEdbCode(source, req.EdbCode)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = fmt.Errorf("获取指标是否存在失败, err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if exist != nil {
|
|
|
+ skip = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ var startDate, endDate string
|
|
|
+
|
|
|
+
|
|
|
+ edbInfo, e, msg, _ := EdbInfoAdd(source, utils.DATA_SUB_SOURCE_EDB, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, startDate, endDate, req.AdminId, req.AdminRealName, lang)
|
|
|
+ if e != nil {
|
|
|
+ errMsg = msg
|
|
|
+ err = fmt.Errorf("EdbInfo: 新增指标失败, err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edb = edbInfo
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func GetPageBaseBusinessIndexData(indexCode string, startSize, pageSize int) (dataCount int, dataList []*data_manage.BaseFromBusinessIndexDataItem, err error) {
|
|
|
+ if utils.UseMongo {
|
|
|
+ dataCount, dataList, err = getPageBaseBusinessIndexDataByMongo(indexCode, startSize, pageSize)
|
|
|
+ } else {
|
|
|
+ dataCount, dataList, err = getPageBaseBusinessIndexDataByMysql(indexCode, startSize, pageSize)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func getPageBaseBusinessIndexDataByMongo(indexCode string, startSize, pageSize int) (dataCount int, dataList []*data_manage.BaseFromBusinessIndexDataItem, err error) {
|
|
|
+ dataList = make([]*data_manage.BaseFromBusinessIndexDataItem, 0)
|
|
|
+
|
|
|
+ mogDataObj := mgo.BaseFromBusinessData{}
|
|
|
+
|
|
|
+ queryConditions := bson.M{
|
|
|
+ "index_code": indexCode,
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ 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 _, v := range tmpDataList {
|
|
|
+ dataList = append(dataList, &data_manage.BaseFromBusinessIndexDataItem{
|
|
|
+ ID: v.ID.String(),
|
|
|
+ IndexCode: v.IndexCode,
|
|
|
+ DataTime: v.DataTime.Format(utils.FormatDate),
|
|
|
+ Value: v.Value,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+func getPageBaseBusinessIndexDataByMysql(indexCode string, startSize, pageSize int) (dataCount int, dataList []*data_manage.BaseFromBusinessIndexDataItem, err error) {
|
|
|
+ dataList = make([]*data_manage.BaseFromBusinessIndexDataItem, 0)
|
|
|
+
|
|
|
+ businessDataObj := data_manage.BaseFromBusinessData{}
|
|
|
+ var condition []string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition = append(condition, "index_code = ?")
|
|
|
+ pars = append(pars, indexCode)
|
|
|
+
|
|
|
+
|
|
|
+ tmpCount, tmpErr := businessDataObj.GetCountDataList(condition, pars)
|
|
|
+ if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ dataCount = int(tmpCount)
|
|
|
+
|
|
|
+
|
|
|
+ tmpDataList, tmpErr := businessDataObj.GetPageDataList(condition, pars, " data_time desc", int64(startSize), int64(pageSize))
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range tmpDataList {
|
|
|
+ dataList = append(dataList, &data_manage.BaseFromBusinessIndexDataItem{
|
|
|
+ ID: fmt.Sprint(v.BusinessDataId),
|
|
|
+ IndexCode: v.IndexCode,
|
|
|
+ DataTime: v.DataTime.Format(utils.FormatDate),
|
|
|
+ Value: v.Value,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|