wugg 9 months ago
parent
commit
6571cecf28
2 changed files with 157 additions and 154 deletions
  1. 4 4
      app/admin/controller/Base.php
  2. 153 150
      app/admin/listener/ComonQrd.php

+ 4 - 4
app/admin/controller/Base.php

@@ -31,10 +31,10 @@ class Base extends BaseController
 	        'hpinvreturn', #回票申请退票
 	        'stagereturn',#付款申请退款
     	];
-	protected  $uid=0;
-	protected  $uname='';
-	protected  $roleid=0;
-	protected  $level=0;
+	private  $uid=0;
+	private  $uname='';
+	private  $roleid=0;
+	private  $level=0;
 	public $post='';
   public function __construct(App $app) {
   	parent::__construct($app);

+ 153 - 150
app/admin/listener/ComonQrd.php

@@ -3,12 +3,40 @@ declare (strict_types = 1);
 
 namespace app\admin\listener;
 
-use app\admin\model\Assoc;use app\admin\model\InvoiceInfo;use app\admin\model\InvoicePay;use app\admin\model\InvoicePool;use app\admin\model\InvoiceTicket;use app\admin\model\Pay;use app\admin\model\PayInfo;use app\admin\model\PayInvoice;use app\admin\model\QrdInfo;use app\admin\model\TagLog;use think\facade\Config;
+use app\admin\model\Assoc;use app\admin\model\InvoiceInfo;use app\admin\model\InvoicePay;use app\admin\model\InvoicePool;use app\admin\model\InvoiceTicket;use app\admin\model\Pay;use app\admin\model\PayInfo;use app\admin\model\PayInvoice;use app\admin\model\QrdInfo;
 class ComonQrd
 {
+     protected function checkPay($data){
+    	$payinfo = Pay::where('payNo',$data['payNo'])->findOrEmpty();
+    	if($payinfo->isEmpty()) return;
+    	if($payinfo->is_comon!=1)return;
+    	$this->CheckComonOrder($payinfo);
+    	
+    }
+    
+    public function CheckComonOrder($payinfo){
+    	if($payinfo->status==3||$payinfo->status==4 ){
+	        PayInfo::alias('a')
+	        ->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
+	            ->where(['payNo'=>$payinfo->payNo,'is_del'=>0,'a.status'=>0])
+	            ->update(['b.status'=>0]);
+    	}else{
+    		if($payinfo->inv_status==3 &&$payinfo->pay_status==3){
+	            PayInfo::alias('a')
+	            ->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
+	            ->where(['payNo'=>$payinfo->payNo,'is_del'=>0,'a.status'=>1])
+	            ->update(["b.status"=>2]);
+		        }elseif($payinfo->inv_status!=3|| $payinfo->pay_status!=3){
+		            PayInfo::alias('a')
+		            ->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
+		            ->where(['payNo'=>$payinfo->payNo,'is_del'=>0,'a.status'=>1])
+		            ->update(['b.status'=>1]);
+		        }
+    		}
+    }
+    
     /**
      * 事件监听处理
-     *
      * @return mixed
      */
     public function handle($event)
@@ -18,59 +46,80 @@ class ComonQrd
 		if($event['type']=="rinv")$this->InvToPay($event,false);
 //		if($event['type']=="check")$this->checkPay($event);
     }
-    
-    public function payComon($data){
-    	$payinfo = Pay::where("payNo",$data['payNo'])->findOrEmpty();
-    	if($payinfo->isEmpty()) return;
-    	if($payinfo->is_comon!=1)return;
-    	if(!in_array($payinfo->status,[1,2]))return;
-    	$qrdNo = PayInfo::alias("a")->leftJoin("ComonOrder b","a.cgdNo=b.cgdNo")->where(["payNo"=>$data['payNo'],"is_del"=>0,"a.status"=>1])->column("orderCode");
-    	$qrdinfo = QrdInfo::where([["sequenceNo","in",$qrdNo],["wpay_fee",">",0]])->select();
-    	if($qrdinfo->isEmpty())return;
-    	$this->CheckComonOrder($payinfo);
-    	$tag=[];
-    	$qrdSave=[];
-    	foreach ($qrdinfo as $item){
-    		$tag_temp=[
-    			"code"=>$item->sequenceNo,
-    			"tag_id"=>10,
-    			"creater"=>"system",
-    			"createrid"=>0,
-    			"tag_fee"=>0,
-    			"tag_img"=>"",
-    			"status"=>1
-    			];
-    		$qrd=[
-    			"id"=>$item->id,
-	            "wpay_fee"=>$item->wpay_fee,
-	            "apay_fee"=>$item->apay_fee,
-	            "pay_status"=>$item->pay_status,
-	            "pay_tag_fee"=>0,
-	            "pay_tag" => 1
-	            ];
-    		if($item->wpay_fee>$data['pay_fee']){
-    			$tag_temp['tag_fee'] = $data['pay_fee'];
-    			$qrd['pay_tag_fee'] = $data['pay_fee'];
-    			$qrd['wpay_fee'] = $item->wpay_fee-$data['pay_fee'];
-    			$qrd['apay_fee'] = $item->apay_fee+$data['pay_fee'];
-    			$qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
-    			$data['pay_fee']=0;
-    		}else{
-    			$data['pay_fee']=$data['pay_fee']-$item->wpay_fee;
-    			$tag_temp['tag_fee'] =$item->wpay_fee;
-    			$qrd['pay_tag_fee'] = $item->wpay_fee;
-    			$qrd['wpay_fee'] = 0;
-    			$qrd['apay_fee'] = $item->apay_fee+$item->wpay_fee;
-    			$qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
-    		}
-    		$qrdSave[]=$qrd;
-    		$tag[]=$tag_temp;
-    		if($data['pay_fee']==0) break;
-    	}
-    	(new \app\admin\model\QrdInfo)->saveAll($qrdSave);
-    	(new \app\admin\model\TagLog)->saveAll($tag);
+
+    public function InvToPay($data,$bool=True){
+                $invinfo =InvoicePool::where(['invNo'=>$data['invNo']])->findOrEmpty();
+            	if($invinfo->isEmpty())return;
+            	if($bool){
+            		if($invinfo->status!=4 ||$invinfo->is_comon!=1 )return;
+            		$assoc_status=2;
+            	}else{
+            		$assoc_status=3;
+            		if(in_array($invinfo->status,[5,6,7,8,9])||$invinfo->is_comon!=1 )return;
+            	}
+            	
+            	$assoc = Assoc::where(["viceCode"=>$data['invNo'],"status"=>$assoc_status,"is_del"=>0,"type"=>1])->select();
+            	if($assoc->isEmpty()) return;
+            	$orderArr = QrdInfo::whereIn("sequenceNo",array_column($assoc->toArray(),"orderCode"))->select();
+            	if($orderArr->isEmpty())return;
+            	$payArr=array_column($assoc->toArray(),"cancel_fee","orderCode");
+            	$tag=[];
+    	        $qrdSave=[];
+            	foreach ($orderArr as $item){
+            		if(!isset($payArr[$item->sequenceNo]))continue;
+		           $tag_temp=[
+		                'code'=>$item->sequenceNo,
+		                'tag_id'=>11,
+		                'creater'=>'system',
+		                'createrid'=>0,
+		                'tag_fee'=>0,
+		                'tag_img'=>'',
+		                'status'=>$bool?1:0
+		                ];
+		            $qrd=[
+		                'id'=>$item->id,
+			            'wpay_fee'=>$item->wpay_fee,
+			            'apay_fee'=>$item->apay_fee,
+			            'pay_status'=>$item->pay_status,
+			            'pay_tag_fee'=>$item->pay_tag_fee,
+			            'pay_tag' => 1
+			            ];
+		            if($bool){
+		            	if($item->wpay_fee>$payArr[$item->sequenceNo]){
+		            		$tag_temp['tag_fee']= $payArr[$item->sequenceNo];
+		            		$qrd['pay_tag_fee'] =$item->pay_tag_fee+$payArr[$item->sequenceNo];
+		            		$qrd['wpay_fee'] = $item->wpay_fee-$payArr[$item->sequenceNo];
+		            		$qrd['apay_fee'] = $item->apay_fee+$payArr[$item->sequenceNo];
+		            		$qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
+		            	}else{
+		            		$tag_temp['tag_fee'] =$item->wpay_fee;
+		            		$qrd['pay_tag_fee'] =$item->pay_tag_fee+ $item->wpay_fee;
+		            		$qrd['wpay_fee'] = 0;
+		            		$qrd['apay_fee'] = $item->apay_fee+$item->wpay_fee;
+		            		$qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
+		            	}
+		            }else{
+						if($item->apay_fee>$payArr[$item->sequenceNo]){
+							$tag_temp['tag_fee']= $payArr[$item->sequenceNo];
+				            $qrd['pay_tag_fee']=$item->pay_tag_fee>$payArr[$item->sequenceNo]?$item->pay_tag_fee-$payArr[$item->sequenceNo]:0;
+				            $qrd['wpay_fee'] = $item->wpay_fee+$payArr[$item->sequenceNo];
+				            $qrd['apay_fee'] = $item->apay_fee-$payArr[$item->sequenceNo];
+				            $qrd['pay_status'] = ($qrd['wpay_fee']==0  &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?2:1);
+				           }else{
+				            $tag_temp['tag_fee'] =$item->apay_fee;
+				            $qrd['pay_tag_fee'] =$item->pay_tag_fee>$item->apay_fee?$item->pay_tag_fee-$item->apay_fee:0;
+				            $qrd['wpay_fee'] =$item->apay_fee;
+				            $qrd['apay_fee'] = 0;
+				            $qrd['pay_status'] = ($qrd['wpay_fee']==0  &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?2:1);
+				          }
+		            }
+		            $qrdSave[]=$qrd;
+		            $tag[]=$tag_temp;
+            	};
+            	(new \app\admin\model\QrdInfo)->saveAll($qrdSave);
+            	(new \app\admin\model\TagLog)->saveAll($tag);
     }
-    
+
     protected function invComon($data){
     	$invinfo =InvoicePool::where(['invNo'=>$data['invNo']])->findOrEmpty();
     	if($invinfo->isEmpty())return;
@@ -161,33 +210,61 @@ class ComonQrd
     		    $invpay->status =1;
     		    $invpay->save();
     }
-     protected function checkPay($data){
-    	$payinfo = Pay::where('payNo',$data['payNo'])->findOrEmpty();
+
+    public function payComon($data){
+    	$payinfo = Pay::where("payNo",$data['payNo'])->findOrEmpty();
     	if($payinfo->isEmpty()) return;
     	if($payinfo->is_comon!=1)return;
+    	if(!in_array($payinfo->status,[1,2]))return;
+    	$qrdNo = PayInfo::alias("a")->leftJoin("ComonOrder b","a.cgdNo=b.cgdNo")->where(["payNo"=>$data['payNo'],"is_del"=>0,"a.status"=>1])->column("orderCode");
+    	$qrdinfo = QrdInfo::where([["sequenceNo","in",$qrdNo],["wpay_fee",">",0]])->select();
+    	if($qrdinfo->isEmpty())return;
     	$this->CheckComonOrder($payinfo);
-    	
-    }
-    public function CheckComonOrder($payinfo){
-    	if($payinfo->status==3||$payinfo->status==4 ){
-	        PayInfo::alias('a')
-	        ->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
-	            ->where(['payNo'=>$payinfo->payNo,'is_del'=>0,'a.status'=>0])
-	            ->update(['b.status'=>0]);
-    	}else{
-    		if($payinfo->inv_status==3 &&$payinfo->pay_status==3){
-	            PayInfo::alias('a')
-	            ->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
-	            ->where(['payNo'=>$payinfo->payNo,'is_del'=>0,'a.status'=>1])
-	            ->update(["b.status"=>2]);
-		        }elseif($payinfo->inv_status!=3|| $payinfo->pay_status!=3){
-		            PayInfo::alias('a')
-		            ->leftJoin('ComonOrder b','a.cgdNo=b.cgdNo')
-		            ->where(['payNo'=>$payinfo->payNo,'is_del'=>0,'a.status'=>1])
-		            ->update(['b.status'=>1]);
-		        }
+    	$tag=[];
+    	$qrdSave=[];
+    	foreach ($qrdinfo as $item){
+    		$tag_temp=[
+    			"code"=>$item->sequenceNo,
+    			"tag_id"=>10,
+    			"creater"=>"system",
+    			"createrid"=>0,
+    			"tag_fee"=>0,
+    			"tag_img"=>"",
+    			"status"=>1
+    			];
+    		$qrd=[
+    			"id"=>$item->id,
+	            "wpay_fee"=>$item->wpay_fee,
+	            "apay_fee"=>$item->apay_fee,
+	            "pay_status"=>$item->pay_status,
+	            "pay_tag_fee"=>0,
+	            "pay_tag" => 1
+	            ];
+    		if($item->wpay_fee>$data['pay_fee']){
+    			$tag_temp['tag_fee'] = $data['pay_fee'];
+    			$qrd['pay_tag_fee'] = $data['pay_fee'];
+    			$qrd['wpay_fee'] = $item->wpay_fee-$data['pay_fee'];
+    			$qrd['apay_fee'] = $item->apay_fee+$data['pay_fee'];
+    			$qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
+    			$data['pay_fee']=0;
+    		}else{
+    			$data['pay_fee']=$data['pay_fee']-$item->wpay_fee;
+    			$tag_temp['tag_fee'] =$item->wpay_fee;
+    			$qrd['pay_tag_fee'] = $item->wpay_fee;
+    			$qrd['wpay_fee'] = 0;
+    			$qrd['apay_fee'] = $item->apay_fee+$item->wpay_fee;
+    			$qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
     		}
+    		$qrdSave[]=$qrd;
+    		$tag[]=$tag_temp;
+    		if($data['pay_fee']==0) break;
+    	}
+    	(new \app\admin\model\QrdInfo)->saveAll($qrdSave);
+    	(new \app\admin\model\TagLog)->saveAll($tag);
     }
+    
+   //新开票完成 创建对应的标签;
+
     public function returnInv($data){
             $invinfo =InvoicePool::where(['invNo'=>$data['invNo'],"status"=>[5,6,7,8,9]])->findOrEmpty();
         	if($invinfo->isEmpty())return;
@@ -210,78 +287,4 @@ class ComonQrd
         	  $invpay->status =2;
         	  $invpay->save();
     }
-    
-   //新开票完成 创建对应的标签;
-    public function InvToPay($data,$bool=True){
-                $invinfo =InvoicePool::where(['invNo'=>$data['invNo']])->findOrEmpty();
-            	if($invinfo->isEmpty())return;
-            	if($bool){
-            		if($invinfo->status!=4 ||$invinfo->is_comon!=1 )return;
-            		$assoc_status=2;
-            	}else{
-            		$assoc_status=3;
-            		if(in_array($invinfo->status,[5,6,7,8,9])||$invinfo->is_comon!=1 )return;
-            	}
-            	
-            	$assoc = Assoc::where(["viceCode"=>$data['invNo'],"status"=>$assoc_status,"is_del"=>0,"type"=>1])->select();
-            	if($assoc->isEmpty()) return;
-            	$orderArr = QrdInfo::whereIn("sequenceNo",array_column($assoc->toArray(),"orderCode"))->select();
-            	if($orderArr->isEmpty())return;
-            	$payArr=array_column($assoc->toArray(),"cancel_fee","orderCode");
-            	$tag=[];
-    	        $qrdSave=[];
-            	foreach ($orderArr as $item){
-            		if(!isset($payArr[$item->sequenceNo]))continue;
-		           $tag_temp=[
-		                'code'=>$item->sequenceNo,
-		                'tag_id'=>10,
-		                'creater'=>'system',
-		                'createrid'=>0,
-		                'tag_fee'=>0,
-		                'tag_img'=>'',
-		                'status'=>$bool?($item->pay_tag==1?2:1):0
-		                ];
-		            $qrd=[
-		                'id'=>$item->id,
-			            'wpay_fee'=>$item->wpay_fee,
-			            'apay_fee'=>$item->apay_fee,
-			            'pay_status'=>$item->pay_status,
-			            'pay_tag_fee'=>$item->pay_tag_fee,
-			            'pay_tag' => 1
-			            ];
-		            if($bool){
-		            	if($item->wpay_fee>$payArr[$item->sequenceNo]){
-		            				                $tag_temp['tag_fee']= $payArr[$item->sequenceNo];
-		            				                $qrd['pay_tag_fee'] =$item->pay_tag_fee+$payArr[$item->sequenceNo];
-		            				                $qrd['wpay_fee'] = $item->wpay_fee-$payArr[$item->sequenceNo];
-		            				                $qrd['apay_fee'] = $item->apay_fee+$payArr[$item->sequenceNo];
-		            				                $qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
-		            	}else{
-		            				                $tag_temp['tag_fee'] =$item->wpay_fee;
-		            				                $qrd['pay_tag_fee'] =$item->pay_tag_fee+ $item->wpay_fee;
-		            				                $qrd['wpay_fee'] = 0;
-		            				                $qrd['apay_fee'] = $item->apay_fee+$item->wpay_fee;
-		            				                $qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
-		            				            }
-		            }else{
-						if($item->apay_fee>$payArr[$item->sequenceNo]){
-			            				                $tag_temp['tag_fee']= $payArr[$item->sequenceNo];
-			            				                $qrd['pay_tag_fee']=$item->pay_tag_fee>$payArr[$item->sequenceNo]?$item->pay_tag_fee-$payArr[$item->sequenceNo]:0;
-			            				                $qrd['wpay_fee'] = $item->wpay_fee+$payArr[$item->sequenceNo];
-			            				                $qrd['apay_fee'] = $item->apay_fee-$payArr[$item->sequenceNo];
-			            				                $qrd['pay_status'] = ($qrd['wpay_fee']==0  &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?2:1);
-			            	}else{
-			            				                $tag_temp['tag_fee'] =$item->apay_fee;
-			            				                $qrd['pay_tag_fee'] =$item->pay_tag_fee>$item->apay_fee?$item->pay_tag_fee-$item->apay_fee:0;
-			            				                $qrd['wpay_fee'] =$item->apay_fee;
-			            				                $qrd['apay_fee'] = 0;
-			            				                $qrd['pay_status'] = ($qrd['wpay_fee']==0  &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?2:1);
-			            	}
-		            }
-		            $qrdSave[]=$qrd;
-		            $tag[]=$tag_temp;
-            	};
-            	(new \app\admin\model\QrdInfo)->saveAll($qrdSave);
-            	(new \app\admin\model\TagLog)->saveAll($tag);
-    }
 }