ThData.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\admin\listener;
  4. use app\admin\model\OrderReturn;use app\admin\model\SaleReturn;class ThData
  5. {
  6. /**
  7. * 事件监听处理
  8. *
  9. * @return mixed
  10. */
  11. public function handle($event)
  12. {//
  13. \app\admin\model\ThData::create($event);
  14. $data=[];
  15. switch ($event['th_type']){
  16. case 1:
  17. $data=$this->beforeOrder($event);
  18. break;
  19. case 2:
  20. $data=$this->afterOrder($event);
  21. break;
  22. case 3:
  23. break;
  24. case 4:
  25. break;
  26. }
  27. if(empty($data)==false)\app\admin\model\ThStock::create($data);
  28. }
  29. protected function afterOrder($event){
  30. $model =new OrderReturn();
  31. $info =$model->where(["returnCode"=>$event['thCode']])->findOrEmpty();
  32. if($info->isEmpty())return[];
  33. if($info->status==5 && $info->return_tag==2){
  34. $data=[
  35. "thCode"=>$info->returnCode,
  36. "th_type"=>2,
  37. "order_type"=>$info->order_type,
  38. "supplierNo"=>$info->supplierNo,
  39. "supplierName"=>$info->supplierName,
  40. "companyNo"=>$info->companyNo,
  41. "companyName"=>$info->companyName,
  42. "customerNo"=>$info->customer_code,
  43. "customerName"=>$info->customer_name,
  44. "th_num"=>$info->error_num,
  45. "th_cgd_price"=>$event['sale_price'],
  46. "th_sale_price"=>$event['cgd_price'],
  47. "good_code"=>$info->good_code,
  48. "good_name"=>$info->good_code,
  49. "orderCode"=>$info->orderCode,
  50. "apply_id"=>$info->apply_id,
  51. "apply_name"=>$info->apply_name,
  52. ];
  53. }
  54. return $data;
  55. }
  56. protected function beforeOrder($event){
  57. $model =new SaleReturn();
  58. $info =$model->where(['returnCode'=>$event['thCode']])->findOrEmpty();
  59. if($info->isEmpty())return[];
  60. if($info->status==4 && $info->is_th==1){
  61. $data=[
  62. 'thCode'=>$info->returnCode,
  63. 'th_type'=>1,
  64. 'order_type'=>$info->order_type,
  65. 'supplierNo'=>$info->supplierNo,
  66. 'supplierName'=>$info->supplierName,
  67. 'companyNo'=>$info->companyNo,
  68. 'companyName'=>$info->companyName,
  69. 'customerNo'=>$info->customer_code,
  70. 'customerName'=>$info->customer_name,
  71. 'th_num'=>$info->num,
  72. 'th_cgd_price'=>$event['sale_price'],
  73. 'th_sale_price'=>$event['cgd_price'],
  74. 'good_code'=>$info->good_code,
  75. 'good_name'=>$info->good_code,
  76. 'orderCode'=>$info->orderCode,
  77. 'apply_id'=>$info->apply_id,
  78. 'apply_name'=>$info->apply_name,
  79. ];
  80. }
  81. return $data;
  82. }
  83. }