feat(pickup): support platform managed offline settlement
This commit is contained in:
@@ -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())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user