chore(init): 初始化解忧商行项目并完成 Phase 0 基座

This commit is contained in:
yml2213
2026-10-30 11:46:10 +08:00
commit 8d9481c251
689 changed files with 138703 additions and 0 deletions
@@ -0,0 +1,139 @@
package order
import (
"strings"
"hfb_sys/backend/internal/sitecode"
"hfb_sys/backend/pkg/response"
"github.com/gin-gonic/gin"
)
func (h *Handler) Create(c *gin.Context) {
userID, ok := currentUserID(c)
if !ok {
response.Unauthorized(c, "缺少用户上下文")
return
}
var req CreateRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.BadRequest(c, "订单信息不完整")
return
}
if strings.TrimSpace(req.DistributionSiteCode) == "" {
req.DistributionSiteCode = sitecode.FromRequest(c)
}
item, err := h.service.Create(c.Request.Context(), userID, req)
if err != nil {
writeOrderError(c, err)
return
}
response.Created(c, item)
}
func (h *Handler) List(c *gin.Context) {
userID, ok := currentUserID(c)
if !ok {
response.Unauthorized(c, "缺少用户上下文")
return
}
page, pageSize := parsePagination(c)
siteCode := sitecode.FromRequest(c)
items, err := h.service.ListForUser(c.Request.Context(), userID, page, pageSize, siteCode)
if err != nil {
writeOrderError(c, err)
return
}
response.OK(c, items)
}
func (h *Handler) ListSellerHandoffs(c *gin.Context) {
userID, ok := currentUserID(c)
if !ok {
response.Unauthorized(c, "缺少用户上下文")
return
}
page, pageSize := parsePagination(c)
siteCode := sitecode.FromRequest(c)
items, err := h.service.ListSellerHandoffs(c.Request.Context(), userID, SellerHandoffQuery{
Page: page,
PageSize: pageSize,
Status: c.Query("status"),
SiteCode: siteCode,
})
if err != nil {
writeOrderError(c, err)
return
}
response.OK(c, items)
}
func (h *Handler) Detail(c *gin.Context) {
userID, ok := currentUserID(c)
if !ok {
response.Unauthorized(c, "缺少用户上下文")
return
}
id, ok := parseID(c)
if !ok {
return
}
siteCode := sitecode.FromRequest(c)
item, err := h.service.FindForUser(c.Request.Context(), userID, id, siteCode)
if err != nil {
writeOrderError(c, err)
return
}
response.OK(c, item)
}
func (h *Handler) Cancel(c *gin.Context) {
userID, ok := currentUserID(c)
if !ok {
response.Unauthorized(c, "缺少用户上下文")
return
}
id, ok := parseID(c)
if !ok {
return
}
if err := h.service.Cancel(c.Request.Context(), userID, id); err != nil {
writeOrderError(c, err)
return
}
response.OK(c, gin.H{"cancelled": true})
}
func (h *Handler) HideForOwner(c *gin.Context) {
userID, ok := currentUserID(c)
if !ok {
response.Unauthorized(c, "缺少用户上下文")
return
}
id, ok := parseID(c)
if !ok {
return
}
if err := h.service.HideForOwner(c.Request.Context(), userID, id); err != nil {
writeOrderError(c, err)
return
}
response.OK(c, gin.H{"hidden": true})
}
func (h *Handler) Pay(c *gin.Context) {
userID, ok := currentUserID(c)
if !ok {
response.Unauthorized(c, "缺少用户上下文")
return
}
id, ok := parseID(c)
if !ok {
return
}
if err := h.service.Pay(c.Request.Context(), userID, id); err != nil {
writeOrderError(c, err)
return
}
response.OK(c, gin.H{"paid": true})
}