191 lines
5.7 KiB
PHP
Executable File
191 lines
5.7 KiB
PHP
Executable File
<?php
|
||
//OK
|
||
//取form数据列表
|
||
$suffix = 'form';
|
||
$tableName = $tablePre . '_' . $table . '_' . $suffix;
|
||
$condition = "";
|
||
$params = array();
|
||
|
||
$columns = array('s_sn', 'platid', 'uniacid', 'shopid', 'partnerid', 'uid', 'sn', 'title', 'value', 'displayorder', 'status', 'deleted');
|
||
|
||
$condition .= "`siteid` = :siteid";
|
||
$params[':siteid'] = $siteId;
|
||
//跨平台搜索条件
|
||
if (isset($data['searching']['plat']) && $data['searching']['plat'] == $platid) {
|
||
$condition .= " AND ";
|
||
$condition .= "`platid` = :platid";
|
||
$params[':platid'] = $platid;
|
||
} else {
|
||
$condition .= " AND ";
|
||
$condition .= "`uniacid` = :uniacid";
|
||
$params[':uniacid'] = $uniacid;
|
||
}
|
||
|
||
$condition .= " AND ";
|
||
$condition .= "`shopid` = :shopid";
|
||
$params[':shopid'] = $shopid;
|
||
|
||
//增加搜索条件,取多s_sn查询
|
||
$issearching = isset($data['searching']) ? TRUE : FALSE;
|
||
$searching = array();
|
||
if ($issearching) {
|
||
$condition_searching = $condition;
|
||
$params_searching = $params;
|
||
//系统自带搜索条件约定(精确匹配)
|
||
if (isset($data['searching']['status'])) {
|
||
$condition_searching .= " AND ";
|
||
$condition_searching .= "`status` = :status";
|
||
$params_searching[':status'] = intval($data['searching']['status']);
|
||
}
|
||
|
||
if (isset($data['searching']['deleted'])) {
|
||
$condition_searching .= " AND ";
|
||
$condition_searching .= "`deleted` = :deleted";
|
||
$params_searching[':deleted'] = intval($data['searching']['deleted']);
|
||
}
|
||
//搜索条件filter参数过滤
|
||
if (isset($data['searching']['filter'])) {
|
||
foreach ($data['searching']['filter'] as $_k => $_v) {
|
||
$condition_searching .= " AND ";
|
||
$condition_searching .= "`key` = :key";
|
||
$params_searching[':key'] = $_k;
|
||
$condition_searching .= " AND ";
|
||
if (is_array($_v)) {
|
||
$x_condition = "(";
|
||
$x_i = count($_v);
|
||
foreach ($_v as $xk => $xv) {
|
||
$x_i--;
|
||
$x_condition .= "'" . serialize($xv) . "'";
|
||
if ($x_i > 0) {
|
||
$x_condition .= ",";
|
||
}
|
||
}
|
||
$x_condition .= ")";
|
||
$condition_searching .= "`value` IN " . $x_condition;
|
||
} else {
|
||
$condition_searching .= "`value` LIKE :value";
|
||
$params_searching[':value'] = '%' . serialize($_v) . '%';
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
//客户侧传入的额外搜索条件(模糊可选匹配)
|
||
if (isset($data['searching']['addons'])) {
|
||
foreach ($data['searching']['addons'] as $_k => $_v) {
|
||
$condition_searching .= " AND ";
|
||
$condition_searching .= "`key` = :key";
|
||
$params_searching[':key'] = $_k;
|
||
$condition_searching .= " AND ";
|
||
$condition_searching .= "`value` LIKE :value";
|
||
$params_searching[':value'] = '%' . serialize($_v) . '%';
|
||
|
||
$temp_tableName = $tablePre . '_' . $table . '_param';
|
||
$result = fmFunc_pdo_yii_getall($connection, $temp_tableName, array('s_sn'), $condition_searching, $params_searching, $limits = array(), $orders = array());
|
||
if ($result) {
|
||
foreach ($result as $_kk => $_vv) {
|
||
if ($_vv['s_sn'] != $s_sn) {
|
||
$searching[] = $_vv['s_sn'];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} else {
|
||
$temp_tableName = $tablePre . '_' . $table . '_param';
|
||
$result = fmFunc_pdo_yii_getall($connection, $temp_tableName, array('s_sn'), $condition_searching, $params_searching, $limits = array(), $orders = array());
|
||
if ($result) {
|
||
foreach ($result as $_kk => $_vv) {
|
||
if ($_vv['s_sn'] != $s_sn && !in_array($_vv['s_sn'], $searching)) {
|
||
$searching[] = $_vv['s_sn'];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
$searching = array_unique($searching);
|
||
$issearching = (count($searching) == 0) ? FALSE : TRUE;
|
||
|
||
//传入了s_sn时,也作为搜索条件
|
||
if ($s_sn > 0) {
|
||
$condition .= " AND ";
|
||
$condition .= "`s_sn` = :s_sn";
|
||
$params[':s_sn'] = $s_sn;
|
||
} else if ($issearching) {
|
||
$s_sns = '';
|
||
foreach ($searching as $temp_s_sn) {
|
||
$s_sns .= $temp_s_sn . ",";
|
||
}
|
||
$s_sns .= $s_sns;
|
||
$condition .= " AND ";
|
||
$condition .= "`s_sn` IN (" . $s_sns . ")";
|
||
}
|
||
|
||
if ($issearching) {
|
||
$op = '';
|
||
}
|
||
|
||
switch ($op) {
|
||
case 'index': //取未删除、可用状态的数据
|
||
$condition .= " AND ";
|
||
$condition .= "`status` = :status";
|
||
$params[':status'] = 1;
|
||
$condition .= " AND ";
|
||
$condition .= "`deleted` = :deleted";
|
||
$params[':deleted'] = 0;
|
||
break;
|
||
|
||
case 'unused': //取未删除、不可用状态的数据
|
||
$condition .= " AND ";
|
||
$condition .= "`status` = :status";
|
||
$params[':status'] = 0;
|
||
$condition .= " AND ";
|
||
$condition .= "`deleted` = :deleted";
|
||
$params[':deleted'] = 0;
|
||
break;
|
||
|
||
case 'deleted': //取已删除数据
|
||
$condition .= " AND ";
|
||
$condition .= "`deleted` = :deleted";
|
||
$params[':deleted'] = 1;
|
||
break;
|
||
|
||
case 'all': //取未删除数据
|
||
$condition .= " AND ";
|
||
$condition .= "`deleted` = :deleted";
|
||
$params[':deleted'] = 0;
|
||
break;
|
||
|
||
default:
|
||
$condition .= " AND ";
|
||
$condition .= "`deleted` = :deleted";
|
||
$params[':deleted'] = 0;
|
||
if (isset($data['searching']['status'])) {
|
||
$condition .= " AND ";
|
||
$condition .= "`status` = :status";
|
||
$params[':status'] = $data['searching']['status'];
|
||
}
|
||
break;
|
||
}
|
||
//补充搜索条件
|
||
if (isset($data['searching']['keyword'])) {
|
||
$condition .= " AND ";
|
||
$condition .= "`title` LIKE :keyword";
|
||
$params[':keyword'] = '%' . $data['searching']['keyword'] . '%';
|
||
}
|
||
|
||
//数据分页
|
||
$limits = !empty($data['sqls']['limits']) ? $data['sqls']['limits'] : array();
|
||
|
||
//数据排序
|
||
$orders = !empty($data['sqls']['orders']) ? $data['sqls']['orders'] : array();
|
||
|
||
$result = fmFunc_pdo_yii_getall($connection, $tableName, $columns, $condition, $params, $limits, $orders = array());
|
||
if (!$result) {
|
||
$errorCode = 45300305;
|
||
}
|
||
|
||
$total = FmFunc_pdo_yii_getall($connection, $tableName, $columns = array('sn'), $condition, $params, $limits = array(), $orders = array());
|
||
$count = count($total);
|
||
|