Pārlūkot izejas kodu

Merge branch 'master' into feature/pool_10_18_change_tab

xiexiaoyuan 2 gadi atpakaļ
vecāks
revīzija
3f0a440784

+ 15 - 0
models/chart_permission.go

@@ -76,3 +76,18 @@ func GetYbChartPermissionFirstByName(classifyName string) (item *YbChartPermissi
 	err = o.Raw(sql, classifyName).QueryRow(&item)
 	return
 }
+
+// GetChartPermissionByIds 主键获取权限
+func GetChartPermissionByIds(permissionIds []string) (list []*ChartPermission, err error) {
+	qb, _ := orm.NewQueryBuilder("mysql")
+	// 构建查询对象
+	qb.Select("*").From("chart_permission").
+		Where("chart_permission_id").In(permissionIds...)
+	// 导出 SQL 语句
+	sql := qb.String()
+
+	// 执行 SQL 语句
+	o := orm.NewOrm()
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}

+ 14 - 13
models/yb/Road_video.go

@@ -7,19 +7,20 @@ import (
 
 // RoadVideo 路演视频
 type RoadVideo struct {
-	RoadVideoId int       `orm:"column(road_video_id);pk" description:"视频ID"`
-	Title            string    `description:"视频标题"`
-	CoverImgUrl      string    `description:"封面图地址"`
-	VideoUrl         string    `description:"视频地址"`
-	VideoSeconds     string    `description:"视频时长,单位秒"`
-	PublishState     int       `description:"发布状态:0-待发布 1-已发布"`
-	SendThsState     int       `description:"客群消息推送状态:0-待推送 1-已推送"`
-	IsDeleted        int       `description:"是否已删除 0-否 1-是"`
-	PublishTime      time.Time `description:"发布时间"`
-	SendThsTime      time.Time `description:"推送客群时间"`
-	CreateTime       time.Time `description:"提问时间"`
-	ModifyTime       time.Time `description:"修改时间"`
-	DeleteTime       time.Time `description:"删除时间"`
+	RoadVideoId        int       `orm:"column(road_video_id);pk" description:"视频ID"`
+	Title              string    `description:"视频标题"`
+	CoverImgUrl        string    `description:"封面图地址"`
+	VideoUrl           string    `description:"视频地址"`
+	VideoSeconds       string    `description:"视频时长,单位秒"`
+	PublishState       int       `description:"发布状态:0-待发布 1-已发布"`
+	ChartPermissionIds string    `description:"品种权限ID,用英文逗号分隔"`
+	SendThsState       int       `description:"客群消息推送状态:0-待推送 1-已推送"`
+	IsDeleted          int       `description:"是否已删除 0-否 1-是"`
+	PublishTime        time.Time `description:"发布时间"`
+	SendThsTime        time.Time `description:"推送客群时间"`
+	CreateTime         time.Time `description:"提问时间"`
+	ModifyTime         time.Time `description:"修改时间"`
+	DeleteTime         time.Time `description:"删除时间"`
 }
 
 func (item *RoadVideo) TableName() string {

+ 10 - 0
services/data/base_edb_lib.go

@@ -121,6 +121,16 @@ func RefreshEdbCalculateData(edbInfoId int, edbCode, startDate string) (resp *mo
 	return
 }
 
+// RefreshPredictEdbCalculateData 刷新 预测计算指标 数据请求
+func RefreshPredictEdbCalculateData(edbInfoId int, edbCode, startDate string) (resp *models.BaseResponse, err error) {
+	param := make(map[string]interface{})
+	param["EdbCode"] = edbCode
+	param["EdbInfoId"] = edbInfoId
+	param["StartDate"] = startDate
+	resp, err = postRefreshEdbData(param, "predict_calculate/refresh")
+	return
+}
+
 // ExecPythonCode 执行python代码
 func ExecPythonCode(pythonCode string) (resp *models.BaseResponse, err error) {
 	param := make(map[string]interface{})

+ 48 - 1
services/data/edb_info.go

@@ -600,7 +600,7 @@ func CheckThsDataInterface(cont context.Context) (err error) {
 //	return err
 //}
 
-//刷新所有计算指标
+// RefreshDataFromCalculateAll 刷新所有计算指标
 func RefreshDataFromCalculateAll() (err error) {
 	defer func() {
 		if err != nil {
@@ -876,6 +876,53 @@ func RefreshDataFromCalculateAll() (err error) {
 	return err
 }
 
+// RefreshPredictDataFromCalculateAll 刷新所有预测计算指标
+func RefreshPredictDataFromCalculateAll() (err error) {
+	defer func() {
+		if err != nil {
+			utils.FileLog.Info("RefreshDataFromCalculateAll Err:" + err.Error())
+			//go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromCalculateAll ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+			go alarm_msg.SendAlarmMsg("RefreshDataFromCalculateAll ErrMsg:"+err.Error(), 3)
+		}
+	}()
+	var condition string
+	var pars []interface{}
+	// 查询 普通指标的计算指标
+	condition += " AND edb_type=?  AND edb_info_type=? "
+	pars = append(pars, 2, 1)
+
+	//condition += " AND modify_time<? "
+	//pars = append(pars, "2022-03-02 17:03:52")
+
+	//condition += " AND is_update=1 "
+
+	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)
+	if err != nil {
+		return err
+	}
+	for _, v := range items {
+		//edbInfoId := v.EdbInfoId
+		//edbCode := v.EdbCode
+		source := v.Source
+		startDate := v.StartDate.Format(utils.FormatDate)
+		if startDate == "0001-01-01" {
+			continue
+		}
+
+		fmt.Println(v.EdbInfoId, v.EdbCode, v.EdbName, v.SourceName, source, "======RefreshPredictEdbCalculateData:", startDate)
+		result, err := RefreshPredictEdbCalculateData(v.EdbInfoId, v.EdbCode, startDate)
+		if err != nil {
+			err = errors.New("RefreshPredictEdbCalculateData Err:" + err.Error())
+			return err
+		}
+		if result.Ret != 200 {
+			err = errors.New("RefreshPredictEdbCalculateData err;msg:" + result.Msg + ";errMsg:" + result.ErrMsg)
+			return err
+		}
+	}
+	return err
+}
+
 //刷新手工指标数据
 func RefreshDataFromManual(wg *sync.WaitGroup) (err error) {
 	defer func() {

+ 7 - 4
services/data/edb_info_sync.go

@@ -46,6 +46,7 @@ func SyncGlDataBase() {
 }
 
 var lzLock sync.Mutex
+
 //同步隆重数据
 func SyncLzDataBase() {
 	lzLock.Lock()
@@ -53,7 +54,7 @@ func SyncLzDataBase() {
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("SyncLzDataBase Err:" + err.Error())
-			go utils.SendEmailByHongze("同步隆众数据失败","同步隆众数据失败 Err:"+err.Error() , utils.RefreshEdbInfoEmailSendToUsers, "", "")
+			go utils.SendEmailByHongze("同步隆众数据失败", "同步隆众数据失败 Err:"+err.Error(), utils.RefreshEdbInfoEmailSendToUsers, "", "")
 		}
 	}()
 	var condition string
@@ -84,6 +85,7 @@ func SyncLzDataBase() {
 }
 
 var smmLock sync.Mutex
+
 //同步有色数据
 func SyncSmmDataBase() {
 	smmLock.Lock()
@@ -91,7 +93,7 @@ func SyncSmmDataBase() {
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("SyncSmmDataBase Err:" + err.Error())
-			go utils.SendEmailByHongze("同步有色数据失败","同步隆众数据失败 Err:"+err.Error() , utils.RefreshEdbInfoEmailSendToUsers, "", "")
+			go utils.SendEmailByHongze("同步有色数据失败", "同步隆众数据失败 Err:"+err.Error(), utils.RefreshEdbInfoEmailSendToUsers, "", "")
 		}
 	}()
 	var condition string
@@ -123,6 +125,7 @@ func SyncSmmDataBase() {
 }
 
 var manualLock sync.Mutex
+
 //同步手工数据
 func SyncManualDataBase() {
 	var err error
@@ -130,13 +133,13 @@ func SyncManualDataBase() {
 	defer func() {
 		if err != nil {
 			utils.FileLog.Info("SyncLzDataBase Err:" + err.Error())
-			go utils.SendEmailByHongze("同步手工数据失败","同步手工数据失败 Err:"+err.Error() , utils.RefreshEdbInfoEmailSendToUsers, "", "")
+			go utils.SendEmailByHongze("同步手工数据失败", "同步手工数据失败 Err:"+err.Error(), utils.RefreshEdbInfoEmailSendToUsers, "", "")
 		}
 	}()
 	var condition string
 	var pars []interface{}
 	condition += " AND source=? "
-	condition += " AND edb_code='W000156' "
+	//condition += " AND edb_code='W000156' "
 
 	pars = append(pars, utils.DATA_SOURCE_MANUAL)
 	items, err := data_manage.GetEdbInfoByCondition(condition, pars, 0)

+ 24 - 1
services/report_push.go

@@ -555,7 +555,30 @@ func SendYbRoadVideoToThs(videoId int) (err error) {
 		err = errors.New("获取视频信息失败, Err:" + e.Error())
 		return
 	}
-	permissionName := "宏观" // 所有客群都推
+	chartPermissionIds := video.ChartPermissionIds
+	// 标签信息
+	if chartPermissionIds == "" {
+		return
+	}
+	chartPermissionIdSlice := strings.Split(chartPermissionIds, ",")
+	chartList, e := models.GetChartPermissionByIds(chartPermissionIdSlice)
+	if e != nil {
+		err = errors.New("获取品种信息失败, Err:" + e.Error())
+		return
+	}
+	permissionName := ""
+	for _, v := range chartList {
+		if v.PermissionName == "宏观经济" {
+			v.PermissionName = "宏观"
+		}
+		permissionName += v.PermissionName+","
+	}
+	if permissionName == "" {
+		err = errors.New("客群标签为空, 不可推送")
+		return
+	}
+	permissionName = strings.Trim(permissionName, ",")
+	//permissionName := "宏观" //写死宏观,默认所有群都推
 	title := video.Title
 	jumpUrl := fmt.Sprint(utils.WxYbAppId+`/pages/roadShow/video/list?videoId=`, videoId)
 	logoUrl := `https://hongze.oss-cn-shanghai.aliyuncs.com/hzyj.png`

+ 7 - 0
services/task.go

@@ -267,6 +267,9 @@ func RefreshData(cont context.Context) (err error) {
 	wg.Wait()
 	////计算指标
 	data.RefreshDataFromCalculateAll()
+
+	// 预测计算指标
+	data.RefreshPredictDataFromCalculateAll()
 	time.Sleep(5 * time.Second)
 	data.RefreshNotice()
 	fmt.Println("Refresh End")
@@ -291,6 +294,8 @@ func RefreshTradeData(cont context.Context) (err error) {
 	wg.Wait()
 	//计算指标
 	data.RefreshDataFromCalculateAll()
+	// 计算预测指标
+	data.RefreshPredictDataFromCalculateAll()
 
 	return
 }
@@ -305,6 +310,8 @@ func RefreshEicData(cont context.Context) (err error) {
 	wg.Wait()
 	//计算指标
 	data.RefreshDataFromCalculateAll()
+	// 计算预测指标
+	data.RefreshPredictDataFromCalculateAll()
 
 	return
 }