package meterCalcParam import ( "MeterService/core/db" "database/sql" ) //type SqlDb interface { // GetList() ([]interface{}, error) // AddOrUpdate(v interface{}) error //} type DbMeterCalcParam struct { Db *db.MyDB } func (m *DbMeterCalcParam) GetList() ([]interface{}, error) { array := make([]interface{}, 0) rows, err := m.Db.DB.Query("SELECT mcp.id as Id, mcp.time as Time, mcp.sum_power as SumPower" + ", mcp.max_power as MaxPower, mcp.count as Count, mcp.tps as Tps, mcp.tqs as Tqs, mcp.fps as Fps, mcp.fqs as Fqs, mcp.tpe as Tpe, mcp.tqe as Tqe" + ", mcp.fpe as Fpe, mcp.fqe as Fqe FROM t_meter_calc_param AS mcp") defer func(rows *sql.Rows) { _ = rows.Close() }(rows) for rows.Next() { //var param dataStruct.MeterCalcParam //err = rows.Scan(¶m.Id, ¶m.Time, ¶m.PowerRate.SumPower, ¶m.PowerRate.MaxPower, ¶m.PowerRate.Count, // ¶m.DayTotalEnergy.Tp, ¶m.DayTotalEnergy.Tq, ¶m.DayTotalEnergy.Fp, ¶m.DayTotalEnergy.Fq, // ¶m.TotalEnergy.Fp, ¶m.TotalEnergy.Fq, ¶m.TotalEnergy.Tp, ¶m.TotalEnergy.Tq) var param MeterCalcParam err = rows.Scan(¶m.Id, ¶m.Time, ¶m.SumPower, ¶m.MaxPower, ¶m.Count, ¶m.Tps, ¶m.Tqs, ¶m.Fps, ¶m.Fqs, ¶m.Tpe, ¶m.Tqe, ¶m.Fpe, ¶m.Fqe) if err != nil { return nil, err } array = append(array, ¶m) } return array, nil } func (m *DbMeterCalcParam) AddOrUpdate(v interface{}) error { d := v.(*MeterCalcParam) ret, ok := m.Db.Query("SELECT id FROM t_meter_calc_param WHERE id=?", d.Id) if ok || len(ret) > 0 { _, err := m.Db.Exec("UPDATE t_meter_calc_param SET Time=?, sum_power=?, max_power=?, count=?, tps=?, tqs=?, fps=?, fqs=?, tpe=?, tqe=?, fpe=?, fqe=? WHERE Id=?", d.Time, d.SumPower, d.MaxPower, d.Count, d.Tps, d.Tqs, d.Fps, d.Fqs, d.Tpe, d.Tqe, d.Fpe, d.Fqe, d.Id) return err } else { _, err := m.Db.Exec("INSERT INTO t_meter_calc_param(id, time, sum_power, max_power, count, tps, tqs, fps, fqs, tpe, tqe, fpe, fqe) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)", d.Id, d.Time, d.SumPower, d.MaxPower, d.Count, d.Tps, d.Tqs, d.Fps, d.Fqs, d.Tpe, d.Tqe, d.Fpe, d.Fqe) return err } } func NewMeterCalcParamDb() *DbMeterCalcParam { return &DbMeterCalcParam{ Db: db.GetDb(), } }