sandm 1 year ago
parent
commit
7f43f5b9af

+ 196 - 126
server/api/modules/v1/controllers/SurveyController.php

@@ -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];
 
+
+
     }
 
     /**

+ 9 - 3
server/backend/controllers/SurveyNewController.php

@@ -87,6 +87,9 @@ class SurveyNewController extends Controller
             case 'circuit':
                 $typeDesc = '集成电路';
                 break;
+            case 'special':
+                $typeDesc = '专项政策';
+                break;
         }
 
 		$configModels = Config::find()->select(['name','value','extra','description','type'])->where(['group' => $type])->all();
@@ -144,13 +147,16 @@ class SurveyNewController extends Controller
             case 'circuit':
                 $typeDesc = '集成电路';
                 break;
+            case 'special':
+                $typeDesc = '专项政策';
+                break;
         }
         
 		$configModels = Config::find()->select(['name','value','extra','description','type'])->where(['group' => $model['type']])->all();
-		
+
 		if (Yii::$app->request->isPost) {
 			$data = Yii::$app->request->post();
-			
+
 			$arr = [];
 			foreach ($data as $key=>$value) {
 				if($key == '_csrfBackend' || $key == 'SurveyNew'){
@@ -158,7 +164,7 @@ class SurveyNewController extends Controller
 				}
 				$arr[$key] = $value;
 			}
-          
+
 			$model->load($data);
 			$model->save();
 			return $this->redirect(['index']);

+ 1 - 1
server/backend/views/survey-new/_form.php

@@ -18,7 +18,7 @@ use yii\widgets\ActiveForm;
         <?= $form->field($model, 'type',['options'=>['class'=>'hide']])->textInput(['maxlength' => true]) ?>
 
         <?= $form->field($model, 'filter')->textarea() ?>
-        <?= $form->field($model, 'cengci')->radioList([1 =>'第一层次',2 => '第二层次',3 => '第三层次',4 => '第四层次',5 => '第五层次',6 => '第六层次',7 => '第七层次']) ?>
+        <?= $form->field($model, 'cengci')->radioList([1 =>'第一层次',2 => '第二层次',3 => '第三层次',4 => '第四层次',5 => '第五层次',6 => '第六层次',7 => '第七层次', '涌泉行动' => '涌泉行动', '集聚高校毕业生来(留)晋创业就业' => '集聚高校毕业生来(留)晋创业就业','硕博倍增' => '硕博倍增']) ?>
 
 
         <?= $form->field($model, 'content')->widget(\common\widgets\EditorWidget::className(), $model->isNewRecord ? ['type' => request('editor') ?: config('page_editor_type')] : ['isMarkdown' => $model->markdown]) ?>

+ 1 - 0
server/backend/views/survey-new/index.php

@@ -14,6 +14,7 @@ $this->params['breadcrumbs'][] = $this->title;
 <?= Html::a(Yii::t('common', '高等教育'), ['create?type=education'], ['class' => 'btn btn-success','style'=>'margin-left:10px']) ?>
 <?= Html::a(Yii::t('common', '医疗卫生'), ['create?type=medical'], ['class' => 'btn btn-success','style'=>'margin-left:10px']) ?>
 <?= Html::a(Yii::t('common', '集成电路'), ['create?type=circuit'], ['class' => 'btn btn-success','style'=>'margin-left:10px']) ?>
+<?= Html::a(Yii::t('common', '其他专项'), ['create?type=special'], ['class' => 'btn btn-success','style'=>'margin-left:10px']) ?>
 <?php $this->endBlock(); ?>
 <div class="box box-success">
     <div class="box-body">

+ 2 - 0
server/common/enums/PolicyEnum.php

@@ -8,11 +8,13 @@ class PolicyEnum
     const POLICY_EDUCATION = 'education';
     const POLICY_MEDICAL = 'medical';
     const POLICY_CIRCUIT = 'circuit';
+    const POLICY_SPECIAL = 'special';
 
     public static $list = [
         self::POLICY_INDUSTRY => '现代产业',
         self::POLICY_EDUCATION => '高等教育',
         self::POLICY_MEDICAL => '医疗卫生',
         self::POLICY_CIRCUIT => '集成电路',
+        self::POLICY_SPECIAL => '专项政策'
     ];
 }

+ 1 - 1
server/web/mobile/index.html

@@ -1,2 +1,2 @@
 <!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>加载中</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
-            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/mobile/static/index.97465e7b.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/mobile/static/js/chunk-vendors.492ca56c.js></script><script src=/mobile/static/js/index.3e3ad604.js></script></body></html>
+            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/mobile/static/index.97465e7b.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/mobile/static/js/chunk-vendors.5bad1cee.js></script><script src=/mobile/static/js/index.e1fc9e2b.js></script></body></html>