PaymentOrder.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace app\cxinv\model;
  3. use think\facade\Log;use think\Model;
  4. use think\model\concern\SoftDelete;
  5. class PaymentOrder extends Base{
  6. use SoftDelete;
  7. protected $createTime='createTime';
  8. protected $updateTime='updateTime';
  9. protected $deleteTime='delete_time';
  10. protected $schema=[
  11. 'id'=>'int',
  12. 'dzNo'=>'string',
  13. 'cgdNo'=>'string',
  14. 'rela_fee'=>'decimal',
  15. 'status'=>'tinyint',
  16. 'createTime'=>'datetime',
  17. 'updateTime'=>'datetime',
  18. 'delete_time'=>'datetime'
  19. ];
  20. //状态 0 关联中 1 已付款 2 解除付款 3 取消付款',
  21. public static function onAfterWrite(Model $model) : void{
  22. $cgdNo = $model->cgdNo;
  23. $status = $model->status;
  24. Log::info("PaymentOrder::onAfterWrite:".$model->cgdNo."-".$model->status);
  25. $cgdinfo = CgdInfo::where(["sequenceNo"=>$cgdNo,"is_del"=>0,"status"=>1])->findOrEmpty();
  26. if($cgdinfo->isEmpty()) return;
  27. switch ($status){
  28. case 0:
  29. $cgdinfo->wpay_fee= $cgdinfo->wpay_fee-$model->rela_fee;
  30. break;
  31. case 1:
  32. $cgdinfo->apay_fee= $cgdinfo->apay_fee+$model->rela_fee;
  33. break;
  34. case 2:
  35. $cgdinfo->apay_fee= $cgdinfo->apay_fee-$model->rela_fee;
  36. $cgdinfo->wpay_fee= $cgdinfo->wpay_fee+$model->rela_fee;
  37. break;
  38. case 3:
  39. $cgdinfo->wpay_fee= $cgdinfo->wpay_fee+$model->rela_fee;
  40. break;
  41. default:
  42. return;
  43. }
  44. $cgdinfo->save();
  45. Log::info("PaymentOrder::onAfterWrite-update:".self::getLastSql());
  46. }
  47. //状态 0 关联中 1 已付款 2 解除付款 3 取消付款',
  48. public static function checkOrder($dzNo,$status){
  49. $list = self::where(['dzNo'=>$dzNo,'status'=>$status==2?1:0])->field("id,cgdNo,status,rela_fee")->select();
  50. Log::info("PaymentOrder::checkOrder:dzNo-{$dzNo},status-{$status}");
  51. if($list->isEmpty()) return;
  52. Log::info(array_map(function($item)use($status){
  53. return [
  54. 'id'=>$item['id'],
  55. 'cgdNo'=>$item['cgdNo'],
  56. 'rela_fee'=>$item['rela_fee'],
  57. 'status'=>$status
  58. ];
  59. },$list->toArray()));
  60. (new PaymentOrder)->saveAll(array_map(function($item)use($status){
  61. return [
  62. 'id'=>$item['id'],
  63. 'cgdNo'=>$item['cgdNo'],
  64. 'rela_fee'=>$item['rela_fee'],
  65. 'status'=>$status
  66. ];
  67. },$list->toArray()));
  68. Log::info("PaymentOrder::checkOrder-update:".self::getLastSql());
  69. }
  70. }