增加排序参数

This commit is contained in:
dushixiang 2021-03-05 17:33:13 +08:00
parent 0ef8f4276e
commit 1472ec73a7
18 changed files with 206 additions and 29 deletions

View File

@ -55,8 +55,11 @@ func AssetPagingEndpoint(c echo.Context) error {
userGroupId := c.QueryParam("userGroupId") userGroupId := c.QueryParam("userGroupId")
ip := c.QueryParam("ip") ip := c.QueryParam("ip")
order := c.QueryParam("order")
field := c.QueryParam("field")
account, _ := GetCurrentAccount(c) account, _ := GetCurrentAccount(c)
items, total, err := model.FindPageAsset(pageIndex, pageSize, name, protocol, tags, account, owner, sharer, userGroupId, ip) items, total, err := model.FindPageAsset(pageIndex, pageSize, name, protocol, tags, account, owner, sharer, userGroupId, ip, order, field)
if err != nil { if err != nil {
return err return err
} }

View File

@ -34,7 +34,10 @@ func CommandPagingEndpoint(c echo.Context) error {
content := c.QueryParam("content") content := c.QueryParam("content")
account, _ := GetCurrentAccount(c) account, _ := GetCurrentAccount(c)
items, total, err := model.FindPageCommand(pageIndex, pageSize, name, content, account) order := c.QueryParam("order")
field := c.QueryParam("field")
items, total, err := model.FindPageCommand(pageIndex, pageSize, name, content, order, field, account)
if err != nil { if err != nil {
return err return err
} }

View File

@ -62,8 +62,11 @@ func CredentialPagingEndpoint(c echo.Context) error {
pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) pageSize, _ := strconv.Atoi(c.QueryParam("pageSize"))
name := c.QueryParam("name") name := c.QueryParam("name")
order := c.QueryParam("order")
field := c.QueryParam("field")
account, _ := GetCurrentAccount(c) account, _ := GetCurrentAccount(c)
items, total, err := model.FindPageCredential(pageIndex, pageSize, name, account) items, total, err := model.FindPageCredential(pageIndex, pageSize, name, order, field, account)
if err != nil { if err != nil {
return err return err
} }

View File

@ -29,7 +29,10 @@ func JobPagingEndpoint(c echo.Context) error {
name := c.QueryParam("name") name := c.QueryParam("name")
status := c.QueryParam("status") status := c.QueryParam("status")
items, total, err := model.FindPageJob(pageIndex, pageSize, name, status) order := c.QueryParam("order")
field := c.QueryParam("field")
items, total, err := model.FindPageJob(pageIndex, pageSize, name, status, order, field)
if err != nil { if err != nil {
return err return err
} }

View File

@ -39,7 +39,10 @@ func UserGroupPagingEndpoint(c echo.Context) error {
pageSize, _ := strconv.Atoi(c.QueryParam("pageSize")) pageSize, _ := strconv.Atoi(c.QueryParam("pageSize"))
name := c.QueryParam("name") name := c.QueryParam("name")
items, total, err := model.FindPageUserGroup(pageIndex, pageSize, name) order := c.QueryParam("order")
field := c.QueryParam("field")
items, total, err := model.FindPageUserGroup(pageIndex, pageSize, name, order, field)
if err != nil { if err != nil {
return err return err
} }

View File

@ -37,7 +37,10 @@ func UserPagingEndpoint(c echo.Context) error {
username := c.QueryParam("username") username := c.QueryParam("username")
nickname := c.QueryParam("nickname") nickname := c.QueryParam("nickname")
items, total, err := model.FindPageUser(pageIndex, pageSize, username, nickname) order := c.QueryParam("order")
field := c.QueryParam("field")
items, total, err := model.FindPageUser(pageIndex, pageSize, username, nickname, order, field)
if err != nil { if err != nil {
return err return err
} }

View File

@ -78,7 +78,7 @@ func FindAssetByConditions(protocol string, account User) (o []Asset, err error)
return return
} }
func FindPageAsset(pageIndex, pageSize int, name, protocol, tags string, account User, owner, sharer, userGroupId, ip string) (o []AssetVo, total int64, err error) { func FindPageAsset(pageIndex, pageSize int, name, protocol, tags string, account User, owner, sharer, userGroupId, ip, order, field string) (o []AssetVo, total int64, err error) {
db := global.DB.Table("assets").Select("assets.id,assets.name,assets.ip,assets.port,assets.protocol,assets.active,assets.owner,assets.created,assets.tags, users.nickname as owner_name,COUNT(resource_sharers.user_id) as sharer_count").Joins("left join users on assets.owner = users.id").Joins("left join resource_sharers on assets.id = resource_sharers.resource_id").Group("assets.id") db := global.DB.Table("assets").Select("assets.id,assets.name,assets.ip,assets.port,assets.protocol,assets.active,assets.owner,assets.created,assets.tags, users.nickname as owner_name,COUNT(resource_sharers.user_id) as sharer_count").Joins("left join users on assets.owner = users.id").Joins("left join resource_sharers on assets.id = resource_sharers.resource_id").Group("assets.id")
dbCounter := global.DB.Table("assets").Select("DISTINCT assets.id").Joins("left join resource_sharers on assets.id = resource_sharers.resource_id").Group("assets.id") dbCounter := global.DB.Table("assets").Select("DISTINCT assets.id").Joins("left join resource_sharers on assets.id = resource_sharers.resource_id").Group("assets.id")
@ -145,7 +145,20 @@ func FindPageAsset(pageIndex, pageSize int, name, protocol, tags string, account
if err != nil { if err != nil {
return nil, 0, err return nil, 0, err
} }
err = db.Order("assets.created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
if order == "ascend" {
order = "asc"
} else {
order = "desc"
}
if field == "name" {
field = "name"
} else {
field = "created"
}
err = db.Order("assets." + field + " " + order).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
if o == nil { if o == nil {
o = make([]AssetVo, 0) o = make([]AssetVo, 0)

View File

@ -27,7 +27,7 @@ func (r *Command) TableName() string {
return "commands" return "commands"
} }
func FindPageCommand(pageIndex, pageSize int, name, content string, account User) (o []CommandVo, total int64, err error) { func FindPageCommand(pageIndex, pageSize int, name, content, order, field string, account User) (o []CommandVo, total int64, err error) {
db := global.DB.Table("commands").Select("commands.id,commands.name,commands.content,commands.owner,commands.created, users.nickname as owner_name,COUNT(resource_sharers.user_id) as sharer_count").Joins("left join users on commands.owner = users.id").Joins("left join resource_sharers on commands.id = resource_sharers.resource_id").Group("commands.id") db := global.DB.Table("commands").Select("commands.id,commands.name,commands.content,commands.owner,commands.created, users.nickname as owner_name,COUNT(resource_sharers.user_id) as sharer_count").Joins("left join users on commands.owner = users.id").Joins("left join resource_sharers on commands.id = resource_sharers.resource_id").Group("commands.id")
dbCounter := global.DB.Table("commands").Select("DISTINCT commands.id").Joins("left join resource_sharers on commands.id = resource_sharers.resource_id").Group("commands.id") dbCounter := global.DB.Table("commands").Select("DISTINCT commands.id").Joins("left join resource_sharers on commands.id = resource_sharers.resource_id").Group("commands.id")
@ -53,7 +53,19 @@ func FindPageCommand(pageIndex, pageSize int, name, content string, account User
return nil, 0, err return nil, 0, err
} }
err = db.Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error if order == "ascend" {
order = "asc"
} else {
order = "desc"
}
if field == "name" {
field = "name"
} else {
field = "created"
}
err = db.Order("commands." + field + " " + order).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
if o == nil { if o == nil {
o = make([]CommandVo, 0) o = make([]CommandVo, 0)
} }

View File

@ -52,7 +52,7 @@ func FindAllCredential(account User) (o []CredentialSimpleVo, err error) {
return return
} }
func FindPageCredential(pageIndex, pageSize int, name string, account User) (o []CredentialVo, total int64, err error) { func FindPageCredential(pageIndex, pageSize int, name, order, field string, account User) (o []CredentialVo, total int64, err error) {
db := global.DB.Table("credentials").Select("credentials.id,credentials.name,credentials.type,credentials.username,credentials.owner,credentials.created,users.nickname as owner_name,COUNT(resource_sharers.user_id) as sharer_count").Joins("left join users on credentials.owner = users.id").Joins("left join resource_sharers on credentials.id = resource_sharers.resource_id").Group("credentials.id") db := global.DB.Table("credentials").Select("credentials.id,credentials.name,credentials.type,credentials.username,credentials.owner,credentials.created,users.nickname as owner_name,COUNT(resource_sharers.user_id) as sharer_count").Joins("left join users on credentials.owner = users.id").Joins("left join resource_sharers on credentials.id = resource_sharers.resource_id").Group("credentials.id")
dbCounter := global.DB.Table("credentials").Select("DISTINCT credentials.id").Joins("left join resource_sharers on credentials.id = resource_sharers.resource_id").Group("credentials.id") dbCounter := global.DB.Table("credentials").Select("DISTINCT credentials.id").Joins("left join resource_sharers on credentials.id = resource_sharers.resource_id").Group("credentials.id")
@ -71,7 +71,20 @@ func FindPageCredential(pageIndex, pageSize int, name string, account User) (o [
if err != nil { if err != nil {
return nil, 0, err return nil, 0, err
} }
err = db.Order("credentials.created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
if order == "ascend" {
order = "asc"
} else {
order = "desc"
}
if field == "name" {
field = "name"
} else {
field = "created"
}
err = db.Order("credentials." + field + " " + order).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error
if o == nil { if o == nil {
o = make([]CredentialVo, 0) o = make([]CredentialVo, 0)
} }

View File

@ -42,7 +42,7 @@ func (r *Job) TableName() string {
return "jobs" return "jobs"
} }
func FindPageJob(pageIndex, pageSize int, name, status string) (o []Job, total int64, err error) { func FindPageJob(pageIndex, pageSize int, name, status, order, field string) (o []Job, total int64, err error) {
job := Job{} job := Job{}
db := global.DB.Table(job.TableName()) db := global.DB.Table(job.TableName())
dbCounter := global.DB.Table(job.TableName()) dbCounter := global.DB.Table(job.TableName())
@ -62,7 +62,21 @@ func FindPageJob(pageIndex, pageSize int, name, status string) (o []Job, total i
return nil, 0, err return nil, 0, err
} }
err = db.Order("created desc").Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error if order == "ascend" {
order = "asc"
} else {
order = "desc"
}
if field == "name" {
field = "name"
} else if field == "created" {
field = "created"
} else {
field = "updated"
}
err = db.Order(field + " " + order).Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error
if o == nil { if o == nil {
o = make([]Job, 0) o = make([]Job, 0)
} }

View File

@ -23,7 +23,7 @@ func (r *UserGroup) TableName() string {
return "user_groups" return "user_groups"
} }
func FindPageUserGroup(pageIndex, pageSize int, name string) (o []UserGroupVo, total int64, err error) { func FindPageUserGroup(pageIndex, pageSize int, name, order, field string) (o []UserGroupVo, total int64, err error) {
db := global.DB.Table("user_groups").Select("user_groups.id, user_groups.name, user_groups.created, count(resource_sharers.user_group_id) as asset_count").Joins("left join resource_sharers on user_groups.id = resource_sharers.user_group_id and resource_sharers.resource_type = 'asset'").Group("user_groups.id") db := global.DB.Table("user_groups").Select("user_groups.id, user_groups.name, user_groups.created, count(resource_sharers.user_group_id) as asset_count").Joins("left join resource_sharers on user_groups.id = resource_sharers.user_group_id and resource_sharers.resource_type = 'asset'").Group("user_groups.id")
dbCounter := global.DB.Table("user_groups") dbCounter := global.DB.Table("user_groups")
if len(name) > 0 { if len(name) > 0 {
@ -35,7 +35,20 @@ func FindPageUserGroup(pageIndex, pageSize int, name string) (o []UserGroupVo, t
if err != nil { if err != nil {
return nil, 0, err return nil, 0, err
} }
err = db.Order("user_groups.created desc").Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error
if order == "ascend" {
order = "asc"
} else {
order = "desc"
}
if field == "name" {
field = "name"
} else {
field = "created"
}
err = db.Order("user_groups." + field + " " + order).Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error
if o == nil { if o == nil {
o = make([]UserGroupVo, 0) o = make([]UserGroupVo, 0)
} }

View File

@ -50,7 +50,7 @@ func FindAllUser() (o []User) {
return return
} }
func FindPageUser(pageIndex, pageSize int, username, nickname string) (o []UserVo, total int64, err error) { func FindPageUser(pageIndex, pageSize int, username, nickname, order, field string) (o []UserVo, total int64, err error) {
db := global.DB.Table("users").Select("users.id,users.username,users.nickname,users.online,users.enabled,users.created,users.type, count(resource_sharers.user_id) as sharer_asset_count").Joins("left join resource_sharers on users.id = resource_sharers.user_id and resource_sharers.resource_type = 'asset'").Group("users.id") db := global.DB.Table("users").Select("users.id,users.username,users.nickname,users.online,users.enabled,users.created,users.type, count(resource_sharers.user_id) as sharer_asset_count").Joins("left join resource_sharers on users.id = resource_sharers.user_id and resource_sharers.resource_type = 'asset'").Group("users.id")
dbCounter := global.DB.Table("users") dbCounter := global.DB.Table("users")
if len(username) > 0 { if len(username) > 0 {
@ -68,7 +68,21 @@ func FindPageUser(pageIndex, pageSize int, username, nickname string) (o []UserV
return nil, 0, err return nil, 0, err
} }
err = db.Order("users.created desc").Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error if order == "ascend" {
order = "asc"
} else {
order = "desc"
}
if field == "username" {
field = "username"
} else if field == "nickname" {
field = "nickname"
} else {
field = "created"
}
err = db.Order("users." + field + " " + order).Find(&o).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Error
if o == nil { if o == nil {
o = make([]UserVo, 0) o = make([]UserVo, 0)
} }

View File

@ -442,6 +442,16 @@ class Asset extends Component {
}); });
} }
handleTableChange = (pagination, filters, sorter) => {
let query = {
...this.state.queryParams,
'order': sorter.order,
'field': sorter.field
}
this.loadTableData(query);
}
render() { render() {
const columns = [{ const columns = [{
@ -465,7 +475,8 @@ class Asset extends Component {
{short} {short}
</Tooltip> </Tooltip>
); );
} },
sorter: true,
}, { }, {
title: '连接协议', title: '连接协议',
dataIndex: 'protocol', dataIndex: 'protocol',
@ -529,7 +540,8 @@ class Asset extends Component {
{dayjs(text).fromNow()} {dayjs(text).fromNow()}
</Tooltip> </Tooltip>
) )
} },
sorter: true,
}, },
{ {
title: '操作', title: '操作',
@ -767,6 +779,7 @@ class Asset extends Component {
showTotal: total => `总计 ${total}` showTotal: total => `总计 ${total}`
}} }}
loading={this.state.loading} loading={this.state.loading}
onChange={this.handleTableChange}
/> />
{ {

View File

@ -357,6 +357,16 @@ class DynamicCommand extends Component {
}) })
} }
handleTableChange = (pagination, filters, sorter) => {
let query = {
...this.state.queryParams,
'order': sorter.order,
'field': sorter.field
}
this.loadTableData(query);
}
render() { render() {
const columns = [{ const columns = [{
@ -380,7 +390,8 @@ class DynamicCommand extends Component {
{short} {short}
</Tooltip> </Tooltip>
); );
} },
sorter: true,
}, { }, {
title: '指令内容', title: '指令内容',
dataIndex: 'content', dataIndex: 'content',
@ -411,7 +422,8 @@ class DynamicCommand extends Component {
{dayjs(text).fromNow()} {dayjs(text).fromNow()}
</Tooltip> </Tooltip>
) )
} },
sorter: true,
}, { }, {
title: '操作', title: '操作',
key: 'action', key: 'action',
@ -632,6 +644,7 @@ class DynamicCommand extends Component {
showTotal: total => `总计 ${total}` showTotal: total => `总计 ${total}`
}} }}
loading={this.state.loading} loading={this.state.loading}
onChange={this.handleTableChange}
/> />
{ {

View File

@ -324,6 +324,16 @@ class Credential extends Component {
}) })
} }
handleTableChange = (pagination, filters, sorter) => {
let query = {
...this.state.queryParams,
'order': sorter.order,
'field': sorter.field
}
this.loadTableData(query);
}
render() { render() {
const columns = [{ const columns = [{
@ -347,7 +357,8 @@ class Credential extends Component {
{short} {short}
</Tooltip> </Tooltip>
); );
} },
sorter: true,
}, { }, {
title: '凭证类型', title: '凭证类型',
dataIndex: 'type', dataIndex: 'type',
@ -382,7 +393,8 @@ class Credential extends Component {
{dayjs(text).fromNow()} {dayjs(text).fromNow()}
</Tooltip> </Tooltip>
) )
} },
sorter: true,
}, },
{ {
title: '操作', title: '操作',
@ -574,6 +586,7 @@ class Credential extends Component {
showTotal: total => `总计 ${total}` showTotal: total => `总计 ${total}`
}} }}
loading={this.state.loading} loading={this.state.loading}
onChange={this.handleTableChange}
/> />
{ {

View File

@ -257,6 +257,16 @@ class Job extends Component {
} }
} }
handleTableChange = (pagination, filters, sorter) => {
let query = {
...this.state.queryParams,
'order': sorter.order,
'field': sorter.field
}
this.loadTableData(query);
}
render() { render() {
const columns = [{ const columns = [{
@ -280,7 +290,8 @@ class Job extends Component {
{short} {short}
</Tooltip> </Tooltip>
); );
} },
sorter: true,
}, { }, {
title: '状态', title: '状态',
dataIndex: 'status', dataIndex: 'status',
@ -325,7 +336,8 @@ class Job extends Component {
{dayjs(text).fromNow()} {dayjs(text).fromNow()}
</Tooltip> </Tooltip>
) )
} },
sorter: true,
}, { }, {
title: '最后执行日期', title: '最后执行日期',
dataIndex: 'updated', dataIndex: 'updated',
@ -339,7 +351,8 @@ class Job extends Component {
{dayjs(text).fromNow()} {dayjs(text).fromNow()}
</Tooltip> </Tooltip>
) )
} },
sorter: true,
}, { }, {
title: '操作', title: '操作',
key: 'action', key: 'action',
@ -529,6 +542,7 @@ class Job extends Component {
showTotal: total => `总计 ${total}` showTotal: total => `总计 ${total}`
}} }}
loading={this.state.loading} loading={this.state.loading}
onChange={this.handleTableChange}
/> />
{ {

View File

@ -281,6 +281,16 @@ class User extends Component {
}) })
} }
handleTableChange = (pagination, filters, sorter) => {
let query = {
...this.state.queryParams,
'order': sorter.order,
'field': sorter.field
}
this.loadTableData(query);
}
render() { render() {
const columns = [{ const columns = [{
@ -294,10 +304,12 @@ class User extends Component {
title: '登录账号', title: '登录账号',
dataIndex: 'username', dataIndex: 'username',
key: 'username', key: 'username',
sorter: true,
}, { }, {
title: '用户昵称', title: '用户昵称',
dataIndex: 'nickname', dataIndex: 'nickname',
key: 'nickname', key: 'nickname',
sorter: true,
}, { }, {
title: '用户类型', title: '用户类型',
dataIndex: 'type', dataIndex: 'type',
@ -350,7 +362,8 @@ class User extends Component {
{dayjs(text).fromNow()} {dayjs(text).fromNow()}
</Tooltip> </Tooltip>
) )
} },
sorter: true,
}, },
{ {
title: '操作', title: '操作',
@ -578,6 +591,7 @@ class User extends Component {
showTotal: total => `总计 ${total}` showTotal: total => `总计 ${total}`
}} }}
loading={this.state.loading} loading={this.state.loading}
onChange={this.handleTableChange}
/> />
{/* 为了屏蔽ant modal 关闭后数据仍然遗留的问题*/} {/* 为了屏蔽ant modal 关闭后数据仍然遗留的问题*/}

View File

@ -259,6 +259,16 @@ class UserGroup extends Component {
}) })
} }
handleTableChange = (pagination, filters, sorter) => {
let query = {
...this.state.queryParams,
'order': sorter.order,
'field': sorter.field
}
this.loadTableData(query);
}
render() { render() {
const columns = [{ const columns = [{
@ -271,6 +281,7 @@ class UserGroup extends Component {
}, { }, {
title: '名称', title: '名称',
dataIndex: 'name', dataIndex: 'name',
sorter: true,
}, { }, {
title: '授权资产', title: '授权资产',
dataIndex: 'assetCount', dataIndex: 'assetCount',
@ -293,7 +304,8 @@ class UserGroup extends Component {
{dayjs(text).fromNow()} {dayjs(text).fromNow()}
</Tooltip> </Tooltip>
) )
} },
sorter: true,
}, },
{ {
title: '操作', title: '操作',
@ -422,6 +434,7 @@ class UserGroup extends Component {
showTotal: total => `总计 ${total}` showTotal: total => `总计 ${total}`
}} }}
loading={this.state.loading} loading={this.state.loading}
onChange={this.handleTableChange}
/> />
{/* 为了屏蔽ant modal 关闭后数据仍然遗留的问题*/} {/* 为了屏蔽ant modal 关闭后数据仍然遗留的问题*/}