PrinterBase.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace addons\Printer\common\logic;
  3. use addons\Printer\common\logic\PrintOrder;
  4. use addons\Store\common\models\StoreOrder;
  5. use common\models\order\Order;
  6. use addons\Printer\common\models\Log as PrintLog;
  7. class PrinterBase
  8. {
  9. public static function async_handleOld($params){
  10. if(!empty($params)){
  11. $p = new PrintOrder();
  12. if(!empty($params['order_id'])&&!empty($params['type'])){
  13. $p->setPrinter(['order_id'=>$params['order_id'],'event'=>$params['type']])->print();
  14. }
  15. }
  16. }
  17. public static function async_handle($params){
  18. if(!empty($params)){
  19. $p = new PrintOrders();
  20. if(!empty($params['order_id'])&&!empty($params['type'])){
  21. $orderInfo = Order::findOne($params['order_id']);
  22. if(!isset($params['print_type'])){
  23. return;
  24. }
  25. switch ($params['print_type']){
  26. case 0: // 平台
  27. break;
  28. case 1: // 门店
  29. $order = Order::findOne($params['order_id']);
  30. $orderInfo = StoreOrder::findOne(['order_no' => $order->order_no]);
  31. break;
  32. case 2: // 多商户
  33. break;
  34. default:
  35. return;
  36. }
  37. $order_type = null;
  38. if(isset($params['order_type']))$order_type = $params['order_type'];
  39. $res = $p->setPrinter(['order_id'=>$params['order_id'],'event'=>$params['type'],'order_type'=>$order_type,'print_type'=>$params['print_type']])->print();
  40. if ($res !== null) { // 开启打印,有打印结果
  41. if($res['err'] == 0){ // 打印成功,修改订单打印状态,打印失败就不改了
  42. $orderInfo->is_print = 1;
  43. $orderInfo->save();
  44. }
  45. // 增加打印日志
  46. $data['mch_id'] = $orderInfo->mch_id;
  47. $data['store_id'] = $orderInfo->store_id;
  48. $data['mall_id'] = $orderInfo->mall_id;
  49. $data['order_id'] = $orderInfo->id;
  50. $data['msg'] = $res['msg'] ?? '';
  51. if ($res['err'] == 0) { //打印成功
  52. $data['status'] = 1;
  53. }else{
  54. $data['status'] = 0;
  55. }
  56. switch($params['type']){
  57. case 'order_printer_config': // 下单
  58. $data['type'] = 1;
  59. break;
  60. case 'pay_printer_config': // 支付
  61. $data['type'] = 2;
  62. break;
  63. case 'confirm_printer_config': // 确认收货
  64. $data['type'] = 3;
  65. break;
  66. case 'system_printer_config': // 后台
  67. $data['type'] = 4;
  68. break;
  69. default:
  70. $data['type'] = 0;
  71. }
  72. PrintLog::setData($data);
  73. }
  74. }
  75. }
  76. }
  77. }