diff --git a/pkg/common/msg.go b/pkg/common/msg.go index 6f37225..dbd4b17 100644 --- a/pkg/common/msg.go +++ b/pkg/common/msg.go @@ -44,23 +44,60 @@ var EnMessages = map[string]string{ "系统提示:已经发送过,验证码尚可用": "System message: Already sent, verification code is still available", "您的手机号当天发送次数过多,请联系管理员通过密码登录": "Your mobile phone number is sent too many times that day, please contact the administrator to log in through the password", "您的手机号验证码错误,请确认之后注册": "Your phone number verification code is incorrect, please confirm and register", - "手机号不合法": "The phone number is illegal", - "手机号未更改": "The phone number has not been changed", - "新手机号过期": "New phone number expired", - "验证码错误": "Verification code error", - "验证码未发送": "The verification code was not sent", - "账号不存在": "Account does not exist", - "已实名": "In real name", - "实名审核中,请勿重复提交": "During real-name audit, please do not submit repeatedly", - "用户状态异常,无法进行审核": "The user is abnormal and cannot be audited. Procedure", - "验证码已失效": "The verification code is invalid", - "服务器错误": "Server error", - "验证失败,请控制拼图对齐缺口": "Verification failed, please control puzzle alignment gap", - "滑块验证状态不存在,请退出重试": "The slider verification status does not exist. Please exit and try again", - "请先实名": "Please use your real name first", - "实名审核中": "Real-name verification is underway", - "实名审核失败": "The real-name verification failed", - "未知实名状态": "Unknown real-name status", + "手机号不合法": "The phone number is illegal", + "手机号未更改": "The phone number has not been changed", + "新手机号过期": "New phone number expired", + "验证码错误": "Verification code error", + "验证码未发送": "The verification code was not sent", + "账号不存在": "Account does not exist", + "已实名": "In real name", + "实名审核中,请勿重复提交": "During real-name audit, please do not submit repeatedly", + "用户状态异常,无法进行审核": "The user is abnormal and cannot be audited. Procedure", + "验证码已失效": "The verification code is invalid", + "服务器错误": "Server error", + "验证失败,请控制拼图对齐缺口": "Verification failed, please control puzzle alignment gap", + "滑块验证状态不存在,请退出重试": "The slider verification status does not exist. Please exit and try again", + "语言不能为空": "The language cannot be empty", + "排序参数需为正整数": "The sorting parameter must be a positive integer", + "请先创建中文版本套餐": "Please create the Chinese version bundle first", + "增值服务不存在": "Value-added service does not exist", + "所选增值服务币种与套餐币种不一致": "The selected value-added service currency is not the same as the bundle currency", + "文件转换失败": "File conversion failed", + "每种增值服务类型只可选择一个": "Each type of value-added service can only be selected once", + "保存套餐与增值服务关联失败": "Failed to save bundle with value-added service association", + "删除套餐与增值服务关联失败": "Failed to delete bundle with value-added service association", + "查询套餐与增值服务关联失败": "Failed to query bundle with value-added service association", + "更新套餐与增值服务关联失败": "Failed to update bundle with value-added service association", + "查询增值服务失败": "Failed to query value-added service", + "更新套餐状态失败": "Failed to update bundle status", + "查询增值服务详情失败": "Failed to query value-added service details", + "序列化转换失败": "Serialization conversion failed", + "保存套餐历史记录失败": "Failed to save bundle history record", + "原价不能为空": "Original price cannot be empty", + "原价格式转换失败": "Original price format conversion failed", + "数量参数需为0-99": "Quantity parameter must be between 0 and 99", + "优惠单价需小于等于原价": "The discounted price must be less than or equal to the original price", + "请先创建中文版本增值服务": "Please create the Chinese version value-added service first", + "保存增值服务失败": "Failed to save value-added service", + "保存增值服务历史记录失败": "Failed to save value-added service history record", + "更新增值服务失败": "Failed to update value-added service", + "查询增值服务列表失败": "Failed to query value-added service list", + "计算价格失败": "Failed to calculate price", + "更新成功": "Update successful", + "保存成功": "Save successful", + "优惠单价转换失败": "Discount unit price conversion failed", + "符号错误": "Symbol error", + "条件存在冲突,请重新设置": "Condition conflict exists, please reconfigure", + "币种已修改,已取消关联部分增值服务": "Currency has been modified, some value-added services have been unlinked", + "币种已修改,已取消关联部分套餐": "Currency has been modified, some packages have been unlinked", + "新增增值服务成功": "Successfully added value-added service", + "状态值无效": "Invalid status value", + "套餐已上架,请勿重复操作": "Plan is already published, do not repeat the operation", + "套餐已下架,请勿重复操作": "Plan is already unpublished, do not repeat the operation", + "请先实名": "Please use your real name first", + "实名审核中": "Real-name verification is underway", + "实名审核失败": "The real-name verification failed", + "未知实名状态": "Unknown real-name status", } var DeDEMessages = map[string]string{ @@ -99,23 +136,60 @@ var DeDEMessages = map[string]string{ "系统提示:已经发送过,验证码尚可用": "Systemnachricht: Bereits gesendet, Verifizierungscode ist noch verfügbar", "您的手机号当天发送次数过多,请联系管理员通过密码登录": "Ihre Telefonnummer wurde an diesem Tag zu oft gesendet. Bitte wenden Sie sich an den Administrator, um sich über das Passwort anzumelden", "您的手机号验证码错误,请确认之后注册": "Ihre Telefonnummer Verifizierungscode ist falsch, bitte bestätigen und registrieren", - "手机号不合法": "Telefonnummer ungültig", - "手机号未更改": "Telefonnummer wurde nicht geändert", - "新手机号过期": "Neue Telefonnummer abgelaufen", - "验证码错误": "Verifizierungscode falsch", - "验证码未发送": "Der Verifizierungscode wurde nicht gesendet", - "账号不存在": "Konto existiert nicht", - "已实名": "In echt", - "实名审核中,请勿重复提交": "Während der Echtheitsprüfung bitte nicht wiederholen", - "用户状态异常,无法进行审核": "Der Benutzer ist abnorm und kann nicht geprüft werden. Verfahren", - "验证码已失效": "Der Verifizierungscode ist ungültig", - "服务器错误": "Serverfehler", - "验证失败,请控制拼图对齐缺口": "Überprüfung fehlgeschlagen, bitte Steuerung Puzzle-Ausrichtungslücke", - "滑块验证状态不存在,请退出重试": "Die krümmbestätigung existiert nicht. Bitte beenden sie den vorgang", - "请先实名": "Bitte, nur der name", - "实名审核中": "Contest läuft", - "实名审核失败": "Die confirmation hat versagt", - "未知实名状态": "Noch nicht registriert", + "手机号不合法": "Telefonnummer ungültig", + "手机号未更改": "Telefonnummer wurde nicht geändert", + "新手机号过期": "Neue Telefonnummer abgelaufen", + "验证码错误": "Verifizierungscode falsch", + "验证码未发送": "Der Verifizierungscode wurde nicht gesendet", + "账号不存在": "Konto existiert nicht", + "已实名": "In echt", + "实名审核中,请勿重复提交": "Während der Echtheitsprüfung bitte nicht wiederholen", + "用户状态异常,无法进行审核": "Der Benutzer ist abnorm und kann nicht geprüft werden. Verfahren", + "验证码已失效": "Der Verifizierungscode ist ungültig", + "服务器错误": "Serverfehler", + "验证失败,请控制拼图对齐缺口": "Überprüfung fehlgeschlagen, bitte Steuerung Puzzle-Ausrichtungslücke", + "滑块验证状态不存在,请退出重试": "Die krümmbestätigung existiert nicht. Bitte beenden sie den vorgang", + "语言不能为空": "Sprache darf nicht leer sein", + "排序参数需为正整数": "Sortierparameter muss eine positive ganze Zahl sein", + "请先创建中文版本套餐": "Bitte erstelle das Chinese Version-Paket", + "增值服务不存在": "Der Werbeangebot existiert nicht", + "所选增值服务币种与套餐币种不一致": "Die ausgewählte Währung des Werbeangebots stimmt nicht mit der Währung des Pakets überein", + "文件转换失败": "Datei-Umwandlung fehlgeschlagen", + "每种增值服务类型只可选择一个": "Jeder Werbeangebotstyp kann nur einmal ausgewählt werden", + "保存套餐与增值服务关联失败": "Fehler beim Speichern des Pakets mit Werbeangebot", + "删除套餐与增值服务关联失败": "Fehler beim Löschen des Pakets mit Werbeangebot", + "查询套餐与增值服务关联失败": "Fehler beim Abrufen des Pakets mit Werbeangebot", + "更新套餐与增值服务关联失败": "Fehler beim Aktualisieren des Pakets mit Werbeangebot", + "查询增值服务失败": "Fehler beim Abrufen des Werbeangebots", + "更新套餐状态失败": "Fehler beim Aktualisieren des Paketstatus", + "查询增值服务详情失败": "Fehler beim Abrufen der Werbeangebotsdetails", + "序列化转换失败": "Fehler beim Serialisieren", + "保存套餐历史记录失败": "Fehler beim Speichern des Pakethistorie", + "原价不能为空": "Der reguläre Preis darf nicht leer sein", + "原价格式转换失败": "Fehler beim Umwandeln des regulären Preises", + "数量参数需为0-99": "Die Anzahlsmusterparameter muss eine positive ganze Zahl sein", + "优惠单价需小于等于原价": "Der Rabattpreis muss kleiner oder gleich dem regulären Preis sein", + "请先创建中文版本增值服务": "Bitte erstelle das Chinese Version-Werbeangebot", + "保存增值服务失败": "Fehler beim Speichern des Werbeangebots", + "保存增值服务历史记录失败": "Fehler beim Speichern des Werbeangebots-Historie", + "更新增值服务失败": "Fehler beim Aktualisieren des Werbeangebots", + "查询增值服务列表失败": "Fehler beim Abrufen der Werbeangebotsliste", + "计算价格失败": "Fehler beim Berechnen des Preises", + "更新成功": "Aktualisierung erfolgreich", + "保存成功": "Speichern erfolgreich", + "优惠单价转换失败": "Rabatt-Einzelpreisumrechnung fehlgeschlagen", + "符号错误": "Symbolfehler", + "条件存在冲突,请重新设置": "Bedingungskonflikt vorhanden, bitte neu konfigurieren", + "币种已修改,已取消关联部分增值服务": "Währung wurde geändert, einige Mehrwertdienste wurden getrennt", + "币种已修改,已取消关联部分套餐": "Währung wurde geändert, einige Pakete wurden getrennt", + "新增增值服务成功": "Mehrwertdienst erfolgreich hinzugefügt", + "状态值无效": "Ungültiger Statuswert", + "套餐已上架,请勿重复操作": "Paket ist bereits veröffentlicht, bitte nicht wiederholen", + "套餐已下架,请勿重复操作": "Paket ist bereits zurückgezogen, bitte nicht wiederholen", + "请先实名": "Bitte, nur der name", + "实名审核中": "Contest läuft", + "实名审核失败": "Die confirmation hat versagt", + "未知实名状态": "Noch nicht registriert", } var JaJPMessages = map[string]string{ @@ -167,10 +241,48 @@ var JaJPMessages = map[string]string{ "服务器错误": "サーバーエラー", "验证失败,请控制拼图对齐缺口": "検証に失敗しました。パズルの整列ギャップを制御してください", "滑块验证状态不存在,请退出重试": "スライダー検証状態が存在しません,リトライをログアウトしてください", - "请先实名": "まずは実名でお願いします", - "实名审核中": "実名審査中です", - "实名审核失败": "実名検証失敗です", - "未知实名状态": "未知の実名状態です", + + "语言不能为空": "言語が空です", + "排序参数需为正整数": "ソートパラメーターは正の整数でなければなりません", + "请先创建中文版本套餐": "最初に中国語バージョンのパッケージを作成してください", + "增值服务不存在": "付加サービスは存在しません", + "所选增值服务币种与套餐币种不一致": "選択した付加サービスの通貨とパッケージの通貨が一致しません", + "文件转换失败": "ファイル変換に失敗しました", + "每种增值服务类型只可选择一个": "各種付加サービスタイプは一つしか選択できません", + "保存套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの保存に失敗しました", + "删除套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの削除に失敗しました", + "查询套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの検索に失敗しました", + "更新套餐与增值服务关联失败": "パッケージと付加サービスの関連付けの更新に失敗しました", + "查询增值服务失败": "付加サービスの検索に失敗しました", + "更新套餐状态失败": "パッケージステータスの更新に失敗しました", + "查询增值服务详情失败": "付加サービスの詳細検索に失敗しました", + "序列化转换失败": "シリアライズ変換に失敗しました", + "保存套餐历史记录失败": "パッケージ履歴の保存に失敗しました", + "原价不能为空": "原価は空にできません", + "原价格式转换失败": "原価のフォーマット変換に失敗しました", + "数量参数需为0-99": "数量パラメーターは0-99でなければなりません", + "优惠单价需小于等于原价": "割引単価は原価以下でなければなりません", + "请先创建中文版本增值服务": "最初に中国語バージョンの付加サービスを作成してください", + "保存增值服务失败": "付加サービスの保存に失敗しました", + "保存增值服务历史记录失败": "付加サービス履歴の保存に失敗しました", + "更新增值服务失败": "付加サービスの更新に失敗しました", + "查询增值服务列表失败": "付加サービスリストの検索に失敗しました", + "计算价格失败": "価格計算に失敗しました", + "更新成功": "更新が成功しました", + "保存成功": "保存が成功しました", + "优惠单价转换失败": "割引単価変換に失敗しました", + "符号错误": "記号エラー", + "条件存在冲突,请重新设置": "条件が競合しています、再設定してください", + "币种已修改,已取消关联部分增值服务": "通貨が変更され、一部の付加サービスの関連付けが解除されました", + "币种已修改,已取消关联部分套餐": "通貨が変更され、一部のパッケージの関連付けが解除されました", + "新增增值服务成功": "付加サービスの追加に成功しました", + "状态值无效": "状態値が無効です", + "套餐已上架,请勿重复操作": "プランはすでに公開済みです、重複操作は避けてください", + "套餐已下架,请勿重复操作": "プランはすでに非公開です、重複操作は避けてください", + "请先实名": "まずは実名でお願いします", + "实名审核中": "実名審査中です", + "实名审核失败": "実名検証失敗です", + "未知实名状态": "未知の実名状態です", } var ZhTWMessages = map[string]string{ @@ -222,14 +334,52 @@ var ZhTWMessages = map[string]string{ "服务器错误": "服務器錯誤", "验证失败,请控制拼图对齐缺口": "驗證失敗,請控制拼圖對齊缺口", "滑块验证状态不存在,请退出重试": "滑塊驗證狀態不存在,請退出重試", - "请先实名": "請先實名", - "实名审核中": "實名審覈中", - "实名审核失败": "實名審覈失敗", - "未知实名状态": "未知實名狀態", - "已存在标题相同的数据": "已存在標題相同的數據", - "展示数量不能超过5个": "展示數量不能超過5個", - "查询失败": "查詢失敗", - "操作失败": "操作失敗", + + "语言不能为空": "語言不能為空", + "排序参数需为正整数": "排序參數需為正整數", + "请先创建中文版本套餐": "請先建立中文版本套餐", + "增值服务不存在": "增值服務不存在", + "所选增值服务币种与套餐币种不一致": "所選增值服務幣種與套餐幣種不一致", + "文件转换失败": "文件轉換失敗", + "每种增值服务类型只可选择一个": "每種增值服務類型只可選擇一個", + "保存套餐与增值服务关联失败": "保存套餐與增值服務關聯失敗", + "删除套餐与增值服务关联失败": "刪除套餐與增值服務關聯失敗", + "查询套餐与增值服务关联失败": "查詢套餐與增值服務關聯失敗", + "更新套餐与增值服务关联失败": "更新套餐與增值服務關聯失敗", + "查询增值服务失败": "查詢增值服務失敗", + "更新套餐状态失败": "更新套餐狀態失敗", + "查询增值服务详情失败": "查詢增值服務詳情失敗", + "序列化转换失败": "序列化轉換失敗", + "保存套餐历史记录失败": "保存套餐歷史記錄失敗", + "原价不能为空": "原價不能為空", + "原价格式转换失败": "原價格式轉換失敗", + "数量参数需为0-99": "數量參數需為0-99", + "优惠单价需小于等于原价": "優惠單價需小於等於原價", + "请先创建中文版本增值服务": "請先建立中文版本增值服務", + "保存增值服务失败": "保存增值服務失敗", + "保存增值服务历史记录失败": "保存增值服務歷史記錄失敗", + "更新增值服务失败": "更新增值服務失敗", + "查询增值服务列表失败": "查詢增值服務列表失敗", + "计算价格失败": "計算價格失敗", + "更新成功": "更新成功", + "保存成功": "儲存成功", + "优惠单价转换失败": "優惠單價轉換失敗", + "符号错误": "符號錯誤", + "条件存在冲突,请重新设置": "條件存在衝突,請重新設定", + "币种已修改,已取消关联部分增值服务": "幣種已修改,已取消關聯部分增值服務", + "币种已修改,已取消关联部分套餐": "幣種已修改,已取消關聯部分套餐", + "新增增值服务成功": "新增增值服務成功", + "状态值无效": "狀態值無效", + "套餐已上架,请勿重复操作": "套餐已上架,請勿重複操作", + "套餐已下架,请勿重复操作": "套餐已下架,請勿重複操作", + "请先实名": "請先實名", + "实名审核中": "實名審覈中", + "实名审核失败": "實名審覈失敗", + "未知实名状态": "未知實名狀態", + "已存在标题相同的数据": "已存在標題相同的數據", + "展示数量不能超过5个": "展示數量不能超過5個", + "查询失败": "查詢失敗", + "操作失败": "操作失敗", "参数缺失": "參數缺失", "创建失败": "創建失敗", diff --git a/pkg/router/valueAddBundle.go b/pkg/router/valueAddBundle.go index 38fc255..25a935a 100644 --- a/pkg/router/valueAddBundle.go +++ b/pkg/router/valueAddBundle.go @@ -23,10 +23,22 @@ func ValueAddBundleRouter(r *gin.RouterGroup) { bundleClientRoute.POST("list", bundle.ValueAddBundleList) bundleClientRoute.POST("detail", bundle.ValueAddBundleDetail) } - - valueAddBundleAppRoute = valueAddBundleAppRoute.Group("system") + bundleClientRouteV2 := valueAddBundleRoute.Group("system/v2") { - valueAddBundleAppRoute.POST("list", bundle.ValueAddBundleList) + bundleClientRouteV2.POST("save", bundle.SaveValueAddService) + bundleClientRouteV2.POST("list", bundle.ValueAddServiceList) + bundleClientRouteV2.POST("detail", bundle.ValueAddServiceDetail) + } + + valueAddBundleAppRouteV1 := valueAddBundleAppRoute.Group("system") + { + valueAddBundleAppRouteV1.POST("list", bundle.ValueAddBundleList) + } + valueAddBundleAppRouteV2 := valueAddBundleAppRoute.Group("system/v2") + { + valueAddBundleAppRouteV2.POST("list", bundle.ValueAddServiceList) + valueAddBundleAppRouteV2.POST("detail", bundle.ValueAddServiceDetail) + valueAddBundleAppRouteV2.POST("detail/lang", bundle.ValueAddServiceLangDetail) } } diff --git a/pkg/service/bundle/bundleProfile.go b/pkg/service/bundle/bundleProfile.go index de779e6..d229aa4 100644 --- a/pkg/service/bundle/bundleProfile.go +++ b/pkg/service/bundle/bundleProfile.go @@ -118,7 +118,8 @@ func BundleDetailV2(c *gin.Context) { service.Error(c, err) return } - + language := c.GetHeader("Accept-Language") + req.Language = language res, err := service.BundleProvider.BundleDetailV2(context.Background(), &req) if err != nil { service.Error(c, err) @@ -143,12 +144,10 @@ func HandShelf(c *gin.Context) { func OnlyAddValueListByOrderNo(c *gin.Context) { var req bundle.OnlyAddValueListByOrderNoRequest - if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { service.Error(c, err) return } - res, err := service.BundleProvider.OnlyAddValueListByOrderNo(context.Background(), &req) if err != nil { service.Error(c, err) @@ -157,3 +156,19 @@ func OnlyAddValueListByOrderNo(c *gin.Context) { service.Success(c, res) } +func BundleListH5V2(c *gin.Context) { + var req bundle.BundleListRequest + + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error(c, err) + return + } + + res, err := service.BundleProvider.BundleListH5V2(context.Background(), &req) + if err != nil { + service.Error(c, err) + return + } + + service.Success(c, res) +} diff --git a/pkg/service/bundle/valueAddBundle.go b/pkg/service/bundle/valueAddBundle.go index f9b1729..4978196 100644 --- a/pkg/service/bundle/valueAddBundle.go +++ b/pkg/service/bundle/valueAddBundle.go @@ -67,3 +67,65 @@ func ValueAddBundleDetail(c *gin.Context) { service.Success1(c, res.Msg, res) } + +func SaveValueAddService(c *gin.Context) { + var req bundle.ValueAddServiceLang + + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error1(c, err) + return + } + + res, err := service.BundleProvider.SaveValueAddService(context.Background(), &req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) +} +func ValueAddServiceList(c *gin.Context) { + var req bundle.ValueAddServiceListRequest + + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error1(c, err) + return + } + + res, err := service.BundleProvider.ValueAddServiceList(context.Background(), &req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) +} +func ValueAddServiceDetail(c *gin.Context) { + var req bundle.ValueAddServiceDetailRequest + + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error1(c, err) + return + } + + res, err := service.BundleProvider.ValueAddServiceDetail(context.Background(), &req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) +} +func ValueAddServiceLangDetail(c *gin.Context) { + var req bundle.ValueAddServiceDetailRequest + + if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil { + service.Error1(c, err) + return + } + language := c.GetHeader("Accept-Language") + req.Language = language + res, err := service.BundleProvider.ValueAddServiceLangByUuidAndLanguage(context.Background(), &req) + if err != nil { + service.Error(c, err) + return + } + service.Success(c, res) +}