|
@@ -200,157 +200,225 @@ class SurveyController extends Controller {
|
|
|
|
|
|
$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' => '验证码错误'];
|
|
|
- }
|
|
|
+// $captcha = new CodeImgGenerate(\Yii::$app->controller->id,\Yii::$app->controller);
|
|
|
+//
|
|
|
+// $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 = 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($type == 'special'){
|
|
|
+ foreach ($survey as $key=>$value) {
|
|
|
+ $filter = explode(';',$value['filter']);//先判断第一层and关系
|
|
|
+ $is_match = [];
|
|
|
+ foreach ($filter as $key1 => $value1){
|
|
|
+ if(!empty($value1)){
|
|
|
+ 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;
|
|
|
+ case '<=':
|
|
|
+ if($data[$filter2[0]] <= $filter2[2] && $data[$filter2[0]] > 0){
|
|
|
+ $is_match[$key1] = true;
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- if(strpos($value1,'-') !== false){//如果有存在或关系
|
|
|
- $filter1 = explode('-',$value1);
|
|
|
- $i = 0;
|
|
|
- foreach ($filter1 as $key2 => $value2){
|
|
|
- if(!in_array($value2,['shengte','shenga','quanyi','shengb','rencaileixing','zhuanyelingyunianxian'])){
|
|
|
- if(array_key_exists($value2,$data) && !empty($data[$value2]) && $data[$value2] != '请选择'){
|
|
|
- if(strpos($value['title'],(string)$data[$value2]) !== false){//如果用户提交的信息字眼有出现在政策条件内,相当于条件符合
|
|
|
- $i++;
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ $match_count = 0;
|
|
|
+ foreach ($is_match as $v){
|
|
|
+ if($v){
|
|
|
+ $match_count++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if($match_count == count($filter)){
|
|
|
+
|
|
|
+ $list[] = [
|
|
|
+ 'id'=>$value['id'],
|
|
|
+ 'title'=>$value['title'],
|
|
|
+ 'content'=>$value['content'],
|
|
|
+ 'level' => $value['cengci']
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach($list as $k => $v){
|
|
|
+ $zclist = Policy::find()->where(['type' => Policy::TYPE_SURVEY, 'estate' => $type,'title' => $v['title']])->andWhere(['like','cengci',"{$v['level']}"])->all();
|
|
|
+ $list[$k]['policy'] = $zclist;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }else{
|
|
|
+ foreach ($survey as $key=>$value) {
|
|
|
+ $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{
|
|
|
- if(strpos($value2,'|') !== false){
|
|
|
- $filter3 = explode('|',$value2);
|
|
|
- if(array_key_exists($filter3[0],$data) && !empty($data[$filter3[0]]) && $data[$filter3[0]] != '请选择'){
|
|
|
- switch ($filter3[1]){
|
|
|
- case '>=':
|
|
|
- if($data[$filter3[0]] >= $filter3[2]){
|
|
|
- $i++;
|
|
|
- }
|
|
|
- break;
|
|
|
- case '=':
|
|
|
- if($data[$filter3[0]] == $filter3[2]){
|
|
|
- $i++;
|
|
|
- }
|
|
|
- break;
|
|
|
- case '<=':
|
|
|
- if($data[$filter3[0]] <= $filter3[2] && $data[$filter3[0]] > 0){
|
|
|
- $i++;
|
|
|
- }
|
|
|
- break;
|
|
|
+ $is_match[$key1] = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(strpos($value1,'-') !== false){//如果有存在或关系
|
|
|
+ $filter1 = explode('-',$value1);
|
|
|
+ $i = 0;
|
|
|
+ foreach ($filter1 as $key2 => $value2){
|
|
|
+ if(!in_array($value2,['shengte','shenga','quanyi','shengb','rencaileixing','zhuanyelingyunianxian'])){
|
|
|
+ if(array_key_exists($value2,$data) && !empty($data[$value2]) && $data[$value2] != '请选择'){
|
|
|
+ if(strpos($value['title'],(string)$data[$value2]) !== false){//如果用户提交的信息字眼有出现在政策条件内,相当于条件符合
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if(strpos($value2,'|') !== false){
|
|
|
+ $filter3 = explode('|',$value2);
|
|
|
+ if(array_key_exists($filter3[0],$data) && !empty($data[$filter3[0]]) && $data[$filter3[0]] != '请选择'){
|
|
|
+ switch ($filter3[1]){
|
|
|
+ case '>=':
|
|
|
+ if($data[$filter3[0]] >= $filter3[2]){
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case '=':
|
|
|
+ if($data[$filter3[0]] == $filter3[2]){
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case '<=':
|
|
|
+ if($data[$filter3[0]] <= $filter3[2] && $data[$filter3[0]] > 0){
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if($i == 0){
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = true;
|
|
|
+ }
|
|
|
}
|
|
|
- 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;
|
|
|
- case '<=':
|
|
|
- if($data[$filter2[0]] <= $filter2[2] && $data[$filter2[0]] > 0){
|
|
|
- $is_match[$key1] = true;
|
|
|
- }else{
|
|
|
- $is_match[$key1] = false;
|
|
|
- continue 2;
|
|
|
- }
|
|
|
- break;
|
|
|
+ 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;
|
|
|
+ case '<=':
|
|
|
+ if($data[$filter2[0]] <= $filter2[2] && $data[$filter2[0]] > 0){
|
|
|
+ $is_match[$key1] = true;
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
+ }
|
|
|
+ break;
|
|
|
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $is_match[$key1] = false;
|
|
|
+ continue 2;
|
|
|
}
|
|
|
- }else{
|
|
|
- $is_match[$key1] = false;
|
|
|
- continue 2;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- $match_count = 0;
|
|
|
- foreach ($is_match as $v){
|
|
|
- if($v){
|
|
|
- $match_count++;
|
|
|
+ $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;
|
|
|
+ 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
|
|
|
+ ];
|
|
|
}
|
|
|
- $list[] = [
|
|
|
- 'id'=>$value['id'],
|
|
|
- 'title'=>$value['title'],
|
|
|
- 'content'=>$value['content'],
|
|
|
- 'level' => $level
|
|
|
- ];
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
- foreach($list as $k => $v){
|
|
|
- $zclist = Policy::find()->where(['type' => Policy::TYPE_SURVEY, 'estate' => $type])->andWhere(['like','cengci',"{$v['level']}"])->all();
|
|
|
- $list[$k]['policy'] = $zclist;
|
|
|
- }
|
|
|
+ foreach($list as $k => $v){
|
|
|
+ $zclist = Policy::find()->where(['type' => Policy::TYPE_SURVEY, 'estate' => $type])->andWhere(['like','cengci',"{$v['level']}"])->all();
|
|
|
+ $list[$k]['policy'] = $zclist;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
+ }
|
|
|
//去重复
|
|
|
- $cengci = [];
|
|
|
+ $cengci = [];
|
|
|
foreach ($list as $value) {
|
|
|
if(isset($cengci[$value['level']])){
|
|
|
unset($value['level']);
|
|
@@ -362,6 +430,8 @@ class SurveyController extends Controller {
|
|
|
|
|
|
return ['data' => $cengci];
|
|
|
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|