diff --git a/controller/god_mode.go b/controller/god_mode.go index 26d5906..9088b23 100644 --- a/controller/god_mode.go +++ b/controller/god_mode.go @@ -14,9 +14,10 @@ import ( var GmLog = logger.Named("Handler", "GM") func InitializeGmController(router *fiber.App) { - router.Delete("/gm/tenement", security.SingularityAuthorize, DeleteTenement) - router.Delete("/gm/park", security.SingularityAuthorize, DeletePark) - router.Delete("/gm/report", security.SingularityAuthorize, DeleteReports) + router.Delete("/gm/tenement", security.SingularityAuthorize, deleteTenement) + router.Delete("/gm/park", security.SingularityAuthorize, deletePark) + router.Delete("/gm/report", security.SingularityAuthorize, DeleteEnterprise) + router.Delete("/gm/tenement/meter",security.SingularityAuthorize, deleteTenementMeterRelations) } //用于将参数转化为切片 @@ -29,7 +30,7 @@ func getQueryValues(c *fiber.Ctx, paramName string) []string { return result } -func DeleteTenement(c *fiber.Ctx) error { +func deleteTenement(c *fiber.Ctx) error { park := c.Query("park", "") tenements := getQueryValues(c, "tenements") result := response.NewResult(c) @@ -44,7 +45,7 @@ func DeleteTenement(c *fiber.Ctx) error { return result.Success("指定商户已经删除。") } -func DeletePark(c *fiber.Ctx) error { +func deletePark(c *fiber.Ctx) error { parks := getQueryValues(c, "parks") result := response.NewResult(c) GmLog.Info("[天神模式]删除指定园区", zap.Strings("parks", parks)) @@ -62,7 +63,7 @@ func DeletePark(c *fiber.Ctx) error { return result.Success("指定园区已经删除。") } -func DeleteReports(c *fiber.Ctx) error { +func deleteReports(c *fiber.Ctx) error { pid := c.Query("park") reports := getQueryValues(c, "reports") result := response.NewResult(c) @@ -75,3 +76,22 @@ func DeleteReports(c *fiber.Ctx) error { } return result.Success("指定报表已经删除。") } + +func DeleteEnterprise(c *fiber.Ctx) error { + + return nil +} + + +func deleteTenementMeterRelations(c *fiber.Ctx) error { + result := response.NewResult(c) + parkId := c.Query("park") + tId := getQueryValues(c,"tenements") + metersId := getQueryValues(c, "meters") + GmLog.Info("删除指定园区中的商户与表计的关联关系", zap.String("park id", parkId)) + if err := service.GMService.DeleteTenementMeterRelations(parkId, tId, metersId); err != nil { + meterLog.Error("无法删除指定园区中的商户与表计的关联关系", zap.Error(err)) + return result.NotAccept(err.Error()) + } + return result.Success("删除成功") +} \ No newline at end of file diff --git a/service/god_mode.go b/service/god_mode.go index a5cd395..7025c06 100644 --- a/service/god_mode.go +++ b/service/god_mode.go @@ -104,3 +104,27 @@ func (gm _GMService) DeleteReports(pid string, reports []string) error { tx.Commit(ctx) return nil } + +func (gm _GMService) DeleteTenementMeterRelations(pId string, tId []string, mId []string) error { + gm.l.Info("删除商户表记关系", zap.String("tenement", pId)) + ctx, cancel := global.TimeoutContext(10) + defer cancel() + + tx, err := global.DB.Begin(ctx) + if err != nil { + gm.l.Error("开启数据库事务失败。", zap.Error(err)) + return err + } + if err := repository.GMRepository.DeleteMeterBinding(ctx, tx, pId, tId, mId); err != nil { + gm.l.Error("无法删除商户与表记关系。", zap.Error(err)) + tx.Rollback(ctx) + return err + } + err = tx.Commit(ctx) + if err != nil { + gm.l.Error("未能成功提交数据库事务。", zap.Error(err)) + tx.Rollback(ctx) + return err + } + return nil +}