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);
|
||
}
|
||
}
|