forked from free-lancers/electricity_bill_calc_service
fix(#5):修复为前端下列表记提供的接口
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user