ComonQrd.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\admin\listener;
  4. use app\admin\model\Pay;use app\admin\model\PayInfo;use app\admin\model\QrdInfo;use app\admin\model\TagLog;
  5. class ComonQrd
  6. {
  7. /**
  8. * 事件监听处理
  9. *
  10. * @return mixed
  11. */
  12. public function handle($event)
  13. {
  14. if($event['type']=="pay")$this->payComon($event);
  15. }
  16. public function payComon($data){
  17. $payinfo = Pay::where("payNo",$data['payNo'])->findOrEmpty();
  18. if($payinfo->isEmpty()) return;
  19. if($payinfo->is_comon!=1)return;
  20. $qrdNo = PayInfo::alias("a")->leftJoin("ComonOrder b","a.cgdNo=b.cgdNo")->column("orderCode");
  21. $qrdinfo = QrdInfo::where([["sequenceNo","in",$qrdNo],["wpay_fee",">",0]])->select();
  22. if($qrdinfo->isEmpty())return;
  23. $tag=[];
  24. $qrdSave=[];
  25. foreach ($qrdinfo as $item){
  26. $tag_temp=[
  27. "code"=>$item->sequenceNo,
  28. "tag_id"=>10,
  29. "creater"=>"system",
  30. "createrid"=>0,
  31. "tag_fee"=>0,
  32. "tag_img"=>"",
  33. "status"=>1
  34. ];
  35. $qrd=[
  36. "id"=>$item->id,
  37. "wpay_fee"=>$item->wpay_fee,
  38. "apay_fee"=>$item->apay_fee,
  39. "pay_status"=>$item->pay_status,
  40. "pay_tag_fee"=>0,
  41. "pay_tag" => 1
  42. ];
  43. if($item->wpay_fee>$data['pay_fee']){
  44. $tag_temp['tag_fee'] = $data['pay_fee'];
  45. $qrd['pay_tag_fee'] = $data['pay_fee'];
  46. $qrd['wpay_fee'] = $item->wpay_fee-$data['pay_fee'];
  47. $qrd['apay_fee'] = $item->apay_fee+$data['pay_fee'];
  48. $qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
  49. $data['pay_fee']=0;
  50. }else{
  51. $data['pay_fee']=$data['pay_fee']-$item->wpay_fee;
  52. $qrd['pay_tag_fee'] = $item->wpay_fee;
  53. $qrd['wpay_fee'] = 0;
  54. $qrd['apay_fee'] = $item->apay_fee+$item->wpay_fee;
  55. $qrd['pay_status'] = ($qrd['wpay_fee']==0 &&$item->pay_fee==0) ? 3:($qrd['apay_fee']==0?1:2);
  56. }
  57. $qrdSave[]=$qrd;
  58. $tag[]=$tag_temp;
  59. if($data['pay_fee']==0) break;
  60. }
  61. (new \app\admin\model\QrdInfo)->saveAll($qrdSave);
  62. (new \app\admin\model\TagLog)->saveAll($tag);
  63. }
  64. }