耳机阻抗数据:过滤了阻抗=0,耳机型号乱码的数据
This commit is contained in:
@@ -56,6 +56,15 @@ func (h *ImpedanceHandler) ReportImpedance(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 品牌/型号含乱码或控制字符、超长属于无效数据,静默丢弃
|
||||||
|
if !isValidHeadphoneText(brand) || !isValidHeadphoneText(headphoneModel) {
|
||||||
|
c.JSON(http.StatusOK, gin.H{
|
||||||
|
"code": 200,
|
||||||
|
"msg": "操作成功",
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
impedance, err := strconv.Atoi(valueStr)
|
impedance, err := strconv.Atoi(valueStr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(http.StatusOK, gin.H{
|
c.JSON(http.StatusOK, gin.H{
|
||||||
@@ -65,6 +74,15 @@ func (h *ImpedanceHandler) ReportImpedance(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 阻抗值为 0 属于无效数据,静默丢弃
|
||||||
|
if impedance == 0 {
|
||||||
|
c.JSON(http.StatusOK, gin.H{
|
||||||
|
"code": 200,
|
||||||
|
"msg": "操作成功",
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
brandNorm := normalizeHeadphoneText(brand)
|
brandNorm := normalizeHeadphoneText(brand)
|
||||||
modelNorm := normalizeHeadphoneText(headphoneModel)
|
modelNorm := normalizeHeadphoneText(headphoneModel)
|
||||||
|
|
||||||
@@ -110,6 +128,19 @@ func normalizeHeadphoneText(s string) string {
|
|||||||
return strings.ToLower(strings.TrimSpace(s))
|
return strings.ToLower(strings.TrimSpace(s))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isValidHeadphoneText 校验耳机品牌/型号:拒绝含乱码字符(U+FFFD)、控制字符及超长(>100 字符)的输入
|
||||||
|
func isValidHeadphoneText(s string) bool {
|
||||||
|
if len(s) > 100 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
for _, r := range s {
|
||||||
|
if r == '\ufffd' || r < 0x20 || r == 0x7f {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
func impedanceRedisField(mac, brandNorm, modelNorm string) string {
|
func impedanceRedisField(mac, brandNorm, modelNorm string) string {
|
||||||
return fmt.Sprintf("%s|%s|%s", mac, brandNorm, modelNorm)
|
return fmt.Sprintf("%s|%s|%s", mac, brandNorm, modelNorm)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user