Browse Source

数据库连接调整, 代码优化

hsun 1 year ago
parent
commit
092931d4aa

+ 104 - 35
controllers/report.go

@@ -142,14 +142,12 @@ func (this *ReportController) ListReport() {
 				syncReportIdArr = append(syncReportIdArr, strconv.Itoa(list[i].OldReportId))
 				syncReportIdArr = append(syncReportIdArr, strconv.Itoa(list[i].OldReportId))
 			}
 			}
 		}
 		}
-		reportIds := strings.Join(reportIdArr, ",")
-		syncReportIds := strings.Join(syncReportIdArr, ",")
 
 
 		// 查询同步过来的报告对应的老报告PV+UV
 		// 查询同步过来的报告对应的老报告PV+UV
 		pvMap := make(map[int]int, 0)
 		pvMap := make(map[int]int, 0)
 		uvMap := make(map[int]int, 0)
 		uvMap := make(map[int]int, 0)
-		if syncReportIds != "" {
-			puvList, e := models.GetPUVByResearchReportIds(syncReportIds)
+		if len(syncReportIdArr) > 0 {
+			puvList, e := models.GetPUVByResearchReportIds(syncReportIdArr)
 			if e != nil {
 			if e != nil {
 				br.Msg = "获取失败"
 				br.Msg = "获取失败"
 				br.ErrMsg = "获取同步报告对应的PV、UV失败, Err: " + e.Error()
 				br.ErrMsg = "获取同步报告对应的PV、UV失败, Err: " + e.Error()
@@ -162,7 +160,7 @@ func (this *ReportController) ListReport() {
 			}
 			}
 		}
 		}
 		// 晨周报音频列表
 		// 晨周报音频列表
-		videoList, err := models.GetReportChapterVideoListByReportIds(reportIds)
+		videoList, err := models.GetReportChapterVideoListByReportIds(reportIdArr)
 		if err != nil {
 		if err != nil {
 			br.Msg = "获取失败"
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取报告音频文件失败,Err:" + err.Error()
 			br.ErrMsg = "获取报告音频文件失败,Err:" + err.Error()
@@ -481,21 +479,25 @@ func (this *ReportController) Add() {
 		br.ErrMsg = "保存失败,Err:" + err.Error()
 		br.ErrMsg = "保存失败,Err:" + err.Error()
 		return
 		return
 	}
 	}
-	//处理权限
-	{
-		permissionItems, err := models.GetPermission(req.ClassifyNameSecond)
-		if err != nil {
-			go alarm_msg.SendAlarmMsg("获取权限失败,Err:"+err.Error(), 3)
-			//utils.SendEmail(utils.APPNAME+"失败提醒", "获取权限失败,Err:"+err.Error(), utils.EmailSendToUsers)
-		}
-		for _, v := range permissionItems {
-			err = models.AddChartPermissionChapterMapping(v.ChartPermissionId, newReportId)
-			if err != nil {
-				go alarm_msg.SendAlarmMsg("新增权限失败,Err:"+err.Error(), 3)
-				//utils.SendEmail(utils.APPNAME+"失败提醒", "新增权限失败,Err:"+err.Error()+strconv.FormatInt(newReportId, 10), utils.EmailSendToUsers)
+
+	// 处理权限
+	if utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox {
+		go func() {
+			permissionItems, e := models.GetPermission(req.ClassifyNameSecond)
+			if e != nil {
+				alarm_msg.SendAlarmMsg("获取权限失败,Err:"+e.Error(), 3)
+				return
 			}
 			}
-		}
+			for _, v := range permissionItems {
+				e = models.AddChartPermissionChapterMapping(v.ChartPermissionId, newReportId)
+				if e != nil {
+					alarm_msg.SendAlarmMsg("新增权限失败,Err:"+e.Error(), 3)
+					return
+				}
+			}
+		}()
 	}
 	}
+
 	reportCode := utils.MD5(strconv.Itoa(int(newReportId)))
 	reportCode := utils.MD5(strconv.Itoa(int(newReportId)))
 	//修改唯一编码
 	//修改唯一编码
 	{
 	{
@@ -601,26 +603,30 @@ func (this *ReportController) Edit() {
 		br.ErrMsg = "保存失败,Err:" + err.Error()
 		br.ErrMsg = "保存失败,Err:" + err.Error()
 		return
 		return
 	}
 	}
+
 	//处理权限
 	//处理权限
-	{
-		err = models.RemoveChartPermissionChapterMapping(req.ReportId)
-		if err != nil {
-			go alarm_msg.SendAlarmMsg("修改删除报告权限失败,Err:"+err.Error(), 3)
-			//utils.SendEmail(utils.APPNAME+"失败提醒", "修改删除报告权限失败,Err:"+err.Error(), utils.EmailSendToUsers)
-		}
-		permissionItems, err := models.GetPermission(req.ClassifyNameSecond)
-		if err != nil {
-			go alarm_msg.SendAlarmMsg("获取权限失败,Err:"+err.Error(), 3)
-			//utils.SendEmail(utils.APPNAME+"失败提醒", "获取权限失败,Err:"+err.Error(), utils.EmailSendToUsers)
-		}
-		for _, v := range permissionItems {
-			err = models.AddChartPermissionChapterMapping(v.ChartPermissionId, req.ReportId)
-			if err != nil {
-				go alarm_msg.SendAlarmMsg("新增权限失败,Err:"+err.Error(), 3)
-				//utils.SendEmail(utils.APPNAME+"失败提醒", "新增权限失败,Err:"+err.Error()+strconv.FormatInt(req.ReportId, 10), utils.EmailSendToUsers)
+	if utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox {
+		go func() {
+			e := models.RemoveChartPermissionChapterMapping(req.ReportId)
+			if e != nil {
+				alarm_msg.SendAlarmMsg("修改删除报告权限失败,Err:"+e.Error(), 3)
+				return
 			}
 			}
-		}
+			permissionItems, e := models.GetPermission(req.ClassifyNameSecond)
+			if e != nil {
+				alarm_msg.SendAlarmMsg("获取权限失败,Err:"+e.Error(), 3)
+				return
+			}
+			for _, v := range permissionItems {
+				e = models.AddChartPermissionChapterMapping(v.ChartPermissionId, req.ReportId)
+				if e != nil {
+					alarm_msg.SendAlarmMsg("新增权限失败,Err:"+e.Error(), 3)
+					return
+				}
+			}
+		}()
 	}
 	}
+
 	reportCode := utils.MD5(strconv.Itoa(int(req.ReportId)))
 	reportCode := utils.MD5(strconv.Itoa(int(req.ReportId)))
 	resp := new(models.EditResp)
 	resp := new(models.EditResp)
 	resp.ReportId = req.ReportId
 	resp.ReportId = req.ReportId
@@ -1629,6 +1635,12 @@ func (this *ReportController) GetChapterTrendTag() {
 		br.Ret = 408
 		br.Ret = 408
 		return
 		return
 	}
 	}
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "操作成功"
+		return
+	}
 
 
 	list, err := models.GetKeyWordListByFrom("trend")
 	list, err := models.GetKeyWordListByFrom("trend")
 	if err != nil {
 	if err != nil {
@@ -1662,6 +1674,12 @@ func (this *ReportController) EditChapterTrendTag() {
 		br.Ret = 408
 		br.Ret = 408
 		return
 		return
 	}
 	}
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "操作成功"
+		return
+	}
 
 
 	var req models.EditChapterTrendTagReq
 	var req models.EditChapterTrendTagReq
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
@@ -1826,6 +1844,12 @@ func (this *ReportController) IsLastDayWeekReportChapter() {
 		br.Ret = 408
 		br.Ret = 408
 		return
 		return
 	}
 	}
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "操作成功"
+		return
+	}
 
 
 	reportChapterId, _ := this.GetInt("ReportChapterId")
 	reportChapterId, _ := this.GetInt("ReportChapterId")
 	if reportChapterId <= 0 {
 	if reportChapterId <= 0 {
@@ -1882,6 +1906,12 @@ func (this *ReportController) PublishDayWeekReportChapter() {
 		br.Ret = 408
 		br.Ret = 408
 		return
 		return
 	}
 	}
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "操作成功"
+		return
+	}
 
 
 	var req models.PublishReportChapterReq
 	var req models.PublishReportChapterReq
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
@@ -1922,6 +1952,11 @@ func (this *ReportController) PublishDayWeekReportChapter() {
 		br.ErrMsg = "查询报告信息失败, Err: " + err.Error()
 		br.ErrMsg = "查询报告信息失败, Err: " + err.Error()
 		return
 		return
 	}
 	}
+	if reportInfo.State == 2 {
+		br.Msg = "该报告已发布,不允许编辑"
+		br.ErrMsg = "该报告已发布,不允许编辑"
+		return
+	}
 
 
 	// 获取规则配置
 	// 获取规则配置
 	reportChapterTypeRule, err := models.GetReportChapterTypeById(chapterInfo.TypeId)
 	reportChapterTypeRule, err := models.GetReportChapterTypeById(chapterInfo.TypeId)
@@ -1940,6 +1975,7 @@ func (this *ReportController) PublishDayWeekReportChapter() {
 	updateCols := make([]string, 0)
 	updateCols := make([]string, 0)
 	updateCols = append(updateCols, "Title", "AddType", "Author", "Content", "ContentSub", "IsEdit", "CreateTime", "PublishState", "PublishTime")
 	updateCols = append(updateCols, "Title", "AddType", "Author", "Content", "ContentSub", "IsEdit", "CreateTime", "PublishState", "PublishTime")
 
 
+	var needHandleVideo bool // 是否需要处理音频文件
 	nowTime := time.Now()
 	nowTime := time.Now()
 	var publishTime time.Time
 	var publishTime time.Time
 	if reportInfo.MsgIsSend == 1 && reportInfo.PublishTime != "" { //如果报告曾经发布过,并且已经发送过模版消息,则章节的发布时间为报告的发布时间
 	if reportInfo.MsgIsSend == 1 && reportInfo.PublishTime != "" { //如果报告曾经发布过,并且已经发送过模版消息,则章节的发布时间为报告的发布时间
@@ -1955,6 +1991,9 @@ func (this *ReportController) PublishDayWeekReportChapter() {
 		chapterInfo.VideoKind = 1
 		chapterInfo.VideoKind = 1
 
 
 		updateCols = append(updateCols, "VideoUrl", "VideoName", "VideoSize", "VideoPlaySeconds", "VideoKind")
 		updateCols = append(updateCols, "VideoUrl", "VideoName", "VideoSize", "VideoPlaySeconds", "VideoKind")
+
+		// 手动上传的音频需要处理音频文件
+		needHandleVideo = true
 	} else {
 	} else {
 		if chapterInfo.VideoUrl == "" {
 		if chapterInfo.VideoUrl == "" {
 			// 生成video
 			// 生成video
@@ -2033,6 +2072,11 @@ func (this *ReportController) PublishDayWeekReportChapter() {
 		}
 		}
 	}
 	}
 
 
+	// 处理报告中的音频文件分贝
+	if needHandleVideo {
+		go services.HandleVideoDecibel(chapterInfo)
+	}
+
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true
 	br.Msg = "操作成功"
 	br.Msg = "操作成功"
@@ -2056,6 +2100,12 @@ func (this *ReportController) PublishDayWeekReport() {
 		br.Ret = 408
 		br.Ret = 408
 		return
 		return
 	}
 	}
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "操作成功"
+		return
+	}
 
 
 	var req models.PublishDayWeekReportReq
 	var req models.PublishDayWeekReportReq
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
@@ -2115,6 +2165,13 @@ func (this *ReportController) GetSunCode() {
 		br.Ret = 408
 		br.Ret = 408
 		return
 		return
 	}
 	}
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "操作成功"
+		return
+	}
+
 	var req models.SunCodeReq
 	var req models.SunCodeReq
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
 	if err != nil {
 	if err != nil {
@@ -2169,6 +2226,12 @@ func (this *ReportController) GetStopDayWeekReportChapterTypeList() {
 		br.Ret = 408
 		br.Ret = 408
 		return
 		return
 	}
 	}
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "操作成功"
+		return
+	}
 
 
 	stopDay := make([]*models.ReportChapterType, 0)
 	stopDay := make([]*models.ReportChapterType, 0)
 	stopWeek := make([]*models.ReportChapterType, 0)
 	stopWeek := make([]*models.ReportChapterType, 0)
@@ -2380,6 +2443,12 @@ func (this *ReportController) CheckDayWeekReportChapterVideo() {
 		br.Ret = 408
 		br.Ret = 408
 		return
 		return
 	}
 	}
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		br.Ret = 200
+		br.Success = true
+		br.Msg = "操作成功"
+		return
+	}
 
 
 	reqReportId := this.GetString("ReportId")
 	reqReportId := this.GetString("ReportId")
 	reportId, _ := strconv.Atoi(reqReportId)
 	reportId, _ := strconv.Atoi(reqReportId)

+ 2 - 2
controllers/semantic_analysis/sa_compare.go

@@ -1,12 +1,12 @@
 package semantic_analysis
 package semantic_analysis
 
 
 import (
 import (
-	"fmt"
-	"github.com/rdlucklib/rdluck_tools/paging"
 	"eta/eta_mobile/controllers"
 	"eta/eta_mobile/controllers"
 	"eta/eta_mobile/models"
 	"eta/eta_mobile/models"
 	saModel "eta/eta_mobile/models/semantic_analysis"
 	saModel "eta/eta_mobile/models/semantic_analysis"
 	"eta/eta_mobile/utils"
 	"eta/eta_mobile/utils"
+	"fmt"
+	"github.com/rdlucklib/rdluck_tools/paging"
 )
 )
 
 
 // SaCompareController 语义分析-文档比对
 // SaCompareController 语义分析-文档比对

+ 167 - 0
models/business_conf.go

@@ -0,0 +1,167 @@
+package models
+
+import (
+	"fmt"
+	"github.com/beego/beego/v2/client/orm"
+	"html"
+	"strings"
+	"time"
+)
+
+const (
+	BusinessConfUseXf          = "UseXf"
+	BusinessConfXfAppid        = "XfAppid"
+	BusinessConfXfApiKey       = "XfApiKey"
+	BusinessConfXfApiSecret    = "XfApiSecret"
+	BusinessConfXfVcn          = "XfVcn"
+	BusinessConfEnPptCoverImgs = "EnPptCoverImgs"
+)
+
+// BusinessConf 商户配置表
+type BusinessConf struct {
+	Id         int    `orm:"column(id);pk"`
+	ConfKey    string `description:"配置Key"`
+	ConfVal    string `description:"配置值"`
+	ValType    int    `description:"1-字符串;2-数值;3-字符串数组;4-富文本;"`
+	Necessary  int    `description:"是否必填:0-否;1-是"`
+	Remark     string `description:"备注"`
+	CreateTime time.Time
+}
+
+func (m *BusinessConf) TableName() string {
+	return "business_conf"
+}
+
+func (m *BusinessConf) PrimaryId() string {
+	return "id"
+}
+
+func (m *BusinessConf) Create() (err error) {
+	o := orm.NewOrm()
+	id, err := o.Insert(m)
+	if err != nil {
+		return
+	}
+	m.Id = int(id)
+	return
+}
+
+func (m *BusinessConf) CreateMulti(items []*BusinessConf) (err error) {
+	if len(items) == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	_, err = o.InsertMulti(len(items), items)
+	return
+}
+
+func (m *BusinessConf) Update(cols []string) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Update(m, cols...)
+	return
+}
+
+func (m *BusinessConf) Del() (err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
+	_, err = o.Raw(sql, m.Id).Exec()
+	return
+}
+
+func (m *BusinessConf) GetItemById(id int) (item *BusinessConf, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
+	err = o.Raw(sql, id).QueryRow(&item)
+	return
+}
+
+func (m *BusinessConf) GetItemByCondition(condition string, pars []interface{}) (item *BusinessConf, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
+	err = o.Raw(sql, pars).QueryRow(&item)
+	return
+}
+
+func (m *BusinessConf) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+func (m *BusinessConf) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*BusinessConf, err error) {
+	o := orm.NewOrm()
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := `ORDER BY create_time DESC`
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+func (m *BusinessConf) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*BusinessConf, err error) {
+	o := orm.NewOrm()
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := `ORDER BY create_time DESC`
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+// GetBusinessConf 获取商家配置
+func GetBusinessConf() (list map[string]string, err error) {
+	list = make(map[string]string)
+
+	var items []*BusinessConf
+	o := orm.NewOrm()
+	sql := `SELECT * FROM business_conf`
+	_, err = o.Raw(sql).QueryRows(&items)
+	if err != nil {
+		return
+	}
+
+	for _, v := range items {
+		if v.ValType == 4 {
+			list[v.ConfKey] = html.UnescapeString(v.ConfVal)
+			continue
+		}
+		list[v.ConfKey] = v.ConfVal
+	}
+	return
+}
+
+// BusinessConfUpdate 更新配置
+type BusinessConfUpdate struct {
+	ConfKey string
+	ConfVal string
+}
+
+// UpdateBusinessConfMulti 批量修改配置
+func UpdateBusinessConfMulti(items []BusinessConfUpdate) (err error) {
+	o := orm.NewOrm()
+	p, err := o.Raw("UPDATE business_conf SET conf_val = ? WHERE conf_key = ?").Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close()
+	}()
+	for _, v := range items {
+		_, err = p.Exec(v.ConfVal, v.ConfKey)
+		if err != nil {
+			return
+		}
+	}
+	return
+}

