From 4c71f5f205742696e9db4ed91178dc20f3960036 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Tue, 16 Aug 2022 16:15:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(meter):=E5=A2=9E=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=88=B7=E8=A1=A8=E8=AF=A6=E7=BB=86=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/meter04kv.go | 31 +++++++++++++++++++++++++++++++ service/meter04kv.go | 12 ++++++++++++ 2 files changed, 43 insertions(+) diff --git a/controller/meter04kv.go b/controller/meter04kv.go index 657c20a..d2dd47d 100644 --- a/controller/meter04kv.go +++ b/controller/meter04kv.go @@ -24,6 +24,7 @@ func InitializeMeter04kVController(router *gin.Engine) { Meter04kVController.Router.GET("/park/:pid/meter/template", security.EnterpriseAuthorize, download04kvMeterArchiveTemplate) Meter04kVController.Router.GET("/park/:pid/meters", security.EnterpriseAuthorize, ListPaged04kVMeter) + Meter04kVController.Router.GET("/park/:pid/meter/:code", security.EnterpriseAuthorize, fetch04kVMeterDetail) } func download04kvMeterArchiveTemplate(c *gin.Context) { @@ -89,3 +90,33 @@ func ListPaged04kVMeter(c *gin.Context) { gin.H{"meters": meters}, ) } + +func fetch04kVMeterDetail(c *gin.Context) { + result := response.NewResult(c) + requestParkId := c.Param("pid") + userSession, err := _retreiveSession(c) + if err != nil { + result.Unauthorized(err.Error()) + return + } + sure, err := service.ParkService.EnsurePark(userSession.Uid, requestParkId) + if err != nil { + result.Error(http.StatusInternalServerError, err.Error()) + return + } + if !sure { + result.Unauthorized("不能访问不属于自己的园区。") + return + } + requestMeterCode := c.Param("code") + meter, err := service.Meter04kVService.Get04kVMeterDetail(requestParkId, requestMeterCode) + if err != nil { + result.NotFound(err.Error()) + return + } + if meter == nil { + result.Json(http.StatusNotFound, "指定的表计信息未能找到。", gin.H{"meter": nil}) + return + } + result.Json(http.StatusOK, "指定的表计信息已找到。", gin.H{"meter": meter}) +} diff --git a/service/meter04kv.go b/service/meter04kv.go index 7937cab..1ca774c 100644 --- a/service/meter04kv.go +++ b/service/meter04kv.go @@ -34,3 +34,15 @@ func (_Meter04kVService) ListMeterDetail(park, keyword string, page int) ([]mode Find(&meters) return meters, total, err } + +func (_Meter04kVService) Get04kVMeterDetail(park, code string) (*model.Meter04KV, error) { + var meter = new(model.Meter04KV) + has, err := global.DBConn.Where(builder.Eq{"code": code, "park_id": park}).NoAutoCondition().Get(meter) + if err != nil { + return nil, err + } + if !has { + return nil, nil + } + return meter, nil +}