|
@@ -6,9 +6,11 @@ import (
|
|
|
"eta/eta_api/models"
|
|
|
"eta/eta_api/models/data_manage"
|
|
|
"eta/eta_api/models/data_manage/cross_variety/request"
|
|
|
+ "eta/eta_api/models/system"
|
|
|
"eta/eta_api/services/data"
|
|
|
"eta/eta_api/services/data/cross_variety"
|
|
|
"eta/eta_api/utils"
|
|
|
+ "fmt"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"strconv"
|
|
|
"strings"
|
|
@@ -848,3 +850,149 @@ func (c *ChartInfoController) Move() {
|
|
|
br.Success = true
|
|
|
br.Msg = "移动成功"
|
|
|
}
|
|
|
+
|
|
|
+// GetChartInfoDetailFromUniqueCode 根据编码获取图表详情
|
|
|
+func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCache bool, sysUser *system.Admin) (resp *data_manage.ChartInfoDetailFromUniqueCodeResp, isOk bool, msg, errMsg string) {
|
|
|
+ resp = new(data_manage.ChartInfoDetailFromUniqueCodeResp)
|
|
|
+
|
|
|
+ adminId := sysUser.AdminId
|
|
|
+
|
|
|
+ //判断是否存在缓存,如果存在缓存,那么直接从缓存中获取
|
|
|
+ key := data.GetChartInfoDataKey(chartInfo.ChartInfoId)
|
|
|
+ if utils.Re == nil && isCache {
|
|
|
+ if utils.Re == nil && utils.Rc.IsExist(key) {
|
|
|
+ if chartData, err1 := utils.Rc.RedisBytes(key); err1 == nil {
|
|
|
+ err := json.Unmarshal(chartData, &resp)
|
|
|
+ if err == nil && resp != nil {
|
|
|
+ // 这里跟当前用户相关的信息重新查询写入resp, 不使用缓存中的
|
|
|
+ var myCond string
|
|
|
+ var myPars []interface{}
|
|
|
+ myCond += ` AND a.admin_id=? `
|
|
|
+ myPars = append(myPars, adminId)
|
|
|
+ myCond += ` AND a.chart_info_id=? `
|
|
|
+ myPars = append(myPars, chartInfo.ChartInfoId)
|
|
|
+ myList, err := data_manage.GetMyChartByCondition(myCond, myPars)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ msg = "获取失败"
|
|
|
+ errMsg = "获取我的图表信息失败,GetMyChartByCondition,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp.ChartInfo.IsAdd = false
|
|
|
+ resp.ChartInfo.MyChartId = 0
|
|
|
+ resp.ChartInfo.MyChartClassifyId = ""
|
|
|
+ if myList != nil && len(myList) > 0 {
|
|
|
+ resp.ChartInfo.IsAdd = true
|
|
|
+ resp.ChartInfo.MyChartId = myList[0].MyChartId
|
|
|
+ resp.ChartInfo.MyChartClassifyId = myList[0].MyChartClassifyId
|
|
|
+ }
|
|
|
+
|
|
|
+ isOk = true
|
|
|
+ fmt.Println("source redis")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ chartInfoId := chartInfo.ChartInfoId
|
|
|
+
|
|
|
+ if chartInfo.ExtraConfig == `` {
|
|
|
+ msg = "图表配置信息异常"
|
|
|
+ errMsg = "图表配置信息异常"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var config request.ChartConfigReq
|
|
|
+ err := json.Unmarshal([]byte(chartInfo.ExtraConfig), &config)
|
|
|
+ if err != nil {
|
|
|
+ msg = "解析跨品种分析配置失败"
|
|
|
+ errMsg = "解析跨品种分析配置失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //mappingList, err := cross_varietyModel.GetChartVarietyMappingList(chartInfo.ChartInfoId)
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "获取品种失败"
|
|
|
+ // br.ErrMsg = "获取品种失败,Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ // 获取跨品种分析配置
|
|
|
+ //chartInfoCrossVariety, err := cross_varietyModel.GetChartInfoCrossVarietyByChartInfoId(chartInfo.ChartInfoId)
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "获取跨品种分析配置失败"
|
|
|
+ // br.ErrMsg = "获取跨品种分析配置失败,Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //varietyIdList := make([]int,0)
|
|
|
+ //for _,v:=range mappingList{
|
|
|
+ // varietyIdList = append(varietyIdList,v.ChartVarietyId)
|
|
|
+ //}
|
|
|
+ //config := request.ChartConfigReq{
|
|
|
+ // TagX: chartInfoCrossVariety.ChartXTagId,
|
|
|
+ // TagY: chartInfoCrossVariety.ChartYTagId,
|
|
|
+ // CalculateValue: chartInfoCrossVariety.CalculateValue,
|
|
|
+ // CalculateUnit: chartInfoCrossVariety.CalculateUnit,
|
|
|
+ // DateConfigList: config.DateConfigList,
|
|
|
+ // VarietyList: varietyIdList,
|
|
|
+ //}
|
|
|
+ //config.TagX =
|
|
|
+
|
|
|
+ // 获取图表x轴y轴
|
|
|
+ _, dataResp, err, msg, _ := cross_variety.GetChartData(0, config)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "获取图表,指标信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if chartInfoId > 0 && chartInfo != nil {
|
|
|
+ //判断是否加入我的图库
|
|
|
+ {
|
|
|
+ var myChartCondition string
|
|
|
+ var myChartPars []interface{}
|
|
|
+ myChartCondition += ` AND a.admin_id=? `
|
|
|
+ myChartPars = append(myChartPars, sysUser.AdminId)
|
|
|
+ myChartCondition += ` AND a.chart_info_id=? `
|
|
|
+ myChartPars = append(myChartPars, chartInfo.ChartInfoId)
|
|
|
+
|
|
|
+ myChartList, err := data_manage.GetMyChartByCondition(myChartCondition, myChartPars)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ msg = "获取失败"
|
|
|
+ errMsg = "获取我的图表信息失败,GetMyChartByCondition,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if myChartList != nil && len(myChartList) > 0 {
|
|
|
+ chartInfo.IsAdd = true
|
|
|
+ chartInfo.MyChartId = myChartList[0].MyChartId
|
|
|
+ chartInfo.MyChartClassifyId = myChartList[0].MyChartClassifyId
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //图表操作权限
|
|
|
+ chartInfo.IsEdit = data.CheckOpChartPermission(sysUser, chartInfo.SysUserId)
|
|
|
+ //判断是否需要展示英文标识
|
|
|
+ //chartInfo.IsEnChart = data.CheckIsEnChart(chartInfo.ChartNameEn, edbList[0:1], chartInfo.Source, chartInfo.ChartType)
|
|
|
+ //chartInfo.UnitEn = edbInfoMappingA.UnitEn
|
|
|
+
|
|
|
+ isSaveAs := true
|
|
|
+ // 另存为
|
|
|
+ chartInfo.Button = data_manage.ChartViewButton{
|
|
|
+ IsEdit: chartInfo.IsEdit,
|
|
|
+ IsEnChart: chartInfo.IsEnChart,
|
|
|
+ IsAdd: chartInfo.IsAdd,
|
|
|
+ IsCopy: isSaveAs,
|
|
|
+ IsSetName: chartInfo.IsSetName,
|
|
|
+ }
|
|
|
+
|
|
|
+ resp.ChartInfo = chartInfo
|
|
|
+ resp.DataResp = dataResp
|
|
|
+ resp.Status = true
|
|
|
+
|
|
|
+ // 将数据加入缓存
|
|
|
+ if utils.Re == nil {
|
|
|
+ d, _ := json.Marshal(resp)
|
|
|
+ _ = utils.Rc.Put(key, d, 2*time.Hour)
|
|
|
+ }
|
|
|
+ isOk = true
|
|
|
+ return
|
|
|
+}
|