fix(#5):修复为前端下列表记提供的接口

This commit is contained in:
2023-08-08 15:21:12 +08:00
parent a593666542
commit ed5a3f6c0a
5 changed files with 97 additions and 2 deletions

View File

@@ -993,3 +993,43 @@ func (mr _MeterRepository) ListMeterDocForTemplate(pid string) ([]*model.SimpleM
return docs, nil
}
// 列出目前园区中可以作为抄表目标的表计
func (mr _MeterRepository) ListReadableMeters(pid string, keyword *string, limit uint) ([]*model.ReadAbleMeter, error) {
mr.log.Info("列出目前园区中可以作为抄表目标的表计",
zap.String("park_id", pid),
zap.Uint("limit", limit),
zap.Stringp("keyword", keyword))
ctx, cancel := global.TimeoutContext()
defer cancel()
//SELECT *
// FROM "meter_04kv" AS "m"
//LEFT JOIN "park_building" AS "b" ON ("b"."id" = "m"."building")
//WHERE (("m"."park_id" = "b"."id") AND ("m"."detached_at" IS NULL))
//ORDER BY "m"."attached_at" DESC
//LIMIT 20;
//query:=`SELECT m.*, b.name as building_name FROM meter_04kv as m LEFT JOIN park_building as b ON b.id = m.building WHERE m.park_id=$1 AND m.detached_at IS NULL`
meterQuery := mr.ds.From(goqu.T("meter_04kv").As("m")).
LeftJoin(goqu.T("park_building").As("b"), goqu.On(goqu.I("m.building").Eq(goqu.I("b.id")))).
Select("m.*", goqu.I("b.name").As("building_name")).
Where(goqu.I("m.park_id").
Eq(pid), goqu.I("m.detached_at").IsNull())
if keyword != nil && len(*keyword) > 0 {
pattern := fmt.Sprintf("%%%s%%", *keyword)
meterQuery = meterQuery.Where(
goqu.Or(
goqu.I("m.code").ILike(pattern),
goqu.I("m.address").ILike(pattern),
),
)
}
meterQuery = meterQuery.Order(goqu.I("m.attached_at").Desc()).Limit(limit)
meterSql, meterArgs, _ := meterQuery.Prepared(true).ToSQL()
var meters []*model.ReadAbleMeter
if err := pgxscan.Select(ctx, global.DB, &meters, meterSql, meterArgs...); err != nil {
mr.log.Error("查询商户表计信息失败", zap.Error(err))
return make([]*model.ReadAbleMeter, 0), err
}
return meters, nil
}