From 18d48c7fea0a85f0207155b053c6fceba97bc5a7 Mon Sep 17 00:00:00 2001 From: ZiHangQin <1420014281@qq.com> Date: Fri, 28 Jul 2023 16:46:52 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=A4=A9=E7=A5=9E=E6=A8=A1=E5=BC=8F]=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=AC=A6=E5=90=88=E6=9D=A1=E4=BB=B6=E7=9A=84=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/god_mode.go | 19 +++++++++++++++++-- service/god_mode.go | 19 +++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/controller/god_mode.go b/controller/god_mode.go index b401838..26d5906 100644 --- a/controller/god_mode.go +++ b/controller/god_mode.go @@ -16,6 +16,7 @@ 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) } //用于将参数转化为切片 @@ -55,8 +56,22 @@ func DeletePark(c *fiber.Ctx) error { err := service.GMService.DeleteParks(parks) if err != nil { - GmLog.Error("[天神模式]删除指定园区失败",zap.Error(err)) - return result.Error(500,err.Error()) + GmLog.Error("[天神模式]删除指定园区失败", zap.Error(err)) + return result.Error(500, err.Error()) } return result.Success("指定园区已经删除。") } + +func DeleteReports(c *fiber.Ctx) error { + pid := c.Query("park") + reports := getQueryValues(c, "reports") + result := response.NewResult(c) + GmLog.Info("[天神模式]删除符合条件的报表。", zap.Strings("reports", reports)) + + err := service.GMService.DeleteReports(pid, reports) + if err != nil { + GmLog.Error("[天神模式]删除指定园区中的报表失败。", zap.Error(err)) + return result.Error(500, err.Error()) + } + return result.Success("指定报表已经删除。") +} diff --git a/service/god_mode.go b/service/god_mode.go index 7623465..a5cd395 100644 --- a/service/god_mode.go +++ b/service/god_mode.go @@ -85,3 +85,22 @@ func (gm _GMService) DeleteParks(parks []string) error { tx.Commit(ctx) return nil } + +func (gm _GMService) DeleteReports(pid string, reports []string) error { + ctx, cancel := global.TimeoutContext() + defer cancel() + + tx, err := global.DB.Begin(ctx) + if err != nil { + gm.l.Error("未能启动数据库事务", zap.Error(err)) + return fmt.Errorf("未能启动数据库事务,%w", err) + } + + err = repository.GMRepository.DeleteReports(ctx, tx, pid, reports) + if err != nil { + tx.Rollback(ctx) + return err + } + tx.Commit(ctx) + return nil +}