package handler import ( "net/http" "strings" "github.com/gin-gonic/gin" "billai-server/repository" ) type DeleteBillResponse struct { Result bool `json:"result"` Message string `json:"message,omitempty"` } // DeleteBill DELETE /api/bills/:id 删除清洗后的账单记录 func DeleteBill(c *gin.Context) { id := strings.TrimSpace(c.Param("id")) if id == "" { c.JSON(http.StatusBadRequest, DeleteBillResponse{Result: false, Message: "缺少账单 ID"}) return } repo := repository.GetRepository() if repo == nil { c.JSON(http.StatusInternalServerError, DeleteBillResponse{Result: false, Message: "数据库未连接"}) return } err := repo.DeleteCleanedBillByID(id) if err != nil { if err == repository.ErrNotFound { c.JSON(http.StatusNotFound, DeleteBillResponse{Result: false, Message: "账单不存在"}) return } c.JSON(http.StatusInternalServerError, DeleteBillResponse{Result: false, Message: "删除失败: " + err.Error()}) return } c.JSON(http.StatusOK, DeleteBillResponse{Result: true, Message: "删除成功"}) }