getPrinterList([ [ 'site_id', '=', $params[ 'site_id' ] ], [ 'store_id', '=', $params[ 'store_id' ] ], [ 'change_shifts_open', '=', 1 ] ])[ 'data' ] ?? [];
if (empty($printer_data)) return error(-1, '未找到可用的打印机');
if (isset($params[ 'record_id' ]) && !empty($params[ 'record_id' ])) {
$shifts_data = ( new Cashier() )->getChangeShiftsRecordInfo([
[ 'r.site_id', '=', $params[ 'site_id' ] ], [ 'r.store_id', '=', $params[ 'store_id' ] ], [ 'r.id', '=', $params[ 'record_id' ] ]
], 'r.*,u.username', 'r', [ [ 'user u', 'r.uid = u.uid', 'inner' ] ])[ 'data' ];
if (empty($shifts_data)) return error(-1, '未查询到交班记录');
$userinfo = [
'username' => $shifts_data[ 'username' ]
];
} else {
$shifts_data = ( new Cashier() )->getShiftsData($params[ 'site_id' ], $params[ 'store_id' ]);
$userinfo = $params[ 'userinfo' ];
}
$res_data = [];
foreach ($printer_data as $k => $v) {
//此处应该根据打印机不同分别设置返回不同的数据。当前为易联云
$array = [];
$array[ 'printer_info' ] = $v;
$template_id = $v[ 'change_shifts_template_id' ];
$print_num = $v[ 'change_shifts_print_num' ];
$print_template_model = new PrinterTemplate();
$print_template = $print_template_model->getPrinterTemplateInfo([ [ 'template_id', '=', $template_id ] ])[ 'data' ];
if (empty($print_template)) continue;
$array[ 'printer_code' ] = $v[ 'printer_code' ]; //商户授权机器码
$array[ 'origin_id' ] = time();
$array[ 'content' ] = $this->handleChangeShiftsPrintContent($print_num, $print_template, $userinfo, $shifts_data);
$res_data[] = $array;
}
return $res_data;
}
}
/**
* 获取收银交班打印内容
* @param $print_num
* @param $print_template
* @param $userinfo
* @param $shifts_data
* @return string
*/
private function handleChangeShiftsPrintContent($print_num, $print_template, $userinfo, $shifts_data)
{
$content = "