优易软件按订单金额发放红包 发放存在多发的问题

更新时间:2014-04-17 点击量:1655

 

在某一论坛看到这一问题,下面我来讲解下:

解决问题是看  includes\lib_order.php 的函数 get_total_bonus

原来代码是如下的/* 按订单发的红包 */

$sql = “SELECT FLOOR(‘$amount’ / min_amount) * type_money ” .
“FROM ” . $GLOBALS['ecs']->table(‘bonus_type’) .
” WHERE send_type = ‘” . SEND_BY_ORDER . “‘ ” .
&rdquo; AND send_start_date <= &lsquo;$today&rsquo; &rdquo; .
&ldquo;AND send_end_date >= &lsquo;$today&rsquo; &rdquo; .
&ldquo;AND min_amount > 0 &ldquo;;

很显然,凡是比较最低订单金额大的订单,都会导致商的个数的红包,我们其实只要发的是最大的红包那个就可以了,

所以我们修改如下/* 按订单发的红包 */

$sql = &ldquo;SELECT FLOOR(&lsquo;$amount&rsquo; / min_amount) * type_money &rdquo; .
&ldquo;FROM &rdquo; . $GLOBALS['ecs']->table(&lsquo;bonus_type&rsquo;) .
&rdquo; WHERE send_type = &lsquo;&rdquo; . SEND_BY_ORDER . &ldquo;&lsquo; &rdquo; .
&rdquo; AND send_start_date <= &lsquo;$today&rsquo; &rdquo; .
&ldquo;AND send_end_date >= &lsquo;$today&rsquo; &rdquo; .
&ldquo;AND min_amount > 0 and min_amount <= &lsquo;$amount&rsquo; order by min_amount desc limit 1 &ldquo;;

注意上面这行的条件增加了
and min_amount <= &lsquo;$amount&rsquo; order by min_amount desc limit 1

就是说最接近订单额度的红包发放条件,取一个即可

 

 
支付宝扫码打赏 微信打赏

如果文章对您有帮助,就打赏一个吧

在线客服

客户服务

热线电话:

0755-36656507 15889489919 服务时间:

周一到周六:9:00-18:00

在线QQ客服

在线微信客服

关于我们 常见问题

支付方式 加盟合作

提交需求
优惠红包 购物车0 反馈留言 返回顶部