+ 0 - 321
models/data_manage/edb_data_gl.go

@@ -1,333 +1,12 @@
 package data_manage
 package data_manage
 
 
 import (
 import (
-	"eta/eta_mobile/utils"
-	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/beego/beego/v2/client/orm"
-	"strconv"
-	"strings"
-	"time"
 )
 )
 
 
-func AddEdbDataGlBySql(sqlStr string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Raw(sqlStr).Exec()
-	return
-}
-
-func GetEdbDataGlByEdbCode(edbCode string) (items []*EdbInfoSearchData, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_data_gl WHERE edb_code=? ORDER BY data_time DESC LIMIT ? `
-	_, err = o.Raw(sql, edbCode, utils.EDB_DATA_LIMIT).QueryRows(&items)
-	return
-}
-
 func GetEdbDataGlMaxOrMinDate(edbCode string) (min_date, max_date string, err error) {
 func GetEdbDataGlMaxOrMinDate(edbCode string) (min_date, max_date string, err error) {
 	o := orm.NewOrmUsingDB("data")
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date FROM edb_data_gl WHERE edb_code=? `
 	sql := ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date FROM edb_data_gl WHERE edb_code=? `
 	err = o.Raw(sql, edbCode).QueryRow(&min_date, &max_date)
 	err = o.Raw(sql, edbCode).QueryRow(&min_date, &max_date)
 	return
 	return
 }
 }
-
-type GlData struct {
-	InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
-	DataTime   string `orm:"column(DATA_DATE)" description:"值"`
-}
-
-func GetGlDataByTradeCode(condition string, pars []interface{}) (item []*GlData, err error) {
-	condition += " AND IS_DELETE=0 "
-	sql := ` SELECT * FROM mb_index_main_data WHERE 1=1 `
-	o := orm.NewOrmUsingDB("gl")
-	if condition != "" {
-		sql += condition
-	}
-	sql += ` ORDER BY PUBLISH_TIME DESC `
-	_, err = o.Raw(sql, pars).QueryRows(&item)
-	return
-}
-
-func GetEdbDataGlByCode(edbCode string) (items []*EdbInfoSearchData, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM edb_data_gl WHERE edb_code=? ORDER BY data_time DESC LIMIT ? `
-	_, err = o.Raw(sql, edbCode, utils.EDB_DATA_LIMIT).QueryRows(&items)
-	return
-}
-
-func GetEdbDataByGl(edbCode, startDate, endDate string) (searchItem *EdbInfoSearch, err error) {
-
-	var condition string
-	var pars []interface{}
-
-	if edbCode != "" {
-		condition += " AND INDEX_CODE=? "
-		pars = append(pars, edbCode)
-	}
-
-	glDataList, err := GetGlDataByTradeCode(condition, pars)
-	if err != nil {
-		return
-	}
-	searchItem = new(EdbInfoSearch)
-	searchItem.EdbCode = edbCode
-	dataLen := len(glDataList)
-
-	existMap := make(map[string]string)
-	if dataLen > 0 {
-		var isAdd bool
-		addSql := ` INSERT INTO edb_data_gl(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-		dataList := make([]*EdbInfoSearchData, 0)
-		for i := 0; i < dataLen; i++ {
-			item := glDataList[i]
-			eDate := item.DataTime
-			sValue := item.InputValue
-			if sValue != "" {
-				if _, ok := existMap[eDate]; !ok {
-					dataTime, err := time.Parse(utils.FormatDate, eDate)
-					if err != nil {
-						return nil, err
-					}
-					timestamp := dataTime.UnixNano() / 1e6
-					timeStr := fmt.Sprintf("%d", timestamp)
-					addSql += GetAddSql("0", edbCode, eDate, timeStr, sValue)
-					isAdd = true
-				}
-			}
-			existMap[eDate] = eDate
-		}
-		fmt.Println("isAdd:", isAdd)
-		if isAdd {
-			//addSql = strings.TrimRight(addSql, ",")
-			//fmt.Println("addSql:exec start")
-			//_, err = o.Raw(addSql).Exec()
-			//if err != nil {
-			//	utils.FileLogData.Info("GetEdbDataByGl Err:%s", err.Error())
-			//	return
-			//}
-			//fmt.Println("addSql:exec end")
-			addSql = strings.TrimRight(addSql, ",")
-			utils.FileLog.Info(addSql)
-			err = AddEdbDataGlBySql(addSql)
-			if err != nil {
-				utils.FileLogData.Info("AddEdbDataGlBySql Err:%s", err.Error())
-				return
-			}
-		}
-		dataList, err := GetEdbDataGlByCode(edbCode)
-		if err != nil {
-			utils.FileLogData.Info("GetEdbDataGlByCode Err:%s", err.Error())
-			return searchItem, err
-		}
-		minDate, maxDate, err := GetEdbDataGlMaxOrMinDate(edbCode)
-		if err != nil {
-			return searchItem, err
-		}
-		searchItem.DataList = dataList
-		searchItem.StartDate = minDate
-		searchItem.EndDate = maxDate
-	}
-	if searchItem.DataList == nil {
-		searchItem.DataList = make([]*EdbInfoSearchData, 0)
-	}
-	return
-}
-
-func ModifyEdbDataGlStatus(edbInfoId int64, edbCode string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE edb_data_gl SET edb_info_id=?, status=1,modify_time=NOW() WHERE edb_code=? `
-	_, err = o.Raw(sql, edbInfoId, edbCode).Exec()
-	return
-}
-
-func GetEdbDataGlByCodeAndDate(edbCode string, startDate string) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT COUNT(1) AS count FROM edb_data_gl WHERE edb_code=? AND data_time=? `
-	err = o.Raw(sql, edbCode, startDate).QueryRow(&count)
-	return
-}
-
-func ModifyEdbDataGl(edbInfoId int64, dataTime, value string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` UPDATE edb_data_gl SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-	_, err = o.Raw(sql, value, edbInfoId, dataTime).Exec()
-	return
-}
-
-// 刷新钢联指标数据
-func RefreshEdbDataByGl(edbInfoId int, edbCode, startDate, endDate string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-
-	if err != nil {
-		return
-	}
-	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
-	var condition string
-	var pars []interface{}
-
-	if edbCode != "" {
-		condition += " AND INDEX_CODE=? "
-		pars = append(pars, edbCode)
-	}
-
-	if startDate != "" {
-		condition += " AND DATA_DATE>=? "
-		pars = append(pars, startDate)
-	}
-
-	if endDate != "" {
-		condition += " AND DATA_DATE<=? "
-		pars = append(pars, endDate)
-	}
-
-	glDataList, err := GetGlDataByTradeCode(condition, pars)
-
-	addSql := ` INSERT INTO edb_data_gl(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	var isAdd bool
-	existMap := make(map[string]string)
-	for _, v := range glDataList {
-		item := v
-		if _, ok := existMap[v.DataTime]; !ok {
-			count, err := GetEdbDataGlByCodeAndDate(edbCode, v.DataTime)
-			if err != nil && err.Error() != utils.ErrNoRow() {
-				return err
-			}
-			if count <= 0 {
-				eDate := item.DataTime
-				sValue := item.InputValue
-				if sValue != "" {
-					dataTime, err := time.Parse(utils.FormatDate, eDate)
-					if err != nil {
-						return err
-					}
-					timestamp := dataTime.UnixNano() / 1e6
-					timeStr := fmt.Sprintf("%d", timestamp)
-					addSql += GetAddSql(edbInfoIdStr, edbCode, eDate, timeStr, sValue)
-					isAdd = true
-				}
-			} else {
-				err = ModifyEdbDataGl(int64(edbInfoId), v.DataTime, v.InputValue)
-				if err != nil {
-					return err
-				}
-			}
-		}
-		existMap[v.DataTime] = v.InputValue
-	}
-	if isAdd {
-		addSql = strings.TrimRight(addSql, ",")
-		_, err = to.Raw(addSql).Exec()
-		if err != nil {
-			return err
-		}
-	}
-	return
-}
-
-// 全部刷新隆众数据
-func RefreshAllEdbDataByGl(edbInfoId, source int, edbCode, startDate, endDate string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-
-	if err != nil {
-		return
-	}
-	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	//计算数据
-	var condition string
-	var pars []interface{}
-
-	if edbCode != "" {
-		condition += " AND INDEX_CODE=? "
-		pars = append(pars, edbCode)
-	}
-
-	if startDate != "" {
-		condition += " AND DATA_DATE>=? "
-		pars = append(pars, startDate)
-	}
-
-	if endDate != "" {
-		condition += " AND DATA_DATE<=? "
-		pars = append(pars, endDate)
-	}
-
-	glDataList, err := GetGlDataByTradeCode(condition, pars)
-
-	//获取指标所有数据
-	dataList := make([]*EdbDataBase, 0)
-	dataTableName := GetEdbDataTableName(source)
-	sql := `SELECT * FROM %s WHERE edb_info_id=? `
-	sql = fmt.Sprintf(sql, dataTableName)
-	_, err = to.Raw(sql, edbInfoId).QueryRows(&dataList)
-	if err != nil {
-		return err
-	}
-	dataMap := make(map[string]string)
-	for _, v := range dataList {
-		dataMap[v.DataTime] = v.Value
-	}
-
-	addSql := ` INSERT INTO edb_data_gl(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	var isAdd bool
-	existMap := make(map[string]string)
-	for _, v := range glDataList {
-		item := v
-		if _, ok := existMap[v.DataTime]; !ok {
-			eDate := item.DataTime
-			sValue := item.InputValue
-			if sValue != "" {
-				dataTime, err := time.Parse(utils.FormatDate, eDate)
-				if err != nil {
-					return err
-				}
-				timestamp := dataTime.UnixNano() / 1e6
-				timeStr := fmt.Sprintf("%d", timestamp)
-				saveValue := sValue
-
-				if existVal, ok := dataMap[eDate]; !ok {
-					addSql += GetAddSql(edbInfoIdStr, edbCode, eDate, timeStr, saveValue)
-					isAdd = true
-				} else {
-					if existVal != saveValue {
-						sql := ` UPDATE %s SET value=?,modify_time=NOW() WHERE edb_info_id=? AND data_time=? `
-						sql = fmt.Sprintf(sql, dataTableName)
-						_, err = to.Raw(sql, sValue, edbInfoId, eDate).Exec()
-						if err != nil {
-							return err
-						}
-					}
-				}
-			}
-		}
-		existMap[v.DataTime] = v.DataTime
-	}
-	if isAdd {
-		addSql = strings.TrimRight(addSql, ",")
-		_, err = to.Raw(addSql).Exec()
-		if err != nil {
-			return err
-		}
-	}
-	return
-}

+ 0 - 528
models/data_manage/edb_data_quarter.go

@@ -1,216 +1,14 @@
 package data_manage
 package data_manage
 
 
 import (
 import (
-	"encoding/json"
 	"eta/eta_mobile/utils"
 	"eta/eta_mobile/utils"
 	"fmt"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
-	"sort"
 	"strconv"
 	"strconv"
-	"strings"
 	"time"
 	"time"
 
 
 	"github.com/nosixtools/solarlunar"
 	"github.com/nosixtools/solarlunar"
 )
 )
 
 
-func GetEdbDataQuarterCount(edbInfoId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	hsql := `SELECT COUNT(1) AS count FROM edb_data_quarter WHERE edb_info_id=? `
-	err = o.Raw(hsql, edbInfoId).QueryRow(&count)
-	return
-}
-
-// 指标季度数据计算(公历转农历)
-func AddCalculateQuarterV2(edbInfoId, source int, edbCode string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			fmt.Println("Err:", err)
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-
-	edbInfoIdStr := strconv.Itoa(edbInfoId)
-	fmt.Println(edbInfoIdStr)
-	//计算数据
-	var condition string
-	var pars []interface{}
-	condition += " AND edb_info_id=? "
-	pars = append(pars, edbInfoId)
-	dataList, err := GetEdbDataListAll(condition, pars, source, 0)
-	if err != nil {
-		return err
-	}
-
-	var yearArr []int
-	yearMap := make(map[int]int)
-	dataMap := make(map[string]*EdbInfoSearchData)
-	for _, v := range dataList {
-		//日其中获取年
-		itemDate, err := time.Parse(utils.FormatDate, v.DataTime)
-		if err != nil {
-			return err
-		}
-		year := itemDate.Year()
-		if _, ok := yearMap[year]; !ok {
-			yearArr = append(yearArr, year)
-			yearMap[year] = year
-		}
-		dataMap[v.DataTime] = v
-	}
-	sort.Sort(sort.Reverse(sort.IntSlice(yearArr)))
-	addSql := ` INSERT INTO edb_data_quarter(edb_info_id,edb_code,data_time,value,create_time,modify_time,status,data_timestamp) values `
-	var isAdd bool
-	//yearLen := len(yearArr)
-
-	fmt.Println(yearArr)
-
-	for _, yv := range yearArr {
-		fmt.Println(yv)
-	}
-	fmt.Println("isAdd", isAdd)
-	if isAdd {
-		addSql = strings.TrimRight(addSql, ",")
-		utils.FileLog.Info(addSql)
-		_, err = to.Raw(addSql).Exec()
-		fmt.Println("err:", err)
-		if err != nil {
-			return err
-		}
-	}
-	return
-}
-
-// 指标季度数据计算(公历转农历)
-func AddCalculateQuarterV3(edbInfoId, source int, edbCode string, list []*EdbDataList) (err error) {
-	var errMsg string
-	defer func() {
-		if errMsg != "" {
-			fmt.Println("errMsg:", errMsg)
-		}
-	}()
-	lunarDate := "2017-01-01" //农历
-	fmt.Println(solarlunar.LunarToSolar(lunarDate, false))
-
-	dataList, err := GetHzTestEdbdata()
-	var yearArr []int
-	yearMap := make(map[int]int)
-	var cureentDate time.Time
-	for k, v := range dataList {
-		if k == 0 {
-			cureentDate = v.Dt
-		}
-		year := v.Dt.Year()
-		if _, ok := yearMap[year]; !ok {
-			yearArr = append(yearArr, year)
-		}
-		yearMap[year] = year
-	}
-	//排序
-	fmt.Println(yearArr)
-	thisYear := cureentDate.Year()
-	thisMonth := int(cureentDate.Month())
-
-	sort.Ints(yearArr)
-	fmt.Println("thisYear:", thisYear)
-
-	result := new(HzTestEdbdataResult)
-	for ky, vy := range yearArr {
-		if thisMonth < 11 {
-			currentYearCjnl := strconv.Itoa(thisYear) + "-01-01"               //当前年份春节农历
-			currentYearCjgl := solarlunar.LunarToSolar(currentYearCjnl, false) //当前年份春节公历
-			currentYearCjglDate, err := time.Parse(utils.FormatDate, currentYearCjgl)
-			if err != nil {
-				errMsg = "生成当前春节失败,Err:" + err.Error()
-				return err
-			}
-
-			fmt.Println(ky, vy)
-			preYear := vy
-			preYearCjnl := strconv.Itoa(preYear) + "-01-01"            //之前年份春节农历
-			preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
-			preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
-			if err != nil {
-				errMsg = "生成历史年份春节失败,Err:" + err.Error()
-				return err
-			}
-			day := currentYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
-			fmt.Println("day:", day)
-			items := new(HzTestEdbdataItems)
-			dataLen := len(dataList)
-			for i := dataLen - 1; i >= 0; i-- {
-				v := dataList[i]
-				newDate := v.Dt.AddDate(0, 0, int(day))
-				selectDateStr := strconv.Itoa(thisYear) + "-11" + "-30"
-				selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
-
-				if newDate.Before(selectDate) {
-					item := new(HzTestEdbdata)
-					item.TtradeCode = v.TtradeCode
-					item.Dt = newDate
-					item.Close = v.Close
-					timestamp := item.Dt.UnixNano() / 1e6
-					item.DataTimestamp = timestamp
-					items.Items = append(items.Items, item)
-				}
-			}
-			result.List = append(result.List, items)
-		} else {
-			fmt.Println(ky, vy)
-			nextYear := thisYear + 1
-			nextYearCjnl := strconv.Itoa(nextYear) + "-01-01"            //当前年份春节农历
-			nextYearCjgl := solarlunar.LunarToSolar(nextYearCjnl, false) //当前年份春节公历
-
-			nextYearCjglDate, err := time.Parse(utils.FormatDate, nextYearCjgl)
-			if err != nil {
-				errMsg = "生成当前春节失败,Err:" + err.Error()
-				return err
-			}
-
-			preYear := vy
-			preYearCjnl := strconv.Itoa(preYear) + "-01-01"            //之前年份春节农历
-			preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
-			preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
-			if err != nil {
-				errMsg = "生成历史年份春节失败,Err:" + err.Error()
-				return err
-			}
-			day := nextYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
-
-			fmt.Println("day:", day)
-			items := new(HzTestEdbdataItems)
-			dataLen := len(dataList)
-			for i := dataLen - 1; i >= 0; i-- {
-				v := dataList[i]
-				newDate := v.Dt.AddDate(0, 0, int(day))
-				selectDateStr := strconv.Itoa(nextYear) + "-05" + "-31"
-				selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
-
-				if newDate.Before(selectDate) {
-					item := new(HzTestEdbdata)
-					item.TtradeCode = v.TtradeCode
-					item.Dt = newDate
-					item.Close = v.Close
-					timestamp := item.Dt.UnixNano() / 1e6
-					item.DataTimestamp = timestamp
-					items.Items = append(items.Items, item)
-				}
-			}
-			result.List = append(result.List, items)
-		}
-
-	}
-	resultJson, err := json.Marshal(result)
-	utils.FileLog.Info(string(resultJson))
-	return
-}
-
 // 指标季度数据计算(公历转农历)
 // 指标季度数据计算(公历转农历)
 func AddCalculateQuarterV4(dataList []*EdbDataList) (result *EdbDataResult, err error) {
 func AddCalculateQuarterV4(dataList []*EdbDataList) (result *EdbDataResult, err error) {
 	var errMsg string
 	var errMsg string
@@ -387,203 +185,6 @@ func AddCalculateQuarterV4(dataList []*EdbDataList) (result *EdbDataResult, err
 	return
 	return
 }
 }
 
 
-// AddCalculateQuarterV4ByUniqueCode 指标季度数据计算(公历转农历)
-func AddCalculateQuarterV4ByUniqueCode(dataList []*EdbDataListByUniqueCode) (result *EdbDataResult, err error) {
-	var errMsg string
-	defer func() {
-		if errMsg != "" {
-			fmt.Println("errMsg:", errMsg)
-		}
-	}()
-
-	endDate := dataList[len(dataList)-1].DataTime
-	endDateForm, err := time.Parse(utils.FormatDate, endDate)
-	if err != nil {
-		return result, err
-	}
-	thisMonth := int(endDateForm.Month())
-
-	result = new(EdbDataResult)
-	var yearArr []int
-	yearMap := make(map[int]int)
-	var cureentDate time.Time
-	if thisMonth < 11 {
-		for k, v := range dataList {
-			dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
-			if err != nil {
-				errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
-				return result, err
-			}
-			if k == len(dataList)-1 {
-				cureentDate = dateTime
-			}
-			year := dateTime.Year()
-			if _, ok := yearMap[year]; !ok {
-				yearArr = append(yearArr, year)
-			}
-			yearMap[year] = year
-		}
-	} else {
-		for k, v := range dataList {
-			dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
-			if err != nil {
-				errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
-				return result, err
-			}
-			if k == len(dataList)-1 {
-				cureentDate = dateTime
-			}
-			year := dateTime.Year() + 1
-			if _, ok := yearMap[year]; !ok {
-				yearArr = append(yearArr, year)
-			}
-			yearMap[year] = year
-		}
-	}
-	//排序
-	fmt.Println("yearArr:", yearArr)
-	thisYear := cureentDate.Year()
-	//thisMonth := int(cureentDate.Month())
-
-	fmt.Println("thisMonth:", thisMonth)
-	for ky, vy := range yearArr {
-		fmt.Println("line 432:", ky, vy, thisYear, thisMonth)
-		if thisMonth < 11 {
-			currentYearCjnl := strconv.Itoa(thisYear) + "-01-01"               //当前年份春节农历
-			currentYearCjgl := solarlunar.LunarToSolar(currentYearCjnl, false) //当前年份春节公历
-			currentYearCjglDate, err := time.Parse(utils.FormatDate, currentYearCjgl)
-			if err != nil {
-				errMsg = "生成当前春节失败,Err:" + err.Error()
-				return result, err
-			}
-
-			preYear := vy
-			preYearCjnl := strconv.Itoa(preYear) + "-01-01"            //之前年份春节农历
-			preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
-			preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
-			if err != nil {
-				errMsg = "生成历史年份春节失败,Err:" + err.Error()
-				return result, err
-			}
-			day := currentYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
-
-			items := new(EdbDataItems)
-			items.Year = preYear
-			for _, v := range dataList {
-				dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
-				if err != nil {
-					errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
-					return result, err
-				}
-				newDate := dateTime.AddDate(0, 0, int(day))
-				selectDateStr := strconv.Itoa(thisYear) + "-11" + "-30"
-				selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
-				if newDate.Before(selectDate) || newDate == selectDate {
-					timestamp := newDate.UnixNano() / 1e6
-					item := new(EdbDataList)
-					item.DataTime = newDate.Format(utils.FormatDate)
-					item.EdbInfoId = v.EdbInfoId
-					item.Value = v.Value
-					item.EdbDataId = v.EdbDataId
-					item.DataTimestamp = timestamp
-					items.Items = append(items.Items, item)
-				}
-			}
-			result.List = append(result.List, items)
-		} else {
-			nextYear := thisYear + 1
-			nextYearCjnl := strconv.Itoa(nextYear) + "-01-01"            //当前年份春节农历
-			nextYearCjgl := solarlunar.LunarToSolar(nextYearCjnl, false) //当前年份春节公历
-
-			nextYearCjglDate, err := time.Parse(utils.FormatDate, nextYearCjgl)
-			if err != nil {
-				errMsg = "生成当前春节失败,Err:" + err.Error()
-				return result, err
-			}
-			preYear := vy
-			preYearCjnl := strconv.Itoa(preYear) + "-01-01"            //之前年份春节农历
-			preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
-			preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
-			if err != nil {
-				errMsg = "生成历史年份春节失败,Err:" + err.Error()
-				return result, err
-			}
-			day := nextYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
-
-			fmt.Println("day:", day, nextYearCjglDate, preYearCjglDate)
-
-			items := new(EdbDataItems)
-			items.Year = preYear - 1
-			fmt.Println("preYear:", preYear, "ky:", ky, "yearArrLen:", len(yearArr))
-			if ky+1 < len(yearArr) {
-				for _, v := range dataList {
-					dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
-					if err != nil {
-						errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
-						return result, err
-					}
-					newDate := dateTime.AddDate(0, 0, int(day))
-					selectDateStr := strconv.Itoa(nextYear) + "-05" + "-31"
-					selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
-
-					if newDate.Before(selectDate) || newDate == selectDate {
-						timestamp := newDate.UnixNano() / 1e6
-						item := new(EdbDataList)
-						item.DataTime = newDate.Format(utils.FormatDate)
-						item.EdbInfoId = v.EdbInfoId
-						item.Value = v.Value
-						item.EdbDataId = v.EdbDataId
-						item.DataTimestamp = timestamp
-						items.Items = append(items.Items, item)
-					}
-				}
-				result.List = append(result.List, items)
-			} else {
-				for _, v := range dataList {
-					dateTime, err := time.Parse(utils.FormatDate, v.DataTime)
-					if err != nil {
-						errMsg = "time.Parse Err:" + err.Error() + ";DataTime:" + v.DataTime
-						return result, err
-					}
-					timestamp := dateTime.UnixNano() / 1e6
-					item := new(EdbDataList)
-					item.DataTime = dateTime.Format(utils.FormatDate)
-					item.EdbInfoId = v.EdbInfoId
-					item.Value = v.Value
-					item.EdbDataId = v.EdbDataId
-					item.DataTimestamp = timestamp
-					items.Items = append(items.Items, item)
-				}
-				result.List = append(result.List, items)
-			}
-		}
-	}
-	return
-}
-
-type HzTestEdbdataResult struct {
-	List []*HzTestEdbdataItems
-}
-
-type HzTestEdbdataItems struct {
-	Items []*HzTestEdbdata
-}
-
-type HzTestEdbdata struct {
-	TtradeCode    string    `orm:"column(TRADE_CODE)"`
-	Dt            time.Time `orm:"column(DT)"`
-	Close         float64   `orm:"column(CLOSE)"`
-	ModifyTime    time.Time `orm:"column(modify_time)"`
-	DataTimestamp int64
-}
-
-func GetHzTestEdbdata() (list []*HzTestEdbdata, err error) {
-	o := orm.NewOrm()
-	sql := ` SELECT * FROM hz_test_edbdata WHERE TRADE_CODE=? ORDER BY DT DESC `
-	_, err = o.Raw(sql, "ST_0000577845").QueryRows(&list)
-	return
-}
-
 type EdbDataItems struct {
 type EdbDataItems struct {
 	Items                []*EdbDataList
 	Items                []*EdbDataList
 	Year                 int
 	Year                 int
@@ -594,132 +195,3 @@ type EdbDataItems struct {
 type EdbDataResult struct {
 type EdbDataResult struct {
 	List []*EdbDataItems
 	List []*EdbDataItems
 }
 }
-
-func AddCalculateQuarterV5(dataList []*EdbDataList) (result *EdbDataResult, err error) {
-	var errMsg string
-	defer func() {
-		if errMsg != "" {
-			fmt.Println("errMsg:", errMsg)
-		}
-	}()
-	result = new(EdbDataResult)
-	thisYear := time.Now().Year()
-
-	endDate := dataList[len(dataList)-1].DataTime
-	endDateForm, err := time.Parse(utils.FormatDate, endDate)
-	if err != nil {
-		return result, err
-	}
-	thisMonth := int(endDateForm.Month())
-
-	fmt.Println(thisMonth)
-	for i := 4; i > 0; i-- {
-		if thisMonth < 11 {
-			nextYear := thisYear
-			nextYearCjnl := strconv.Itoa(nextYear) + "-01-01"            //当前年份春节农历
-			nextYearCjgl := solarlunar.LunarToSolar(nextYearCjnl, false) //当前年份春节公历
-			nextYearCjglDate, err := time.Parse(utils.FormatDate, nextYearCjgl)
-			if err != nil {
-				errMsg = "生成当前春节失败,Err:" + err.Error()
-				return result, err
-			}
-			preYearCjnl := strconv.Itoa(nextYear-i) + "-01-01"         //之前年份春节农历
-			preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
-			preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
-			if err != nil {
-				errMsg = "生成历史年份春节失败,Err:" + err.Error()
-				return result, err
-			}
-			day := nextYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
-			items := new(EdbDataItems)
-			for _, v := range dataList {
-				dataDate := v.DataTime
-				dataDateForm, err := time.Parse(utils.FormatDate, dataDate)
-				if err != nil {
-					return result, err
-				}
-				newDate := dataDateForm.AddDate(0, 0, int(day))
-				selectDateStr := strconv.Itoa(nextYear) + "-11" + "-30"
-				selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
-				if newDate.Before(selectDate) {
-					timestamp := newDate.UnixNano() / 1e6
-					item := new(EdbDataList)
-					item.DataTime = newDate.Format(utils.FormatDate)
-					item.EdbInfoId = v.EdbInfoId
-					item.Value = v.Value
-					item.EdbDataId = v.EdbDataId
-					item.DataTimestamp = timestamp
-					items.Items = append(items.Items, item)
-				}
-			}
-			fmt.Println(nextYear, "年春节阳历", nextYearCjgl)
-			fmt.Println(i, "年前春节", preYearCjnl)
-			fmt.Println(i, "年前春节阳历", preYearCjgl)
-			fmt.Println("与", nextYear, "年春节相差天数", day, "____________")
-			result.List = append(result.List, items)
-		} else {
-			nextYear := thisYear + 1
-			nextYearCjnl := strconv.Itoa(nextYear) + "-01-01"            //当前年份春节农历
-			nextYearCjgl := solarlunar.LunarToSolar(nextYearCjnl, false) //当前年份春节公历
-			nextYearCjglDate, err := time.Parse(utils.FormatDate, nextYearCjgl)
-			if err != nil {
-				errMsg = "生成当前春节失败,Err:" + err.Error()
-				return result, err
-			}
-			preYearCjnl := strconv.Itoa(nextYear-i) + "-01-01"         //之前年份春节农历
-			preYearCjgl := solarlunar.LunarToSolar(preYearCjnl, false) //之前年份春节公历
-			preYearCjglDate, err := time.Parse(utils.FormatDate, preYearCjgl)
-			if err != nil {
-				errMsg = "生成历史年份春节失败,Err:" + err.Error()
-				return result, err
-			}
-			day := nextYearCjglDate.Sub(preYearCjglDate).Hours() / float64(24)
-			items := new(EdbDataItems)
-			for _, v := range dataList {
-				dataDate := v.DataTime
-				dataDateForm, err := time.Parse(utils.FormatDate, dataDate)
-				if err != nil {
-					return result, err
-				}
-
-				newDate := dataDateForm.AddDate(0, 0, int(day))
-				selectDateStr := strconv.Itoa(nextYear) + "-05" + "-31"
-				selectDate, _ := time.Parse(utils.FormatDate, selectDateStr)
-				if newDate.Before(selectDate) {
-					timestamp := newDate.UnixNano() / 1e6
-					item := new(EdbDataList)
-					item.DataTime = newDate.Format(utils.FormatDate)
-					item.EdbInfoId = v.EdbInfoId
-					item.Value = v.Value
-					item.EdbDataId = v.EdbDataId
-					item.DataTimestamp = timestamp
-					items.Items = append(items.Items, item)
-				}
-			}
-			fmt.Println(nextYear, "年春节阳历", nextYearCjgl)
-			fmt.Println(i, "年前春节", preYearCjnl)
-			fmt.Println(i, "年前春节阳历", preYearCjgl)
-			fmt.Println("与", nextYear, "年春节相差天数", day, "____________")
-			result.List = append(result.List, items)
-		}
-	}
-	//合并第五组数据
-	items := new(EdbDataItems)
-	for _, v := range dataList {
-		dataDate := v.DataTime
-		dataDateForm, err := time.Parse(utils.FormatDate, dataDate)
-		if err != nil {
-			return result, err
-		}
-		timestamp := dataDateForm.UnixNano() / 1e6
-		item := new(EdbDataList)
-		item.DataTime = v.DataTime
-		item.EdbInfoId = v.EdbInfoId
-		item.Value = v.Value
-		item.EdbDataId = v.EdbDataId
-		item.DataTimestamp = timestamp
-		items.Items = append(items.Items, item)
-	}
-	result.List = append(result.List, items)
-	return
-}

+ 0 - 135
models/data_manage/gl_data.go

@@ -2,37 +2,8 @@ package data_manage
 
 
 import (
 import (
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/beego/beego/v2/client/orm"
-	"github.com/rdlucklib/rdluck_tools/paging"
 )
 )
 
 
-type GlClassify struct {
-	BreedShortName string `orm:"column(BREED_SHORT_NAME)" description:"分类名称"`
-}
-
-func GetGlSurveyClassify() (items []*GlClassify, err error) {
-	sql := ` SELECT CASE WHEN BREED_SHORT_NAME IS NULL THEN '无' ELSE BREED_SHORT_NAME END BREED_SHORT_NAME  FROM mb_index_main_info GROUP BY BREED_SHORT_NAME ORDER BY BREED_SHORT_NAME ASC `
-	o := orm.NewOrmUsingDB("gl")
-	o.Raw(sql).QueryRows(&items)
-	return
-}
-
-type GlFrequency struct {
-	Frequency string `description:"频度:1-日度 2-周度 3-月度 4-季度 5-年度 99-无固定频率"`
-}
-
-func GetGlFrequencyByClassifyId(breedShortName string) (items []*GlFrequency, err error) {
-	o := orm.NewOrmUsingDB("gl")
-	if breedShortName == "无" {
-		sql := ` SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info WHERE BREED_SHORT_NAME IS NULL GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC `
-		_, err = o.Raw(sql).QueryRows(&items)
-		return
-	} else {
-		sql := ` SELECT FREQUENCY_NAME AS frequency FROM mb_index_main_info WHERE BREED_SHORT_NAME=? GROUP BY FREQUENCY_CODE ORDER BY FREQUENCY_CODE ASC `
-		_, err = o.Raw(sql, breedShortName).QueryRows(&items)
-		return
-	}
-}
-
 type GlIndex struct {
 type GlIndex struct {
 	Id            int    `orm:"column(ID)"`
 	Id            int    `orm:"column(ID)"`
 	IndexCode     string `orm:"column(INDEX_CODE)"`
 	IndexCode     string `orm:"column(INDEX_CODE)"`
@@ -42,115 +13,9 @@ type GlIndex struct {
 	UpdateTime    string `orm:"column(UPDATE_TIME)"`
 	UpdateTime    string `orm:"column(UPDATE_TIME)"`
 }
 }
 
 
-func GetGlIndex(breedShortName, frequency string) (items []*GlIndex, err error) {
-	o := orm.NewOrmUsingDB("gl")
-	if breedShortName == "无" {
-		sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME IS NULL AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
-		_, err = o.Raw(sql, frequency).QueryRows(&items)
-		return
-	} else {
-		sql := ` SELECT * FROM mb_index_main_info WHERE BREED_SHORT_NAME=? AND FREQUENCY_NAME=? ORDER BY INDEX_CODE ASC `
-		_, err = o.Raw(sql, breedShortName, frequency).QueryRows(&items)
-		return
-	}
-}
-
-func GetGlFrequency(productName string) (items []*string, err error) {
-	sql := `SELECT DISTINCT FREQUENCY_NAME FROM mb_index_main_info WHERE BREED_SHORT_NAME=? ORDER BY FIELD(FREQUENCY_NAME,'日度','周度','旬度','月度','季度','半年','年度') `
-	o := orm.NewOrmUsingDB("gl")
-	_, err = o.Raw(sql, productName).QueryRows(&items)
-	return
-}
-
-type GlIndexList struct {
-	Id            int                `orm:"column(ID)"`
-	IndexCode     string             `orm:"column(INDEX_CODE)"`
-	IndexName     string             `orm:"column(INDEX_NAME)"`
-	UnitName      string             `orm:"column(UNIT_NAME)"`
-	FrequencyName string             `orm:"column(FREQUENCY_NAME)"`
-	UpdateTime    string             `orm:"column(UPDATE_TIME)"`
-	Paging        *paging.PagingItem `description:"分页数据"`
-	DataList      []*GlIndexData
-}
-
-type GlIndexData struct {
-	InputValue string `orm:"column(DATA_VALUE)" description:"日期"`
-	DataTime   string `orm:"column(DATA_DATE)" description:"值"`
-}
-
-func GetGlIndexData(indexCode string, startSize, pageSize int) (items []*GlIndexData, err error) {
-	//sql := ` SELECT *  FROM mb_index_main_data WHERE INDEX_CODE=? ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC LIMIT ?,?`
-	sql := ` SELECT * FROM (
-	SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=? AND IS_DELETE=0
-	ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC 
-	)AS t
-	GROUP BY t.DATA_DATE
-	ORDER BY t.DATA_DATE DESC LIMIT ?,? `
-	o := orm.NewOrmUsingDB("gl")
-	_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
-	return
-}
-
 func GetGlIndexByCode(indexCode string) (items *GlIndex, err error) {
 func GetGlIndexByCode(indexCode string) (items *GlIndex, err error) {
 	sql := ` SELECT *  FROM mb_index_main_info WHERE INDEX_CODE=? `
 	sql := ` SELECT *  FROM mb_index_main_info WHERE INDEX_CODE=? `
 	o := orm.NewOrmUsingDB("gl")
 	o := orm.NewOrmUsingDB("gl")
 	err = o.Raw(sql, indexCode).QueryRow(&items)
 	err = o.Raw(sql, indexCode).QueryRow(&items)
 	return
 	return
 }
 }
-
-func GetGlIndexDataCount(indexCode string) (count int, err error) {
-	o := orm.NewOrmUsingDB("gl")
-	sql := `SELECT COUNT(1) AS count FROM (
-			SELECT * FROM (
-				SELECT DISTINCT a.INDEX_CODE,a.DATA_VALUE,a.DATA_DATE FROM mb_index_main_data AS a WHERE INDEX_CODE=? AND IS_DELETE=0
-				ORDER BY DATA_DATE DESC,PUBLISH_TIME DESC 
-				)AS t
-				GROUP BY t.DATA_DATE
-				ORDER BY t.DATA_DATE DESC
-			)AS n `
-	err = o.Raw(sql, indexCode).QueryRow(&count)
-	return
-}
-
-type GlSearchIndex struct {
-	Id             int    `orm:"column(ID)"`
-	IndexCode      string `orm:"column(INDEX_CODE)"`
-	IndexName      string `orm:"column(INDEX_NAME)"`
-	UnitName       string `orm:"column(UNIT_NAME)"`
-	FrequencyName  string `orm:"column(FREQUENCY_NAME)"`
-	UpdateTime     string `orm:"column(UPDATE_TIME)"`
-	BreedShortName string `orm:"column(BREED_SHORT_NAME)"`
-}
-
-// GetGlItemList 模糊查询隆众数据库指标列表
-func GetGlItemList(keyword string) (items []*GlSearchIndex, err error) {
-	o := orm.NewOrmUsingDB("gl")
-	sql := "SELECT * FROM mb_index_main_info WHERE CONCAT(INDEX_NAME,INDEX_CODE) LIKE '%" + keyword + "%'"
-	_, err = o.Raw(sql).QueryRows(&items)
-	return
-
-}
-
-func GetGlDataMaxCount(classifyName string) (count int, err error) {
-	o := orm.NewOrmUsingDB("gl")
-	sql := `SELECT MAX(t.num) AS count FROM (
-				SELECT COUNT(1) AS num  FROM mb_index_main_info AS a
-				INNER JOIN mb_index_main_data AS b ON a.INDEX_CODE=b.INDEX_CODE
-				WHERE a.BREED_SHORT_NAME=?
-				GROUP BY a.INDEX_CODE
-			)AS t `
-	err = o.Raw(sql, classifyName).QueryRow(&count)
-	return
-}
-
-func GetGlDataByCode(indexCode string) (items []*GlIndexData, err error) {
-	o := orm.NewOrmUsingDB("gl")
-	sql := `SELECT
-	* 
-FROM
-	( SELECT * FROM mb_index_main_data WHERE INDEX_CODE = ? GROUP BY UPDATE_TIME DESC, DATA_DATE DESC ) a 
-GROUP BY
-	a.DATA_DATE DESC `
-	_, err = o.Raw(sql, indexCode).QueryRows(&items)
-	return
-}

+ 16 - 6
models/db.go

@@ -43,12 +43,22 @@ func init() {
 	data_db, _ := orm.GetDB("data")
 	data_db, _ := orm.GetDB("data")
 	data_db.SetConnMaxLifetime(10 * time.Minute)
 	data_db.SetConnMaxLifetime(10 * time.Minute)
 
 
-	_ = orm.RegisterDataBase("eta", "mysql", utils.MYSQL_URL_ETA)
-	orm.SetMaxIdleConns("eta", 50)
-	orm.SetMaxOpenConns("eta", 100)
-
-	etaDb, _ := orm.GetDB("eta")
-	etaDb.SetConnMaxLifetime(10 * time.Minute)
+	_ = orm.RegisterDataBase("gl", "mysql", utils.MYSQL_URL_GL)
+	orm.SetMaxIdleConns("gl", 50)
+	orm.SetMaxOpenConns("gl", 100)
+
+	gl, _ := orm.GetDB("gl")
+	gl.SetConnMaxLifetime(10 * time.Minute)
+
+	// 用户主库
+	if utils.MYSQL_WEEKLY_URL != `` && (utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox) {
+		_ = orm.RegisterDataBase("weekly", "mysql", utils.MYSQL_WEEKLY_URL)
+		orm.SetMaxIdleConns("weekly", 50)
+		orm.SetMaxOpenConns("weekly", 100)
+
+		weeklyDb, _ := orm.GetDB("weekly")
+		weeklyDb.SetConnMaxLifetime(10 * time.Minute)
+	}
 
 
 	orm.Debug = true
 	orm.Debug = true
 	orm.DebugLog = orm.NewLog(utils.Binlog)
 	orm.DebugLog = orm.NewLog(utils.Binlog)

+ 4 - 4
models/permission.go

@@ -13,7 +13,7 @@ type ChartPermissionSearchKeyWordMapping struct {
 }
 }
 
 
 func GetPermission(classifyNameSecond string) (items []*ChartPermissionSearchKeyWordMapping, err error) {
 func GetPermission(classifyNameSecond string) (items []*ChartPermissionSearchKeyWordMapping, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.key_word=? `
 	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.key_word=? `
 	_, err = o.Raw(sql, classifyNameSecond).QueryRows(&items)
 	_, err = o.Raw(sql, classifyNameSecond).QueryRows(&items)
 	return
 	return
@@ -22,14 +22,14 @@ func GetPermission(classifyNameSecond string) (items []*ChartPermissionSearchKey
 func AddChartPermissionChapterMapping(chartPermissionId int, reportId int64) (err error) {
 func AddChartPermissionChapterMapping(chartPermissionId int, reportId int64) (err error) {
 	sql := `INSERT INTO chart_permission_chapter_mapping (chart_permission_id, report_chapter_type_id,research_type)
 	sql := `INSERT INTO chart_permission_chapter_mapping (chart_permission_id, report_chapter_type_id,research_type)
            VALUES(?,?,?)`
            VALUES(?,?,?)`
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	_, err = o.Raw(sql, chartPermissionId, reportId, "rddp").Exec()
 	_, err = o.Raw(sql, chartPermissionId, reportId, "rddp").Exec()
 	return
 	return
 }
 }
 
 
 func RemoveChartPermissionChapterMapping(reportId int64) (err error) {
 func RemoveChartPermissionChapterMapping(reportId int64) (err error) {
 	sql := ` DELETE FROM chart_permission_chapter_mapping WHERE research_type=? AND report_chapter_type_id=? `
 	sql := ` DELETE FROM chart_permission_chapter_mapping WHERE research_type=? AND report_chapter_type_id=? `
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	_, err = o.Raw(sql, "rddp", reportId).Exec()
 	_, err = o.Raw(sql, "rddp", reportId).Exec()
 	return
 	return
 }
 }
@@ -40,7 +40,7 @@ type ChartPermissionMappingIdName struct {
 }
 }
 
 
 func GetChartPermissionNameFromMappingByKeyword(keyword string, source string) (list []*ChartPermissionMappingIdName, err error) {
 func GetChartPermissionNameFromMappingByKeyword(keyword string, source string) (list []*ChartPermissionMappingIdName, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := " SELECT b.chart_permission_id AS permission_id,b.permission_name FROM chart_permission_search_key_word_mapping AS a INNER JOIN chart_permission AS b ON a.chart_permission_id = b.chart_permission_id WHERE a.`from` = ? AND a.key_word = ? "
 	sql := " SELECT b.chart_permission_id AS permission_id,b.permission_name FROM chart_permission_search_key_word_mapping AS a INNER JOIN chart_permission AS b ON a.chart_permission_id = b.chart_permission_id WHERE a.`from` = ? AND a.key_word = ? "
 	_, err = o.Raw(sql, source, keyword).QueryRows(&list)
 	_, err = o.Raw(sql, source, keyword).QueryRows(&list)
 
 

+ 3 - 263
models/report.go

@@ -191,21 +191,6 @@ func GetReportById(reportId int) (item *ReportDetail, err error) {
 	return
 	return
 }
 }
 
 
-func GetReportByIds(reportIds string) (list []*ReportDetail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM report WHERE id in ` + reportIds
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
-
-// GetSimpleReportByIds 根据报告ID查询报告基本信息
-func GetSimpleReportByIds(reportIds string) (list []*ReportDetail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT id, title FROM report WHERE id IN (` + reportIds + `)`
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
-
 func GetReportStage(classifyIdFirst, classifyIdSecond int) (count int, err error) {
 func GetReportStage(classifyIdFirst, classifyIdSecond int) (count int, err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	o := orm.NewOrmUsingDB("rddp")
 	sql := ``
 	sql := ``
@@ -502,14 +487,6 @@ func GetReportByReportId(reportId int) (item *Report, err error) {
 	return
 	return
 }
 }
 
 
-// GetReportByOldReportId 根据老报告id主键获取报告
-func GetReportByOldReportId(reportId int) (item *Report, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM report WHERE old_report_id = ?`
-	err = o.Raw(sql, reportId).QueryRow(&item)
-	return
-}
-
 // DeleteDayWeekReportAndChapter 删除晨周报及章节
 // DeleteDayWeekReportAndChapter 删除晨周报及章节
 func DeleteDayWeekReportAndChapter(reportId int) (err error) {
 func DeleteDayWeekReportAndChapter(reportId int) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	o := orm.NewOrmUsingDB("rddp")
@@ -551,26 +528,6 @@ type ReportDetailView struct {
 	ChapterList []*ReportChapter
 	ChapterList []*ReportChapter
 }
 }
 
 
-func GetUnPublishDayReport(startTime time.Time, endTime time.Time) (item *Report, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT
-				*
-			FROM
-				report AS a
-			WHERE
-				a.has_chapter = 1
-			AND a.chapter_type = "day"
-			AND a.state = 1
-			AND (
-				a.create_time BETWEEN ? AND ?
-			)
-			ORDER BY
-				a.create_time DESC
-			LIMIT 1 `
-	err = o.Raw(sql, startTime, endTime).QueryRow(&item)
-	return
-}
-
 type ElasticReportDetail struct {
 type ElasticReportDetail struct {
 	ReportId           int    `description:"报告ID"`
 	ReportId           int    `description:"报告ID"`
 	ReportChapterId    int    `description:"报告章节ID"`
 	ReportChapterId    int    `description:"报告章节ID"`
@@ -597,15 +554,6 @@ func GetLastPublishDayWeekReport(chapterType string) (item *Report, err error) {
 	return
 	return
 }
 }
 
 
-// GetNewReportExist
-func GetNewReportExist(oldReportId int) (item *Report, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT id FROM report WHERE old_report_id = ? LIMIT 1 `
-	err = o.Raw(sql, oldReportId).QueryRow(&item)
-
-	return
-}
-
 // PublishReportAndChapter 发布报告及章节
 // PublishReportAndChapter 发布报告及章节
 func PublishReportAndChapter(reportInfo *Report, publishIds string, unPublishIds string, isPublishReport bool, cols []string) (err error) {
 func PublishReportAndChapter(reportInfo *Report, publishIds string, unPublishIds string, isPublishReport bool, cols []string) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	o := orm.NewOrmUsingDB("rddp")
@@ -638,15 +586,6 @@ func PublishReportAndChapter(reportInfo *Report, publishIds string, unPublishIds
 	return
 	return
 }
 }
 
 
-func GetSyncEmptyVideoReport() (list []*Report, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT id FROM report WHERE old_report_id > 0 AND state = 2 AND chapter_type = "" AND (video_size = "" OR video_play_seconds = "")
-UNION ALL
-SELECT DISTINCT report_id FROM report_chapter WHERE publish_state = 2 AND (video_size = "" OR video_play_seconds = "") `
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
-
 // 发布报告
 // 发布报告
 func PublishReportById(reportId int, publishTime time.Time) (err error) {
 func PublishReportById(reportId int, publishTime time.Time) (err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	o := orm.NewOrmUsingDB("rddp")
@@ -655,181 +594,6 @@ func PublishReportById(reportId int, publishTime time.Time) (err error) {
 	return
 	return
 }
 }
 
 
-// GetCommentReportByReportId 查询有留言的报告列表
-func GetCommentReportByReportId(condition string, pars []interface{}, startSize, pageSize int) (list []*Report, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT
-	id,
-	create_time,
-	title,
-	classify_name_first,
-	classify_id_first,
-	classify_name_second,
-	classify_id_second,
-	state,
-IF
-	( publish_time, publish_time, create_time ) AS publish_time 
-FROM
-	report 
-WHERE
-	1=1
-  `
-	if condition != "" {
-		sql += condition
-	}
-	sql += ` ORDER BY  publish_time DESC , title ASC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
-	return
-}
-
-// GetCommentReportByReportIdOrderBy 查询有留言的报告列表(指定排序)
-func GetCommentReportByReportIdOrderBy(condition string, pars []interface{}, startSize, pageSize int, orderBy string) (list []*Report, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT
-	id,
-	create_time,
-	title,
-	classify_name_first,
-	classify_id_first,
-	classify_name_second,
-	classify_id_second,
-	state,
-IF
-	( publish_time, publish_time, create_time ) AS publish_time 
-FROM
-	report 
-WHERE
-	1=1
-  `
-	if condition != "" {
-		sql += condition
-	}
-	if orderBy == `` {
-		sql += ` ORDER BY  publish_time DESC , title ASC `
-	} else {
-		sql += orderBy
-	}
-	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
-	return
-}
-
-// GetCommentReportTotalByReportId 查询有留言的报告列表总数
-func GetCommentReportTotalByReportId(condition string, pars []interface{}) (total int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT count(*)
-        FROM report WHERE 1=1`
-	if condition != "" {
-		sql += condition
-	}
-	err = o.Raw(sql, pars).QueryRow(&total)
-	return
-}
-
-// 点赞相关的报告列表
-type LikeReportItem struct {
-	ReportId              int       `description:"报告Id"`
-	ReportChapterId       int       `description:"报告章节Id"`
-	ClassifyIdFirst       int       `description:"一级分类id"`
-	ClassifyNameFirst     string    `description:"一级分类名称"`
-	ClassifyIdSecond      int       `description:"二级分类id"`
-	ClassifyNameSecond    string    `description:"二级分类名称"`
-	ReportChapterTypeId   int       `description:"章节类型"`
-	ReportChapterTypeName string    `description:"品种名称"`
-	PublishTime           time.Time `description:"发布时间" `
-	Title                 string    `description:"标题"`
-}
-
-// GetLikeReportByReportIdReportChapterId 获取有被点赞的报告列表
-func GetLikeReportByReportIdReportChapterId(reportIds string, chapterIds string, orderStr string, startSize, pageSize int) (list []*LikeReportItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `( SELECT
-id AS report_id,
-0 AS report_chapter_id,
-classify_id_first,
-classify_id_second,
-classify_name_first,
-classify_name_second,
-0 as report_chapter_type_id,
-"" as report_chapter_type_name,
-publish_time,
-title
-FROM
-	report
-WHERE
-	classify_name_first != "晨报" 
-	AND classify_name_first != "周报"
-	AND id in (` + reportIds + `)
-	)
-UNION
-	
-( SELECT
-report_id,
-report_chapter_id,
-classify_id_first,
-0 as classify_id_second,
-classify_name_first,
-null as classify_name_second,
-type_id as report_chapter_type_id,
-type_name as report_chapter_type_name,
-publish_time,
-title
-FROM
-	report_chapter
-WHERE
-	 report_chapter_id in (` + chapterIds + `)
-	)`
-	if orderStr != "" {
-		sql += ` ORDER BY FIELD(CONCAT(report_id, "-",report_chapter_id),` + orderStr + `)`
-	} else {
-		sql += ` ORDER BY  publish_time DESC, report_id Desc`
-	}
-	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&list)
-	return
-}
-
-// GetLikeReportTotalByReportIdReportChapterId 获取有被点赞的报告列表总数
-func GetLikeReportTotalByReportIdReportChapterId(reportIds string, chapterIds string) (total int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `select count(*) from (( SELECT
-id AS report_id,
-0 AS report_chapter_id,
-classify_id_first,
-classify_id_second,
-classify_name_first,
-classify_name_second,
-0 as report_chapter_type_id,
-publish_time,
-title
-FROM
-	report
-WHERE
-	classify_name_first != "晨报" 
-	AND classify_name_first != "周报"
-	AND id in (` + reportIds + `)
-	)
-UNION
-	
-( SELECT
-report_id,
-report_chapter_id,
-classify_id_first,
-0 as classify_id_second,
-classify_name_first,
-null as classify_name_second,
-type_id as report_chapter_type_id,
-publish_time,
-title
-FROM
-	report_chapter
-WHERE
-report_chapter_id in (` + chapterIds + `)
-	)) r`
-	err = o.Raw(sql).QueryRow(&total)
-	return
-}
-
 // GetPageReportList 分页获取报告列表
 // GetPageReportList 分页获取报告列表
 func GetPageReportList(condition string, pars []interface{}, startSize, pageSize int) (total int, items []*ReportList, err error) {
 func GetPageReportList(condition string, pars []interface{}, startSize, pageSize int) (total int, items []*ReportList, err error) {
 	o := orm.NewOrmUsingDB("rddp")
 	o := orm.NewOrmUsingDB("rddp")
@@ -864,14 +628,14 @@ type YbPcSuncode struct {
 
 
 // GetYbPcSunCode 获取太阳码
 // GetYbPcSunCode 获取太阳码
 func GetYbPcSunCode(scene, page string) (item *YbPcSuncode, err error) {
 func GetYbPcSunCode(scene, page string) (item *YbPcSuncode, err error) {
-	o := orm.NewOrmUsingDB("default")
+	o := orm.NewOrmUsingDB("weekly")
 	sql := `SELECT * FROM yb_pc_suncode WHERE scene = ? AND code_page = ? `
 	sql := `SELECT * FROM yb_pc_suncode WHERE scene = ? AND code_page = ? `
 	err = o.Raw(sql, scene, page).QueryRow(&item)
 	err = o.Raw(sql, scene, page).QueryRow(&item)
 	return
 	return
 }
 }
 
 
 func AddYbPcSunCode(item *YbPcSuncode) (err error) {
 func AddYbPcSunCode(item *YbPcSuncode) (err error) {
-	o := orm.NewOrmUsingDB("default")
+	o := orm.NewOrmUsingDB("weekly")
 	_, err = o.Insert(item)
 	_, err = o.Insert(item)
 	return
 	return
 }
 }
@@ -885,35 +649,11 @@ type YbSuncodePars struct {
 }
 }
 
 
 func AddYbSuncodePars(item *YbSuncodePars) (err error) {
 func AddYbSuncodePars(item *YbSuncodePars) (err error) {
-	o := orm.NewOrmUsingDB("default")
+	o := orm.NewOrmUsingDB("weekly")
 	_, err = o.Insert(item)
 	_, err = o.Insert(item)
 	return
 	return
 }
 }
 
 
-// UpdateReportSecondClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateReportSecondClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE report SET classify_name_second = ? WHERE classify_id_second = ? "
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	return
-}
-
-// UpdateReportFirstClassifyNameByClassifyId 更新报告分类一级名称字段
-func UpdateReportFirstClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE report SET classify_name_first = ? WHERE classify_id_first = ? "
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	return
-}
-
-// UpdateReportSecondClassifyFirstNameByClassifyId 更新报告二级分类的一级分类名称和id
-func UpdateReportSecondClassifyFirstNameByClassifyId(classifyId, newClassifyId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE report SET classify_name_first = ?, classify_id_first = ? WHERE classify_id_second = ? "
-	_, err = o.Raw(sql, classifyName, newClassifyId, classifyId).Exec()
-	return
-}
-
 // GetEmptyContentSubPPTReport 获取前两章为空的PPT报告
 // GetEmptyContentSubPPTReport 获取前两章为空的PPT报告
 func GetEmptyContentSubPPTReport() (list []*Report, err error) {
 func GetEmptyContentSubPPTReport() (list []*Report, err error) {
 	sql := `SELECT
 	sql := `SELECT

+ 7 - 4
models/report_chapter.go

@@ -1,6 +1,7 @@
 package models
 package models
 
 
 import (
 import (
+	"eta/eta_mobile/utils"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/beego/beego/v2/client/orm"
 	"time"
 	"time"
 )
 )
@@ -199,7 +200,10 @@ func GetReportChapterVideoList(reportId int) (list []*ReportChapterVideoList, er
 }
 }
 
 
 // GetReportChapterVideoListByReportIds 根据报告ID集合获取报告章节音频列表
 // GetReportChapterVideoListByReportIds 根据报告ID集合获取报告章节音频列表
-func GetReportChapterVideoListByReportIds(reportIds string) (list []*ReportChapterVideoList, err error) {
+func GetReportChapterVideoListByReportIds(reportIds []string) (list []*ReportChapterVideoList, err error) {
+	if len(reportIds) == 0 {
+		return
+	}
 	o := orm.NewOrmUsingDB("rddp")
 	o := orm.NewOrmUsingDB("rddp")
 	sql := ` SELECT
 	sql := ` SELECT
 				report_id,
 				report_id,
@@ -210,11 +214,10 @@ func GetReportChapterVideoListByReportIds(reportIds string) (list []*ReportChapt
 			FROM
 			FROM
 				report_chapter
 				report_chapter
 			WHERE
 			WHERE
-				report_id IN (` + reportIds + `) AND publish_state = 2 AND video_url != ""
+				report_id IN (` + utils.GetOrmInReplace(len(reportIds)) + `) AND publish_state = 2 AND video_url != ""
 			ORDER BY
 			ORDER BY
 				report_chapter_id ASC `
 				report_chapter_id ASC `
-	_, err = o.Raw(sql).QueryRows(&list)
-
+	_, err = o.Raw(sql, reportIds).QueryRows(&list)
 	return
 	return
 }
 }
 
 

+ 1 - 1
models/report_chapter_ticker.go

@@ -57,7 +57,7 @@ type DailyBaseColumn struct {
 
 
 // GetDailyBaseColumnList 获取基础列列表
 // GetDailyBaseColumnList 获取基础列列表
 func GetDailyBaseColumnList(keyword string, typeId int) (list []*DailyBaseColumn, err error) {
 func GetDailyBaseColumnList(keyword string, typeId int) (list []*DailyBaseColumn, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := ` SELECT * FROM daily_base_column WHERE 1 = 1 `
 	sql := ` SELECT * FROM daily_base_column WHERE 1 = 1 `
 	pars := make([]interface{}, 0)
 	pars := make([]interface{}, 0)
 	if keyword != "" {
 	if keyword != "" {

+ 7 - 7
models/report_chapter_type.go

@@ -33,7 +33,7 @@ type ReportChapterType struct {
 
 
 // GetReportChapterTypeById 获取章节类型
 // GetReportChapterTypeById 获取章节类型
 func GetReportChapterTypeById(reportChapterTypeId int) (item *ReportChapterType, err error) {
 func GetReportChapterTypeById(reportChapterTypeId int) (item *ReportChapterType, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := ` SELECT * FROM report_chapter_type WHERE report_chapter_type_id = ? `
 	sql := ` SELECT * FROM report_chapter_type WHERE report_chapter_type_id = ? `
 	err = o.Raw(sql, reportChapterTypeId).QueryRow(&item)
 	err = o.Raw(sql, reportChapterTypeId).QueryRow(&item)
 	return
 	return
@@ -41,7 +41,7 @@ func GetReportChapterTypeById(reportChapterTypeId int) (item *ReportChapterType,
 
 
 // GetReportChapterTypeList 获取章节类型列表
 // GetReportChapterTypeList 获取章节类型列表
 func GetReportChapterTypeList() (list []*ReportChapterType, err error) {
 func GetReportChapterTypeList() (list []*ReportChapterType, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := ` SELECT * FROM report_chapter_type WHERE enabled = 1 `
 	sql := ` SELECT * FROM report_chapter_type WHERE enabled = 1 `
 	_, err = o.Raw(sql).QueryRows(&list)
 	_, err = o.Raw(sql).QueryRows(&list)
 	return
 	return
@@ -49,7 +49,7 @@ func GetReportChapterTypeList() (list []*ReportChapterType, err error) {
 
 
 // GetReportChapterTypeListByResearchType 通过报告类型获取章节类型列表
 // GetReportChapterTypeListByResearchType 通过报告类型获取章节类型列表
 func GetReportChapterTypeListByResearchType(researchType string) (list []*ReportChapterType, err error) {
 func GetReportChapterTypeListByResearchType(researchType string) (list []*ReportChapterType, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := ` SELECT * FROM report_chapter_type WHERE research_type = ? AND enabled = 1`
 	sql := ` SELECT * FROM report_chapter_type WHERE research_type = ? AND enabled = 1`
 	_, err = o.Raw(sql, researchType).QueryRows(&list)
 	_, err = o.Raw(sql, researchType).QueryRows(&list)
 	return
 	return
@@ -57,7 +57,7 @@ func GetReportChapterTypeListByResearchType(researchType string) (list []*Report
 
 
 // GetAllReportChapterTypeListByResearchType 通过报告类型获取章节类型列表
 // GetAllReportChapterTypeListByResearchType 通过报告类型获取章节类型列表
 func GetAllReportChapterTypeListByResearchType(researchType string) (list []*ReportChapterType, err error) {
 func GetAllReportChapterTypeListByResearchType(researchType string) (list []*ReportChapterType, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := ` SELECT * FROM report_chapter_type WHERE research_type = ?`
 	sql := ` SELECT * FROM report_chapter_type WHERE research_type = ?`
 	_, err = o.Raw(sql, researchType).QueryRows(&list)
 	_, err = o.Raw(sql, researchType).QueryRows(&list)
 	return
 	return
@@ -65,7 +65,7 @@ func GetAllReportChapterTypeListByResearchType(researchType string) (list []*Rep
 
 
 // GetEnableReportChapterTypeList 获取未暂停的章节类型列表
 // GetEnableReportChapterTypeList 获取未暂停的章节类型列表
 func GetEnableReportChapterTypeList(researchType string) (list []*ReportChapterType, err error) {
 func GetEnableReportChapterTypeList(researchType string) (list []*ReportChapterType, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := ` SELECT
 	sql := ` SELECT
 				*
 				*
 			FROM
 			FROM
@@ -95,7 +95,7 @@ type StopUpdateReportChapterTypeResp struct {
 
 
 // GetStopUpdateReportChapterTypeListByResearchType 获取暂停更新章节类型列表
 // GetStopUpdateReportChapterTypeListByResearchType 获取暂停更新章节类型列表
 func GetStopUpdateReportChapterTypeListByResearchType() (list []*ReportChapterType, err error) {
 func GetStopUpdateReportChapterTypeListByResearchType() (list []*ReportChapterType, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := ` SELECT * FROM report_chapter_type WHERE is_set = 1 AND pause_end_time >= ? AND enabled = 1 `
 	sql := ` SELECT * FROM report_chapter_type WHERE is_set = 1 AND pause_end_time >= ? AND enabled = 1 `
 	_, err = o.Raw(sql, time.Now().Format(utils.FormatDate)).QueryRows(&list)
 	_, err = o.Raw(sql, time.Now().Format(utils.FormatDate)).QueryRows(&list)
 	return
 	return
@@ -103,7 +103,7 @@ func GetStopUpdateReportChapterTypeListByResearchType() (list []*ReportChapterTy
 
 
 // GetDisableUpdateReportChapterTypeListByResearchType 获取停止更新的章节类型列表
 // GetDisableUpdateReportChapterTypeListByResearchType 获取停止更新的章节类型列表
 func GetDisableUpdateReportChapterTypeListByResearchType() (list []*ReportChapterType, err error) {
 func GetDisableUpdateReportChapterTypeListByResearchType() (list []*ReportChapterType, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := ` SELECT * FROM report_chapter_type WHERE enabled = 0`
 	sql := ` SELECT * FROM report_chapter_type WHERE enabled = 0`
 	_, err = o.Raw(sql).QueryRows(&list)
 	_, err = o.Raw(sql).QueryRows(&list)
 	return
 	return

+ 1 - 1
models/report_chapter_type_permission.go

@@ -17,7 +17,7 @@ type ReportChapterTypePermission struct {
 
 
 // GetChapterTypePermissionByTypeIdAndResearchType 根据章节类型ID及研报类型获取章节类型权限列表
 // GetChapterTypePermissionByTypeIdAndResearchType 根据章节类型ID及研报类型获取章节类型权限列表
 func GetChapterTypePermissionByTypeIdAndResearchType(typeId int, researchType string) (list []*ReportChapterTypePermission, err error) {
 func GetChapterTypePermissionByTypeIdAndResearchType(typeId int, researchType string) (list []*ReportChapterTypePermission, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := ` SELECT * FROM report_chapter_type_permission WHERE report_chapter_type_id = ? AND research_type = ? ORDER BY chart_permission_id ASC `
 	sql := ` SELECT * FROM report_chapter_type_permission WHERE report_chapter_type_id = ? AND research_type = ? ORDER BY chart_permission_id ASC `
 	_, err = o.Raw(sql, typeId, researchType).QueryRows(&list)
 	_, err = o.Raw(sql, typeId, researchType).QueryRows(&list)
 	return
 	return

+ 2 - 2
models/sandbox/sandbox.go

@@ -24,7 +24,7 @@ type Sandbox struct {
 
 
 // Update 沙盘字段变更
 // Update 沙盘字段变更
 func (sandbox *Sandbox) Update(cols []string) (err error) {
 func (sandbox *Sandbox) Update(cols []string) (err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("data")
 	_, err = o.Update(sandbox, cols...)
 	_, err = o.Update(sandbox, cols...)
 	return
 	return
 }
 }
@@ -52,7 +52,7 @@ type SandboxListItem struct {
 
 
 // GetList 获取沙盘列表页
 // GetList 获取沙盘列表页
 func GetList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*SandboxListItem, err error) {
 func GetList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*SandboxListItem, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("data")
 	sql := "select a.sandbox_id,a.name,a.chart_permission_id,a.chart_permission_name,a.curr_version,a.code,a.pic_url,a.op_user_id,a.op_user_name,a.modify_time,a.create_time,b.version_code from sandbox as a join sandbox_version b on a.sandbox_id=b.sandbox_id and a.curr_version=b.curr_version where 1=1 AND a.is_delete = 0 "
 	sql := "select a.sandbox_id,a.name,a.chart_permission_id,a.chart_permission_name,a.curr_version,a.code,a.pic_url,a.op_user_id,a.op_user_name,a.modify_time,a.create_time,b.version_code from sandbox as a join sandbox_version b on a.sandbox_id=b.sandbox_id and a.curr_version=b.curr_version where 1=1 AND a.is_delete = 0 "
 	sql += condition
 	sql += condition
 	sql += ` order by a.modify_time desc,a.sandbox_id desc`
 	sql += ` order by a.modify_time desc,a.sandbox_id desc`

+ 2 - 2
models/search_key_word.go

@@ -18,7 +18,7 @@ type SearchKeyWord struct {
 
 
 // AddTrendTagKeyWord 新增趋势标签关键词
 // AddTrendTagKeyWord 新增趋势标签关键词
 func AddTrendTagKeyWord(trend string) (err error) {
 func AddTrendTagKeyWord(trend string) (err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := " REPLACE INTO search_key_word (`key_word`,`from`) values (?,'trend') "
 	sql := " REPLACE INTO search_key_word (`key_word`,`from`) values (?,'trend') "
 	_, err = o.Raw(sql, trend).Exec()
 	_, err = o.Raw(sql, trend).Exec()
 
 
@@ -27,7 +27,7 @@ func AddTrendTagKeyWord(trend string) (err error) {
 
 
 // GetKeyWordListByFrom 根据来源获取搜索关键词列表
 // GetKeyWordListByFrom 根据来源获取搜索关键词列表
 func GetKeyWordListByFrom(from string) (list []*SearchKeyWord, err error) {
 func GetKeyWordListByFrom(from string) (list []*SearchKeyWord, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := " SELECT * FROM search_key_word WHERE `from` = ? ORDER BY created_time ASC "
 	sql := " SELECT * FROM search_key_word WHERE `from` = ? ORDER BY created_time ASC "
 	_, err = o.Raw(sql, from).QueryRows(&list)
 	_, err = o.Raw(sql, from).QueryRows(&list)
 
 

+ 8 - 8
models/semantic_analysis/sa_compare.go

@@ -50,7 +50,7 @@ func (m *SaCompare) TableName() string {
 }
 }
 
 
 func (m *SaCompare) Create() (err error) {
 func (m *SaCompare) Create() (err error) {
-	o := orm.NewOrmUsingDB("eta")
+	o := orm.NewOrm()
 	id, err := o.Insert(m)
 	id, err := o.Insert(m)
 	if err != nil {
 	if err != nil {
 		return
 		return
@@ -60,27 +60,27 @@ func (m *SaCompare) Create() (err error) {
 }
 }
 
 
 func (m *SaCompare) Update(cols []string) (err error) {
 func (m *SaCompare) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("eta")
+	o := orm.NewOrm()
 	_, err = o.Update(m, cols...)
 	_, err = o.Update(m, cols...)
 	return
 	return
 }
 }
 
 
 func (m *SaCompare) Del() (err error) {
 func (m *SaCompare) Del() (err error) {
-	o := orm.NewOrmUsingDB("eta")
+	o := orm.NewOrm()
 	sql := `DELETE FROM sa_compare WHERE sa_compare_id = ? LIMIT 1`
 	sql := `DELETE FROM sa_compare WHERE sa_compare_id = ? LIMIT 1`
 	_, err = o.Raw(sql, m.SaCompareId).Exec()
 	_, err = o.Raw(sql, m.SaCompareId).Exec()
 	return
 	return
 }
 }
 
 
 func (m *SaCompare) GetItemById(id int) (err error) {
 func (m *SaCompare) GetItemById(id int) (err error) {
-	o := orm.NewOrmUsingDB("eta")
+	o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare WHERE sa_compare_id = ? LIMIT 1`
 	sql := `SELECT * FROM sa_compare WHERE sa_compare_id = ? LIMIT 1`
 	err = o.Raw(sql, id).QueryRow(&m)
 	err = o.Raw(sql, id).QueryRow(&m)
 	return
 	return
 }
 }
 
 
 func (m *SaCompare) GetItemByCondition(condition string, pars []interface{}) (err error) {
 func (m *SaCompare) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrmUsingDB("eta")
+	o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare WHERE 1=1 `
 	sql := `SELECT * FROM sa_compare WHERE 1=1 `
 	sql += condition
 	sql += condition
 	sql += ` LIMIT 1`
 	sql += ` LIMIT 1`
@@ -89,14 +89,14 @@ func (m *SaCompare) GetItemByCondition(condition string, pars []interface{}) (er
 }
 }
 
 
 func (m *SaCompare) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
 func (m *SaCompare) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("eta")
+	o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
 	err = o.Raw(sql, pars).QueryRow(&count)
 	err = o.Raw(sql, pars).QueryRow(&count)
 	return
 	return
 }
 }
 
 
 func (m *SaCompare) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaCompare, err error) {
 func (m *SaCompare) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaCompare, err error) {
-	o := orm.NewOrmUsingDB("eta")
+	o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 	if len(fieldArr) == 0 {
 		fields = `*`
 		fields = `*`
@@ -111,7 +111,7 @@ func (m *SaCompare) GetItemsByCondition(condition string, pars []interface{}, fi
 }
 }
 
 
 func (m *SaCompare) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaCompare, err error) {
 func (m *SaCompare) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaCompare, err error) {
-	o := orm.NewOrmUsingDB("eta")
+	o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 	if len(fieldArr) == 0 {
 		fields = `*`
 		fields = `*`

+ 4 - 4
models/system/sys_admin.go

@@ -42,14 +42,14 @@ type AdminItem struct {
 
 
 func GetSysAdminByName(adminName string) (item *Admin, err error) {
 func GetSysAdminByName(adminName string) (item *Admin, err error) {
 	sql := `SELECT * FROM admin WHERE admin_name=? `
 	sql := `SELECT * FROM admin WHERE admin_name=? `
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	err = o.Raw(sql, adminName).QueryRow(&item)
 	err = o.Raw(sql, adminName).QueryRow(&item)
 	return
 	return
 }
 }
 
 
 func GetSysAdminById(adminId int) (item *Admin, err error) {
 func GetSysAdminById(adminId int) (item *Admin, err error) {
 	sql := `SELECT * FROM admin WHERE admin_id=? `
 	sql := `SELECT * FROM admin WHERE admin_id=? `
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	err = o.Raw(sql, adminId).QueryRow(&item)
 	err = o.Raw(sql, adminId).QueryRow(&item)
 	return
 	return
 }
 }
@@ -60,13 +60,13 @@ func GetSysAdminByIdSlice(adminIdList []string) (items []*Admin, err error) {
 		return
 		return
 	}
 	}
 	sql := `SELECT * FROM admin WHERE admin_id in (` + strings.Join(adminIdList, ",") + `) `
 	sql := `SELECT * FROM admin WHERE admin_id in (` + strings.Join(adminIdList, ",") + `) `
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	_, err = o.Raw(sql).QueryRows(&items)
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 	return
 }
 }
 
 
 func GetAdminByGroupId(groupId int) (items []*AdminItem, err error) {
 func GetAdminByGroupId(groupId int) (items []*AdminItem, err error) {
-	o := orm.NewOrm()
+	o := orm.NewOrmUsingDB("weekly")
 	sql := `SELECT * FROM admin WHERE group_id=? ORDER BY created_time DESC`
 	sql := `SELECT * FROM admin WHERE group_id=? ORDER BY created_time DESC`
 	_, err = o.Raw(sql, groupId).QueryRows(&items)
 	_, err = o.Raw(sql, groupId).QueryRows(&items)
 	return
 	return

+ 6 - 6
models/system/sys_session.go

@@ -16,9 +16,9 @@ type SysSession struct {
 	LastUpdatedTime time.Time
 	LastUpdatedTime time.Time
 }
 }
 
 
-//新增用户登录session信息
+// 新增用户登录session信息
 func AddSysSession(item *SysSession) (err error) {
 func AddSysSession(item *SysSession) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := orm.NewOrm()
 	lastId, err := o.Insert(item)
 	lastId, err := o.Insert(item)
 	if err != nil {
 	if err != nil {
 		return
 		return
@@ -29,22 +29,22 @@ func AddSysSession(item *SysSession) (err error) {
 
 
 func GetSysSessionBySysUserId(sysUserId int) (item *SysSession, err error) {
 func GetSysSessionBySysUserId(sysUserId int) (item *SysSession, err error) {
 	sql := `SELECT * FROM sys_session WHERE sys_user_id=? AND expired_time> NOW() ORDER BY expired_time DESC LIMIT 1 `
 	sql := `SELECT * FROM sys_session WHERE sys_user_id=? AND expired_time> NOW() ORDER BY expired_time DESC LIMIT 1 `
-	o := orm.NewOrmUsingDB("rddp")
+	o := orm.NewOrm()
 	err = o.Raw(sql, sysUserId).QueryRow(&item)
 	err = o.Raw(sql, sysUserId).QueryRow(&item)
 	return
 	return
 }
 }
 
 
 func GetSysSessionByToken(token string) (item *SysSession, err error) {
 func GetSysSessionByToken(token string) (item *SysSession, err error) {
 	sql := `SELECT * FROM sys_session WHERE access_token=? AND expired_time> NOW() ORDER BY expired_time DESC LIMIT 1 `
 	sql := `SELECT * FROM sys_session WHERE access_token=? AND expired_time> NOW() ORDER BY expired_time DESC LIMIT 1 `
-	o := orm.NewOrmUsingDB("rddp")
+	o := orm.NewOrm()
 	err = o.Raw(sql, token).QueryRow(&item)
 	err = o.Raw(sql, token).QueryRow(&item)
 	return
 	return
 }
 }
 
 
-//过期掉用户token
+// 过期掉用户token
 func ExpiredSysSessionByAdminId(adminId int) (err error) {
 func ExpiredSysSessionByAdminId(adminId int) (err error) {
 	sql := `update sys_session set expired_time = NOW()  WHERE sys_user_id=? `
 	sql := `update sys_session set expired_time = NOW()  WHERE sys_user_id=? `
-	o := orm.NewOrmUsingDB("rddp")
+	o := orm.NewOrm()
 	_, err = o.Raw(sql, adminId).Exec()
 	_, err = o.Raw(sql, adminId).Exec()
 	return
 	return
 }
 }

+ 8 - 4
models/user_view_history.go

@@ -1,6 +1,7 @@
 package models
 package models
 
 
 import (
 import (
+	"eta/eta_mobile/utils"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/beego/beego/v2/client/orm"
 )
 )
 
 
@@ -11,8 +12,11 @@ type ResearchReportViewPUV struct {
 }
 }
 
 
 // GetPUVByResearchReportIds 通过报告IDs获取老报告PV、UV
 // GetPUVByResearchReportIds 通过报告IDs获取老报告PV、UV
-func GetPUVByResearchReportIds(reportIds string) (list []*ResearchReportViewPUV, err error) {
-	o := orm.NewOrm()
+func GetPUVByResearchReportIds(reportIds []string) (list []*ResearchReportViewPUV, err error) {
+	if len(reportIds) == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("weekly")
 	sql := `SELECT
 	sql := `SELECT
 				research_report_id,
 				research_report_id,
 				COUNT(1) AS pv,
 				COUNT(1) AS pv,
@@ -20,9 +24,9 @@ func GetPUVByResearchReportIds(reportIds string) (list []*ResearchReportViewPUV,
 			FROM
 			FROM
 				user_view_history
 				user_view_history
 			WHERE
 			WHERE
-				research_report_id IN (` + reportIds + `)
+				research_report_id IN (` + utils.GetOrmInReplace(len(reportIds)) + `)
 			GROUP BY
 			GROUP BY
 				research_report_id`
 				research_report_id`
-	_, err = o.Raw(sql).QueryRows(&list)
+	_, err = o.Raw(sql, reportIds).QueryRows(&list)
 	return
 	return
 }
 }

+ 2 - 2
models/wechat_send_msg.go

@@ -11,7 +11,7 @@ func GetOpenIdArr() (items []string, err error) {
 		INNER JOIN user_record  AS ur ON wu.user_id=ur.user_id
 		INNER JOIN user_record  AS ur ON wu.user_id=ur.user_id
           WHERE ur.open_id != "" AND ur.subscribe=1 AND ur.create_platform=1 AND  d.status IN('正式','试用','永续')
           WHERE ur.open_id != "" AND ur.subscribe=1 AND ur.create_platform=1 AND  d.status IN('正式','试用','永续')
          ORDER BY FIELD(c.company_id, 16) desc, ur.user_record_id asc`
          ORDER BY FIELD(c.company_id, 16) desc, ur.user_record_id asc`
-	_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
+	_, err = orm.NewOrmUsingDB("weekly").Raw(sql).QueryRows(&items)
 	return
 	return
 }
 }
 
 
@@ -27,6 +27,6 @@ func GetOpenIdArrByClassifyNameSecond(classifyNameSecond string) (items []string
 			AND g.from='rddp'
 			AND g.from='rddp'
 			AND g.key_word=?
 			AND g.key_word=?
 			ORDER BY FIELD(c.company_id, 16) DESC, ur.user_record_id ASC  `
 			ORDER BY FIELD(c.company_id, 16) DESC, ur.user_record_id ASC  `
-	_, err = orm.NewOrm().Raw(sql, classifyNameSecond).QueryRows(&items)
+	_, err = orm.NewOrmUsingDB("weekly").Raw(sql, classifyNameSecond).QueryRows(&items)
 	return
 	return
 }
 }

+ 12 - 2
services/oss.go

@@ -148,6 +148,10 @@ type STSToken struct {
 	AccessKeySecret string
 	AccessKeySecret string
 	SecurityToken   string
 	SecurityToken   string
 	ExpiredTime     string
 	ExpiredTime     string
+	RegionId        string
+	Bucketname      string
+	Endpoint        string
+	Imghost         string
 }
 }
 
 
 // GetOssSTSToken 获取STSToken
 // GetOssSTSToken 获取STSToken
@@ -210,18 +214,20 @@ func NewSTSToken() (item *STSToken, err error) {
 		}
 		}
 	}()
 	}()
 	item = new(STSToken)
 	item = new(STSToken)
-	client, e := sts.NewClientWithAccessKey(utils.RegionId, utils.RAMAccessKeyId, utils.RAMAccessKeySecret)
+	client, e := sts.NewClientWithAccessKey("cn-shanghai", utils.RAMAccessKeyId, utils.RAMAccessKeySecret)
 	if e != nil {
 	if e != nil {
 		err = errors.New("NewSTSToken NewClient Err: " + e.Error())
 		err = errors.New("NewSTSToken NewClient Err: " + e.Error())
 		return
 		return
 	}
 	}
 	request := sts.CreateAssumeRoleRequest()
 	request := sts.CreateAssumeRoleRequest()
-	request.Scheme = "https"
+	request.Scheme = utils.AliStsScheme
 	request.RegionId = utils.RegionId
 	request.RegionId = utils.RegionId
 	request.RoleArn = utils.RoleArn
 	request.RoleArn = utils.RoleArn
 	now := time.Now().Format(utils.FormatDateTimeUnSpace)
 	now := time.Now().Format(utils.FormatDateTimeUnSpace)
 	request.RoleSessionName = utils.RoleSessionName + now
 	request.RoleSessionName = utils.RoleSessionName + now
 	request.DurationSeconds = "3600"
 	request.DurationSeconds = "3600"
+	request.ConnectTimeout = 300 * time.Second
+	request.ReadTimeout = 300 * time.Second
 
 
 	response, e := client.AssumeRole(request)
 	response, e := client.AssumeRole(request)
 	if e != nil {
 	if e != nil {
@@ -235,6 +241,10 @@ func NewSTSToken() (item *STSToken, err error) {
 		t, _ := time.Parse(time.RFC3339, response.Credentials.Expiration)
 		t, _ := time.Parse(time.RFC3339, response.Credentials.Expiration)
 		expiration := t.In(time.Local)
 		expiration := t.In(time.Local)
 		item.ExpiredTime = expiration.Format(utils.FormatDateTime)
 		item.ExpiredTime = expiration.Format(utils.FormatDateTime)
+		item.RegionId = utils.RegionId
+		item.Bucketname = utils.Bucketname
+		item.Endpoint = utils.Imghost
+		item.Imghost = utils.Imghost
 	}
 	}
 	return
 	return
 }
 }

+ 0 - 49
services/ppt2img/ppt2img.go

@@ -1,49 +0,0 @@
-package ppt2img
-
-import (
-	"encoding/json"
-	"errors"
-	"eta/eta_mobile/utils"
-	"fmt"
-	"github.com/rdlucklib/rdluck_tools/http"
-<<<<<<< HEAD
-	"eta/eta_mobile/utils"
-=======
->>>>>>> eta/1.4
-)
-
-type Ppt2ImgResponse struct {
-	Ret         int
-	Msg         string
-	ErrMsg      string
-	ErrCode     string
-	Data        []string
-	Success     bool `description:"true 执行成功,false 执行失败"`
-	IsSendEmail bool `description:"true 发送邮件,false 不发送邮件"`
-}
-
-// Ppt2Img ppt转图片
-// @params pptUrl ppt的在线url
-func Ppt2Img(pptUrl string) (resourceUrlList []string, err error) {
-	params := make(map[string]interface{})
-	params["PptUrl"] = pptUrl
-	param, err := json.Marshal(params)
-	if err != nil {
-		utils.FileLog.Info("Ppt2Img json.Marshal Err:" + err.Error())
-		return
-	}
-
-	body, err := http.Post(utils.Ppt2ImageUrl, string(param))
-	var result Ppt2ImgResponse
-	err = json.Unmarshal(body, &result)
-	if err != nil {
-		fmt.Println("err:" + err.Error())
-		return
-	}
-	if result.Ret != 200 {
-		err = errors.New("获取token失败,Err:" + result.Msg)
-		return
-	}
-	resourceUrlList = result.Data
-	return
-}

+ 93 - 0
services/public_api/base_public_api.go

@@ -0,0 +1,93 @@
+package public_api
+
+import (
+	"encoding/json"
+	"errors"
+	"eta/eta_mobile/models"
+	"eta/eta_mobile/services/alarm_msg"
+	"eta/eta_mobile/utils"
+	"fmt"
+	"io/ioutil"
+	"net/http"
+	"strings"
+)
+
+// SendTemplateMsg 发送微信模板消息
+func SendTemplateMsg(postData string) (err error) {
+	_, err = post(utils.SendWxTemplateMsgUrl, postData)
+	if err != nil {
+		alarm_msg.SendAlarmMsg("SendTemplateMsg http.NewRequest Err:"+err.Error(), 1)
+		return
+	}
+	return
+}
+
+// ReportChapterReq 报告章节id
+type ReportChapterReq struct {
+	ReportChapterId int `description:"报告章节ID"`
+}
+
+// HandleVideoDecibel 处理音频
+func HandleVideoDecibel(reportChapterId int) (err error) {
+	if utils.HandleVideoDecibelUrl == `` {
+		// 处理音频的地址未配置的话,直接返回
+		return
+	}
+	postData := ReportChapterReq{
+		ReportChapterId: reportChapterId,
+	}
+	postDataByte, err := json.Marshal(postData)
+	if err != nil {
+		alarm_msg.SendAlarmMsg("HandleVideoDecibel json.Marshal Err:"+err.Error(), 1)
+		return err
+	}
+	_, err = post(utils.HandleVideoDecibelUrl, string(postDataByte))
+	if err != nil {
+		alarm_msg.SendAlarmMsg("HandleVideoDecibel json.Marshal Err:"+err.Error(), 1)
+		return err
+	}
+	return
+}
+
+type BaseResponse struct {
+	Ret         int
+	Msg         string
+	ErrMsg      string
+	ErrCode     string
+	Data        interface{}
+	Success     bool `description:"true 执行成功,false 执行失败"`
+	IsSendEmail bool `json:"-" description:"true 发送邮件,false 不发送邮件"`
+	IsAddLog    bool `json:"-" description:"true 新增操作日志,false 不新增操作日志" `
+}
+
+func post(postUrl, postData string) (result *models.BaseResponse, err error) {
+	body := ioutil.NopCloser(strings.NewReader(postData))
+	client := &http.Client{}
+	req, err := http.NewRequest("POST", postUrl, body)
+	if err != nil {
+		alarm_msg.SendAlarmMsg("post public_api http.NewRequest Err:"+err.Error(), 1)
+		return
+	}
+	contentType := "application/json;charset=utf-8"
+	req.Header.Set("Content-Type", contentType)
+	req.Header.Set("Authorization", utils.SendTemplateMsgAuthorization)
+	resp, err := client.Do(req)
+	if err != nil {
+		fmt.Println("http client.Do Err:" + err.Error())
+		return
+	}
+	defer resp.Body.Close()
+	b, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		return
+	}
+	result = new(models.BaseResponse)
+	err = json.Unmarshal(b, &result)
+	if err != nil {
+		return
+	}
+	if result.Ret != 200 {
+		err = errors.New(string(b))
+	}
+	return
+}

+ 23 - 9
services/report.go

@@ -7,6 +7,7 @@ import (
 	"eta/eta_mobile/models/company"
 	"eta/eta_mobile/models/company"
 	"eta/eta_mobile/models/system"
 	"eta/eta_mobile/models/system"
 	"eta/eta_mobile/services/alarm_msg"
 	"eta/eta_mobile/services/alarm_msg"
+	"eta/eta_mobile/services/public_api"
 	"eta/eta_mobile/utils"
 	"eta/eta_mobile/utils"
 	"fmt"
 	"fmt"
 	"github.com/PuerkitoBio/goquery"
 	"github.com/PuerkitoBio/goquery"
@@ -45,6 +46,10 @@ func GetReportContentSub(content string) (contentSub string, err error) {
 
 
 // PublishDayWeekReport 发布晨周报
 // PublishDayWeekReport 发布晨周报
 func PublishDayWeekReport(reportId int) (tips string, err error) {
 func PublishDayWeekReport(reportId int) (tips string, err error) {
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		return
+	}
+
 	report, err := models.GetReportByReportId(reportId)
 	report, err := models.GetReportByReportId(reportId)
 	if err != nil {
 	if err != nil {
 		return
 		return
@@ -219,16 +224,18 @@ func UpdateReportEs(reportId int, publishState int) (err error) {
 			}
 			}
 		}
 		}
 	} else {
 	} else {
-		permissionList, tmpErr := models.GetChartPermissionNameFromMappingByKeyword(reportInfo.ClassifyNameSecond, "rddp")
-		if tmpErr != nil {
-			return
-		}
-		categoryArr := make([]string, 0)
-		for i := 0; i < len(permissionList); i++ {
-			categoryArr = append(categoryArr, permissionList[i].PermissionName)
+		if utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox {
+			permissionList, tmpErr := models.GetChartPermissionNameFromMappingByKeyword(reportInfo.ClassifyNameSecond, "rddp")
+			if tmpErr != nil {
+				return
+			}
+			categoryArr := make([]string, 0)
+			for i := 0; i < len(permissionList); i++ {
+				categoryArr = append(categoryArr, permissionList[i].PermissionName)
+			}
+			aliasArr, _ := addCategoryAliasToArr(categoryArr)
+			categories = strings.Join(aliasArr, ",")
 		}
 		}
-		aliasArr, _ := addCategoryAliasToArr(categoryArr)
-		categories = strings.Join(aliasArr, ",")
 	}
 	}
 
 
 	// 新增报告ES
 	// 新增报告ES
@@ -699,3 +706,10 @@ func UpdateReportEditMark(reportId, nowUserId, status int, nowUserName string) (
 	}
 	}
 	return
 	return
 }
 }
+
+// HandleVideoDecibel 处理报告中的音频文件
+func HandleVideoDecibel(chapterInfo *models.ReportChapter) {
+	public_api.HandleVideoDecibel(chapterInfo.ReportChapterId)
+
+	return
+}

+ 43 - 6
services/video.go

@@ -9,6 +9,7 @@ import (
 	"eta/eta_mobile/models"
 	"eta/eta_mobile/models"
 	"eta/eta_mobile/services/alarm_msg"
 	"eta/eta_mobile/services/alarm_msg"
 	"eta/eta_mobile/utils"
 	"eta/eta_mobile/utils"
+	"fmt"
 	"github.com/PuerkitoBio/goquery"
 	"github.com/PuerkitoBio/goquery"
 	"github.com/kgiannakakis/mp3duration/src/mp3duration"
 	"github.com/kgiannakakis/mp3duration/src/mp3duration"
 	"html"
 	"html"
@@ -28,6 +29,24 @@ func CreateVideo(report *models.ReportDetail) (err error) {
 			//go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "Err:"+err.Error(), utils.EmailSendToUsers)
 			//go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "Err:"+err.Error(), utils.EmailSendToUsers)
 		}
 		}
 	}()
 	}()
+
+	// 获取基础配置, 若未配置则直接返回
+	conf, e := models.GetBusinessConf()
+	if e != nil {
+		err = fmt.Errorf("获取基础配置失败, Err: " + e.Error())
+		return
+	}
+	if conf[models.BusinessConfUseXf] != "true" {
+		return
+	}
+	if conf[models.BusinessConfXfAppid] == "" || conf[models.BusinessConfXfApiKey] == "" || conf[models.BusinessConfXfApiSecret] == "" || conf[models.BusinessConfXfVcn] == "" {
+		return
+	}
+	var xfReq XfParams
+	xfReq.XfAPPID = conf[models.BusinessConfXfAppid]
+	xfReq.XfAPIKey = conf[models.BusinessConfXfApiKey]
+	xfReq.XfAPISecret = conf[models.BusinessConfXfApiSecret]
+
 	ct, err := time.Parse(utils.FormatDateTime, report.CreateTime)
 	ct, err := time.Parse(utils.FormatDateTime, report.CreateTime)
 	createTime := ct.Format("0102")
 	createTime := ct.Format("0102")
 	videoName := report.Title + "(" + createTime + ")"
 	videoName := report.Title + "(" + createTime + ")"
@@ -42,11 +61,11 @@ func CreateVideo(report *models.ReportDetail) (err error) {
 	}
 	}
 
 
 	param := new(models.XfSendParam)
 	param := new(models.XfSendParam)
-	param.Common.AppId = utils.XfAPPID
+	param.Common.AppId = conf[models.BusinessConfXfAppid]
 	param.Business.Aue = "lame"
 	param.Business.Aue = "lame"
 	param.Business.Sfl = 1
 	param.Business.Sfl = 1
 	param.Business.Auf = "audio/L16;rate=16000"
 	param.Business.Auf = "audio/L16;rate=16000"
-	param.Business.Vcn = utils.XfVcn
+	param.Business.Vcn = conf[models.BusinessConfXfVcn]
 	param.Business.Speed = 50
 	param.Business.Speed = 50
 	param.Business.Volume = 100
 	param.Business.Volume = 100
 	param.Business.Pitch = 50
 	param.Business.Pitch = 50
@@ -70,7 +89,7 @@ func CreateVideo(report *models.ReportDetail) (err error) {
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
-		err = GetXfVideo(result, savePath)
+		err = GetXfVideo(result, savePath, xfReq)
 		if err != nil {
 		if err != nil {
 			err = errors.New("GetXfVideo Err:" + err.Error())
 			err = errors.New("GetXfVideo Err:" + err.Error())
 			utils.FileLog.Error("GetXfVideo err", err.Error())
 			utils.FileLog.Error("GetXfVideo err", err.Error())
@@ -198,6 +217,24 @@ func CreateReportVideo(reportTitle, reportContent, reportTime string) (uploadUrl
 	if reportContent == "" {
 	if reportContent == "" {
 		return
 		return
 	}
 	}
+
+	// 获取基础配置, 若未配置则直接返回
+	conf, e := models.GetBusinessConf()
+	if e != nil {
+		err = fmt.Errorf("获取基础配置失败, Err: " + e.Error())
+		return
+	}
+	if conf[models.BusinessConfUseXf] != "true" {
+		return
+	}
+	if conf[models.BusinessConfXfAppid] == "" || conf[models.BusinessConfXfApiKey] == "" || conf[models.BusinessConfXfApiSecret] == "" || conf[models.BusinessConfXfVcn] == "" {
+		return
+	}
+	var xfReq XfParams
+	xfReq.XfAPPID = conf[models.BusinessConfXfAppid]
+	xfReq.XfAPIKey = conf[models.BusinessConfXfApiKey]
+	xfReq.XfAPISecret = conf[models.BusinessConfXfApiSecret]
+
 	ct, err := time.Parse(utils.FormatDateTime, reportTime)
 	ct, err := time.Parse(utils.FormatDateTime, reportTime)
 	if err != nil {
 	if err != nil {
 		return
 		return
@@ -215,11 +252,11 @@ func CreateReportVideo(reportTitle, reportContent, reportTime string) (uploadUrl
 	}
 	}
 
 
 	param := new(models.XfSendParam)
 	param := new(models.XfSendParam)
-	param.Common.AppId = utils.XfAPPID
+	param.Common.AppId = conf[models.BusinessConfXfAppid]
 	param.Business.Aue = "lame"
 	param.Business.Aue = "lame"
 	param.Business.Sfl = 1
 	param.Business.Sfl = 1
 	param.Business.Auf = "audio/L16;rate=16000"
 	param.Business.Auf = "audio/L16;rate=16000"
-	param.Business.Vcn = utils.XfVcn
+	param.Business.Vcn = conf[models.BusinessConfXfVcn]
 	param.Business.Speed = 50
 	param.Business.Speed = 50
 	param.Business.Volume = 100
 	param.Business.Volume = 100
 	param.Business.Pitch = 50
 	param.Business.Pitch = 50
@@ -243,7 +280,7 @@ func CreateReportVideo(reportTitle, reportContent, reportTime string) (uploadUrl
 		if tmpErr != nil {
 		if tmpErr != nil {
 			return
 			return
 		}
 		}
-		err = GetXfVideo(result, savePath)
+		err = GetXfVideo(result, savePath, xfReq)
 		if err != nil {
 		if err != nil {
 			err = errors.New("GetXfVideo Err:" + err.Error())
 			err = errors.New("GetXfVideo Err:" + err.Error())
 			utils.FileLog.Error("GetXfVideo err", err.Error())
 			utils.FileLog.Error("GetXfVideo err", err.Error())

+ 4 - 0
services/wechat_send_msg.go

@@ -15,6 +15,10 @@ import (
 
 
 // SendMiniProgramReportWxMsg 推送报告微信模板消息-小程序链接
 // SendMiniProgramReportWxMsg 推送报告微信模板消息-小程序链接
 func SendMiniProgramReportWxMsg(reportId int) (err error) {
 func SendMiniProgramReportWxMsg(reportId int) (err error) {
+	if utils.BusinessCode != utils.BusinessCodeRelease && utils.BusinessCode != utils.BusinessCodeSandbox {
+		return
+	}
+
 	var msg string
 	var msg string
 	reportIdStr := strconv.Itoa(reportId)
 	reportIdStr := strconv.Itoa(reportId)
 	defer func() {
 	defer func() {

+ 11 - 5
services/xfyun.go

@@ -14,9 +14,15 @@ import (
 	"github.com/gorilla/websocket"
 	"github.com/gorilla/websocket"
 )
 )
 
 
+type XfParams struct {
+	XfAPPID     string
+	XfAPIKey    string
+	XfAPISecret string
+}
+
 // 科大讯飞,语音合成
 // 科大讯飞,语音合成
-func GetXfVideo(body []byte, savePath string) (err error) {
-	path, err := assembleAuthUrl()
+func GetXfVideo(body []byte, savePath string, req XfParams) (err error) {
+	path, err := assembleAuthUrl(req)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}
@@ -79,7 +85,7 @@ webSocketClose:
 // @hosturl :  like  wss://iat-api.xfyun.cn/v2/iat
 // @hosturl :  like  wss://iat-api.xfyun.cn/v2/iat
 // @apikey : apiKey
 // @apikey : apiKey
 // @apiSecret : apiSecret
 // @apiSecret : apiSecret
-func assembleAuthUrl() (callUrl string, err error) {
+func assembleAuthUrl(req XfParams) (callUrl string, err error) {
 	ul, err := url.Parse(utils.XfHostUrl)
 	ul, err := url.Parse(utils.XfHostUrl)
 	if err != nil {
 	if err != nil {
 		return
 		return
@@ -92,9 +98,9 @@ func assembleAuthUrl() (callUrl string, err error) {
 	sign := strings.Join(signString, "\n")
 	sign := strings.Join(signString, "\n")
 	fmt.Println("sign:", sign)
 	fmt.Println("sign:", sign)
 	//签名结果
 	//签名结果
-	sha := crypt.HmacSha256EncryptToBase64([]byte(sign), []byte(utils.XfAPISecret))
+	sha := crypt.HmacSha256EncryptToBase64([]byte(sign), []byte(req.XfAPISecret))
 	//构建请求参数 此时不需要urlencoding
 	//构建请求参数 此时不需要urlencoding
-	authUrl := fmt.Sprintf("api_key=\"%s\", algorithm=\"%s\", headers=\"%s\", signature=\"%s\"", utils.XfAPIKey,
+	authUrl := fmt.Sprintf("api_key=\"%s\", algorithm=\"%s\", headers=\"%s\", signature=\"%s\"", req.XfAPIKey,
 		"hmac-sha256", "host date request-line", sha)
 		"hmac-sha256", "host date request-line", sha)
 	//将请求参数使用base64编码
 	//将请求参数使用base64编码
 	authorization := base64.StdEncoding.EncodeToString([]byte(authUrl))
 	authorization := base64.StdEncoding.EncodeToString([]byte(authUrl))

+ 28 - 78
utils/config.go

@@ -9,32 +9,26 @@ import (
 )
 )
 
 
 var (
 var (
-	RunMode               string //运行模式
-	MYSQL_URL             string //数据库连接
-	MYSQL_URL_RDDP        string //数据库连接
-	MYSQL_URL_EDB         string
-	MYSQL_URL_DATA        string
-	MYSQL_URL_GL          string
-	MYSQL_LOG_URL         string
-	MYSQL_URL_COMEIN_DATA string // 路演记录数据库
-	MYSQL_URL_ETA         string
+	RunMode          string //运行模式
+	MYSQL_URL        string //数据库连接
+	MYSQL_URL_RDDP   string //数据库连接
+	MYSQL_URL_EDB    string
+	MYSQL_URL_DATA   string
+	MYSQL_URL_GL     string
+	MYSQL_LOG_URL    string
+	MYSQL_WEEKLY_URL string //用户主库
 
 
 	REDIS_CACHE string       //缓存地址
 	REDIS_CACHE string       //缓存地址
 	Rc          *cache.Cache //redis缓存
 	Rc          *cache.Cache //redis缓存
 	Re          error        //redis错误
 	Re          error        //redis错误
 )
 )
 
 
-// SystemType 系统类型; hz:弘则;trial:试用平台;custom:客户
-var SystemType string
-
 // 基础配置
 // 基础配置
 var (
 var (
 	STATIC_DIR       string
 	STATIC_DIR       string
 	DesKey           string // 接口返回加密KEY
 	DesKey           string // 接口返回加密KEY
 	APPNAME          string //项目中文名称
 	APPNAME          string //项目中文名称
 	EmailSendToUsers string // 邮件提醒人员
 	EmailSendToUsers string // 邮件提醒人员
-	// LibreOfficePath LibreOfficePath的地址
-	LibreOfficePath string
 )
 )
 
 
 // 公共api内部服务调用
 // 公共api内部服务调用
@@ -56,9 +50,6 @@ var (
 	// HandleVideoDecibelUrl 处理音频分贝的url
 	// HandleVideoDecibelUrl 处理音频分贝的url
 	HandleVideoDecibelUrl string
 	HandleVideoDecibelUrl string
 
 
-	// Ppt2ImageUrl ppt转图片服务的地址
-	Ppt2ImageUrl string
-
 	// EnglishShareUrl 英文研报群发邮件分享地址
 	// EnglishShareUrl 英文研报群发邮件分享地址
 	EnglishShareUrl string
 	EnglishShareUrl string
 
 
@@ -70,9 +61,7 @@ var (
 var (
 var (
 	TemplateIdByProduct string //产品运行报告通知-模板ID
 	TemplateIdByProduct string //产品运行报告通知-模板ID
 	WxYbAppId           string // 研报小程序appid
 	WxYbAppId           string // 研报小程序appid
-	WxYbId              string // 研报小程序微信原始ID
 	WxYbAppSecret       string // 研报小程序秘钥
 	WxYbAppSecret       string // 研报小程序秘钥
-	WxYbPlatform        int    //弘则研报来源
 )
 )
 
 
 // ES配置
 // ES配置
@@ -91,6 +80,11 @@ var (
 	MY_CHART_INDEX_NAME      string //研究图库(MY ETA)索引
 	MY_CHART_INDEX_NAME      string //研究图库(MY ETA)索引
 )
 )
 
 
+// 科大讯飞--语音合成
+var (
+	XfHostUrl string
+)
+
 // 阿里云配置
 // 阿里云配置
 var (
 var (
 	Bucketname       string
 	Bucketname       string
@@ -113,39 +107,24 @@ var (
 	STSTokenCacheKey   string
 	STSTokenCacheKey   string
 )
 )
 
 
-// 科大讯飞--语音合成
-var (
-	XfSTATUS_FIRST_FRAME    = 0 //第一帧标识
-	XfSTATUS_CONTINUE_FRAME = 1 //中间帧标识
-	XfSTATUS_LAST_FRAME     = 2 //最后一帧标识
-	XfHost                  = "tts-api.xfyun.cn"
-	XfMaxFontSize           = 8000
-	XfAPPID                 string
-	XfAPIKey                string
-	XfAPISecret             string
-	XfHostUrl               string
-	XfOrigin                string
-	XfVcn                   string //发言人
-)
-
 // 阿里云邮箱配置
 // 阿里云邮箱配置
 var (
 var (
-	AliyunEmailAccountName       string
-	AliyunEmailAccessKeyId       string
-	AliyunEmailAccessKeySecret   string
-	AliyunEmailReplyAddress      string
-	AliyunEmailReplyAddressAlias string
+	AliyunEmailAccountName     string
+	AliyunEmailAccessKeyId     string
+	AliyunEmailAccessKeySecret string
 )
 )
 
 
 // 腾讯云邮箱配置
 // 腾讯云邮箱配置
 var (
 var (
-	TencentSDKSecretId  string // 腾讯云主账号SecretId
-	TencentSDKSecretKey string // 腾讯云主账号SecretKey
-
+	TencentSDKSecretId           string // 腾讯云主账号SecretId
+	TencentSDKSecretKey          string // 腾讯云主账号SecretKey
 	TencentEmailFromEmailAddress string // 腾讯云邮件发信地址
 	TencentEmailFromEmailAddress string // 腾讯云邮件发信地址
 	TencentEmailTemplateID       uint64 // 云邮件模板ID
 	TencentEmailTemplateID       uint64 // 云邮件模板ID
 )
 )
 
 
+// BusinessCode 商家编码
+var BusinessCode string
+
 func init() {
 func init() {
 	tmpRunMode, err := web.AppConfig.String("run_mode")
 	tmpRunMode, err := web.AppConfig.String("run_mode")
 	if err != nil {
 	if err != nil {
@@ -181,8 +160,7 @@ func init() {
 	MYSQL_URL_DATA = config["mysql_url_data"]
 	MYSQL_URL_DATA = config["mysql_url_data"]
 	MYSQL_URL_GL = config["mysql_url_gl"]
 	MYSQL_URL_GL = config["mysql_url_gl"]
 	MYSQL_LOG_URL = config["mysql_url_log"]
 	MYSQL_LOG_URL = config["mysql_url_log"]
-	MYSQL_URL_COMEIN_DATA = config["mysql_url_comein_data"]
-	MYSQL_URL_ETA = config["mysql_url_eta"]
+	MYSQL_WEEKLY_URL = config["mysql_url_weekly"]
 
 
 	REDIS_CACHE = config["beego_cache"]
 	REDIS_CACHE = config["beego_cache"]
 	if len(REDIS_CACHE) <= 0 {
 	if len(REDIS_CACHE) <= 0 {
@@ -194,13 +172,6 @@ func init() {
 		panic(Re)
 		panic(Re)
 	}
 	}
 
 
-	// 系统类型
-	systemType, err := web.AppConfig.String("system_type")
-	if err != nil {
-		panic(any("配置文件读取system_type错误 " + err.Error()))
-	}
-	SystemType = systemType
-
 	// 项目中文名称
 	// 项目中文名称
 	appNameCn, err := web.AppConfig.String("app_name_cn")
 	appNameCn, err := web.AppConfig.String("app_name_cn")
 	if err != nil {
 	if err != nil {
@@ -213,14 +184,11 @@ func init() {
 	// 接口返回加密KEY
 	// 接口返回加密KEY
 	DesKey = config["des_key"]
 	DesKey = config["des_key"]
 
 
-	// 服务基本配置
-	{
-		// 邮件提醒人员
-		EmailSendToUsers = config["email_send_to_users"]
+	// 邮件提醒人员
+	EmailSendToUsers = config["email_send_to_users"]
 
 
-		// 静态文件目录
-		STATIC_DIR = config["static_dir"]
-	}
+	// 静态文件目录
+	STATIC_DIR = config["static_dir"]
 
 
 	// 系统内部服务地址
 	// 系统内部服务地址
 	{
 	{
@@ -246,9 +214,6 @@ func init() {
 
 
 		// 报警服务地址
 		// 报警服务地址
 		AlarmMsgUrl = config["alarm_msg_url"]
 		AlarmMsgUrl = config["alarm_msg_url"]
-
-		// ppt 转图片服务地址
-		Ppt2ImageUrl = config["ppt2_image_url"]
 	}
 	}
 
 
 	// ES配置
 	// ES配置
@@ -272,15 +237,7 @@ func init() {
 		//模板消息
 		//模板消息
 		TemplateIdByProduct = config["template_id_by_product"]
 		TemplateIdByProduct = config["template_id_by_product"]
 		WxYbAppId = config["wx_yb_appid"]          //弘则研报小程序
 		WxYbAppId = config["wx_yb_appid"]          //弘则研报小程序
-		WxYbId = config["wx_yb_id"]                // 研报小程序微信原始ID
 		WxYbAppSecret = config["wx_yb_app_secret"] // 研报小程序秘钥
 		WxYbAppSecret = config["wx_yb_app_secret"] // 研报小程序秘钥
-		wxYbPlatformStr := config["wx_yb_platform"]
-		if wxYbPlatformStr != `` {
-			WxYbPlatform, err = strconv.Atoi(wxYbPlatformStr) //弘则研报来源
-			if err != nil {
-				panic(any("配置文件读取wx_yb_platform错误 " + err.Error()))
-			}
-		}
 	}
 	}
 
 
 	// OSS相关
 	// OSS相关
@@ -310,8 +267,6 @@ func init() {
 		AliyunEmailAccountName = config["aliyun_email_account_name"]
 		AliyunEmailAccountName = config["aliyun_email_account_name"]
 		AliyunEmailAccessKeyId = config["aliyun_email_access_key_id"]
 		AliyunEmailAccessKeyId = config["aliyun_email_access_key_id"]
 		AliyunEmailAccessKeySecret = config["aliyun_email_access_key_secret"]
 		AliyunEmailAccessKeySecret = config["aliyun_email_access_key_secret"]
-		AliyunEmailReplyAddress = config["aliyun_email_reply_address"]
-		AliyunEmailReplyAddressAlias = config["aliyun_email_reply_address_alias"]
 	}
 	}
 
 
 	// 腾讯云邮箱配置
 	// 腾讯云邮箱配置
@@ -332,16 +287,11 @@ func init() {
 
 
 	// 科大讯飞
 	// 科大讯飞
 	{
 	{
-
-		XfAPPID = config["xf_appid"]
-		XfAPIKey = config["xf_api_key"]
-		XfAPISecret = config["xf_api_secret"]
 		XfHostUrl = config["xf_host_url"]
 		XfHostUrl = config["xf_host_url"]
-		XfOrigin = config["xf_origin"]
-		XfVcn = config["xf_vcn"]
 	}
 	}
 
 
-	LibreOfficePath = config["libre_office_path"]
+	// 商家编码
+	BusinessCode = config["business_code"]
 
 
 	// 初始化ES
 	// 初始化ES
 	initEs()
 	initEs()

+ 7 - 0
utils/constants.go

@@ -347,6 +347,7 @@ const (
 	SmsNewLoginTplId       = "254663"            // 【弘则研究】您的验证码是XXX,有效期15分钟
 	SmsNewLoginTplId       = "254663"            // 【弘则研究】您的验证码是XXX,有效期15分钟
 )
 )
 
 
+// TODO:2023-0915 聚合短信相关配置在ETA1.0.6版本中被改成了商家配置, 还未上线, 上线后这里也改成配置
 // 聚合短信
 // 聚合短信
 var (
 var (
 	JhGnAppKey = "4c8504c49dd335e99cfd7b6a3a9e2415" //聚合国内AppKey
 	JhGnAppKey = "4c8504c49dd335e99cfd7b6a3a9e2415" //聚合国内AppKey
@@ -354,3 +355,9 @@ var (
 )
 )
 
 
 const LoginCacheTime = 60 // 登录缓存时长, 分钟
 const LoginCacheTime = 60 // 登录缓存时长, 分钟
+
+// 自用商户号
+const (
+	BusinessCodeSandbox = "E2023080700" // 试用平台
+	BusinessCodeRelease = "E2023080900" // 生产环境
+)