Browse Source

业务员分开a%评分,b%加权

lizhen_gitee 1 week ago
parent
commit
4398b632e2
2 changed files with 89 additions and 3 deletions
  1. 81 3
      application/api/controller/Demo.php
  2. 8 0
      application/utils/RedisUtil.php

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

@@ -122,16 +122,16 @@ class Demo extends Api
         $invite_count     = Db::name('offline_shop')->where('invite_id',$user_id)->count();
 
         //我上个月直推线下商家的总数量
-        $invite_count_mon = Db::name('offline_shop')->where('invite_id',$user_id)->whereTime('create_time','last month')->count();
+        $invite_count_mon = Db::name('offline_shop')->where('invite_id',$user_id)->whereTime('back_time','last month')->count();
 
         //我的个人业绩。我所有直推线下商家的3-20%的让利总额
         $invite_amount = Db::name('bill')->where('shop_invite_id',$user_id)->where('table_name','offline_shop_order')->where('back_status','neq',0)
-            ->whereTime('createtime','last month')->sum('back_amount');
+            ->whereTime('back_time','last month')->sum('back_amount');
 
         //我团队业绩
         $invite_uids = $this->get_all_down_uids($user_id);
         $invite_amount_tuandui = Db::name('bill')->where('shop_invite_id','IN',$invite_uids)->where('table_name','offline_shop_order')->where('back_status','neq',0)
-            ->whereTime('createtime','last month')->sum('back_amount');
+            ->whereTime('back_time','last month')->sum('back_amount');
 
         //dd($last_month,$invite_count,$invite_count_mon,$invite_amount,$invite_amount_tuandui);
 
@@ -194,10 +194,88 @@ class Demo extends Api
 
     }
 
+    //获取我的团队用户ids
     private function get_all_down_uids($user_id){
          return $user_id;
     }
 
+    //业务员 a%评分,b%业绩加权
+    public function yewuyuan_ab(){
+
+        //上个月的公司分红1% 。酒店,餐厅,老年大学活动,线下,商城,所有让利总额,作为基数
+        $back_amount_sum = Db::name('bill')->whereTime('back_time','last month')->where('back_status','neq',0)->sum('back_amount');
+        if($back_amount_sum <= 0){
+            echo '基数为0结束';exit;
+            return true;
+        }
+        //dump($back_amount_sum);
+
+        $yingxiao_level = Db::name('yingxiao_level')->where('id','IN','1,2')->column('id,fenhong,pingfen,jiaquan');
+
+        //百分之一
+        $base_1 = bcdiv(bcmul($back_amount_sum,$yingxiao_level[1]['fenhong'],4),100,4);
+        $base_2 = bcdiv(bcmul($back_amount_sum,$yingxiao_level[2]['fenhong'],4),100,4);
+
+        //两个ab基数
+        $back_amount_a1 = bcdiv(bcmul($base_1,$yingxiao_level[1]['pingfen'],4),100,4);
+        $back_amount_b1 = bcdiv(bcmul($base_1,$yingxiao_level[1]['jiaquan'],4),100,4);
+
+        $back_amount_a2 = bcdiv(bcmul($base_2,$yingxiao_level[2]['pingfen'],4),100,4);
+        $back_amount_b2 = bcdiv(bcmul($base_2,$yingxiao_level[2]['jiaquan'],4),100,4);
+
+        //dd($base_1,$base_2,$back_amount_a1,$back_amount_b1,$back_amount_a2,$back_amount_b2);
+
+        //两个ab奖
+        $last_month = date('Ym',strtotime(date('Y-m-01')) - 86400);
+
+        $redis_key_a1 = $last_month . '_yingxiao_a_1';
+        $redis_key_b1 = $last_month . '_yingxiao_b_1';
+
+        $redis_key_a2 = $last_month . '_yingxiao_a_2';
+        $redis_key_b2 = $last_month . '_yingxiao_b_2';
+
+        $a1_list = RedisUtil::getInstance($redis_key_a1)->LRANGE();
+        $b1_list = RedisUtil::getInstance($redis_key_b1)->LRANGE();
+
+        $a2_list = RedisUtil::getInstance($redis_key_a2)->LRANGE();
+        $b2_list = RedisUtil::getInstance($redis_key_b2)->LRANGE();
+
+        //dd($redis_key_a1,$redis_key_b1,$a1_list,$b1_list);
+
+        if(!empty($a1_list)){
+            $a1_price = bcdiv($back_amount_a1,count($a1_list),2);
+            foreach($a1_list as $a1){
+                dump($a1);
+                dump($a1_price);
+                //给用户id:$a1发钱
+//
+            }
+        }
+        dump($b1_list);
+        if(!empty($b1_list)){
+            dump(array_column($b1_list,'invite_amount_tuandui'));
+            $b1_total = array_sum(array_column($b1_list,'invite_amount_tuandui'));
+            dump($b1_total);
+            foreach($b1_list as $b1){
+//                dump($b1['user_id']);
+//                bcmul($back_amount_b1,bcdiv($b1['invite_amount_tuandui'],$b1_total,4),2);
+            }
+        }
+
+        if(!empty($a2_list)){
+            $a2_price = bcdiv($back_amount_a2,count($a2_list),2);
+            foreach($a2_list as $a2){
+                dump($a2);
+                dump($a2_price);
+                //给用户id:$a2发钱
+//
+            }
+        }
+
+
+
+    }
+
     //每月初执行,跑代理辅助表,把上个月的数据全部推送到 代理队列
     public function task_agent(){
         $last_month =  date('Ym',strtotime(date('Y-m-01')) - 86400); //上个月一号,202502

+ 8 - 0
application/utils/RedisUtil.php

@@ -247,6 +247,14 @@ class RedisUtil
         return $pipe->exec();
     }
 
+    public function LRANGE(){
+        $redis = $this->Redis;
+
+        $key = $this->Key;
+
+        return $redis->LRANGE($key,0,-1);
+    }
+
 
     //list长度
     public function lLen()