package controller import ( "electricity_bill_calc/logger" "electricity_bill_calc/response" "electricity_bill_calc/security" "electricity_bill_calc/service" "errors" "github.com/gofiber/fiber/v2" "go.uber.org/zap" "net/http" ) 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) } //用于将参数转化为切片 func getQueryValues(c *fiber.Ctx, paramName string) []string { values := c.Request().URI().QueryArgs().PeekMulti(paramName) result := make([]string, len(values)) for i, v := range values { result[i] = string(v) } return result } func DeleteTenement(c *fiber.Ctx) error { park := c.Query("park", "") tenements := getQueryValues(c, "tenements") result := response.NewResult(c) GmLog.Info("[天神模式]删除指定园区中的商户", zap.String("park", park), zap.Strings("tenements", tenements)) err := service.GMService.DeleteTenements(park, tenements) if err != nil { GmLog.Error("[天神模式]删除指定园区中的商户失败", zap.Error(err)) return result.Error(500, err.Error()) } return result.Success("指定商户已经删除。") } func DeletePark(c *fiber.Ctx) error { parks := getQueryValues(c, "parks") result := response.NewResult(c) GmLog.Info("[天神模式]删除指定园区", zap.Strings("parks", parks)) if len(parks) < 0 { GmLog.Info("[天神模式]用户未指派园区参数或者未指定需要删除的园区。") return result.Error(http.StatusBadRequest, error.Error(errors.New("必须至少指定一个需要删除的园区!"))) } err := service.GMService.DeleteParks(parks) if err != nil { GmLog.Error("[天神模式]删除指定园区失败",zap.Error(err)) return result.Error(500,err.Error()) } return result.Success("指定园区已经删除。") }