hrjy 2 سال پیش
والد
کامیت
1005658a8a
3فایلهای تغییر یافته به همراه103 افزوده شده و 74 حذف شده
  1. 30 29
      app/admin/model/user/UserBill.php
  2. 72 44
      app/api/controller/user/UserController.php
  3. 1 1
      app/models/store/StoreOrder.php

+ 30 - 29
app/admin/model/user/UserBill.php

@@ -204,17 +204,17 @@ class UserBill extends BaseModel
         return self::setWhereList(
             $where,'sign',
             ['title','number','mark','FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time']
-            );
+        );
     }
     //查询个人余额变动记录
     public static function getOneBalanceChangList($where){
-         $list=self::setWhereList(
+        $list=self::setWhereList(
             $where,'',
 //            ['system_add','pay_product','extract','pay_product_refund','system_sub','brokerage','recharge','user_recharge_refund'],
             ['FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time','title','type','mark','number','balance','pm','status'],
             'now_money'
         );
-         foreach ($list as &$item){
+        foreach ($list as &$item){
             switch ($item['type']){
                 case 'system_add':
                     $item['_type']='系统添加';
@@ -242,8 +242,8 @@ class UserBill extends BaseModel
                     break;
             }
             $item['_pm']=$item['pm']==1 ? '获得': '支出';
-         }
-         return $list;
+        }
+        return $list;
     }
     //设置where条件分页.返回数据
     public static function setWhereList($where,$type='',$field=[],$category='integral'){
@@ -288,35 +288,35 @@ class UserBill extends BaseModel
     //获取积分统计曲线图和柱状图
     public static function getScoreCurve($where){
         //发放积分趋势图
-         $list=self::getModelTime($where,self::where('category','integral')
+        $list=self::getModelTime($where,self::where('category','integral')
             ->field('FROM_UNIXTIME(add_time,"%Y-%m-%d") as _add_time,sum(number) as sum_number')
             ->group('_add_time')->order('_add_time asc'))->select()->toArray();
-         $date=[];
-         $zoom='';
-         $seriesdata=[];
-         foreach ($list as $item){
-             $date[]=$item['_add_time'];
-             $seriesdata[]=$item['sum_number'];
-         }
-         unset($item);
-         if(count($date)>$where['limit']){
-             $zoom=$date[$where['limit']-5];
-         }
+        $date=[];
+        $zoom='';
+        $seriesdata=[];
+        foreach ($list as $item){
+            $date[]=$item['_add_time'];
+            $seriesdata[]=$item['sum_number'];
+        }
+        unset($item);
+        if(count($date)>$where['limit']){
+            $zoom=$date[$where['limit']-5];
+        }
         //使用积分趋势图
         $deductionlist=self::getModelTime($where,self::where('category','integral')->where('type','deduction')
             ->field('FROM_UNIXTIME(add_time,"%Y-%m-%d") as _add_time,sum(number) as sum_number')
             ->group('_add_time')->order('_add_time asc'))->select()->toArray();
-         $deduction_date=[];
-         $deduction_zoom='';
-         $deduction_seriesdata=[];
-         foreach ($deductionlist as $item){
-             $deduction_date[]=$item['_add_time'];
-             $deduction_seriesdata[]=$item['sum_number'];
-         }
-         if(count($deductionlist)>$where['limit']){
-             $deduction_zoom=$deductionlist[$where['limit']-5];
-         }
-         return compact('date','seriesdata','zoom','deduction_date','deduction_zoom','deduction_seriesdata');
+        $deduction_date=[];
+        $deduction_zoom='';
+        $deduction_seriesdata=[];
+        foreach ($deductionlist as $item){
+            $deduction_date[]=$item['_add_time'];
+            $deduction_seriesdata[]=$item['sum_number'];
+        }
+        if(count($deductionlist)>$where['limit']){
+            $deduction_zoom=$deductionlist[$where['limit']-5];
+        }
+        return compact('date','seriesdata','zoom','deduction_date','deduction_zoom','deduction_seriesdata');
     }
 
     /**
@@ -325,6 +325,7 @@ class UserBill extends BaseModel
      */
     public static function getBrokerageCount()
     {
-        return self::where('type', 'brokerage')->where('category', 'now_money')->where('status', 1)->where('pm', 1)->sum('number');
+        $price = self::where('type', 'brokerage')->where('category', 'now_money')->whereLike('mark', '%接收用户%')->where('status', 1)->where('pm', 1)->sum('number');
+        return self::where('type', 'brokerage')->where('category', 'now_money')->where('status', 1)->where('pm', 1)->sum('number')-$price;
     }
 }

+ 72 - 44
app/api/controller/user/UserController.php

@@ -629,20 +629,32 @@ class UserController
      */
     public function weighting(Request $request)
     {
+//        $userbll = UserBill::where('type', 'brokerage')->where('add_time', '=', 1675395623)->select();
+//        foreach ($userbll as $item)
+//        {
+//            $user = User::where('uid', $item['uid'])->dec('brokerage_price', $item['number'])->update();
+//            UserSingleAward::where('uid', $item['uid'])->dec('grant', $item['number'])->update();
+//        }
+//        halt(111);
         $start = strtotime('yesterday');
         $end = strtotime('today');
         $money = StoreOrder::where('paid', 1)->whereBetweenTime('add_time',  $start, $end)->where('is_explosion_order', 1)->sum('pay_price'); // 全网业绩
 
-        $partnerCount = User::sum('stock_right');//合伙人股权总数
-        $shareholderCount = User::where('level', 3)->count();// 股东总数
-        $directorCount = User::where('level', 4)->count();// 董事总数
+        $userUid = User::where('level', 1)->column('uid');//当前是会员的用户
+        $userOrder = StoreOrder::where('paid', 1)->where('is_explosion_order', 1)->sum('total_num');
+        $partnerCount = User::where('level', '>=',2)->count();//合伙人总数
+        $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', '>=', 1)->select()->toArray();
 
-
+        $userMoney = 0;
+        if ($userOrder > 0){
+            $userMoney = $money * $partner/$userOrder;//会员单个奖励
+        }
         $partnerMoney = 0;
         if ($partnerCount > 0){
             $partnerMoney = $money * $partner/$partnerCount;//合伙人单个奖励
@@ -660,26 +672,34 @@ class UserController
             foreach ($user as $vo) {
                 $jl = 0;
                 $str = '';
-                if ($vo['level'] == 1) {
-                    //会员
-                    $str = '会员分红';
-                    $jl += $partnerMoney * $vo['stock_right'];// 合伙人加权奖励
-                    $sp_jl = $partnerMoney * $vo['stock_right'];// 合伙人上级奖励
-                } elseif ($vo['level'] == 2) {
-                    //合伙人
-                    $str = '合伙人分红';
-                    $jl += $partnerMoney * $vo['stock_right'];// 合伙人加权奖励
-                } elseif ($vo['level'] == 3) {
+                $orderCount = StoreOrder::where('paid', 1)->where('uid', $vo['uid'])->where('is_explosion_order', 1)->sum('total_num');
+                $jl += $userMoney * $orderCount;// 合伙人加权奖励
+                $userjl = $userMoney * $orderCount;//会员分红
+                $sp_jl = $userMoney * $orderCount;//上级奖励
+//                if ($vo['level'] == 1) {
+//                    //会员
+//                    $orderCount = StoreOrder::where('paid', 1)->where('uid', $vo['uid'])->where('is_explosion_order', 1)->sum('total_num');
+//                    $jl += $userMoney * $orderCount;// 合伙人加权奖励
+//                    $userjl = $userMoney * $orderCount;//会员分红
+//                    $sp_jl = $userMoney * $orderCount;//上级奖励
+//                } elseif ($vo['level'] == 2) {
+//                    //合伙人
+//                    $orderCount = StoreOrder::where('paid', 1)->where('uid', $vo['uid'])->where('is_explosion_order', 1)->sum('total_num');
+//                    $jl += $userMoney * $orderCount;// 会员分红
+//                    $jl += $partnerMoney;// 合伙人加权奖励
+//                    $userjl = $userMoney * $orderCount;//会员分红
+//                    $partnerjl = $partnerMoney;//合伙人分红
+//                } elseif ($vo['level'] == 3) {
+                if ($vo['level'] == 3){
                     //股东
-                    $str = '股东分红';
-                    $jl += $partnerMoney * $vo['stock_right'];// 合伙人加权奖励
                     $jl += $shareholderMoney;// 股东加权奖励
+                    $shareholderjl = $shareholderMoney;//股东分红
                 } elseif ($vo['level'] == 4) {
                     //董事
-                    $str = '董事分红';
-                    $jl += $partnerMoney * $vo['stock_right'];// 合伙人加权奖励
                     $jl += $shareholderMoney;// 股东加权奖励
                     $jl += $directorMoney;// 董事加权奖励
+                    $shareholderjl = $shareholderMoney;//股东分红
+                    $directorjl = $directorMoney;//股东分红
                 }
                 $model = new UserSingleAward();
                 $award = $model->where('uid', $vo['uid'])->where('status', 0)->select()->toArray();
@@ -701,39 +721,47 @@ class UserController
                         }
                     }
                     $model->saveAll($award);
-                    UserBill::income('佣金', $vo['uid'], 'now_money', 'brokerage', $bdjl, '', $vo['brokerage_price'] + $bdjl, $str);
+                    UserBill::income('佣金', $vo['uid'], 'now_money', 'brokerage', $userjl, '', $vo['brokerage_price'] + $userjl, '会员分红');
+                    if ($vo['level'] == 3){
+//                        UserBill::income('佣金', $vo['uid'], 'now_money', 'brokerage', $partnerjl, '', $vo['brokerage_price'] + $bdjl, '合伙人分红');
+                        UserBill::income('佣金', $vo['uid'], 'now_money', 'brokerage', $shareholderjl, '', $vo['brokerage_price'] + $userjl+ $shareholderjl, '股东分红');
+                    }elseif ($vo['level'] == 4){
+//                        UserBill::income('佣金', $vo['uid'], 'now_money', 'brokerage', $partnerjl, '', $vo['brokerage_price'] + $bdjl, '合伙人分红');
+                        UserBill::income('佣金', $vo['uid'], 'now_money', 'brokerage', $shareholderjl, '', $vo['brokerage_price'] + $userjl + $shareholderjl, '股东分红');
+                        UserBill::income('佣金', $vo['uid'], 'now_money', 'brokerage', $directorjl, '', $vo['brokerage_price'] + $userjl + $shareholderjl + $directorjl, '董事分红');
+                    }
                     User::where('uid', $vo['uid'])->inc('brokerage_price', $bdjl)->update();
 
-                    if ($vo['level'] == 1){
-                        // 如果是会员
-                        if ($vo['spread_uid']){
-                            $spread = User::where('uid', $vo['spread_uid'])->where('level', '>=', 1)->find();
-                            if ($spread){
-                                $model = new UserSingleAward();
-                                $award = $model->where('uid', $spread['uid'])->where('status', 0)->select()->toArray();
-                                if ($award){
-                                    $bdjl = 0; // 爆单剩余奖励
-                                    foreach ($award as &$item){
-                                        $surplus = $item['money'] - $item['grant'];
-                                        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;
-                                            }
+//                    if ($vo['level'] == 1){
+                    // 如果是会员
+                    if ($vo['spread_uid']){
+                        $spread = User::where('uid', $vo['spread_uid'])->where('level', '>=', 1)->find();
+                        if ($spread){
+                            $model = new UserSingleAward();
+                            $award = $model->where('uid', $spread['uid'])->where('status', 0)->select()->toArray();
+                            if ($award){
+                                $bdjl = 0; // 爆单剩余奖励
+                                foreach ($award as &$item){
+                                    $surplus = $item['money'] - $item['grant'];
+                                    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);
-                                    UserBill::income('佣金', $spread['uid'], 'now_money', 'brokerage', $bdjl, '', $spread['brokerage_price']+$bdjl, '分享会员分红');
-                                    User::where('uid', $spread['uid'])->inc('brokerage_price', $bdjl)->update();
                                 }
+                                $model->saveAll($award);
+                                UserBill::income('佣金', $spread['uid'], 'now_money', 'brokerage', $userjl, '', $spread['brokerage_price']+$userjl, '合伙人分红');
+                                User::where('uid', $spread['uid'])->inc('brokerage_price', $bdjl)->update();
                             }
                         }
+//                        }
                     }
                 }
             }

+ 1 - 1
app/models/store/StoreOrder.php

@@ -836,7 +836,7 @@ class StoreOrder extends BaseModel
      */
     public static function award($order)
     {
-        $money = $order['total_num'] * 10000;
+        $money = $order['total_num'] * 7000;
 
         $count = StoreOrder::where('uid', $order['uid'])->count();
         if ($count > 1){