退款算法设计

  • 主订单:154.70;从订单:25;服务:3次;
    第一次退款金额41.93,主订单,从订单都要退若干金额,占有一定的比例;
    第二次退款金额41.93,主订单,从订单都要退若干金额,占有一定的比例;
    第三次退款金额59.90,主订单,从订单都要退若干金额,占有一定的比例;

  • 主订单:154.70;从订单:25;服务:2次;
    第一次退款金额41.93,主订单,从订单都要退若干金额,占有一定的比例;
    第二次退款金额41.93,主订单,从订单都要退若干金额,占有一定的比例;

  • 主订单:154.70;从订单1:25;从订单2:25;服务:3次;
    第一次退款金额41.93,主订单,从订单1,从订单2都要退若干金额,占有一定的比例;
    第二次退款金额41.93,主订单,从订单1,从订单2都要退若干金额,占有一定的比例;
    第三次退款金额68.23,主订单,从订单1,从订单2都要退若干金额,占有一定的比例;

上面只是举例几种情况?主从订单可以多个,服务次数也会多个,退款次数1或者多次。
如何设计比较好的退款算法?主从订单都退款若干金额,占有一定的比例。请赐教。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 8

我理解的是,每个订单有一个实际支付金额,主订单、从订单实际金额默认都是支付金额,然后你退款是一个单独的订单,再看有多少主从就按比例扣除更新各个订单的实际金额

3周前 评论

第一、第二次都是按照比例向下取整退款,最后一次,用总金额减去已退款金额,这样整个退款金额加起来就对了

3周前 评论
千斩 (楼主) 3周前
Adachi 3周前
总金额 = 主订单金额+从订单总金额
主订单比例  = 主订单金额/总金额;//主从订单金额差距大,主订单比例直接向下取整,然后用各个从单金额占比来分剩余比例  (剩余比例 = 1-主订单比例;从单1占比 = 剩余比例*(从单1金额/从单总金额)...)
从订单比例  = 从订单金额/总金额;
主订单退款金额  =  退款金额*主订单比例  
(从订单退款金额1 = 退款金额*从订单比例) ...
从订单退款金额N = 退款金额 - (主订单退款金额+从订单退款金额1...
3周前 评论

我个人理解是不是有点像:等比消费,反向一下 :see_no_evil:

1周前 评论

1.你下单成功后就要起一个队列,把每个商品的实际价格都算好,退款的时候直接根据这个价格去退。注意运费也要平摊,如果是组合支付的话还得对每种支付类型去平摊金额。 2.计算时每件商品的比例进行平摊,经常会出现平摊不均,最后一分钱就叠加到最后一个商品里面去。

5天前 评论

首先订单总额是由所有商品x数量总的计算而来,但是由于现在各种优惠券之类的,不过这个没关系, 因为最后下单的时候,应该将所有产品实际价格算出来。 这样子退款就有两种退款

  1. 一种是根据产品来退,退多少就按照实际的去退即可。
  2. 另一种就是补偿式退款,应该是双方协商退款。

你的需求看起来应该直接按照商品去退就行,退款的时候我建议加锁去执行

5天前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!