Преглед на файлове

岗位撮合结果同步

linwu преди 2 години
родител
ревизия
e0e5ae7811
променени са 5 файла, в които са добавени 468 реда и са изтрити 429 реда
  1. 0 2
      app/admin/controller/Comjobs.php
  2. 23 2
      app/common/service/RensheService.php
  3. 43 53
      app/mainapp/common.php
  4. 371 360
      app/mainapp/controller/Wcomjobs.php
  5. 31 12
      app/subscribe/SysRen.php

+ 0 - 2
app/admin/controller/Comjobs.php

@@ -564,10 +564,8 @@ class Comjobs extends BaseController
         $send['list']   = $list;
 
         //发送数据
-        Log::info('同步人社数据:' . json_encode($send));
         $service = new RensheService($send);
         $res     = $service->JobInfo();
-        Log::error('同步人社返回数据:' . json_encode($res));
 
         if ($res['code'] == 200) {
             return json(['code' => 0]);

+ 23 - 2
app/common/service/RensheService.php

@@ -2,6 +2,8 @@
 
 namespace app\common\service;
 
+use think\facade\Log;
+
 class RensheService
 {
     //网址
@@ -17,6 +19,8 @@ class RensheService
     private $_data = [];
     //当前时间
     private $_time = 0;
+    //日志名称
+    private $_log_name = '';
 
     /**
      * 构造函数
@@ -44,8 +48,21 @@ class RensheService
      */
     public function JobInfo()
     {
-        $url = self::BASE_URL . '/dayjob/submitJobInfo.html';
-        $res = $this->_send($url);
+        $this->_log_name = '岗位信息库';
+        $url             = self::BASE_URL . '/dayjob/submitJobInfo.html';
+        $res             = $this->_send($url);
+
+        return $res;
+    }
+
+    /**
+     * 岗位撮合信息结果信息提交
+     */
+    public function MatchSubmit()
+    {
+        $this->_log_name = '岗位撮合';
+        $url             = self::BASE_URL . '/dayjob/submitLaborRelations.html';
+        $res             = $this->_send($url);
 
         return $res;
     }
@@ -84,6 +101,8 @@ class RensheService
      */
     private function _send($url)
     {
+        Log::info($this->_log_name . ':' . json_encode($this->_data));
+
         //请求头
         $enTime = base64_encode(http_request('http://192.168.1.91/sm4_en.php', 'POST', ['data' => $this->_time]));
 //        $enTime = base64_encode(openssl_encrypt($this->_time, "SM4", self::KEY, 0, self::IV));
@@ -99,6 +118,8 @@ class RensheService
         $response = http_request($url, 'POST', $enData, $header);
         $deData   = $this->_deDataCbc($response);
 
+        Log::info($this->_log_name . '返回数据:' . json_encode($deData));
+
         return $deData;
     }
 }

+ 43 - 53
app/mainapp/common.php

@@ -12,18 +12,14 @@
 // 应用公共文件
 
 
-
-function page_result($code=0, $msg='', $data=array())
+function page_result($code = 0, $msg = '', $data = [])
 {
-    exit(json_encode(array(
-        'code' 	=> $code,
-        'msg'	=> $msg,
-        'data'  => $data
-    )));
+    $res      = ['code' => $code, 'msg' => $msg, 'data' => $data];
+    $response = \think\Response::create($res, 'json');
+    throw new \think\exception\HttpResponseException($response);
 }
 
 
-
 /**
  * 时间
  */
@@ -34,10 +30,10 @@ function tranTime($utime)
         $str = '刚刚';
     } elseif ($time < 60 * 60) {
         $min = floor($time / 60);
-        $str = $min.'分钟前';
+        $str = $min . '分钟前';
     } elseif ($time < 60 * 60 * 24) {
-        $h = floor($time / (60 * 60));
-        $str = $h.'小时前';
+        $h   = floor($time / (60 * 60));
+        $str = $h . '小时前';
     } elseif ($time < 60 * 60 * 24 * 3) {
         $d = floor($time / (60 * 60 * 24));
         if ($d == 1) {
@@ -50,7 +46,6 @@ function tranTime($utime)
     }
     return $str;
 }
- 
 
 
 /**
@@ -61,9 +56,9 @@ function tranTime($utime)
 function json_success($data = '', $message = 'success')
 {
     header('Content-Type:application/json; charset=utf-8');
-    $result['status'] = 1;
+    $result['status']  = 1;
     $result['message'] = $message;
-    $result['data'] = empty($data) ? [] : $data;
+    $result['data']    = empty($data) ? [] : $data;
 
     exit(json_encode($result));
 }
@@ -76,7 +71,7 @@ function json_success($data = '', $message = 'success')
 function json_error($message = 'error', $status = -1)
 {
     header('Content-Type:application/json; charset=utf-8');
-    $result['status'] = $status;
+    $result['status']  = $status;
     $result['message'] = $message;
 
     exit(json_encode($result));
@@ -116,7 +111,7 @@ function get_client_ip($type = 0)
 
     //IP地址合法验证
     $long = sprintf("%u", ip2long($ip));
-    $ip = $long ? [$ip, $long] : ['0.0.0.0', 0];
+    $ip   = $long ? [$ip, $long] : ['0.0.0.0', 0];
 
     return $ip[$type];
 }
@@ -136,49 +131,44 @@ function gbk2utf8($data)
 }
 
 
-
-
-
-
-
 /**
  *  根据身份证号码获取性别
  *  author:xiaochuan
- *  @param string $idcard    身份证号码
- *  @return int $sex 性别 1男 2女 0未知
+ * @param string $idcard 身份证号码
+ * @return int $sex 性别 1男 2女 0未知
  */
 function get_sex($idcard)
 {
     if (empty($idcard)) {
         return null;
     }
-    $sexint = (int) substr($idcard, 16, 1);
+    $sexint = (int)substr($idcard, 16, 1);
     return $sexint % 2 === 0 ? 2 : 1;
 }
