|
@@ -7,7 +7,6 @@ import (
|
|
|
"eta/eta_index_lib/models"
|
|
|
"eta/eta_index_lib/services"
|
|
|
"eta/eta_index_lib/utils"
|
|
|
- "fmt"
|
|
|
"strconv"
|
|
|
"time"
|
|
|
)
|
|
@@ -189,6 +188,64 @@ func (this *BaseFromRzdController) AddRzdClassify() {
|
|
|
br.Msg = "获取成功"
|
|
|
}
|
|
|
|
|
|
+type RzdClassify struct {
|
|
|
+ ClassifyName string `json:"ClassifyName"`
|
|
|
+ ParentId int `json:"ParentId"`
|
|
|
+ Sort int `json:"Sort"`
|
|
|
+ ClassifyNameEn string `json:"ClassifyNameEn"`
|
|
|
+}
|
|
|
+type BatchAddRzdClassifyReq struct {
|
|
|
+ List []RzdClassify `json:"List"`
|
|
|
+}
|
|
|
+
|
|
|
+// BatchAddRzdClassify
|
|
|
+// @Title 新增分类
|
|
|
+// @Description 获取分类
|
|
|
+// @Success 200 {object} models.BaseFromRzdClassify
|
|
|
+// @router /add/rzd/batch_add_classify [post]
|
|
|
+func (this *BaseFromRzdController) BatchAddRzdClassify() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ var cacheKey string
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ _ = utils.Rc.Delete(cacheKey)
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var reqData BatchAddRzdClassifyReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &reqData)
|
|
|
+ if err != nil {
|
|
|
+ br.ErrMsg = "无法解析请求体"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var categoryList []*models.BaseFromRzdClassify
|
|
|
+ for _, classify := range reqData.List {
|
|
|
+ if classify.ClassifyName == "" {
|
|
|
+ br.Msg = "请输入分类!"
|
|
|
+ br.ErrMsg = "请输入分类"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ categoryList = append(categoryList, &models.BaseFromRzdClassify{
|
|
|
+ ClassifyName: classify.ClassifyName,
|
|
|
+ ParentId: classify.ParentId,
|
|
|
+ Sort: classify.Sort,
|
|
|
+ CreateTime: utils.GetCurrentTime(),
|
|
|
+ ModifyTime: utils.GetCurrentTime(),
|
|
|
+ ClassifyNameEn: classify.ClassifyNameEn,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ err = models.BatchAddRzdClassify(categoryList)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Data = categoryList
|
|
|
+ br.Msg = "获取成功"
|
|
|
+}
|
|
|
+
|
|
|
// GetRzdClassifyByName
|
|
|
// @Title 获取分类
|
|
|
// @Description 获取分类
|
|
@@ -231,6 +288,34 @@ func (this *BaseFromRzdController) GetRzdClassifyByName() {
|
|
|
br.Msg = "获取成功"
|
|
|
}
|
|
|
|
|
|
+// GetRzdClassifyList
|
|
|
+// @Title 获取分类
|
|
|
+// @Description 获取分类
|
|
|
+// @Success 200 {object} models.BaseFromRzdClassify
|
|
|
+// @router /get/rzd/classify [post]
|
|
|
+func (this *BaseFromRzdController) GetRzdClassifyList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ classifyList, err := models.GetRzdClassifyList()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取睿咨得分类失败"
|
|
|
+ br.ErrMsg = "获取睿咨得分类失败,err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Data = classifyList
|
|
|
+ br.Msg = "获取成功"
|
|
|
+}
|
|
|
+
|
|
|
// AddBatchRzdData
|
|
|
// @Title 新增数据源指标数据
|
|
|
// @Description 新增数据源指标数据
|
|
@@ -247,62 +332,75 @@ func (this *BaseFromRzdController) AddBatchRzdData() {
|
|
|
this.Data["json"] = br
|
|
|
this.ServeJSON()
|
|
|
}()
|
|
|
- var req []models.BaseFromRzdData
|
|
|
- fmt.Println(string(this.Ctx.Input.RequestBody))
|
|
|
+ var req models.IndexInfo
|
|
|
err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
if err != nil {
|
|
|
br.Msg = "参数解析异常!"
|
|
|
br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- err = models.AddRzdDataList(req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "新增指标数据失败!"
|
|
|
- br.ErrMsg = "新增指标数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- // 维护start_date,end_date,latest_value字段
|
|
|
- var indexCodes []string
|
|
|
- for _, data := range req {
|
|
|
- indexCodes = append(indexCodes, data.IndexCode)
|
|
|
- }
|
|
|
- mapInfo, err := models.GetRzdDataMaxAndMinDateByIndexCodes(indexCodes)
|
|
|
+ //先添加指标
|
|
|
+ rzdIndex, err := models.GetRzdIndexByCode(req.IndexCode)
|
|
|
if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- for indexCode, info := range mapInfo {
|
|
|
- _ = models.UpdateRzdEdbDataByIndexCodes(indexCode, info)
|
|
|
- }
|
|
|
-
|
|
|
- // 同步新增指标库数据
|
|
|
- // 判断是否存在于指标库
|
|
|
- // 获取指标详情
|
|
|
- /* 调用方对 指标库数据做了维护处理
|
|
|
- var dataList []models.EdbDataRzd
|
|
|
- for _, data := range req {
|
|
|
- edbInfo, err := models.GetEdbInfoByEdbCode(utils.DATA_SOURCE_RZD, data.IndexCode)
|
|
|
+ if !utils.IsErrNoRow(err) {
|
|
|
+ br.Msg = "查询指标失败"
|
|
|
+ br.ErrMsg = "查询指标失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ rzdIndex = &models.BaseFromRzdIndex{
|
|
|
+ CreateTime: time.Now(), // 创建时间
|
|
|
+ BaseFromRzdClassifyId: req.ClassifyId, // 指标编码
|
|
|
+ IndexName: req.IndexName, // 指标名称
|
|
|
+ IndexCode: req.IndexCode,
|
|
|
+ Frequency: req.Frequency, // 频度
|
|
|
+ Unit: req.Unit, // 单位
|
|
|
+ StartDate: req.StartDate, // 数据开始日期
|
|
|
+ EndDate: req.EndDate, // 数据结束日期
|
|
|
+ LatestValue: req.LatestValue.InexactFloat64(),
|
|
|
+ }
|
|
|
+ var dataList []*models.BaseFromRzdData
|
|
|
+ for _, data := range req.DataList {
|
|
|
+ rzdData := &models.BaseFromRzdData{
|
|
|
+ CreateTime: time.Now().Format(utils.FormatDateTime),
|
|
|
+ IndexCode: req.IndexCode,
|
|
|
+ DataTime: data.DataTime.Format(utils.FormatDate),
|
|
|
+ Value: data.Value.InexactFloat64(),
|
|
|
+ }
|
|
|
+ dataList = append(dataList, rzdData)
|
|
|
+ }
|
|
|
+ err = models.AddRzdIndexWithDataList(rzdIndex, dataList)
|
|
|
if err != nil {
|
|
|
- br.Msg = "指标不存在!"
|
|
|
- br.ErrMsg = "指标不存在"
|
|
|
+ br.Msg = "查询指标失败"
|
|
|
+ br.ErrMsg = "查询指标失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- if edbInfo.EdbInfoId == 0 {
|
|
|
- continue
|
|
|
+ } else {
|
|
|
+ rzdIndex.BaseFromRzdClassifyId = req.ClassifyId
|
|
|
+ if rzdIndex.StartDate.After(req.StartDate) {
|
|
|
+ rzdIndex.StartDate = req.StartDate
|
|
|
}
|
|
|
- dataRzd := models.EdbDataRzd{
|
|
|
- EdbInfoId: data.BaseFromRzdIndexId,
|
|
|
- DataTime: data.DataTime,
|
|
|
- Value: data.Value,
|
|
|
- EdbCode: data.IndexCode,
|
|
|
- CreateTime: utils.GetCurrentTime(),
|
|
|
- ModifyTime: utils.GetCurrentTime(),
|
|
|
- DataTimestamp: uint64(time.Now().UnixNano() / int64(time.Millisecond)),
|
|
|
+ if rzdIndex.EndDate.Before(req.EndDate) {
|
|
|
+ rzdIndex.EndDate = req.EndDate
|
|
|
+ rzdIndex.LatestValue = req.LatestValue.InexactFloat64()
|
|
|
+ }
|
|
|
+ var dataList []*models.BaseFromRzdData
|
|
|
+ for _, data := range req.DataList {
|
|
|
+ rzdData := &models.BaseFromRzdData{
|
|
|
+ BaseFromRzdIndexId: rzdIndex.BaseFromRzdIndexId,
|
|
|
+ CreateTime: time.Now().Format(utils.FormatDateTime),
|
|
|
+ IndexCode: req.IndexCode,
|
|
|
+ DataTime: data.DataTime.Format(utils.FormatDate),
|
|
|
+ Value: data.Value.InexactFloat64(),
|
|
|
+ }
|
|
|
+ dataList = append(dataList, rzdData)
|
|
|
+ }
|
|
|
+ err = models.UpdateIndexAndAddRzdDataList(rzdIndex, dataList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "新增指标数据失败!"
|
|
|
+ br.ErrMsg = "新增指标数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- dataList = append(dataList, dataRzd)
|
|
|
}
|
|
|
- _ = models.AddRzdEdbDataList(dataList)*/
|
|
|
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|