Files
hldrCenter/server/internal/article/handler/article/deletearticlehandler.go
2025-10-08 20:00:30 +08:00

66 lines
1.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.1
package article
import (
"fmt"
"net/http"
"strconv"
"strings"
"github.com/JACKYMYPERSON/hldrCenter/config"
"github.com/JACKYMYPERSON/hldrCenter/internal/article/internal/logic/article"
"github.com/JACKYMYPERSON/hldrCenter/internal/article/internal/model"
"github.com/JACKYMYPERSON/hldrCenter/internal/article/internal/types"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"github.com/zeromicro/go-zero/rest/httpx"
)
func DeleteArticleHandler(cfg *config.Config) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.DeleteArticleReq
// 1. 从URL路径提取id核心步骤
pathParts := strings.Split(r.URL.Path, "/")
// 完整路径是 "/api/articles/12"split后应为 ["", "api", "articles", "12"]
if len(pathParts) < 4 {
httpx.ErrorCtx(r.Context(), w, fmt.Errorf("无效的 URL 路径"))
return
}
idStr := pathParts[3]
id, err := strconv.ParseInt(idStr, 10, 64)
if err != nil || id <= 0 { // 增加id有效性校验
httpx.ErrorCtx(r.Context(), w, fmt.Errorf("无效的文章ID%s", idStr))
return
}
req.Id = id // 只赋值一次确保Id正确
// 验证打印id确认此时是正确的如12
fmt.Println("Handler中获取的文章ID", req.Id)
mysqlCfg := cfg.MySQL
dsn := fmt.Sprintf(
"%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=true&loc=Local",
mysqlCfg.Username,
mysqlCfg.Password,
mysqlCfg.Host,
mysqlCfg.Port,
mysqlCfg.Database,
mysqlCfg.Charset,
)
fmt.Println("接收到articlePost请求")
conn := sqlx.NewSqlConn("mysql", dsn)
articleModel := model.NewArticleModel(conn)
l := article.NewDeleteArticleLogic(r.Context(), cfg, articleModel)
resp, err := l.DeleteArticle(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}