Pārlūkot izejas kodu

第三方代发

linwu 2 gadi atpakaļ
vecāks
revīzija
da9568f6e5

+ 6 - 4
app/admin/controller/Comjobs.php

@@ -12,6 +12,7 @@ use app\common\model\ComjobsStar as ComjobsStarModel;
 
 use app\common\model\ComjobsShare as ComjobsShareModel;
 
+use app\common\model\WorkerThird;
 use app\common\service\RensheService;
 use app\common\validate\Comjobs as ComjobsValidate;
 use think\exception\ValidateException;
@@ -514,13 +515,13 @@ class Comjobs extends BaseController
         $info = ComjobsModel::with([
             'worker',
             'comjobsCate',
-            'worker',
             'ageCode'          => function ($query) {
                 $query->where('type', 'age');
             }, 'educationCode' => function ($query) {
                 $query->where('type', 'education');
             }])->find($id);
 
+
         //数据重组
         $list           = $item = [];
         $item['baz367'] = $info['id'];
@@ -543,13 +544,14 @@ class Comjobs extends BaseController
         $item['bcz007'] = $info['comdetails'];
         $item['bcz008'] = $info['requirement'];
         $item['bcz009'] = $info['worker']['wtype'];
-        if (!empty($info['company_name'])) {
+        if (empty($info['third_id'])) {
             $item['aab069'] = $info['company_name'];
             $item['aae004'] = $info['contact'];
             $item['aae006'] = $info['province'] . $info['city'] . $info['district'] . $info['address'];
         } else {
-            $item['aab069'] = $info['worker']['title'];
-            $item['aae004'] = $info['worker']['realname'];
+            $third = WorkerThird::where('id',$info['third_id'])->find();
+            $item['aab069'] = $third['name'];
+            $item['aae004'] = $third['contact'];;
             $item['aae006'] = $info['worker']['province'] . $info['worker']['city'] . $info['worker']['district'] . $info['worker']['address'];
         }
         $item['aae005'] = $info['telephone'];

+ 16 - 0
app/common/model/WorkerThird.php

@@ -0,0 +1,16 @@
+<?php
+namespace app\common\model;
+
+use think\Model;
+
+class WorkerThird extends Model
+{
+	// 设置字段信息
+    protected $schema = [
+        'id'			=> 'int',
+		'name'			=> 'string',
+		'contact'		=> 'string',
+		'card_no'		=> 'string',
+    ];
+
+}

+ 21 - 1
app/mainapp/controller/Comjobs.php

@@ -1,6 +1,7 @@
 <?php
 namespace app\mainapp\controller;
 
+use app\common\model\WorkerThird;
 use think\facade\Session;
 use app\mainapp\BaseController;
 
@@ -147,7 +148,6 @@ class Comjobs extends BaseController
             foreach ($worklike as $lk=>$v){
                 $wkids[]=$v["id"];
             }
-            //var_dump($wkids);
             $whereor[] = ['workerid', 'in', $wkids];
 		}
 		$cateid = input('cateid/s', "");
@@ -168,6 +168,26 @@ class Comjobs extends BaseController
 		}
 		$orderby = array('status'=>'asc', 'updatetime'=>'desc', 'id'=>'desc');
 		$plist = ComjobsModel::with(['worker'])->where($map)->where(function ($q) use($whereor){$q->whereOr($whereor);})->order($orderby)->page($ppage)->limit($psize)->select();
