新增支付配置备份导入

This commit is contained in:
yml2213
2026-06-07 20:17:58 +08:00
parent a5e55bc045
commit 44747e7bae
8 changed files with 318 additions and 1 deletions
@@ -109,6 +109,46 @@ func (h *Handler) ExportBackup(c *gin.Context) {
c.Data(http.StatusOK, contentType, data)
}
// ImportBackup 导入支付配置备份
// @Summary 导入支付配置备份
// @Tags 管理后台-支付配置
// @Param body body ExportBackup true "支付配置备份 JSON"
// @Success 200 {object} response.Response{data=ImportBackupResult}
// @Router /admin/payment-configs/import [post]
func (h *Handler) ImportBackup(c *gin.Context) {
adminID, ok := currentAdminID(c)
if !ok {
response.Unauthorized(c, "未授权")
return
}
var backup ExportBackup
if err := c.ShouldBindJSON(&backup); err != nil {
response.BadRequest(c, "备份文件格式错误")
return
}
result, err := h.service.ImportBackup(backup, adminID, auditMeta(c))
if err == ErrInvalidBackup || err == ErrEmptyBackup || err == ErrInvalidProvider ||
err == ErrNameRequired || err == ErrMerchantIDRequired || err == ErrGatewayURLRequired ||
err == ErrSignKeyRequired || err == ErrNotifyKeyRequired || err == ErrNotifyURLRequired ||
err == ErrInvalidSignType || err == ErrInvalidStatus || err == ErrAppIDRequired ||
err == ErrSerialNoRequired || err == ErrTermNoRequired {
response.BadRequest(c, err.Error())
return
}
if err == ErrEncryptionFailed {
response.Error(c, http.StatusInternalServerError, "encrypt_failed", "密钥加密失败")
return
}
if err != nil {
response.Error(c, http.StatusInternalServerError, "internal_error", "导入失败")
return
}
response.OK(c, result)
}
// Create 创建支付配置
// @Summary 创建支付配置
// @Tags 管理后台-支付配置