97 lines
3.2 KiB
Go
97 lines
3.2 KiB
Go
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)
|
|
router.Delete("/gm/report", security.SingularityAuthorize, DeleteEnterprise)
|
|
router.Delete("/gm/tenement/meter",security.SingularityAuthorize, deleteTenementMeterRelations)
|
|
}
|
|
|
|
//用于将参数转化为切片
|
|
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("指定园区已经删除。")
|
|
}
|
|
|
|
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("指定报表已经删除。")
|
|
}
|
|
|
|
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("删除成功")
|
|
} |