//解析搜索条件内容 func ParseSearchContent(search string) *models.Deviceinfo { beego.Debug("searchCondition=", search) searchInfo := make(map[string]string) searchs := strings.Split(search, "&&") for _, item := range searchs { if item == "" { continue } else { info := strings.Split(item, "=") searchInfo[info[0]] = info[1] } } beego.Debug("searchInfo=", searchInfo) ds_flag := false var device models.Deviceinfo for key, value := range searchInfo { //去掉所有空格 key = strings.Replace(key, " ", "", -1) value = strings.Replace(value, " ", "", -1) beego.Debug("key=", key, "value=", value) switch key { case "mac": device.Mac = value case "ip": device.IpAddress = value case "dsn": device.HostSn = value case "lc": device.IpLocation = value case "fr": if value != "" { t, err := time.Parse(TimeFormat, value) if err != nil { beego.Error(err) } device.FirstRegistrationTime = t } case "lr": if value != "" { t, err := time.Parse(TimeFormat, value) if err != nil { beego.Error(err) } device.LastRegistrationTime = t } case "fw": device.FirmwareVersion = value case "ds": ds_flag = true device.State, _ = strconv.Atoi(value) default: } } if !ds_flag { device.State = -1 } return &device }