- 
+
 /**
  *  根据身份证号码获取生日
  *  author:xiaochuan
- *  @param string $idcard    身份证号码
- *  @return $birthday
+ * @param string $idcard 身份证号码
+ * @return $birthday
  */
 function get_birthday($idcard)
 {
     if (empty($idcard)) {
         return null;
     }
-    $bir = substr($idcard, 6, 8);
-    $year = (int) substr($bir, 0, 4);
-    $month = (int) substr($bir, 4, 2);
-    $day = (int) substr($bir, 6, 2);
+    $bir   = substr($idcard, 6, 8);
+    $year  = (int)substr($bir, 0, 4);
+    $month = (int)substr($bir, 4, 2);
+    $day   = (int)substr($bir, 6, 2);
     return $year . "-" . $month . "-" . $day;
 }
- 
+
 /**
  *  根据身份证号码计算年龄
  *  author:xiaochuan
- *  @param string $idcard    身份证号码
- *  @return int $age
+ * @param string $idcard 身份证号码
+ * @return int $age
  */
 function get_age($idcard)
 {
@@ -190,17 +180,17 @@ function get_age($idcard)
     #  获得今日的时间戳
     $today = strtotime('today');
     #  得到两个日期相差的大体年数
-    $diff = floor(($today-$date)/86400/365);
+    $diff = floor(($today - $date) / 86400 / 365);
     #  strtotime加上这个年数后得到那日的时间戳后与今日的时间戳相比
-    $age = strtotime(substr($idcard, 6, 8).' +'.$diff.'years')>$today?($diff+1):$diff;
+    $age = strtotime(substr($idcard, 6, 8) . ' +' . $diff . 'years') > $today ? ($diff + 1) : $diff;
     return $age;
 }
- 
+
 /**
  *  根据身份证号码获取出身地址
  *  author:xiaochuan
- *  @param string $idcard    身份证号码
- *  @return string $address
+ * @param string $idcard 身份证号码
+ * @return string $address
  */
 // function get_address($idcard, $type=1){
 //     if(empty($idcard)) return null;
@@ -226,19 +216,19 @@ function get_age($idcard)
 //             break;
 //     }
 // }
- 
+
 /**
  *  判断字符串是否是身份证号
  *  author:xiaochuan
- *  @param string $idcard    身份证号码
+ * @param string $idcard 身份证号码
  */
 function isIdCard($idcard)
 {
     #  转化为大写,如出现x
     $idcard = strtoupper($idcard);
     #  加权因子
-    $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
-    $ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
+    $wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
+    $ai = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
     #  按顺序循环处理前17位
     $sigma = 0;
     #  提取前17位的其中一位,并将变量类型转为实数
@@ -259,11 +249,11 @@ function isIdCard($idcard)
         return false;
     }
 }
- 
+
 /**
  *  根据身份证号,返回对应的生肖
  *  author:xiaochuan
- *  @param string $idcard    身份证号码
+ * @param string $idcard 身份证号码
  */
 function get_zodiac($idcard)
 { //
@@ -271,9 +261,9 @@ function get_zodiac($idcard)
         return null;
     }
     $start = 1901;
-    $end = (int)substr($idcard, 6, 4);
-    $x = ($start - $end) % 12;
-    $val = '';
+    $end   = (int)substr($idcard, 6, 4);
+    $x     = ($start - $end) % 12;
+    $val   = '';
     if ($x == 1 || $x == -11) {
         $val = '鼠';
     }
@@ -312,20 +302,20 @@ function get_zodiac($idcard)
     }
     return $val;
 }
