linwu 1 жил өмнө
parent
commit
abb708dc81

+ 58 - 14
app/mainapp/controller/Screen.php

@@ -28,23 +28,30 @@ class Screen extends BaseController
         //街道数据
         $comjobs_community = ComjobsModel::field("count(community),community")->group('community')->column('count(community)', 'community');
         $community         = RensheCode::getList('community')->toArray();
+        $broker_town       = BrokerModel::field("count(town),town")->group('town')->column('count(town)', 'town');
         foreach ($community as &$v) {
             if (!empty($comjobs_community[$v['code']])) {
                 $v['count'] = $comjobs_community[$v['code']];
             } else {
                 $v['count'] = 0;
             }
+            if (!empty($broker_town[$v['name']])) {
+                $v['broker_count'] = $broker_town[$v['name']];
+            } else {
+                $v['broker_count'] = 0;
+            }
             unset($v);
         }
         $community[]      = [
-            'id'    => 0,
-            'name'  => '其他',
-            'code'  => '',
-            'count' => $comjobs_community[''],
+            'id'           => 0,
+            'name'         => '其他',
+            'code'         => '',
+            'count'        => $comjobs_community[''] ?? 0,
+            'broker_count' => $broker_town[''] ?? 0,
         ];
         $res['community'] = $community;
 
-        //岗位类
+        //岗位类
         $comjobs_cate = ComjobsModel::field("count(cateid),cateid")->group('cateid')->column('count(cateid)', 'cateid');
         $cateids      = array_keys($comjobs_cate);
         $cate         = ComjobsCateModel::where('id', 'in', $cateids)->select()->toArray();
@@ -54,21 +61,35 @@ class Screen extends BaseController
         }
         $res['cate'] = $cate;
 
+        //岗位类型
+        $comjobs_type = ComjobsModel::field("count(wtype) count,wtype")->group('wtype')->select();
+        $res['type']  = $comjobs_type;
+
         //岗位数据
-        $comjobs_map   = [];
-        $comjobs_map[] = ['createtime', '<=', time()];
-        $comjobs_map[] = ['status', 'in', '3,4'];
-        $orderby       = ['status' => 'asc', 'updatetime' => 'desc', 'id' => 'desc'];
-        $comjobs       = [];
-        $comjobs_data  = ComjobsModel::with(['worker'])->where($comjobs_map)->order($orderby)->limit(30)->select();
-        foreach ($comjobs_data as $v) {
-            $comjobs[] = [
+        $comjobs_map      = [];
+        $comjobs_map[]    = ['createtime', '<=', time()];
+        $comjobs_map[]    = ['status', 'in', '3,4'];
+        $orderby          = ['status' => 'asc', 'updatetime' => 'desc', 'id' => 'desc'];
+        $comjobs_new      = [];
+        $comjobs_new_data = ComjobsModel::with(['worker'])->where($comjobs_map)->order($orderby)->limit(20)->select();
+        foreach ($comjobs_new_data as $v) {
+            $comjobs_new[] = [
                 'title'   => $v['title'],
                 'company' => $v['worker']['title'],
                 'salary'  => $v['zwagall'],
             ];
         }
-        $res['comjobs'] = $comjobs;
+        $comjobs_hot      = [];
+        $comjobs_hot_data = ComjobsModel::with(['worker'])->where($comjobs_map)->order('volume', 'desc')->limit(20)->select();
+        foreach ($comjobs_hot_data as $v) {
+            $comjobs_hot[] = [
+                'title'   => $v['title'],
+                'company' => $v['worker']['title'],
+                'salary'  => $v['zwagall'],
+            ];
+        }
+        $res['comjobs']['new'] = $comjobs_new;
+        $res['comjobs']['hot'] = $comjobs_hot_data;
 
         //学历
         $user_education = UserModel::field("count(education),education")->group('education')->column('count(education)', 'education');
@@ -85,6 +106,29 @@ class Screen extends BaseController
         }
         $res['eduction'] = $education;
 
+        //年龄分布
+        $user_age_other = UserModel::where('idcard', '')->count();
+        $user_idcard    = UserModel::field('idcard')->where('idcard', '<>', '')->select();
+        $user_age       = [
+            ['name' => '16-25', 'count' => 0],
+            ['name' => '25-35', 'count' => 0],
+            ['name' => '35-45', 'count' => 0],
+            ['name' => '45以上', 'count' => 0],
+            ['name' => '其他', 'count' => $user_age_other],
+        ];
+        foreach ($user_idcard as $v) {
+            $age = get_age($v['idcard']);
+            if ($age >= 16) {
+                $user_age[0]['count']++;
+            } elseif ($age >= 25) {
+                $user_age[1]['count']++;
+            } elseif ($age >= 35) {
+                $user_age[2]['count']++;
+            } elseif ($age >= 45) {
+                $user_age[3]['count']++;
+            }
+        }
+        $res['user_age'] = $user_age;
 
         //注册相关
         $user_gender         = UserModel::field("count(gender),gender")->group('gender')->column('count(gender)', 'gender');