广西 - 新桂人到家

广西 - 新桂人到家


拆单计算逻辑

<h1>一、基础数据</h1> <h2>商家 m1</h2> <ul> <li>商品 a、价格:6</li> <li>商品 b、价格:5</li> <li>商品 c、价格:7</li> <li>商品 g、价格:8</li> </ul> <h2>商家 m2</h2> <ul> <li>商品 d、价格:9</li> <li>商品 e、价格:14</li> <li>商品 h、价格:4</li> <li>商品 f、价格:17</li> </ul> <h2>满减专区 r1,满 10 减 5</h2> <ul> <li>商品 a、价格:6</li> <li>商品 b、价格:5</li> <li>商品 g、价格:8</li> </ul> <h2>满减专区 r2,满 20 减 6</h2> <ul> <li>商品 a、价格:6</li> <li>商品 e、价格:14</li> <li>商品 f、价格:17</li> </ul> <h2>优惠券 x,满 10 减 3</h2> <ul> <li>商品 a、价格:6</li> <li>商品 b、价格:5</li> <li>商品 c、价格:7</li> <li>商品 d、价格:9</li> </ul> <h2>不在专区和优惠券的商品</h2> <ul> <li>商品 h、价格:4</li> </ul> <h2>用户购物车</h2> <ul> <li>商品 a、价格:6</li> <li>商品 b、价格:5</li> <li>商品 c、价格:7</li> <li>商品 d、价格:9</li> <li>商品 e、价格:14</li> <li>商品 h、价格:4、2件</li> </ul> <hr /> <h1>二、拆单计算过程</h1> <h2>1、计算购物车商品所在的专区,并按优惠数额从大到小排:</h2> <ul> <li>r2</li> <li>r1</li> </ul> <h2>2、计算专区中包含且购物车存在的商品,如果前面已包含,后面不再次包含</h2> <ul> <li>r2:a、 e,满20,可享受满减</li> <li>r1:b,不满10,不享受满减</li> <li>不在专区:c、d、h</li> </ul> <h2>3、不在专区的商品按是否对应指定优惠券分为两组</h2> <ul> <li>对应优惠券 x:c、d,满10,可享受优惠券</li> <li>不对应优惠券 h</li> </ul> <h2>4、钱数计算</h2> <h3>(1)r2:a、 e</h3> <ul> <li>总支付:6 + 14 - 6 = 14</li> <li>a: <ul> <li>支付钱数:14 * (6 * 1) / (6 * 1 + 14 * 1) = 4.2</li> <li>优惠钱数:6 * 1 - 4.2 = 1.8</li> </ul></li> <li>e: <ul> <li>支付钱数:14 - 4.2 = 9.8,也可以:14 * (14 * 1) / (6 * 1 + 14 * 1) = 9.8,但若出现小数除不尽,则可能总数差0.01</li> <li>优惠钱数:14 * 1 - 9.8 = 4.2</li> </ul></li> </ul> <h3>(2)r1:b</h3> <ul> <li>b 总支付:5,不优惠</li> </ul> <h3>(3)优惠券 x</h3> <ul> <li>总支付:7 + 9 - 3 = 13</li> <li>c <ul> <li>总支付:13 * (7 * 1) / (7 * 1 + 9 * 1) ≈ 5.69</li> <li>优惠钱数:(7 * 1) - 5.69 = 1.31</li> </ul></li> <li>d <ul> <li>总支付:13 - 5.69 = 7.31,也可以:13 * (9 * 1) / (7 * 1 + 9 * 1) ≈ 7.31,但若出现小数除不尽,则可能总数差0.01</li> <li>优惠钱数:(9 * 1) - 7.31 = 1.69</li> </ul></li> </ul> <h3>(4)其它商品</h3> <ul> <li>h:总支付 4 * 2 = 8,不优惠</li> </ul> <h3>(5)总支付金额(不含运费):14 + 5 + 13 + 8 = 40</h3> <h2>5、拆单</h2> <h3>(1)商家 m1:a、b、c</h3> <p>订单实际支付金额 4.2 + 5 + 5.69 + 运费 = 14.89 + 运费 优惠金额 1.8 + 0 + 1.31 = 3.11</p> <h3>(2)商家 m2:d、e、h * 2</h3> <p>订单实际支付金额 7.31 + 9.8 + 8 + 运费 = 25.11 + 运费 优惠金额 1.69 + 4.2 + 0 = 5.89</p> <h3>(3)总支付金额</h3> <p>40 + 两笔运费</p>

页面列表

ITEM_HTML