PayPayment.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace app\cxinv\model;
  3. use think\Model;class PayPayment extends Base
  4. {
  5. //设置字段信息
  6. protected $schema = [
  7. 'id' =>'bigint',//
  8. 'payNo' =>'varchar',//付款编号
  9. 'dzNo' =>'varchar',//对账编号
  10. 'apply_id' =>'int',//申请人id
  11. 'apply_name' =>'varchar',//申请人名称
  12. 'pay_fee' =>'decimal',//对账金额
  13. 'return_img' =>'text',//付款回执
  14. 'return_time' =>'varchar',//付款回执时间
  15. 'tag_id' =>'int',//标签id
  16. 'status' =>'tinyint',//审核状态 0 待发起流程1 待业务审核 2待财务审核 3 待付款回执 4付款完成 5 付款已退 6业务驳回 7 财务驳回 8 已作废
  17. 'remark' =>'varchar',//
  18. 'is_del' =>'tinyint',//
  19. 'addtime' =>'datetime',//
  20. 'updatetime' =>'datetime',//
  21. ];
  22. protected $createTime='addtime';
  23. protected $updateTime="updatetime";
  24. public static function onAfterUpdate(Model $model) : void{
  25. $changed = $model->getChangedData();
  26. $dzNo = $model['dzNo'];
  27. if(isset($changed['status'])){
  28. $pay = Pay::where(['payNo'=>$model['payNo'],"is_del"=>0,"status"=>2])->findOrEmpty();
  29. if($pay->isEmpty()) return;
  30. $status=0;
  31. switch ($changed['status']){
  32. case 4:
  33. $pay->apay_fee = $pay->apay_fee+$model['pay_fee'];
  34. $pay->pay_fee = $pay->pay_fee-$model['pay_fee'];
  35. $pay->pay_status= $pay->wpay_fee==0 && $pay->pay_fee ==0 ? 3:2;
  36. $pay->save();
  37. $status=1;
  38. event('comonOrder',['payNo'=>$model['payNo'],'pay_fee'=>$model['pay_fee'],'type'=>'pay']);
  39. break;
  40. case 5:
  41. $pay->apay_fee = $pay->apay_fee-$model['pay_fee'];
  42. $pay->wpay_fee = $pay->wpay_fee+$model['pay_fee'];
  43. $pay->pay_status= $pay->apay_fee==0 ? 1:2;
  44. $pay->save();
  45. $status=2;
  46. event('comonOrder',['payNo'=>$model['payNo'],'pay_fee'=>$model['pay_fee'],'type'=>'repay']);
  47. event('report_code',['type'=>'sub','key'=>'dzNo','value'=>$model['dzNo']]);
  48. break;
  49. case 6:
  50. case 7:
  51. case 8:
  52. $pay->wpay_fee = $pay->wpay_fee+$model['pay_fee'];
  53. $pay->pay_fee = $pay->pay_fee-$model['pay_fee'];
  54. $pay->pay_status= $pay->apay_fee==0 ? 1:2;
  55. $pay->save();
  56. $status=3;
  57. event("report_code",["type"=>"sub","key"=>"dzNo","value"=>$model['dzNo']]);
  58. break;
  59. default:
  60. break;
  61. }
  62. if($status!=0)PaymentOrder::checkOrder($dzNo,$status);
  63. }
  64. }
  65. }