在平时开发中,我们可能会用到置顶功能,单纯的置顶 可能没什么要说的,今天要说的是置顶的时候如何下沉之前的置顶,比如A记录置顶了排序是1,然后我把B记录也给置顶了,那么现在A记录排序应该是2,而B的排序变成了1,以此类推。
我们可以设置一个orderCount字段,默认值为99999,然后在置顶时进行一些逻辑操作。
1.置顶时,首先将要置顶的记录排序ordercount字段设置为1,同时将其他ordercount<99999(说明之前被置顶过)的记录在原来的基础上加1.
2.取消置顶时,需要判断如果该记录没有做过置顶操作,则无需处理,如果做过置顶操作(ordercount!=99999),那么直接赋值成初始值99999即可。
下面看下逻辑代码:
if (req.IsSetTop == 1)//置顶 { if (table.OrderCount == 99999) //初始置顶的设置 { table.OrderCount = 1; //非99999其他数据都设置为 加一的数据 string sql = string.Format("update PublicLesson set ordercount = ordercount + 1 where id <>{0} and ordercount < 99999", table.Id); conn.Execute(sql, tran); } } else if (req.IsSetTop == 0)//取消置顶 { if (table.OrderCount != 99999) //设置非置顶的时候 { table.OrderCount = 99999; } }