29 lines
969 B
Go
29 lines
969 B
Go
package middleware
|
|
|
|
import (
|
|
complianceapp "github.com/dujiao-next/internal/modules/compliance/application"
|
|
"github.com/dujiao-next/internal/platform/http/ginutil"
|
|
"github.com/dujiao-next/internal/platform/http/response"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// PaymentComplianceRequired 拦截支付/财务路由:未确认合规声明则阻断。
|
|
// - 已确认 → 放行
|
|
// - 未确认 + 超管 → 业务码 403 + msg "compliance_required"(前端据此弹窗)
|
|
// - 未确认 + 非超管 → 业务码 403 + msg "compliance_required_by_super_admin"(前端跳转提示页)
|
|
func PaymentComplianceRequired(cs *complianceapp.Service) gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
if cs != nil && cs.IsAcknowledged() {
|
|
c.Next()
|
|
return
|
|
}
|
|
if ginutil.IsSuperAdmin(c) {
|
|
response.Error(c, response.CodeForbidden, "compliance_required")
|
|
} else {
|
|
response.Error(c, response.CodeForbidden, "compliance_required_by_super_admin")
|
|
}
|
|
c.Abort()
|
|
}
|
|
}
|