192 lines
5.3 KiB
PHP
Executable File
192 lines
5.3 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;
|
||
}elseif($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);
|
||
|