Sfoglia il codice sorgente

fix cancel order cannot return bonus

stanley-king 7 anni fa
parent
commit
db36cafe8d

+ 0 - 1
crontab/control/command.php

@@ -30,7 +30,6 @@ class commandControl extends BaseCronControl
     {
         $staffs  = lrlz_staff();
         $type_sn = '76341506502791044726';
-        //$type_sn = '36221506503801666595';
         bonus_helper::send_mobile($type_sn,$staffs,2);
     }
 }

+ 4 - 2
data/logic/order.logic.php

@@ -54,7 +54,9 @@ class orderLogic
                 
                 //解冻预存款
                 $pd_amount = floatval($order_info['pd_amount']);
-                if ($pd_amount > 0) {
+                if ($pd_amount > 0)
+                {
+                    account_helper::order_cancel();
                     $data_pd = array();
                     $data_pd['member_id'] = $order_info['buyer_id'];
                     $data_pd['member_name'] = $order_info['buyer_name'];
@@ -65,7 +67,7 @@ class orderLogic
             }
 
             //更新订单信息
-            $update_order = array('order_state' => ORDER_STATE_CANCEL, 'pd_amount' => 0);
+            $update_order = array('order_state' => ORDER_STATE_CANCEL);
             $update = $model_order->editOrder($update_order,array('order_id'=>$order_id));
             if (!$update) {
                 throw new Exception('保存失败');

+ 18 - 0
document/static_order.sql

@@ -39,6 +39,24 @@ SELECT count(*) FROM lrlz_member;
 #检查商品和品牌关联
 
 
+#统计红包使用情况
+SELECT * FROM lrlz_user_bonus WHERE user_id = 39377 ORDER BY bonus_id DESC ;
+
+SELECT * FROM lrlz_user_bonus WHERE bonus_status = 3 and usable_time >  UNIX_TIMESTAMP(DATE('2017-09-28 00:00:00')) AND bonus_rate > 30;
+SELECT sum(remain_amount) FROM lrlz_user_bonus WHERE bonus_status = 3 and usable_time >  UNIX_TIMESTAMP(DATE('2017-09-28 19:00:00')) AND bonus_rate = 40;
+
+#统计订单毛利和净利润情况
+select sum((p.purchase_price)*g.goods_num) as cost,sum(g.goods_num),sum(p.purchase_price),sum(g.goods_price),o.order_amount,o.pd_amount, (o.order_amount - o.pd_amount - sum((purchase_price)*goods_num)) as retained,
+  (o.order_amount - o.pd_amount) / o.order_amount as rate,g.buyer_id
+from lrlz_order_goods g
+left join lrlz_goods_orgprice p
+  on g.goods_id=p.goods_id
+left join lrlz_order o
+  on o.order_id=g.order_id
+where o.payment_time
+BETWEEN UNIX_TIMESTAMP(DATE('2017-09-01 00:00:00')) and UNIX_TIMESTAMP(DATE('2017-09-28 00:00:00')) and o.order_state in (20,30,40) group by o.order_id;
+
+
 
 
 

+ 1 - 2
helper/account_helper.php

@@ -205,7 +205,6 @@ class account_helper
         }
 
         if(intval($pd_amount * 100 + 0.5) <= 0) return;
-
         $params = \bonus\parameters::order_cancel($bonus_rate);
         foreach ($params as $param)
         {
@@ -221,7 +220,7 @@ class account_helper
             }
         }
 
-        Model()->table('order')->where(array('order_sn' => $order_sn))->update(array('bonus_rate' => ''));
+        Model()->table('order')->where(array('order_sn' => $order_sn))->update(array('pd_amount' => 0,'bonus_rate' => ''));
     }
 
     public static function bonus_refund($type_sn,$member_id)

+ 6 - 1
test/orderTest.php

@@ -12,7 +12,7 @@ define('BASE_ROOT_PATH',str_replace('/test','',dirname(__FILE__)));
 require_once (BASE_ROOT_PATH . '/fooder.php');
 require_once (BASE_ROOT_PATH . '/helper/util_helper.php');
 
-class orderTest extends PHPUnit_Framework_TestCase
+class TestOrder extends PHPUnit_Framework_TestCase
 {
     public static function setUpBeforeClass()
     {
@@ -146,4 +146,9 @@ class orderTest extends PHPUnit_Framework_TestCase
         $x = json_encode($y);
         $x = json_decode($x,true);
     }
+    public function testBonusRate()
+    {
+        $data = 'a:2:{i:50;d:5.1799999999999997;i:30;d:17.59;}';
+        $x = unserialize($data);
+    }
 }