hrjy пре 2 година
родитељ
комит
e3236b8eec
2 измењених фајлова са 54 додато и 23 уклоњено
  1. 48 23
      app/api/controller/user/UserController.php
  2. 6 0
      app/models/store/StoreOrder.php

+ 48 - 23
app/api/controller/user/UserController.php

@@ -628,26 +628,45 @@ class UserController
         $end = strtotime('today');
         $money = StoreOrder::where('paid', 1)->whereBetweenTime('add_time',  $start, $end)->sum('pay_price'); // 全网业绩
 
+        $partnerCount = User::sum('stock_right');//合伙人股权总数
+        $shareholderCount = User::where('level', 3)->count();// 股东总数
+        $directorCount = User::where('level', 4)->count();// 董事总数
+
         $partner = sys_config('partner')/100;//合伙人比列
         $shareholder = sys_config('shareholder')/100;//股东比列
         $director = sys_config('director')/100;//董事比列
         $user = User::where('level', '>=', 2)->select()->toArray();
+
+
+        $partnerMoney = 0;
+        if ($partnerCount > 0){
+            $partnerMoney = $money * $partner/$partnerCount;//合伙人单个奖励
+        }
+
+        $shareholderMoney = 0;
+        if ($shareholderCount > 0){
+            $shareholderMoney = $money * $shareholder/$shareholderCount;//股东单个奖励
+        }
+        $directorMoney = 0;
+        if ($directorCount > 0){
+            $directorMoney = $money * $director/$directorCount;//董事单个奖励
+        }
         if (!empty($user)) {
             foreach ($user as $vo) {
                 $jl = 0;
                 if ($vo['level'] == 2) {
                     //合伙人
-                    $jl += $money * $partner;// 合伙人加权奖励
-                    $sp_jl = $money * $partner;// 合伙人上级奖励
+                    $jl += $partnerMoney * $vo['stock_right'];// 合伙人加权奖励
+                    $sp_jl = $partnerMoney * $vo['stock_right'];// 合伙人上级奖励
                 } elseif ($vo['level'] == 3) {
                     //股东
-                    $jl += $money * $partner;// 合伙人加权奖励
-                    $jl += $money * $shareholder;// 股东加权奖励
+                    $jl += $partnerMoney * $vo['stock_right'];// 合伙人加权奖励
+                    $jl += $shareholderMoney;// 股东加权奖励
                 } elseif ($vo['level'] == 4) {
                     //股东
-                    $jl += $money * $partner;// 合伙人加权奖励
-                    $jl += $money * $shareholder;// 股东加权奖励
-                    $jl += $money * $director;// 董事加权奖励
+                    $jl += $partnerMoney * $vo['stock_right'];// 合伙人加权奖励
+                    $jl += $shareholderMoney;// 股东加权奖励
+                    $jl += $directorMoney;// 董事加权奖励
                 }
                 $model = new UserSingleAward();
                 $award = $model->where('uid', $vo['uid'])->where('status', 0)->select()->toArray();
@@ -655,14 +674,17 @@ class UserController
                     $bdjl = 0; // 爆单剩余奖励
                     foreach ($award as &$item) {
                         $surplus = $item['money'] - $item['grant'];
-                        if ($surplus < $jl) {
-                            $bdjl += $surplus;
-                            $jl -= $surplus;
-                            $item['status'] = 1;
-                            $item['grant'] = $item['money'];
-                        } else {
-                            $bdjl += $jl;
-                            $item['grant'] += $jl;
+                        if ($jl > 0){
+                            if ($surplus < $jl) {
+                                $bdjl += $surplus;
+                                $jl -= $surplus;
+                                $item['status'] = 1;
+                                $item['grant'] = $item['money'];
+                            } else {
+                                $bdjl += $jl;
+                                $item['grant'] += $jl;
+                                $jl = 0;
+                            }
                         }
                     }
                     $model->saveAll($award);
@@ -680,14 +702,17 @@ class UserController
                                     $bdjl = 0; // 爆单剩余奖励
                                     foreach ($award as &$item){
                                         $surplus = $item['money'] - $item['grant'];
-                                        if ($surplus < $sp_jl){
-                                            $bdjl += $surplus;
-                                            $sp_jl -= $surplus;
-                                            $item['status'] = 1;
-                                            $item['grant'] = $item['money'];
-                                        }else{
-                                            $bdjl += $sp_jl;
-                                            $item['grant'] += $sp_jl;
+                                        if ($sp_jl > 0){
+                                            if ($surplus < $sp_jl){
+                                                $bdjl += $surplus;
+                                                $sp_jl -= $surplus;
+                                                $item['status'] = 1;
+                                                $item['grant'] = $item['money'];
+                                            }else{
+                                                $bdjl += $sp_jl;
+                                                $item['grant'] += $sp_jl;
+                                                $sp_jl = 0;
+                                            }
                                         }
                                     }
                                     $model->saveAll($award);

+ 6 - 0
app/models/store/StoreOrder.php

@@ -824,6 +824,7 @@ class StoreOrder extends BaseModel
                     UserBill::income('佣金', $spread['uid'], 'now_money', 'brokerage', $bdjl, '', $spread['brokerage_price']+$bdjl, '分享佣金奖励');
                     User::where('uid', $spread['uid'])->inc('brokerage_price', $bdjl)->update();
                 }
+                User::where('uid', $spread['uid'])->inc('stock_right', 1)->update();
             }
         }
     }
@@ -837,6 +838,11 @@ class StoreOrder extends BaseModel
     {
         $money = $order['total_num'] * 10000;
 
+        $count = StoreOrder::where('uid', $order['uid'])->count();
+        if ($count > 1){
+            User::where('uid', $order['uid'])->inc('stock_right', 1)->update();
+        }
+
         UserSingleAward::create([
             'uid' => $order['uid'],
             'order_id' => $order['order_id'],