Explorar o código

同步授权锁客调整

xialei hai 1 ano
pai
achega
3146e23e68

+ 47 - 49
app/common/repositories/merchant/order/OrderMerchantRepository.php

@@ -836,65 +836,63 @@ class OrderMerchantRepository extends BaseRepository
836 836
         $unionUser = $unionUsersRepository->getWhere(['unionid' => $order->pay_user_id]);
837 837
         $userOfflineRechargeRepository = app()->make(UserOfflineRechargeRepository::class);
838 838
         if ($user) {
839
-//            $order->binds = 1;
840
-//            $order->uid = $user->uid;
841
-//            $order->save();
842 839
             Db::name('order_merchant')->where('id', $order->id)->update(['binds' => 1, 'uid' => $user->uid]);
843 840
             //锁定商户
844 841
             if (!$user->mer_id || !$user->locktime) {
845
-                // $user->mer_id = $order->mer_id;
846
-                // $user->save();
842
+                //锁住
847 843
                 Db::name('user')->where('uid', $user->uid)->update(['mer_id' => $order->mer_id, 'locktime' => date('Y-m-d H:i:s')]);
848 844
 
849
-                $mer_fanyongbili = merchantConfig($order->mer_id, 'base_commission');
850
-                //如果商户返佣比例设置的是0怎查系统设设置的分佣比例
851
-                if ($mer_fanyongbili == 0) {
852
-                    $mer_fanyongbili = merchantConfig(0, 'extension_one_rate');
853
-                }
854
-                //如果系统设置的是0就不执行!
855
-                if ($mer_fanyongbili == 0) {
856
-                    Db::name('log')->insert(['data' => '订单号:' . $order->order_sn . ' 订单因商家、平台没有设置返佣比例无任何奖励特此记录!']);
857
-                    return '';
858
-                }
859
-                $order_sn = $order->order_sn ?? '';
860
-                $order_id = $order->order_id ?? '';
861
-                //可分总佣金
862
-                $divisible_commission = bcmul($order->money, bcdiv($mer_fanyongbili, '100', 2), 2);//让利部分
863
-                $pv = bcmul($divisible_commission, '0.7', 2);//商家让利部分30%给消费者做养老金,70%做业绩PV
864
-
865
-                //商户锁客收益:PV的5%==14元X5%=0.7元 (加入到用户佣金,可以从用户佣金中提现,商户显示锁客收益总额)
845
+                //获取锁客商户的uid
866 846
                 $mer_data = Db::name('merchant')->where('mer_id', $order->mer_id)->field('uid,mer_id')->find();
867 847
                 $merchant_user = $userRepository->getOne(['uid' => $mer_data["uid"]]);
868 848
 
869
-                $suo_commission = bcmul($pv, '0.5', 2);
870
-                if ($suo_commission >= 0.01) {
871
-                    $mark = "用户获得商户锁客收益" . $suo_commission . '佣金';
872
-                    $title = "佣金";
873
-                    $source = 1;
874
-                    $commission_type = 3;
875
-                    $this->add_bill($title, $suo_commission, $merchant_user->uid, $mark, $commission_type, $order_sn, $order_id, $order->mer_id, $source, 1);
876
-                } else {
877
-                    Db::name('log')->insert(['data' => '订单号:' . $order->order_sn . '付款额度较低或 商家、平台设置的返佣比例较低,佣金低于0.01无法入库 特此记录!']);
849
+                //跨店锁客分发
850
+                $orders = OrderMerchant::getDB()->where('pay_user_id', $unionUser->unionid)->where('status', 1) ->whereNotIn('mer_id', [$order->mer_id])->where('binds',0)->select();
851
+                foreach ($orders as $kd_order) {
852
+                    $pv = Db::name('user_sign_gongxian')->where('mer_id', $kd_order->mer_id)->where('order_id', $kd_order->id)->value('pv');//拿到原来的pv值记录
853
+                    //商户锁客收益:PV的5%==14元X5%=0.7元 (加入到用户佣金,可以从用户佣金中提现,商户显示锁客收益总额)
854
+                    $suo_commission = bcmul($pv, '0.5', 2);
855
+                    if ($suo_commission >= 0.01 && $pv) {
856
+                        $mark = "用户获得商户锁客跨店收益" . $suo_commission . '佣金';
857
+                        $title = "商户跨店佣金";
858
+                        $source = 1;
859
+                        $commission_type = 3;
860
+                        $this->add_bill($title, $suo_commission, $merchant_user->uid, $mark, $commission_type, $kd_order->order_sn, $kd_order->id, $kd_order->mer_id, $source, 1);
861
+                    } else {
862
+                        Db::name('log')->insert(['data' => '订单号:' . $kd_order->order_sn . '付款额度较低或 商家、平台设置的返佣比例较低,商户锁客跨店佣金低于0.01无法入库 特此记录!']);
863
+                    }
878 864
                 }
879
-        
880
-
881
-    
882
-
883
-                // $mer_uid = Db::name('merchant')->where('mer_id', $order->mer_id)->value('uid');
884
-                //商户每锁定一个顾客获得300积分
885
-                // $userRepository->sign_add($mer_uid, systemConfig('mer_score'), 1, '到店锁定一个顾客赠送积分', '', '', $order->id,1,'order_merchant');
886
-//                Db::name('user')->where('uid',$mer_uid)->inc('score', systemConfig('mer_score'))->update();
887
-//                $ins_data['uid'] = $mer_uid;
888
-//                $ins_data['reward_socre'] = systemConfig('mer_score');
889
-//                $ins_data['addtime'] = time();
890
-//                $ins_data['status'] = 1;
891
-//                $ins_data['order_id'] = $order->id;
892
-//                $ins_data['mark'] = '到店锁定一个顾客赠送积分';
893
-//                Db::name('user_sign_score')->insert($ins_data);
894
-
895 865
 
896
-                //环信im处理
897
-//                $this->hxim($user->uid,$order->mer_id);
866
+                // $mer_fanyongbili = merchantConfig($order->mer_id, 'base_commission');
867
+                // //如果商户返佣比例设置的是0怎查系统设设置的分佣比例
868
+                // if ($mer_fanyongbili == 0) {
869
+                //     $mer_fanyongbili = merchantConfig(0, 'extension_one_rate');
870
+                // }
871
+                // //如果系统设置的是0就不执行!
872
+                // if ($mer_fanyongbili == 0) {
873
+                //     Db::name('log')->insert(['data' => '订单号:' . $order->order_sn . ' 订单因商家、平台没有设置返佣比例无任何奖励特此记录!']);
874
+                //     return '';
875
+                // }
876
+                // $order_sn = $order->order_sn ?? '';
877
+                // $order_id = $order->order_id ?? '';
878
+                // //可分总佣金
879
+                // $divisible_commission = bcmul($order->money, bcdiv($mer_fanyongbili, '100', 2), 2);//让利部分
880
+                // $pv = bcmul($divisible_commission, '0.7', 2);//商家让利部分30%给消费者做养老金,70%做业绩PV
881
+
882
+                // //商户锁客收益:PV的5%==14元X5%=0.7元 (加入到用户佣金,可以从用户佣金中提现,商户显示锁客收益总额)
883
+                // $mer_data = Db::name('merchant')->where('mer_id', $order->mer_id)->field('uid,mer_id')->find();
884
+                // $merchant_user = $userRepository->getOne(['uid' => $mer_data["uid"]]);
885
+
886
+                // $suo_commission = bcmul($pv, '0.5', 2);
887
+                // if ($suo_commission >= 0.01) {
888
+                //     $mark = "用户获得商户锁客跨店收益" . $suo_commission . '佣金';
889
+                //     $title = "商户跨店佣金";
890
+                //     $source = 1;
891
+                //     $commission_type = 3;
892
+                //     $this->add_bill($title, $suo_commission, $merchant_user->uid, $mark, $commission_type, $order_sn, $order_id, $order->mer_id, $source, 1);
893
+                // } else {
894
+                //     Db::name('log')->insert(['data' => '订单号:' . $order->order_sn . '付款额度较低或 商家、平台设置的返佣比例较低,佣金低于0.01无法入库 特此记录!']);
895
+                // }
898 896
             }
899 897
 
900 898
             $userOfflineRechargeRepository->paySuccess($order->id, $order->out_trade_no, $user->uid, $order->mer_id, $order->money, $order->give_money, $order->pension, $order->available, $order->pay_user_id);

+ 10 - 3
app/common/repositories/user/UserOfflineRechargeRepository.php

@@ -177,7 +177,7 @@ class UserOfflineRechargeRepository extends BaseRepository
177 177
 
178 178
 
179 179
                     //同步后返佣
180
-                    $userRepository = app()->make(OrderMerchantRepository::class);
180
+                    $OrderMerchantRepository = app()->make(OrderMerchantRepository::class);
181 181
                     $order_data = [
182 182
                         'order_sn' => $order->out_trade_no,
183 183
                         'order_id' => $order->id,
@@ -186,8 +186,15 @@ class UserOfflineRechargeRepository extends BaseRepository
186 186
                         'mer_id' => $order->mer_id
187 187
                     ];
188 188
                     $user = Db::name('user')->where('uid', $unionUser->uid)->find();
189
-                    $userRepository->feidacang_fenyong($user, $order_data, 0);
190
-                    $userRepository->feidacang_fenyong_mer($user, $order_data, 0);
189
+                    $OrderMerchantRepository->feidacang_fenyong($user, $order_data, 0);
190
+                    $OrderMerchantRepository->feidacang_fenyong_mer($user, $order_data, 0);
191
+
192
+                    //锁客
193
+                    $flag = 1;
194
+                    $order = (object)$order;
195
+                    $userRepository = app()->make(UserRepository::class);
196
+                    $user = $userRepository->getOne(['uid' => $unionUser->uid]);
197
+                    $userRepository->doBind($user, $order, $flag);
191 198
 
192 199
                     OrderMerchant::getDB()->where('pay_user_id', $unionUser->unionid)->update(['uid' => $unionUser->uid, 'binds' => 1]);
193 200
                 }