现在做的一个项目涉及到一个信息排名功能,自己的逻辑已经混乱了,暂时无解,来求众人的智慧。
具体情况如下,客户要求用户发布的排名,根据其出价的高低系统自动判断。
用户发布信息时,要一次至少付出7天的费用。用户A  2013/1/22 发布广告 每天价格自定为10元,订购7天,系统扣除70元。
用户B  2013/1/23 发布广告 每天价格自定为20元,订购7天,系统扣除140元。那问题来了,怎么样才能让用户B排在用户A前面。如果简单的只是按出钱多少算,那在23号,用户A发现用户B排在自己前面了,他想再出价,排到用户B前面,怎么处理? 因为已经收了他7天的70了,这中间加价,不知道该怎么处理好。问题还涉及到A加价了,B又加价,到底该怎么处理呢。客户的要求只是说谁出钱多,谁排前面,但一次又要交7天的钱,又要让出钱多的,及时排在前面。

解决方案 »

  1.   

    是不是需求自身有问题呢。。
      

  2.   

    Y
    游戏规则不清,至少没说同价如何排,是否先到前排?另外加价是否为“先”也是一个规则问题
      

  3.   

    单独的一个表,专门保存计算出来排名的值。
    关于排名的计算,多方面参数,必须要有一个公式。
      

  4.   

    我以为根据每条广告剩余费用排序就可以了
    当然这样的话,后来的可能会排在先来的前面如果不想这样,就按 剩余费用/剩余天数 排序
      

  5.   

    技术逻辑跟业务逻辑走,还是让客户定好规则吧,不然写好了客户全盘推翻也是欲哭无泪
    也曾遇到客户没什么“脑子”,问他什么规则一句也答不上,也可以自己先写一套规则给他们决定是否可行
      

  6.   

    如果单纯从价格来排位,算法还是不复杂的。比如 700块,七天,即100块一天。
    但第三天,用户加了300块。
    那后来的五天就是 700-200+300块了,五天就是 800/5了。
    然后再按当天的价位来排。每天可能价钱都不同,所以用当天价位比较实时点
      

  7.   

    楼上是个思路,但没留意一次至少买7天这就是个规则问题——
    第六天把单价提高,买7天,那这个“7天”是否应用到已过去的5天呢?还是从当前天数算起的7天
    总价1 + 总价2 (前后共12天,时间中间叠加2天)
    总价1 + 总价2 (前后共14天,两次购买时间不叠加)
    总价1 + 总价2 (前后只有7天,在实施期内完全叠加)
    所以做细致的话,还有个时间参数
    总之就是 
      

  8.   

    感谢楼上老师们的回复,受益匪浅,正在更新思路。