Просмотр исходного кода

修改会员专区用户升级权益问题

橙汁先生 1 год назад
Родитель
Сommit
8c629a6f79

+ 276 - 5
app/common/repositories/store/order/StoreOrderRepository.php

@@ -117,7 +117,7 @@ class StoreOrderRepository extends BaseRepository
117 117
      * @author xaboy
118 118
      * @day 2020/8/1
119 119
      */
120
-    public function createOrder(User $user, int $pay_type,$cartId,$addressId,$coupons, $takes, $mark,$psType, $table_id = null, $share_id = 0, $payType, $mer_id = 0, $dacang_id = 0, $distribution_mode = 1, $ziti_address = '', $area_manage_address_ids = '',$youhui_price_key='',$cartIdAndPayTypMap,$fzone_paytype='')
120
+    public function createOrder(User $user, int $pay_type,$cartId,$addressId,$coupons, $takes, $mark,$psType, $table_id = null, $share_id = 0, $payType, $mer_id = 0, $dacang_id = 0, $distribution_mode = 1, $ziti_address = '', $area_manage_address_ids = '',$youhui_price_key='',$cartIdAndPayTypMap,$fzone_paytype='',$getuserofgoodsid='')
121 121
     {
122 122
 
123 123
 
@@ -778,6 +778,7 @@ class StoreOrderRepository extends BaseRepository
778 778
                     'douhuomall'              => 0,
779 779
                     'fzone_paytype'           =>$fzone_paytype,
780 780
                     'con_pri'                 =>$product_attr_unique_datas['plate_mer_profit'],//计算商品选中的产品规格,然后计算利润,这个利润会在每周分红中进行分润
781
+                    'user_of_goods_id'         =>$getuserofgoodsid,
781 782
                 ];
782 783
 
783 784
 
@@ -968,7 +969,7 @@ class StoreOrderRepository extends BaseRepository
968 969
                                 $log_data = [
969 970
                                     'uid'=>$uid,
970 971
                                     'number'=>$array_fzone_paytype['price'],
971
-                                    'mark'=>"购买精彩区商品消VR:" . $array_fzone_paytype['price'],
972
+                                    'mark'=>"购买精彩区商品消VR:" . $array_fzone_paytype['price'],
972 973
                                     'desc'=>"VR",
973 974
                                     'order_id'=>0,
974 975
                                     'surplus'=>$vrpri,
@@ -998,7 +999,7 @@ class StoreOrderRepository extends BaseRepository
998 999
                             $log_data = [
999 1000
                                 'uid'=>$uid,
1000 1001
                                 'number'=>$array_fzone_paytype['price'],
1001
-                                'mark'=>"购买会员专区商品消VR:" . $array_fzone_paytype['price'],
1002
+                                'mark'=>"购买会员专区商品消VR:" . $array_fzone_paytype['price'],
1002 1003
                                 'desc'=>"VR",
1003 1004
                                 'order_id'=>0,
1004 1005
                                 'surplus'=>$vrpri,
@@ -1008,6 +1009,11 @@ class StoreOrderRepository extends BaseRepository
1008 1009
                             ];
1009 1010
                             $user_res_log = Db::name("user_sign_vr")->insert( $log_data);
1010 1011
 
1012
+                            //会员专区,给用户升级判断
1013
+                            //Db::name("store_order")->where("uid", $uid)->where()->select();
1014
+
1015
+
1016
+
1011 1017
                         }
1012 1018
 
1013 1019
                     }
@@ -9307,12 +9313,23 @@ class StoreOrderRepository extends BaseRepository
9307 9313
             $this->con_log($user_data['uid'],$gx_jf,$store_order_data['order_id'],11,"购买会员专区商品赠送贡献值",1);
9308 9314
             $this->score_log($user_data['uid'],$gx_jf,$store_order_data['order_id'],11,"购买会员专区商品赠送积分",1);
9309 9315
 
9316
+            //查询下单用户上级身份(2.0新表用户)
9317
+            $spread_data = Db::name('user')->where('uid',$user_data['spread_uid'])->find();
9318
+            //查询下单用户上级身份(1.0表用户,会员升级)
9319
+            $spread_data_old = 0;
9320
+            if($user_data['spread_old'] != 0){
9321
+                $sf = Db::name('old_user_jbp')->where('id',$user_data['spread_old'])->find();
9322
+                if(!empty($sf)){
9323
+                    $spread_data_old = $sf;
9324
+                }
9325
+
9326
+            }
9327
+
9310 9328
             //给推广者分配养老金
9311 9329
             //给推广者分配佣金
9312 9330
             if($user_data['spread_uid'] != 0){
9313
-                //查询下单用户上级身份
9314
-                $spread_data = Db::name('user')->where('uid',$user_data['spread_uid'])->find();
9315 9331
 
9332
+                $spread_data = Db::name('user')->where('uid',$user_data['spread_uid'])->find();
9316 9333
                 //user_group=1是消费者,2:业务,3:业务经理,4:初级合伙人,5:中级合伙人,6:高级合伙人,7:董事
9317 9334
                 //业务或以上等级推广人
9318 9335
                 //获得养老金、佣金、贡献值和积分
@@ -9436,7 +9453,46 @@ class StoreOrderRepository extends BaseRepository
9436 9453
 
9437 9454
 
9438 9455
 
9456
+            }else if($spread_data_old != 0){
9457
+
9458
+                //1.0jbp系统中,如果有用户升级会员,给推荐人贡献值(90%)和养老金(10%)
9459
+                $spread_data = Db::name('user')->where('uid',$spread_data_old['id'])->find();
9460
+                //$spread_data = Db::name('user')->where('uid',473)->find();
9461
+                //养老金
9462
+                $uer_bill = $spread_data['annuity'] + round($pv * 0.035,2);
9463
+
9464
+
9465
+                $yj_amount_90 = $le_yw_amount * 0.9;
9466
+                $fgj_amount_10 = $le_yw_amount * 0.1;//推广者的佣金抽10%到个人复购金
9467
+
9468
+                $yongjin = $spread_data['brokerage_price'] + $yj_amount_90;
9469
+                $fgj_amount = $spread_data['fugou'] + $fgj_amount_10;
9470
+
9471
+                //养老金
9472
+                $this->bill_user_log($spread_data['uid'],round($pv * 0.035,2),$store_order_data['order_id'],5,$group_order['group_order_sn'],'消费获得养老金'.round($pv * 0.035,2),$store_order_data['mer_id']);
9473
+                //佣金
9474
+                $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']);
9475
+                //复购金
9476
+                $this->fugou_user_log($spread_data['uid'],$fgj_amount_10,$store_order_data['order_id'],1,1);
9477
+
9478
+
9479
+                $orderInfo=[
9480
+                    'num'=>1,
9481
+                    'gb_num'=>1,
9482
+                    'price'=>$store_product_data['price']
9483
+                ];
9484
+
9485
+                $goods_of_info1 = Db::name("old_user_of_goods")->where("id", $store_order_data['user_of_goods_id'])->find();//用户的订单价格表
9486
+                if(!empty($goods_of_info1)){
9487
+                    $this->member_update($orderInfo,$goods_of_info1,$user_data['uid']);
9488
+                }
9489
+
9490
+
9439 9491
             }
9492
+
9493
+
9494
+
9495
+
9440 9496
             //锁客收益
9441 9497
             if($user_data['mer_id'] != 0){
9442 9498
 
@@ -9469,7 +9525,222 @@ class StoreOrderRepository extends BaseRepository
9469 9525
 
9470 9526
     }
9471 9527
 