- 
+
 /**
  *  根据身份证号,返回对应的星座
  *  author:xiaochuan
- *  @param string $idcard    身份证号码
+ * @param string $idcard 身份证号码
  */
 function get_starsign($idcard)
 {
     if (empty($idcard)) {
         return null;
     }
-    $b = substr($idcard, 10, 4);
-    $m = (int)substr($b, 0, 2);
-    $d = (int)substr($b, 2);
+    $b   = substr($idcard, 10, 4);
+    $m   = (int)substr($b, 0, 2);
+    $d   = (int)substr($b, 2);
     $val = '';
     if (($m == 1 && $d <= 21) || ($m == 2 && $d <= 19)) {
         $val = "水瓶座";

+ 371 - 360
app/mainapp/controller/Wcomjobs.php

@@ -1,7 +1,8 @@
 <?php
+
 namespace app\mainapp\controller;
 
-use think\facade\Session;
+use app\common\service\RensheService;
 use app\mainapp\BaseController;
 
 use app\common\model\Comjobs as ComjobsModel;
@@ -20,381 +21,391 @@ use think\facade\Db;
 
 class Wcomjobs extends BaseController
 {
-	
-	
-	public function pageReport()
-	{
-		$workerid = input('workerid/d', 0);
-		$comjobslist = ComjobsModel::where(['workerid'=>$workerid])->order(['updatetime'=>'desc', 'createtime'=>'desc', 'id'=>'desc'])->field('id as value, title, priority')->select()->toArray();
-		array_unshift( $comjobslist, array('value'=>0,'title'=>'全部') );
-		
-		// $catelist = DemandCateModel::field('id as value, title, priority')->order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
-		// array_unshift( $catelist, array('value'=>0,'title'=>'全部') );
-		
-		page_result(0, "", array(
-			'comjobslist'	=> $comjobslist,
-			'statuslist'	=> array( ['value'=>0,'title'=>"全部"], ['value'=>1,'title'=>"待审核"], ['value'=>2,'title'=>"待面试"], ['value'=>3,'title'=>"已入职"], ['value'=>4,'title'=>"无效报备"] )
-			));
-	}
-	
-	public function listReport()
-	{
-		$ppage = input('ppage/d', 1);
-		$psize = input('psize/d', 20);
-		$map = array();
-		$workerid = input('workerid/d', 0);
-		$map[] = ['workerid','=',$workerid];
-		$status = input('status/d', 0);
-		if (!empty($status)){
-			$map[] = ['status','=',$status];
-		}
-		$comjobsid = input('comjobsid/d', 0);
-		if (!empty($comjobsid)){
-			$map[] = ['comjobsid','=',$comjobsid];
-		}
-		$plist = ComjobsReportModel::with(['comjobs','broker'])->where($map)->order(['createtime'=>'desc', 'id'=>'desc'])->page($ppage)->limit($psize)->append(['status_text'])->select();
-		page_result(0, "", array(
-			'plist' => $plist,
-			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
-	
-	public function setReportStatus()
-	{
-		$workerid = input('workerid/d', 0);
-		$id = input('id/d', 0);
-		$report = ComjobsReportModel::with(['comjobs','broker'])->where(['workerid'=>$workerid,'id'=>$id])->append(['status_text'])->findOrEmpty();
-		if ( $report->isEmpty() ){
-			page_result(1, "报备信息不存在。");
-		}
-		$status = input('status/d', 1);
-		$retremark = $status==4 ? input('retremark/s', "") : "";
-		$report->save([
-			'status'	=> $status,
-			'retremark'	=> $retremark
-		]);
-		page_result(0, "", array(
-			'report' => $report
-			));
-	}
-	
-	
-	
-	public function pageComlog()
-	{
-		$workerid = input('workerid/d', 0);
-		$comjobslist = ComjobsModel::where(['workerid'=>$workerid])->order(['updatetime'=>'desc', 'createtime'=>'desc', 'id'=>'desc'])->field('id as value,title')->select()->toArray();
-		array_unshift( $comjobslist, array('value'=>0,'title'=>'全部') );
-		page_result(0, "", array(
-			'comjobslist'	=> $comjobslist,
-			'statuslist'	=> array( ['value'=>0,'title'=>"全部"], ['value'=>1,'title'=>"未跟进"], ['value'=>2,'title'=>"未面试"], ['value'=>3,'title'=>"面试通过"], ['value'=>4,'title'=>"面试未通过"], ['value'=>5,'title'=>"用户放弃"], ['value'=>6,'title'=>"已入职"], ['value'=>7,'title'=>"已离职"] )
-			));
-	}
-	
-	public function listComlog()
-	{
-		$ppage = input('ppage/d', 1);
-		$psize = input('psize/d', 20);
-		$map = array();
-		$workerid = input('workerid/d', 0);
-		$map[] = ['workerid','=',$workerid];
-		$status = input('status/d', 0);
-		if (!empty($status)){
-			$map[] = ['status','=',$status];
-		}
-		$comjobsid = input('comjobsid/d', 0);
-		if (!empty($comjobsid)){
-			$map[] = ['comjobsid','=',$comjobsid];
-		}
-		$plist = ComjobsLogModel::with(['comjobs','user'])->where($map)->order(['createtime'=>'desc', 'id'=>'desc'])->page($ppage)->limit($psize)->append(['status_text'])->select();
-		page_result(0, "", array(
-			'plist' => $plist,
-			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
-	
-	public function delLog()
-	{
-		$userid = input('userid/d', 0);
-		$workerid = input('workerid/d', 0);
-		$user = UserModel::where(1)->findOrEmpty($userid);
-		$worker = WorkerModel::where(['userid'=>$userid])->findOrEmpty($workerid);
-		if ( $user->isEmpty() || $worker->isEmpty() ){
-			page_result(1, "用户或公司信息不存在。");
-		}
-		$logid = input('logid/d', 0);
-		$comjobslog = ComjobsLogModel::where(['workerid'=>$workerid])->findOrEmpty($logid);
-		if ( $comjobslog->isEmpty() ){
-			page_result(1, "报名记录信息不存在。");
-		}
-		$comjobslog->delete();
-		page_result(0, "", array());
-	}
-	
-	public function statusLog()
-	{
-		$userid = input('userid/d', 0);
-		$workerid = input('workerid/d', 0);
-		$user = UserModel::where(1)->findOrEmpty($userid);
-		$worker = WorkerModel::where(['userid'=>$userid])->findOrEmpty($workerid);
-		if ( $user->isEmpty() || $worker->isEmpty() ){
-			page_result(1, "用户或公司信息不存在。");
-		}
-		$logid = input('logid/d', 0);
-		$comjobslog = ComjobsLogModel::with(['comjobs','user'])->where(['workerid'=>$workerid])->append(['status_text'])->findOrEmpty($logid);
-		if ( $comjobslog->isEmpty() ){
-			page_result(1, "报名记录信息不存在。");
-		}
-		$status = input('status/d', 1);
-		$comjobslog->save([
-			'status'	=> $status
-		]);
-		page_result(0, "", array(
-			'comjobslog'	=> $comjobslog 
-		));
-	}
-	
-	
-	public function statusComjobs()
-	{
-		$userid = input('userid/d', 0);
-		$workerid = input('workerid/d', 0);
-		$user = UserModel::where(1)->findOrEmpty($userid);
-		$worker = WorkerModel::where(['userid'=>$userid])->findOrEmpty($workerid);
-		if ( $user->isEmpty() || $worker->isEmpty() ){
-			page_result(1, "用户或公司信息不存在。");
-		}
-		$comjobsid = input('comjobsid/d', 0);
-		$comjobs = ComjobsModel::where(1)->findOrEmpty($comjobsid);
-		if ( $comjobs->isEmpty() ){
-			page_result(1, "招聘信息不存在。");
-		}
-		$status = input('status/d', 3);
-		if ( $status==3 && time()>strtotime($comjobs->enddate)+86400 ){
-			page_result(1, "招聘时间已截止,请先编辑招聘截止日期。");
-		}
-		$comjobs->save([
-			'status'	=> $status
-		]);
-		page_result(0, "", array());
-	}
-	
-	public function updateComjobs()
-	{
-		$userid = input('userid/d', 0);
-		$workerid = input('workerid/d', 0);
-		$user = UserModel::where(1)->findOrEmpty($userid);
-		$worker = WorkerModel::where(['userid'=>$userid])->findOrEmpty($workerid);
-		if ( $user->isEmpty() || $worker->isEmpty() ){
-			page_result(1, "用户或公司信息不存在。");
-		}
-		$param = ParamModel::where(1)->findOrEmpty();
-		if ($user->integral < $param->topcomjobs){
-			page_result(1, "每次置顶招聘信息需要扣除".$param->topcomjobs."聘豆,你当前聘豆不足。");
-		}
-		$comjobsid = input('comjobsid/d', 0);
-		$comjobs = ComjobsModel::where(1)->findOrEmpty($comjobsid);
-		if ( $comjobs->isEmpty() ){
-			page_result(1, "招聘信息不存在。");
-		}
-		$comjobs->save(['updatetime'=>time()]);
-		$intdata = array(
-		    'userid'		=> $userid,
-		    'title'			=> "置顶招聘信息扣除",
-		    'intvalue'		=> 0 - $param->topcomjobs,
-		    'intmoney'		=> 0.00,
-			'onlycontent'	=> "",
-		    'remark'		=> input('title/s', ""),
-		    'itype'			=> 4,
-			'status'		=> 2,
-		    'createtime'	=> date("Y-m-d H:i:s"),
-		    'yeartime'		=> date("Y"),
-		    'monthtime'		=> date("Ym")
-		);
-		UserIntegralModel::create($intdata);
-		$integral = intval($user->integral) - intval($param->topcomjobs);
-		$user->save([
-			'integral'	=> $integral
-		]);
-		page_result(0, "", array());
-	}
-	
-	public function listComjobs()
-	{
-		$status = input('status/d', 1);
-		$workerid = input('workerid/d', 0);
-		$ppage = input('ppage/d', 1);
-		$psize = input('psize/d', 20);
-		$map = array();
-		$map[] = ['workerid','=',$workerid];
-		if (!empty($status)){
-			$map[] = ['status','=',$status];
-		}
-		$orderby = array('updatetime'=>'desc', 'createtime'=>'desc', 'id'=>'desc');
-		$plist = ComjobsModel::with(['comjobsCate'])->where($map)->order($orderby)->page($ppage)->limit($psize)->select();
-		$param = ParamModel::where(1)->findOrEmpty();
-		page_result(0, "", array(
-			'param' => $param,
-			'plist' => $plist,
-			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
-	
-	public function getComjobs()
-	{
-		$workerid = input('workerid/d', 0);
-		$comjobsid = input('comjobsid/d', 0);
-		$comjobs = ComjobsModel::where('workerid','=',$workerid)->where('id','=',$comjobsid)->findOrEmpty();
-		if ($comjobs->isEmpty()){
-			$comjobs = "NULL";
-		}else{
-			$comjobs->tags = implode(" ", $comjobs->tags);
-		}
-		$catelist = ComjobsCateModel::order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
-		$comjobscount = ComjobsModel::where('workerid','=',$workerid)->count();
-		page_result(0, "", array(
-			'comjobs'		=> $comjobs,
-			'catelist'		=> $catelist,
-			'comjobscount'	=> $comjobscount
-			));
-	}
-	
-	
-	public function editComjobs() 
-	{
-		$userid = input('userid/d', 0);
-		$workerid = input('workerid/d', 0);
-		$user = UserModel::where(1)->findOrEmpty($userid);
-		$worker = WorkerModel::where(['userid'=>$userid])->findOrEmpty($workerid);
-		if ( $user->isEmpty() || $worker->isEmpty() ){
-			page_result(1, "用户或公司信息不存在。");
-		}
-		$param = ParamModel::where(1)->findOrEmpty();
-		$id = input('id/d', 0); 
-		$wtype = input('wtype/d', 1);
-		$zwagall = $wtype==1 ? input('zwagall/s', "") : '';
-		$picall = input('picall/s', "");
-		$recruitment_cate = input('recruitment_cate/d', 1);
-		$data = [
-			'workerid'			=> input('workerid/d', 0),
-			'title'				=> input('title/s', ""),
-			'cateid'			=> input('cateid/d', 0),
-			'province'			=> input('province/s', ""),
-			'city'				=> input('city/s', ""),
-			'district'			=> input('district/s', ""),
-			'address'			=> input('address/s', ""),
-			'agegroup'			=> input('agegroup/s', ""),
-			'tags'				=> explode(" ", input('tags/s', "")),
-			'enddate'			=> input('enddate/s', ""),
-			'requirement'		=> input('requirement/s', ""),
-			'comdetails'		=> input('comdetails/s', ""),
-			'retmoney'			=> $recruitment_cate==2 ? input('retmoney/d', 0) : 0,
-			'picall'			=> empty($picall) ? array() : explode(",", $picall),
-			'video'				=> input('video/s', ""), 
-			'companydetails'	=> input('companydetails/s', ""),
-			'wtype'				=> $wtype,
-			'bwagall'			=> input('bwagall/s', ""),
-			'zwagall'			=> $zwagall,
-			'fwagall'			=> input('fwagall/s', ""),
-			'telephone'			=> input('telephone/s', ""),
-			'remark'			=> input('remark/s', ""),
-			'recruitment_cate'	=> $recruitment_cate,
-            'latitude'			=> input('tlatitude/s', ""),
-            'longitude'			=> input('tlongitude/s', "")
-		];
-		try {
-		    validate(ComjobsValidate::class)->check($data);
-		} catch (ValidateException $e) {
-			page_result(1, $e->getError());
-		}
-		if ($id==0) {
-			$data = array_merge( $data, [
-				'status'			=> 1,
-				'priority'			=> 0,
-				'updatetime'		=> date("Y-m-d H:i:s"),
-				'createtime'		=> date("Y-m-d H:i:s"),
-				'volume'			=> 0
-			]);
-			if ($recruitment_cate==1 && $user->integral < $param->addcomjobs){
-				page_result(1, "每次发布普通招聘信息需要扣除".$param->addcomjobs."聘豆,你当前聘豆不足。");
-			}elseif ($recruitment_cate==2 && $user->integral < $param->addcomjobswyp){
-				page_result(1, "每次发布无忧招聘信息需要扣除".$param->addcomjobswyp."聘豆,你当前聘豆不足。");
-			}
-			$comjobs = ComjobsModel::create($data);
-			$intdata = array(
-			    'userid'		=> $userid,
-			    'title'			=> $recruitment_cate==1 ? "发布普通招聘信息扣除" : "发布无忧招聘信息扣除",
-			    'intvalue'		=> $recruitment_cate==1 ? (0 - $param->addcomjobs) :  (0 - $param->addcomjobswyp),
-			    'intmoney'		=> 0.00,
-				'onlycontent'	=> "",
-			    'remark'		=> input('title/s', ""),
-			    'itype'			=> 4,
-				'status'		=> 2,
-			    'createtime'	=> date("Y-m-d H:i:s"),
-			    'yeartime'		=> date("Y"),
-			    'monthtime'		=> date("Ym")
-			);
-			UserIntegralModel::create($intdata);
-			if($recruitment_cate==1){
-				$integral = intval($user->integral) - intval($param->addcomjobs);
-			}else{
-				$integral = intval($user->integral) - intval($param->addcomjobswyp);
-			}
-			$user->save([
-				'integral'	=> $integral
-			]);
-		}else{
-			$comjobs = ComjobsModel::where('id','=',$id)->findOrEmpty();
-			$comjobs->save($data);
-		}
-		page_result(0, "", array(
-			'comjobs'		=> $comjobs
-			));
-	}
-	
-	//经纪人
+
+
+    public function pageReport()
+    {
+        $workerid    = input('workerid/d', 0);
+        $comjobslist = ComjobsModel::where(['workerid' => $workerid])->order(['updatetime' => 'desc', 'createtime' => 'desc', 'id' => 'desc'])->field('id as value, title, priority')->select()->toArray();
+        array_unshift($comjobslist, ['value' => 0, 'title' => '全部']);
+
+        // $catelist = DemandCateModel::field('id as value, title, priority')->order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
+        // array_unshift( $catelist, array('value'=>0,'title'=>'全部') );
+
+        page_result(0, "", [
+            'comjobslist' => $comjobslist,
+            'statuslist'  => [['value' => 0, 'title' => "全部"], ['value' => 1, 'title' => "待审核"], ['value' => 2, 'title' => "待面试"], ['value' => 3, 'title' => "已入职"], ['value' => 4, 'title' => "无效报备"]],
+        ]);
+    }
+
+    public function listReport()
+    {
+        $ppage    = input('ppage/d', 1);
+        $psize    = input('psize/d', 20);
+        $map      = [];
+        $workerid = input('workerid/d', 0);
+        $map[]    = ['workerid', '=', $workerid];
+        $status   = input('status/d', 0);
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $comjobsid = input('comjobsid/d', 0);
+        if (!empty($comjobsid)) {
+            $map[] = ['comjobsid', '=', $comjobsid];
+        }
+        $plist = ComjobsReportModel::with(['comjobs', 'broker'])->where($map)->order(['createtime' => 'desc', 'id' => 'desc'])->page($ppage)->limit($psize)->append(['status_text'])->select();
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
+    public function setReportStatus()
+    {
+        $workerid = input('workerid/d', 0);
+        $id       = input('id/d', 0);
+        $report   = ComjobsReportModel::with(['comjobs', 'broker'])->where(['workerid' => $workerid, 'id' => $id])->append(['status_text'])->findOrEmpty();
+        if ($report->isEmpty()) {
+            page_result(1, "报备信息不存在。");
+        }
+        $status    = input('status/d', 1);
+        $retremark = $status == 4 ? input('retremark/s', "") : "";
+        $report->save([
+            'status'    => $status,
+            'retremark' => $retremark,
+        ]);
+        page_result(0, "", [
+            'report' => $report,
+        ]);
+    }
+
+
+    public function pageComlog()
+    {
+        $workerid    = input('workerid/d', 0);
+        $comjobslist = ComjobsModel::where(['workerid' => $workerid])->order(['updatetime' => 'desc', 'createtime' => 'desc', 'id' => 'desc'])->field('id as value,title')->select()->toArray();
+        array_unshift($comjobslist, ['value' => 0, 'title' => '全部']);
+        page_result(0, "", [
+            'comjobslist' => $comjobslist,
+            'statuslist'  => [['value' => 0, 'title' => "全部"], ['value' => 1, 'title' => "未跟进"], ['value' => 2, 'title' => "未面试"], ['value' => 3, 'title' => "面试通过"], ['value' => 4, 'title' => "面试未通过"], ['value' => 5, 'title' => "用户放弃"], ['value' => 6, 'title' => "已入职"], ['value' => 7, 'title' => "已离职"]],
+        ]);
+    }
+
+    public function listComlog()
+    {
+        $ppage    = input('ppage/d', 1);
+        $psize    = input('psize/d', 20);
+        $map      = [];
+        $workerid = input('workerid/d', 0);
+        $map[]    = ['workerid', '=', $workerid];
+        $status   = input('status/d', 0);
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $comjobsid = input('comjobsid/d', 0);
+        if (!empty($comjobsid)) {
+            $map[] = ['comjobsid', '=', $comjobsid];
+        }
+        $plist = ComjobsLogModel::with(['comjobs', 'user'])->where($map)->order(['createtime' => 'desc', 'id' => 'desc'])->page($ppage)->limit($psize)->append(['status_text'])->select();
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
+    public function delLog()
+    {
+        $userid   = input('userid/d', 0);
+        $workerid = input('workerid/d', 0);
+        $user     = UserModel::where(1)->findOrEmpty($userid);
+        $worker   = WorkerModel::where(['userid' => $userid])->findOrEmpty($workerid);
+        if ($user->isEmpty() || $worker->isEmpty()) {
+            page_result(1, "用户或公司信息不存在。");
+        }
+        $logid      = input('logid/d', 0);
+        $comjobslog = ComjobsLogModel::where(['workerid' => $workerid])->findOrEmpty($logid);
+        if ($comjobslog->isEmpty()) {
+            page_result(1, "报名记录信息不存在。");
+        }
+        $comjobslog->delete();
+        page_result(0, "", []);
+    }
+
+    public function statusLog()
+    {
+        $userid   = input('userid/d', 0);
+        $workerid = input('workerid/d', 0);
+        $user     = UserModel::where(1)->findOrEmpty($userid);
+        $worker   = WorkerModel::where(['userid' => $userid])->findOrEmpty($workerid);
+        if ($user->isEmpty() || $worker->isEmpty()) {
+            page_result(1, "用户或公司信息不存在。");
+        }
+        $logid      = input('logid/d', 0);
+        $comjobslog = ComjobsLogModel::with(['comjobs', 'user', 'comjobs.comjobsCate'])->where(['workerid' => $workerid])->append(['status_text'])->findOrEmpty($logid);
+        if ($comjobslog->isEmpty()) {
+            page_result(1, "报名记录信息不存在。");
+        }
+        $status = input('status/d', 1);
+        $comjobslog->save([
+            'status' => $status,
+        ]);
+
+        //同步人社局
+        $comjobslog['worker'] = $worker;
+        event('JobMatch', $comjobslog);
+
+        page_result(0, "", [
+            'comjobslog' => $comjobslog,
+        ]);
+    }
+
+
+    public function statusComjobs()
+    {
+        $userid   = input('userid/d', 0);
+        $workerid = input('workerid/d', 0);
+        $user     = UserModel::where(1)->findOrEmpty($userid);
+        $worker   = WorkerModel::where(['userid' => $userid])->findOrEmpty($workerid);
+        if ($user->isEmpty() || $worker->isEmpty()) {
+            page_result(1, "用户或公司信息不存在。");
+        }
+        $comjobsid = input('comjobsid/d', 0);
+        $comjobs   = ComjobsModel::where(1)->findOrEmpty($comjobsid);
+        if ($comjobs->isEmpty()) {
+            page_result(1, "招聘信息不存在。");
+        }
+        $status = input('status/d', 3);
+        if ($status == 3 && time() > strtotime($comjobs->enddate) + 86400) {
+            page_result(1, "招聘时间已截止,请先编辑招聘截止日期。");
+        }
+        $comjobs->save([
+            'status' => $status,
+        ]);
+        page_result(0, "", []);
+    }
+
+    public function updateComjobs()
+    {
+        $userid   = input('userid/d', 0);
+        $workerid = input('workerid/d', 0);
+        $user     = UserModel::where(1)->findOrEmpty($userid);
+        $worker   = WorkerModel::where(['userid' => $userid])->findOrEmpty($workerid);
+        if ($user->isEmpty() || $worker->isEmpty()) {
+            page_result(1, "用户或公司信息不存在。");
+        }
+        $param = ParamModel::where(1)->findOrEmpty();
+        if ($user->integral < $param->topcomjobs) {
+            page_result(1, "每次置顶招聘信息需要扣除" . $param->topcomjobs . "聘豆,你当前聘豆不足。");
+        }
+        $comjobsid = input('comjobsid/d', 0);
+        $comjobs   = ComjobsModel::where(1)->findOrEmpty($comjobsid);
+        if ($comjobs->isEmpty()) {
+            page_result(1, "招聘信息不存在。");
+        }
+        $comjobs->save(['updatetime' => time()]);
+        $intdata = [
+            'userid'      => $userid,
+            'title'       => "置顶招聘信息扣除",
+            'intvalue'    => 0 - $param->topcomjobs,
+            'intmoney'    => 0.00,
+            'onlycontent' => "",
+            'remark'      => input('title/s', ""),
+            'itype'       => 4,
+            'status'      => 2,
+            'createtime'  => date("Y-m-d H:i:s"),
+            'yeartime'    => date("Y"),
+            'monthtime'   => date("Ym"),
+        ];
+        UserIntegralModel::create($intdata);
+        $integral = intval($user->integral) - intval($param->topcomjobs);
+        $user->save([
+            'integral' => $integral,
+        ]);
+        page_result(0, "", []);
+    }
+
+    public function listComjobs()
+    {
+        $status   = input('status/d', 1);
+        $workerid = input('workerid/d', 0);
+        $ppage    = input('ppage/d', 1);
+        $psize    = input('psize/d', 20);
+        $map      = [];
+        $map[]    = ['workerid', '=', $workerid];
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
+        }
+        $orderby = ['updatetime' => 'desc', 'createtime' => 'desc', 'id' => 'desc'];
+        $plist   = ComjobsModel::with(['comjobsCate'])->where($map)->order($orderby)->page($ppage)->limit($psize)->select();
+        $param   = ParamModel::where(1)->findOrEmpty();
+        page_result(0, "", [
+            'param'   => $param,
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
+    public function getComjobs()
+    {
+        $workerid  = input('workerid/d', 0);
+        $comjobsid = input('comjobsid/d', 0);
+        $comjobs   = ComjobsModel::where('workerid', '=', $workerid)->where('id', '=', $comjobsid)->findOrEmpty();
+        if ($comjobs->isEmpty()) {
+            $comjobs = "NULL";
+        } else {
+            $comjobs->tags = implode(" ", $comjobs->tags);
+        }
+        $catelist     = ComjobsCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select()->toArray();
+        $comjobscount = ComjobsModel::where('workerid', '=', $workerid)->count();
+        page_result(0, "", [
+            'comjobs'      => $comjobs,
+            'catelist'     => $catelist,
+            'comjobscount' => $comjobscount,
+        ]);
+    }
+
+
+    public function editComjobs()
+    {
+        $userid   = input('userid/d', 0);
+        $workerid = input('workerid/d', 0);
+        $user     = UserModel::where(1)->findOrEmpty($userid);
+        $worker   = WorkerModel::where(['userid' => $userid])->findOrEmpty($workerid);
+        if ($user->isEmpty() || $worker->isEmpty()) {
+            page_result(1, "用户或公司信息不存在。");
+        }
+        $param            = ParamModel::where(1)->findOrEmpty();
+        $id               = input('id/d', 0);
+        $wtype            = input('wtype/d', 1);
+        $zwagall          = $wtype == 1 ? input('zwagall/s', "") : '';
+        $picall           = input('picall/s', "");
+        $recruitment_cate = input('recruitment_cate/d', 1);
+        $data             = [
+            'workerid'         => input('workerid/d', 0),
+            'title'            => input('title/s', ""),
+            'cateid'           => input('cateid/d', 0),
+            'province'         => input('province/s', ""),
+            'city'             => input('city/s', ""),
+            'district'         => input('district/s', ""),
+            'address'          => input('address/s', ""),
+            'agegroup'         => input('agegroup/s', ""),
+            'tags'             => explode(" ", input('tags/s', "")),
+            'enddate'          => input('enddate/s', ""),
+            'requirement'      => input('requirement/s', ""),
+            'comdetails'       => input('comdetails/s', ""),
+            'retmoney'         => $recruitment_cate == 2 ? input('retmoney/d', 0) : 0,
+            'picall'           => empty($picall) ? [] : explode(",", $picall),
+            'video'            => input('video/s', ""),
+            'companydetails'   => input('companydetails/s', ""),
+            'wtype'            => $wtype,
+            'bwagall'          => input('bwagall/s', ""),
+            'zwagall'          => $zwagall,
+            'fwagall'          => input('fwagall/s', ""),
+            'telephone'        => input('telephone/s', ""),
+            'remark'           => input('remark/s', ""),
+            'recruitment_cate' => $recruitment_cate,
+            'latitude'         => input('tlatitude/s', ""),
+            'longitude'        => input('tlongitude/s', ""),
+        ];
+        try {
+            validate(ComjobsValidate::class)->check($data);
+        } catch (ValidateException $e) {
+            page_result(1, $e->getError());
+        }
+        if ($id == 0) {
+            $data = array_merge($data, [
+                'status'     => 1,
+                'priority'   => 0,
+                'updatetime' => date("Y-m-d H:i:s"),
+                'createtime' => date("Y-m-d H:i:s"),
+                'volume'     => 0,
+            ]);
+            if ($recruitment_cate == 1 && $user->integral < $param->addcomjobs) {
+                page_result(1, "每次发布普通招聘信息需要扣除" . $param->addcomjobs . "聘豆,你当前聘豆不足。");
+            } elseif ($recruitment_cate == 2 && $user->integral < $param->addcomjobswyp) {
+                page_result(1, "每次发布无忧招聘信息需要扣除" . $param->addcomjobswyp . "聘豆,你当前聘豆不足。");
+            }
+            $comjobs = ComjobsModel::create($data);
+            $intdata = [
+                'userid'      => $userid,
+                'title'       => $recruitment_cate == 1 ? "发布普通招聘信息扣除" : "发布无忧招聘信息扣除",
+                'intvalue'    => $recruitment_cate == 1 ? (0 - $param->addcomjobs) : (0 - $param->addcomjobswyp),
+                'intmoney'    => 0.00,
+                'onlycontent' => "",
+                'remark'      => input('title/s', ""),
+                'itype'       => 4,
+                'status'      => 2,
+                'createtime'  => date("Y-m-d H:i:s"),
+                'yeartime'    => date("Y"),
+                'monthtime'   => date("Ym"),
+            ];
+            UserIntegralModel::create($intdata);
+            if ($recruitment_cate == 1) {
+                $integral = intval($user->integral) - intval($param->addcomjobs);
+            } else {
+                $integral = intval($user->integral) - intval($param->addcomjobswyp);
+            }
+            $user->save([
+                'integral' => $integral,
+            ]);
+        } else {
+            $comjobs = ComjobsModel::where('id', '=', $id)->findOrEmpty();
+            $comjobs->save($data);
+        }
+        page_result(0, "", [
+            'comjobs' => $comjobs,
+        ]);
+    }
+
+    //经纪人
     public function brokerPageReport()
     {
         $userid = input('userid/d', 0);
 
-        if(!empty($userid))
-        {
-            $worker_data = Db::name('worker')->field('id,userid')->where('userid',$userid)->find();
+        if (!empty($userid)) {
+            $worker_data = Db::name('worker')->field('id,userid')->where('userid', $userid)->find();
         }
-        $comjobslist = ComjobsModel::where(['workerid'=>$worker_data['id']])->order(['updatetime'=>'desc', 'createtime'=>'desc', 'id'=>'desc'])->field('id as value,title')->select()->toArray();
-        array_unshift( $comjobslist, array('value'=>0,'title'=>'全部') );
-        page_result(0, "", array(
-            'comjobslist'	=> $comjobslist,
-            'statuslist'	=> array( ['value'=>0,'title'=>"全部"], ['value'=>1,'title'=>"待审核"], ['value'=>2,'title'=>"待面试"], ['value'=>3,'title'=>"已入职"], ['value'=>4,'title'=>"无效报备"] )
-        ));
+        $comjobslist = ComjobsModel::where(['workerid' => $worker_data['id']])->order(['updatetime' => 'desc', 'createtime' => 'desc', 'id' => 'desc'])->field('id as value,title')->select()->toArray();
+        array_unshift($comjobslist, ['value' => 0, 'title' => '全部']);
+        page_result(0, "", [
+            'comjobslist' => $comjobslist,
+            'statuslist'  => [['value' => 0, 'title' => "全部"], ['value' => 1, 'title' => "待审核"], ['value' => 2, 'title' => "待面试"], ['value' => 3, 'title' => "已入职"], ['value' => 4, 'title' => "无效报备"]],
+        ]);
     }
 
     ////经纪人
     public function brokerListReport()
     {
-        $ppage = input('ppage/d', 1);
-        $psize = input('psize/d', 20);
-        $map = array();
+        $ppage  = input('ppage/d', 1);
+        $psize  = input('psize/d', 20);
+        $map    = [];
         $userid = input('userid/d', 0);
-        if(!empty($userid))
-        {
-            $worker_data = Db::name('worker')->field('id,userid')->where('userid',$userid)->find();
+        if (!empty($userid)) {
+            $worker_data = Db::name('worker')->field('id,userid')->where('userid', $userid)->find();
         }
 
-        $map[] = ['workerid','=',$worker_data['id']];
+        $map[]  = ['workerid', '=', $worker_data['id']];
         $status = input('status/d', 0);
-        if (!empty($status)){
-            $map[] = ['status','=',$status];
+        if (!empty($status)) {
+            $map[] = ['status', '=', $status];
         }
         $comjobsid = input('comjobsid/d', 0);
-        if (!empty($comjobsid)){
-            $map[] = ['comjobsid','=',$comjobsid];
+        if (!empty($comjobsid)) {
+            $map[] = ['comjobsid', '=', $comjobsid];
         }
-        $plist = ComjobsReportModel::with(['comjobs','broker'])->where($map)->order(['createtime'=>'desc', 'id'=>'desc'])->page($ppage)->limit($psize)->append(['status_text'])->select();
-        page_result(0, "", array(
-            'plist' => $plist,
-            'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-        ));
+        $plist = ComjobsReportModel::with(['comjobs', 'broker'])->where($map)->order(['createtime' => 'desc', 'id' => 'desc'])->page($ppage)->limit($psize)->append(['status_text'])->select();
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
+    /**
+     * 岗位撮合结果
+     */
+    private function _matchSubmit($log)
+    {
+        $service = new RensheService();
+        $service->MatchSubmit();
     }
-	
 }

+ 31 - 12
app/subscribe/SysRen.php

@@ -1,25 +1,45 @@
 <?php
+
 namespace app\subscribe;
 
+use app\common\model\Worker;
+use app\common\service\RensheService;
 use think\Event;
+use think\facade\Log;
 
 class SysRen
 {
-    /**
-     * 岗位信息库提交
-     */
-    public function onJobSubmit($param)
-    {
-        echo '岗位信息库提交';
-        return 'a';
-    }
-
     /**
      * 岗位撮合结果信息提交
      */
     public function onJobMatch($param)
     {
-        echo '岗位撮合结果信息提交';
+        if ($param['status'] == 3) {
+            if (empty($param['comjobs']['comjobsCate']['code'])) {
+                Log::error('岗位撮合同步失败,工种编号不存在,撮合id:' . $param['id']);
+            }
+
+            //数据初始化
+            $data           = [];
+            $data['aca111'] = $param['comjobs']['comjobsCate']['code'];
+            $data['aca112'] = $param['comjobs']['title'];
+            $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'];
+            $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'];
+            $data['bec001'] = $param['user']['address'];
+            $data['bae025'] = $param['user']['mobile'];
+
+            //发送请求
+            $service = new RensheService($data);
+            $service->MatchSubmit();
+        }
     }
 
     /**
@@ -27,7 +47,6 @@ class SysRen
      */
     public function subscribe(Event $event)
     {
-        $event->listen('JobSubmit', [$this,'onJobSubmit']);
-        $event->listen('JobMatch',[$this,'onJobMatch']);
+        $event->listen('JobMatch', [$this, 'onJobMatch']);
     }
 }