123456789101112131415161718192021222324252627282930313233343536373839 |
- package area_graph
- import (
- "eta/eta_api/models/data_manage"
- "fmt"
- )
- type NullDealStrategy interface {
- Deal(tmpConfig data_manage.AreaExtraConf, edbDataList []*data_manage.ChartEdbInfoMapping, standardIndexMap map[string]*data_manage.EdbDataList, startDate string, endDate string) (err error)
- }
- func CreateStrategy(dealWay int) (NullDealStrategy, error) {
- switch dealWay {
- case 1:
- return &InterpolateStrategy{}, nil
- case 2:
- return &FillWithPreviousStrategy{}, nil
- case 3:
- return &FillWithNextStrategy{}, nil
- case 4:
- return &SetToZeroStrategy{}, nil
- case 5:
- return &DeleteDateStrategy{}, nil
- default:
- return nil, fmt.Errorf("未知的空值处理类型: %d", dealWay)
- }
- }
- type NullDealContext struct {
- strategy NullDealStrategy
- }
- func (c *NullDealContext) SetStrategy(strategy NullDealStrategy) {
- c.strategy = strategy
- }
- func (c *NullDealContext) ExecuteStrategy(tmpConfig data_manage.AreaExtraConf, edbDataList []*data_manage.ChartEdbInfoMapping, standardIndexMap map[string]*data_manage.EdbDataList) error {
- return c.strategy.Deal(tmpConfig, edbDataList, standardIndexMap, "", "")
- }
|