+
+		//数据处理
+        //第三方id
+        $third_ids   = [];
+        $third_lists = [];
+        foreach ($plist as $l) {
+            if (!empty($l['third_id'])) {
+                $third_ids[] = $l['third_id'];
+            }
+        }
+        if (!empty($third_ids)) {
+            $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
+        }
+        $plist = $plist->toArray();
+        foreach ($plist as $k => $v) {
+            if (!empty($v['third_id'])) {
+                $plist[$k]['worker']['title'] = $third_lists[$v['third_id']]['name'];
+            }
+        }
+
 		page_result(0, "", array(
 			'plist' => $plist,
 			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'

+ 99 - 71
app/mainapp/controller/Index.php

@@ -1,6 +1,9 @@
 <?php
+
 namespace app\mainapp\controller;
 
+use app\common\model\Worder;
+use app\common\model\WorkerThird;
 use app\mainapp\BaseController;
 use think\facade\Db;
 use think\facade\Session;
@@ -21,98 +24,123 @@ use app\common\model\Sinpage as SinpageModel;
 class Index extends BaseController
 {
 
-	public function getHomeData()
-	{
-		$userid = input('userid/d', 0);
-		$workerall = WorkerModel::where('userid','=',$userid)->select();
-		$sinpage = SinpageModel::where(1)->find();
-		page_result(0, "", array(
-			'apptreaty' 	=> $sinpage->apptreaty,
-			'workerall'		=> $workerall->isEmpty() ? null : $workerall
-		)); 
-	}
-	
-	public function getIndexData()
-	{
-		$param = ParamModel::where(1)->find();
-		$slide = SlideModel::where('pagetab','=','index')->order(['priority'=>'desc','id'=>'desc'])->limit(10)->select();
-		$navigation = NavigationModel::where('pagetab','=','index')->order(['priority'=>'desc','id'=>'desc'])->select();
-		$article = ArticleModel::where([['status','=',1],['priority','>',0],['status','=',1],['createtime','<=',time()]])->order(['priority'=>'desc','id'=>'desc'])->limit(10)->select();
-		page_result(0, "", array(
-			'param'			=> $param,
-			'slide'			=> $slide,
-			'navigation'	=> $navigation,
-			'article'		=> $article 
-		));
-	}
-
-	public function listComjobs()
-	{
-		ComjobsModel::where('enddate', '<', time()-86400)->where('status', '=', 3)->update(['status' => 4]);		
-		$ppage = input('ppage/d', 1);
-		$psize = input('psize/d', 20);
-		$map[] = ['createtime','<=',time()];
-		$map[] = ['priority','>',0]; 
-		$map[] = ['status','in','3,4'];
-		$plist = ComjobsModel::with(['worker'])->where($map)->order(['status'=>'asc','priority'=>'desc','updatetime'=>'desc','id'=>'desc'])->page($ppage)->limit($psize)->select();
+    public function getHomeData()
+    {
+        $userid    = input('userid/d', 0);
+        $workerall = WorkerModel::where('userid', '=', $userid)->select();
+        $sinpage   = SinpageModel::where(1)->find();
+        page_result(0, "", [
+            'apptreaty' => $sinpage->apptreaty,
+            'workerall' => $workerall->isEmpty() ? null : $workerall,
+        ]);
+    }
+
+    public function getIndexData()
+    {
+        $param      = ParamModel::where(1)->find();
+        $slide      = SlideModel::where('pagetab', '=', 'index')->order(['priority' => 'desc', 'id' => 'desc'])->limit(10)->select();
+        $navigation = NavigationModel::where('pagetab', '=', 'index')->order(['priority' => 'desc', 'id' => 'desc'])->select();
+        $article    = ArticleModel::where([['status', '=', 1], ['priority', '>', 0], ['status', '=', 1], ['createtime', '<=', time()]])->order(['priority' => 'desc', 'id' => 'desc'])->limit(10)->select();
+        page_result(0, "", [
+            'param'      => $param,
+            'slide'      => $slide,
+            'navigation' => $navigation,
+            'article'    => $article,
+        ]);
+    }
+
+    public function listComjobs()
+    {
+        ComjobsModel::where('enddate', '<', time() - 86400)->where('status', '=', 3)->update(['status' => 4]);
+        $ppage = input('ppage/d', 1);
+        $psize = input('psize/d', 20);
+        $map[] = ['createtime', '<=', time()];
+        $map[] = ['priority', '>', 0];
+        $map[] = ['status', 'in', '3,4'];
+        $plist = ComjobsModel::with(['worker'])->where($map)->order(['status' => 'asc', 'priority' => 'desc', 'updatetime' => 'desc', 'id' => 'desc'])->page($ppage)->limit($psize)->select();
+
+        //第三方id
+        $third_ids   = [];
+        $third_lists = [];
+        foreach ($plist as $l) {
+            if (!empty($l['third_id'])) {
+                $third_ids[] = $l['third_id'];
+            }
+        }
+        if (!empty($third_ids)) {
+            $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
+        }
 
         $plist = $plist->toArray();
-		foreach ($plist as $k => $v) {
-            if (!empty($v['company_name'])) {
-                $plist[$k]['worker']['title'] = $v['company_name'];
+        foreach ($plist as $k => $v) {
+            if (!empty($v['third_id'])) {
+                $plist[$k]['worker']['title'] = $third_lists[$v['third_id']]['name'];
             }
         }
-		page_result(0, "", array(
-			'plist' => $plist,
-			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
+
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
     /*
      **
      * 附近职位
      * */
     public function listComjobsofnear()
     {
-        $lat=input('lat',0); //纬度
-        $lng=input('lng',0); //经度
-        $radius=input('radius',0); //半径
-        //$scope = $this->calcScope($lat, $lng, $radius);   // 调用范围计算函数,获取最大最小经纬度
-        if(input('ppage/d') == '' or input('ppage/d') == 0){
+        $lat = input('lat', 0); //纬度
+        $lng = input('lng', 0); //经度
+        if (input('ppage/d') == '' or input('ppage/d') == 0) {
             $page = 1;
-        }else{
-            $page=input('ppage/d');
+        } else {
+            $page = input('ppage/d');
         }
-        if(input('psize/d') == ''){
+        if (input('psize/d') == '') {
             $limit = 20;
-        }else{
+        } else {
             $limit = input('psize/d');
         }
-        $amount = 0;
         $pagelistcount = $limit; //每页显示条数
-        $sql = distance_sql($lng,$lat);
-        //$sql = distance_sql();
-        $row = Db::query("select * ,".$sql."as distance from echo_comjobs where deletetime=0 and status in (3,4) order by distance limit ".$pagelistcount*($page-1).",".$pagelistcount);
-
-        $count = Db::table('echo_comjobs')->count();
-        $Pages = ceil($count/$limit);
-        foreach ($row as $k => $v){
-            $row[$k]["tags"]=json_decode($v["tags"]);
-            if (!empty($v['company_name'])) {
-                $row[$k]["worker"]["title"]=$v["company_name"];
+        $sql           = distance_sql($lng, $lat);
+        $row           = Db::query("select * ," . $sql . "as distance from echo_comjobs where deletetime=0 and status in (3,4) order by distance limit " . $pagelistcount * ($page - 1) . "," . $pagelistcount);
+
+        //第三方id和工作列表
+        $third_ids   = [];
+        $third_lists = [];
+        $worker_ids = [];
+        $worker_lists = [];
+        foreach ($row as $l) {
+            if (!empty($l['third_id'])) {
+                $third_ids[] = $l['third_id'];
+            }
+            $worker_ids[] = $l["workerid"];
+        }
+        if (!empty($third_ids)) {
+            $third_lists = WorkerThird::where('id', 'in', $third_ids)->column('*', 'id');
+        }
+        if (!empty($worker_ids)) {
+            $worker_lists = WorkerModel::where('id', 'in', $worker_ids)->column('*', 'id');
+        }
+
+        foreach ($row as $k => $v) {
+            $row[$k]["tags"] = json_decode($v["tags"]);
+            if (!empty($v['third_id'])) {
+                $row[$k]["worker"]["title"] = $third_lists[$v['third_id']]['name'];
             } else {
-                $workerinfo=WorkerModel::find($v["workerid"]);
-                $row[$k]["worker"]["title"]=$workerinfo["title"];
+                $workerinfo                 = $worker_lists[($v["workerid"])];
+                $row[$k]["worker"]["title"] = $workerinfo["title"];
             }
-            $row[$k]["distance"]=round(calcDistance($lat,$lng,$v["latitude"],$v["longitude"]),2)."千米";
-            //$row[$k]["distance"]=calcDistance($lat,$lng,$v["latitude"],$v["longitude"])/1000;
+            $row[$k]["distance"] = round(calcDistance($lat, $lng, $v["latitude"], $v["longitude"]), 2) . "千米";
         }
-        page_result(0, "", array(
-            'plist' => $row,
-            'pstatus' => $limit > count($row) ? 'noMore' : 'more'
-        ));
+
+        page_result(0, "", [
+            'plist'   => $row,
+            'pstatus' => $limit > count($row) ? 'noMore' : 'more',
+        ]);
 
     }
 
 
-	
 }

+ 14 - 12
app/mainapp/controller/Wcomjobs.php

@@ -2,6 +2,7 @@
 
 namespace app\mainapp\controller;
 
+use app\common\model\WorkerThird;
 use app\common\service\RensheService;
 use app\mainapp\BaseController;
 
@@ -145,10 +146,20 @@ class Wcomjobs extends BaseController
         if ($comjobslog->isEmpty()) {
             page_result(1, "报名记录信息不存在。");
         }
+        if (!empty($comjobslog['comjobs']['third_id'])) {
+            $third = WorkerThird::where('id', $comjobslog['comjobs']['third_id'])->find();
+            if (empty($third['card_no'])) {
+                page_result(1, "雇主身份证号不能为空。");
+            }
+            $comjobslog['comjobs']['third'] = $third;
+        } else {
+            if (empty($worker['card_no'])) {
+                page_result(1, "公司证件号不能为空。");
+            }
+        }
+
         $status = input('status/d', 1);
-        $comjobslog->save([
-            'status' => $status,
-        ]);
+        $comjobslog->save(['status' => $status,]);
 
         //同步人社局
         $comjobslog['worker'] = $worker;
@@ -399,13 +410,4 @@ class Wcomjobs extends BaseController
             'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
         ]);
     }
-
-    /**
-     * 岗位撮合结果
-     */
-    private function _matchSubmit($log)
-    {
-        $service = new RensheService();
-        $service->MatchSubmit();
-    }
 }

+ 9 - 3
app/subscribe/SysRen.php

@@ -26,10 +26,16 @@ class SysRen
             $data['baz367'] = $param['comjobs']['id'];
             $data['aae036'] = date('Y-m-d H:i:s');
             $data['baz370'] = $param['id'];
-            $data['aae136'] = $param['worker']['card_no'];
-            $data['aab069'] = $param['worker']['title'];
+            if (empty($param['worker']['third_id'])) {
+                $data['aae136'] = $param['worker']['card_no'];
+                $data['aab069'] = $param['worker']['title'];
+                $data['aae004'] = $param['worker']['realname'];
+            } else {
+                $data['aae136'] = $param['worker']['third']['card_no'];
+                $data['aab069'] = $param['worker']['third']['name'];
+                $data['aae004'] = $param['worker']['third']['contact'];
+            }
             $data['aae006'] = $param['worker']['province'] . $param['worker']['city'] . $param['worker']['district'] . $param['worker']['address'];
-            $data['aae004'] = $param['worker']['realname'];
             $data['aae005'] = $param['worker']['mobile'];
             $data['aac002'] = $param['user']['idcard'];
             $data['aac003'] = $param['user']['nickname'];