From 4eae3b2177da85a0f945230884f5d68f6c2efc81 Mon Sep 17 00:00:00 2001 From: liuzhifei <2679431923@qq.com> Date: Fri, 20 Sep 2024 17:51:42 +0800 Subject: [PATCH 1/4] ratio must gte 0 --- common/group-ratio.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/common/group-ratio.go b/common/group-ratio.go index 416ba037..ef132624 100644 --- a/common/group-ratio.go +++ b/common/group-ratio.go @@ -2,6 +2,7 @@ package common import ( "encoding/json" + "errors" ) var GroupRatio = map[string]float64{ @@ -19,8 +20,14 @@ func GroupRatio2JSONString() string { } func UpdateGroupRatioByJSONString(jsonStr string) error { - GroupRatio = make(map[string]float64) - return json.Unmarshal([]byte(jsonStr), &GroupRatio) + tempGroupRatio := make(map[string]float64) + err := json.Unmarshal([]byte(jsonStr), &tempGroupRatio) + err = checkGroupRatio(tempGroupRatio) + if err != nil { + return err + } + GroupRatio = tempGroupRatio + return err } func GetGroupRatio(name string) float64 { @@ -31,3 +38,12 @@ func GetGroupRatio(name string) float64 { } return ratio } + +func checkGroupRatio(checkGroupRatio map[string]float64) error { + for name, ratio := range checkGroupRatio { + if ratio < 0 { + return errors.New("group ratio must be greater than 0: " + name) + } + } + return nil +} From 1d064a2e880c6c2e47db1ea34a62ad3704417538 Mon Sep 17 00:00:00 2001 From: liuzhifei <2679431923@qq.com> Date: Fri, 20 Sep 2024 18:09:40 +0800 Subject: [PATCH 2/4] ratio must gte 0 --- common/group-ratio.go | 17 ++++++++--------- controller/option.go | 9 +++++++++ .../Setting/Operation/SettingsMagnification.js | 5 +++++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/common/group-ratio.go b/common/group-ratio.go index ef132624..e4d52fc7 100644 --- a/common/group-ratio.go +++ b/common/group-ratio.go @@ -20,14 +20,8 @@ func GroupRatio2JSONString() string { } func UpdateGroupRatioByJSONString(jsonStr string) error { - tempGroupRatio := make(map[string]float64) - err := json.Unmarshal([]byte(jsonStr), &tempGroupRatio) - err = checkGroupRatio(tempGroupRatio) - if err != nil { - return err - } - GroupRatio = tempGroupRatio - return err + GroupRatio = make(map[string]float64) + return json.Unmarshal([]byte(jsonStr), &GroupRatio) } func GetGroupRatio(name string) float64 { @@ -39,7 +33,12 @@ func GetGroupRatio(name string) float64 { return ratio } -func checkGroupRatio(checkGroupRatio map[string]float64) error { +func CheckGroupRatio(jsonStr string) error { + checkGroupRatio := make(map[string]float64) + err := json.Unmarshal([]byte(jsonStr), &GroupRatio) + if err != nil { + return err + } for name, ratio := range checkGroupRatio { if ratio < 0 { return errors.New("group ratio must be greater than 0: " + name) diff --git a/controller/option.go b/controller/option.go index 7c4db41c..15fdb8c9 100644 --- a/controller/option.go +++ b/controller/option.go @@ -74,6 +74,15 @@ func UpdateOption(c *gin.Context) { }) return } + case "GroupRatio": + err = common.CheckGroupRatio(option.Value) + if err != nil { + c.JSON(http.StatusOK, gin.H{ + "success": false, + "message": err.Error(), + }) + return + } } err = model.UpdateOption(option.Key, option.Value) if err != nil { diff --git a/web/src/pages/Setting/Operation/SettingsMagnification.js b/web/src/pages/Setting/Operation/SettingsMagnification.js index ef9a1c21..4a70f11f 100644 --- a/web/src/pages/Setting/Operation/SettingsMagnification.js +++ b/web/src/pages/Setting/Operation/SettingsMagnification.js @@ -50,6 +50,11 @@ export default function SettingsMagnification(props) { if (res.includes(undefined)) return showError('部分保存失败,请重试'); } + for (let i = 0; i < res.length; i++) { + if (!res[i].success) { + return showError(res[i].message) + } + } showSuccess('保存成功'); props.refresh(); }) From 3d33079de00fcb3b89ddf62d3337bf4f6b824021 Mon Sep 17 00:00:00 2001 From: liuzhifei <2679431923@qq.com> Date: Fri, 20 Sep 2024 18:27:16 +0800 Subject: [PATCH 3/4] ratio must gte 0 --- common/group-ratio.go | 2 +- web/src/pages/Setting/Operation/SettingsMagnification.js | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/common/group-ratio.go b/common/group-ratio.go index e4d52fc7..9df72975 100644 --- a/common/group-ratio.go +++ b/common/group-ratio.go @@ -35,7 +35,7 @@ func GetGroupRatio(name string) float64 { func CheckGroupRatio(jsonStr string) error { checkGroupRatio := make(map[string]float64) - err := json.Unmarshal([]byte(jsonStr), &GroupRatio) + err := json.Unmarshal([]byte(jsonStr), &checkGroupRatio) if err != nil { return err } diff --git a/web/src/pages/Setting/Operation/SettingsMagnification.js b/web/src/pages/Setting/Operation/SettingsMagnification.js index 4a70f11f..3c7a3d61 100644 --- a/web/src/pages/Setting/Operation/SettingsMagnification.js +++ b/web/src/pages/Setting/Operation/SettingsMagnification.js @@ -51,14 +51,16 @@ export default function SettingsMagnification(props) { return showError('部分保存失败,请重试'); } for (let i = 0; i < res.length; i++) { - if (!res[i].success) { - return showError(res[i].message) + if (!res[i].data.success) { + return showError(res[i].data.message) } } showSuccess('保存成功'); props.refresh(); }) - .catch(() => { + .catch(error => { + console.error('Unexpected error in Promise.all:', error); + showError('保存失败,请重试'); }) .finally(() => { From e0f19e5ed7f2be2a1835bab2dbea16143f4d23ac Mon Sep 17 00:00:00 2001 From: liuzhifei <2679431923@qq.com> Date: Fri, 20 Sep 2024 18:33:17 +0800 Subject: [PATCH 4/4] ratio must gte 0 --- common/group-ratio.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/group-ratio.go b/common/group-ratio.go index 9df72975..673b447d 100644 --- a/common/group-ratio.go +++ b/common/group-ratio.go @@ -41,7 +41,7 @@ func CheckGroupRatio(jsonStr string) error { } for name, ratio := range checkGroupRatio { if ratio < 0 { - return errors.New("group ratio must be greater than 0: " + name) + return errors.New("group ratio must be not less than 0: " + name) } } return nil