| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 | <?phpnamespace Mshop\Lib;use Dever;class Feieyun{    private $config = array    (        //飞鹅云后台注册账号        'user' => 'liuxuemei@zsma.com.cn',        //飞鹅云后台注册账号后生成的UKEY        'ukey' => 'pMsXhZWu5F65MYyV',        //host地址        'host' => 'http://api.feieyun.cn:80/Api/Open/',        //可打印的长度        'length' => 32,    );    private $text = '';    # 生成参数    public function param($api, $send = array())    {        $time = time();        $param['user'] = $this->config['user'];        $param['stime'] = $time;        $param['sig'] = sha1($this->config['user'] . $this->config['ukey'] . $time);        $param['apiname'] = $api;        $param = array_merge($param, $send);        return $param;    }    # 发送    public function send($api, $send)    {        $url = $this->config['host'];        $param = $this->param($api, $send);        $result = Dever::curl($url, $param, 'post');        $result = Dever::json_decode($result);        if (isset($result['data']) && $result['data'] && isset($result['data'])) {        	return $result['data'];        }        if (isset($result['msg'])) {        	return $result['msg'];        }        return 'error';    }    # 添加打印机    public function add($data)    {      	$content = array();      	foreach ($data as $k => $v) {      		$content[] = $v['number'] . '#' . $v['key'] . '#' . $v['name'] . '#' . $v['phonenum'];      	}      	$content = implode('\n', $content);      	$send['printerContent'] = $content;      	$result = $this->send('Open_printerAddlist', $send);        return $result;    }    # 编辑打印机    public function edit($sn, $name, $phonenum)    {      	$send['sn'] = $sn;      	$send['name'] = $name;      	if ($phonenum && $phonenum != 'null') {      		$send['phonenum'] = $phonenum;      	}      	      	$result = $this->send('Open_printerEdit', $send);        return $result;    }    # 删除打印机    public function del($data)    {      	$content = array();      	foreach ($data as $k => $v) {      		$content[] = $v['number'];      	}      	$content = implode('-', $content);      	$send['snlist'] = $content;      	$result = $this->send('Open_printerDelList', $send);        return $result;    }    # 打印订单    public function printOrder($sn, $content, $times)    {    	$send['sn'] = $sn;    	$send['content'] = $content;    	$send['times'] = $times;      	$result = $this->send('Open_printMsg', $send);      	return $result;    }    # 打印标签机订单    public function printLabelOrder($sn, $content, $times)    {    	$send['sn'] = $sn;    	$send['content'] = $content;    	$send['times'] = $times;      	$result = $this->send('Open_printLabelMsg', $send);      	return $result;    }    # 清空待打印订单接口    public function delOrder($sn)    {    	$send['sn'] = $sn;      	$result = $this->send('Open_delPrinterSqs', $send);      	return $result;    }    # 查询订单是否打印成功接口    public function order($id)    {    	$send['orderid'] = $id;      	$result = $this->send('Open_queryOrderState', $send);      	return $result;    }    # 查询指定打印机某天的订单统计数接口    public function stat($sn, $date)    {		$send['sn'] = $sn;		$send['date'] = $date;		$result = $this->send('Open_queryOrderInfoByDate', $send);		return $result;    }    # 获取某台打印机状态接口    public function status($sn)    {		$send['sn'] = $sn;		$result = $this->send('Open_queryPrinterStatus', $send);		return $result;    }    public function getText()    {        return $this->text;    }    public function text($text = '', $align = '', $br = 1)    {        if ($align) {        	$text = '<'.$align.'>'.$text.'</'.$align.'>';        }        $this->text .= $text;        if ($br > 0) {        	$this->br($br);        }        return $this;    }    public function left($text)    {        $this->text($text);        return $this;    }    public function right($text)    {        $this->text($text, 'RIGHT');        return $this;    }    public function center($text)    {        $this->text($text, 'C');        return $this;    }    public function hr($str = '-', $name = '')    {        $text = str_pad($name, $this->config['length'], $str, STR_PAD_BOTH);        $this->text($text);        return $this;    }    public function br($num = 1)    {        for ($i = 0; $i < $num; $i++) {            $this->text .= '<BR>';        }        return $this;    }    # 左右结构    public function lr($s1, $s2)    {    	$l1 = strlen(Dever::convert($s1));        $n = '';        $max = $this->config['length'] - 6;        if ($l1 > $max) {            $max = $max/2;            $t = mb_substr($s1, 0, $max, 'utf-8');            $n = mb_substr($s1, $max, $l1, 'utf-8');            $s1 = $t;            $l1 = strlen(Dever::convert($s1));        }        $l2 = strlen(Dever::convert($s2));        $l = $this->config['length'] - ($l1+$l2);        $k = '';        for($i = 0; $i < $l; $i++) {            $k .= ' ';        }        $text = $s1 . $k . $s2;        $this->text($text);        return $n;    }    # 左中右结构    public function lcr($s1, $s2, $s3, $s1_s2 = 80, $s2_s3 = 20)    {        $s1_s2 = round(($s1_s2/100)*$this->config['length']);        $s2_s3 = round(($s2_s3/100)*$this->config['length']);        $l1 = strlen(Dever::convert($s1));        $n = '';        $max = $s1_s2 - ($s1_s2 - $s2_s3)/2;        if ($l1 > $max) {            $max = $max/2;            $t = mb_substr($s1, 0, $max, 'utf-8');            $n = mb_substr($s1, $max, $l1, 'utf-8');            $s1 = $t;            $l1 = strlen(Dever::convert($s1));        }        $l2 = strlen(Dever::convert($s2));        $l3 = strlen(Dever::convert($s3));        $l = $s1_s2 - ($l1+$l2);        $k = '';        for($i = 0; $i < $l; $i++) {            $k .= ' ';        }        $text = $s1 . $k . $s2;                $l = $s2_s3 - $l3;        $k = '';        for($i = 0; $i < $l; $i++) {            $k .= ' ';        }        $text .= $k . $s3;        $this->text($text);        return $n;    }    # 表格    public function table($head, $body, $name, $method = 'lcr')    {        $this->hr();        if ($name) {            $this->center($name);        }        call_user_func_array(array($this, $method), $head);        $next = '';        foreach ($body as $k => $v) {            $next = call_user_func_array(array($this, $method), $v);            if ($next) {                $this->left($next);            }        }        $this->hr();    }}
 |