From cf3d09b39ad37e0d841edb58fc45c81e73c62799 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Tue, 13 Jul 2021 16:31:46 +0800 Subject: [PATCH] check --- business/jxstore/cms/print.go | 96 ++++++++++++++++++++++++----------- controllers/api_controller.go | 9 ++-- 2 files changed, 72 insertions(+), 33 deletions(-) diff --git a/business/jxstore/cms/print.go b/business/jxstore/cms/print.go index ec23ba680..8ae71fc2d 100644 --- a/business/jxstore/cms/print.go +++ b/business/jxstore/cms/print.go @@ -54,24 +54,10 @@ func AddPrinter(appID int, printers []*model.Printer) (err error) { errs = append(errs, fmt.Errorf("此应用已经绑定了该打印机!print_no : %v ", v.PrintNo)) continue } - //验证手机号 - if v.SIM != "" { - if regexpMobile.FindString(v.SIM) == "" { - errs = append(errs, fmt.Errorf("请输入正确的sim卡号码!print_no : %v ", v.PrintNo)) - continue - } - } - if v.Volume != 0 { - if v.Volume < 0 || v.Volume > 5 { - errs = append(errs, fmt.Errorf("请输入正确的音量!print_no : %v ", v.PrintNo)) - continue - } - } - if v.Sound != "" { - if soundMap[v.Sound] == "" { - errs = append(errs, fmt.Errorf("请输入正确的提示音!print_no : %v ", v.PrintNo)) - continue - } + //验证 + if err = checkPrinterInfo(v.PrintNo, v.Name, v.Sound, v.SIM, v.Volume); err != nil { + errs = append(errs, err) + continue } printer := &model.Printer{ AppID: appID, @@ -96,6 +82,30 @@ func AddPrinter(appID int, printers []*model.Printer) (err error) { return err } +func checkPrinterInfo(printNo, name, sound, sim string, volume int) (err error) { + if sim != "" { + if regexpMobile.FindString(sim) == "" { + return fmt.Errorf("请输入正确的sim卡号码!print_no : %v ", printNo) + } + } + if volume != 0 { + if volume < 0 || volume > 5 { + return fmt.Errorf("请输入正确的音量!print_no : %v ", printNo) + } + } + if sound != "" { + if soundMap[sound] == "" { + return fmt.Errorf("请输入正确的提示音!print_no : %v ", printNo) + } + } + if name != "" { + if len(name) > 20 { + return fmt.Errorf("打印机备注不能超过20个字符!print_no : %v ", printNo) + } + } + return err +} + func DelPrinter(appID int, printNos []string) (err error) { var ( db = dao.GetDB() @@ -128,21 +138,47 @@ func UpdatePrinter(appID int, printNo string, name, sim, sound *string, volume * if printers, _ := dao.GetPrinters(db, appID, printNo); len(printers) == 0 { return fmt.Errorf("该应用下未找到该打印机!print_no : %v", printNo) } else { - if name != nil && printers[0].Name != *name { - printers[0].Name = *name - fields = append(fields, "name") + if name != nil { + if *name != "" { + if len(*name) > 20 { + return fmt.Errorf("打印机备注不能超过20个字符!print_no : %v ", printNo) + } + } + if printers[0].Name != *name { + printers[0].Name = *name + fields = append(fields, "name") + } } - if sim != nil && printers[0].SIM != *sim { - printers[0].SIM = *sim - fields = append(fields, "sim") + if sim != nil { + if *sim != "" { + if regexpMobile.FindString(*sim) == "" { + return fmt.Errorf("请输入正确的sim卡号码!print_no : %v ", printNo) + } + } + if printers[0].SIM != *sim { + printers[0].SIM = *sim + fields = append(fields, "sim") + } } - if sound != nil && printers[0].Sound != *sound { - printers[0].Sound = *sound - fields = append(fields, "sound") + if sound != nil { + if soundMap[*sound] == "" { + return fmt.Errorf("请输入正确的提示音!print_no : %v ", printNo) + } + if printers[0].Sound != *sound { + printers[0].Sound = *sound + fields = append(fields, "sound") + } } - if volume != nil && printers[0].Volume != *volume { - printers[0].Volume = *volume - fields = append(fields, "volume") + if volume != nil { + if *volume != 0 { + if *volume < 0 || *volume > 5 { + return fmt.Errorf("请输入正确的音量!print_no : %v ", printNo) + } + } + if printers[0].Volume != *volume { + printers[0].Volume = *volume + fields = append(fields, "volume") + } } if _, err = dao.UpdateEntity(db, printers[0], fields...); err != nil { return err diff --git a/controllers/api_controller.go b/controllers/api_controller.go index 7879d3860..a6516a232 100644 --- a/controllers/api_controller.go +++ b/controllers/api_controller.go @@ -38,6 +38,9 @@ const ( keyOrderNo = "order_no" keyContent = "content" keyMsgID = "msg_id" + keySound = "sound" + keyVolume = "volume" + keySim = "sim" ) var ( @@ -265,17 +268,17 @@ func (c *ApiController) UpdatePrinter(dataMap map[string]interface{}) (data, err } else { name = &nameStr } - if simStr, ok := dataMap["sim"].(string); !ok { + if simStr, ok := dataMap[keySim].(string); !ok { sim = nil } else { sim = &simStr } - if soundStr, ok := dataMap["sound"].(string); !ok { + if soundStr, ok := dataMap[keySound].(string); !ok { sound = nil } else { sound = &soundStr } - if volumeInt, ok := dataMap["volume"].(int); !ok { + if volumeInt, ok := dataMap[keyVolume].(int); !ok { volume = nil } else { volume = &volumeInt