Quellcode durchsuchen

Merge branch 'master' of https://git.bjtdba.com/shop/php

hefei vor 1 Jahr
Ursprung
Commit
e3af1f6344
1 geänderte Dateien mit 42 neuen und 3 gelöschten Zeilen
  1. 42 3
      app/controller/api/store/merchant/TaskPartnerProfits.php

+ 42 - 3
app/controller/api/store/merchant/TaskPartnerProfits.php

@@ -207,11 +207,12 @@ class TaskPartnerProfits
207 207
                 $subordinatesBatch = $this->getSubordinatesBatch($spreadUserUidList[$v]);
208 208
                 // 6.2.3 获取所有部门(下线)的PV值
209 209
                 foreach ($subordinatesBatch as $k1 => $v1) {
210
+                    $partnerProfitsPvListByUid[$v][$k1] = 0;
210 211
                     // 获取当前下线的PV值, 忽略测试人员的账号
211 212
                     $pv = $this->getPv(array_merge($v1, [$k1]), $removeUserIdList);
212
-                    if (!empty($pv)) {
213
-                        $partnerProfitsPvListByUid[$v][$k1] = $pv;
214
-                    }
213
+                    $partnerProfitsPvListByUid[$v][$k1] += $pv;
214
+                    $pvNew = $this->getPvNew(array_merge($v1, [$k1]), $removeUserIdList);
215
+                    $partnerProfitsPvListByUid[$v][$k1] += $pvNew;
215 216
                 }
216 217
 
217 218
                 // 6.2.4 将PV值进行记录 以便后续计算
@@ -595,6 +596,44 @@ class TaskPartnerProfits
595 596
         }
596 597
         return $money1180Sum + $money11800Sum + $money10620Sum + $money9440Sum + $money2360Sum + (floor($otherMoneySum * 70) / 100);
597 598
     }
599
+    // 获取用户PV值
600
+    public function getPvNew($userIdList, $removeUserIdList = [])
601
+    {
602
+        if (!empty($removeUserIdList)) {
603
+            $userIdList = array_values(array_diff($userIdList, $removeUserIdList));
604
+        }
605
+        // 查询指定时间区间内的所有订单,并排除 pay_time 为 NULL 的订单
606
+        $orders = Db::name("store_order")
607
+            ->where('mer_id', 496)
608
+            ->whereIn('uid', $userIdList)
609
+            ->whereIn('status', [0, 1, 2, 3]) // TODO 之前橙汁先生 这么定义的,感觉有问题,也就是现在 会员专区 下单 不允许退款,不然肯定有问题 注意调整
610
+            ->whereIn("total_price", [1180, 11800, 10620, 2360, 9440])
611
+            ->whereNotNull("pay_time") // 排除 pay_time 为 NULL 的订单
612
+            ->select();
613
+
614
+        // 计算总业绩
615
+        $totalPv = 0;
616
+        foreach ($orders as $order) {
617
+            switch ($order['total_price']) {
618
+                case 1180:
619
+                    $totalPv += 700;
620
+                    break;
621
+                case 11800:
622
+                    $totalPv += 7000;
623
+                    break;
624
+                case 10620:
625
+                    $totalPv += 6300;
626
+                    break;
627
+                case 2360:
628
+                    $totalPv += 1400;
629
+                    break;
630
+                case 9440:
631
+                    $totalPv += 5600;
632
+                    break;
633
+            }
634
+        }
635
+        return $totalPv;
636
+    }
598 637
 
599 638
     //发放佣金 示例: $this->change_user_log($v,'amount',1,$all_award,"member_award","星级分红入账"."-".$value['title']);//释放佣金
600 639
     function change_user_log($user_id, $type, $change_status, $money, $routine, $remark = "", $is_admin = 1, $appoint_money = 0)