db.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package meterCalcParam
  2. import (
  3. "MeterService/core/db"
  4. "database/sql"
  5. )
  6. //type SqlDb interface {
  7. // GetList() ([]interface{}, error)
  8. // AddOrUpdate(v interface{}) error
  9. //}
  10. type DbMeterCalcParam struct {
  11. Db *db.MyDB
  12. }
  13. func (m *DbMeterCalcParam) GetList() ([]interface{}, error) {
  14. array := make([]interface{}, 0)
  15. 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")
  16. defer func(rows *sql.Rows) {
  17. _ = rows.Close()
  18. }(rows)
  19. for rows.Next() {
  20. //var param dataStruct.MeterCalcParam
  21. //err = rows.Scan(&param.Id, &param.Time, &param.PowerRate.SumPower, &param.PowerRate.MaxPower, &param.PowerRate.Count,
  22. // &param.DayTotalEnergy.Tp, &param.DayTotalEnergy.Tq, &param.DayTotalEnergy.Fp, &param.DayTotalEnergy.Fq,
  23. // &param.TotalEnergy.Fp, &param.TotalEnergy.Fq, &param.TotalEnergy.Tp, &param.TotalEnergy.Tq)
  24. var param MeterCalcParam
  25. err = rows.Scan(&param.Id, &param.Time, &param.SumPower, &param.MaxPower, &param.Count, &param.Tps, &param.Tqs, &param.Fps, &param.Fqs, &param.Tpe, &param.Tqe, &param.Fpe, &param.Fqe)
  26. if err != nil {
  27. return nil, err
  28. }
  29. array = append(array, &param)
  30. }
  31. return array, nil
  32. }
  33. func (m *DbMeterCalcParam) AddOrUpdate(v interface{}) error {
  34. d := v.(*MeterCalcParam)
  35. ret, ok := m.Db.Query("SELECT id FROM MeterCalcParam WHERE id=?", d.Id)
  36. if ok || len(ret) > 0 {
  37. _, 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)
  38. return err
  39. } else {
  40. _, 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)
  41. return err
  42. }
  43. }
  44. func NewMeterCalcParamDb() *DbMeterCalcParam {
  45. return &DbMeterCalcParam{
  46. Db: db.GetDb(),
  47. }
  48. }