admin/addon/printer/storeapi/controller/Printer.php

221 lines
8.6 KiB
PHP

<?php
/**
* ThinkShop商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2019-2029 成都云之牛科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.cdcloudshop.com
* =========================================================
*/
namespace addon\printer\storeapi\controller;
use addon\printer\model\PrinterOrder;
use app\model\order\OrderCommon as OrderCommonModel;
use addon\printer\model\PrinterTemplate;
use addon\printer\model\Printer as PrinterModel;
use app\storeapi\controller\BaseStoreApi;
class Printer extends BaseStoreApi
{
/*
* 小票打印列表
*/
public function lists()
{
$model = new PrinterModel();
$site_id = $this->params[ 'site_id' ] ?? 1;
$store_id = $this->params[ 'store_id' ] ?? 1;
$page = $this->params[ 'page' ] ?? 1;
$page_size = $this->params[ 'page_size' ] ?? PAGE_LIST_ROWS;
$condition[] = [ 'site_id', '=', $site_id ];
$condition[] = [ 'store_id', '=', $store_id ];
$list = $model->getPrinterPageList($condition, $page, $page_size, 'printer_id desc');
return $this->response($list);
}
/**
* 打印机信息
* @return false|string
*/
public function info()
{
$site_id = $this->params[ 'site_id' ] ?? 1;
$store_id = $this->params[ 'store_id' ] ?? 1;
$printer_id = $this->params[ 'printer_id' ] ?? 1;
$model = new PrinterModel();
$info = $model->getPrinterInfo([ [ 'printer_id', '=', $printer_id ], [ 'site_id', '=', $site_id ], [ 'store_id', '=', $store_id ] ]);
$info[ 'data' ][ 'take_delivery_order_type' ] = explode(',', $info[ 'data' ][ 'take_delivery_order_type' ]);
$info[ 'data' ][ 'order_pay_order_type' ] = explode(',', $info[ 'data' ][ 'order_pay_order_type' ]);
$order_common_model = new OrderCommonModel();
$order_type_list = $order_common_model->getOrderTypeStatusList();
unset($order_type_list[ 'all' ]);
$info[ 'data' ][ 'order_type_list' ] = $order_type_list;
return $this->response($info);
}
public function getOrderType()
{
$order_common_model = new OrderCommonModel();
$order_type_list = $order_common_model->getOrderTypeStatusList();
unset($order_type_list[ 'all' ]);
return $this->response($this->success($order_type_list));
}
/**
* 打印机品牌
* @return false|string
*/
public function brand()
{
//打印机品牌
$model = new PrinterModel();
$brand = $model->getPrinterBrand();
return $this->response($brand);
}
/**
* 打印模板
*/
public function template()
{
$site_id = $this->params[ 'site_id' ] ?? 1;
$template_model = new PrinterTemplate();
$condition = [
[ 'site_id', '=', $site_id ],
];
$template_list = $template_model->getPrinterTemplateList($condition, 'template_id,template_name,type', 'template_id desc');
return $this->response($template_list);
}
/**
* 添加小票打印
*/
public function add()
{
$model = new PrinterModel();
$data = [
'site_id' => $this->params[ 'site_id' ] ?? 1,
'printer_name' => $this->params[ 'printer_name' ] ?? '',
'brand' => $this->params[ 'brand' ] ?? '',
'printer_code' => $this->params[ 'printer_code' ] ?? '',
'printer_key' => $this->params[ 'printer_key' ] ?? '',
'open_id' => $this->params[ 'open_id' ] ?? '',
'apikey' => $this->params[ 'apikey' ] ?? '',
'store_id' => $this->params[ 'store_id' ] ?? 1,
//订单
'order_pay_open' => $this->params[ 'order_pay_open' ] ?? 0,
'order_pay_template_id' => $this->params[ 'order_pay_template_id' ] ?? 0,
'order_pay_print_num' => $this->params[ 'order_pay_print_num' ] ?? 1,
'order_pay_order_type' => $this->params[ 'order_pay_order_type' ] ?? '',
'take_delivery_open' => $this->params[ 'take_delivery_open' ] ?? 0,
'take_delivery_template_id' => $this->params[ 'take_delivery_template_id' ] ?? 0,
'take_delivery_print_num' => $this->params[ 'take_delivery_print_num' ] ?? 1,
'take_delivery_order_type' => $this->params[ 'take_delivery_order_type' ] ?? '',
'manual_open' => $this->params[ 'manual_open' ] ?? 0,
'template_id' => $this->params[ 'template_id' ] ?? 0,
'print_num' => $this->params[ 'print_num' ] ?? 1,
//充值
'recharge_open' => $this->params[ 'recharge_open' ] ?? 0,
'recharge_template_id' => $this->params[ 'recharge_template_id' ] ?? 0,
'recharge_print_num' => $this->params[ 'recharge_print_num' ] ?? 1,
];
if ($data[ 'order_pay_order_type' ]) $data[ 'order_pay_order_type' ] = ',' . $data[ 'order_pay_order_type' ] . ',';
if ($data[ 'take_delivery_order_type' ]) $data[ 'take_delivery_order_type' ] = ',' . $data[ 'take_delivery_order_type' ] . ',';
return $this->response($model->addPrinter($data));
}
/**
* 编辑小票打印
*/
public function edit()
{
$model = new PrinterModel();
$data = [
'printer_id' => $this->params[ 'printer_id' ] ?? 1,
'site_id' => $this->params[ 'site_id' ] ?? 1,
'printer_name' => $this->params[ 'printer_name' ] ?? '',
'brand' => $this->params[ 'brand' ] ?? '',
'printer_code' => $this->params[ 'printer_code' ] ?? '',
'printer_key' => $this->params[ 'printer_key' ] ?? '',
'open_id' => $this->params[ 'open_id' ] ?? '',
'apikey' => $this->params[ 'apikey' ] ?? '',
'store_id' => $this->params[ 'store_id' ] ?? 1,
//订单
'order_pay_open' => $this->params[ 'order_pay_open' ] ?? 0,
'order_pay_template_id' => $this->params[ 'order_pay_template_id' ] ?? 0,
'order_pay_print_num' => $this->params[ 'order_pay_print_num' ] ?? 1,
'order_pay_order_type' => $this->params[ 'order_pay_order_type' ] ?? '',
'take_delivery_open' => $this->params[ 'take_delivery_open' ] ?? 0,
'take_delivery_template_id' => $this->params[ 'take_delivery_template_id' ] ?? 0,
'take_delivery_print_num' => $this->params[ 'take_delivery_print_num' ] ?? 1,
'take_delivery_order_type' => $this->params[ 'take_delivery_order_type' ] ?? '',
'manual_open' => $this->params[ 'manual_open' ] ?? 0,
'template_id' => $this->params[ 'template_id' ] ?? 0,
'print_num' => $this->params[ 'print_num' ] ?? 1,
//充值
'recharge_open' => $this->params[ 'recharge_open' ] ?? 0,
'recharge_template_id' => $this->params[ 'recharge_template_id' ] ?? 0,
'recharge_print_num' => $this->params[ 'recharge_print_num' ] ?? 1,
];
if ($data[ 'order_pay_order_type' ]) {
$data[ 'order_pay_order_type' ] = ',' . $data[ 'order_pay_order_type' ] . ',';
$data[ 'order_pay_order_type' ] = str_replace(',,', ',', $data[ 'order_pay_order_type' ]);
}
if ($data[ 'take_delivery_order_type' ]) {
$data[ 'take_delivery_order_type' ] = ',' . $data[ 'take_delivery_order_type' ] . ',';
$data[ 'take_delivery_order_type' ] = str_replace(',,', ',', $data[ 'take_delivery_order_type' ]);
}
return $this->response($model->editPrinter($data));
}
/*
* 删除
*/
public function deletePrinter()
{
$printer_id = $this->params[ 'printer_id' ] ?? 0;
$store_id = $this->params[ 'store_id' ] ?? 0;
$printer_model = new PrinterModel();
$res = $printer_model->deletePrinter([ [ 'printer_id', '=', $printer_id ], [ 'store_id', '=', $store_id ] ]);
return $this->response($res);
}
/**
* 测试打印
*/
public function testPrint()
{
$printer_id = $this->params[ 'printer_id' ] ?? 0;
$site_id = $this->params[ 'site_id' ] ?? 1;
$print_model = new PrinterOrder();
$res = $print_model->testPrint($printer_id, $site_id);
return $this->response($res);
}
/**
* 刷新token
*/
public function refreshToken()
{
$printer_id = $this->params[ 'printer_id' ] ?? 0;
$site_id = $this->params[ 'site_id' ] ?? 1;
$print_model = new PrinterModel();
$res = $print_model->refreshToken($printer_id, $site_id);
return $this->response($res);
}
}