package controller import ( "electricity_bill_calc/response" "electricity_bill_calc/service" "net/http" "github.com/gofiber/fiber/v2" ) func InitializeRegionController(router *fiber.App) { router.Get("/region/:rid", fetchRegions) router.Get("/regions/:rid", fetchAllLeveledRegions) } func fetchRegions(c *fiber.Ctx) error { result := response.NewResult(c) requestParentId := c.Params("rid") regions, err := service.RegionService.FetchSubRegions(requestParentId) if err != nil { return result.Error(http.StatusInternalServerError, err.Error()) } if len(regions) == 0 { return result.Json(http.StatusNotFound, "未能获取到相关的行政区划。", fiber.Map{"regions": make([]string, 0)}) } return result.Json(http.StatusOK, "已经获取到相关的行政区划。", fiber.Map{"regions": regions}) } func fetchAllLeveledRegions(c *fiber.Ctx) error { result := response.NewResult(c) requestRegionCode := c.Params("rid") regions, err := service.RegionService.FetchAllParentRegions(requestRegionCode) if err != nil { return result.Error(http.StatusInternalServerError, err.Error()) } if len(regions) == 0 { return result.Json(http.StatusNotFound, "未能获取到相关的行政区划。", fiber.Map{"regions": make([]string, 0)}) } return result.Json(http.StatusOK, "以及获取到相关的行政区划。", fiber.Map{"regions": regions}) }