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;
}
}