Browse Source

普通指标-缩略图、保存上下限、设置图片

hsun 1 year ago
parent
commit
26872cd6e4

+ 257 - 0
controllers/data_manage/edb_info.go

@@ -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 = "保存成功"
+}

+ 1 - 7
controllers/data_manage/predict_edb_info.go

@@ -2,7 +2,6 @@ package data_manage
 
 import (
 	"encoding/json"
-	"github.com/rdlucklib/rdluck_tools/paging"
 	"eta/eta_api/controllers"
 	"eta/eta_api/models"
 	"eta/eta_api/models/data_manage"
@@ -11,6 +10,7 @@ import (
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/elastic"
 	"eta/eta_api/utils"
+	"github.com/rdlucklib/rdluck_tools/paging"
 	"sort"
 	"strconv"
 	"strings"
@@ -28,7 +28,6 @@ type PredictEdbInfoController struct {
 // @Param   PageSize   query   int  true       "每页数据条数"
 // @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
 // @Param   ClassifyId   query   int  true       "分类id"
-// @Param   Keyword   query   string  true       "搜索关键词"
 // @Param   AdminId   query   int  false       "创建人id"
 // @Param   IsOnlyMe   query   bool  false       "是否只看我的"
 // @Success 200 {object} response.PredictEdbInfoListResp
@@ -51,7 +50,6 @@ func (this *PredictEdbInfoController) EdbChartList() {
 
 	pageSize, _ := this.GetInt("PageSize")
 	currentIndex, _ := this.GetInt("CurrentIndex")
-	keyword := this.GetString("Keyword")
 	adminId, _ := this.GetInt("AdminId")
 	isOnlyMe, _ := this.GetBool("IsOnlyMe")
 
@@ -85,10 +83,6 @@ func (this *PredictEdbInfoController) EdbChartList() {
 		condition += " AND classify_id IN(" + classifyIds + ") "
 
 	}
-	if keyword != "" {
-		condition += ` AND  ( excel_name LIKE ? )`
-		pars = append(pars, `%`+keyword+`%`)
-	}
 	if adminId > 0 {
 		condition += " AND sys_user_id = ? "
 		pars = append(pars, adminId)

+ 1 - 0
models/data_manage/edb_info.go

@@ -45,6 +45,7 @@ type EdbInfo struct {
 	ChartImage       string  `description:"图表图片"`
 	Calendar         string  `description:"公历/农历" orm:"default(公历);"`
 	DataDateType     string  `orm:"column(data_date_type);size(255);null;default(交易日)"`
+	ManualSave       int     `description:"是否有手动保存过上下限: 0-否; 1-是"`
 }
 
 func AddEdbInfo(item *EdbInfo) (lastId int64, err error) {

+ 8 - 0
models/data_manage/request/edb_info.go

@@ -0,0 +1,8 @@
+package request
+
+// ModifyEdbInfoReq 修改普通指标基础信息请求
+type ModifyEdbInfoReq struct {
+	EdbInfoId int     `description:"指标ID"`
+	MaxValue  float64 `description:"最大值"`
+	MinValue  float64 `description:"最小值"`
+}

+ 12 - 0
models/data_manage/response/edb_info.go

@@ -0,0 +1,12 @@
+package response
+
+import (
+	"eta/eta_api/models/data_manage"
+	"github.com/rdlucklib/rdluck_tools/paging"
+)
+
+// EdbInfoChartListResp ETA指标图列表返回数据
+type EdbInfoChartListResp struct {
+	Paging *paging.PagingItem
+	List   []*data_manage.EdbInfoList
+}

+ 27 - 0
routers/commentsRouter.go

@@ -1933,6 +1933,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"],
+        beego.ControllerComments{
+            Method: "EdbChartList",
+            Router: `/edb_info/chart/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"],
         beego.ControllerComments{
             Method: "GetEdbDateData",
@@ -2005,6 +2014,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"],
+        beego.ControllerComments{
+            Method: "ChartImageSet",
+            Router: `/edb_info/image/set`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"],
         beego.ControllerComments{
             Method: "SetEdbDataInsertConfig",
@@ -2023,6 +2041,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"],
+        beego.ControllerComments{
+            Method: "Modify",
+            Router: `/edb_info/modify`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbInfoController"],
         beego.ControllerComments{
             Method: "EdbInfoMove",