2025-04-10 23:19:13 +08:00

192 lines
5.3 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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