diff --git a/controller/meter.go b/controller/meter.go index 28f0e57..e49d39e 100644 --- a/controller/meter.go +++ b/controller/meter.go @@ -53,7 +53,7 @@ func searchMetersWithinPark(c *fiber.Ctx) error { meterLog.Error("无法查询指定园区下的表计信息,无法获取当前用户会话", zap.Error(err)) return result.Unauthorized(err.Error()) } - if ok, err := checkParkBelongs(meterLog, parkId, session, &result); !ok { + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { return err } keyword := c.Query("keyword") @@ -81,7 +81,7 @@ func retrieveSpecificMeterDetail(c *fiber.Ctx) error { meterLog.Error("无法查询指定园区中指定表计的详细信息,无法获取当前用户会话", zap.Error(err)) return result.Unauthorized(err.Error()) } - if ok, err := checkParkBelongs(meterLog, parkId, session, &result); !ok { + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { return err } meter, err := repository.MeterRepository.FetchMeterDetail(parkId, meterId) @@ -106,7 +106,7 @@ func createNewMeterManually(c *fiber.Ctx) error { meterLog.Error("无法手动添加一条0.4kV表计记录,无法获取当前用户会话", zap.Error(err)) return result.Unauthorized(err.Error()) } - if ok, err := checkParkBelongs(meterLog, parkId, session, &result); !ok { + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { return err } var creationForm vo.MeterCreationForm @@ -132,7 +132,7 @@ func updateMeterManually(c *fiber.Ctx) error { meterLog.Error("无法手动更新一条新的0.4kV表计记录,无法获取当前用户会话", zap.Error(err)) return result.Unauthorized(err.Error()) } - if ok, err := checkParkBelongs(meterLog, parkId, session, &result); !ok { + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { return err } var updateForm vo.MeterModificationForm @@ -157,7 +157,7 @@ func downloadMeterArchiveTemplate(c *fiber.Ctx) error { meterLog.Error("无法下载指定的园区表计登记模板,无法获取当前用户会话", zap.Error(err)) return result.Unauthorized(err.Error()) } - if ok, err := checkParkBelongs(meterLog, parkId, session, &result); !ok { + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { return err } parkDetail, err := repository.ParkRepository.RetrieveParkDetail(parkId) @@ -200,14 +200,8 @@ func uploadMeterArchive(c *fiber.Ctx) error { return result.Unauthorized(err.Error()) } parkId := c.Params("pid") - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } uploadFile, err := c.FormFile("data") if err != nil { @@ -233,7 +227,7 @@ func replaceMeter(c *fiber.Ctx) error { meterLog.Error("无法更换系统中的表计,无法获取当前用户会话", zap.Error(err)) return result.Unauthorized(err.Error()) } - if ok, err := checkParkBelongs(meterLog, parkId, session, &result); !ok { + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { return err } var replacementForm vo.MeterReplacingForm @@ -253,14 +247,8 @@ func listAssociatedMeters(c *fiber.Ctx) error { return result.Unauthorized(err.Error()) } parkId := c.Params("pid") - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } meterId := c.Params("code") meterLog.Info("列出指定公摊表计下的所有关联表计", zap.String("park id", parkId), zap.String("meter id", meterId)) @@ -281,14 +269,8 @@ func bindAssociatedMeters(c *fiber.Ctx) error { return result.Unauthorized(err.Error()) } parkId := c.Params("pid") - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } meterId := c.Params("code") meterLog.Info("向指定表计绑定关联表计", zap.String("park id", parkId), zap.String("meter id", meterId)) @@ -297,7 +279,7 @@ func bindAssociatedMeters(c *fiber.Ctx) error { meterLog.Error("无法向指定表计绑定关联表计,无法解析关联表计列表", zap.Error(err)) return result.NotAccept(err.Error()) } - ok, err = service.MeterService.BindMeter(parkId, meterId, meters) + ok, err := service.MeterService.BindMeter(parkId, meterId, meters) if err != nil { meterLog.Error("无法向指定表计绑定关联表计,无法绑定关联表计", zap.Error(err)) return result.Error(http.StatusInternalServerError, err.Error()) @@ -318,14 +300,8 @@ func unbindAssociatedMeters(c *fiber.Ctx) error { return result.Unauthorized(err.Error()) } parkId := c.Params("pid") - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } masterMeter := c.Params("master") slaveMeter := c.Params("slave") @@ -333,7 +309,7 @@ func unbindAssociatedMeters(c *fiber.Ctx) error { meterLog.Warn("无法解除指定园区下两个表计之间的关联关系,表计编号为空。") return result.NotAccept("存在未给定要操作的表计编号。") } - ok, err = service.MeterService.UnbindMeter(parkId, masterMeter, []string{slaveMeter}) + ok, err := service.MeterService.UnbindMeter(parkId, masterMeter, []string{slaveMeter}) if err != nil { meterLog.Error("无法解除指定园区下两个表计之间的关联关系,无法解除关联关系", zap.Error(err)) return result.Error(http.StatusInternalServerError, err.Error()) @@ -354,14 +330,8 @@ func listPooledMeters(c *fiber.Ctx) error { return result.Unauthorized(err.Error()) } parkId := c.Params("pid") - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } page := c.QueryInt("page", 1) keyword := c.Query("keyword") @@ -386,14 +356,8 @@ func listUnboundMeters(c *fiber.Ctx) error { return result.Unauthorized(err.Error()) } parkId := c.Params("pid") - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } keyword := c.Query("keyword") limit := uint(c.QueryInt("limit", 6)) @@ -420,14 +384,8 @@ func listUnboundTenementMeters(c *fiber.Ctx) error { meterLog.Error("无法列出指定园区中尚未绑定商户的表计,未指定要访问的园区ID") return result.NotAccept("未指定要访问的园区。") } - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } keyword := c.Query("keyword") limit := uint(c.QueryInt("limit", 6)) @@ -450,14 +408,8 @@ func queryMeterReadings(c *fiber.Ctx) error { return result.Unauthorized(err.Error()) } parkId := c.Params("pid") - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } keyword := tools.EmptyToNil(c.Query("keyword")) page := c.QueryInt("page", 1) @@ -504,14 +456,8 @@ func recordMeterReading(c *fiber.Ctx) error { return result.Unauthorized(err.Error()) } parkId := c.Params("pid") - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } meterCode := c.Params("code") var readingForm vo.MeterReadingForm @@ -540,14 +486,8 @@ func updateMeterReading(c *fiber.Ctx) error { return result.Unauthorized(err.Error()) } parkId := c.Params("pid") - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } meterCode := c.Params("code") readingAtMicro, err := c.ParamsInt("reading") @@ -561,7 +501,7 @@ func updateMeterReading(c *fiber.Ctx) error { meterLog.Error("更新一条新的表计抄表记录,无法解析表计抄表表单", zap.Error(err)) return result.NotAccept(fmt.Sprintf("无法解析表计抄表表单,%s", err.Error())) } - ok, err = repository.MeterRepository.UpdateMeterReading(parkId, meterCode, readingAt, &readingForm) + ok, err := repository.MeterRepository.UpdateMeterReading(parkId, meterCode, readingAt, &readingForm) if err != nil { meterLog.Error("更新一条新的表计抄表记录,无法更新表计抄表记录", zap.Error(err)) return result.Error(http.StatusInternalServerError, err.Error()) @@ -583,7 +523,7 @@ func downloadMeterReadingsTemplate(c *fiber.Ctx) error { meterLog.Error("无法下载指定的园区表计抄表模板,无法获取当前用户会话", zap.Error(err)) return result.Unauthorized(err.Error()) } - if ok, err := checkParkBelongs(meterLog, parkId, session, &result); !ok { + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { return err } parkDetail, err := repository.ParkRepository.RetrieveParkDetail(parkId) @@ -625,14 +565,8 @@ func uploadMeterReadings(c *fiber.Ctx) error { meterLog.Error("无法从Excel文件中导入抄表档案,无法获取当前用户会话", zap.Error(err)) return result.Unauthorized(err.Error()) } - ok, err := repository.ParkRepository.IsParkBelongs(parkId, session.Uid) - switch { - case err != nil: - meterLog.Error("无法判断园区是否隶属于当前用户。", zap.String("park id", parkId), zap.String("user id", session.Uid), zap.Error(err)) - return result.Error(http.StatusInternalServerError, err.Error()) - case err == nil && !ok: - meterLog.Error("用户试图访问不属于自己的园区。", zap.String("park id", parkId), zap.String("user id", session.Uid)) - return result.Forbidden("您无权访问该园区。") + if pass, err := checkParkBelongs(meterLog, parkId, session, &result); !pass { + return err } uploadFile, err := c.FormFile("data") if err != nil {