首页 技术交流 关于置顶功能的一个逻辑思路 正文

关于置顶功能的一个逻辑思路

发布日期:2019年09月17日 14:54        阅读次数:1018

   在平时开发中,我们可能会用到置顶功能,单纯的置顶 可能没什么要说的,今天要说的是置顶的时候如何下沉之前的置顶,比如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;
                    }
                }

                           

评论:

共 0 页 0 条记录,当前为第 1 页