feat(pickup): support platform managed offline settlement

This commit is contained in:
yml2213
2026-08-09 20:20:39 +08:00
parent 14bc91b007
commit 8fb7d3bac0
12 changed files with 499 additions and 128 deletions
+27 -1
View File
@@ -40,7 +40,7 @@ func (h *Handler) Create(c *gin.Context) {
response.OK(c, item)
}
// Complete 完成提号结算(管理员)
// Complete 完成提号(管理员)
func (h *Handler) Complete(c *gin.Context) {
adminID, ok := currentAdminID(c)
if !ok {
@@ -64,6 +64,30 @@ func (h *Handler) Complete(c *gin.Context) {
response.OK(c, item)
}
// MarkOfflineSettlement 确认平台代管提号已完成实际线下打款(管理员)。
func (h *Handler) MarkOfflineSettlement(c *gin.Context) {
adminID, ok := currentAdminID(c)
if !ok {
response.Unauthorized(c, "缺少管理员上下文")
return
}
id, ok := parseID(c)
if !ok {
return
}
var req OfflineSettlementRequest
if err := c.ShouldBindJSON(&req); err != nil {
response.BadRequest(c, "线下结算备注格式不正确")
return
}
item, err := h.service.MarkOfflineSettlement(c.Request.Context(), id, req, adminID, auditMeta(c))
if err != nil {
writePickupError(c, err)
return
}
response.OK(c, item)
}
// UpdateProfit 修改提号中的线下利润(管理员)
func (h *Handler) UpdateProfit(c *gin.Context) {
adminID, ok := currentAdminID(c)
@@ -195,6 +219,8 @@ func writePickupError(c *gin.Context, err error) {
response.BadRequest(c, "结算金额不正确")
case errors.Is(err, ErrInvalidProfit):
response.BadRequest(c, "利润金额不正确")
case errors.Is(err, ErrOfflineSettlementCannotMark):
response.BadRequest(c, "当前提号不可确认线下结算")
default:
response.Error(c, http.StatusInternalServerError, "pickup_error", err.Error())
}