1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- declare (strict_types = 1);
- namespace app\admin\listener;
- use app\admin\model\Pay;use app\admin\model\PayInfo;use app\admin\model\QrdInfo;use app\admin\model\TagLog;
- class ComonQrd
- {
- /**
- * 事件监听处理
- *
- * @return mixed
- */
- public function handle($event)
- {
- if($event['type']=="pay")$this->payComon($event);
- }
-
- public function payComon($data){
- $payinfo = Pay::where("payNo",$data['payNo'])->findOrEmpty();
- if($payinfo->isEmpty()) return;
- if($payinfo->is_comon!=1)return;
- $qrdNo = PayInfo::alias("a")->leftJoin("ComonOrder b","a.cgdNo=b.cgdNo")->column("orderCode");
- $qrdinfo = QrdInfo::where([["sequenceNo","in",$qrdNo],["wpay_fee",">",0]])->select();
- if($qrdinfo->isEmpty())return;
- $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;
- $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);
- }
- }
|