All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m34s
- 新增 GET /orders/platform、/orders/agent、/orders/online,类别由路径固定,参数、响应、权限同原订单列表 - 新增导出场景 order_platform、order_agent、order_online,筛选与表头同 order - 类别按钱从哪来划分:客户端下单为在线支付;后台代理钱包扣款(含平台代扣)为代理商;其余后台订单为平台 - 列表与导出共用 internal/query/ordercategory 的类别条件 - 企业账号访问订单列表、详情、购买预检改为无权限,修复其可看到全部订单的问题 - 原订单列表与 order 导出场景保留不变 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
148 lines
7.2 KiB
Go
148 lines
7.2 KiB
Go
package routes
|
||
|
||
import (
|
||
"github.com/gofiber/fiber/v2"
|
||
|
||
"github.com/break/junhong_cmp_fiber/internal/handler/admin"
|
||
"github.com/break/junhong_cmp_fiber/internal/handler/callback"
|
||
"github.com/break/junhong_cmp_fiber/internal/model/dto"
|
||
"github.com/break/junhong_cmp_fiber/pkg/openapi"
|
||
)
|
||
|
||
// registerAdminOrderRoutes 注册后台订单路由
|
||
func registerAdminOrderRoutes(router fiber.Router, handler *admin.OrderHandler, doc *openapi.Generator, basePath string) {
|
||
Register(router, doc, basePath, "POST", "/orders", handler.Create, RouteSpec{
|
||
Summary: "创建订单",
|
||
Tags: []string{"订单管理"},
|
||
Input: new(dto.CreateAdminOrderRequest),
|
||
Output: new(dto.OrderResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(router, doc, basePath, "GET", "/orders", handler.List, RouteSpec{
|
||
Summary: "获取订单列表",
|
||
Description: "平台订单、代理商订单、在线支付订单全部返回;按类别查看请用 `/orders/platform`、`/orders/agent`、`/orders/online`。代理账号只看到买家是本店铺的订单。企业账号无权访问。",
|
||
Tags: []string{"订单管理"},
|
||
Input: new(dto.OrderListRequest),
|
||
Output: new(dto.OrderListResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
// 按类别拆分的列表是静态路径,必须注册在 /orders/:id 之前,否则会被当作订单 ID 解析。
|
||
Register(router, doc, basePath, "GET", "/orders/platform", handler.ListPlatform, RouteSpec{
|
||
Summary: "获取平台订单列表",
|
||
Description: "平台订单:后台下单且不走代理钱包(线下支付),含平台自营、赠送、平台代购代理名下的卡。查询参数、分页、响应结构、权限与数据范围与 `GET /orders` 相同,只额外固定订单类别,不接收类别参数。代理账号只看到买家是本店铺的订单。企业账号无权访问。",
|
||
Tags: []string{"订单管理"},
|
||
Input: new(dto.OrderListRequest),
|
||
Output: new(dto.OrderListResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(router, doc, basePath, "GET", "/orders/agent", handler.ListAgent, RouteSpec{
|
||
Summary: "获取代理商订单列表",
|
||
Description: "代理商订单:后台下单且从代理钱包扣款,含代理自购、代理给下级购买、平台代扣代理钱包、代理 OpenAPI 下单。查询参数、分页、响应结构、权限与数据范围与 `GET /orders` 相同,只额外固定订单类别,不接收类别参数。代理账号只看到买家是本店铺的订单。企业账号无权访问。",
|
||
Tags: []string{"订单管理"},
|
||
Input: new(dto.OrderListRequest),
|
||
Output: new(dto.OrderListResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(router, doc, basePath, "GET", "/orders/online", handler.ListOnline, RouteSpec{
|
||
Summary: "获取在线支付订单列表",
|
||
Description: "在线支付订单:个人客户在客户端下的全部订单,含微信、支付宝、卡钱包支付、自动续费、自动购买与待支付订单。查询参数、分页、响应结构、权限与数据范围与 `GET /orders` 相同,只额外固定订单类别,不接收类别参数。代理账号只看到买家是本店铺的订单。企业账号无权访问。在线支付订单的买家是个人客户,代理账号调用结果为空。",
|
||
Tags: []string{"订单管理"},
|
||
Input: new(dto.OrderListRequest),
|
||
Output: new(dto.OrderListResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(router, doc, basePath, "GET", "/orders/:id", handler.Get, RouteSpec{
|
||
Summary: "获取订单详情",
|
||
Description: "企业账号无权访问。",
|
||
Tags: []string{"订单管理"},
|
||
Input: new(dto.GetOrderRequest),
|
||
Output: new(dto.OrderDetailResponse),
|
||
Auth: true,
|
||
})
|
||
|
||
Register(router, doc, basePath, "POST", "/orders/:id/cancel", handler.Cancel, RouteSpec{
|
||
Summary: "取消订单",
|
||
Tags: []string{"订单管理"},
|
||
Input: new(dto.CancelOrderRequest),
|
||
Output: nil,
|
||
Auth: true,
|
||
})
|
||
|
||
Register(router, doc, basePath, "POST", "/orders/purchase-check", handler.PurchaseCheck, RouteSpec{
|
||
Summary: "套餐购买预检",
|
||
Description: "企业账号无权访问。",
|
||
Tags: []string{"订单管理"},
|
||
Input: new(dto.PurchaseCheckRequest),
|
||
Output: new(dto.PurchaseCheckResponse),
|
||
Auth: true,
|
||
})
|
||
}
|
||
|
||
// registerCarrierCallbackRoutes 注册运营商业务回调路由。
|
||
func registerCarrierCallbackRoutes(router fiber.Router, handler *callback.CTCCRealnameHandler, doc *openapi.Generator, basePath string) {
|
||
Register(router, doc, basePath, "POST", "/carriers/ctcc/realname", handler.Realname, RouteSpec{
|
||
Summary: "电信实名结果回调",
|
||
Description: "接收电信 XML 实名补录结果,固定返回运营商成功应答。",
|
||
Tags: []string{"运营商回调"},
|
||
Input: nil,
|
||
Output: nil,
|
||
Auth: false,
|
||
})
|
||
}
|
||
|
||
// registerCMCCCallbackRoutes 注册中国移动实名回调路由。
|
||
func registerCMCCCallbackRoutes(router fiber.Router, handler *callback.CMCCRealnameHandler, doc *openapi.Generator, basePath string) {
|
||
Register(router, doc, basePath, "POST", "/carriers/cmcc/realname", handler.Realname, RouteSpec{
|
||
Summary: "移动实名结果回调", Description: "接收中国移动 JSON 实名成功结果,固定返回运营商成功应答。",
|
||
Tags: []string{"运营商回调"}, Input: nil, Output: nil, Auth: false,
|
||
})
|
||
}
|
||
|
||
// registerCUCCRealnameCallbackRoutes 注册中国联通实名成功回调路由。
|
||
func registerCUCCRealnameCallbackRoutes(router fiber.Router, handler *callback.CUCCRealnameHandler, doc *openapi.Generator, basePath string) {
|
||
Register(router, doc, basePath, "POST", "/carriers/cucc/realname", handler.Realname, RouteSpec{
|
||
Summary: "联通实名结果回调", Description: "接收中国联通嵌套 JSON 实名成功结果,固定返回运营商成功应答。",
|
||
Tags: []string{"运营商回调"}, Input: nil, Output: nil, Auth: false,
|
||
})
|
||
}
|
||
|
||
// registerCUCCCallbackRoutes 注册中国联通解除实名回调路由。
|
||
func registerCUCCCallbackRoutes(router fiber.Router, handler *callback.CUCCRealnameRemovalHandler, doc *openapi.Generator, basePath string) {
|
||
Register(router, doc, basePath, "POST", "/carriers/cucc/realname/remove", handler.Remove, RouteSpec{
|
||
Summary: "联通解除实名回调", Description: "识别中国联通解除实名 JSON,仅留痕且不修改本地实名事实。",
|
||
Tags: []string{"运营商回调"}, Input: nil, Output: nil, Auth: false,
|
||
})
|
||
}
|
||
|
||
// registerPaymentCallbackRoutes 注册支付回调路由
|
||
func registerPaymentCallbackRoutes(router fiber.Router, handler *callback.PaymentHandler, doc *openapi.Generator, basePath string) {
|
||
Register(router, doc, basePath, "POST", "/wechat-pay", handler.WechatPayCallback, RouteSpec{
|
||
Summary: "微信支付回调",
|
||
Tags: []string{"支付回调"},
|
||
Input: nil,
|
||
Output: nil,
|
||
Auth: false,
|
||
})
|
||
|
||
Register(router, doc, basePath, "POST", "/alipay", handler.AlipayCallback, RouteSpec{
|
||
Summary: "支付宝回调",
|
||
Tags: []string{"支付回调"},
|
||
Input: nil,
|
||
Output: nil,
|
||
Auth: false,
|
||
})
|
||
|
||
Register(router, doc, basePath, "POST", "/fuiou-pay", handler.FuiouPayCallback, RouteSpec{
|
||
Summary: "富友支付回调",
|
||
Tags: []string{"支付回调"},
|
||
Input: nil,
|
||
Output: nil,
|
||
Auth: false,
|
||
})
|
||
}
|