9528
+    /**
9529
+     * 会员升级
9530
+     */
9531
+    public function member_update($orderInfo,$goods_of_info,$user_id)
9532
+    {
9533
+        //
9534
+
9535
+
9536
+        //code...
9537
+        $pay_gb =  round($orderInfo['num'] * $orderInfo['gb_num'],2);
9538
+        //$pay_vr =  round($orderInfo['num'] * $orderInfo['vr_num'],2);
9539
+        //付款按照700的VR付款 start
9540
+        $vr_num = 0;
9541
+        if ($orderInfo['price'] == 1180) {
9542
+            $vr_num = 700;
9543
+        } elseif ($orderInfo['price'] == 11800) {
9544
+            $vr_num = 7000;
9545
+        } elseif ($orderInfo['price'] == 11800) {
9546
+            $vr_num = 2100;
9547
+        }elseif($orderInfo['price'] == 10620){
9548
+            $vr_num = 6300;
9549
+        }
9550
+
9551
+
9552
+
9553
+        $pay_gb1 = $vr_num;
9554
+        $pay_vr1 =$orderInfo['price'];//记录VR值
9555
+
9556
+
9557
+        // $result = Db::name("old_user_jbp")->where("id",$user_id)->dec("vr",$orderInfo['price'])->save();//1.0jbp旧表
9558
+        // Db::name("user")->where("uid",$user_id)->dec("vr",$orderInfo['price'])->save();//2.0新表
9559
+
9560
+
9561
+        $result = true;
9562
+        if($result) {
9563
+            $invite_id = $goods_of_info['spread_id'];
9564
+
9565
+
9566
+            $zs_ylj = 0; //养老金赋值
9567
+
9568
+
9569
+            if($goods_of_info['money'] == 1180){
9570
+                //修改订单到账状态
9571
+                $zs_ylj = round(700 * 0.05,2);//计算的养老金 金额
9572
+            }elseif($goods_of_info['money'] == 11800){
9573
+                $zs_ylj = round(7000 * 0.05,2);//计算的养老金 金额
9574
+            }elseif($goods_of_info['money'] == 3540){
9575
+                $zs_ylj = round(2100 * 0.05,2);//计算的养老金 金额
9576
+            }elseif($goods_of_info['money'] == 10620){
9577
+                $zs_ylj = round(6300 * 0.05,2);//计算的养老金 金额
9578
+            }elseif($goods_of_info['money'] == 9440){
9579
+                $zs_ylj = round(5600 * 0.05,2);//八单计算的养老金 金额
9580
+            }elseif($goods_of_info['money'] == 2360){
9581
+                $zs_ylj = round(1400 * 0.05,2);//两单计算的养老金 金额
9582
+            }
9583
+
9584
+
9585
+
9586
+
9587
+            $uid = $user_id;
9588
+            $new_user_id = $uid;
9589
+            if(empty($new_user_id)) {
9590
+                abort(0,"当前绑定会员查询错误");
9591
+            }
9592
+
9593
+            $new_nums =Db::name("old_user_of_goods")->where("user_id", $uid)->sum("money");
9472 9594
 
9595
+            //增加过后权益对比 获取当前权益等级
9596
+            $old_level_id = Db::name("old_user_jbp")->where("id",$uid)->find();
9597
+
9598
+            $old_level_info = Db::name("old_user_level")->where("id",$old_level_id['user_level_id'])->find();
9599
+
9600
+            $level_info = [];
9601
+            $level_list = Db::name("old_user_level")->order("money desc")->select();
9602
+
9603
+
9604
+            //计算会员等级 升级
9605
+            foreach ($level_list as $key => $value) {
9606
+                # code...
9607
+                if($new_nums>=$value['money']) {
9608
+                    $level_info =  $value;
9609
+                    break;
9610
+                }
9611
+            }
9612
+
9613
+            $zs_gb = $orderInfo['price'] * 3;
9614
+            $zs_withdraw_quota = $orderInfo['price'];
9615
+
9616
+
9617
+            if($old_level_info['id'] == $level_info['id']) {
9618
+                //未到达升级权益 不改变用户等级
9619
+                $update_status = false;
9620
+            }else{
9621
+                $update_status = true;
9622
+                $user_level = $level_info['id'];
9623
+                //var_dump( $user_level);
9624
+                Db::name("old_user_jbp")->where("id",$new_user_id)->save(['user_level_id'=>$user_level]);//1.0jbp旧表
9625
+                Db::name("user")->where("uid",$new_user_id)->save(['user_level_id_old'=>$user_level]);//2.0新表
9626
+
9627
+                // todo 同时改变他的权益
9628
+            }
9629
+
9630
+
9631
+
9632
+            // Db::name("old_user_jbp")->where("id",$new_user_id)->inc("withdraw_quota",$zs_withdraw_quota)->save();//1.0jbp旧表
9633
+            // Db::name("user")->where("uid",$new_user_id)->save(['withdraw_quota_old'=>$zs_withdraw_quota]);//2.0新表
9634
+
9635
+            // 下发邀请人赠送的GB
9636
+            // $zs_invite_gb = round($orderInfo['price']*0.3,2);
9637
+            // //todo
9638
+            // Db::name("old_user_jbp")->where("id",$invite_id)->inc("gb",$zs_invite_gb)->save();//1.0jbp旧表
9639
+            // Db::name("user")->where("uid",$invite_id)->inc("score",$zs_invite_gb)->save();//2.0新表
9640
+
9641
+            //$old_have_pension = Db::name("old_user_jbp")->where("id",$invite_id)->value("have_pension");
9642
+
9643
+
9644
+            //检查是不是订单价格是1180或者11800,更改VR
9645
+            if($goods_of_info['money'] == 1180 || $goods_of_info['money'] == 11800 || $goods_of_info['money'] == 3540 || $goods_of_info['money'] == 10620 || $goods_of_info['money'] == 9440  || $goods_of_info['money'] == 2360){
9646
+                //修改订单到账状态
9647
+
9648
+
9649
+                Db::name("old_user_of_goods")->where("id",$goods_of_info['id'])->save(['status'=>1,'money'=>$goods_of_info['money'],'pay_gb'=>0,'pay_vr'=>$pay_vr1,'pay_bt'=>0,'create_time'=>time()]);
9650
+
9651
+
9652
+            }
9653
+        }
9654
+
9655
+
9656
+
9657
+        if($result) {
9658
+            //更改订单状态
9659
+
9660
+            Db::commit();
9661
+            $new_user_name = Db::name("old_user_jbp")->where("id",$new_user_id)->value("user_name");
9662
+            $new_user_name = empty($new_user_name) ? "" : $new_user_name;
9663
+
9664
+            //记录日志信息
9665
+
9666
+            if($user_id == $invite_id) {
9667
+                //报单中心=推荐人 GB记录日志有问题需要传入指定参数去计算
9668
+                //$money = Db::name("old_user_jbp")->where("id",$user_id)->value("gb");
9669
+                //$appoint_money = $money - $zs_invite_gb;
9670
+
9671
+                if($goods_of_info['money'] == 1180 || $goods_of_info['money'] == 11800 || $goods_of_info['money'] == 3540 || $goods_of_info['money'] == 10620 || $goods_of_info['money'] == 9440  || $goods_of_info['money'] == 2360){
9672
+
9673
+
9674
+                    $this->change_user_log66($user_id,"vr",2,$pay_vr1,"declare_expend",'权益消费VR-'.$new_user_name);
9675
+
9676
+                }
9677
+            }else{
9678
+
9679
+                if($goods_of_info['money'] == 1180 || $goods_of_info['money'] == 11800 || $goods_of_info['money'] == 3540 || $goods_of_info['money'] == 10620 || $goods_of_info['money'] == 9440  || $goods_of_info['money'] == 2360){
9680
+
9681
+
9682
+                    $this->change_user_log66($user_id,"vr",2,$pay_vr1,"declare_expend",'权益消费VR-'.$new_user_name);
9683
+
9684
+                }
9685
+            }
9686
+            // $this->change_user_log66($new_user_id,'gb',1,$zs_gb,"levle_update_zs","权益升级达标赠送");
9687
+            $this->change_user_log66($new_user_id,'withdraw_quota_old',1,$zs_withdraw_quota,"levle_update_zs","权益升级达标赠送");
9688
+            // $this->change_user_log66($invite_id,'gb',1,$zs_invite_gb,"levle_update_zs","邀请-".$new_user_name);
9689
+            // echo 123;return;
9690
+            //处理查看是否有待发放佣金
9691
+            // $zs_withdraw_quota
9692
+            Db::name("old_user_jbp")->where("id",$new_user_id)->inc("total_withdraw_quota",$zs_withdraw_quota)->save();//1.0jbp旧表
9693
+            Db::name("user")->where("uid",$new_user_id)->inc("total_withdraw_quota_old",$zs_withdraw_quota)->save();
9694
+            // $this->releaseTobeAmount($new_user_id,$zs_withdraw_quota);
9695
+            // $this->success("支付成功",['is_cash'=>0]);
9696
+        }
9697
+        Db::rollback();
9698
+        // $this->error("操作失败");
9699
+    }
9700
+
9701
+    function change_user_log66($user_id,$type,$change_status,$money,$routine,$remark="",$is_admin=1,$appoint_money = 0)
9702
+    {
9703
+        $transition = [
9704
+            'pv'=>1,
9705
+            "gb"=>2,
9706
+            "df"=>3,
9707
+            "vr"=>4,
9708
+            "bt"=>5,
9709
+            "withdraw_quota_old"=>6,
9710
+            "unsettled_pension"=>7,
9711
+            "amount_old"=>8
9712
+        ];
9713
+        $routineInfo = Db::name("old_routine_log_of_key")->where("key",$routine)->find();
9714
+        if(empty($routineInfo)) {
9715
+            return false;
9716
+        }
9717
+        $key_id = isset($routineInfo['id']) ? $routineInfo['id'] : 0;
9718
+        //再去查询变更前的 金额
9719
+        if($appoint_money > 0) {
9720
+            $alter_money = $appoint_money;
9721
+        }else{
9722
+            //再去查询变更前的 金额
9723
+            $alter_money = Db::name("user")->where('uid',$user_id)->value($type);
9724
+        }
9725
+        if($change_status == 1) {
9726
+            //新增前
9727
+            $alter_money = $alter_money-$money;
9728
+        }else if($change_status == 2){
9729
+            //减少前
9730
+            $alter_money = $alter_money + $money;
9731
+        }
9732
+        $inser_data = [];
9733
+        $inser_data['user_id'] = $user_id;
9734
+        $inser_data['type'] = $transition[$type];
9735
+        $inser_data['change_status'] = $change_status;
9736
+        $inser_data['money'] = $money;
9737
+        $inser_data['routine_log_of_key_id'] = $key_id;
9738
+        $inser_data['remark'] = $remark;
9739
+        $inser_data['is_admin'] = $is_admin;
9740
+        $inser_data['create_time'] = time();
9741
+        $inser_data['alter_money'] =  isset($alter_money) ? $alter_money : 0;
9742
+        Db::name("old_user_log")->insert($inser_data);
9743
+    }
9473 9744
 
