mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-23 02:45:33 +08:00
650 lines
24 KiB
PHP
650 lines
24 KiB
PHP
<?php
|
|
/**
|
|
* Copyright 2012-2026 ShopeX (https://www.shopex.cn)
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class inventorydepth_mdl_shop_frame extends dbeav_model
|
|
{
|
|
|
|
//var $has_export_cnf = true;
|
|
|
|
public $appendCols = 'iid,shop_id';
|
|
|
|
public $defaultOrder = 'id';
|
|
|
|
public $export_name = '前端店铺商品';
|
|
|
|
function __construct($app)
|
|
{
|
|
parent::__construct($app);
|
|
|
|
$this->app = $app;
|
|
$this->export_name = '前端店铺【'.$_SESSION['shop_name'].'】商品';
|
|
}
|
|
|
|
public function table_name($real=false)
|
|
{
|
|
$table_name = 'shop_items';
|
|
if($real){
|
|
return kernel::database()->prefix.$this->app->app_id.'_'.$table_name;
|
|
}else{
|
|
return $table_name;
|
|
}
|
|
}
|
|
|
|
function searchOptions(){
|
|
$parentOptions = parent::searchOptions();
|
|
$childOptions = array(
|
|
'iid'=>app::get('base')->_('店铺商品ID'),
|
|
);
|
|
return array_merge($childOptions,$parentOptions);
|
|
}
|
|
|
|
public function getFinderList($cols='*', $filter=array(), $offset=0, $limit=-1, $orderType=null)
|
|
{
|
|
$expired = kernel::single('inventorydepth_batchframe')->is_expired();
|
|
$part = true;
|
|
if ($filter['range'] === 'all' && $expired) {
|
|
$part = false; unset($filter['range']);
|
|
$this->appendCols .= ',approve_status';
|
|
$this->updateApproveStatus($filter['shop_id']);
|
|
}
|
|
$list = parent::getList($cols, $filter, $offset, $limit, $orderType);
|
|
|
|
if(!$list) return $list;
|
|
|
|
return $list;
|
|
}
|
|
|
|
public function updateApproveStatus($shop_id)
|
|
{
|
|
$shop = $this->app->model('shop')->getList('shop_id,shop_type,business_type',array('shop_id'=>$shop_id),0,1);
|
|
$shopfactory = inventorydepth_service_shop_factory::createFactory($shop[0]['shop_type'],$shop[0]['business_type']);
|
|
if ($shopfactory === false) {
|
|
$errormsg ='店铺类型有误!'; return false;
|
|
}
|
|
|
|
$offset = 1; $limit = 50; $count = 0;
|
|
do {
|
|
# 请求商品
|
|
$result = $shopfactory->downloadListNOSku(array('approve_status'=>'onsale'),$shop_id,$offset,$limit,$errormsg);
|
|
|
|
$totalResults = $shopfactory->getTotalResults();
|
|
if (empty($result)) {break;}
|
|
|
|
$count += count($result);
|
|
|
|
foreach ($result as $value) {
|
|
if ($value['approve_status'] == 'onsale') {
|
|
$iid[] = $value['iid'] ? $value['iid'] : $value['num_iid'];
|
|
}
|
|
}
|
|
|
|
if ($count>=$totalResults) {
|
|
break;
|
|
}
|
|
|
|
$offset++;
|
|
} while ( true );
|
|
|
|
if ($iid && $shop_id) {
|
|
$this->update(array('approve_status'=>'onsale'),array('iid'=>$iid,'shop_id'=>$shop_id));
|
|
$this->update(array('approve_status'=>'instock'),array('iid|notin'=>$iid,'shop_id'=>$shop_id));
|
|
}
|
|
}
|
|
|
|
public function modifier_detail_url($row)
|
|
{
|
|
return <<<EOF
|
|
<a target='_blank' href='{$row}'>{$row}</a>
|
|
EOF;
|
|
}
|
|
|
|
public function io_title($filter=null,$ioType='csv'){
|
|
switch( $ioType ){
|
|
case 'csv':
|
|
default:
|
|
$this->oSchema['csv']['inventorydepth'] = array(
|
|
'*:商品编码' => 'bn',
|
|
'*:商品名称' => 'title',
|
|
'*:在架状态' => 'approve_status',
|
|
'*:店铺数量' => 'shop_stock',
|
|
'*:淘管数量' => 'actual_stock',
|
|
'*:SKU数' => 'sku_num',
|
|
'*:SKU列表' => 'sku_list',
|
|
'*:店铺名称' => 'shop_name',
|
|
);
|
|
}
|
|
$this->ioTitle[$ioType][$filter] = array_keys( $this->oSchema[$ioType]['inventorydepth'] );
|
|
return $this->ioTitle[$ioType][$filter];
|
|
}
|
|
|
|
public function fgetlist_csv( &$data,$filter,$offset,$exportType = 1 ,$maxOffset = 1000){
|
|
if(!empty($filter['ids'])){
|
|
$filter['id'] = $ids;
|
|
}
|
|
@set_time_limit(0);
|
|
if ($offset>$maxOffset) return false;
|
|
$shop_id = $filter['shop_id'];
|
|
|
|
$shop = $this->app->model('shop')->getList('name,shop_bn,shop_type,shop_id,business_type',$filter,0,1);
|
|
|
|
$shop_bn = $shop[0]['shop_bn'];
|
|
$shop_type = $shop[0]['shop_type'];
|
|
$shop_name = $shop[0]['name'];
|
|
$business_type = $shop[0]['business_type'];
|
|
$shopfactory = inventorydepth_service_shop_factory::createFactory($shop_type,$business_type);
|
|
if ($shopfactory === false) {
|
|
$errormsg = $this->app->_('店铺类型有误!'); return false;
|
|
}
|
|
|
|
if( !$data['title']['inventorydepth'] && $offset == 0){
|
|
if( !$data['title']['inventorydepth'] ){
|
|
$title = array();
|
|
foreach( $this->io_title('inventorydepth') as $k => $v ){
|
|
$title[] = $this->charset->utf2local($v);
|
|
}
|
|
$data['title']['inventorydepth'] = '"'.implode('","',$title).'"';
|
|
}
|
|
|
|
/*
|
|
$approve_status = $shopfactory->get_approve_status();
|
|
foreach ($approve_status as $key=>$value) {
|
|
if ($value['filter']) {
|
|
$this->export_status[] = $value['filter'];
|
|
}
|
|
}*/
|
|
|
|
//$this->offset = 1;
|
|
}
|
|
|
|
//$offset++;
|
|
unset($data['name']);
|
|
/*
|
|
if (empty($this->export_status)) {
|
|
unset($data['name']);
|
|
return false;
|
|
}
|
|
|
|
$items = $this->export_next($shop[0],$shopfactory);
|
|
if($items === false ) {
|
|
unset($data['name']);
|
|
return false;
|
|
}
|
|
|
|
$data['contents'] = $items;
|
|
$this->offset++;
|
|
|
|
return true;*/
|
|
$limit = 100;
|
|
$pageno = $offset*$limit;
|
|
|
|
$itemList = $this->getList('iid,title,approve_status,bn as outer_id,price,shop_store as num',$filter,$pageno,$limit);
|
|
if (empty($itemList)) {
|
|
return false;
|
|
}
|
|
|
|
$result = array(); $itemIIds = array();
|
|
foreach ($itemList as $key=>$value) {
|
|
$iid = strval($value['iid']);
|
|
|
|
$itemIIds[] = $iid;
|
|
$result[$iid] = $value;
|
|
}
|
|
|
|
// 取SKUS
|
|
$skuModel = app::get('inventorydepth')->model('shop_skus');
|
|
$skuList = $skuModel->getList('shop_iid,shop_product_bn as outer_id',array('shop_id'=>$shop_id,'shop_iid'=>$itemIIds));
|
|
foreach ($skuList as $key=>$value) {
|
|
$shop_iid = strval($value['shop_iid']);
|
|
|
|
$result[$shop_iid]['skus']['sku'][] = $value;
|
|
}
|
|
|
|
$rs = $this->formatCsv($items,$result,$shop);
|
|
foreach($items as $v){
|
|
$new_items[] = $this->charset->utf2local($v);
|
|
}
|
|
$items = $new_items;
|
|
if($data['content']['inventorydepth']){
|
|
$data['content']['inventorydepth'] = array_merge($data['content']['inventorydepth'],$items);
|
|
}else{
|
|
$data['content']['inventorydepth'] = $items;
|
|
}
|
|
//$data['content']= $items;
|
|
|
|
return $rs;
|
|
}
|
|
|
|
/**
|
|
* @description
|
|
* @access public
|
|
* @param void
|
|
* @return void
|
|
*/
|
|
public function formatCsv(&$data,$result,$shop = array())
|
|
{
|
|
$salesMaterialObj = app::get('material')->model('sales_material');
|
|
|
|
if(empty($result)) return false;
|
|
$shop_name = $shop[0]['name'];
|
|
$shop_id = $shop[0]['shop_id'];
|
|
$shop_bn = $shop[0]['shop_bn'];
|
|
|
|
$iid = array(); $content = array();
|
|
|
|
$spbn = array();
|
|
foreach($result as $key => $item){
|
|
$iid = $item['iid'] ? $item['iid'] : $item['num_iid'];
|
|
|
|
if ($item['skus']['sku']) {
|
|
foreach ($item['skus']['sku'] as $sku) {
|
|
$spbn[] = $sku['outer_id'];
|
|
}
|
|
} else {
|
|
$spbn[] = $item['outer_id'];
|
|
}
|
|
|
|
$content[strval($iid)] = array(
|
|
'bn' => $item['outer_id'],
|
|
'title' => $item['title'],
|
|
'approve_status' => ($item['approve_status']=='onsale' ? '在售' : '下架'),
|
|
'shop_stock' => intval($item['num']),
|
|
'actual_stock' => '-',
|
|
'sku_num' => '-',
|
|
'sku_list' => '-',
|
|
'shop_name' => $shop_name,
|
|
'download_time' => $item['download_time'],
|
|
'price' => $item['price'],
|
|
'detail_url' => $item['detail_url'],
|
|
);
|
|
}
|
|
$spbn = array_filter($spbn); $skuMapping = array();
|
|
if ($spbn) {
|
|
# [普通]销售物料
|
|
$products = $salesMaterialObj->getList('sm_id,sales_material_name,sales_material_bn,shop_id',array('sales_material_bn'=>$spbn, 'sales_material_type'=>1));
|
|
# [促销]销售物料
|
|
$products_pkg = $salesMaterialObj->getList('sm_id,sales_material_name,sales_material_bn,shop_id',array('sales_material_bn'=>$spbn, 'sales_material_type'=>2));
|
|
# [多选一]销售物料
|
|
$products_pko = $salesMaterialObj->getList('sm_id,sales_material_name,sales_material_bn,shop_id',array('sales_material_bn'=>$spbn, 'sales_material_type'=>5));
|
|
|
|
$products = $products ? $products : array();
|
|
if ($products || $products_pkg || $products_pko) {
|
|
kernel::single('inventorydepth_stock_products')->resetVar()->writeMemory($products);
|
|
kernel::single('inventorydepth_stock_pkg')->resetVar()->writeMemory($products_pkg);
|
|
kernel::single('inventorydepth_stock_pko')->resetVar()->writeMemory($products_pko);
|
|
$list = $this->app->model('shop_adjustment')->getList('shop_product_bn,bind',array('shop_product_bn'=>$spbn,'mapping'=>'1','shop_id'=>$shop_id));
|
|
foreach ($list as $key => $value) {
|
|
$skuMapping[$value['shop_product_bn']] = $value['bind'];
|
|
}
|
|
}
|
|
unset($spbn,$products,$list);
|
|
}
|
|
# END
|
|
|
|
foreach ($result as $key => $item) {
|
|
$iid = $item['iid'] ? strval($item['iid']) : strval($item['num_iid']);
|
|
$shop_product_bn = array(); $pkgFlag = $productFlag = $pkoFlag = array();
|
|
if ($item['skus']['sku']) {
|
|
$content[$iid]['sku_num'] = count($item['skus']['sku'])/1;
|
|
$content[$iid]['sku_list'] = '';
|
|
foreach ($item['skus']['sku'] as $sku) {
|
|
$content[$iid]['sku_list'] .= $sku['outer_id'].'||';
|
|
$shop_product_bn[] = $sku['outer_id'];
|
|
if (isset($skuMapping[$sku['outer_id']]) && $skuMapping[$sku['outer_id']] == 1) {
|
|
$pkgFlag[] = $sku['outer_id'];
|
|
}elseif(isset($skuMapping[$sku['outer_id']]) && $skuMapping[$sku['outer_id']] == 2){
|
|
$pkoFlag[] = $sku['outer_id'];
|
|
}else{
|
|
$productFlag[] = $sku['outer_id'];
|
|
}
|
|
}
|
|
} else {
|
|
$shop_product_bn[] = $item['outer_id'];
|
|
if (isset($skuMapping[$item['outer_id']]) && $skuMapping[$item['outer_id']] == 1) {
|
|
$pkgFlag[] = $item['outer_id'];
|
|
}elseif(isset($skuMapping[$item['outer_id']]) && $skuMapping[$item['outer_id']] == 2){
|
|
$pkoFlag[] = $sku['outer_id'];
|
|
}else{
|
|
$productFlag[] = $item['outer_id'];
|
|
}
|
|
}
|
|
|
|
$shop_product_bn = array_filter($shop_product_bn);
|
|
if ( $shop_product_bn ) {
|
|
$actual_stock = 0;
|
|
|
|
$content[$iid]['actual_stock'] = $actual_stock/1;
|
|
}
|
|
//$data[] = implode( "\t,", $content[$iid] );
|
|
}
|
|
|
|
$data = $content;
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @description
|
|
* @access public
|
|
* @param void
|
|
* @return void
|
|
*/
|
|
public function export_next($shop,$shopfactory)
|
|
{
|
|
if (empty($this->export_status)) {
|
|
return false;
|
|
}
|
|
|
|
$approve_status = $this->export_status[0];
|
|
$result = $this->sdf_export($items,$shop,$approve_status,$this->offset,50,$shopfactory);
|
|
if ($result === false) {
|
|
array_shift($this->export_status);
|
|
$this->offset = 1;
|
|
return $this->export_next($shop,$shopfactory);
|
|
}
|
|
|
|
return $items;
|
|
}
|
|
|
|
|
|
function export_csv($data,$exportType = 1 ){
|
|
$output = array();
|
|
$output[] = $data['title']['inventorydepth'];
|
|
foreach( $data['content']['inventorydepth'] as $k => $val ){
|
|
$output[] = implode("\n",(array)$val);
|
|
}
|
|
echo implode("\n",$output);
|
|
}
|
|
|
|
public function sdf_export(&$data,$shop,$approve_status,$offset,$limit=90,$shopfactory)
|
|
{
|
|
$salesMaterialObj = app::get('material')->model('sales_material');
|
|
|
|
$shop_id = $shop['shop_id']; $shop_bn = $shop['shop_bn'];$shop_name = $shop['name'];
|
|
|
|
$result = $shopfactory->downloadList($approve_status,$shop_id,$offset,$limit,$errormsg);
|
|
|
|
if(empty($result)) return false;
|
|
|
|
$iid = array(); $content = array();
|
|
|
|
$spbn = array();
|
|
foreach($result as $key => $item){
|
|
$iid = $item['iid'] ? $item['iid'] : $item['num_iid'];
|
|
|
|
if ($item['skus']['sku']) {
|
|
foreach ($item['skus']['sku'] as $sku) {
|
|
$spbn[] = $sku['outer_id'];
|
|
}
|
|
} else {
|
|
$spbn[] = $item['outer_id'];
|
|
}
|
|
|
|
$content[strval($iid)] = array(
|
|
'bn' => $item['outer_id'],
|
|
'title' => $item['title'],
|
|
'approve_status' => ($item['approve_status']=='onsale' ? '在售' : '下架'),
|
|
'shop_stock' =>$item['num']/1,
|
|
'actual_stock' => '-',
|
|
'sku_num' => '-',
|
|
'sku_list' => '-',
|
|
'shop_name' => $shop_name,
|
|
);
|
|
}
|
|
$spbn = array_filter($spbn); $skuMapping = array();
|
|
if ($spbn) {
|
|
# [普通]销售物料
|
|
$products = $salesMaterialObj->getList('sm_id,sales_material_name,sales_material_bn,shop_id',array('sales_material_bn'=>$spbn, 'sales_material_type'=>1));
|
|
# [促销]销售物料
|
|
$products_pkg = $salesMaterialObj->getList('sm_id,sales_material_name,sales_material_bn,shop_id',array('sales_material_bn'=>$spbn, 'sales_material_type'=>2));
|
|
# [多选一]销售物料
|
|
$products_pko = $salesMaterialObj->getList('sm_id,sales_material_name,sales_material_bn,shop_id',array('sales_material_bn'=>$spbn, 'sales_material_type'=>5));
|
|
$products = $products ? $products : array();
|
|
if ($products) {
|
|
kernel::single('inventorydepth_stock_products')->resetVar()->writeMemory($products);
|
|
kernel::single('inventorydepth_stock_pkg')->resetVar()->writeMemory($products_pkg);
|
|
kernel::single('inventorydepth_stock_pko')->resetVar()->writeMemory($products_pko);
|
|
$list = $this->app->model('shop_adjustment')->getList('shop_product_bn,bind',array('shop_product_bn'=>$spbn,'mapping'=>'1','shop_id'=>$shop_id));
|
|
foreach ($list as $key => $value) {
|
|
$skuMapping[$value['shop_product_bn']] = $value['bind'];
|
|
}
|
|
}
|
|
|
|
unset($spbn,$products,$list);
|
|
}
|
|
# END
|
|
|
|
foreach ($result as $key => $item) {
|
|
$iid = $item['iid'] ? strval($item['iid']) : strval($item['num_iid']);
|
|
$shop_product_bn = array(); $pkgFlag = $productFlag = $pkoFlag = array();
|
|
|
|
if ($item['skus']['sku']) {
|
|
$content[$iid]['sku_num'] = count($item['skus']['sku'])/1;
|
|
|
|
$content[$iid]['sku_list'] = '';
|
|
foreach ($item['skus']['sku'] as $sku) {
|
|
$content[$iid]['sku_list'] .= $sku['outer_id'].'||';
|
|
$shop_product_bn[] = $sku['outer_id'];
|
|
if (isset($skuMapping[$sku['outer_id']]) && $skuMapping[$sku['outer_id']] == 1) {
|
|
$pkgFlag[] = $sku['outer_id'];
|
|
}elseif(isset($skuMapping[$sku['outer_id']]) && $skuMapping[$sku['outer_id']] == 2){
|
|
$pkoFlag[] = $sku['outer_id'];
|
|
}else{
|
|
$productFlag[] = $sku['outer_id'];
|
|
}
|
|
}
|
|
} else {
|
|
$shop_product_bn[] = $item['outer_id'];
|
|
if (isset($skuMapping[$item['outer_id']]) && $skuMapping[$item['outer_id']] == 1) {
|
|
$pkgFlag[] = $item['outer_id'];
|
|
}elseif(isset($skuMapping[$item['outer_id']]) && $skuMapping[$item['outer_id']] == 2){
|
|
$pkoFlag[] = $item['outer_id'];
|
|
}else{
|
|
$productFlag[] = $item['outer_id'];
|
|
}
|
|
}
|
|
|
|
$shop_product_bn = array_filter($shop_product_bn);
|
|
if ( $shop_product_bn ) {
|
|
$actual_stock = 0;
|
|
|
|
$content[$iid]['actual_stock'] = $actual_stock/1;
|
|
}
|
|
|
|
$data[] = implode( "\t,", $content[$iid] );
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
public function export_test()
|
|
{
|
|
$content = array(
|
|
'bn' => 'testbn',
|
|
'title' => '测试商品',
|
|
'approve_status' => '在售' ,
|
|
'shop_stock' => '200' ,
|
|
'actual_stock' => '200',
|
|
'sku_num' => '1',
|
|
'sku_list' => 'pbn1',
|
|
'shop_name' => '测试店铺',
|
|
);
|
|
|
|
foreach ($content as $kk=>$vv) {
|
|
$content[$kk] = $this->charset->utf2local($vv);
|
|
}
|
|
|
|
$data['inventorydepth'][] = '="'.implode( '","', $content ).'"';
|
|
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* undocumented function
|
|
*
|
|
* @return void
|
|
* @author
|
|
**/
|
|
public function get_schema()
|
|
{
|
|
$schema = parent::get_schema();
|
|
if (isset($schema['columns']['taog_store'])) {
|
|
unset($schema['columns']['taog_store']);
|
|
$k = array_search('taog_store', $schema['default_in_list']);
|
|
if ($k) {
|
|
unset($schema['default_in_list'][$k]);
|
|
}
|
|
$k = array_search('taog_store', $schema['in_list']);
|
|
if ($k) {
|
|
unset($schema['in_list'][$k]);
|
|
}
|
|
}
|
|
if (isset($schema['columns']['shop_store'])) {
|
|
unset($schema['columns']['shop_store']);
|
|
$k = array_search('shop_store', $schema['default_in_list']);
|
|
if ($k) {
|
|
unset($schema['default_in_list'][$k]);
|
|
}
|
|
$k = array_search('shop_store', $schema['in_list']);
|
|
if ($k) {
|
|
unset($schema['in_list'][$k]);
|
|
}
|
|
}
|
|
return $schema;
|
|
}
|
|
|
|
//根据查询条件获取导出数据
|
|
public function getExportDataByCustom($fields, $filter, $has_detail, $curr_sheet, $start, $end, $op_id){
|
|
|
|
//根据选择的字段定义导出的第一行标题
|
|
if($curr_sheet == 1){
|
|
$data['content']['main'][] = $this->getExportTitle($fields);
|
|
}
|
|
|
|
if(!empty($filter['ids'])){
|
|
$filter['id'] = $ids;
|
|
}
|
|
|
|
$shop_id = $filter['shop_id'];
|
|
$shop = $this->app->model('shop')->getList('name,shop_bn,shop_type,shop_id,business_type',$filter,0,1);
|
|
|
|
$shop_bn = $shop[0]['shop_bn'];
|
|
$shop_type = $shop[0]['shop_type'];
|
|
$shop_name = $shop[0]['name'];
|
|
$business_type = $shop[0]['business_type'];
|
|
$shopfactory = inventorydepth_service_shop_factory::createFactory($shop_type,$business_type);
|
|
if ($shopfactory === false) {
|
|
$errormsg = $this->app->_('店铺类型有误!'); return false;
|
|
}
|
|
|
|
unset($data['name']);
|
|
|
|
$itemList = $this->getList('iid,title,approve_status,bn as outer_id,price,shop_store as num,download_time,detail_url,price', $filter, $start, $end);
|
|
if (empty($itemList)) {
|
|
return false;
|
|
}
|
|
|
|
$result = array(); $itemIIds = array();
|
|
foreach ($itemList as $key=>$value) {
|
|
$iid = strval($value['iid']);
|
|
|
|
$itemIIds[] = $iid;
|
|
$result[$iid] = $value;
|
|
}
|
|
|
|
// 取SKUS
|
|
$skuModel = app::get('inventorydepth')->model('shop_skus');
|
|
$skuList = $skuModel->getList('shop_iid,shop_product_bn as outer_id',array('shop_id'=>$shop_id,'shop_iid'=>$itemIIds));
|
|
foreach ($skuList as $key=>$value) {
|
|
$shop_iid = strval($value['shop_iid']);
|
|
$result[$shop_iid]['skus']['sku'][] = $value;
|
|
}
|
|
|
|
$rs = $this->formatCsv($items,$result,$shop);
|
|
|
|
foreach($items as $k => $v){
|
|
$newItem['bn'] = $v['bn'];
|
|
$newItem['title'] = $v['title'];
|
|
$newItem['column_approve_status'] = $v['approve_status'];
|
|
$newItem['shop_stock'] = $v['shop_stock'];
|
|
$newItem['actual_stock'] = $v['actual_stock'];
|
|
$newItem['column_sku_num'] = $v['sku_num'];
|
|
$newItem['sku_list'] = $v['sku_list'];
|
|
//$newItem['column_regulation'] = '';
|
|
$newItem['download_time'] = date('Y-m-d H:i:s',$v['download_time']);
|
|
$newItem['detail_url'] = $v['detail_url'];
|
|
$newItem['price'] = $v['price'];
|
|
$newItem['shop_name'] = $v['shop_name'];
|
|
//$newItem['column_store_statistics'] = '*:前端/总',
|
|
|
|
$exptmp_data = array();
|
|
foreach ($newItem as $key => $col) {
|
|
$newItem[$key] = mb_convert_encoding($newItem[$key], 'GBK', 'UTF-8');
|
|
$exptmp_data[] = $newItem[$key];
|
|
}
|
|
|
|
$data['content']['main'][] = implode(',', $exptmp_data);
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
public function getExportTitle($fields){
|
|
$export_columns = array(
|
|
'bn' => '*: 店铺商品编码',
|
|
'title' => '*:店铺商品名称',
|
|
'column_approve_status' => '*: 商品在架状态',
|
|
'shop_stock' => '*:店铺数量',
|
|
'actual_stock' =>'*:淘管数量',
|
|
'column_sku_num' => '*:SKU数',
|
|
'sku_list'=> '*:SKU列表',
|
|
//'column_regulation' => '*: 应用上下架规则',
|
|
'download_time' => '*: 同步时间',
|
|
'detail_url' => '*:访问URL',
|
|
'price' => '*:销售价',
|
|
'shop_name' => '*:店铺名称',
|
|
//'column_store_statistics' => '*:前端/总',
|
|
);
|
|
|
|
$title = array();
|
|
foreach( $export_columns as $k => $col ){
|
|
$title[] = $export_columns[$k];
|
|
}
|
|
|
|
return mb_convert_encoding(implode(',',$title), 'GBK', 'UTF-8');
|
|
}
|
|
|
|
public function disabled_export_cols(&$cols){
|
|
unset($cols['column_regulation'], $cols['column_store_statistics'], $cols['column_operation']);
|
|
}
|
|
|
|
public function _filter($filter,$tableAlias=null,$baseWhere=null)
|
|
{
|
|
$where = array(1);
|
|
if (isset($filter['iid'])) {
|
|
if (strpos($filter['iid'], "\n") !== false) {
|
|
$iid = array_unique(array_map('trim', array_filter(explode("\n", $filter['iid']))));
|
|
$filter['iid|in'] = $iid;
|
|
unset($filter['iid']);
|
|
}
|
|
}
|
|
|
|
return parent::_filter($filter,$tableAlias,$baseWhere).' AND '.implode(' AND ', $where);
|
|
}
|
|
} |