getPrintContent($order); // 执行打印请求 return $PrinterDriver->printTicket($content);*/ //商家打印 $this->sellerPrint($order, $scene); //门店打印 $this->storePrint($order); } /** * 商家打印 by yj */ public function sellerPrint($order, $scene = 20) { // 打印机设置 $printerConfig = SettingModel::getSupplierItem('printer', $order['shop_supplier_id'], $order['app_id']); // 判断是否开启打印设置 if (!$printerConfig['is_open'] || !$printerConfig['printer_id'] || !in_array($scene, $printerConfig['order_status'])) { return false; } // 获取当前的打印机 $printer = PrinterModel::detail($printerConfig['printer_id']); if (empty($printer) || $printer['is_delete']) { return false; } // 实例化打印机驱动 $PrinterDriver = new PrinterDriver($printer); // 获取订单打印内容 $content = $this->getPrintContent($order); // 执行打印请求 return $PrinterDriver->printTicket($content); } /** * 门店打印 by yj */ public function storePrint($order) { $model = new StoreModel; $store_id = empty($order["extract_store_id"]) ? $order["delivery_store"] : $order["extract_store_id"]; //自提门店与配送门店都为空 if(empty($store_id)){ return false; } $store = $model::detail($store_id); //未开启或未选择打印机 if(empty($store) || empty($store["is_printer_open"]) || empty($store["printer_id"])){ return false; } // 获取该门店的打印机 $printer = PrinterModel::detail($store["printer_id"]); if (empty($printer) || $printer['is_delete']) { return false; } // 实例化打印机驱动 $PrinterDriver = new PrinterDriver($printer); // 获取订单打印内容 $content = $this->getPrintContent($order); // 执行打印请求 return $PrinterDriver->printTicket($content); } /** * 构建订单打印的内容 */ private function getPrintContent($order) { // 商城名称 $storeName = SettingModel::getItem('store', $order['app_id'])['name']; // 收货地址 $address = $order['address']; // 拼接模板内容 $content = "{$storeName}
"; $content .= '--------------------------------
'; $content .= "昵称:{$order['user']['nickName']} [{$order['user_id']}]
"; $content .= "订单号:{$order['order_no']}
"; $content .= '付款时间:' . date('Y-m-d H:i:s', $order['pay_time']) . '
'; // 收货人信息 if ($order['delivery_type']['value'] == DeliveryTypeEnum::EXPRESS) { $content .= "--------------------------------
"; $content .= "配送方式:快递配送
"; $content .= "收货人:{$address['name']}
"; $content .= "联系电话:{$address['phone']}
"; $content .= '收货地址:' . $address->getFullAddress() . '
'; } // 自提信息 if ($order['delivery_type']['value'] == DeliveryTypeEnum::EXTRACT && !empty($order['extract'])) { $content .= "--------------------------------
"; $content .= "配送方式:上门自提
"; $content .= "联系人:{$order['extract']['linkman']}
"; $content .= "联系电话:{$order['extract']['phone']}
"; $content .= "自提门店:{$order['extractStore']['store_name']}
"; } // 配送信息 if ($order['delivery_type']['value'] == DeliveryTypeEnum::STORESS) { $content .= "--------------------------------
"; $content .= "配送方式:门店配送
"; $content .= "收货人:{$address['name']}
"; $content .= "联系电话:{$address['phone']}
"; $content .= '收货地址:' . $address->getFullAddress() . '
'; } // 商品信息 $content .= '=========== 商品信息 ===========
'; foreach ($order['product'] as $key => $product) { $content .= ($key + 1) . ".商品名称:{$product['product_name']}
"; !empty($product['product_attr']) && $content .= " 商品规格:{$product['product_attr']}
"; $content .= " 购买数量:{$product['total_num']}
"; $content .= " 商品总价:{$product['total_price']}元
"; $content .= '--------------------------------
'; } // 买家备注 if (!empty($order['buyer_remark'])) { $content .= '============ 买家备注 ============
'; $content .= "{$order['buyer_remark']}
"; $content .= '--------------------------------
'; } // 订单金额 if ($order['coupon_money'] > 0) { $content .= "优惠券:-{$order['coupon_money']}元
"; } if ($order['points_num'] > 0) { $content .= "积分抵扣:-{$order['points_money']}元
"; } if ($order['update_price']['value'] != '0.00') { $content .= "后台改价:{$order['update_price']['symbol']}{$order['update_price']['value']}元
"; } // 运费 if ($order['delivery_type']['value'] == DeliveryTypeEnum::EXPRESS) { $content .= "运费:{$order['express_price']}元
"; $content .= '------------------------------
'; } // 实付款 $content .= "实付款:{$order['pay_price']}
"; return $content; } }