使⽤sequelize进⾏列表排序
官⽅⽂档:
需求: 上传安卓包的时候,可以拿到⼀个上传的列表,这时候我要根据上传的时间进⾏排序,并且拿到最新的版本号,所以这⾥分2个service进⾏处理,这⾥要⽤sequelize⾥⾯提供的order的⽅法进⾏排序,不能⽤sort,因为这⾥是对所有的数据进⾏排序.害,只能怪我脑⼦⾥⾯都是前端代码~~~
主要是order: [[ 'versionName', 'DESC' ]],的使⽤,不难,只是说刚到遇到这⾥实例记录⼀下⽽已
controller
/**
* 版本新增列表
*/
async versionManage() {
const { ctx } = this
const { limit, offset } = this.quest.query)
const { list, total } = await this.service.versionManage.versionManage.versionManage({ limit, offset })
let installTotal = 0
// 计算出安装的总数
list.forEach(item => {
installTotal += +item.installEquipmentNum
})
this.success({ data: { list, total, installTotal } })
}
/**
* 获取最新的版本以及pkg
*/
async newestVersion() {
const data = await this.service.westVersion()
const newestVersion = {
newVersionName: data[0] && data[0].versionName || '',
newPkg: data[0] && data[0].pkg || '',
}
this.success({ data: newestVersion })
}
service
'use strict'
const Service = require('egg').Service
// 版本管理
class versionManageService extends Service {
/**
* 版本更新信息列表
* @param { Object } object 传⼊的对象
* @param { String } object.limit 限制的返回的数据⾏数
* @param { String } object.offset 返回⾏之前忽略多少⾏
*/
async versionManage({ limit, offset }) {
const { rows, count } = del.HxVersions.findAndCountAll({
attributes: { exclude: [ 'createdAt', 'updatedAt' ] },
order: [[ 'updated_at', 'DESC' ]],
offset,
limit,
})
return { list: rows, total: count }
}
/**
* 最新的版本号
*/
async newestVersion() {
return del.HxVersions.findAll({
attributes: { exclude: [ 'createdAt', 'updatedAt' ] },
order: [[ 'versionName', 'DESC' ]],
offset: 0,
limit: 1,
})
}
/**
* 添加版本信息
用sort out* @param { Object } body 传⼊的参数对象
*/
async addPackage(body) {
return del.HxVersions.upsert(body)
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。