|
1234567891011121314151617181920212223242526272829303132333435363738 |
- package egg_energy
-
- import (
- "code.fnuoos.com/EggPlanet/egg_models.git/src/implement"
- "code.fnuoos.com/EggPlanet/egg_models.git/src/model"
- "github.com/shopspring/decimal"
- "time"
- "xorm.io/xorm"
- )
-
- // CalcTodayGreenEnergyPriceRises 计算绿色能量今日价格涨幅
- func CalcTodayGreenEnergyPriceRises(engine *xorm.Engine, eggEnergyCoreData *model.EggEnergyCoreData) (err error, rises float64, isRises bool) {
- now := time.Now()
- if eggEnergyCoreData == nil {
- //1、查找 `egg_energy_core_data` 核心数据
- eggEnergyCoreDataDb := implement.NewEggEnergyCoreDataDb(engine)
- eggEnergyCoreData, err = eggEnergyCoreDataDb.EggEnergyCoreDataGet()
- if err != nil {
- return
- }
- }
-
- //2、查找昨日价格
- var m model.EggEnergyPrice
- if has, err1 := engine.Where("date =?", now.AddDate(0, 0, -1).Format("2006-01-02")).And("hour = 23").Get(&m); err1 != nil || has == false {
- err = err1
- return
- }
- yesterdayPrice, _ := decimal.NewFromString(m.Price)
- todayPrice, _ := decimal.NewFromString(eggEnergyCoreData.NowPrice)
- if todayPrice.GreaterThanOrEqual(yesterdayPrice) {
- isRises = true
- rises, _ = todayPrice.Sub(yesterdayPrice).Div(yesterdayPrice).Float64()
- } else {
- rises, _ = yesterdayPrice.Sub(todayPrice).Div(todayPrice).Float64()
- }
- return
- }
|