mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-23 02:45:33 +08:00
181 lines
7.6 KiB
PHP
181 lines
7.6 KiB
PHP
<?php
|
||
/**
|
||
* Copyright © ShopeX (http://www.shopex.cn). All rights reserved.
|
||
* See LICENSE file for license details.
|
||
*/
|
||
|
||
class logisticsmanager_print_tmpl {
|
||
|
||
/**
|
||
* 上传快递单模板
|
||
*
|
||
* @param object $file 待上传的快递单模板文件
|
||
* @return string 返回上传的消息
|
||
*/
|
||
function upload_tmpl($file){
|
||
|
||
$print_tmplObj = app::get('logisticsmanager')->model('express_template');
|
||
|
||
$extname = strtolower($this->extName($file['name']));
|
||
$tar = kernel::single('ome_utility_tar');
|
||
if($extname=='.dtp'){
|
||
if($tar->openTAR($file['tmp_name'],'') && $tar->containsFile('info')){
|
||
if(!($info = unserialize($tar->getContents($tar->getFile('info'))))){
|
||
$error_msg = "无法读取结构信息,模板包可能已损坏";
|
||
return $error_msg;
|
||
}
|
||
if ($tar->containsFile('background.jpg')){ //包含背景图
|
||
$rand = md5(time());
|
||
if(function_exists('sys_get_temp_dir')){
|
||
$tmpPath = sys_get_temp_dir().'/'.$rand.'.jpg';
|
||
}else{
|
||
$mark = kernel::single('ome_utility_tool');
|
||
$tmpPath = $mark->get_temp_dir().'/'.$rand.'.jpg';
|
||
}
|
||
|
||
file_put_contents($tmpPath,$tar->getContents($tar->getFile('background.jpg')));
|
||
}
|
||
if (file_exists($tmpPath)){//保存图片
|
||
$ss = kernel::single('base_storager');
|
||
$Path = substr($tmpPath,strrpos($tmpPath,'dly_bg_'));
|
||
$file['name'] = $Path;
|
||
$file['type'] = 'image/jpeg';
|
||
$file['size'] = filesize($tmpPath);
|
||
$file['tmp_name'] = $tmpPath;
|
||
$id = $ss->save_upload($file,"file","",$msg);//返回file_id;
|
||
}
|
||
unlink($tmpPath);
|
||
|
||
$tmpl_info['file_id'] = $id;
|
||
|
||
$re = $print_tmplObj->save($info);//保存快递单模板
|
||
|
||
if ($re){
|
||
$error_msg = "success";
|
||
return $error_msg;
|
||
}
|
||
$error_msg = "上传失败";
|
||
return $error_msg;
|
||
}else{
|
||
$error_msg = "无法解压缩,模板包可能已损坏";
|
||
return $error_msg;
|
||
}
|
||
}else{
|
||
$error_msg = "必须是shopex快递单模板包(.dtp)";
|
||
return $error_msg;
|
||
}
|
||
$error_msg = "success";
|
||
return $error_msg;
|
||
}
|
||
/*
|
||
* 提取扩展名
|
||
*/
|
||
function extName($file){
|
||
return substr($file,strrpos($file,'.'));
|
||
}
|
||
|
||
/*
|
||
* 格式化新版发货单的总计数据
|
||
*/
|
||
function formatDeliveryPrintTotal($template_select_data,$type ='edit'){
|
||
$template_select = '';
|
||
if($type=='edit'){
|
||
$template_select_arr = !empty($template_select_data) ? unserialize($template_select_data) : array();
|
||
foreach($template_select_arr as $key=>$value){
|
||
if(empty($template_select)){
|
||
$template_select = $key.':'.$value;
|
||
}else{
|
||
$template_select .= ','.$key.':'.$value;
|
||
}
|
||
}
|
||
}else{
|
||
$template_select_temp = !empty($template_select_data) ? explode(',',$template_select_data) : array();
|
||
foreach($template_select_temp as $value){
|
||
$temp = explode(':',$value);
|
||
$template_select[$temp[0]] = $temp[1];
|
||
}
|
||
}
|
||
return $template_select;
|
||
}
|
||
|
||
#保存模板(快递、发货、备货)公共部分
|
||
/**
|
||
* 保存
|
||
* @param mixed $params 参数
|
||
* @return mixed 返回操作结果
|
||
*/
|
||
public function save($params) {
|
||
$data = array(
|
||
'out_template_id' => $params['out_template_id'] ? $params['out_template_id'] : 0,
|
||
'template_name' => $params['template_name'],
|
||
'template_type' => $params['template_type'],
|
||
'status' => $params['status'] ? $params['status'] : 'true',
|
||
'template_width' => $params['template_width'],
|
||
'template_height' => $params['template_height'],
|
||
'file_id' => $params['file_id'] ? $params['file_id'] : 0,
|
||
'is_logo' => $params['is_logo'] ? $params['is_logo'] : 'true',
|
||
'template_select' => $params['template_select'] ? serialize($params['template_select']) : null,
|
||
'template_data' => $params['template_data'],
|
||
'is_default' => isset($params['is_default']) ? $params['is_default'] : 'false',
|
||
'page_type' => isset($params['page_type']) ? $params['page_type'] : '1',
|
||
'aloneBtn' => isset($params['aloneBtn']) ? $params['aloneBtn'] : 'false',
|
||
'btnName' => $params['btnName'],
|
||
'source' => $params['source'] ? $params['source'] : 'local',
|
||
'cp_code' => (string)$params['cp_code'],
|
||
'control_type' => $params['control_type'] ? $params['control_type'] : 'shopexplugin',
|
||
);
|
||
|
||
if ($data['template_name'] == ''){
|
||
switch ($data['template_type']) {
|
||
case 'delivery':
|
||
$title = '请输入发货单名称';
|
||
break;
|
||
case 'stock':
|
||
$title = '请输入备货单名称';
|
||
break;
|
||
default :
|
||
$title = '请输入快递单名称';
|
||
break;
|
||
}
|
||
return array('rs'=>'fail', 'msg'=>$title);
|
||
}
|
||
if (!in_array($data['template_type'],array('normal', 'electron', 'delivery', 'stock','cainiao', 'cainiao_standard', 'cainiao_user', 'pdd_standard', 'pdd_user','jd_standard','jd_user', 'douyin_standard', 'douyin_user','kuaishou_standard','kuaishou_user','wphvip_standard','wphvip_user','sf','xhs_standard','xhs_user','wxshipin_standard','wxshipin_user','dewu_ppzf','dewu_ppzf_zy','meituan4bulkpurchasing_user','youzan_standard'))) {
|
||
return array('rs'=>'fail', 'msg'=>'面单类型不符合规则!');
|
||
}
|
||
if(!$data['template_width'] || !$data['template_height']){
|
||
if($data['file_id']>0){
|
||
$bgUrl = $this->getImgUrl($data['file_id']);
|
||
list($width, $height) = getimagesize($bgUrl);
|
||
if($width && $height){
|
||
$data['template_width'] = intval($width*25.4/96);
|
||
$data['template_height'] = intval($height*25.4/96);
|
||
}
|
||
} else {
|
||
// false就给dbschema的默认值
|
||
!$data['template_width'] && $data['template_width'] = 100;
|
||
!$data['template_height'] && $data['template_height'] = 100;
|
||
}
|
||
}
|
||
$templateObj = app::get('logisticsmanager')->model('express_template');
|
||
if ($params['template_id']){
|
||
$filter = array('template_id' => $params['template_id']);
|
||
$re = $templateObj->update($data,$filter );
|
||
$data['template_id'] = $params['template_id'];
|
||
}else {
|
||
$re = $templateObj->insert($data);
|
||
}
|
||
return $re ? array('rs'=>"succ", 'data'=>$data) : array('rs'=>'fail', 'msg'=>'保存失败');
|
||
}
|
||
|
||
/**
|
||
* 获取ImgUrl
|
||
* @param mixed $file file
|
||
* @return mixed 返回结果
|
||
*/
|
||
public function getImgUrl($file){
|
||
$ss = kernel::single('base_storager');
|
||
$url = $ss->getUrl($file,"file");
|
||
|
||
return $url;
|
||
}
|
||
} |