|
@@ -3,6 +3,7 @@ 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
|
|
|
{
|
|
|
/**
|
|
@@ -12,6 +13,56 @@ class ComonQrd
|
|
|
*/
|
|
|
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);
|
|
|
}
|
|
|
}
|