From 037e6258d12d5a182cdc8102c3b1dfaca3f1cf6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Mon, 26 Jun 2023 15:47:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(meter):=E4=BF=AE=E5=A4=8D=E8=A1=A8=E8=AE=A1?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=B8=AD=E7=9A=84=E9=94=99=E8=AF=AF=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E5=85=B3=E7=B3=BB=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/meter.go | 6 +++--- model/meter.go | 2 +- repository/meter.go | 23 +++++++---------------- 3 files changed, 11 insertions(+), 20 deletions(-) diff --git a/controller/meter.go b/controller/meter.go index bf42f84..8374ffc 100644 --- a/controller/meter.go +++ b/controller/meter.go @@ -23,19 +23,19 @@ import ( var meterLog = logger.Named("Handler", "Meter") func InitializeMeterHandlers(router *fiber.App) { + router.Get("/meter/choice", security.EnterpriseAuthorize, listUnboundMeters) + router.Get("/meter/choice/tenement", security.EnterpriseAuthorize, listUnboundTenementMeters) router.Get("/meter/:pid", security.EnterpriseAuthorize, searchMetersWithinPark) router.Post("/meter/:pid", security.EnterpriseAuthorize, createNewMeterManually) router.Get("/meter/:pid/template", security.EnterpriseAuthorize, downloadMeterArchiveTemplate) router.Post("/meter/:pid/batch", security.EnterpriseAuthorize, uploadMeterArchive) + router.Get("/meter/:pid/pooled", security.EnterpriseAuthorize, listPooledMeters) router.Get("/meter/:pid/:code", security.EnterpriseAuthorize, retrieveSpecificMeterDetail) router.Put("/meter/:pid/:code", security.EnterpriseAuthorize, updateMeterManually) router.Patch("/meter/:pid/:code", security.EnterpriseAuthorize, replaceMeter) router.Get("/meter/:pid/:code/binding", security.EnterpriseAuthorize, listAssociatedMeters) router.Post("/meter/:pid/:code/binding", security.EnterpriseAuthorize, bindAssociatedMeters) router.Delete("/meter/:pid/:code/binding/:slave", security.EnterpriseAuthorize, unbindAssociatedMeters) - router.Get("/meter/:pid/pooled", security.EnterpriseAuthorize, listPooledMeters) - router.Get("/meter/choice", security.EnterpriseAuthorize, listUnboundMeters) - router.Get("/meter/choice/tenement", security.EnterpriseAuthorize, listUnboundTenementMeters) router.Get("/reading/:pid", security.EnterpriseAuthorize, queryMeterReadings) router.Put("/reading/:pid/:code/:reading", security.EnterpriseAuthorize, updateMeterReading) router.Get("/reading/:pid/template", security.EnterpriseAuthorize, downloadMeterReadingsTemplate) diff --git a/model/meter.go b/model/meter.go index 5f10fa8..857280c 100644 --- a/model/meter.go +++ b/model/meter.go @@ -74,7 +74,7 @@ type NestedMeter struct { type PooledMeterDetailCompound struct { MeterDetail - BindMeters []MeterDetail `json:"bindMeters"` + BindMeters []MeterDetail `json:"bindedMeters"` } // 以下结构体用于导入表计档案数据 diff --git a/repository/meter.go b/repository/meter.go index c183f06..2c01db4 100644 --- a/repository/meter.go +++ b/repository/meter.go @@ -12,7 +12,6 @@ import ( "electricity_bill_calc/types" "electricity_bill_calc/vo" "fmt" - "strings" "github.com/doug-martin/goqu/v9" _ "github.com/doug-martin/goqu/v9/dialect/postgres" @@ -477,7 +476,7 @@ func (mr _MeterRepository) UnbindMeter(tx pgx.Tx, ctx context.Context, pid, mast goqu.I("park_id").Eq(pid), goqu.I("master_meter_id").Eq(masterMeter), goqu.I("slave_meter_id").Eq(slaveMeter), - goqu.I("revoke_at").IsNull(), + goqu.I("revoked_at").IsNull(), ). Prepared(true).ToSQL() @@ -518,25 +517,17 @@ func (mr _MeterRepository) ListPooledMeterRelations(pid, code string) ([]*model. // 列出指定公摊表计列表所包含的全部关联表计关系 func (mr _MeterRepository) ListPooledMeterRelationsByCodes(pid string, codes []string) ([]*model.MeterRelation, error) { mr.log.Info("列出指定公摊表计列表所包含的全部关联表计关系", zap.String("park id", pid), zap.Strings("meter codes", codes)) - cacheConditions := []string{ - pid, - strings.Join(codes, ","), - } - if relations, err := cache.RetrieveSearch[[]*model.MeterRelation]("meter_relations", cacheConditions...); err == nil { - mr.log.Info("从缓存中获取到了所需的关联表计信息", zap.Int("count", len(*relations))) - return *relations, nil - } ctx, cancel := global.TimeoutContext() defer cancel() var relations []*model.MeterRelation relationsSql, relationsArgs, _ := mr.ds. - From(goqu.T("meter_relations")). - Select("*"). + From(goqu.T("meter_relations").As("r")). + Select("r.*"). Where( goqu.I("r.park_id").Eq(pid), - goqu.I("r.master_meter_id").Eq(goqu.Func("any", codes)), - goqu.I("r.revoke_at").IsNull(), + goqu.I("r.master_meter_id").In(codes), + goqu.I("r.revoked_at").IsNull(), ). Prepared(true).ToSQL() @@ -561,7 +552,7 @@ func (mr _MeterRepository) ListMeterRelations(pid, code string) ([]*model.MeterR Where( goqu.I("r.park_id").Eq(pid), goqu.I("r.slave_meter_id").Eq(code), - goqu.I("r.revoke_at").IsNull(), + goqu.I("r.revoked_at").IsNull(), ). Prepared(true).ToSQL() @@ -687,7 +678,7 @@ func (mr _MeterRepository) ListUnboundMeters(uid string, pid *string, keyword *s )) } slaveMeterQuery = slaveMeterQuery.Where( - goqu.I("revoke_at").IsNull(), + goqu.I("revoked_at").IsNull(), ) meterQuery = meterQuery.Where( goqu.I("m.code").NotIn(slaveMeterQuery),