商品排序调整有什么好的方案,做到随心所欲调整顺序还快速?

2019-04-02 12:10:24 +08:00
 zppass

最近遇到一个问题,就是商品列表排序调整问题: ( 1 )商品列表,有时候会有新品上新,或者活动商品要出现在列表首页,有的旧的商品,吸引力不高的商品要调整到后面去甚至是最后,不想白白浪费前几页的宝贵位置给他。 ( 2 )现在项目是根据更新时间来确定排序,商品上新,活动商品首页是可以的,做一下修改就可以了,但是调整位置蛋疼,运营的同学说我想自己来排,谁在第几位,我自己设置甚至拖拖拽拽就排好了。

痛点:想了几个方案,批量什么的都想到了,但是不太理想。把 C 商品拖到 A 和 B 之间,怎么个拖法,尽可能保证效率要考虑商品多的情况。

2363 次点击
所在节点    程序员
4 条回复
airyland
2019-04-02 12:26:21 +08:00
运营的排序需求我处理过特别复杂的方案。

排序最简单的是添加一个数字类型的 order 字段。

至于拖动也是可以简单实现的,而且跟数量无关,核心是添加一个支持小数的数字排序字段,拖动到任何位置只要生成前后两个商品 order 范围内的一个数就可以了。
zppass
2019-04-19 18:17:31 +08:00
嗯,@airyland 老哥说得对。我说一下我这边最后的方案,需要排序的两个地方。
( 1 )一个是商品列表,商品很多索性跟我一起的老哥又建了一张表索性把别的相关需求也一起做了,专门展示商品给前端也是有一个你说的 order 字段,只不过不是用的一个范围,比如说这个 order 字段都是 1000 起步上移就是加一,作为排序的一个参照,他就顶到上边上去了。缺点:后台代码要判断逻辑,一个一个商品操作。优点简单,还有就是也考虑了设置范围,发现会出现操作太频繁,导致一个范围区间内商品太多,很可能就没空间给你移动了。举个例子用最简单移一次,就放在区间中间,相当于一次范围少一半次数多了范围就小的可怜了。现在这种傻一点,次数太频繁也无所谓,上不封顶。
zppass
2019-04-19 18:20:18 +08:00
( 2 )我做的关于商品图的排序,因为一个商品图不会特别多就没高的那么复杂。就是设置一个字段,默认是 0,你想排序你就设置一下数字大小,数字大的排在上面。
希望帖子,能对有需要的人有帮助。
airyland
2019-04-19 18:22:00 +08:00
@zppass 排序数字不使用整数,保留 5 位小数点左右,这个可操作区间实际上特别大,而且完全可以前端生成。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/551197

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX