Sfoglia il codice sorgente

商贸区支付成功后处理奖励机制

hefei 1 anno fa
parent
commit
f7f1692275

+ 1 - 1
app/common/repositories/store/order/StoreOrderRepository.php

@@ -2403,7 +2403,7 @@ class StoreOrderRepository extends BaseRepository
2403 2403
 //                        ['type' => 'b1', 'price' => $jcvr, 'other' => $jcjf, 'note' => "VR+积分"],
2404 2404
                             ['type' => 'b2', 'price' => $jcprice, 'other' => $jcjf1, "note" => "现金+积分"],
2405 2405
                             // ['type'=>'b3','price'=>$jcvr1,'other'=>$jcjd,"note"=>"VR+京豆"],
2406
-                            ['type' => 'b4', 'price' => $jcvr1, 'other' => $jcjd, "note" => "现金+京豆"],
2406
+//                            ['type' => 'b4', 'price' => $jcvr1, 'other' => $jcjd, "note" => "现金+京豆"],
2407 2407
 //                        ['type' => 'b5', 'price' => $orderpri, 'other' => 0, "note" => "VR"],
2408 2408
                             ['type' => 'b6', 'price' => $orderpri, 'other' => 0, "note" => "现金"],
2409 2409
 

+ 131 - 9
app/controller/api/Notify.php

@@ -2,8 +2,10 @@
2 2
 namespace app\controller\api;
3 3
 
4 4
 use AdaPaySdk\AdapayTools;
5
+use app\common\repositories\merchant\order\OrderMerchantRepository;
5 6
 use app\common\repositories\movie\MovieRepository;
6 7
 use app\common\repositories\store\order\StoreRefundOrderRepository;
8
+use app\common\repositories\system\merchant\MerchantRepository;
7 9
 use app\common\repositories\user\UserRepository;
8 10
 use app\controller\api\merchant\sxy\Access;
9 11
 use app\controller\api\store\service\Huafei;
@@ -181,7 +183,7 @@ class Notify
181 183
                                     //Db::name('user')->where('uid',$user_data['uid'])->update(['annuity'=>$ylj_amount_mine,"contribute"=>$con,"score"=>$score]);
182 184
 
183 185
                                     $this->bill_user_log($user_data['uid'],$ylj_pri,$store_order_data['order_id'],5,$store_order_data['order_sn'],'消费获得养老金'.$ylj_pri,$store_order_data['mer_id'],0);
184
-                                    $this->con_log_pv($user_data['uid'],$pv,$store_order_data['order_id'],11,"购买精彩生活商品赠送贡献值");
186
+                                    $this->con_log_pv($user_data['uid'],$pv,$store_order_data['order_id'],11,"购买精彩生活商品赠送pv");
185 187
                                     $this->con_log($user_data['uid'],$pv,$store_order_data['order_id'],11,"购买精彩生活商品赠送贡献值");
186 188
                                     $this->score_log($user_data['uid'],$pv,$store_order_data['order_id'],11,"购买精彩生活商品赠送积分");
187 189
 
@@ -417,7 +419,7 @@ class Notify
417 419
  
418 420
                                 $this->bill_user_log($user_data['uid'],round($pv * 0.035,2),$store_order_data['order_id'],5,$store_order_data['order_sn'],'消费获得养老金'.round($pv * 0.035,2),$store_order_data['mer_id']);
419 421
  
420
-                                $this->con_log_pv($user_data['uid'],$gx_jf,$store_order_data['order_id'],11,"购买会员专区商品赠送贡献值",1);
422
+                                $this->con_log_pv($user_data['uid'],$gx_jf,$store_order_data['order_id'],11,"购买会员专区商品赠送pv",1);
421 423
                                 // $this->con_log($user_data['uid'],$gx_jf,$store_order_data['order_id'],11,"购买会员专区商品赠送贡献值",1);
422 424
                                 $this->con_log($user_data['uid'],$gx_jf,$store_order_data['order_id'],11,"购买会员专区商品赠送贡献值",1, $gx_jf);
423 425
                                 $this->score_log($user_data['uid'],$gx_jf,$store_order_data['order_id'],11,"购买会员专区商品赠送积分",1);
@@ -715,6 +717,125 @@ class Notify
715 717
                                 }
716 718
 
717 719
 
720
+                            } else {
721
+                                // 商贸区
722
+                                /** @var \app\common\repositories\merchant\MerchantRepository $merchant */
723
+                                $merchant = app()->make(MerchantRepository::class);
724
+                                $merchantInfo = $merchant->get($store_order_data['mer_id']);
725
+                                // 1企业2个体3个人
726
+                                if ($merchantInfo && !empty($store_order_data) && in_array($merchantInfo['type'], [2, 3])) {
727
+                                    //商家让利部分的拆分
728
+                                    $ylj_pri = bcmul($concession_pri, 0.3, 2); // 让利部分30%给消费者做养老金
729
+                                    $pv = bcmul($concession_pri, 0.35, 2); // 35%做业绩PV分配
730
+
731
+                                    // 让利部分30%给消费者做养老金{$ylj_pri}
732
+                                    $this->bill_user_log($user_data['uid'], $ylj_pri, $store_order_data['order_id'], 5, $group_order['group_order_sn'], '购买商贸区商品获得养老金' . $ylj_pri, $store_order_data['mer_id'], 0);
733
+                                    // 购买商贸区赠送贡献值
734
+                                    $this->con_log($user_data['uid'], $pv, $store_order_data['order_id'], 12, "购买商贸区商品赠送贡献值");
735
+                                    // 购买商贸区赠送PV值
736
+                                    $this->con_log_pv($user_data['uid'], $pv, $store_order_data['order_id'], 12, "购买商贸区赠送PV值");
737
+                                    // 积分
738
+                                    $this->score_log($user_data['uid'], $pv, $store_order_data['order_id'], 12, "购买商贸区商品赠送积分");
739
+
740
+                                    if ($user_data['spread_uid'] != 0) {
741
+                                        //查询下单用户上级
742
+                                        $spread_data = Db::name('user')->where('uid', $user_data['spread_uid'])->find();
743
+                                        /** @var \app\common\repositories\store\order\StoreOrderRepository $StoreOrderRepository */
744
+                                        $rate = $StoreOrderRepository->getUserGroupRate($spread_data['user_group']);
745
+                                        if ($spread_data['user_group'] > 1) {
746
+                                            $ssf = bcmul($pv, $rate, 2);
747
+                                            $yj_amount_90 = bcmul($pv, $rate, 2) * 0.9;
748
+                                            $fgj_amount_10 = bcmul($pv, $rate, 2) * 0.1;//推广者的佣金抽10%到个人复购金
749
+                                            $this->fugou_user_log($spread_data['uid'], $fgj_amount_10, $store_order_data['order_id'], 1);
750
+
751
+                                            //贡献值
752
+                                            $this->con_log($spread_data['uid'], $pv, $store_order_data['order_id'], 12, "推广商贸区商品赠送贡献值");
753
+                                            //积分
754
+                                            $this->score_log($spread_data['uid'], $ssf, $store_order_data['order_id'], 12, "推广商贸区商品赠送积分");
755
+                                            //推广佣金
756
+                                            $this->bill_user_log($spread_data['uid'], $yj_amount_90, $store_order_data['order_id'], 3, $group_order['group_order_sn'], '推广获得佣金' . $yj_amount_90, $store_order_data['mer_id'], 0);
757
+                                            //养老金
758
+                                            $this->bill_user_log($spread_data['uid'], bcmul($pv, 0.05, 2), $store_order_data['order_id'], 5, $group_order['group_order_sn'], '推广获得养老金' . round($pv * 0.05, 2), $store_order_data['mer_id'], 0);
759
+                                        }
760
+
761
+                                        //普通用户推广人
762
+                                        if ($spread_data['user_group'] == 1) {
763
+                                            //给推广者分配佣金
764
+
765
+                                            $yj_amount_90 = bcmul($pv, $rate, 2) * 0.9;
766
+                                            $fgj_amount_10 = bcmul($pv, $rate, 2) * 0.1;//推广者的佣金抽10%到个人复购金
767
+
768
+                                            $this->fugou_user_log($spread_data['uid'], $fgj_amount_10, $store_order_data['order_id'], 1);
769
+
770
+                                            //推广佣金
771
+                                            $this->bill_user_log($spread_data['uid'], $yj_amount_90, $store_order_data['order_id'], 3, $group_order['group_order_sn'], '推广获得佣金' . $yj_amount_90, $store_order_data['mer_id'], 0);
772
+                                            // 贡献值
773
+                                            $this->con_log($spread_data['uid'], $pv, $store_order_data['order_id'], 12, "推广商贸区商品赠送贡献值");
774
+                                            // 积分
775
+                                            $this->score_log($spread_data['uid'], bcmul($pv, $rate, 2), $store_order_data['order_id'], 12, "推广商贸区商品赠送积分");
776
+                                        }
777
+                                    }
778
+
779
+                                    //锁客收益
780
+                                    if ($user_data['mer_id'] != 0) {
781
+                                        $merchant_data = Db::name('merchant')->where('mer_id', $user_data['mer_id'])->find();
782
+                                        $merchant_user_data = Db::name('user')->where('uid', $merchant_data['uid'])->find();
783
+                                        if (!empty($merchant_user_data)) {
784
+                                            //给推广者分配佣金
785
+                                            $yj_amount_90 = bcmul($pv, 0.05, 2) * 0.9;
786
+                                            $fgj_amount_10 = bcmul($pv, 0.05, 2) * 0.1;//推广者的佣金抽10%到个人复购金
787
+                                            $this->fugou_user_log($merchant_data['uid'], $fgj_amount_10, $store_order_data['order_id'], 1);
788
+                                            //推广佣金
789
+                                            $this->bill_user_log($merchant_data['uid'], $yj_amount_90, $store_order_data['order_id'], 3, $group_order['group_order_sn'], '推广获得佣金' . $yj_amount_90, $store_order_data['mer_id'], 0);
790
+                                        }
791
+                                        /** @var OrderMerchantRepository $orderMerchantRepository */
792
+                                        $orderMerchantRepository = app()->make(OrderMerchantRepository::class);
793
+                                        $jdAndGonxianConfig = $orderMerchantRepository->getMerchantContribution($store_order_data['extension_two']);
794
+
795
+                                        //商户获得贡献值  ---- 3月29日  商户不再获得贡献值 改为获得分润值
796
+                    //                    if ($concession_pri >= 0.01) {
797
+                    //                        $gonxian = bcmul($concession_pri, $jdAndGonxianConfig['gonxian'], 2);
798
+                    //                        $gongxian_data = [
799
+                    //                            "uid" => $merchant_data["uid"],
800
+                    //                            "mer_id" => $user_data['mer_id'],
801
+                    //                            "pv" => $pv,
802
+                    //                            "number" => $gonxian,
803
+                    //                            "addtime" => time(),
804
+                    //                            "status" => -1,
805
+                    //                            "order_type" => 2,
806
+                    //                            "order_id" => $store_order_data['order_id'],
807
+                    //                            "mark" => "锁客商家获得贡献值",
808
+                    //                            "desc" => '',
809
+                    //                            "surplus" => $gonxian,
810
+                    //                            "type" => 1
811
+                    //                        ];
812
+                    //                        Db::name("user_sign_gongxian")->insert($gongxian_data);//添加记录
813
+                    //                    } else {
814
+                    //                        Db::name('log')->insert(['data' => '订单号:' . $store_order_data['order_id'] . '付款额度较低或 商家、平台设置的返佣比例较低,贡献值低于0.01无法入库 特此记录!']);
815
+                    //                    }
816
+
817
+                                        //商户获得京豆
818
+                                        if ($concession_pri >= 0.01) {
819
+                                            $jd = bcmul($concession_pri, $jdAndGonxianConfig['jd'], 2);
820
+                                            $jd_data = [
821
+                                                "uid" => $merchant_data["uid"],
822
+                                                "mer_id" => $user_data['mer_id'],
823
+                                                "number" => $jd,
824
+                                                "addtime" => time(),
825
+                                                "status" => -1,
826
+                                                "order_type" => 2,
827
+                                                "order_id" => $store_order_data['order_id'],
828
+                                                "mark" => "锁客商家获得京豆",
829
+                                                "desc" => '',
830
+                                                "surplus" => $jd,
831
+                                                "type" => 1
832
+                                            ];
833
+                                            Db::name("user_sign_jingdou")->insert($jd_data);//添加记录
834
+                                        } else {
835
+                                            Db::name('log')->insert(['data' => '订单号:' . $store_order_data['order_id'] . '付款额度较低或 商家、平台设置的返佣比例较低,京豆低于0.01无法入库 特此记录!']);
836
+                                        }
837
+                                    }
838
+                                }
718 839
                             }
719 840
 
720 841
                          
@@ -1404,18 +1525,23 @@ class Notify
1404 1525
         return $newList;
1405 1526
     }
1406 1527
 
1407
-    public function con_log_pv($uid, $num, $order_id, $order_type, $mark, $status = -1)
1528
+    public function con_log_pv($uid, $pv, $order_id, $order_type, $mark, $status = -1)
1408 1529
     {
1409 1530
         // 添加pv记录
1410 1531
         $pv_data = [
1411 1532
             "uid" => $uid,
1412
-            "pv" => $num,
1533
+            "pv" => $pv,
1413 1534
             "addtime" => time(),
1414 1535
             "status" => $status,
1415 1536
             "order_type" => $order_type,
1416 1537
             "order_id" => $order_id,
1417
-            "mark" => str_replace('贡献值', 'PV', $mark),
1538
+            "mark" => $mark,
1418 1539
         ];
1540
+        // 当状态为1时是实时结算
1541
+        if($status == 1) {
1542
+            Db::name('user')->where('uid', $uid)->inc('pv', (float)$pv)->update();
1543
+            $pv_data['settlement_time'] = date('Y-m-d H:i:s');
1544
+        }
1419 1545
         Db::name("user_pv_log")->insert($pv_data);//添加pv记录
1420 1546
     }
1421 1547
 
@@ -1443,10 +1569,6 @@ class Notify
1443 1569
                     Db::name('user')->where("uid",$uid)->update(['per_contribute'=>$con_data['per_contribute'] + $num]);
1444 1570
                 }
1445 1571
 
1446
-                if($pv > 0){
1447
-                    Db::name('user')->where("uid", $uid)->update(['pv' => $con_data['pv'] + $pv]);
1448
-                }
1449
-
1450 1572
                 //if(count($spread_data) > 0){
1451 1573
                     // $all_ids = [];
1452 1574
                     // foreach($spread_data as $k=>$v){