Browse Source

Revert "手工数据录入优化-最新日期-详情结构调整"

This reverts commit eb5cb6e6a248889b89f04bc879a84aaf5b04f89b.
gmy 6 months ago
parent
commit
bc911ac41b
3 changed files with 71 additions and 51 deletions
  1. 40 30
      controllers/data_manage/manual_edb.go
  2. 1 1
      go.mod
  3. 30 20
      models/target.go

+ 40 - 30
controllers/data_manage/manual_edb.go

@@ -108,7 +108,7 @@ func (c *ManualEdbController) EdbDetail() {
 			return
 		}
 
-		manualEdbInfo.DataList = dataNextDateTime
+		manualEdbInfo.NextDataTimeList = dataNextDateTime
 	}
 
 	resp := models.TargetDetailResp{
@@ -123,40 +123,50 @@ func (c *ManualEdbController) EdbDetail() {
 }
 
 // 封装指标数据下期时间
-func fillDataNextDateTime(list []*models.Edbdata) ([]*models.Edbdata, error) {
-	if len(list) == 0 {
-		return nil, nil
+func fillDataNextDateTime(list []*models.Edbdata) ([]*models.EdbDataNextDateTime, error) {
+	var nextDataDateTimeList []*models.EdbDataNextDateTime
+	var indexCodes []string
+	for _, item := range list {
+		indexCodes = append(indexCodes, item.TradeCode)
 	}
-	nextDataDateTime := models.Edbdata{}
-	indexCodes := []string{list[0].TradeCode}
 	edbinfoList, err := models.GetEdbinfoListByCodeListByCodeIdList(indexCodes)
 	if err != nil {
 		return nil, err
 	}
-	if len(edbinfoList) == 0 {
-		return list, nil
-	}
-
-	date := utils.StrDateToDate(list[0].Dt)
-	frequency := edbinfoList[0].Frequency
-	switch frequency {
-	case "日度":
-		nextDataDateTime.Dt = date.AddDate(0, 0, 1).Format(utils.FormatDate)
-	case "周度":
-		nextDataDateTime.Dt = date.AddDate(0, 0, 7).Format(utils.FormatDate)
-	case "旬度":
-		nextDataDateTime.Dt = date.AddDate(0, 0, 10).Format(utils.FormatDate)
-	case "月度":
-		nextDataDateTime.Dt = date.AddDate(0, 1, 0).Format(utils.FormatDate)
-	case "季度":
-		nextDataDateTime.Dt = date.AddDate(0, 3, 0).Format(utils.FormatDate)
-	case "半年度":
-		nextDataDateTime.Dt = date.AddDate(0, 6, 0).Format(utils.FormatDate)
-	case "年度":
-		nextDataDateTime.Dt = date.AddDate(1, 0, 0).Format(utils.FormatDate)
-	}
-	list = append(list, &nextDataDateTime)
-	return list, nil
+	edbinfoMap := make(map[string]*models.Edbinfo)
+	for _, item := range edbinfoList {
+		edbinfoMap[item.TradeCode] = item
+	}
+
+	for _, item := range list {
+		nextDataDateTime := &models.EdbDataNextDateTime{
+			TradeCode:  item.TradeCode,
+			Dt:         item.Dt,
+			Close:      item.Close,
+			ModifyTime: item.ModifyTime,
+		}
+
+		date := utils.StrDateToDate(item.Dt)
+		frequency := edbinfoMap[item.TradeCode].Frequency
+		switch frequency {
+		case "日度":
+			nextDataDateTime.NextDateTime = date.AddDate(0, 0, 1).Format(utils.FormatDate)
+		case "周度":
+			nextDataDateTime.NextDateTime = date.AddDate(0, 0, 7).Format(utils.FormatDate)
+		case "旬度":
+			nextDataDateTime.NextDateTime = date.AddDate(0, 0, 10).Format(utils.FormatDate)
+		case "月度":
+			nextDataDateTime.NextDateTime = date.AddDate(0, 1, 0).Format(utils.FormatDate)
+		case "季度":
+			nextDataDateTime.NextDateTime = date.AddDate(0, 3, 0).Format(utils.FormatDate)
+		case "半年度":
+			nextDataDateTime.NextDateTime = date.AddDate(0, 6, 0).Format(utils.FormatDate)
+		case "年度":
+			nextDataDateTime.NextDateTime = date.AddDate(1, 0, 0).Format(utils.FormatDate)
+		}
+		nextDataDateTimeList = append(nextDataDateTimeList, nextDataDateTime)
+	}
+	return nextDataDateTimeList, nil
 }
 
 // ClassifyEdbList

+ 1 - 1
go.mod

@@ -33,7 +33,6 @@ require (
 	github.com/mojocn/base64Captcha v1.3.6
 	github.com/nosixtools/solarlunar v0.0.0-20211112060703-1b6dea7b4a19
 	github.com/olivere/elastic/v7 v7.0.32
-	github.com/pdfcpu/pdfcpu v0.8.0
 	github.com/qiniu/qmgo v1.1.8
 	github.com/rdlucklib/rdluck_tools v1.0.3
 	github.com/shopspring/decimal v1.3.1
@@ -109,6 +108,7 @@ require (
 	github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
 	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
 	github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b // indirect
+	github.com/pdfcpu/pdfcpu v0.8.0 // indirect
 	github.com/pelletier/go-toml v1.9.2 // indirect
 	github.com/pkg/errors v0.9.1 // indirect
 	github.com/prometheus/client_golang v1.16.0 // indirect

+ 30 - 20
models/target.go

@@ -72,6 +72,15 @@ type Edbdata struct {
 	ModifyTime time.Time `orm:"column(modify_time)" description:"修改时间"`
 }
 
+type EdbDataNextDateTime struct {
+	TradeCode  string    `orm:"column(TRADE_CODE);pk" description:"指标编码"`
+	Dt         string    `orm:"column(DT)" description:"日期"`
+	Close      string    `orm:"column(CLOSE)" description:"值"`
+	ModifyTime time.Time `orm:"column(modify_time)" description:"修改时间"`
+
+	NextDateTime string `description:"下期日期"`
+}
+
 func GetDataInfo(tradeCode, creteDate string) (item *Edbdata, err error) {
 	sql := " SELECT * FROM edbdata WHERE TRADE_CODE=? AND DT=? "
 	o := orm.NewOrmUsingDB("edb")
@@ -1265,26 +1274,27 @@ func GetLzFrequency(productName string) (items []*int, err error) {
 
 // EdbInfoItem
 type EdbInfoItem struct {
-	TradeCode    string     `orm:"column(TRADE_CODE);pk" description:"指标code"`
-	SecName      string     `orm:"column(SEC_NAME);" description:"指标名称"`
-	Unit         string     `orm:"column(UNIT);" description:"单位"`
-	Remark       string     `orm:"column(REMARK);" description:"备注"`
-	Frequency    string     `description:"频度"`
-	ClassifyId   int        `description:"分类id"`
-	ClassifyName string     `description:"分类名称"`
-	CreateDate   string     `description:"创建时间"`
-	UserId       int        `description:"录入用户id"`
-	UserName     string     `description:"录入用户名称"`
-	NoticeTime   string     `description:"通知时间"`
-	Mobile       string     `description:"录入者手机号"`
-	ModifyDate   string     `description:"待更新日期"`
-	ModifyTime   string     `description:"最近一次更新时间"`
-	Status       string     `description:"状态:未完成/完成"`
-	IsJoinEdb    int8       `description:"指标库是否已添加:0-否;1-是"`
-	StartDate    string     `description:"数据开始日期"`
-	EndDate      string     `description:"数据结束日期"`
-	LatestValue  float64    `description:"指标最新值"`
-	DataList     []*Edbdata `description:"指标数据列表"`
+	TradeCode        string                 `orm:"column(TRADE_CODE);pk" description:"指标code"`
+	SecName          string                 `orm:"column(SEC_NAME);" description:"指标名称"`
+	Unit             string                 `orm:"column(UNIT);" description:"单位"`
+	Remark           string                 `orm:"column(REMARK);" description:"备注"`
+	Frequency        string                 `description:"频度"`
+	ClassifyId       int                    `description:"分类id"`
+	ClassifyName     string                 `description:"分类名称"`
+	CreateDate       string                 `description:"创建时间"`
+	UserId           int                    `description:"录入用户id"`
+	UserName         string                 `description:"录入用户名称"`
+	NoticeTime       string                 `description:"通知时间"`
+	Mobile           string                 `description:"录入者手机号"`
+	ModifyDate       string                 `description:"待更新日期"`
+	ModifyTime       string                 `description:"最近一次更新时间"`
+	Status           string                 `description:"状态:未完成/完成"`
+	IsJoinEdb        int8                   `description:"指标库是否已添加:0-否;1-是"`
+	StartDate        string                 `description:"数据开始日期"`
+	EndDate          string                 `description:"数据结束日期"`
+	LatestValue      float64                `description:"指标最新值"`
+	DataList         []*Edbdata             `description:"指标数据列表"`
+	NextDataTimeList []*EdbDataNextDateTime `description:"下期数据时间列表"`
 }
 
 // GetTargetItemList 获取指标列表数据