浏览代码

新增指标接口

xyxie 1 天之前
父节点
当前提交
19a7c9cb32
共有 3 个文件被更改,包括 162 次插入1 次删除
  1. 139 1
      controllers/data_manage/kpler_data.go
  2. 14 0
      models/data_manage/base_from_kpler_index.go
  3. 9 0
      routers/commentsRouter.go

+ 139 - 1
controllers/data_manage/kpler_data.go

@@ -776,6 +776,19 @@ func (this *BaseFromKplerController) KplerSingleData() {
 		br.Ret = 408
 		return
 	}
+	// 增加分页入参
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+	var startSize int
+
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+
 	indexCode := this.GetString("IndexCode")
 	indexInfo, err := data_manage.GetBaseFromKplerIndexByIndexCode(indexCode)
 	if err != nil {
@@ -783,7 +796,13 @@ func (this *BaseFromKplerController) KplerSingleData() {
 		br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
 		return
 	}
-	dataTmpList, err := data_manage.GetKplerIndexDataByCode(indexCode)
+	total, err := data_manage.GetKplerIndexDataByCodeCount(indexCode)
+	if err != nil {
+		br.Msg = "获取数据失败"
+		br.ErrMsg = "获取数据失败,Err:" + err.Error()
+		return
+	}
+	dataTmpList, err := data_manage.GetKplerIndexDataByCodeWithPage(indexCode, startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取数据失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
@@ -819,6 +838,8 @@ func (this *BaseFromKplerController) KplerSingleData() {
 		dataList = append(dataList, tmp)
 	}
 	ret.Data = dataList
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	ret.Pageing = page
 
 	br.Ret = 200
 	br.Success = true
@@ -1275,6 +1296,123 @@ func (c *BaseFromKplerController) KplerAddCheck() {
 	br.Success = true
 }
 
+// 加入到指标库
+// @Title 加入到指标库
+// @Description 加入到指标库
+// @Param   request	body request.BatchAddCheckReq true "type json string"
+// @Success 200 string "操作成功"
+// @router /kpler/edb_info/add [post]
+func (c *BaseFromKplerController) KplerAdd() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		c.Data["json"] = br
+		c.ServeJSON()
+	}()
+	
+	sysUser := c.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req data_manage.AddEdbInfoReq
+	if e := json.Unmarshal(c.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + e.Error()
+		return
+	}
+    
+	if req.EdbCode == "" {
+		br.Msg = "指标ID不能为空"
+		return
+	}
+	if req.EdbName == "" {
+		br.Msg = "指标名称不能为空"
+		return
+	}
+	if req.ClassifyId <= 0 {
+		br.Msg = "分类不能为空"
+		return
+	}
+	if req.Frequency == "" {
+		br.Msg = "频度不能为空"
+		return
+	}
+	if req.Unit == "" {
+		br.Msg = "单位不能为空"
+		return
+	}
+
+	count, err := data_manage.GetEdbInfoCount(utils.DATA_SOURCE_KPLER, req.EdbCode)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	if count > 0 {
+		br.Msg = "指标已存在"
+		return
+	}
+
+	// 指标入库
+	edbInfo, err, errMsg, isSendEmail := data.EdbInfoAdd(utils.DATA_SOURCE_KPLER, utils.DATA_SUB_SOURCE_EDB, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, req.StartDate, req.EndDate, sysUser.AdminId, sysUser.RealName, c.Lang)
+	if err != nil {
+		br.Msg = "保存失败"
+		if errMsg != `` {
+			br.Msg = errMsg
+		}
+		br.ErrMsg = err.Error()
+		br.IsSendEmail = isSendEmail
+		return
+	}
+
+	// 试用平台更新用户累计新增指标数
+	adminItem, e := system.GetSysAdminById(sysUser.AdminId)
+	if e != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "获取系统用户数据失败,Err:" + e.Error()
+		return
+	}
+	if utils.BusinessCode == utils.BusinessCodeSandbox && adminItem.DepartmentName == "ETA试用客户" {
+		go func() {
+			var r etaTrialService.EtaTrialUserReq
+			r.Mobile = adminItem.Mobile
+			_, _ = etaTrialService.UpdateUserIndexNum(r)
+		}()
+	}
+
+	//新增操作日志
+	{
+		edbLog := new(data_manage.EdbInfoLog)
+		edbLog.EdbInfoId = edbInfo.EdbInfoId
+		edbLog.SourceName = edbInfo.SourceName
+		edbLog.Source = edbInfo.Source
+		edbLog.EdbCode = edbInfo.EdbCode
+		edbLog.EdbName = edbInfo.EdbName
+		edbLog.ClassifyId = edbInfo.ClassifyId
+		edbLog.SysUserId = sysUser.AdminId
+		edbLog.SysUserRealName = sysUser.RealName
+		edbLog.CreateTime = time.Now()
+		edbLog.Content = string(c.Ctx.Input.RequestBody)
+		edbLog.Status = "新增指标"
+		edbLog.Method = c.Ctx.Input.URI()
+		go data_manage.AddEdbInfoLog(edbLog)
+	}
+
+	// 更新es
+	go data.AddOrEditEdbInfoToEs(edbInfo.EdbInfoId)
+
+	resp := new(data_manage.AddEdbInfoResp)
+	resp.EdbInfoId = edbInfo.EdbInfoId
+	resp.UniqueCode = edbInfo.UniqueCode
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "保存成功"
+	br.Data = resp
+	br.IsAddLog = true
+}
+
 // ExportKplerList
 // @Title 导出Kpler数据
 // @Description 导出Kpler数据

+ 14 - 0
models/data_manage/base_from_kpler_index.go

@@ -95,6 +95,7 @@ type KplerSingleDataResp struct {
 	ModifyTime           string
 	EdbExist             int `description:"指标库是否已添加:0-否;1-是"`
 	Data                 []*KplerSingleData
+	Pageing              *paging.PagingItem `description:"分页数据"`
 }
 
 type KplerSingleData struct {
@@ -278,6 +279,19 @@ func GetKplerIndexDataByCode(indexCode string) (list []*BaseFromKplerData, err e
 	return
 }
 
+func GetKplerIndexDataByCodeWithPage(indexCode string, startSize, pageSize int) (list []*BaseFromKplerData, err error) {
+	o := global.DbMap[utils.DbNameIndex]
+	sql := `SELECT * FROM base_from_kpler_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,?`
+	err = o.Raw(sql, indexCode, startSize, pageSize).Find(&list).Error
+	return
+}
+
+func GetKplerIndexDataByCodeCount(indexCode string) (count int, err error) {
+	o := global.DbMap[utils.DbNameIndex]
+	sql := `SELECT COUNT(1) FROM base_from_kpler_data WHERE index_code=?`
+	err = o.Raw(sql, indexCode).Scan(&count).Error
+	return
+}
 func GetBaseFromKplerIndexByIndexCode(indexCode string) (list *BaseFromKplerIndex, err error) {
 	o := global.DbMap[utils.DbNameIndex]
 	sql := ` SELECT * FROM base_from_kpler_index WHERE index_code=? `

+ 9 - 0
routers/commentsRouter.go

@@ -2887,6 +2887,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"],
+        beego.ControllerComments{
+            Method: "KplerAdd",
+            Router: `/kpler/edb_info/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:BaseFromKplerController"],
         beego.ControllerComments{
             Method: "KplerAddCheck",