You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
978 lines
38 KiB
978 lines
38 KiB
<?php
|
|
|
|
/**
|
|
* shopex4.7转换程序插件
|
|
* ============================================================================
|
|
* * 版权所有 2005-2016 上海商创网络科技有限公司,并保留所有权利。
|
|
* 网站地址: http://www.ecmoban.com;
|
|
* ----------------------------------------------------------------------------
|
|
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
|
|
* 使用;不允许对程序代码以任何形式任何目的的再发布。
|
|
* ============================================================================
|
|
* $Author: liubo $
|
|
* $Id: shopex47.php 17217 2011-01-19 06:29:08Z liubo $
|
|
*/
|
|
|
|
if (!defined('IN_ECS'))
|
|
{
|
|
die('Hacking attempt');
|
|
}
|
|
|
|
/**
|
|
* 模块信息
|
|
*/
|
|
if (isset($set_modules) && $set_modules == TRUE)
|
|
{
|
|
$i = isset($modules) ? count($modules) : 0;
|
|
|
|
/* 代码 */
|
|
$modules[$i]['code'] = basename(__FILE__, '.php');
|
|
|
|
/* 描述对应的语言项 */
|
|
$modules[$i]['desc'] = 'shopex47_desc';
|
|
|
|
/* 作者 */
|
|
$modules[$i]['author'] = 'ECSHOP R&D TEAM';
|
|
|
|
return;
|
|
}
|
|
|
|
/* 类 */
|
|
class shopex47
|
|
{
|
|
/* 数据库连接 ADOConnection 对象 */
|
|
var $sdb;
|
|
|
|
/* 表前缀 */
|
|
var $sprefix;
|
|
|
|
/* 原系统根目录 */
|
|
var $sroot;
|
|
|
|
/* 新系统根目录 */
|
|
var $troot;
|
|
|
|
/* 新系统网站根目录 */
|
|
var $tdocroot;
|
|
|
|
/* 原系统字符集 */
|
|
var $scharset;
|
|
|
|
/* 新系统字符集 */
|
|
var $tcharset;
|
|
|
|
/* 构造函数 */
|
|
function shopex47(&$sdb, $sprefix, $sroot, $scharset = 'UTF8')
|
|
{
|
|
$this->sdb = $sdb;
|
|
$this->sprefix = $sprefix;
|
|
$this->sroot = $sroot;
|
|
$this->troot = str_replace('/includes/modules/convert', '', str_replace('\\', '/', dirname(__FILE__)));
|
|
$this->tdocroot = str_replace('/' . ADMIN_PATH, '', dirname(PHP_SELF));
|
|
$this->scharset = $scharset;
|
|
if (EC_CHARSET == 'utf-8')
|
|
{
|
|
$tcharset = 'UTF8';
|
|
}
|
|
elseif (EC_CHARSET == 'gbk')
|
|
{
|
|
$tcharset = 'GB2312';
|
|
}
|
|
$this->tcharset = $tcharset;
|
|
}
|
|
|
|
/**
|
|
* 需要转换的表(用于检查数据库是否完整)
|
|
* @return array
|
|
*/
|
|
function required_tables()
|
|
{
|
|
return array(
|
|
$this->sprefix.'mall_offer_pcat',$this->sprefix.'mall_brand',$this->sprefix.'mall_goods',$this->sprefix.'mall_offer_linkgoods', $this->sprefix.'mall_member_level',$this->sprefix.'mall_member',$this->sprefix.'mall_offer_p',$this->sprefix.'mall_offer_deliverarea',$this->sprefix.'mall_offer_t',$this->sprefix.'mall_offer_ncat',$this->sprefix.'mall_offer_ncon',$this->sprefix.'mall_offer_link',
|
|
$this->sprefix.'mall_orders',$this->sprefix.'mall_items',$this->sprefix.'mall_offer',
|
|
);
|
|
}
|
|
|
|
/**
|
|
* 必需的目录
|
|
* @return array
|
|
*/
|
|
function required_dirs()
|
|
{
|
|
return array(
|
|
'/syssite/home/shop/1/pictures/brandimg/',
|
|
'/syssite/home/shop/1/pictures/newsimg/',
|
|
'/syssite/home/shop/1/pictures/productsimg/big/',
|
|
'/syssite/home/shop/1/pictures/productsimg/small/',
|
|
'/syssite/home/shop/1/pictures/linkimg/',
|
|
'/cert/',
|
|
);
|
|
}
|
|
|
|
/**
|
|
* 下一步操作:空表示结束
|
|
* @param string $step 当前操作:空表示开始
|
|
* @return string
|
|
*/
|
|
function next_step($step)
|
|
{
|
|
/* 所有操作 */
|
|
$steps = array(
|
|
'' => 'step_file',
|
|
'step_file' => 'step_cat',
|
|
'step_cat' => 'step_brand',
|
|
'step_brand' => 'step_goods',
|
|
'step_goods' => 'step_users',
|
|
'step_users' => 'step_article',
|
|
'step_article' => 'step_order',
|
|
'step_order' => 'step_config',
|
|
'step_config' => '',
|
|
);
|
|
|
|
return $steps[$step];
|
|
}
|
|
|
|
/**
|
|
* 执行某个步骤
|
|
* @param string $step
|
|
*/
|
|
function process($step)
|
|
{
|
|
$func = str_replace('step', 'process', $step);
|
|
return $this->$func();
|
|
}
|
|
|
|
/**
|
|
* 复制文件
|
|
* @return 成功返回true,失败返回错误信息
|
|
*/
|
|
function process_file()
|
|
{
|
|
/* 复制品牌图片 */
|
|
$from = $this->sroot . '/syssite/home/shop/1/pictures/brandimg/';
|
|
$to = $this->troot . '/data/brandlogo/';
|
|
copy_files($from, $to);
|
|
|
|
/* 复制 html 编辑器的图片 */
|
|
$from = $this->sroot . '/syssite/home/shop/1/pictures/newsimg/';
|
|
$to = $this->troot . '/images/upload/Image/';
|
|
copy_files($from, $to);
|
|
|
|
/* 复制商品图片 */
|
|
$to = $this->troot . '/images/' . date('Ym') . '/';
|
|
|
|
$from = $this->sroot . '/syssite/home/shop/1/pictures/productsimg/big/';
|
|
copy_files($from, $to, 'big_');
|
|
|
|
$from = $this->sroot . '/syssite/home/shop/1/pictures/productsimg/small/';
|
|
copy_files($from, $to, 'small_');
|
|
|
|
$from = $this->sroot . '/syssite/home/shop/1/pictures/productsimg/big/';
|
|
copy_files($from, $to, 'original_');
|
|
|
|
/* 复制友情链接图片 */
|
|
$from = $this->sroot . '/syssite/home/shop/1/pictures/linkimg/';
|
|
$to = $this->troot . '/data/afficheimg/';
|
|
copy_files($from, $to);
|
|
|
|
/* 复制证书 */
|
|
$from = $this->sroot . '/cert/';
|
|
$to = $this->troot . '/cert/';
|
|
copy_files($from, $to);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
/**
|
|
* 商品分类
|
|
* @return 成功返回true,失败返回错误信息
|
|
*/
|
|
function process_cat()
|
|
{
|
|
global $db, $ecs;
|
|
|
|
/* 清空分类、商品类型、属性 */
|
|
truncate_table('category');
|
|
truncate_table('goods_type');
|
|
truncate_table('attribute');
|
|
|
|
/* 查询分类并循环处理 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_offer_pcat";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$cat = array();
|
|
$cat['cat_id'] = $row['catid'];
|
|
$cat['cat_name'] = $row['cat'];
|
|
$cat['parent_id'] = $row['pid'];
|
|
$cat['sort_order'] = $row['catord'];
|
|
|
|
/* 插入分类 */
|
|
if (!$db->autoExecute($ecs->table('category'), $cat, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 查询商品类型并循环处理 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_prop_category";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$type = array();
|
|
$type['cat_id'] = $row['prop_cat_id'];
|
|
$type['cat_name'] = $row['cat_name'];
|
|
$type['enabled'] = '1';
|
|
if (!$db->autoExecute($ecs->table('goods_type'), $type, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 查询属性值并循环处理 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_prop WHERE prop_type = 'propvalue'";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$attr = array();
|
|
$attr['attr_id'] = $row['prop_id'];
|
|
$attr['attr_name'] = $row['prop_name'];
|
|
$attr['cat_id'] = $row['prop_cat_id'];
|
|
$attr['sort_order'] = $row['ordnum'];
|
|
$attr['attr_input_type'] = '1';
|
|
$attr['attr_type'] = '1';
|
|
|
|
$sql = "SELECT DISTINCT prop_value FROM ".$this->sprefix."mall_prop_value WHERE prop_id = '$row[prop_id]'";
|
|
$attr['attr_values']= join("\n", $this->sdb->getCol($sql));
|
|
if (!$db->autoExecute($ecs->table('attribute'), $attr, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 返回成功 */
|
|
return TRUE;
|
|
}
|
|
|
|
/**
|
|
* 品牌
|
|
* @return 成功返回true,失败返回错误信息
|
|
*/
|
|
function process_brand()
|
|
{
|
|
global $db, $ecs;
|
|
|
|
/* 清空品牌 */
|
|
truncate_table('brand');
|
|
|
|
/* 查询品牌并插入 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_brand";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$brand = array(
|
|
'brand_name' => $row['brand_name'],
|
|
'brand_desc' => '',
|
|
'site_url' => ecs_iconv($this->scharset, $this->tcharset, addslashes($row['brand_site_url'])),
|
|
'brand_logo' => ecs_iconv($this->scharset, $this->tcharset, addslashes($row['brand_logo']))
|
|
);
|
|
if (!$db->autoExecute($ecs->table('brand'), $brand, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 返回成功 */
|
|
return TRUE;
|
|
}
|
|
|
|
/**
|
|
* 商品
|
|
* @return 成功返回true,失败返回错误信息
|
|
*/
|
|
function process_goods()
|
|
{
|
|
global $db, $ecs;
|
|
|
|
/* 清空商品、商品扩展分类、商品属性、商品相册、关联商品、组合商品、赠品 */
|
|
truncate_table('goods');
|
|
truncate_table('goods_cat');
|
|
truncate_table('goods_attr');
|
|
truncate_table('goods_gallery');
|
|
truncate_table('link_goods');
|
|
truncate_table('group_goods');
|
|
|
|
/* 查询品牌列表 name => id */
|
|
$brand_list = array();
|
|
$sql = "SELECT brand_id, brand_name FROM " . $ecs->table('brand');
|
|
$res = $db->query($sql);
|
|
while ($row = $db->fetchRow($res))
|
|
{
|
|
$brand_list[$row['brand_name']] = $row['brand_id'];
|
|
}
|
|
|
|
/* 取得商店设置 */
|
|
$sql = "SELECT offer_pointtype, offer_pointnum FROM ".$this->sprefix."mall_offer WHERE offerid = '1'";
|
|
$config = $this->sdb->getRow($sql);
|
|
|
|
/* 取得商品分类对应的商品类型 */
|
|
$cat_type_list = array();
|
|
$sql = "SELECT catid, prop_cat_id FROM ".$this->sprefix."mall_offer_pcat";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$cat_type_list[$row['catid']] = $row['prop_cat_id'];
|
|
}
|
|
|
|
/* 查询商品并处理 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_goods";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$goods = array();
|
|
|
|
if ($row['ifobject'] == '0')
|
|
{
|
|
/* 虚拟商品 */
|
|
$goods['is_real'] = '0';
|
|
}
|
|
elseif ($row['ifobject'] == '1')
|
|
{
|
|
/* 实体商品 */
|
|
$goods['is_real'] = '1';
|
|
}
|
|
elseif ($row['ifobject'] == '2')
|
|
{
|
|
/* 数字文件,暂时无法转换 */
|
|
continue;
|
|
}
|
|
elseif ($row['ifobject'] == '3')
|
|
{
|
|
/* 捆绑销售,暂时无法转换 */
|
|
continue;
|
|
}
|
|
else
|
|
{
|
|
/* 未知,无法转换 */
|
|
continue;
|
|
}
|
|
$goods['goods_id'] = $row['gid'];
|
|
$goods['cat_id'] = $row['catid'];
|
|
$goods['goods_sn'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['bn']));
|
|
$goods['goods_name'] = $row['goods'];
|
|
$goods['brand_id'] = trim($row['brand']) == '' ? '0' : $brand_list[ecs_iconv($this->scharset, $this->tcharset, addslashes($row['brand']))];
|
|
$goods['goods_number'] = $row['storage'];
|
|
$goods['goods_weight'] = $row['weight'];
|
|
$goods['market_price'] = $row['priceintro'];
|
|
$goods['shop_price'] = $row['ifdiscreteness'] == '1' ? $row['basicprice'] : $row['price'];
|
|
if ($row['tejia2'] == '1')
|
|
{
|
|
$goods['promote_price'] = $goods['shop_price'];
|
|
$goods['promote_start_date'] = gmtime();
|
|
$goods['promote_end_date'] = gmstr2time('+1 weeks');
|
|
}
|
|
$goods['warn_number'] = $row['ifalarm'] == '1' ? $row['alarmnum'] : '0';
|
|
$goods['goods_brief'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['intro']));
|
|
$goods['goods_desc'] = str_replace('pictures/newsimg/', $this->tdocroot . '/images/upload/Image/', ecs_iconv($this->scharset, $this->tcharset, addslashes($row['memo'])));
|
|
$goods['is_on_sale'] = $row['shop_iffb'];
|
|
$goods['is_alone_sale'] = $row['onsale'];
|
|
$goods['add_time'] = $row['uptime'];
|
|
$goods['sort_order'] = $row['offer_ord'];
|
|
$goods['is_delete'] = '0';
|
|
$goods['is_best'] = $row['recommand2'];
|
|
$goods['is_new'] = $row['new2'];
|
|
$goods['is_hot'] = $row['hot2'];
|
|
$goods['is_promote'] = $row['tejia2'];
|
|
$goods['goods_type'] = isset($cat_type_list[$row['catid']]) ? $cat_type_list[$row['catid']] : 0;
|
|
$goods['last_update'] = gmtime();
|
|
|
|
/* 图片:如果没有本地文件,取远程图片 */
|
|
$file = $this->troot . '/images/' . date('Ym') . '/small_' . $row['gid'];
|
|
if (file_exists($file. '.jpg'))
|
|
{
|
|
$goods['goods_thumb'] = 'images/' . date('Ym') . '/small_' . $row['gid'] . '.jpg';
|
|
}
|
|
elseif (file_exists($file. '.jpeg'))
|
|
{
|
|
$goods['goods_thumb'] = 'images/' . date('Ym') . '/small_' . $row['gid'] . '.jpeg';
|
|
}
|
|
elseif (file_exists($file. '.gif'))
|
|
{
|
|
$goods['goods_thumb'] = 'images/' . date('Ym') . '/small_' . $row['gid'] . '.gif';
|
|
}
|
|
elseif (file_exists($file. '.png'))
|
|
{
|
|
$goods['goods_thumb'] = 'images/' . date('Ym') . '/small_' . $row['gid'] . '.png';
|
|
}
|
|
else
|
|
{
|
|
$goods['goods_thumb'] = $row['smallimgremote'];
|
|
}
|
|
|
|
$file = $this->troot . '/images/' . date('Ym') . '/big_' . $row['gid'];
|
|
if (file_exists($file. '.jpg'))
|
|
{
|
|
$goods['goods_img'] = 'images/' . date('Ym') . '/big_' . $row['gid'] . '.jpg';
|
|
$goods['original_img'] = 'images/' . date('Ym') . '/original_' . $row['gid'] . '.jpg';
|
|
}
|
|
elseif (file_exists($file. '.jpeg'))
|
|
{
|
|
$goods['goods_img'] = 'images/' . date('Ym') . '/big_' . $row['gid'] . '.jpeg';
|
|
$goods['original_img'] = 'images/' . date('Ym') . '/original_' . $row['gid'] . '.jpeg';
|
|
}
|
|
elseif (file_exists($file. '.gif'))
|
|
{
|
|
$goods['goods_img'] = 'images/' . date('Ym') . '/big_' . $row['gid'] . '.gif';
|
|
$goods['original_img'] = 'images/' . date('Ym') . '/original_' . $row['gid'] . '.gif';
|
|
}
|
|
elseif (file_exists($file. '.png'))
|
|
{
|
|
$goods['goods_img'] = 'images/' . date('Ym') . '/big_' . $row['gid'] . '.png';
|
|
$goods['orinigal_img'] = 'images/' . date('Ym') . '/original_' . $row['gid'] . '.png';
|
|
}
|
|
else
|
|
{
|
|
$goods['goods_img'] = $row['bigimgremote'];
|
|
}
|
|
|
|
/* 积分:根据商店设置 */
|
|
if ($config['offer_pointtype'] == '0')
|
|
{
|
|
/* 不使用积分 */
|
|
$goods['integral'] = '0';
|
|
}
|
|
elseif ($config['offer_pointtype'] == '1')
|
|
{
|
|
/* 按比例 */
|
|
$goods['integral'] = round($goods['shop_price'] * $config['offer_pointnum']);
|
|
}
|
|
else
|
|
{
|
|
/* 自定义 */
|
|
$goods['integral'] = $row['point'];
|
|
}
|
|
|
|
/* 插入 */
|
|
if (!$db->autoExecute($ecs->table('goods'), $goods, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
|
|
/* 扩展分类 */
|
|
if ($row['linkclass'] != '')
|
|
{
|
|
$goods_cat = array();
|
|
$goods_cat['goods_id'] = $row['gid'];
|
|
$cat_id_list = explode(',', trim($row['linkclass'], ','));
|
|
foreach ($cat_id_list as $cat_id)
|
|
{
|
|
$goods_cat['cat_id'] = $cat_id;
|
|
if (!$db->autoExecute($ecs->table('goods_cat'), $goods_cat, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 取得该分类的所有属性 */
|
|
$sql = "SELECT DISTINCT pv.prop_id, pv.prop_value " .
|
|
"FROM ".$this->sprefix."mall_goods_prop_grp_value AS gp, " .
|
|
$this->sprefix."mall_prop_value AS pv " .
|
|
"WHERE gp.prop_value_id = pv.prop_value_id " .
|
|
"AND gp.gid = '$row[gid]'";
|
|
$res1 = $this->sdb->query($sql);
|
|
while ($attr = $this->sdb->fetchRow($res1))
|
|
{
|
|
$goods_attr = array();
|
|
$goods_attr['goods_id'] = $row['gid'];
|
|
$goods_attr['attr_id'] = $attr['prop_id'];
|
|
$goods_attr['attr_value'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($attr['prop_value']));
|
|
$goods_attr['attr_price'] = '0';
|
|
if (!$db->autoExecute($ecs->table('goods_attr'), $goods_attr, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 商品相册 */
|
|
if ($row['multi_image'])
|
|
{
|
|
$goods_gallery = array();
|
|
$goods_gallery['goods_id'] = $row['gid'];
|
|
$img_list = explode('&&&', $row['multi_image']);
|
|
foreach ($img_list as $img)
|
|
{
|
|
if (substr($img, 0, 7) == 'http://')
|
|
{
|
|
$goods_gallery['img_url'] = $img;
|
|
}
|
|
else
|
|
{
|
|
make_dir('images/' . date('Ym') . '/');
|
|
$goods_gallery['img_url'] = 'images/' . date('Ym') . '/big_' . $img;
|
|
$goods_gallery['img_original'] = 'images/' . date('Ym') . '/original_' . $img;
|
|
}
|
|
|
|
if (!$db->autoExecute($ecs->table('goods_gallery'), $goods_gallery, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 关联商品 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_offer_linkgoods";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$link_goods = array();
|
|
$link_goods['goods_id'] = $row['pgid'];
|
|
$link_goods['link_goods_id'] = $row['sgid'];
|
|
$link_goods['is_double'] = $row['type'];
|
|
|
|
if (!$db->autoExecute($ecs->table('link_goods'), $link_goods, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
|
|
if ($row['type'] == '1')
|
|
{
|
|
$link_goods = array();
|
|
$link_goods['goods_id'] = $row['sgid'];
|
|
$link_goods['link_goods_id'] = $row['pgid'];
|
|
$link_goods['is_double'] = $row['type'];
|
|
|
|
if (!$db->autoExecute($ecs->table('link_goods'), $link_goods, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 组合商品 */
|
|
$sql = "SELECT DISTINCT gid, prop_goods_id, price FROM ".$this->sprefix."mall_pcat_prop_has_goods";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$group_goods = array();
|
|
$group_goods['parent_id'] = $row['gid'];
|
|
$group_goods['goods_id'] = $row['prop_goods_id'];
|
|
$group_goods['goods_price'] = $row['price'];
|
|
|
|
if (!$db->autoExecute($ecs->table('group_goods'), $group_goods, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 返回成功 */
|
|
return TRUE;
|
|
}
|
|
|
|
/**
|
|
* 会员等级、会员、会员价格
|
|
*/
|
|
function process_users()
|
|
{
|
|
global $db, $ecs;
|
|
|
|
/* 清空会员、会员等级、会员价格、用户红包、用户地址、帐户明细 */
|
|
truncate_table('user_rank');
|
|
truncate_table('users');
|
|
truncate_table('user_address');
|
|
truncate_table('user_bonus');
|
|
truncate_table('member_price');
|
|
truncate_table('user_account');
|
|
|
|
/* 查询并插入会员等级 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_member_level order by point desc";
|
|
$res = $this->sdb->query($sql);
|
|
$max_points = 50000;
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$user_rank = array();
|
|
$user_rank['rank_id'] = $row['levelid'];
|
|
$user_rank['rank_name'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['name']));
|
|
$user_rank['min_points'] = $row['point'];
|
|
$user_rank['max_points'] = $max_points;
|
|
$user_rank['discount'] = round($row['discount'] * 100);
|
|
$user_rank['show_price'] = '1';
|
|
$user_rank['special_rank'] = '0';
|
|
|
|
if (!$db->autoExecute($ecs->table('user_rank'), $user_rank, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
|
|
$max_points = $row['point'] - 1;
|
|
}
|
|
|
|
/* 查询并插入会员 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_member";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$user = array();
|
|
$user['user_id'] = $row['userid'];
|
|
$user['email'] = $row['email'];
|
|
$user['user_name'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['user']));
|
|
$user['password'] = $row['password'];
|
|
$user['question'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['pw_question']));
|
|
$user['answer'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['pw_answer']));
|
|
$user['sex'] = $row['sex'];
|
|
if (!empty($row['birthday']))
|
|
{
|
|
$birthday = strtotime($row['birthday']);
|
|
if ($birthday != -1 && $birthday !== false)
|
|
{
|
|
$user['birthday'] = date('Y-m-d', $birthday);
|
|
}
|
|
}
|
|
$user['user_money'] = $row['advance'];
|
|
$user['pay_points'] = $row['point'];
|
|
$user['rank_points'] = $row['point'];
|
|
$user['reg_time'] = $row['regtime'];
|
|
$user['last_login'] = $row['regtime'];
|
|
$user['last_ip'] = $row['ip'];
|
|
$user['visit_count'] = '1';
|
|
$user['user_rank'] = '0';
|
|
|
|
if (!$db->autoExecute($ecs->table('users'), $user, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
// uc_call('uc_user_register', array($user['user_name'], $user['password'], $user['email']));
|
|
}
|
|
|
|
/* 收货人地址 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_member_receiver";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$address = array();
|
|
$address['address_id'] = $row['receiveid'];
|
|
$address['address_name'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['name']));
|
|
$address['user_id'] = $row['memberid'];
|
|
$address['consignee'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['name']));
|
|
$address['email'] = $row['email'];
|
|
$address['address'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['address']));
|
|
$address['zipcode'] = $row['zipcode'];
|
|
$address['tel'] = $row['telphone'];
|
|
$address['mobile'] = $row['mobile'];
|
|
|
|
if (!$db->autoExecute($ecs->table('user_address'), $address, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 会员价格 */
|
|
$temp_arr = array();
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_member_price";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
if ($row['gid'] > 0 && $row['levelid'] > 0 && !isset($temp_arr[$row['gid']][$row['levelid']]))
|
|
{
|
|
$temp_arr[$row['gid']][$row['levelid']] = true;
|
|
|
|
$member_price = array();
|
|
$member_price['goods_id'] = $row['gid'];
|
|
$member_price['user_rank'] = $row['levelid'];
|
|
$member_price['user_price'] = $row['price'];
|
|
|
|
if (!$db->autoExecute($ecs->table('member_price'), $member_price, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
}
|
|
unset($temp_arr);
|
|
|
|
/* 帐户明细 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_member_advance";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$user_account = array();
|
|
$user_account['user_id'] = $row['memberid'];
|
|
$user_account['admin_user'] = $row['doman'];
|
|
$user_account['amount'] = $row['money'];
|
|
$user_account['add_time'] = $row['date'];
|
|
$user_account['paid_time'] = $row['date'];
|
|
$user_account['admin_note'] = $row['description'];
|
|
$user_account['process_type'] = $row['money'] >= 0 ? SURPLUS_SAVE : SURPLUS_RETURN;
|
|
$user_account['is_paid'] = '1';
|
|
|
|
if (!$db->autoExecute($ecs->table('user_account'), $user_account, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 返回 */
|
|
return TRUE;
|
|
}
|
|
|
|
/**
|
|
* 文章
|
|
*/
|
|
function process_article()
|
|
{
|
|
global $db, $ecs;
|
|
|
|
/* 清空文章类型、文章、友情链接 */
|
|
truncate_table('article_cat');
|
|
truncate_table('article');
|
|
truncate_table('friend_link');
|
|
|
|
/* 文章类型 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_offer_ncat";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$cat = array();
|
|
$cat['cat_id'] = $row['catid'];
|
|
$cat['cat_name'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['cat']));
|
|
$cat['cat_type'] = '1';
|
|
$cat['sort_order'] = $row['pid'];
|
|
$cat['is_open'] = '1';
|
|
|
|
if (!$db->autoExecute($ecs->table('article_cat'), $cat, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 文章 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_offer_ncon";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$article = array();
|
|
$article['article_id'] = $row['newsid'];
|
|
$article['cat_id'] = $row['catid'];
|
|
$article['title'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['title']));
|
|
$article['content'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['con']));
|
|
$article['content'] = str_replace('pictures/newsimg/', 'images/upload/Image/', $article['content']);
|
|
$article['article_type']= '0';
|
|
$article['is_open'] = $row['ifpub'];
|
|
$article['add_time'] = $row['uptime'];
|
|
|
|
if (!$db->autoExecute($ecs->table('article'), $article, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 友情链接 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_offer_link";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$link = array();
|
|
$link['link_id'] = $row['linkid'];
|
|
$link['link_name'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['linktitle']));
|
|
$link['link_url'] = $row['linkurl'];
|
|
$link['show_order'] = '0';
|
|
|
|
if ($row['linktype'] == 'image')
|
|
{
|
|
$link['link_logo'] = 'data/afficheimg/'.$row['imgurl'];
|
|
}
|
|
|
|
if (!$db->autoExecute($ecs->table('friend_link'), $link, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 返回 */
|
|
return TRUE;
|
|
}
|
|
|
|
/**
|
|
* 订单
|
|
*/
|
|
function process_order()
|
|
{
|
|
global $db, $ecs;
|
|
|
|
/* 清空订单、订单商品 */
|
|
truncate_table('order_info');
|
|
truncate_table('order_goods');
|
|
truncate_table('order_action');
|
|
|
|
/* 订单 */
|
|
$sql = "SELECT o.*, t.tmethod, p.payment FROM ".$this->sprefix."mall_orders AS o " .
|
|
"LEFT JOIN ".$this->sprefix."mall_offer_t AS t ON o.ttype = t.id " .
|
|
"LEFT JOIN ".$this->sprefix."mall_offer_p AS p ON o.ptype = p.id";
|
|
$res = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res))
|
|
{
|
|
$order = array();
|
|
$order['order_sn'] = $row['orderid'];
|
|
$order['user_id'] = $row['userid'];
|
|
$order['add_time'] = $row['ordertime'];
|
|
$order['consignee'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['name']));
|
|
$order['address'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['addr']));
|
|
$order['zipcode'] = $row['zip'];
|
|
$order['tel'] = $row['tel'];
|
|
$order['mobile'] = $row['mobile'];
|
|
$order['email'] = $row['email'];
|
|
$order['postscript'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['memo']));
|
|
$order['shipping_name'] = is_null($row['tmethod']) ? ' ' : ecs_iconv($this->scharset, $this->tcharset, addslashes($row['tmethod']));
|
|
$order['pay_name'] = is_null($row['payment']) ? ' ' : ecs_iconv($this->scharset, $this->tcharset, addslashes($row['payment']));
|
|
$order['inv_payee'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['invoiceform']));
|
|
$order['goods_amount'] = $row['item_amount'];
|
|
$order['shipping_fee'] = $row['freight'];
|
|
$order['order_amount'] = $row['total_amount'];
|
|
$order['pay_time'] = $row['paytime'];
|
|
$order['shipping_time'] = $row['sendtime'];
|
|
|
|
/* 状态 */
|
|
if ($row['ordstate'] == '0')
|
|
{
|
|
$order['order_status'] = OS_UNCONFIRMED;
|
|
$order['shipping_status'] = SS_UNSHIPPED;
|
|
}
|
|
elseif ($row['ordstate'] == '1')
|
|
{
|
|
$order['order_status'] = OS_CONFIRMED;
|
|
$order['shipping_status'] = SS_UNSHIPPED;
|
|
}
|
|
elseif ($row['ordstate'] == '9')
|
|
{
|
|
$order['order_status'] = OS_INVALID;
|
|
$order['shipping_status'] = SS_UNSHIPPED;
|
|
}
|
|
else // 3 发货 4 归档
|
|
{
|
|
$order['order_status'] = OS_CONFIRMED;
|
|
$order['shipping_status'] = SS_SHIPPED;
|
|
}
|
|
|
|
if ($row['ifsk'] == '1')
|
|
{
|
|
$order['pay_status'] = PS_PAYED;
|
|
}
|
|
else // 0 未付款 5 退款
|
|
{
|
|
$order['pay_status'] = PS_UNPAYED;
|
|
}
|
|
|
|
if ($row['userrecsts'] == '1') // 用户操作了
|
|
{
|
|
if ($row['recsts'] == '1') // 到货
|
|
{
|
|
if ($order['shipping_status'] == SS_SHIPPED)
|
|
{
|
|
$order['shipping_status'] = SS_RECEIVED;
|
|
}
|
|
}
|
|
elseif ($row['recsts'] == '2') // 取消
|
|
{
|
|
$order['order_status'] = OS_CANCELED;
|
|
$order['pay_status'] = PS_UNPAYED;
|
|
$order['shipping_status'] = SS_UNSHIPPED;
|
|
}
|
|
}
|
|
|
|
/* 如果已付款,修改已付款金额为订单总金额,修改订单总金额为0 */
|
|
if ($order['pay_status'] > PS_UNPAYED)
|
|
{
|
|
$order['money_paid'] = $order['order_amount'];
|
|
$order['order_amount'] = 0;
|
|
}
|
|
|
|
if (!$db->autoExecute($ecs->table('order_info'), $order, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
|
|
/* 订单商品 */
|
|
$order_id = $db->insert_id();
|
|
$sql = "SELECT i.*, g.priceintro FROM ".$this->sprefix."mall_items AS i " .
|
|
"LEFT JOIN ".$this->sprefix."mall_goods AS g ON i.gid = g.gid " .
|
|
"WHERE orderid = '$row[orderid]'";
|
|
$res1 = $this->sdb->query($sql);
|
|
while ($row = $this->sdb->fetchRow($res1))
|
|
{
|
|
$goods = array();
|
|
$goods['order_id'] = $order_id;
|
|
$goods['goods_id'] = $row['gid'];
|
|
$goods['goods_name'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['goods']));
|
|
$goods['goods_sn'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['bn']));
|
|
$goods['goods_number'] = $row['nums'];
|
|
$goods['goods_price'] = $row['price'];
|
|
$goods['market_price'] = is_null($row['priceintro']) ? $row['goods_price'] : $row['priceintro'];
|
|
$goods['is_real'] = 1;
|
|
$goods['parent_id'] = 0;
|
|
$goods['is_gift'] = 0;
|
|
|
|
if (!$db->autoExecute($ecs->table('order_goods'), $goods, 'INSERT', '', 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 返回 */
|
|
return TRUE;
|
|
}
|
|
|
|
/**
|
|
* 商店设置
|
|
*/
|
|
function process_config()
|
|
{
|
|
global $ecs, $db;
|
|
|
|
/* 查询设置 */
|
|
$sql = "SELECT * FROM ".$this->sprefix."mall_offer " .
|
|
"WHERE offerid = '1'";
|
|
$row = $this->sdb->getRow($sql);
|
|
|
|
$config = array();
|
|
$config['shop_name'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['offer_name']));
|
|
$config['shop_title'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['offer_shoptitle']));
|
|
$config['shop_desc'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['offer_metadesc']));
|
|
$config['shop_address'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['offer_addr']));
|
|
$config['service_email'] = $row['offer_email'];
|
|
$config['service_phone'] = $row['offer_tel'];
|
|
$config['icp_number'] = ecs_iconv($this->scharset, $this->tcharset, addslashes($row['offer_certtext']));
|
|
//$config['integral_scale'] = $row['offer_pointtype'] == '0' ? '0' : $row['offer_pointnum'] * 100;
|
|
$config['thumb_width'] = $row['offer_smallsize_w'];
|
|
$config['thumb_height'] = $row['offer_smallsize_h'];
|
|
$config['image_width'] = $row['offer_bigsize_w'];
|
|
$config['image_height'] = $row['offer_bigsize_h'];
|
|
$config['promote_number'] = $row['offer_tejianums'];
|
|
$config['best_number'] = $row['offer_tjnums'];
|
|
$config['new_number'] = $row['offer_newgoodsnums'];
|
|
$config['hot_number'] = $row['offer_hotnums'];
|
|
$config['smtp_host'] = $row['offer_smtp_server'];
|
|
$config['smtp_port'] = $row['offer_smtp_port'];
|
|
$config['smtp_user'] = $row['offer_smtp_user'];
|
|
$config['smtp_pass'] = $row['offer_smtp_password'];
|
|
$config['smtp_mail'] = $row['offer_smtp_email'];
|
|
|
|
/* 更新 */
|
|
foreach ($config as $code => $value)
|
|
{
|
|
$sql = "UPDATE " . $ecs->table('shop_config') . " SET " .
|
|
"value = '$value' " .
|
|
"WHERE code = '$code' LIMIT 1";
|
|
if (!$db->query($sql, 'SILENT'))
|
|
{
|
|
//return $db->error();
|
|
}
|
|
}
|
|
|
|
/* 返回 */
|
|
return TRUE;
|
|
}
|
|
|
|
}
|
|
|
|
?>
|