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.
375 lines
19 KiB
375 lines
19 KiB
<?php
|
|
defined('IN_IA') or exit('Access Denied');
|
|
|
|
class Areadb_WeliamController {
|
|
|
|
//同步设置
|
|
public function copydata() {
|
|
global $_W, $_GPC;
|
|
$agents = pdo_fetchall("SELECT agentname,id FROM " . tablename('wlmerchant_agentusers') . "WHERE uniacid = {$_W['uniacid']} ORDER BY id ASC");
|
|
if (checksubmit('submit')) {
|
|
$expressid = $_GPC['expressid'];
|
|
$synchr = $_GPC['synchr'];
|
|
$passiveid = $_GPC['passiveid'];
|
|
$copystatus = $_GPC['copystatus'];
|
|
if (empty($synchr)) {
|
|
wl_message('请选择需要同步的内容', 'referer', 'error');
|
|
}
|
|
if (in_array($expressid, $passiveid)) {
|
|
wl_message('目标代理不能包含模板代理', 'referer', 'error');
|
|
}
|
|
//循环插入数据
|
|
if(empty($passiveid)){
|
|
$passiveid = pdo_fetchall("SELECT id FROM ".tablename('wlmerchant_agentusers')."WHERE uniacid = {$_W['uniacid']} AND id != {$expressid} ORDER BY id DESC");
|
|
foreach ($passiveid as $item) {
|
|
$this->insert_data($synchr, $item['id'], $expressid, $copystatus);
|
|
}
|
|
}else{
|
|
foreach ($passiveid as $item) {
|
|
$this->insert_data($synchr, $item, $expressid, $copystatus);
|
|
}
|
|
}
|
|
wl_message('同步完成,请检查各项是否同步正确', 'referer', 'success');
|
|
}
|
|
|
|
include wl_template('area/copydata');
|
|
}
|
|
|
|
public function movedata() {
|
|
global $_W, $_GPC;
|
|
ini_set('display_errors', '1');
|
|
error_reporting(E_ALL ^ E_NOTICE);
|
|
$tablenames = pdo_fetchall("SHOW TABLES LIKE :tablename", array(":tablename" => "%wlmerchant%"));
|
|
$hastable = array();
|
|
foreach ($tablenames as $tablename) {
|
|
$table = str_replace($_W['config']['db']['tablepre'], '', end($tablename));
|
|
//查询表所有字段,判断是否有aid
|
|
$result = pdo_fetchall("SHOW FULL COLUMNS FROM " . tablename($table));
|
|
foreach ($result as $key => $index) {
|
|
if ($index['Field'] == 'aid') {
|
|
$hastable[] = $table;
|
|
if ($table == 'wlmerchant_agentsetting') {
|
|
|
|
} else {
|
|
//pdo_update($table, array('aid' => $new), array('aid' => $old));
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
if (checksubmit('submit')) {
|
|
|
|
}
|
|
$agents = pdo_fetchall("SELECT agentname,id FROM " . tablename('wlmerchant_agentusers') . "WHERE uniacid = {$_W['uniacid']} ORDER BY id ASC");
|
|
include wl_template('area/movedata');
|
|
}
|
|
|
|
private function my_db_table_schema($db, $tablename = '') {
|
|
$result = $db->fetch("SHOW TABLE STATUS LIKE '" . trim($db->tablename($tablename), "`") . "'");
|
|
if (empty($result) || empty($result['Create_time'])) {
|
|
return array();
|
|
}
|
|
$ret["tablename"] = $result["Name"];
|
|
$ret["charset"] = $result["Collation"];
|
|
$ret["engine"] = $result["Engine"];
|
|
$ret["increment"] = $result["Auto_increment"];
|
|
$result = $db->fetchall("SHOW FULL COLUMNS FROM " . $db->tablename($tablename));
|
|
foreach ($result as $value) {
|
|
$temp = array();
|
|
$type = explode(" ", $value["Type"], 2);
|
|
$temp["name"] = $value["Field"];
|
|
$pieces = explode("(", $type[0], 2);
|
|
$temp["type"] = $pieces[0];
|
|
$temp["length"] = rtrim($pieces[1], ")");
|
|
$temp["null"] = !($value["Null"] == "NO");
|
|
$temp["signed"] = empty($type[1]);
|
|
$temp["increment"] = $value["Extra"] == "auto_increment";
|
|
if (!empty($value['Comment'])) {
|
|
$temp["comment"] = $value["Comment"];
|
|
}
|
|
if ($value["Default"] != NULL) {
|
|
$temp["default"] = $value["Default"];
|
|
}
|
|
$ret["fields"][$value["Field"]] = $temp;
|
|
}
|
|
$result = $db->fetchall("SHOW INDEX FROM " . $db->tablename($tablename));
|
|
foreach ($result as $value) {
|
|
$ret["indexes"][$value["Key_name"]]["name"] = $value["Key_name"];
|
|
$ret["indexes"][$value["Key_name"]]["type"] = $value["Key_name"] == "PRIMARY" ? "primary" : ($value["Non_unique"] == 0 ? "unique" : "index");
|
|
$ret["indexes"][$value["Key_name"]]["fields"][] = $value["Column_name"];
|
|
}
|
|
return $ret;
|
|
}
|
|
|
|
private function insert_data($synchr, $passiveid, $expressid, $copystatus) {
|
|
global $_W;
|
|
if (in_array('base', $synchr)) {
|
|
$bases = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_agentsetting') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} ORDER BY id ASC");
|
|
foreach ($bases as $key => $base) {
|
|
//基本设置同步中不包括 底部菜单&选项卡内容
|
|
if ($base['key'] != 'pluginlist' && $base['key'] != 'foot') {
|
|
unset($base['id']);
|
|
$base['aid'] = $passiveid;
|
|
$flag = pdo_get('wlmerchant_agentsetting', array('aid' => $passiveid, 'key' => $base['key']), array('id'));
|
|
if ($flag) {
|
|
pdo_update('wlmerchant_agentsetting', $base, array('id' => $flag['id']));
|
|
} else {
|
|
pdo_insert('wlmerchant_agentsetting', $base);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (in_array('merce', $synchr)) {
|
|
if ($copystatus) {
|
|
pdo_delete('wlmerchant_category_store', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
}
|
|
$categorys = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_category_store') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} AND parentid = 0 ORDER BY id ASC");
|
|
foreach ($categorys as $key => $category) {
|
|
$childs = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_category_store') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} AND parentid = {$category['id']} ORDER BY id ASC");
|
|
unset($category['id']);
|
|
$category['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_category_store', $category);
|
|
if ($childs) {
|
|
$parentid = pdo_insertid();
|
|
foreach ($childs as $key => $child) {
|
|
unset($child['id']);
|
|
$child['aid'] = $passiveid;
|
|
$child['parentid'] = $parentid;
|
|
pdo_insert('wlmerchant_category_store', $child);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(in_array('yellowpage', $synchr)){
|
|
if ($copystatus) {
|
|
pdo_delete('wlmerchant_yellowpage_cates', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
}
|
|
$categorys = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_yellowpage_cates') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} AND parentid = 0 ORDER BY id ASC");
|
|
foreach ($categorys as $key => $category) {
|
|
$childs = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_yellowpage_cates') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} AND parentid = {$category['id']} ORDER BY id ASC");
|
|
unset($category['id']);
|
|
$category['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_yellowpage_cates', $category);
|
|
if ($childs) {
|
|
$parentid = pdo_insertid();
|
|
foreach ($childs as $key => $child) {
|
|
unset($child['id']);
|
|
$child['aid'] = $passiveid;
|
|
$child['parentid'] = $parentid;
|
|
pdo_insert('wlmerchant_yellowpage_cates', $child);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (in_array('mergr', $synchr)) {
|
|
if ($copystatus) {
|
|
pdo_delete('wlmerchant_chargelist', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
}
|
|
$mergrs = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_chargelist') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} ORDER BY id ASC");
|
|
if ($mergrs) {
|
|
foreach ($mergrs as $key => $mergr) {
|
|
unset($mergr['id']);
|
|
$mergr['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_chargelist', $mergr);
|
|
}
|
|
}
|
|
}
|
|
if (in_array('fight', $synchr)) {
|
|
if ($copystatus) {
|
|
pdo_delete('wlmerchant_fightgroup_category', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
}
|
|
$fights = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_fightgroup_category') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} ORDER BY id ASC");
|
|
foreach ($fights as $key => $fight) {
|
|
unset($fight['id']);
|
|
$fight['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_fightgroup_category', $fight);
|
|
}
|
|
}
|
|
if (in_array('pocket', $synchr)) {
|
|
if ($copystatus) {
|
|
pdo_delete('wlmerchant_pocket_type', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
}
|
|
$pockets = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_pocket_type') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} AND type = 0 ORDER BY id ASC");
|
|
foreach ($pockets as $key => $pocket) {
|
|
$childs = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_pocket_type') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} AND type = {$pocket['id']} ORDER BY id ASC");
|
|
unset($pocket['id']);
|
|
$pocket['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_pocket_type', $pocket);
|
|
if ($childs) {
|
|
$parentid = pdo_insertid();
|
|
foreach ($childs as $key => $child) {
|
|
unset($child['id']);
|
|
$child['aid'] = $passiveid;
|
|
$child['type'] = $parentid;
|
|
pdo_insert('wlmerchant_pocket_type', $child);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (in_array('notice', $synchr)) {
|
|
|
|
if ($copystatus) {
|
|
pdo_delete('wlmerchant_notice', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
}
|
|
$notices = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_notice') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} ORDER BY id ASC");
|
|
foreach ($notices as $key => $notice) {
|
|
unset($notice['id']);
|
|
$notice['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_notice', $notice);
|
|
}
|
|
}
|
|
if (in_array('adv', $synchr)) {
|
|
if ($copystatus) {
|
|
pdo_delete('wlmerchant_adv', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
pdo_delete('wlmerchant_pocket_slide', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
}
|
|
$advs = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_adv') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} ORDER BY id ASC");
|
|
foreach ($advs as $key => $adv) {
|
|
unset($adv['id']);
|
|
$adv['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_adv', $adv);
|
|
}
|
|
//掌上信息
|
|
$advs2 = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_pocket_slide') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} ORDER BY id ASC");
|
|
foreach ($advs2 as $key => $ad) {
|
|
unset($ad['id']);
|
|
$ad['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_pocket_slide', $ad);
|
|
}
|
|
}
|
|
if (in_array('nav', $synchr)) {
|
|
if ($copystatus) {
|
|
pdo_delete('wlmerchant_nav', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
}
|
|
$navs = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_nav') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} ORDER BY id ASC");
|
|
foreach ($navs as $key => $nav) {
|
|
unset($nav['id']);
|
|
$nav['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_nav', $nav);
|
|
}
|
|
}
|
|
if (in_array('banner', $synchr)) {
|
|
if ($copystatus) {
|
|
pdo_delete('wlmerchant_banner', array('aid' => $passiveid, 'uniacid' => $_W['uniacid']));
|
|
}
|
|
$banners = pdo_fetchall("SELECT * FROM " . tablename('wlmerchant_banner') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} ORDER BY id ASC");
|
|
foreach ($banners as $key => $banner) {
|
|
unset($banner['id']);
|
|
$banner['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_banner', $banner);
|
|
}
|
|
}
|
|
if (in_array('cube', $synchr)) {
|
|
pdo_delete('wlmerchant_indexset', array('aid' => $passiveid, 'key' => 'cube', 'uniacid' => $_W['uniacid']));
|
|
$cube = pdo_fetch("SELECT * FROM " . tablename('wlmerchant_indexset') . "WHERE uniacid = {$_W['uniacid']} AND `key` = 'cube' AND aid = {$expressid} ORDER BY id ASC");
|
|
unset($cube['id']);
|
|
$cube['aid'] = $passiveid;
|
|
pdo_insert('wlmerchant_indexset', $cube);
|
|
}
|
|
//选项卡同步
|
|
if (in_array('selectCard', $synchr)) {
|
|
$base = pdo_fetch("SELECT * FROM " . tablename(PDO_NAME . 'agentsetting') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} AND `key` = 'pluginlist'");
|
|
unset($base['id']);
|
|
$base['aid'] = $passiveid;
|
|
$flag = pdo_get(PDO_NAME . 'agentsetting', array('aid' => $passiveid, 'key' => $base['key']), array('id'));
|
|
if ($flag) {
|
|
pdo_update(PDO_NAME . 'agentsetting', $base, array('id' => $flag['id']));
|
|
} else {
|
|
pdo_insert(PDO_NAME . 'agentsetting', $base);
|
|
}
|
|
}
|
|
//底部菜单同步
|
|
if (in_array('flootMenu', $synchr)) {
|
|
$base = pdo_fetch("SELECT * FROM " . tablename(PDO_NAME . 'agentsetting') . "WHERE uniacid = {$_W['uniacid']} AND aid = {$expressid} AND `key` = 'foot'");
|
|
unset($base['id']);
|
|
$base['aid'] = $passiveid;
|
|
$flag = pdo_get(PDO_NAME . 'agentsetting', array('aid' => $passiveid, 'key' => $base['key']), array('id'));
|
|
if ($flag) {
|
|
pdo_update(PDO_NAME . 'agentsetting', $base, array('id' => $flag['id']));
|
|
} else {
|
|
pdo_insert(PDO_NAME . 'agentsetting', $base);
|
|
}
|
|
//清楚该代理商底部菜单的缓存信息
|
|
Cache::deleteCache('setting', 'allagentset' . $passiveid);
|
|
}
|
|
//抢购分类信息同步
|
|
if(in_array('rush_class', $synchr)){
|
|
if ($copystatus) pdo_delete(PDO_NAME . "rush_category" , ['aid' => $passiveid , 'uniacid' => $_W['uniacid']]);
|
|
$list = pdo_getall(PDO_NAME."rush_category",['aid'=>$expressid,'uniacid'=>$_W['uniacid']]
|
|
,['uniacid','name','sort','thumb','is_show'],'','id ASC');
|
|
foreach ($list as $key => $fight) {
|
|
$fight['aid'] = $passiveid;
|
|
pdo_insert(PDO_NAME."rush_category", $fight);
|
|
}
|
|
}
|
|
//团购分类信息同步
|
|
if(in_array('group_class', $synchr)){
|
|
if ($copystatus) pdo_delete(PDO_NAME . "groupon_category" , ['aid' => $passiveid , 'uniacid' => $_W['uniacid']]);
|
|
$list = pdo_getall(PDO_NAME."groupon_category",['aid'=>$expressid,'uniacid'=>$_W['uniacid']]
|
|
,['uniacid','name','sort','thumb','is_show'],'','id ASC');
|
|
foreach ($list as $key => $fight) {
|
|
$fight['aid'] = $passiveid;
|
|
pdo_insert(PDO_NAME."groupon_category", $fight);
|
|
}
|
|
}
|
|
//砍价分类信息同步
|
|
if(in_array('bargain_class', $synchr)){
|
|
if ($copystatus) pdo_delete(PDO_NAME . "bargain_category" , ['aid' => $passiveid , 'uniacid' => $_W['uniacid']]);
|
|
$list = pdo_getall(PDO_NAME."bargain_category",['aid'=>$expressid,'uniacid'=>$_W['uniacid']]
|
|
,['uniacid','name','sort','thumb','is_show'],'','id ASC');
|
|
foreach ($list as $key => $fight) {
|
|
$fight['aid'] = $passiveid;
|
|
pdo_insert(PDO_NAME."bargain_category", $fight);
|
|
}
|
|
}
|
|
//同城名片设置同步
|
|
if(in_array('citycard', $synchr)) {
|
|
if ($copystatus){
|
|
pdo_delete(PDO_NAME . "citycard_cates" , ['aid' => $passiveid , 'uniacid' => $_W['uniacid']]);
|
|
pdo_delete(PDO_NAME . "citycard_meals" , ['aid' => $passiveid , 'uniacid' => $_W['uniacid']]);
|
|
pdo_delete(PDO_NAME . "citycard_tops" , ['aid' => $passiveid , 'uniacid' => $_W['uniacid']]);
|
|
}
|
|
//分类
|
|
$parentCate = pdo_getall('wlmerchant_citycard_cates',array('aid' => $expressid,'uniacid'=>$_W['uniacid'],'parentid' =>0),[],'','id ASC');
|
|
if(!empty($parentCate)){
|
|
foreach ($parentCate as $par){
|
|
$childrenCate = pdo_getall('wlmerchant_citycard_cates',array('aid' => $expressid,'uniacid'=>$_W['uniacid'],'parentid' =>$par['id']),array('uniacid','name','sort','enabled'),'','id ASC');
|
|
unset($par['id']);
|
|
$par['aid'] = $passiveid;
|
|
pdo_insert(PDO_NAME."citycard_cates", $par);
|
|
$newparentid = pdo_insertid();
|
|
if(!empty($childrenCate)){
|
|
foreach ($childrenCate as $child){
|
|
$child['aid'] = $passiveid;
|
|
$child['parentid'] = $newparentid;
|
|
pdo_insert(PDO_NAME."citycard_cates", $child);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//套餐与置顶
|
|
$list = pdo_getall(PDO_NAME."citycard_meals",['aid'=>$expressid,'uniacid'=>$_W['uniacid']]
|
|
,['uniacid','name','sort','is_free','price','day','check','status','isdistri','onedismoney','twodismoney'],'','id ASC');
|
|
foreach ($list as $key => $meal) {
|
|
$meal['aid'] = $passiveid;
|
|
pdo_insert(PDO_NAME."citycard_meals", $meal);
|
|
}
|
|
$list = pdo_getall(PDO_NAME."citycard_tops",['aid'=>$expressid,'uniacid'=>$_W['uniacid']]
|
|
,['uniacid','name','sort','price','day','status','isdistri','onedismoney','twodismoney'],'','id ASC');
|
|
foreach ($list as $key => $top) {
|
|
$top['aid'] = $passiveid;
|
|
pdo_insert(PDO_NAME."citycard_tops", $top);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|