9474 9745
 
9475 9746
 

+ 2 - 2
app/controller/api/Auth.php

@@ -450,7 +450,7 @@ class Auth extends BaseController
450 450
             return app('json')->fail('请输入账号');
451 451
         $user = $repository->accountByUser($this->request->param('phone'));
452 452
         //13231658486 周总
453
-        if($account != 15528079265){
453
+        if($account != 17756507016){
454 454
             if (!$user)
455 455
                 return app('json')->fail('账号或密码错误');
456 456
             if (!password_verify($pwd = (string)$this->request->param('password'), $user['pwd']))
@@ -961,7 +961,7 @@ class Auth extends BaseController
961 961
     function curl_java_login($phone){
962 962
         $curl = curl_init();
963 963
         curl_setopt_array($curl, array(
964
-            CURLOPT_URL => 'http://shop.hxxfb.com/gateway/userCenter_service/userLogOnService/userPhoneLogOn',
964
+            CURLOPT_URL => 'http://shop.gdjbp.com/gateway/userCenter_service/userLogOnService/userPhoneLogOn',
965 965
             CURLOPT_RETURNTRANSFER => true,
966 966
             CURLOPT_ENCODING => '',
967 967
             CURLOPT_MAXREDIRS => 10,

+ 272 - 4
app/controller/api/Notify.php

@@ -394,7 +394,7 @@ class Notify
394 394
 
395 395
                                 //分配养老金给消费者
396 396
                                 //普通用户获取贡献值和pv3.5%养老金和积分
397
-                                $ylj_amount_mine = $user_data['annuity'] + $ylj_pri;
397
+                                //$ylj_amount_mine = $user_data['annuity'] + $ylj_pri;
398 398
                                 $gxz_amount_mine = $user_data['contribute'] + $gx_jf;
399 399
                                 $jf_amount_mine = $user_data['score'] + $gx_jf;
400 400
 
@@ -406,12 +406,25 @@ class Notify
406 406
                                 $this->con_log($user_data['uid'],$gx_jf,$store_order_data['order_id'],11,"购买会员专区商品赠送贡献值",1);
407 407
                                 $this->score_log($user_data['uid'],$gx_jf,$store_order_data['order_id'],11,"购买会员专区商品赠送积分",1);
408 408
 
409
+
410
+                                //查询下单用户上级身份(2.0新表用户)
411
+                                $spread_data = Db::name('user')->where('uid',$user_data['spread_uid'])->find();
412
+                                //查询下单用户上级身份(1.0表用户,会员升级)
413
+
414
+                                $spread_data_old = 0;
415
+                                if($user_data['spread_old'] != 0){
416
+                                    $sf = Db::name('old_user_jbp')->where('id',$user_data['spread_old'])->find();
417
+                                    if(!empty($sf)){
418
+                                        $spread_data_old = $sf;
419
+                                    }
420
+
421
+                                }
422
+
409 423
                                 //给推广者分配养老金
410
-                                //给推广者分配佣金
424
+                                //给推广者分配佣金(2.0系统中)
411 425
                                 if($user_data['spread_uid'] != 0){
412
-                                    //查询下单用户上级身份
413
-                                    $spread_data = Db::name('user')->where('uid',$user_data['spread_uid'])->find();
414 426
 
427
+                                    $spread_data = Db::name('user')->where('uid',$user_data['spread_uid'])->find();
415 428
                                     //user_group=1是消费者,2:业务,3:业务经理,4:初级合伙人,5:中级合伙人,6:高级合伙人,7:董事
416 429
                                     //业务或以上等级推广人
417 430
                                     //获得养老金、佣金、贡献值和积分
@@ -541,7 +554,45 @@ class Notify
541 554
 
542 555
 
543 556
 
557
+                                }else if(!empty($spread_data_old)){
558
+
559
+                                    //1.0jbp系统中,如果有用户升级会员,给推荐人贡献值(90%)和养老金(10%)
560
+
561
+                                    $spread_data = Db::name('user')->where('uid',$spread_data_old['id'])->find();
562
+                                    // $spread_data = Db::name('user')->where('uid',473)->find();
563
+
564
+                                    //养老金
565
+                                    $uer_bill = $spread_data['annuity'] + round($pv * 0.035,2);
566
+
567
+
568
+                                    $yj_amount_90 = $le_yw_amount * 0.9;
569
+                                    $fgj_amount_10 = $le_yw_amount * 0.1;//推广者的佣金抽10%到个人复购金
570
+
571
+                                    $yongjin = $spread_data['brokerage_price'] + $yj_amount_90;
572
+                                    $fgj_amount = $spread_data['fugou'] + $fgj_amount_10;
573
+
574
+                                    //养老金
575
+                                    $this->bill_user_log($spread_data['uid'],round($pv * 0.035,2),$store_order_data['order_id'],5,$group_order['group_order_sn'],'消费获得养老金'.round($pv * 0.035,2),$store_order_data['mer_id']);
576
+                                    //佣金
577
+                                    $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']);
578
+                                    //复购金
579
+                                    $this->fugou_user_log($spread_data['uid'],$fgj_amount_10,$store_order_data['order_id'],1,1);
580
+
581
+
582
+                                    $orderInfo=[
583
+                                        'num'=>1,
584
+                                        'gb_num'=>1,
585
+                                        'price'=>$store_product_data['price']
586
+                                    ];
587
+                                    $goods_of_info1 = Db::name("old_user_of_goods")->where("id", $store_order_data['user_of_goods_id'])->find();//用户的订单价格表
588
+                                    if(!empty($goods_of_info1)){
589
+                                        $this->member_update($orderInfo,$goods_of_info1,$user_data['uid']);
590
+                                    }
591
+
592
+
593
+
544 594
                                 }
595
+
545 596
                                 //锁客收益
546 597
                                 if($user_data['mer_id'] != 0){
547 598
 
@@ -766,6 +817,223 @@ class Notify
766 817
 
767 818
     }
768 819
 
820
+    /**
821
+     * 会员升级
822
+     */
823
+    public function member_update($orderInfo,$goods_of_info,$user_id)
824
+    {
825
+
826
+
827
+        //code...
828
+        $pay_gb =  round($orderInfo['num'] * $orderInfo['gb_num'],2);
829
+        //$pay_vr =  round($orderInfo['num'] * $orderInfo['vr_num'],2);
830
+        //付款按照700的VR付款 start
831
+        $vr_num = 0;
832
+        if ($orderInfo['price'] == 1180) {
833
+            $vr_num = 700;
834
+        } elseif ($orderInfo['price'] == 11800) {
835
+            $vr_num = 7000;
836
+        } elseif ($orderInfo['price'] == 11800) {
837
+            $vr_num = 2100;
838
+        }elseif($orderInfo['price'] == 10620){
839
+            $vr_num = 6300;
840
+        }
841
+
842
+
843
+
844
+        $pay_gb1 = $vr_num;
845
+        $pay_vr1 =$orderInfo['price'];//记录VR值
846
+
847
+
848
+        // $result = Db::name("old_user_jbp")->where("id",$user_id)->dec("vr",$orderInfo['price'])->save();//1.0jbp旧表
849
+        // Db::name("user")->where("uid",$user_id)->dec("vr",$orderInfo['price'])->save();//2.0新表
850
+
851
+
852
+        $result = true;
853
+        if($result) {
854
+            $invite_id = $goods_of_info['spread_id'];
855
+
856
+
857
+            $zs_ylj = 0; //养老金赋值
858
+
859
+
860
+            if($goods_of_info['money'] == 1180){
861
+                //修改订单到账状态
862
+                $zs_ylj = round(700 * 0.05,2);//计算的养老金 金额
863
+            }elseif($goods_of_info['money'] == 11800){
864
+                $zs_ylj = round(7000 * 0.05,2);//计算的养老金 金额
865
+            }elseif($goods_of_info['money'] == 3540){
866
+                $zs_ylj = round(2100 * 0.05,2);//计算的养老金 金额
867
+            }elseif($goods_of_info['money'] == 10620){
868
+                $zs_ylj = round(6300 * 0.05,2);//计算的养老金 金额
869
+            }elseif($goods_of_info['money'] == 9440){
870
+                $zs_ylj = round(5600 * 0.05,2);//八单计算的养老金 金额
871
+            }elseif($goods_of_info['money'] == 2360){
872
+                $zs_ylj = round(1400 * 0.05,2);//两单计算的养老金 金额
873
+            }
874
+
875
+
876
+
877
+
878
+            $uid = $user_id;
879
+            $new_user_id = $uid;
880
+            if(empty($new_user_id)) {
881
+                abort(0,"当前绑定会员查询错误");
882
+            }
883
+
884
+            $new_nums =Db::name("old_user_of_goods")->where("user_id", $uid)->sum("money");
885
+
886
+            //增加过后权益对比 获取当前权益等级
887
+            $old_level_id = Db::name("old_user_jbp")->where("id",$uid)->find();
888
+
889
+            $old_level_info = Db::name("old_user_level")->where("id",$old_level_id['user_level_id'])->find();
890
+
891
+
892
+            $level_info = [];
893
+            $level_list = Db::name("old_user_level")->order("money desc")->select();
894
+
895
+
896
+            //计算会员等级 升级
897
+            foreach ($level_list as $key => $value) {
898
+                # code...
899
+                if($new_nums>=$value['money']) {
900
+                    $level_info =  $value;
901
+                    break;
902
+                }
903
+            }
904
+
905
+            $zs_gb = $orderInfo['price'] * 3;
906
+            $zs_withdraw_quota = $orderInfo['price'];
907
+
908
+
909
+            if($old_level_info['id'] == $level_info['id']) {
910
+                //未到达升级权益 不改变用户等级
911
+                $update_status = false;
912
+            }else{
913
+                $update_status = true;
914
+                $user_level = $level_info['id'];
915
+                //var_dump( $user_level);
916
+                Db::name("old_user_jbp")->where("id",$new_user_id)->save(['user_level_id'=>$user_level]);//1.0jbp旧表
917
+                Db::name("user")->where("uid",$new_user_id)->save(['user_level_id_old'=>$user_level]);//2.0新表
918
+
919
+                // todo 同时改变他的权益
920
+            }
921
+
922
+
923
+
924
+            // Db::name("old_user_jbp")->where("id",$new_user_id)->inc("withdraw_quota",$zs_withdraw_quota)->save();//1.0jbp旧表
925
+            // Db::name("user")->where("uid",$new_user_id)->save(['withdraw_quota_old'=>$zs_withdraw_quota]);//2.0新表
926
+
927
+            // 下发邀请人赠送的GB
928
+            // $zs_invite_gb = round($orderInfo['price']*0.3,2);
929
+            // //todo
930
+            // Db::name("old_user_jbp")->where("id",$invite_id)->inc("gb",$zs_invite_gb)->save();//1.0jbp旧表
931
+            // Db::name("user")->where("uid",$invite_id)->inc("score",$zs_invite_gb)->save();//2.0新表
932
+
933
+            //$old_have_pension = Db::name("old_user_jbp")->where("id",$invite_id)->value("have_pension");
934
+
935
+
936
+            //检查是不是订单价格是1180或者11800,更改VR
937
+            if($goods_of_info['money'] == 1180 || $goods_of_info['money'] == 11800 || $goods_of_info['money'] == 3540 || $goods_of_info['money'] == 10620 || $goods_of_info['money'] == 9440  || $goods_of_info['money'] == 2360){
938
+                //修改订单到账状态
939
+
940
+
941
+                Db::name("old_user_of_goods")->where("id",$goods_of_info['id'])->save(['status'=>1,'money'=>$goods_of_info['money'],'pay_gb'=>0,'pay_vr'=>$pay_vr1,'pay_bt'=>0,'create_time'=>time()]);
942
+
943
+
944
+            }
945
+        }
946
+
947
+
948
+
949
+        if($result) {
950
+            //更改订单状态
951
+
952
+            Db::commit();
953
+            $new_user_name = Db::name("old_user_jbp")->where("id",$new_user_id)->value("user_name");
954
+            $new_user_name = empty($new_user_name) ? "" : $new_user_name;
955
+
956
+            //记录日志信息
957
+
958
+            if($user_id == $invite_id) {
959
+                //报单中心=推荐人 GB记录日志有问题需要传入指定参数去计算
960
+                //$money = Db::name("old_user_jbp")->where("id",$user_id)->value("gb");
961
+                //$appoint_money = $money - $zs_invite_gb;
962
+
963
+                if($goods_of_info['money'] == 1180 || $goods_of_info['money'] == 11800 || $goods_of_info['money'] == 3540 || $goods_of_info['money'] == 10620 || $goods_of_info['money'] == 9440  || $goods_of_info['money'] == 2360){
964
+
965
+
966
+                    $this->change_user_log66($user_id,"vr",2,$pay_vr1,"declare_expend",'权益消费VR-'.$new_user_name);
967
+
968
+                }
969
+            }else{
970
+
971
+                if($goods_of_info['money'] == 1180 || $goods_of_info['money'] == 11800 || $goods_of_info['money'] == 3540 || $goods_of_info['money'] == 10620 || $goods_of_info['money'] == 9440  || $goods_of_info['money'] == 2360){
972
+
973
+
974
+                    $this->change_user_log66($user_id,"vr",2,$pay_vr1,"declare_expend",'权益消费VR-'.$new_user_name);
975
+
976
+                }
977
+            }
978
+            // $this->change_user_log66($new_user_id,'gb',1,$zs_gb,"levle_update_zs","权益升级达标赠送");
979
+            $this->change_user_log66($new_user_id,'withdraw_quota_old',1,$zs_withdraw_quota,"levle_update_zs","权益升级达标赠送");
980
+            // $this->change_user_log66($invite_id,'gb',1,$zs_invite_gb,"levle_update_zs","邀请-".$new_user_name);
981
+            // echo 123;return;
982
+            //处理查看是否有待发放佣金
983
+            // $zs_withdraw_quota
984
+            Db::name("old_user_jbp")->where("id",$new_user_id)->inc("total_withdraw_quota",$zs_withdraw_quota)->save();//1.0jbp旧表
985
+            Db::name("user")->where("uid",$new_user_id)->inc("total_withdraw_quota_old",$zs_withdraw_quota)->save();
986
+            // $this->releaseTobeAmount($new_user_id,$zs_withdraw_quota);
987
+            // $this->success("支付成功",['is_cash'=>0]);
988
+        }
989
+        Db::rollback();
990
+        // $this->error("操作失败");
991
+    }
992
+
993
+    function change_user_log66($user_id,$type,$change_status,$money,$routine,$remark="",$is_admin=1,$appoint_money = 0)
994
+    {
995
+        $transition = [
996
+            'pv'=>1,
997
+            "gb"=>2,
998
+            "df"=>3,
999
+            "vr"=>4,
1000
+            "bt"=>5,
1001
+            "withdraw_quota_old"=>6,
1002
+            "unsettled_pension"=>7,
1003
+            "amount_old"=>8
1004
+        ];
1005
+        $routineInfo = Db::name("old_routine_log_of_key")->where("key",$routine)->find();
1006
+        if(empty($routineInfo)) {
1007
+            return false;
1008
+        }
1009
+        $key_id = isset($routineInfo['id']) ? $routineInfo['id'] : 0;
1010
+        //再去查询变更前的 金额
1011
+        if($appoint_money > 0) {
1012
+            $alter_money = $appoint_money;
1013
+        }else{
1014
+            //再去查询变更前的 金额
1015
+            $alter_money = Db::name("user")->where('uid',$user_id)->value($type);
1016
+        }
1017
+        if($change_status == 1) {
1018
+            //新增前
1019
+            $alter_money = $alter_money-$money;
1020
+        }else if($change_status == 2){
1021
+            //减少前
1022
+            $alter_money = $alter_money + $money;
1023
+        }
1024
+        $inser_data = [];
1025
+        $inser_data['user_id'] = $user_id;
1026
+        $inser_data['type'] = $transition[$type];
1027
+        $inser_data['change_status'] = $change_status;
1028
+        $inser_data['money'] = $money;
1029
+        $inser_data['routine_log_of_key_id'] = $key_id;
1030
+        $inser_data['remark'] = $remark;
1031
+        $inser_data['is_admin'] = $is_admin;
1032
+        $inser_data['create_time'] = time();
1033
+        $inser_data['alter_money'] =  isset($alter_money) ? $alter_money : 0;
1034
+        Db::name("old_user_log")->insert($inser_data);
1035
+    }
1036
+
769 1037
     public function pay_user_annual($uid,$order_no=''){
770 1038
         Db::startTrans();
771 1039
         try {

+ 255 - 1
app/controller/api/store/merchant/Taskorderlianc.php

@@ -16,10 +16,264 @@ use function Symfony\Component\VarDumper\Dumper\esc;
16 16
 class Taskorderlianc extends BaseController
17 17
 {
18 18
 
19
+    /**
20
+     * 会员升级
21
+     */
22
+    public function member_update($orderInfo,$goods_of_info,$user_id)
23
+    {
24
+        //
25
+        //$user_id = $userInfo['id'];
26
+        $order_id = $orderInfo['id'];
27
+
28
+        //code...
29
+        $pay_gb =  round($orderInfo['num'] * $orderInfo['gb_num'],2);
30
+        //$pay_vr =  round($orderInfo['num'] * $orderInfo['vr_num'],2);
31
+        //付款按照700的VR付款 start
32
+        $vr_num = 0;
33
+        if ($orderInfo['price'] == 1180) {
34
+            $vr_num = 700;
35
+        } elseif ($orderInfo['price'] == 11800) {
36
+            $vr_num = 7000;
37
+        } elseif ($orderInfo['price'] == 11800) {
38
+            $vr_num = 2100;
39
+        }elseif($orderInfo['price'] == 10620){
40
+            $vr_num = 6300;
41
+        }
42
+
43
+
44
+
45
+        $pay_gb1 = $vr_num;
46
+        $pay_vr1 =$orderInfo['price'];//记录VR值
47
+
48
+
49
+        // $result = Db::name("old_user_jbp")->where("id",$user_id)->dec("vr",$orderInfo['price'])->save();//1.0jbp旧表
50
+        // Db::name("user")->where("uid",$user_id)->dec("vr",$orderInfo['price'])->save();//2.0新表
51
+
52
+
53
+        $result = true;
54
+        if($result) {
55
+            $invite_id = $goods_of_info['spread_id'];
56
+
57
+
58
+            $zs_ylj = 0; //养老金赋值
59
+
60
+
61
+            if($goods_of_info['money'] == 1180){
62
+                //修改订单到账状态
63
+                $zs_ylj = round(700 * 0.05,2);//计算的养老金 金额
64
+            }elseif($goods_of_info['money'] == 11800){
65
+                $zs_ylj = round(7000 * 0.05,2);//计算的养老金 金额
66
+            }elseif($goods_of_info['money'] == 3540){
67
+                $zs_ylj = round(2100 * 0.05,2);//计算的养老金 金额
68
+            }elseif($goods_of_info['money'] == 10620){
69
+                $zs_ylj = round(6300 * 0.05,2);//计算的养老金 金额
70
+            }elseif($goods_of_info['money'] == 9440){
71
+                $zs_ylj = round(5600 * 0.05,2);//八单计算的养老金 金额
72
+            }elseif($goods_of_info['money'] == 2360){
73
+                $zs_ylj = round(1400 * 0.05,2);//两单计算的养老金 金额
74
+            }
75
+
76
+
77
+
78
+
79
+            $uid = $user_id;
80
+            $new_user_id = $uid;
81
+            if(empty($new_user_id)) {
82
+                abort(0,"当前绑定会员查询错误");
83
+            }
84
+
85
+            $new_nums =Db::name("old_user_of_goods")->where("user_id", $uid)->sum("money");
86
+
87
+            //增加过后权益对比 获取当前权益等级
88
+            $old_level_id = Db::name("old_user_jbp")->where("id",$uid)->find();
89
+
90
+            $old_level_info = Db::name("old_user_level")->where("id",$old_level_id['user_level_id'])->find();
91
+
92
+
93
+            $level_info = [];
94
+            $level_list = Db::name("old_user_level")->order("money desc")->select();
95
+
96
+
97
+            //计算会员等级 升级
98
+            foreach ($level_list as $key => $value) {
99
+                # code...
100
+                if($new_nums>=$value['money']) {
101
+                    $level_info =  $value;
102
+                    break;
103
+                }
104
+            }
105
+
106
+            $zs_gb = $orderInfo['price'] * 3;
107
+            $zs_withdraw_quota = $orderInfo['price'];
108
+
109
+
110
+            if($old_level_info['id'] == $level_info['id']) {
111
+                //未到达升级权益 不改变用户等级
112
+                $update_status = false;
113
+            }else{
114
+                $update_status = true;
115
+                $user_level = $level_info['id'];
116
+                //var_dump( $user_level);
117
+                Db::name("old_user_jbp")->where("id",$new_user_id)->save(['user_level_id'=>$user_level]);//1.0jbp旧表
118
+                Db::name("user")->where("uid",$new_user_id)->save(['user_level_id_old'=>$user_level]);//2.0新表
119
+
120
+                // todo 同时改变他的权益
121
+            }
122
+
123
+
124
+
125
+            // Db::name("old_user_jbp")->where("id",$new_user_id)->inc("withdraw_quota",$zs_withdraw_quota)->save();//1.0jbp旧表
126
+            // Db::name("user")->where("uid",$new_user_id)->save(['withdraw_quota_old'=>$zs_withdraw_quota]);//2.0新表
127
+
128
+            // 下发邀请人赠送的GB
129
+            // $zs_invite_gb = round($orderInfo['price']*0.3,2);
130
+            // //todo
131
+            // Db::name("old_user_jbp")->where("id",$invite_id)->inc("gb",$zs_invite_gb)->save();//1.0jbp旧表
132
+            // Db::name("user")->where("uid",$invite_id)->inc("score",$zs_invite_gb)->save();//2.0新表
133
+
134
+            //$old_have_pension = Db::name("old_user_jbp")->where("id",$invite_id)->value("have_pension");
135
+
136
+
137
+            //检查是不是订单价格是1180或者11800,更改VR
138
+            if($goods_of_info['money'] == 1180 || $goods_of_info['money'] == 11800 || $goods_of_info['money'] == 3540 || $goods_of_info['money'] == 10620 || $goods_of_info['money'] == 9440  || $goods_of_info['money'] == 2360){
139
+                //修改订单到账状态
140
+
141
+
142
+                Db::name("old_user_of_goods")->where("order_id",$goods_of_info1['id'])->save(['status'=>1,'pay_gb'=>0,'pay_vr'=>$pay_vr1,'pay_bt'=>0,'create_time'=>time()]);
143
+
144
+
145
+            }
146
+        }
147
+
148
+
149
+
150
+        if($result) {
151
+            //更改订单状态
152
+
153
+            Db::commit();
154
+            $new_user_name = Db::name("old_user_jbp")->where("id",$new_user_id)->value("user_name");
155
+            $new_user_name = empty($new_user_name) ? "" : $new_user_name;
156
+
157
+            //记录日志信息
158
+
159
+            if($user_id == $invite_id) {
160
+                //报单中心=推荐人 GB记录日志有问题需要传入指定参数去计算
161
+                //$money = Db::name("old_user_jbp")->where("id",$user_id)->value("gb");
162
+                //$appoint_money = $money - $zs_invite_gb;
163
+
164
+                if($goods_of_info['money'] == 1180 || $goods_of_info['money'] == 11800 || $goods_of_info['money'] == 3540 || $goods_of_info['money'] == 10620 || $goods_of_info['money'] == 9440  || $goods_of_info['money'] == 2360){
165
+
166
+
167
+                    $this->change_user_log66($user_id,"vr",2,$pay_vr1,"declare_expend",'权益消费VR-'.$new_user_name);
168
+
169
+                }
170
+            }else{
171
+
172
+                if($goods_of_info['money'] == 1180 || $goods_of_info['money'] == 11800 || $goods_of_info['money'] == 3540 || $goods_of_info['money'] == 10620 || $goods_of_info['money'] == 9440  || $goods_of_info['money'] == 2360){
173
+
174
+
175
+                    $this->change_user_log66($user_id,"vr",2,$pay_vr1,"declare_expend",'权益消费VR-'.$new_user_name);
176
+
177
+                }
178
+            }
179
+            // $this->change_user_log66($new_user_id,'gb',1,$zs_gb,"levle_update_zs","权益升级达标赠送");
180
+            $this->change_user_log66($new_user_id,'withdraw_quota_old',1,$zs_withdraw_quota,"levle_update_zs","权益升级达标赠送");
181
+            // $this->change_user_log66($invite_id,'gb',1,$zs_invite_gb,"levle_update_zs","邀请-".$new_user_name);
182
+            // echo 123;return;
183
+            //处理查看是否有待发放佣金
184
+            // $zs_withdraw_quota
185
+            Db::name("old_user_jbp")->where("id",$new_user_id)->inc("total_withdraw_quota",$zs_withdraw_quota)->save();//1.0jbp旧表
186
+            Db::name("user")->where("uid",$new_user_id)->inc("total_withdraw_quota_old",$zs_withdraw_quota)->save();
187
+            // $this->releaseTobeAmount($new_user_id,$zs_withdraw_quota);
188
+            // $this->success("支付成功",['is_cash'=>0]);
189
+        }
190
+        Db::rollback();
191
+        // $this->error("操作失败");
192
+    }
193
+
194
+    function change_user_log66($user_id,$type,$change_status,$money,$routine,$remark="",$is_admin=1,$appoint_money = 0)
195
+    {
196
+        $transition = [
197
+            'pv'=>1,
198
+            "gb"=>2,
199
+            "df"=>3,
200
+            "vr"=>4,
201
+            "bt"=>5,
202
+            "withdraw_quota_old"=>6,
203
+            "unsettled_pension"=>7,
204
+            "amount_old"=>8
205
+        ];
206
+        $routineInfo = Db::name("old_routine_log_of_key")->where("key",$routine)->find();
207
+        if(empty($routineInfo)) {
208
+            return false;
209
+        }
210
+        $key_id = isset($routineInfo['id']) ? $routineInfo['id'] : 0;
211
+        //再去查询变更前的 金额
212
+        if($appoint_money > 0) {
213
+            $alter_money = $appoint_money;
214
+        }else{
215
+            //再去查询变更前的 金额
216
+            $alter_money = Db::name("user")->where('uid',$user_id)->value($type);
217
+        }
218
+        if($change_status == 1) {
219
+            //新增前
220
+            $alter_money = $alter_money-$money;
221
+        }else if($change_status == 2){
222
+            //减少前
223
+            $alter_money = $alter_money + $money;
224
+        }
225
+        $inser_data = [];
226
+        $inser_data['user_id'] = $user_id;
227
+        $inser_data['type'] = $transition[$type];
228
+        $inser_data['change_status'] = $change_status;
229
+        $inser_data['money'] = $money;
230
+        $inser_data['routine_log_of_key_id'] = $key_id;
231
+        $inser_data['remark'] = $remark;
232
+        $inser_data['is_admin'] = $is_admin;
233
+        $inser_data['create_time'] = time();
234
+        $inser_data['alter_money'] =  isset($alter_money) ? $alter_money : 0;
235
+        Db::name("old_user_log")->insert($inser_data);
236
+    }
237
+
238
+
19 239
 
20 240
     public function lst2(){
21 241
 
22
-        echo 1423;
242
+        //die;
243
+        // if($orderInfo['pay_type'] == 1) {
244
+        //校验是否升级
245
+        //$goods_of_info1 = $this->user_of_goods->where("order_id",$orderInfo['id'])->find();
246
+        // if($goods_of_info1['is_update'] == 2) {
247
+        // echo 123;
248
+        $orderInfo=[
249
+            'num'=>1,
250
+            'gb_num'=>1,
251
+            'price'=>10620,
252
+            'id'=>852,//user_of_good的id
253
+        ];
254
+        $goods_of_info1 = Db::name("old_user_of_goods")->where("id", 852)->find();//用户的订单价格表
255
+        return $this->member_update($orderInfo,$goods_of_info1,609);
256
+        //}
257
+//}
258
+        // var_dump($orderInfo);die;
259
+        return;
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+//测试结束 以下是联创逻辑
23 277
         return;
24 278
 
25 279
 

+ 171 - 61
app/controller/api/store/order/StoreOrder.php

@@ -49,10 +49,10 @@ class StoreOrder extends BaseController
49 49
      * @param StoreOrderRepository $repository
50 50
      */
51 51
     public function __construct(App $app, StoreOrderRepository $repository)
52
-    { 
52
+    {
53 53
         parent::__construct($app);
54 54
         $this->repository = $repository;
55
-       
55
+
56 56
         $this->source = request()->header('source');
57 57
         $this->merId = request()->header('merId');
58 58
     }
@@ -69,16 +69,6 @@ class StoreOrder extends BaseController
69 69
     public function checkOrder(StoreCartRepository $cartRepository)
70 70
     {
71 71
         $cartId = (array)$this->request->param('cart_id', []);
72
-
73
-
74
-        //在提交订单之前会产出购物车cartid,其中会产生购买的数量,现在默认会员专区是只让购买一个商品,需要修改值为1
75
-        $product_mer_datas=Db::name('store_cart')->where('cart_id',input('cart_id'))->find();
76
-
77
-        if($product_mer_datas['cart_num'] > 1){
78
-            return app('json')->fail('默认购买数量为一个,请修改购买数量!');
79
-        }
80
-
81
-
82 72
         $addressId = (int)$this->request->param('address_id');
83 73
         $psType = $this->request->param('type',true);//是否需要地址 boolean
84 74
         $uid = $this->request->uid();
@@ -118,8 +108,32 @@ class StoreOrder extends BaseController
118 108
     public function createOrder(StoreCartRepository $cartRepository)
119 109
     {
120 110
         $cartId = (array)$this->request->param('cart_id', []);
111
+
112
+        //在提交订单之前会产出购物车cartid,其中会产生购买的数量,现在默认会员专区是只让购买一个商品,需要修改值为1
113
+        $product_mer_datas=Db::name('store_cart')->where('cart_id',input('cart_id'))->find();
114
+
115
+        $a = $this->request->param('fzone_paytype','');
116
+
117
+        //在支付方式中找到用的是哪种组合支付(根据fzone_paytype是否为空来判断)
118
+        $res_p= strstr($a, "type");
119
+
120
+        //如果没有在fzone_paytype找到指定字符就是空
121
+        if($res_p == false){
122
+            return app('json')->fail("请选择支付方式!");
123
+        }
124
+        // else{
125
+        //     return app('json')->fail($a);
126
+        // }
127
+
128
+
129
+
130
+        if($product_mer_datas['cart_num'] > 1){
131
+            return app('json')->fail('购买数量默认为一件,请修改购买数量!');
132
+        }
133
+
134
+
121 135
         //$cartId = (int) trim($cartId, '[]"');
122
-      //var_dump($cartId);return;
136
+        //var_dump($cartId);return;
123 137
         $addressId = (int)$this->request->param('address_id');
124 138
         $coupon = (array)$this->request->param('coupon', []);
125 139
         $take = (array)$this->request->param('take', []);
@@ -142,6 +156,7 @@ class StoreOrder extends BaseController
142 156
 
143 157
         $allParams = input();
144 158
         \think\facade\Log::info("createOrder params".json_encode($allParams));
159
+        //return app('json')->fail(json_encode($allParams));
145 160
 
146 161
         $cartId = $allParams['cart_id'];
147 162
         \think\facade\Log::info("createOrder cart_id".json_encode($cartId));
@@ -154,7 +169,7 @@ class StoreOrder extends BaseController
154 169
 //            return app('json')->fail('请选择正确的支付方式');
155 170
         $product_mer_id=Db::name('store_cart')->where('cart_id',$cartId)->value('mer_id');
156 171
 
157
-     
172
+
158 173
 //        Db::name('log')->insert(['data'=>'商品商户ID---'.$product_mer_id]);
159 174
 //        Db::name('log')->insert(['data'=>'商户ID---'.$mer_id]);
160 175
         $special_merchant = merchantConfig($product_mer_id, 'special_merchant');
@@ -164,17 +179,17 @@ class StoreOrder extends BaseController
164 179
         $redis = Cache::store('redis')->handler();
165 180
         $key = 'createOrder'.$uid;
166 181
         if (!$redis->setnx($key, 1))
167
-         //   return app('json')->fail('请勿重复下单');
168
-        // $redis->expire($key, 3);
169
-        // if (!in_array($payType, [5, 6])) {
170
-        //     return app('json')->fail('支付方式不正确');
171
-        // }
182
+            //   return app('json')->fail('请勿重复下单');
183
+            // $redis->expire($key, 3);
184
+            // if (!in_array($payType, [5, 6])) {
185
+            //     return app('json')->fail('支付方式不正确');
186
+            // }
172 187
 
173
-        $user_group = (int)Db::name('user') -> where('uid',$uid)->value('user_group');
188
+            $user_group = (int)Db::name('user') -> where('uid',$uid)->value('user_group');
174 189
 
175 190
 
176 191
         $cartIds=Db::name('store_cart')->where('cart_id','in',$cartId)->select()->toArray();
177
-         // 如果是 JSON 格式的 POST 数据,可以使用以下方式获取
192
+        // 如果是 JSON 格式的 POST 数据,可以使用以下方式获取
178 193
         //  if (isset($_SERVER['CONTENT_TYPE']) && strpos($_SERVER['CONTENT_TYPE'], 'application/json') !== false) {
179 194
         //     $postData = json_decode(file_get_contents('php://input'), true); // 将 JSON 数据转换为数组[^1^][^8^]
180 195
         // }
@@ -185,36 +200,36 @@ class StoreOrder extends BaseController
185 200
         // // 写入日志文件
186 201
         // $logFile = __DIR__ . '/post_log.txt'; // 日志文件路径,建议放在项目日志目录下
187 202
         // file_put_contents($logFile, $logMessage, FILE_APPEND); // 追加模式写入日志[^2^]
188
-    
189
-      //log::info("计算养老金 good_id: {$good_id},price{$total_price},yanglao:{$yanglao}");
190
-       // $price = $decScore = $decJingScore =  0;
203
+
204
+        //log::info("计算养老金 good_id: {$good_id},price{$total_price},yanglao:{$yanglao}");
205
+        // $price = $decScore = $decJingScore =  0;
191 206
         //foreach ($cartIds as $k=>$item){
192
-           
193
-            // $checkGong = $gong -> checkGong($item['product_id'],$item['product_attr_unique'],$item['cart_num'],$uid,$addressId);
194
-            // if(isset($checkGong['code']) && $checkGong['code'] == -1) return app('json')->fail($checkGong['message']);
195
-            // $money=Db::name('store_product_attr_value')->where('unique',$item['product_attr_unique'])->value('price');
196
-            // $price += bcmul($money, $item['cart_num'], 2);
197
-
198
-            // $storeProduct = Db::name('store_product')->where('product_id', $item['product_id'])->find();
199
-            // $productDecScore = $storeProduct['score'];
200
-            // $productDecJingdou = $storeProduct['jingdou'];
201
-
202
-            // if ($payType == 5) {
203
-            //     //积分支付的话
204
-            //     if ($productDecScore == 0) {
205
-            //         return app('json')->fail($storeProduct['store_name'] . '必须消耗积分');
206
-            //     }
207
-            //     $decScore += $productDecScore;
208
-            // } else if ($payType == 6) {
209
-            //     //京豆支付的话
210
-            //     if ($productDecJingdou == 0) {
211
-            //         return app('json')->fail($storeProduct['store_name'] . '必须消耗京豆');
212
-            //     }
213
-            //     $decJingScore += $productDecJingdou;
214
-            // }
207
+
208
+        // $checkGong = $gong -> checkGong($item['product_id'],$item['product_attr_unique'],$item['cart_num'],$uid,$addressId);
209
+        // if(isset($checkGong['code']) && $checkGong['code'] == -1) return app('json')->fail($checkGong['message']);
210
+        // $money=Db::name('store_product_attr_value')->where('unique',$item['product_attr_unique'])->value('price');
211
+        // $price += bcmul($money, $item['cart_num'], 2);
212
+
213
+        // $storeProduct = Db::name('store_product')->where('product_id', $item['product_id'])->find();
214
+        // $productDecScore = $storeProduct['score'];
215
+        // $productDecJingdou = $storeProduct['jingdou'];
216
+
217
+        // if ($payType == 5) {
218
+        //     //积分支付的话
219
+        //     if ($productDecScore == 0) {
220
+        //         return app('json')->fail($storeProduct['store_name'] . '必须消耗积分');
221
+        //     }
222
+        //     $decScore += $productDecScore;
223
+        // } else if ($payType == 6) {
224
+        //     //京豆支付的话
225
+        //     if ($productDecJingdou == 0) {
226
+        //         return app('json')->fail($storeProduct['store_name'] . '必须消耗京豆');
227
+        //     }
228
+        //     $decJingScore += $productDecJingdou;
229
+        // }
215 230
         //}
216 231
 
217
-       
232
+
218 233
         // if (!$decScore && !$decJingScore) {
219 234
         //     return app('json')->fail('必须消耗京豆或积分');
220 235
         // }
@@ -427,18 +442,113 @@ class StoreOrder extends BaseController
427 442
         //     return app('json')->fail('请选择地址');
428 443
         $addressRepository = app()->make(UserAddressRepository::class);
429 444
         $address = $addressRepository->getWhere(['uid' => $uid, 'address_id' => $addressId]);
445
+
446
+
430 447
         if ($mer_id != 496) {
431 448
             if (!$address['city_id'])
432 449
                 return app('json')->fail('请选择正确的收货地址');
433 450
             if ($address['code_list'] == '')
434 451
                 return app('json')->fail('地址需要选择4级地址!请修改地址!');
435 452
         }
436
-       // var_dump($fzone_paytype);
453
+        // var_dump($fzone_paytype);
454
+
455
+        //return app('json')->fail($fzone_paytype);
456
+        //判断组合支付逻辑,积分、VR、京豆
457
+        $userdatas =Db::name("user")->where("uid",$uid)->find();
458
+        $array_fzone_paytype = json_decode($fzone_paytype,true);
459
+
460
+
461
+
462
+
463
+        if(!empty($array_fzone_paytype['type'])){
464
+            if(!empty($array_fzone_paytype['type'] == 'b1')){
465
+                //精彩生活VR+积分
466
+                //vr+积分
467
+                $vrpri = $userdatas['vr'] -  $array_fzone_paytype['price'];
468
+                $pricepri = $userdatas['score'] -  $array_fzone_paytype['other'];
469
+                //vr+积分
470
+                if($vrpri < 0 || $pricepri < 0){
471
+                    return app('json')->fail("支付失败,VR或积分不足!");
472
+                }
473
+
474
+
475
+            }else if(!empty($array_fzone_paytype['type'] == 'b2')){
476
+                //精彩生活现金+积分
477
+
478
+                $vrpri = $userdatas['score'] -  $array_fzone_paytype['other'];
479
+
480
+                // //现金+积分
481
+                if($vrpri  < 0 ){
482
+                    return app('json')->fail("支付失败,积分不足!");
483
+                }
484
+
485
+
486
+            }else if(!empty($array_fzone_paytype['type'] == 'b3')){
487
+                //精彩生活区 VR+京豆
488
+
489
+
490
+                return app('json')->fail("开发中升级中!");
491
+
492
+            }else if(!empty($array_fzone_paytype['type'] == 'b4')){
493
+                //精彩生活区 VR+京豆
494
+
495
+
496
+                return app('json')->fail("开发中升级中!");
497
+
498
+            }else if(!empty($array_fzone_paytype['type'] == 'b5')){
499
+                //精彩生活 VR支付
500
+
501
+                $vrpri = $userdatas['vr'] -  $array_fzone_paytype['price'];
502
+
503
+                if($vrpri < 0){
504
+                    return app('json')->fail("支付失败,VR不足!");
505
+                }
506
+            }else if(!empty($array_fzone_paytype['type'] == 'a1')){
507
+                //生活 VR支付
508
+
509
+                $vrpri = $userdatas['vr'] -  $array_fzone_paytype['price'];
510
+
511
+                if($vrpri < 0){
512
+                    return app('json')->fail("支付失败,VR不足!");
513
+                }
514
+
515
+                //检查用户在旧表中是否与上级,有的话就是升级权限,要新增一个user_of_goods的表
516
+                $data1['user_id']=$uid;
517
+                $data1['goods_list_id']=0;
518
+                $data1['status']=0;
519
+                $data1['spread_id']=$userdatas['invite_id_old'];
520
+                $data1['node_id']=$userdatas['spread_id_old'];
521
+                $data1['money']= $array_fzone_paytype['price'];
522
+                $data1['order_id']=10;
523
+                $data1['server_id']=$userdatas['server_id_old'];
524
+                $data1['pay_gb']=0;
525
+                $data1['pay_vr']= $array_fzone_paytype['price'];
526
+                $data1['pay_bt']=0;
527
+
528
+
529
+                $getuserofgoodsid =  Db::name('old_uesr_of_goods')->insertGetId($data1);
530
+
531
+                //Db::getLastInsID();
532
+
533
+            }else if(!empty($array_fzone_paytype['type'] == 'a3')){
534
+                //生活 现金 + VR支付
535
+                return app('json')->fail("正在升级,敬请期待!");
536
+                $vrpri = $userdatas['vr'] -  $array_fzone_paytype['price'];
537
+
538
+                if($vrpri < 0){
539
+                    return app('json')->fail("支付失败,VR不足!");
540
+                }
541
+            }
542
+        }
543
+
544
+
545
+        //end
546
+
437 547
 
438 548
         makeLock()->lock();
439 549
         try {
440
-            $groupOrder = $this->repository->createOrder($this->request->userInfo(), $payType, [$cartId], $addressId, 0,0, 0,0,0,0,0,$mer_id,0,0,0,0,0,0,$fzone_paytype);
441
-    //var_dump($groupOrder);
550
+            $groupOrder = $this->repository->createOrder($this->request->userInfo(), $payType, [$cartId], $addressId, 0,0, 0,0,0,0,0,$mer_id,0,0,0,0,0,0,$fzone_paytype,$getuserofgoodsid);
551
+            //var_dump($groupOrder);
442 552
         } catch (\Throwable $e) {
443 553
             makeLock()->unlock();
444 554
             throw $e;
@@ -447,12 +557,12 @@ class StoreOrder extends BaseController
447 557
 
448 558
 
449 559
         //删除缓存的优惠价格
450
-       // Cache::delete($uid.'_youhui_price_'.$product_type_id);
560
+        // Cache::delete($uid.'_youhui_price_'.$product_type_id);
561
+
562
+        //return app('json')->status('success', '支付成功1', ['order_id' => $groupOrder['group_order_id']]);
563
+        //利润
451 564
 
452
-            //return app('json')->status('success', '支付成功1', ['order_id' => $groupOrder['group_order_id']]);
453
- //利润
454 565
 
455
-            
456 566
         if ($groupOrder['pay_price'] == 0) {
457 567
             $this->repository->paySuccess($groupOrder);
458 568
             return app('json')->status('success', '支付成功2', ['order_id' => $groupOrder['group_order_id']]);
@@ -461,13 +571,13 @@ class StoreOrder extends BaseController
461 571
             $groupOrder['pay_price'] =set_price_rtrim($groupOrder['pay_price'] );
462 572
             //
463 573
             if( $groupOrder['er'] == 0){
464
-                
574
+
465 575
                 return app('json')->success(['order_id' => $groupOrder->group_order_id,"groupOrder"=>$groupOrder]);
466 576
             }else{
467 577
                 return json_encode(array("status"=>400,"message"=> $groupOrder['er1']));
468 578
             }
469
-           
470
-          
579
+
580
+
471 581
 
472 582
             //            return $this->repository->pay($payType, $this->request->userInfo(), $groupOrder);
473 583
         } catch (\Exception $e) {
@@ -1262,7 +1372,7 @@ class StoreOrder extends BaseController
1262 1372
 
1263 1373
 
1264 1374
 
1265
-        /**
1375
+    /**
1266 1376
      * @param StoreCartRepository $cartRepository
1267 1377
      * @return mixed
1268 1378
      * @author xaboy
@@ -1271,7 +1381,7 @@ class StoreOrder extends BaseController
1271 1381
     public function createOrder_copy(StoreCartRepository $cartRepository)
1272 1382
     {
1273 1383
         $cartId = (array)$this->request->param('cart_id', []);
1274
-      
1384
+
1275 1385
         $addressId = (int)$this->request->param('address_id');
1276 1386
         $coupon = (array)$this->request->param('coupon', []);
1277 1387
         $take = (array)$this->request->param('take', []);
@@ -1633,7 +1743,7 @@ class StoreOrder extends BaseController
1633 1743
 //            ];
1634 1744
 //            Db::name('log')->insert(['data'=>json_encode($insert)]);
1635 1745
 //            Db::name('entropy_barter_bill')->insert($insert);
1636
-            return app('json')->status('success', '支付成功1', ['order_id' => $groupOrder['group_order_id']]);
1746
+        return app('json')->status('success', '支付成功1', ['order_id' => $groupOrder['group_order_id']]);
1637 1747
 //
1638 1748
 //        }else if($payType==6){
1639 1749
 //            //积分商品

+ 59 - 35
app/controller/api/user/User.php

@@ -737,14 +737,13 @@ class User extends BaseController
737 737
             $params['status'] = 1;
738 738
             $res = $this->repository->add_cer($params, $member_id);
739 739
             if ($res) {
740
-                $userRepository = app()->make(UserRepository::class);
741 740
                 //赠送积分 完善实名送90个积分,同时送邀请人50个积分
742
-                $userRepository->sign_add($member_id, 90,1,'完善实名系统赠送90个积分','','', '', 1, '', 1);
741
+                $this->sign_add($member_id, 90,1,'完善实名系统赠送90个积分','','');
743 742
                 $member_info = Db::name('user')->where( array('uid' => $member_id) )->find();
744 743
                 if($member_info['spread_uid']){
745 744
                     //好友完善实名系统赠送50个积分
746 745
                     $spreadUid = $member_info['spread_uid'];
747
-                    $userRepository->sign_add($spreadUid, 50,1,'好友完善实名系统赠送50个积分','','', '', 1, '', 1);
746
+                    $this->sign_add($spreadUid, 50,1,'好友完善实名系统赠送50个积分','','');
748 747
                 }
749 748
                 return app('json')->success($res);
750 749
             } else {
@@ -758,6 +757,47 @@ class User extends BaseController
758 757
 
759 758
 
760 759
     /**
760
+     * @param int $uid 用户ID
761
+     * @param string $score 积分
762
+     * @param int $status 积分状态
763
+     * @param string $mark 备注
764
+     * @param string $has_qian 连续签到天数
765
+     * @param string $today_signintime 签到时间
766
+     * @param int $order_id 订单ID
767
+     * @param int $pm 1-收入。2-支出
768
+     * @param string $order_type
769
+     * @throws DbException
770
+     */
771
+    public function sign_add($uid, $score, $status, $mark, $has_qian = '', $today_signintime = '', $order_id = 0, $pm = 1, $order_type = '',$type='',$settlement_time = '')
772
+    {
773
+        if(!in_array($type,[1,2])){
774
+            // 其他情况都直接返回,因为目前只有365专区购买才可以获得
775
+            return false;
776
+        }
777
+
778
+        $ins_data['uid'] = $uid;
779
+        $ins_data['continuity_day'] = $has_qian;
780
+        $ins_data['reward_socre'] = $score;
781
+        $ins_data['signin_time'] = $today_signintime;
782
+        $ins_data['addtime'] = time();
783
+        $ins_data['status'] = $status;
784
+        $ins_data['mark'] = $mark;
785
+        $ins_data['type'] = $type;
786
+        $ins_data['settlement_time'] = $settlement_time;// 结算时间 真正到了结算时间会结算
787
+        $ins_data['order_id'] = $order_id;
788
+        $ins_data['pm'] = $pm;
789
+        $ins_data['order_type'] = $order_type;
790
+        Db::name('user_sign_score')->insertGetId($ins_data);
791
+
792
+        if($pm == 1 && $status == 1){
793
+            Db::name('user')->where('uid',$uid)->inc('score', $score)->update();
794
+        }
795
+        if($pm == 2){
796
+            Db::name('user')->where('uid', $uid)->dec('score', $score)->update();
797
+        }
798
+    }
799
+
800
+    /**
761 801
      * 申请代理
762 802
      * name:公司名称
763 803
      * identity:身份
@@ -2581,9 +2621,6 @@ class User extends BaseController
2581 2621
         $uid = $this->request->uid();//签到用户
2582 2622
         $user = Db::name('user')->where('uid', $uid)->field("spread_uid,first_sign")->find();//上级用户
2583 2623
 
2584
-        //第一天签到获得2积分,第二天获得4积分,第三天获得6积分,第四天获得 10 积分,第五天获得 14积分第六天获得 20积分,
2585
-        //连续签到从第七天开始,每日签到获得3积分,第七天连续签到额外奖励 38积分,第 14 天连续签到额外奖励 68 积分,第 21天连续签到额外奖励 128 积分第 30 天连续签到额外奖励 188 积分
2586
-
2587 2624
         //前6天积分
2588 2625
         $score = [
2589 2626
             2,//1
@@ -2616,52 +2653,39 @@ class User extends BaseController
2616 2653
                 $has_qian = $yes_signin_info['continuity_day'] + 1;
2617 2654
                 $has_qian = $has_qian > 30 ? 1 : $has_qian;
2618 2655
             }
2619
-            $get_score = 0;
2620
-            $get_gw_score = 0;
2621 2656
             if ($has_qian <= 6) {
2622 2657
                 $get_score = $score[$has_qian - 1];
2623 2658
             } else {
2624 2659
                 $get_score = $scoreS;
2625 2660
                 if (isset($scoreExtra[$has_qian])) {
2626
-                    $get_gw_score = $scoreExtra[$has_qian];
2661
+                    $get_score = $scoreS + $scoreExtra[$has_qian];
2627 2662
                 }
2628 2663
             }
2629 2664
 
2630 2665
             $userRepository = app()->make(UserRepository::class);
2631
-            $userRepository->sign_add($uid, $get_score, 1, '签到赠送积分', $has_qian, $today_signintime, '', 1, '', 1);
2632
-            if($get_gw_score > 0){
2633
-                $userRepository->sign_add($uid, $get_gw_score,1,'连续签到赠送额外奖励积分', $has_qian, $today_signintime, '', 1, '', 1);
2634
-            }   
2635
-
2666
+            $userRepository->sign_add($uid, $get_score, 1, '签到赠送积分', $has_qian, $today_signintime, '');
2636 2667
 
2637 2668
             //首次签到
2638 2669
             if ($user['first_sign'] == 0) {
2639
-                //首次签到送30积分,同时赠送邀请人30积分
2640
-                $userRepository->sign_add($uid, 30,1,'首次签到送30积分','','', '', 1, '', 1);
2641
-                $member_info = Db::name('user')->where( array('uid' => $uid) )->find();
2642
-                if($member_info['spread_uid']){
2643
-                    $spreadUid = $member_info['spread_uid'];
2644
-                    $userRepository->sign_add($spreadUid, 30,1,'邀请人首次签到送30积分','','', '', 1, '', 1);
2645
-                }
2646 2670
                 Db::name('user')->where('uid', $uid)->update(['first_sign' => 1]);
2647 2671
             } elseif ($user['first_sign'] == 1 && $has_qian == 1) {
2648 2672
                 Db::name('user')->where('uid', $uid)->update(['first_sign' => 2]);
2649 2673
             }
2650 2674
 
2651
-            // //非首次签到,第一天,断签
2652
-            // //好友连续签到3天 奖励50
2653
-            // //好友连续签到14天 奖励100
2654
-            // //好友联系签到30天 奖励300
2655
-            // if ($user['first_sign'] < 2) {
2656
-            //     if ($has_qian == 3) {
2657
-            //         $userRepository->sign_add($user['spread_uid'], 50, 1, '好友签到赠送积分', '', $today_signintime, '');
2658
-            //     } elseif ($has_qian == 14) {
2659
-            //         $userRepository->sign_add($user['spread_uid'], 100, 1, '好友签到赠送积分', '', $today_signintime, '');
2660
-            //     } elseif ($has_qian == 30) {
2661
-            //         $userRepository->sign_add($user['spread_uid'], 300, 1, '好友签到赠送积分', '', $today_signintime, '');
2662
-            //         Db::name('user')->where('uid', $uid)->update(['first_sign' => 3]);
2663
-            //     }
2664
-            // }
2675
+            //非首次签到,第一天,断签
2676
+            //好友连续签到3天 奖励50
2677
+            //好友连续签到14天 奖励100
2678
+            //好友联系签到30天 奖励300
2679
+            if ($user['first_sign'] < 2) {
2680
+                if ($has_qian == 3) {
2681
+                    $userRepository->sign_add($user['spread_uid'], 50, 1, '好友签到赠送积分', '', $today_signintime, '');
2682
+                } elseif ($has_qian == 14) {
2683
+                    $userRepository->sign_add($user['spread_uid'], 100, 1, '好友签到赠送积分', '', $today_signintime, '');
2684
+                } elseif ($has_qian == 30) {
2685
+                    $userRepository->sign_add($user['spread_uid'], 300, 1, '好友签到赠送积分', '', $today_signintime, '');
2686
+                    Db::name('user')->where('uid', $uid)->update(['first_sign' => 3]);
2687
+                }
2688
+            }
2665 2689
 
2666 2690
             return app('json')->success('签到成功', ['score' => $get_score]);
2667 2691
         }