|
@@ -9,6 +9,7 @@ use common\helpers\CodeImgGenerate;
|
|
|
use common\helpers\Util;
|
|
|
use common\modules\config\models\Config;
|
|
|
use common\models\Survey;
|
|
|
+use common\models\SurveyNew;
|
|
|
use Yii;
|
|
|
use yii\helpers\ArrayHelper;
|
|
|
use api\common\behaviors\QueryParamAuth;
|
|
@@ -197,43 +198,132 @@ class SurveyController extends Controller {
|
|
|
$type = request()->get('type');
|
|
|
if(empty($type)) $type = 'industry';
|
|
|
|
|
|
- $survey = Survey::find()->where(['type' => $type])->all();
|
|
|
+ $survey = ArrayHelper::toArray(SurveyNew::find()->where(['type' => $type])->all());
|
|
|
|
|
|
$captcha = new CodeImgGenerate(\Yii::$app->controller->id,\Yii::$app->controller);
|
|
|
|
|
|
- $result = $captcha->validate($data['code']);
|
|
|
-
|
|
|
- if(!$result){
|
|
|
- return ['errcode' => CodeEnum::CODE_ERROR, 'errmsg' => '验证码错误'];
|
|
|
- }
|
|
|
+// $result = $captcha->validate($data['code']);
|
|
|
+//
|
|
|
+// if(!$result){
|
|
|
+// return ['errcode' => CodeEnum::CODE_ERROR, 'errmsg' => '验证码错误'];
|
|
|
+// }
|
|
|
+
|
|
|
+ //$selects = ArrayHelper::toArray(Config::find()->where(['group' => 'industry','type' => 'select'])->all());
|
|
|
|
|
|
$list = [];
|
|
|
+
|
|
|
foreach ($survey as $key=>$value) {
|
|
|
- $filter = json_decode($value['filter'],true);
|
|
|
- foreach ($filter as $key=>$value1) {
|
|
|
- if(!empty($value1)){
|
|
|
- $str = join('|',(array)$value1);
|
|
|
- if(array_key_exists($key,$data) && !empty($data[$key])){
|
|
|
- if(strpos($str,(string)$data[$key]) !== false){
|
|
|
- $list[] = [
|
|
|
- 'id'=>$value['id'],
|
|
|
- 'title'=>$value['title'],
|
|
|
- 'content'=>$value['content']
|
|
|
- ];
|
|
|
- continue;
|
|
|
+ $filter = explode(';',$value['filter']);//先判断第一层and关系
|
|
|
+ $is_match = [];
|
|
|
+ foreach ($filter as $key1 => $value1){
|
|
|
+ if(!empty($value1)){
|
|
|
+
|
|
|
+ if(array_key_exists($value1,$data) && !empty($data[$value1]) && $data[$value1] != '请选择' && !in_array($value1,['shengte','shenga','quanyi','shengb','rencaileixing','zhuanyelingyunianxian'])){
|
|
|
+ if(strpos($value['title'],(string)$data[$value1]) === false){//如果用户提交的信息字眼有出现在政策条件内,相当于条件符合
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = true;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
+ if(strpos($value1,'-') !== false){//如果有存在或关系
|
|
|
+ $filter1 = explode('-',$value1);
|
|
|
+ $i = 0;
|
|
|
+ foreach ($filter1 as $key2 => $value2){
|
|
|
+ if(array_key_exists($value2,$data) && !empty($data[$value2]) && $data[$value2] != '请选择'){
|
|
|
+ if(strpos($value['title'],(string)$data[$value2]) !== false){//如果用户提交的信息字眼有出现在政策条件内,相当于条件符合
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if($i == 0){
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if(strpos($value1,'|') !== false){//如果有存在判断大小
|
|
|
+ $filter2 = explode('|',$value1);
|
|
|
+ if(array_key_exists($filter2[0],$data) && !empty($data[$filter2[0]]) && $data[$filter2[0]] != '请选择'){
|
|
|
+ switch ($filter2[1]){
|
|
|
+ case '>=':
|
|
|
+ if($data[$filter2[0]] >= $filter2[2]){
|
|
|
+ $is_match[$key1] = true;
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case '=':
|
|
|
+ if($data[$filter2[0]] == $filter2[2]){
|
|
|
+ $is_match[$key1] = true;
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $match_count = 0;
|
|
|
+ foreach ($is_match as $v){
|
|
|
+ if($v){
|
|
|
+ $match_count++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if($match_count == count($filter)){
|
|
|
+ switch ($value['cengci']){
|
|
|
+ case '1':
|
|
|
+ $level = '第一层次';
|
|
|
+ break;
|
|
|
+ case '2':
|
|
|
+ $level = '第二层次';
|
|
|
+ break;
|
|
|
+ case '3':
|
|
|
+ $level = '第三层次';
|
|
|
+ break;
|
|
|
+ case '4':
|
|
|
+ $level = '第四层次';
|
|
|
+ break;
|
|
|
+ case '5':
|
|
|
+ $level = '第五层次';
|
|
|
+ break;
|
|
|
+ case '6':
|
|
|
+ $level = '第六层次';
|
|
|
+ break;
|
|
|
+ case '7':
|
|
|
+ $level = '第七层次';
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ $list[] = [
|
|
|
+ 'id'=>$value['id'],
|
|
|
+ 'title'=>$value['title'],
|
|
|
+ 'content'=>$value['content'],
|
|
|
+ 'level' => $level
|
|
|
+ ];
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
//去重复
|
|
|
$cengci = [];
|
|
|
- foreach ($list as $value) {
|
|
|
- if(isset($cengci[$value['title']])){
|
|
|
- unset($value['title']);
|
|
|
+ foreach ($list as $value) {
|
|
|
+
|
|
|
+ if(isset($cengci[$value['level']])){
|
|
|
+ unset($value['level']);
|
|
|
}else{
|
|
|
- $cengci[$value['title']] = $value;
|
|
|
- }
|
|
|
+ $cengci[$value['level']] = $value;
|
|
|
+ }
|
|
|
}
|
|
|
$cengci = array_values($cengci);
|
|
|
|
|
@@ -243,7 +333,8 @@ class SurveyController extends Controller {
|
|
|
$query->andWhere(new \yii\db\Expression('FIND_IN_SET("'. Policy::TYPE_SURVEY .'", type)'));
|
|
|
if(!empty($cengci)){
|
|
|
foreach ($cengci as $value) {
|
|
|
- $query->orWhere(new \yii\db\Expression('FIND_IN_SET("'.$value['title'].'", cengci)'));
|
|
|
+
|
|
|
+ $query->orWhere(new \yii\db\Expression('FIND_IN_SET("'.$value['level'].'", cengci)'));
|
|
|
}
|
|
|
$list = $query->all();
|
|
|
}
|