hongze 3 жил өмнө
parent
commit
98ed6da1d6

+ 56 - 0
models/data_manage/chart_info.go

@@ -0,0 +1,56 @@
+package data_manage
+
+import (
+	"rdluck_tools/orm"
+	"time"
+)
+
+type ChartInfo struct {
+	ChartInfoId     int    `orm:"column(chart_info_id);pk"`
+	ChartName       string `description:"来源名称"`
+	ChartClassifyId int    `description:"图表分类id"`
+	SysUserId       int
+	SysUserRealName string
+	UniqueCode      string `description:"图表唯一编码"`
+	CreateTime      time.Time
+	ModifyTime      time.Time
+	DateType        int    `description:"日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间"`
+	StartDate       string `description:"自定义开始日期"`
+	EndDate         string `description:"自定义结束日期"`
+	IsSetName       int    `description:"设置名称"`
+	EdbInfoIds      string `description:"指标id"`
+	ChartType       int    `description:"生成样式:1:曲线图,2:季节性图"`
+	Calendar        string `description:"公历/农历"`
+	SeasonStartDate string `description:"季节性图开始日期"`
+	SeasonEndDate   string `description:"季节性图开始日期"`
+	ChartImage      string `description:"图表图片"`
+	Sort            int    `description:"排序字段,数字越小越排前面"`
+	EdbEndDate      string `description:"指标最后更新日期"`
+}
+
+func GetAllChartInfo() (list []*ChartInfo, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` SELECT * FROM chart_info  `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
+
+func GetChartInfoEdbEndDate() (list []*ChartInfo, err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` SELECT a.*,max(c.end_date) AS edb_end_date FROM  chart_info  AS a
+			INNER JOIN chart_edb_mapping AS b ON a.chart_info_id=b.chart_info_id
+			INNER JOIN edb_info AS c ON b.edb_info_id=c.edb_info_id
+			GROUP BY a.chart_info_id  `
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
+
+func ModifyChartInfoEdbEndDate(chartInfoId int, edbEndDate string) (err error) {
+	o := orm.NewOrm()
+	o.Using("data")
+	sql := ` UPDATE chart_info SET edb_end_date=? WHERE chart_info_id=? `
+	_, err = o.Raw(sql, edbEndDate, chartInfoId).Exec()
+	return
+}

+ 42 - 0
services/data/chart_info.go

@@ -0,0 +1,42 @@
+package data
+
+import (
+	"fmt"
+	"hongze/hongze_task/models/data_manage"
+)
+
+//设置图表中,指标的最新日期
+func SetChartEdbEndDate() {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println("SetChartEdbEndDate err:" + err.Error())
+		}
+	}()
+
+	allList, err := data_manage.GetAllChartInfo()
+	if err != nil {
+		return
+	}
+
+	allMap := make(map[int]*data_manage.ChartInfo)
+	for _, v := range allList {
+		allMap[v.ChartInfoId] = v
+	}
+
+	list, err := data_manage.GetChartInfoEdbEndDate()
+	if err != nil {
+		return
+	}
+
+	for _, sv := range list {
+		if findItem, ok := allMap[sv.ChartInfoId]; ok {
+			if findItem.EdbEndDate != sv.EdbEndDate {
+				err = data_manage.ModifyChartInfoEdbEndDate(sv.ChartInfoId, sv.EdbEndDate)
+				if err != nil {
+					return
+				}
+			}
+		}
+	}
+}

+ 2 - 0
services/task.go

@@ -232,6 +232,8 @@ func SyncBaseDataExt(cont context.Context) (err error) {
 	go data.SyncManualDataBase()
 	//同步有色基础数据
 	go data.SyncSmmDataBase()
+	//刷新图表中,指标的最新日期
+	go data.SetChartEdbEndDate()
 	return
 }