初始化
Build docker and publish / prepare (push) Has been cancelled
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.admin image_name:ppanel-admin name:admin]) (push) Has been cancelled
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.api image_name:ppanel-api name:api]) (push) Has been cancelled
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.node image_name:ppanel-node name:node]) (push) Has been cancelled
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.queue image_name:ppanel-queue name:queue]) (push) Has been cancelled
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.scheduler image_name:ppanel-scheduler name:scheduler]) (push) Has been cancelled
Build docker and publish / deploy (push) Has been cancelled
Build docker and publish / notify (push) Has been cancelled

This commit is contained in:
2026-02-26 04:12:43 -08:00
commit 9dacd85a89
210 changed files with 8261 additions and 0 deletions
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package auth
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/auth"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func ResetPasswordHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.ResetPasswordReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := auth.NewResetPasswordLogic(r.Context(), svcCtx)
err := l.ResetPassword(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.Ok(w)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package auth
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/auth"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func UserLoginHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.UserLoginReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := auth.NewUserLoginLogic(r.Context(), svcCtx)
resp, err := l.UserLogin(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package auth
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/auth"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func UserRegisterHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.UserRegisterReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := auth.NewUserRegisterLogic(r.Context(), svcCtx)
resp, err := l.UserRegister(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,24 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package common
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/common"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetAnnouncementListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := common.NewGetAnnouncementListLogic(r.Context(), svcCtx)
resp, err := l.GetAnnouncementList()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,24 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package common
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/common"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetAvailablePaymentMethodsHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := common.NewGetAvailablePaymentMethodsLogic(r.Context(), svcCtx)
resp, err := l.GetAvailablePaymentMethods()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package common
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/common"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetDocumentDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.DocumentDetailReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := common.NewGetDocumentDetailLogic(r.Context(), svcCtx)
resp, err := l.GetDocumentDetail(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,24 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package common
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/common"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetDocumentListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := common.NewGetDocumentListLogic(r.Context(), svcCtx)
resp, err := l.GetDocumentList()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,24 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package common
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/common"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetGlobalConfigHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := common.NewGetGlobalConfigLogic(r.Context(), svcCtx)
resp, err := l.GetGlobalConfig()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,24 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package common
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/common"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetSubscribeGroupListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := common.NewGetSubscribeGroupListLogic(r.Context(), svcCtx)
resp, err := l.GetSubscribeGroupList()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,24 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package common
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/common"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetSubscribeListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := common.NewGetSubscribeListLogic(r.Context(), svcCtx)
resp, err := l.GetSubscribeList()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,24 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package common
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/common"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
func HealthHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := common.NewHealthLogic(r.Context(), svcCtx)
resp, err := l.Health()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package common
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/common"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func SendEmailCodeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.SendEmailCodeReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := common.NewSendEmailCodeLogic(r.Context(), svcCtx)
err := l.SendEmailCode(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.Ok(w)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package order
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/order"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func CloseOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CloseOrderReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := order.NewCloseOrderLogic(r.Context(), svcCtx)
err := l.CloseOrder(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.Ok(w)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package order
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/order"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func CreateOrderHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreateOrderReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := order.NewCreateOrderLogic(r.Context(), svcCtx)
resp, err := l.CreateOrder(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package order
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/order"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetOrderDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.OrderDetailReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := order.NewGetOrderDetailLogic(r.Context(), svcCtx)
resp, err := l.GetOrderDetail(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
+157
View File
@@ -0,0 +1,157 @@
// Code generated by goctl. DO NOT EDIT.
// goctl 1.9.2
package handler
import (
"net/http"
auth "github.com/zero-ppanel/zero-ppanel/apps/api/internal/handler/auth"
common "github.com/zero-ppanel/zero-ppanel/apps/api/internal/handler/common"
order "github.com/zero-ppanel/zero-ppanel/apps/api/internal/handler/order"
ticket "github.com/zero-ppanel/zero-ppanel/apps/api/internal/handler/ticket"
user "github.com/zero-ppanel/zero-ppanel/apps/api/internal/handler/user"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest"
)
func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
server.AddRoutes(
[]rest.Route{
{
Method: http.MethodPost,
Path: "/login",
Handler: auth.UserLoginHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/register",
Handler: auth.UserRegisterHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/reset_password",
Handler: auth.ResetPasswordHandler(serverCtx),
},
},
rest.WithPrefix("/api/v1/auth"),
)
server.AddRoutes(
[]rest.Route{
{
Method: http.MethodGet,
Path: "/announcement",
Handler: common.GetAnnouncementListHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/config",
Handler: common.GetGlobalConfigHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/document",
Handler: common.GetDocumentListHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/document/:id",
Handler: common.GetDocumentDetailHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/health",
Handler: common.HealthHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/payment/methods",
Handler: common.GetAvailablePaymentMethodsHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/send_email_code",
Handler: common.SendEmailCodeHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/subscribe",
Handler: common.GetSubscribeListHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/subscribe/group",
Handler: common.GetSubscribeGroupListHandler(serverCtx),
},
},
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
[]rest.Route{
{
Method: http.MethodGet,
Path: "/:order_no",
Handler: order.GetOrderDetailHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/:order_no/close",
Handler: order.CloseOrderHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/create",
Handler: order.CreateOrderHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.JwtAuth.AccessSecret),
rest.WithPrefix("/api/v1/order"),
)
server.AddRoutes(
[]rest.Route{
{
Method: http.MethodGet,
Path: "/:id",
Handler: ticket.GetTicketDetailHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/:id/follow",
Handler: ticket.CreateTicketFollowHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/create",
Handler: ticket.CreateTicketHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.JwtAuth.AccessSecret),
rest.WithPrefix("/api/v1/ticket"),
)
server.AddRoutes(
[]rest.Route{
{
Method: http.MethodGet,
Path: "/info",
Handler: user.GetUserInfoHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/password",
Handler: user.UpdateUserPasswordHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/subscribe",
Handler: user.GetUserSubscribeHandler(serverCtx),
},
},
rest.WithJwt(serverCtx.Config.JwtAuth.AccessSecret),
rest.WithPrefix("/api/v1/user"),
)
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package ticket
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/ticket"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func CreateTicketFollowHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreateTicketFollowReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := ticket.NewCreateTicketFollowLogic(r.Context(), svcCtx)
err := l.CreateTicketFollow(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.Ok(w)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package ticket
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/ticket"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func CreateTicketHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.CreateTicketReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := ticket.NewCreateTicketLogic(r.Context(), svcCtx)
resp, err := l.CreateTicket(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package ticket
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/ticket"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetTicketDetailHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.TicketDetailReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := ticket.NewGetTicketDetailLogic(r.Context(), svcCtx)
resp, err := l.GetTicketDetail(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,24 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package user
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/user"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetUserInfoHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := user.NewGetUserInfoLogic(r.Context(), svcCtx)
resp, err := l.GetUserInfo()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,24 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package user
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/user"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zeromicro/go-zero/rest/httpx"
)
func GetUserSubscribeHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := user.NewGetUserSubscribeLogic(r.Context(), svcCtx)
resp, err := l.GetUserSubscribe()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}
@@ -0,0 +1,31 @@
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2
package user
import (
"net/http"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/logic/user"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/svc"
"github.com/zero-ppanel/zero-ppanel/apps/api/internal/types"
"github.com/zeromicro/go-zero/rest/httpx"
)
func UpdateUserPasswordHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.UpdatePasswordReq
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := user.NewUpdateUserPasswordLogic(r.Context(), svcCtx)
err := l.UpdateUserPassword(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.Ok(w)
}
}
}