[算法] 拖动排序

菜单、菜品排序问题
在菜品分类和菜品表中,新增排序字段,以供用户排序。

新增时需要插入序号(max+1)
查询时按照序号从低到高的顺序排序


排序算法:以菜品为例

牛肉粉 序号1
鸡蛋饭 序号2
烤羊肉 序号3
卤豆腐 序号4

① 现在需要将 卤豆腐 放在第一位

1)第一步:获取牛肉粉(欲取代的位置)的序号为1,并获取卤豆腐的GOODS_ID

2)将牛肉粉及其之后的产品的序号+1

牛肉粉 序号1+1 = 2
鸡蛋饭 序号2+1 = 3
烤羊肉 序号3+1 = 4
卤豆腐 序号4+1 = 5

3)将卤豆腐的序号变为1
卤豆腐 序号1(取代)
牛肉粉 序号1+1 = 2
鸡蛋饭 序号2+1 = 3
烤羊肉 序号3+1 = 4


② 将 卤豆腐 放在第2位

1)第一步:获取鸡蛋饭(欲取代的位置)的序号为2,并获取卤豆腐的GOODS_ID

2)将鸡蛋饭及其之后的产品的序号+1

牛肉粉 序号1=1
鸡蛋饭 序号2+1=3
烤羊肉 序号3+1=4
卤豆腐 序号4+1=5

3)将卤豆腐的序号变为2
牛肉粉 序号1=1
卤豆腐 序号2(取代)
鸡蛋饭 序号2+1=3
烤羊肉 序号3+1=4

 

③ 需要考虑菜品本身已经是第一位的问题

在排序前,将拖动的菜品的序号与最小的序号做比对,如果是一致的,就提示当前菜品已经置顶。

posted @ 2014-12-23 12:13  Aviva_ye  阅读(1290)  评论(0编辑  收藏  举报