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, mcp.Time, mcp.SumPower, mcp.MaxPower, mcp.Count, mcp.Tps, mcp.Tqs, mcp.Fps, mcp.Fqs, mcp.Tpe, mcp.Tqe, mcp.Fpe, mcp.Fqe FROM MeterCalcParam 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 MeterCalcParam WHERE id=?", d.Id) if ok || len(ret) > 0 { _, err := m.Db.Exec("UPDATE MeterCalcParam SET Time=?, SumPower=?, MaxPower=?, 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 MeterCalcParam(Id, Time, SumPower, MaxPower, 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(), } }