|
@@ -6,6 +6,8 @@ import (
|
|
|
"eta/eta_api/models"
|
|
|
"eta/eta_api/models/company"
|
|
|
"eta/eta_api/models/data_manage"
|
|
|
+ "eta/eta_api/models/data_manage/request"
|
|
|
+ "eta/eta_api/models/data_manage/response"
|
|
|
"eta/eta_api/models/system"
|
|
|
"eta/eta_api/services/alarm_msg"
|
|
|
"eta/eta_api/services/data"
|
|
@@ -4329,3 +4331,258 @@ func (this *EdbInfoController) EdbSourceList() {
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
|
}
|
|
|
+
|
|
|
+// EdbChartList
|
|
|
+// @Title 指标缩略图列表接口
|
|
|
+// @Description 指标缩略图列表接口
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
+// @Param ClassifyId query int true "分类id"
|
|
|
+// @Param AdminId query int false "创建人id"
|
|
|
+// @Param IsOnlyMe query bool false "是否只看我的"
|
|
|
+// @Success 200 {object} response.EdbInfoChartListResp
|
|
|
+// @router /edb_info/chart/list [get]
|
|
|
+func (this *EdbInfoController) EdbChartList() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分页
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ var total int
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+ var startSize int
|
|
|
+ if pageSize <= 0 {
|
|
|
+ pageSize = utils.PageSize20
|
|
|
+ }
|
|
|
+ if currentIndex <= 0 {
|
|
|
+ currentIndex = 1
|
|
|
+ }
|
|
|
+ startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
+
|
|
|
+ // 基础指标
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition += ` AND edb_info_type = ? `
|
|
|
+ pars = append(pars, 0)
|
|
|
+
|
|
|
+ // 分类筛选
|
|
|
+ classifyId, _ := this.GetInt("ClassifyId")
|
|
|
+ if classifyId > 0 {
|
|
|
+ strClassifyIds, e := data_manage.GetEdbClassify(classifyId)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取分类信息失败, GetEdbClassify,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var classifyIds []int
|
|
|
+ classifyIdArr := strings.Split(strClassifyIds, ",")
|
|
|
+ for _, v := range classifyIdArr {
|
|
|
+ c, _ := strconv.Atoi(v)
|
|
|
+ if c > 0 {
|
|
|
+ classifyIds = append(classifyIds, c)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(classifyIds) > 0 {
|
|
|
+ condition += fmt.Sprintf(` AND classify_id IN (%s) `, utils.GetOrmInReplace(len(classifyIds)))
|
|
|
+ } else {
|
|
|
+ condition += ` AND 1=2 `
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 创建人
|
|
|
+ adminId, _ := this.GetInt("AdminId")
|
|
|
+ if adminId > 0 {
|
|
|
+ condition += ` AND sys_user_id = ? `
|
|
|
+ pars = append(pars, adminId)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 只看我的
|
|
|
+ isOnlyMe, _ := this.GetBool("IsOnlyMe")
|
|
|
+ if isOnlyMe {
|
|
|
+ condition += ` AND sys_user_id = ? `
|
|
|
+ pars = append(pars, sysUser.AdminId)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取当前账号的不可见指标
|
|
|
+ obj := data_manage.EdbInfoNoPermissionAdmin{}
|
|
|
+ confList, e := obj.GetAllListByAdminId(this.SysUser.AdminId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取不可见指标配置数据失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ noPermissionEdbInfoIdList := make([]int, 0)
|
|
|
+ for _, v := range confList {
|
|
|
+ noPermissionEdbInfoIdList = append(noPermissionEdbInfoIdList, v.EdbInfoId)
|
|
|
+ }
|
|
|
+ noPermissionEdbInfoIdNum := len(noPermissionEdbInfoIdList)
|
|
|
+ if noPermissionEdbInfoIdNum > 0 {
|
|
|
+ condition += ` AND edb_info_id NOT IN (` + utils.GetOrmInReplace(noPermissionEdbInfoIdNum) + `) `
|
|
|
+ pars = append(pars, noPermissionEdbInfoIdList)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取指标信息
|
|
|
+ dataCount, list, e := data_manage.GetEdbInfoFilterList(condition, pars, startSize, pageSize)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取普通指标列表失败, Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(list) == 0 {
|
|
|
+ list = make([]*data_manage.EdbInfoList, 0)
|
|
|
+ } else {
|
|
|
+ page = paging.GetPaging(currentIndex, pageSize, int(dataCount))
|
|
|
+ }
|
|
|
+
|
|
|
+ resp := response.EdbInfoChartListResp{
|
|
|
+ Paging: page,
|
|
|
+ List: list,
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// Modify
|
|
|
+// @Title 修改指标信息接口
|
|
|
+// @Description 编辑指标接口
|
|
|
+// @Success 200 string "操作成功"
|
|
|
+// @router /edb_info/modify [post]
|
|
|
+func (this *EdbInfoController) Modify() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var req request.ModifyEdbInfoReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfoId := req.EdbInfoId
|
|
|
+ if edbInfoId <= 0 {
|
|
|
+ br.Msg = "请选择指标"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfo, e := data_manage.GetEdbInfoById(req.EdbInfoId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "获取指标信息失败, Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 编辑权限校验
|
|
|
+ button := data.GetEdbOpButton(this.SysUser, edbInfo.SysUserId, edbInfo.EdbType, edbInfo.EdbInfoType)
|
|
|
+ if !button.OpButton {
|
|
|
+ br.Msg = "无权限操作"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfo.MaxValue = req.MaxValue
|
|
|
+ edbInfo.MinValue = req.MinValue
|
|
|
+ edbInfo.ManualSave = 1
|
|
|
+ edbInfo.ModifyTime = time.Now()
|
|
|
+ err = edbInfo.Update([]string{"MaxValue", "MinValue", "ManualSave", "ModifyTime"})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改es
|
|
|
+ data.AddOrEditEdbInfoToEs(edbInfo.EdbInfoId)
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "修改成功"
|
|
|
+ br.IsAddLog = true
|
|
|
+}
|
|
|
+
|
|
|
+// ChartImageSet
|
|
|
+// @Title 设置指标的图表图片
|
|
|
+// @Description 设置指标的图表图片接口
|
|
|
+// @Param request body data_manage.SetChartInfoImageReq true "type json string"
|
|
|
+// @Success Ret=200 保存成功
|
|
|
+// @router /edb_info/image/set [post]
|
|
|
+func (this *EdbInfoController) ChartImageSet() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var req data_manage.SetEdbInfoImageReq
|
|
|
+ if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.EdbInfoId <= 0 || req.ImageUrl == "" {
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "保存成功"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfo, e := data_manage.GetEdbInfoById(req.EdbInfoId)
|
|
|
+ if e != nil {
|
|
|
+ if e.Error() == utils.ErrNoRow() {
|
|
|
+ br.Msg = "找不到该指标"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ br.ErrMsg = "获取指标失败, Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfo.ChartImage = req.ImageUrl
|
|
|
+ if e = edbInfo.Update([]string{"ChartImage"}); e != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ br.ErrMsg = "更新指标缩略图失败, Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改es数据
|
|
|
+ go data.AddOrEditEdbInfoToEs(req.EdbInfoId)
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "保存成功"
|
|
|
+}
|