136 lines
4.8 KiB
PHP
Executable File
136 lines
4.8 KiB
PHP
Executable File
<?php
|
||
//OK
|
||
//设置data表数据
|
||
$suffix = 'data';
|
||
$tableName = $tablePre.'_'.$table.'_'.$suffix;
|
||
$condition = "";
|
||
$params = array();
|
||
|
||
$partnerid = isset($data['partnerid']) ? $data['partnerid'] : 0;
|
||
$mid = isset($data['mid']) ? $data['mid'] : 0;
|
||
$fid = isset($data['fid']) ? $data['fid'] : 0;
|
||
$settingData = $dbmodel->data_format($data['addons'],$suffix);
|
||
|
||
$column = "id";
|
||
|
||
$condition .="`o_sn` = :o_sn";
|
||
$params[':o_sn'] = $o_sn;
|
||
$condition .=" AND ";
|
||
$condition .="`f_sn` = :f_sn";
|
||
$params[':f_sn'] = $f_sn;
|
||
$condition .=" AND ";
|
||
$condition .="`s_sn` = :s_sn";
|
||
$params[':s_sn'] = $s_sn;
|
||
$condition .=" AND ";
|
||
$condition .="`siteid` = :siteid";
|
||
$params[':siteid'] = $siteId;
|
||
$condition .=" AND ";
|
||
$condition .="`platid` = :platid";
|
||
$params[':platid'] = $platid;
|
||
$condition .=" AND ";
|
||
$condition .="`uniacid` = :uniacid";
|
||
$params[':uniacid'] = $uniacid;
|
||
$condition .=" AND ";
|
||
$condition .="`shopid` = :shopid";
|
||
$params[':shopid'] = $shopid;
|
||
|
||
$i = 0;
|
||
$temp = array();
|
||
$temp['keys']=array();
|
||
$temp['titles']=array();
|
||
$temp_condition = $condition;
|
||
foreach($settingData as $v_k => $value){
|
||
$i++;
|
||
$record = array();
|
||
$_temp_condition = '';
|
||
$condition = '';
|
||
$condition .=" AND ";
|
||
$condition .="`setfor` = :setfor";
|
||
$params[':setfor'] = $value['setfor'];
|
||
if(!isset($temp['keys'][$value['setfor']])) {
|
||
$temp['keys'][$value['setfor']] = [];
|
||
}
|
||
if(!isset($temp['titles'][$value['setfor']])) {
|
||
$temp['titles'][$value['setfor']] = [];
|
||
}
|
||
//170702补充——增强修复参数title键为数字时的保存命令
|
||
|
||
if(is_numeric($value['title'])){
|
||
$_temp_titles = $temp['titles'][$value['setfor']];
|
||
if(count($_temp_titles)==0){
|
||
$record['deleted'] = 1;
|
||
$record['updatetime'] = $_FM['timestamp'];
|
||
$_temp_condition = $temp_condition.$condition;
|
||
unset($params[':key']);
|
||
$result = fmFunc_pdo_yii_update($connection, $tableName, $record, $_temp_condition, $params);
|
||
}
|
||
array_push($temp['titles'][$value['setfor']],$value['title']);
|
||
}
|
||
|
||
$condition .=" AND ";
|
||
$condition .="`title` = :title";
|
||
$params[':title'] = $value['title'];
|
||
|
||
if(!isset($temp['keys'][$value['setfor']][$value['title']])) {
|
||
$temp['keys'][$value['setfor']][$value['title']] = [];
|
||
}
|
||
//170419补充——针对参数key键为数字的情况(判定其父级数组需完全被该次所传入之的参数数组替代),因为要删除掉无关键(设置deleted为1)
|
||
//170501补充——增强修复参数key键为数字时的保存命令
|
||
|
||
if(is_numeric($value['key'])){
|
||
$_temp_keys = $temp['keys'][$value['setfor']][$value['title']];
|
||
if(count($_temp_keys)==0){
|
||
$record['deleted'] = 1;
|
||
$record['updatetime'] = $_FM['timestamp'];
|
||
$_temp_condition = $temp_condition.$condition;
|
||
unset($params[':key']);
|
||
$result = fmFunc_pdo_yii_update($connection, $tableName, $record, $_temp_condition, $params);
|
||
}
|
||
array_push($temp['keys'][$value['setfor']][$value['title']],$value['key']);
|
||
}
|
||
|
||
$condition .=" AND ";
|
||
$condition .="`key` = :key";
|
||
$params[':key'] = $value['key'];
|
||
$condition = $temp_condition.$condition;
|
||
|
||
$id = fmFunc_pdo_yii_fetchcolumn($connection, $tableName, $column, $condition, $params);
|
||
$record['value'] = $value['value'];
|
||
//170722 补充-value键值超过mysql的text最大长度65535时,改为使用文件存储的方式
|
||
if(isset($value['value']{65535})){
|
||
$filename = $siteId.'/'.$uniacid.'/'.$platid.'_'.$shopid.'_'.$o_sn.'_'.$f_sn.'_'.$s_sn.'_'.$suffix.'_'.$value['setfor'].'_'.$value['title'].'_'.$value['key'];
|
||
fmFunc_file_dataWrite($filename,$value['value'],$uri=null,$origin_cache_key=null);
|
||
$record['value'] = $filename.'.php';
|
||
}
|
||
|
||
if($id){
|
||
$record['deleted'] = 0;
|
||
$record['updatetime'] = $_FM['timestamp'];
|
||
fmFunc_pdo_yii_update($connection, $tableName, $record, $condition, $params);
|
||
}else{
|
||
$record['setfor'] = $value['setfor'];
|
||
$record['title'] = $value['title'];
|
||
$record['key'] = $value['key'];
|
||
$record['o_sn'] = $o_sn;
|
||
$record['f_sn'] = $f_sn;
|
||
$record['s_sn'] = $s_sn;
|
||
$record['sn'] = getMillisecond()*10;
|
||
$record['sn'] = intval($record['sn']);
|
||
$record['siteid'] = $siteId;
|
||
$record['platid'] = $platid;
|
||
$record['uniacid'] = $uniacid;
|
||
$record['shopid'] = $shopid;
|
||
$record['partnerid'] = $partnerid;
|
||
$record['mid'] = $mid;
|
||
$record['fid'] = $fid;
|
||
$record['displayorder'] = isset($data['displayorder']) ? $data['displayorder'] : 0;
|
||
$record['status'] = isset($data['status']) ? $data['status'] : 1;
|
||
$record['statuscode'] = isset($data['statuscode']) ? $data['statuscode'] : 64;
|
||
$record['deleted'] = 0;
|
||
$record['createtime'] = $_FM['timestamp'];
|
||
$record['updatetime'] = $_FM['timestamp'];
|
||
|
||
fmFunc_pdo_yii_insert($connection, $tableName, $record);
|
||
}
|
||
}
|