| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- <?php
- namespace App\Servers\printer;
- use App\Models\ErrorRecord;
- use App\Models\Order;
- use App\Models\OrderItem;
- /**
- * 打印机服务
- */
- class PrinterServer
- {
- /**
- * 错误信息
- * @var string
- */
- private $errorMsg = '';
- static private $server = '';
- private function __construct()
- {
- }
- /**
- * 创建对象
- * @return PrinterServer
- */
- static function creatServer()
- {
- if (empty(self::$server)) {
- self::$server = new PrinterServer();
- }
- return self::$server;
- }
- /**
- * 添加打印机
- * @param $brand_id
- * @param $sn
- * @param $key
- * @param string $name
- * @return bool
- */
- function addPrinter($brand_id,$sn,$key,$name='')
- {
- if ($brand_id == 1){//商鹏
- $sendServer = SpyunServer::creatServer();
- }elseif ($brand_id == 2){//飞鹅
- $sendServer = FeieYunServer::creatServer();
- }elseif ($brand_id == 3){//芯烨
- $sendServer = XprinterServer::creatServer();
- }elseif ($brand_id == 4){//佳博
- $sendServer = PoscomServer::creatServer();
- }elseif ($brand_id == 5){//大趋智能
- $sendServer = TrenditServer::creatServer();
- }elseif ($brand_id == 6){//易联云
- $sendServer = YlyServer::creatServer();
- }
- $result = $sendServer->addPrinter($sn,$key,$name);
- if (!$result) {
- $this->errorMsg = $sendServer->getErrorMsg();
- return false;
- }
- return true;
- }
- /**
- * 删除打印机
- * @param $brand_id
- * @param $sn
- * @return bool
- */
- function delPrinter($brand_id,$sn)
- {
- if ($brand_id == 1){//商鹏
- $sendServer = SpyunServer::creatServer();
- }elseif ($brand_id == 2){//飞鹅
- $sendServer = FeieYunServer::creatServer();
- }elseif ($brand_id == 3){//芯烨
- $sendServer = XprinterServer::creatServer();
- }elseif ($brand_id == 4){//佳博
- $sendServer = PoscomServer::creatServer();
- }elseif ($brand_id == 5){//大趋智能
- $sendServer = TrenditServer::creatServer();
- }elseif ($brand_id == 6){//易联云
- $sendServer = YlyServer::creatServer();
- }
- $result = $sendServer->deletePrinter($sn);
- if (!$result) {
- $this->errorMsg = $sendServer->getErrorMsg();
- return false;
- }
- return true;
- }
- /**
- * 发送打印
- * @return bool
- */
- function sendPrints($brand_id,$sn,$order_id,$is_test=0)
- {
- if (!$is_test){
- $order = Order::where('id',$order_id)
- ->where('is_del',0)
- ->where('order_status',2)
- ->select(['id','order_sn','m_id','order_type','number','note','pay_money','goods_number','pack_price','created_at','shop_id'])
- ->first();
- if (empty($order)) {
- ErrorRecord::create(['msg' => '订单不存在打印失败:', 'data' => $order_id]);
- $this->errorMsg = '订单不存在';
- return false;
- }
- $order->{'item'} = OrderItem::where('order_id',$order_id)->select(['goods_name','goods_attr','goods_number','goods_price'])->get();
- }else{
- $order = [];
- }
- if ($brand_id == 1){
- $sendServer = SpyunServer::creatServer();
- }elseif ($brand_id == 2){//飞鹅
- $sendServer = FeieYunServer::creatServer();
- }elseif ($brand_id == 3){//芯烨
- $sendServer = XprinterServer::creatServer();
- }elseif ($brand_id == 4){//佳博
- $sendServer = PoscomServer::creatServer();
- }elseif ($brand_id == 5){//大趋智能
- $sendServer = TrenditServer::creatServer();
- }elseif ($brand_id == 6){//易联云
- $sendServer = YlyServer::creatServer();
- }
- $result = $sendServer->prints($is_test,$sn,$order);
- if (!$result) {
- $this->errorMsg = $sendServer->getErrorMsg();
- ErrorRecord::create(['msg' => '订单不存在打印失败:'.$sendServer->getErrorMsg(), 'data' => $order_id]);
- return false;
- }
- return $result;
- }
- /**
- * @return string
- */
- public function getErrorMsg(): string
- {
- return $this->errorMsg;
- }
- }
|