其余文件

This commit is contained in:
2026-04-14 17:46:22 +08:00
parent 294b68fe37
commit 3691f4db22
1343 changed files with 189847 additions and 0 deletions

View File

@ -0,0 +1,199 @@
<?php
// +----------------------------------------------------------------------
// | LikeShop有特色的全开源社交分销电商系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 商业用途务必购买系统授权,以免引起不必要的法律纠纷
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | 微信公众号:好象科技
// | 访问官网http://www.likeshop.net
// | 访问社区http://bbs.likeshop.net
// | 访问手册http://doc.likeshop.net
// | 好象科技开发团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | Author: LikeShopTeam
// +----------------------------------------------------------------------
namespace app\common\server;
use App\Api\PrinterService;
use App\Api\PrintService;
use App\Oauth\YlyOauthClient;
use App\Config\YlyConfig;
use think\facade\Cache;
class YlyPrinter
{
private $client_id = '';
private $client_secret = '';
private $yly_config = '';
protected $access_token = '';
protected $shop_id = 0;
public function __construct($client_id = '', $client_secret = '', $shop_id = 0)
{
$this->client_id = $client_id; //应用id
$this->client_secret = $client_secret; // 应用密钥
$this->shop_id = $shop_id;
$this->yly_config = new YlyConfig($this->client_id, $this->client_secret);
// $this->access_token = Cache::get('yly_access_token' . $shop_id);
$this->access_token = Cache::get('yly_access_token' . $this->client_id);
//没有access_token时获取
if (empty($this->access_token)) {
$this->getToken();
}
}
/**
* Notes:获取access_token
* @return mixed
*/
public function getToken()
{
$client = new YlyOauthClient($this->yly_config);
$token = $client->getToken();
$this->access_token = $token->access_token;
// Cache::tag('yly_printer')->set('yly_access_token' . $this->shop_id, $this->access_token);
Cache::tag('yly_printer')->set('yly_access_token' . $this->client_id, $this->access_token);
//刷新token、有效期35天(自用型刷新token作用不大)
// Cache::tag('yly_printer')->set('yly_refresh_token' . $this->shop_id, $token->refresh_token, 35 * 24 * 3600);
Cache::tag('yly_printer')->set('yly_refresh_token' . $this->client_id, $token->refresh_token, 35 * 24 * 3600);
}
/**
* Notes:刷新access_token
* @return mixed
*/
public function refreshToken()
{
$client = new YlyOauthClient($this->yly_config);
// $token = $client->refreshToken(Cache::get('yly_refresh_token' . $this->shop_id));
$token = $client->refreshToken(Cache::get('yly_refresh_token' . $this->client_id));
$this->access_token = $token->access_token;
//重置token
// Cache::tag('yly_printer')->set('yly_access_token' . $this->shop_id, $this->access_token);
Cache::tag('yly_printer')->set('yly_access_token' . $this->client_id, $this->access_token);
// Cache::tag('yly_printer')->set('yly_refresh_token' . $this->shop_id, $token->refresh_token, 35 * 24 * 3600);
Cache::tag('yly_printer')->set('yly_refresh_token' . $this->client_id, $token->refresh_token, 35 * 24 * 3600);
}
/**
* Notes: 添加打印机
* @param string $machine_code 终端号
* @param string $msign 秘钥
* @param string $print_name 打印机名称
* @return bool|string
*/
public function addPrinter($machine_code, $msign, $print_name)
{
$print = new PrinterService($this->access_token, $this->yly_config);
$response = $print->addPrinter($machine_code, $msign, $print_name);
return $response;
}
/**
* Notes:删除打印机
* @param string $machine_code 终端号
* @return bool|string
*/
public function deletePrinter($machine_code)
{
$print = new PrinterService($this->access_token, $this->yly_config);
$print->deletePrinter($machine_code);
}
/**
* Notes: 设置logo
* @param string $machine_code 终端号
* @param string $url logo
*/
public function setIcon($machine_code, $url)
{
$print = new PrinterService($this->access_token, $this->yly_config);
$print->setIcon($machine_code, $url);
}
/**
* Notes:获取终端状态
* @param string $machine_code 终端号
*/
public function getPrintStatus($machine_code)
{
$print = new PrinterService($this->access_token, $this->yly_config);
$response = $print->getPrintStatus($machine_code);
return $response;
}
/**
* @notes
* @param array $printer_list
* @param $order
* @param $template_config
* @author 段誉
* @date 2022/1/20 11:19
*/
public function ylyPrint($printer_list, $order, $template_config)
{
$print = new PrintService($this->access_token, $this->yly_config);
$order['title'] = $template_config['title'] ?? '';
$order['qr_code'] = $template_config['qr_code_link'] ?? '';
$order['remark'] = $template_config['remark'] ?? '';
foreach ($printer_list as $printer) {
if ($printer['machine_code']) {
$content = "<MN>" . $printer['print_number'] . "</MN>";
if ($order['title']) {
$content .= "<FS2><center>" . $order['title'] . "</center></FS2>";
}
$content .= PHP_EOL;
$content .= "下单时间:" . date("Y-m-d H:i") . PHP_EOL;
$content .= "订单编号:" . $order['order_sn'] . PHP_EOL;
$content .= PHP_EOL;
$content .= "<FS2>收货信息</FS2>" . PHP_EOL;
$content .= PHP_EOL;
$content .= "联系人:" . $order['consignee'] . PHP_EOL;
$content .= "手机号码:" . $order['mobile'] . PHP_EOL;
$content .= "收货地址:" . $order['delivery_address'] . PHP_EOL;
$content .= PHP_EOL;
$content .= "<FS2>商品信息</FS2>" . PHP_EOL;
$content .= str_repeat('-', 32) . PHP_EOL;
foreach ($order['order_goods'] as $goods) {
$content .= $goods['goods_name'] . PHP_EOL;
$content .= $goods['spec_value'] . " " . "x" . $goods['goods_num'] . " " . $goods['goods_price'] . PHP_EOL;
$content .= PHP_EOL;
}
$content .= str_repeat('-', 32) . PHP_EOL;
$content .= "商品金额:¥" . $order['goods_price'] . PHP_EOL;
$content .= "优惠:¥" . round($order['discount_amount'] + $order['member_amount'], 2) . PHP_EOL;
$content .= "运费:¥" . $order['shipping_price'] . PHP_EOL;
$content .= "合计:¥" . $order['order_amount'] . PHP_EOL;
$content .= PHP_EOL;
if ($order['user_remark']) {
$content .= '订单备注:' . $order['user_remark'] . PHP_EOL;
}
$content .= PHP_EOL;
//二维码
if ($order['qr_code']) {
$content .= "<QR>" . $order['qr_code'] . "</QR>" . PHP_EOL;
}
if ($order['remark']) {
$content .= "<center>" . $order['remark'] . "</center>" . PHP_EOL;
}
$print->index($printer['machine_code'], $content, $order['order_sn']);
}
}
}
}