Browse Source

自动订单奖金

lizhen_gitee 1 year ago
parent
commit
0a0e49e086

+ 13 - 3
application/api/controller/Demo.php

@@ -92,8 +92,7 @@ class Demo extends Api
         //我的上上级id
         $two_intro_uid =Db::name('user')->where('id',$my_intro_uid)->value('intro_uid') ?: 0;
 
-        //结算订单后,用户活跃时间更新
-        Db::name('user_wallet')->where('user_id',$user_id)->update(['active_time'=>time()]);
+
     }
 
     public function auto_order(){
@@ -112,7 +111,18 @@ class Demo extends Api
             'have_paid' => ['lt',$tendays_ago],
             'jiesuantime' => 0,
         ];
-        Db::name('unishop_order')->where($order_map)->select();
+        $order_list = Db::name('unishop_order')->where($order_map)->limit(10)->select();
+        foreach($order_list as $key => $order){
+
+            //给上级贡献
+            //上上级贡献
+
+            //标记为结算
+            $jiesuan = Db::name('unishop_order')->where('id',$order['id'])->update(['jiesuantime'=>$nowtime]);
+            //批发的都卖出
+            $pifa = Db::name('unishop_order_product')->where('order_id',$order['id'])->update(['pifa_status'=>1]);
+        }
+        Db::rollback();
     }
 
     //结算要按10天算

+ 2 - 0
application/extra/wallet.php

@@ -6,6 +6,8 @@ return [
     'logtype' => [
         1  => '邀请奖励',
         2  => '积分兑换',
+        3  => '直推代理奖励',
+        4  => '兼推代理奖励',
     ],
     'moneyname' => [
         'money'    => '佣金',

+ 63 - 0
application/index/controller/Plantask.php

@@ -3,6 +3,7 @@
 namespace app\index\controller;
 use think\Controller;
 use think\Db;
+use app\common\model\Wallet;
 
 class Plantask extends Controller
 {
@@ -71,4 +72,66 @@ class Plantask extends Controller
         return $rs;
     }
 
+    //订单支付回调之后的任务,每分钟运行
+    public function auto_order_paid(){
+
+        $map = [
+            'status' => 1,
+            'have_paid' => ['gt',0],
+            'paidtasktime' => 0,
+        ];
+        $order_list = Db::name('unishop_order')->where($map)->limit(10)->select();
+        if(empty($order_list)){
+            echo '没有数据';
+            exit;
+        }
+
+        Db::startTrans();
+        $walletmodel = new Wallet();
+
+        foreach($order_list as $key => $order){
+
+            //直推代理商获益
+            $intro_uid = Db::name('user')->where('id',$order['user_id'])->value('intro_uid');
+            if($intro_uid){
+                $score = bcdiv(bcmul($order['total_price'],5,2),100,2);
+                if($score > 0){
+                    $rs_wallet = $walletmodel->lockChangeAccountRemain($intro_uid,'score',$score,3,'直推代理奖励','unishop_order',$order['id']);
+                    if($rs_wallet['status'] === false){
+                        echo $rs_wallet['msg'];
+                        Db::rollback();
+                        exit;
+                    }
+                }
+            }
+            $score = 0;
+            //上上级
+            $top_uid = Db::name('user')->where('id',$intro_uid)->value('intro_uid');
+            if($top_uid){
+                $score = bcdiv(bcmul($order['total_price'],1,2),100,2);
+                if($score > 0){
+                    $rs_wallet = $walletmodel->lockChangeAccountRemain($top_uid,'score',$score,4,'兼推代理奖励','unishop_order',$order['id']);
+                    if($rs_wallet['status'] === false){
+                        echo $rs_wallet['msg'];
+                        Db::rollback();
+                        exit;
+                    }
+                }
+            }
+
+            //订单完成
+            $rs_order = Db::name('unishop_order')->where('id',$order['id'])->update(['paidtasktime'=>time()]);
+            if($rs_order === false){
+                echo '更新失败';
+                Db::rollback();
+                exit;
+            }
+
+            //循环结束
+        }
+
+        Db::commit();
+        echo '成功';
+    }
+
 }