123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- <?php
- namespace api\modules\v1\controllers;
- use api\common\controllers\Controller;
- use common\helpers\CodeImgGenerate;
- use common\helpers\Util;
- use common\modules\config\models\Config;
- use common\models\Survey;
- use Yii;
- use yii\helpers\ArrayHelper;
- use api\common\behaviors\QueryParamAuth;
- use yii\captcha\CaptchaAction;
- use common\enums\CodeEnum;
- use common\models\Policy;
- class SurveyController extends Controller {
- public function behaviors()
- {
- return ArrayHelper::merge(parent::behaviors(), [
- [
- 'class' => QueryParamAuth::className(),
- 'tokenParam' => 'token',
- 'optional' => ['index','submit','enterprise','captcha']
- ]
- ]);
- }
-
-
- public function actionCaptcha()
- {
- $CodeImgGenerate = new CodeImgGenerate(\Yii::$app->controller->id,\Yii::$app->controller);
- $codeInfo = $CodeImgGenerate->inline();
- header("Content-type: image/png");
- exit($codeInfo);
- }
-
- public function actionIndex()
- {
- $type = request()->get('type');
- if(empty($type)) $type = 'industry';
-
- $lists = ArrayHelper::toArray(Config::find()->select(['name','value','extra','description','type'])->where(['group' => $type])->all());
- foreach ($lists as &$value) {
- $value['value'] = explode("\r\n",$value['extra']);
- foreach($value['value'] as &$val){
- $val = trim($val);
- }
- unset($value['extra']);
- }
- return ['data' => $lists];
- }
- public function actionEnterprise()
- {
- $params = request()->post();
-
-
-
-
-
- $numberScore = 0;
- if($params['propertyNumber2'] == 1 || $params['propertyNumber2'] == 2) $numberScore = 2;
- if($params['propertyNumber2'] == 3 || $params['propertyNumber2'] == 4) $numberScore = 4;
- if($params['propertyNumber2'] >= 5) $numberScore = 6;
- if($params['propertyNumber'] > 1) $numberScore = 8;
-
-
- $modeScore = 0;
- if($params['propertyMode'] == 1) $numberScore = 6;
- if($params['propertyMode'] == 2) $numberScore = 3;
-
-
- $standardScore = 0;
- if($params['isStandard'] == 1) $standardScore = 2;
-
-
- $techniquesAchieveScore = 0;
- if($params['achievementNumber'] == 1) $techniquesAchieveScore = 6;
- if($params['achievementNumber'] == 2) $techniquesAchieveScore = 12;
- if($params['achievementNumber'] == 3) $techniquesAchieveScore = 18;
- if($params['achievementNumber'] == 4) $techniquesAchieveScore = 25;
- if($params['achievementNumber'] >= 5) $techniquesAchieveScore = 30;
-
-
- $manageLevelScore = 0;
- if($params['manageLevel1'] == 1) $manageLevelScore += 2;
- if($params['manageLevel2'] == 1) $manageLevelScore += 2;
- if($params['manageLevel3'] == 1) $manageLevelScore += 2;
- if($params['manageLevel4'] == 1) $manageLevelScore += 3;
- if($params['manageLevel5'] == 1) $manageLevelScore += 3;
- if($params['manageLevel6'] == 1) $manageLevelScore += 2;
- if($params['manageLevel7'] == 1) $manageLevelScore += 2;
- if($params['manageLevel8'] == 1) $manageLevelScore += 2;
- if($params['manageLevel9'] == 1) $manageLevelScore += 2;
-
-
- $growthRate = (0.5 * ($params['netAssets2'] / $params['netAssets1'] + $params['netAssets3'] / $params['netAssets2']) - 1) * 100;
-
- $growthRateScore = 0;
- if($growthRate > 0) $growthRateScore = 2;
- if($growthRate > 5) $growthRateScore = 4;
- if($growthRate > 10) $growthRateScore = 6;
- if($growthRate > 20) $growthRateScore = 9;
-
-
- $saleRate = (0.5 * ($params['saleRevenue2'] / $params['saleRevenue1'] + $params['saleRevenue3'] / $params['saleRevenue2']) - 1) * 100;
-
- $saleRateScore = 0;
- if($saleRate > 0) $saleRateScore = 2;
- if($saleRate > 10) $saleRateScore = 4;
- if($saleRate > 20) $saleRateScore = 6;
- if($saleRate > 30) $saleRateScore = 7;
-
-
- $result = [
- 'totalScore'=>8 + 8 + $numberScore + $modeScore + $standardScore + $numberScore + $modeScore + $standardScore + $techniquesAchieveScore + $manageLevelScore + $growthRateScore + $saleRateScore,
- 'basic'=>[
- 'name'=>$params['name'],
- 'address'=>$params['address'],
- 'estdate'=>$params['estdate'],
- 'busAddress'=>$params['busAddress'],
- 'propertyNumber'=>$params['propertyNumber'],
- 'propertyNumber2'=>$params['propertyNumber2'],
- 'propertyMode'=>$params['propertyMode'],
- 'isStandard'=>$params['isStandard'],
- 'achievementNumber'=>$params['achievementNumber'],
- ],
- 'knowledgeVo'=>[
- 'knowledgeTotalScore'=>$numberScore + $modeScore + $standardScore + 8 + 8,
- 'techniquesScore'=>8,
- 'effectScore'=>8,
- 'numberScore'=>$numberScore,
- 'modeScore'=>$modeScore,
- 'standardScore'=>$standardScore
- ],
- 'techniquesAchieveScore'=>$techniquesAchieveScore,
- 'manageLevelScore'=>$manageLevelScore,
- 'enterpriseGrowthVo'=>[
- 'totalScore'=>$growthRateScore + $saleRateScore,
- 'growthRateScore'=>$growthRateScore,
- 'saleRateScore'=>$saleRateScore,
-
- ]
- ];
-
- return ['data' => $result];
- }
- public function actionSubmit()
- {
-
- $data = request()->post();
- $type = request()->get('type');
- if(empty($type)) $type = 'industry';
-
- $survey = Survey::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' => '验证码错误'];
- }
- $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;
- }
- }
- }
- }
- }
-
- $cengci = [];
- foreach ($list as $value) {
- if(isset($cengci[$value['title']])){
- unset($value['title']);
- }else{
- $cengci[$value['title']] = $value;
- }
- }
- $cengci = array_values($cengci);
- $query = Policy::find()->select('id,title,author,content,created_at');
-
- if(!empty($cengci)){
- foreach ($cengci as $value) {
- $query->orWhere(new \yii\db\Expression('FIND_IN_SET("'.$value['title'].'", cengci)'));
- }
- $list = $query->all();
- }
- return ['data'=>$list,'cengci'=>$cengci];
- }
-
- public function actionView($id)
- {
- $model = Category::find()->where(['id' => $id])->one();
- return ['data' => $model];
- }
- }
|