下面是使用golang beego实现按照status排序的代码:

var modelDao = dao.NewVHumanVoiceModelDao()
models, err := modelDao.GetAllV2(user.Id)
if err != nil {
    logs.Error("%s, err = %v", commonInfo, err)
    this.OnError(errno.EC_InnerError, errno.EM_InnerError)
    return
}

var modelItems = make([]VoiceModel, 0, len(models))
for i := 0; i < len(models); i++ {
    if models[i].IsDeleted == true {
        continue
    }
    modelItem := VoiceModel{
        Id:         models[i].Id,
        Status:     models[i].Status,
        Percent:    models[i].Percent,
        CreateTime: models[i].CreateTime,
        UpdateTime: models[i].UpdateTime,
    }
    if modelItem.Status == common.ModelStatus_Wait {
        modelItem.Weight = 3 // 待处理
    } else if modelItem.Status == common.ModelStatus_Succes {
        modelItem.Weight = 1 // 已生成
    } else if modelItem.Status == common.ModelStatus_InProgress {
        modelItem.Weight = 2 // 生成中
    } else {
        modelItem.Weight = 4 // 失败
    }
    modelItems = append(modelItems, modelItem)
}

sort.Slice(modelItems, func(i, j int) bool {
    return modelItems[i].Weight < modelItems[j].Weight
})

result["models"] = modelItems

首先,我们创建了一个modelItems的切片来存储排序后的数据。然后,根据不同的Status值,为每个模型项设置对应的Weight值。最后,我们使用sort.Slice函数来按照Weight值对modelItems进行排序。最终,将排序后的modelItems存入result

请使用golang beego实现下面的功能:按照status排序排序规则是1status为ModelStatus_Succes的数据排列在最前2:status为ModelStatus_InProgress的数据排列在第二3status为ModelStatus_Wait时的数据排列在第三4status为其他状态时排序在最后。代码如下:var modelDao = daoNewVHumanVoice

原文地址: http://www.cveoy.top/t/topic/h72T 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录