linwu 2 年之前
父節點
當前提交
474acf5933

+ 24 - 0
app/common/validate/DemandReport.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace app\common\validate;
+
+use think\Validate;
+
+class DemandReport extends Validate
+{
+    protected $rule = [
+        'realname'   => 'require',
+        'mobile'     => 'require',
+        'idcard'     => 'require|idCard',
+        'arrivetime' => 'require',
+    ];
+
+    protected $message = [
+        'realname.require'   => "姓名不能为空",
+        'mobile.require'     => "电话不能为空",
+        'idcard.require'     => "身份证号不能为空",
+        'idcard.idCard'      => "身份证号格式错误",
+        'arrivetime.require' => "预计到达时间不能为空",
+    ];
+
+}

+ 432 - 329
app/mainapp/controller/Broker.php

@@ -1,347 +1,450 @@
 <?php
+
 namespace app\mainapp\controller;
 
 use app\mainapp\BaseController;
-use think\facade\Session;
 
 use app\common\model\Param as ParamModel;
 
 use app\common\model\User as UserModel;
 use app\common\model\UserFollow as UserFollowModel;
-use app\common\model\UserPart as UserPartModel;
-
-use app\common\model\Agent as AgentModel;
 use app\common\model\Broker as BrokerModel;
 use app\common\model\BrokerForm as BrokerFormModel;
+use app\common\model\DemandSnatch as DemandSnatchModel;
+use app\common\model\DemandReport as DemandReportModel;
 
-use app\common\model\ReportEntry as ReportEntryModel;
-use app\common\model\ReportFactory as ReportFactoryModel;
+use app\common\validate\DemandReport as DemandReportValidate;
+use think\exception\ValidateException;
 
+/*use app\common\model\ReportEntry as ReportEntryModel;
+use app\common\model\ReportFactory as ReportFactoryModel;
 use app\common\model\ReportOrder as ReportOrderModel;
-use app\common\model\ReportOrderlog as ReportOrderlogModel;
-
-use echowx\WxProgram;
+use app\common\model\ReportOrderlog as ReportOrderlogModel;*/
 
 class Broker extends BaseController
 {
-	
-	
-	
-	public function getListBroker()
-	{
-		$ppage = input('ppage/d', 1);
-		$psize = input('psize/d', 20);
-		$map = array();
-		$map[] = ['status','=',1];
-		$searchval = input('searchval/s', "");
-		if (!empty($searchval)){
-			$map[] =['title', 'like', '%'.$searchval.'%'];
-		}
-		$district = input('district/s', "");
-		if (!empty($district)){
-			$map[] = ['district', '=', $district];
-		}
-		$plist = BrokerModel::with(['muser'])->where($map)->order(['id'=>'desc'])->page($ppage)->limit($psize)->select();
-		page_result(0, "", array(
-			'plist' => $plist,
-			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
-	
-	
-	
-	
-	
-	// 申请注册经纪人
-	public function pageForm()
-	{
-		$param = ParamModel::where(1)->find();
-		page_result(0, "", array(
-			'param'		=> $param
-		));
-	}
-	
-	public function regBroker()
-	{
-		$realname = input('realname/s', "");
-		$mobile = input('mobile/s', "");
-		$address = input('address/s', "");
-		$idcard = input('idcard/s', "");
-		$recommender = input('recommender/s', "");
-		if ( empty($realname) || empty($mobile) || empty($address) || empty($idcard) ){
-			page_result(1, "姓名、手机号、当前住址、身份证号均不能为空。");
-		}
-		$form = new BrokerFormModel;
-		$form->save([
-			'realname'			=> $realname,
-			'mobile'			=> $mobile,
-			'address'			=> $address,
-			'idcard'			=> $idcard,
-			'recommender'		=> $recommender,
-			'status'			=> 1,
-			'remark'			=> "",
-			'createtime'		=> time()
-		]);
-		page_result(0, "", array());
-	}
-	
-	
-	
-
-	// 报备信息
-	public function getOrder()
-	{
-		$orderid = input('orderid/d',0);
-		$agentid = input('agentid/d',0);
-		$order = ReportOrderModel::with(['reportFactory'])->where(['id'=>$orderid])->find();
-		$orderlog = ReportOrderlogModel::where(['agentid'=>$agentid,'orderid'=>$orderid])->order(['id'=>"DESC"])->select();
-		ReportOrderlogModel::update(['status' => 2], ['agentid'=>$agentid,'orderid'=>$orderid]);
-		page_result(0, "", array(
-			'order'			=> $order,
-			'orderlog'		=> $orderlog
-		));
-	}
-	
-	// 订单信息	
-	public function listOrder()
-	{
-		$brokerid = input('brokerid/d',0);
-		$broker = BrokerModel::findOrEmpty($brokerid);
-		$agentid = $broker->agentid;
-		$ppage = input('ppage/d', 1);
-		$psize = input('psize/d', 20);
-		$map = array();
-		$map[] = ['ReportOrder.status', '>', 1];
-		$plist = ReportOrderModel::hasWhere('reportOrderlog',['agentid'=>$agentid])->with(['reportFactory'])->where($map)->order(['status'=>'ASC','id'=>'DESC'])->page($ppage)->limit($psize)->select()->toArray();	
-		foreach($plist as $key=>$val){
-			$plist[$key]['log'] = ReportOrderlogModel::where(['agentid'=>$agentid,'orderid'=>$val['id']])->order(['id'=>'DESC'])->findOrEmpty()->toArray();
-		}
-		page_result(0, "", array(
-			'plist' => $plist,
-			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
-	
-	
-	
-	// 数据信息
-	public function pageBroker()
-	{
-		$brokerid = input('brokerid/d', 0);
-		$stime = strtotime(date("Y-m-d"),time());
-		
-		$tuserCount = UserModel::where('brokerid', '=', $brokerid)->where('createtime','between',[$stime,$stime+86400])->count();
-		$userCount = UserModel::where('brokerid', '=', $brokerid)->count();
-		
-		$tentryCount = ReportEntryModel::where('brokerid', '=', $brokerid)->where('createtime','between',[$stime,$stime+86400])->count();
-		$entryCount = ReportEntryModel::where('brokerid', '=', $brokerid)->count();
-		
-		page_result(0, "", array('countobj' => array(
-			'tuser'		=> $tuserCount,
-			'user'		=> $userCount,
-			'tentry'	=> $tentryCount,
-			'entry'		=> $entryCount
-			)));
-	}
-		
-	// 报备信息
-	public function getEntry()
-	{
-		$entryid = input('entryid/d',0);
-		$brokerid = input('brokerid/d',0);
-		$entry = ReportEntryModel::with(['reportFactory'])->where(['brokerid'=>$brokerid,'id'=>$entryid])->find();
-		$broker = BrokerModel::with('agent')->findOrEmpty($brokerid);
-		$factorylist = ReportFactoryModel::order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
-		$factoryidarr = ReportFactoryModel::order(['priority'=>'desc','id'=>'desc'])->column('title');
-		page_result(0, "", array(
-			'entry'			=> $entry,
-			'broker'		=> $broker,
-			'factorylist'	=> $factorylist,
-			'factoryidarr'	=> array_values($factoryidarr),
-			'today'			=> date("Y-m-d")
-		));
-	}
-	
-	public function statusEntry()
-	{
-		$entryid = input('entryid/d',0);
-		$brokerid = input('brokerid/d',0);
-		$entry = ReportEntryModel::with(['reportFactory'])->where('brokerid','=',$brokerid)->findOrEmpty($entryid);
-		if ($entry->isEmpty()){
-			page_result(1, "报备信息不存在。");
-		}
-		if ($entry->status > 1){
-			page_result(1, "报备信息已确认过。");
-		}
-		$entry->save(['status'=>2]);
-		page_result(0, "", array(
-			'entry'		=> $entry
-		));
-	}
-	
-	public function deleteEntry()
-	{
-		$entryid = input('entryid/d',0);
-		$brokerid = input('brokerid/d',0);
-		$entry = ReportEntryModel::with(['reportFactory'])->where('brokerid','=',$brokerid)->findOrEmpty($entryid);
-		if ($entry->isEmpty()){
-			page_result(1, "报备信息不存在。");
-		}
-		if ($entry->status > 1){
-			page_result(1, "报备信息已确认过,不能删除。");
-		}
-		$entry->delete();
-		page_result(0, "", array());
-	}
-	
-	public function addEntry()
-	{
-		$brokerid = input('brokerid/d',0);
-		$broker = BrokerModel::with('agent')->findOrEmpty($brokerid);
-		if ($broker->isEmpty()){
-			page_result(1, "经纪人信息不存在。");
-		}
-		$data = array(
-			'workerid'			=> $broker->workerid,
-			'agentid'			=> $broker->agentid,
-			'brokerid'			=> $brokerid,
-			'factoryid'			=> input('factoryid/d', 0),
-			'realname'			=> input('realname/s', ""),
-			'mobile'			=> input('mobile/s', ""),
-			'idcard'			=> input('idcard/s', ""),
-			'gender'			=> input('gender/s', ""),
-			'nation'			=> input('nation/s', ""),
-			'address'			=> input('address/s', ""),
-			'startdate'			=> input('startdate/s', ""),
-			'enddate'			=> input('enddate/s', ""),
-			'reftype'			=> input('reftype/s', ""),
-			'refpolicy'			=> input('refpolicy/s', ""),
-			'agentremark'		=> input('agentremark/s', ""),
-			'status'			=> input('status/d', ""),
-			'remark'			=> "",
-			'createtime'		=> time()
-		);
-		$entry = new ReportEntryModel;
-		$entry->save($data);
-		$newentry = ReportEntryModel::with(['reportFactory'])->where('brokerid','=',$brokerid)->find($entry->id);
-		page_result(0, "", array(
-			'entry'		=> $newentry
-		));
-	}
-	
-	public function setIdcard()
-	{
-		$picpath = input('picpath/s',"");
-		$picpath = root_path()."public".$picpath;
-		$idcard = aliyun_ocr_idcard( $picpath );
-		if ($idcard==false){
-			page_result(1, "身份证信息识别失败。");
-		}
-		page_result(0, "", array(
-			'idcard'		=> $idcard
-		));
-	}
-	
-	public function pageEntry()
-	{
-		$brokerid = input('brokerid/d',0);
-		$statuslist = array(
-			array('value'=>"", 'title'=>'状态不限'),
-			array('value'=>1, 'title'=>'待确认'),
-			array('value'=>2, 'title'=>'已确认'),
-			array('value'=>3, 'title'=>'已入职'),
-			array('value'=>4, 'title'=>'未通过')
-			);
-		$factorylist = ReportFactoryModel::field('id as value, title, priority')->order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
-		array_unshift($factorylist, array('value'=>"", 'title'=>'工厂不限'));
-		page_result(0, "", array(
-			'statuslist' => $statuslist,
-			'factorylist' => $factorylist
-			));
-	}
-	
-	public function listEntry()
-	{
-		$ppage = input('ppage/d', 1);
-		$psize = input('psize/d', 20);
-		$map = array();
-		$brokerid = input('brokerid/d', 0);
-		$map[] = ['brokerid', '=', $brokerid];
-		$status = input('status/d', 0);
-		if (!empty($status)){
-			$map[] = ['status', '=', $status];
-		}
-		$factoryid = input('factoryid/d', 0);
-		if (!empty($factoryid)){
-			$map[] = ['factoryid', '=', $factoryid];
-		}
-		$searchval = input('searchval/s', "");
-		if (!empty($searchval)){
-			$map[] =['realname|mobile', 'like', '%'.$searchval.'%', 'OR'];
-		}
-		$plist = ReportEntryModel::with(['reportFactory'])->where($map)->order(['id'=>'desc'])->page($ppage)->limit($psize)->select();
-		page_result(0, "", array(
-			'plist' => $plist,
-			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
-	
-	
-	// 我的邀请
-	public function getMyuser()
-	{
-		$userid = input('userid/d',0);
-		$brokerid = input('brokerid/d',0);
-		$user = UserModel::with(['userFollow'])->where('brokerid','=',$brokerid)->findOrEmpty($userid);
-		if ($user->isEmpty()){
-			page_result(1, "用户信息不存在");
-		}
-		page_result(0, "", array(
-			'user' => $user,
-		));
-	}
-	
-	public function sendFollow()
-	{
-		$userid = input('userid/d',0);
-		$ftype = input('ftype/s',"");
-		$remark = input('remark/s',"");
-		if (empty($remark)){
-			page_result(1, "请输入跟进的具体内容。");
-		}
-		$followstatus = input('followstatus/d',1);
-		UserModel::update(['followstatus'=>$followstatus],['id'=>$userid]);
-		$data = array(
-			'userid'		=> $userid,
-			'ftype'			=> $ftype,
-			'remark'		=> $remark,
-			'createtime'	=> time()
-		);
-		$follow = new UserFollowModel;
-		$follow->save($data);
-		
-		$user = UserModel::with(['userFollow'])->findOrEmpty($userid);
-		page_result(0, "", array(
-			'user' => $user,
-		));
-	}
-	
-	public function listUser()
-	{
-		$ppage = input('ppage/d', 1);
-		$psize = input('psize/d', 20);
-		$map = array();
-		$brokerid = input('brokerid/d', 0);
-		$map[] = ['brokerid', '=', $brokerid];
-		$followstatus = input('followstatus/d', 0);
-		if (!empty($followstatus)){
-			$map[] = ['followstatus', '=', $followstatus];
-		}
-		$plist = UserModel::with(['userFollow'])->where($map)->order(['id'=>'desc'])->page($ppage)->limit($psize)->select();
-		page_result(0, "", array(
-			'plist' => $plist,
-			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
-	
+
+
+    public function getListBroker()
+    {
+        $ppage     = input('ppage/d', 1);
+        $psize     = input('psize/d', 20);
+        $map       = [];
+        $map[]     = ['status', '=', 1];
+        $searchval = input('searchval/s', "");
+        if (!empty($searchval)) {
+            $map[] = ['title', 'like', '%' . $searchval . '%'];
+        }
+        $district = input('district/s', "");
+        if (!empty($district)) {
+            $map[] = ['district', '=', $district];
+        }
+        $plist = BrokerModel::with(['muser'])->where($map)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select();
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
+
+    // 申请注册经纪人
+    public function pageForm()
+    {
+        $param = ParamModel::where(1)->find();
+        page_result(0, "", [
+            'param' => $param,
+        ]);
+    }
+
+    public function regBroker()
+    {
+        $realname    = input('realname/s', "");
+        $mobile      = input('mobile/s', "");
+        $address     = input('address/s', "");
+        $idcard      = input('idcard/s', "");
+        $recommender = input('recommender/s', "");
+        if (empty($realname) || empty($mobile) || empty($address) || empty($idcard)) {
+            page_result(1, "姓名、手机号、当前住址、身份证号均不能为空。");
+        }
+        $form = new BrokerFormModel;
+        $form->save([
+            'realname'    => $realname,
+            'mobile'      => $mobile,
+            'address'     => $address,
+            'idcard'      => $idcard,
+            'recommender' => $recommender,
+            'status'      => 1,
+            'remark'      => "",
+            'createtime'  => time(),
+        ]);
+        page_result(0, "", []);
+    }
+
+    // 订单信息
+    public function listOrder()
+    {
+        $brokerid = input('brokerid/d', 0);
+        if (empty($brokerid)) {
+            page_result(0, "", [
+                'plist'   => [],
+                'pstatus' => 'noMore',
+            ]);
+        }
+        $broker = BrokerModel::find($brokerid);
+        if (empty($broker)) {
+            page_result(0, "", [
+                'plist'   => [],
+                'pstatus' => 'noMore',
+            ]);
+        }
+        $workerid = $broker->workerid;
+        $ppage    = input('ppage/d', 1);
+        $psize    = input('psize/d', 20);
+        $map      = [];
+        $map[]    = ['status', '>=', 2];
+        $map[]    = ['worker_id', '=', $workerid];
+        $plist    = DemandSnatchModel::with(['demand' => ['worker']])->where($map)->order(['status' => 'ASC', 'id' => 'DESC'])->page($ppage)->limit($psize)->append(['status_text'])->select();
+        foreach ($plist as $v) {
+            $snatch_num      = DemandReportModel::where('snatchid', $v['id'])->count();
+            $v['snatch_num'] = $snatch_num;
+        }
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
+    // 报备信息
+    public function getOrder()
+    {
+        $id        = input('id/d', 0);
+        $brokerid  = input('brokerid/d', 0);
+        $order     = DemandSnatchModel::with(['demand' => ['worker']])->where(['id' => $id])->append(['status_text'])->find();
+        $order_log = DemandReportModel::where('brokerid', $brokerid)->where('snatchid', $id)->select();
+        page_result(0, "", [
+            'order'     => $order,
+            'order_log' => $order_log,
+        ]);
+    }
+
+    public function addReport()
+    {
+        $snatchid = input('snatchid/d', 0);
+        $snatch   = DemandSnatchModel::where('id', '=', $snatchid)->findOrEmpty();
+        if ($snatch->isEmpty()) {
+            page_result(1, "订单不存在。");
+        }
+        if ($snatch['status'] != 2) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "该订单暂时无法报备",
+            ]));
+        }
+        $brokerid = input('brokerid/d', 0);
+        $broker   = BrokerModel::where('id', '=', $brokerid)->findOrEmpty();
+        if ($broker->isEmpty()) {
+            page_result(1, "经纪人信息不存在。");
+        }
+
+        $snatch_num = DemandReportModel::where('snatchid', $snatchid)->count();
+        if ($snatch_num >= $snatch['num']) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "人数已满",
+            ]));
+        }
+
+        //数据检验
+        $data = [
+            'demandid'  => $snatch['demand_id'],
+            'snatchid'   => $snatchid,
+            'workerid'    => $broker['workerid'],
+            'agentid'   => $broker['agentid'],
+            'brokerid'   => $broker['id'],
+            'realname'   => input('realname/s', ""),
+            'mobile'     => input('mobile/s', ""),
+            'idcard'     => input('idcard/s', ""),
+            'arrivetime' => input('arrivetime/s', ""),
+            'remark'     => input('remark/s', ""),
+            'retremark'  => "",
+            'createtime' => date("Y-m-d H:i:s"),
+        ];
+        try {
+            validate(DemandReportValidate::class)->check($data);
+        } catch (ValidateException $e) {
+            page_result(1, $e->getError());
+        }
+
+        $check  = DemandReportModel::where('snatchid', $snatchid)->where('mobile', $data['mobile'])->whereOr('idcard', $data['idcard'])->find();
+        if (!empty($check)) {
+            exit(json_encode([
+                'code' => 1,
+                'msg'  => "该手机号或身份证号已报备,请勿重复",
+            ]));
+        }
+
+        DemandReportModel::create($data);
+        if ($snatch_num + 1 == $snatch['num']) {
+            $snatch->status == 3;
+            $snatch->save();
+        }
+        page_result(0, "", []);
+    }
+
+    // 报备信息
+    /*public function getOrder()
+    {
+        $orderid = input('orderid/d',0);
+        $agentid = input('agentid/d',0);
+        $order = ReportOrderModel::with(['reportFactory'])->where(['id'=>$orderid])->find();
+        $orderlog = ReportOrderlogModel::where(['agentid'=>$agentid,'orderid'=>$orderid])->order(['id'=>"DESC"])->select();
+        ReportOrderlogModel::update(['status' => 2], ['agentid'=>$agentid,'orderid'=>$orderid]);
+        page_result(0, "", array(
+            'order'			=> $order,
+            'orderlog'		=> $orderlog
+        ));
+    }
+
+    // 订单信息
+    public function listOrder()
+    {
+        $brokerid = input('brokerid/d',0);
+        $broker = BrokerModel::findOrEmpty($brokerid);
+        $agentid = $broker->agentid;
+        $ppage = input('ppage/d', 1);
+        $psize = input('psize/d', 20);
+        $map = array();
+        $map[] = ['ReportOrder.status', '>', 1];
+        $plist = ReportOrderModel::hasWhere('reportOrderlog',['agentid'=>$agentid])->with(['reportFactory'])->where($map)->order(['status'=>'ASC','id'=>'DESC'])->page($ppage)->limit($psize)->select()->toArray();
+        foreach($plist as $key=>$val){
+            $plist[$key]['log'] = ReportOrderlogModel::where(['agentid'=>$agentid,'orderid'=>$val['id']])->order(['id'=>'DESC'])->findOrEmpty()->toArray();
+        }
+        page_result(0, "", array(
+            'plist' => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
+            ));
+    }
+
+
+
+    // 数据信息
+    public function pageBroker()
+    {
+        $brokerid = input('brokerid/d', 0);
+        $stime = strtotime(date("Y-m-d"),time());
+
+        $tuserCount = UserModel::where('brokerid', '=', $brokerid)->where('createtime','between',[$stime,$stime+86400])->count();
+        $userCount = UserModel::where('brokerid', '=', $brokerid)->count();
+
+        $tentryCount = ReportEntryModel::where('brokerid', '=', $brokerid)->where('createtime','between',[$stime,$stime+86400])->count();
+        $entryCount = ReportEntryModel::where('brokerid', '=', $brokerid)->count();
+
+        page_result(0, "", array('countobj' => array(
+            'tuser'		=> $tuserCount,
+            'user'		=> $userCount,
+            'tentry'	=> $tentryCount,
+            'entry'		=> $entryCount
+            )));
+    }
+
+    // 报备信息
+    public function getEntry()
+    {
+        $entryid = input('entryid/d',0);
+        $brokerid = input('brokerid/d',0);
+        $entry = ReportEntryModel::with(['reportFactory'])->where(['brokerid'=>$brokerid,'id'=>$entryid])->find();
+        $broker = BrokerModel::with('agent')->findOrEmpty($brokerid);
+        $factorylist = ReportFactoryModel::order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
+        $factoryidarr = ReportFactoryModel::order(['priority'=>'desc','id'=>'desc'])->column('title');
+        page_result(0, "", array(
+            'entry'			=> $entry,
+            'broker'		=> $broker,
+            'factorylist'	=> $factorylist,
+            'factoryidarr'	=> array_values($factoryidarr),
+            'today'			=> date("Y-m-d")
+        ));
+    }
+
+    public function statusEntry()
+    {
+        $entryid = input('entryid/d',0);
+        $brokerid = input('brokerid/d',0);
+        $entry = ReportEntryModel::with(['reportFactory'])->where('brokerid','=',$brokerid)->findOrEmpty($entryid);
+        if ($entry->isEmpty()){
+            page_result(1, "报备信息不存在。");
+        }
+        if ($entry->status > 1){
+            page_result(1, "报备信息已确认过。");
+        }
+        $entry->save(['status'=>2]);
+        page_result(0, "", array(
+            'entry'		=> $entry
+        ));
+    }
+
+    public function deleteEntry()
+    {
+        $entryid = input('entryid/d',0);
+        $brokerid = input('brokerid/d',0);
+        $entry = ReportEntryModel::with(['reportFactory'])->where('brokerid','=',$brokerid)->findOrEmpty($entryid);
+        if ($entry->isEmpty()){
+            page_result(1, "报备信息不存在。");
+        }
+        if ($entry->status > 1){
+            page_result(1, "报备信息已确认过,不能删除。");
+        }
+        $entry->delete();
+        page_result(0, "", array());
+    }
+
+    public function addEntry()
+    {
+        $brokerid = input('brokerid/d',0);
+        $broker = BrokerModel::with('agent')->findOrEmpty($brokerid);
+        if ($broker->isEmpty()){
+            page_result(1, "经纪人信息不存在。");
+        }
+        $data = array(
+            'workerid'			=> $broker->workerid,
+            'agentid'			=> $broker->agentid,
+            'brokerid'			=> $brokerid,
+            'factoryid'			=> input('factoryid/d', 0),
+            'realname'			=> input('realname/s', ""),
+            'mobile'			=> input('mobile/s', ""),
+            'idcard'			=> input('idcard/s', ""),
+            'gender'			=> input('gender/s', ""),
+            'nation'			=> input('nation/s', ""),
+            'address'			=> input('address/s', ""),
+            'startdate'			=> input('startdate/s', ""),
+            'enddate'			=> input('enddate/s', ""),
+            'reftype'			=> input('reftype/s', ""),
+            'refpolicy'			=> input('refpolicy/s', ""),
+            'agentremark'		=> input('agentremark/s', ""),
+            'status'			=> input('status/d', ""),
+            'remark'			=> "",
+            'createtime'		=> time()
+        );
+        $entry = new ReportEntryModel;
+        $entry->save($data);
+        $newentry = ReportEntryModel::with(['reportFactory'])->where('brokerid','=',$brokerid)->find($entry->id);
+        page_result(0, "", array(
+            'entry'		=> $newentry
+        ));
+    }*/
+
+    public function setIdcard()
+    {
+        $picpath = input('picpath/s', "");
+        $picpath = root_path() . "public" . $picpath;
+        $idcard  = aliyun_ocr_idcard($picpath);
+        if ($idcard == false) {
+            page_result(1, "身份证信息识别失败。");
+        }
+        page_result(0, "", [
+            'idcard' => $idcard,
+        ]);
+    }
+
+    /*public function pageEntry()
+    {
+        $brokerid = input('brokerid/d',0);
+        $statuslist = array(
+            array('value'=>"", 'title'=>'状态不限'),
+            array('value'=>1, 'title'=>'待确认'),
+            array('value'=>2, 'title'=>'已确认'),
+            array('value'=>3, 'title'=>'已入职'),
+            array('value'=>4, 'title'=>'未通过')
+            );
+        $factorylist = ReportFactoryModel::field('id as value, title, priority')->order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
+        array_unshift($factorylist, array('value'=>"", 'title'=>'工厂不限'));
+        page_result(0, "", array(
+            'statuslist' => $statuslist,
+            'factorylist' => $factorylist
+            ));
+    }
+
+    public function listEntry()
+    {
+        $ppage = input('ppage/d', 1);
+        $psize = input('psize/d', 20);
+        $map = array();
+        $brokerid = input('brokerid/d', 0);
+        $map[] = ['brokerid', '=', $brokerid];
+        $status = input('status/d', 0);
+        if (!empty($status)){
+            $map[] = ['status', '=', $status];
+        }
+        $factoryid = input('factoryid/d', 0);
+        if (!empty($factoryid)){
+            $map[] = ['factoryid', '=', $factoryid];
+        }
+        $searchval = input('searchval/s', "");
+        if (!empty($searchval)){
+            $map[] =['realname|mobile', 'like', '%'.$searchval.'%', 'OR'];
+        }
+        $plist = ReportEntryModel::with(['reportFactory'])->where($map)->order(['id'=>'desc'])->page($ppage)->limit($psize)->select();
+        page_result(0, "", array(
+            'plist' => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
+            ));
+    }*/
+
+
+    // 我的邀请
+    public function getMyuser()
+    {
+        $userid   = input('userid/d', 0);
+        $brokerid = input('brokerid/d', 0);
+        $user     = UserModel::with(['userFollow'])->where('brokerid', '=', $brokerid)->findOrEmpty($userid);
+        if ($user->isEmpty()) {
+            page_result(1, "用户信息不存在");
+        }
+        page_result(0, "", [
+            'user' => $user,
+        ]);
+    }
+
+    public function sendFollow()
+    {
+        $userid = input('userid/d', 0);
+        $ftype  = input('ftype/s', "");
+        $remark = input('remark/s', "");
+        if (empty($remark)) {
+            page_result(1, "请输入跟进的具体内容。");
+        }
+        $followstatus = input('followstatus/d', 1);
+        UserModel::update(['followstatus' => $followstatus], ['id' => $userid]);
+        $data   = [
+            'userid'     => $userid,
+            'ftype'      => $ftype,
+            'remark'     => $remark,
+            'createtime' => time(),
+        ];
+        $follow = new UserFollowModel;
+        $follow->save($data);
+
+        $user = UserModel::with(['userFollow'])->findOrEmpty($userid);
+        page_result(0, "", [
+            'user' => $user,
+        ]);
+    }
+
+    public function listUser()
+    {
+        $ppage        = input('ppage/d', 1);
+        $psize        = input('psize/d', 20);
+        $map          = [];
+        $brokerid     = input('brokerid/d', 0);
+        $map[]        = ['brokerid', '=', $brokerid];
+        $followstatus = input('followstatus/d', 0);
+        if (!empty($followstatus)) {
+            $map[] = ['followstatus', '=', $followstatus];
+        }
+        $plist = UserModel::with(['userFollow'])->where($map)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select();
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
 }

+ 309 - 295
app/mainapp/controller/Wdemand.php

@@ -1,7 +1,7 @@
 <?php
+
 namespace app\mainapp\controller;
 
-use think\facade\Session;
 use app\mainapp\BaseController;
 
 use app\common\model\Demand as DemandModel;
@@ -11,304 +11,318 @@ use app\common\model\Param as ParamModel;
 use app\common\model\User as UserModel;
 use app\common\model\Worker as WorkerModel;
 use app\common\model\UserIntegral as UserIntegralModel;
+use app\common\model\DemandSnatch as DemandSnatchModel;
 
 use app\common\validate\Demand as DemandValidate;
 use think\exception\ValidateException;
 
 class Wdemand extends BaseController
 {
-	
-	public function pageWdemandLog()
-	{
-		$demandid = input('demandid/d', 0);
-		$workerid = input('workerid/d', 0);
-		$demand = DemandModel::where(['workerid'=>$workerid])->append(['ftype_text'])->findOrEmpty($demandid); 
-		if ( $demand->isEmpty() ){
-			page_result(1, "招聘订单信息不存在。");
-		}
-		$logcount = DemandLogModel::where(['demandid'=>$demandid])->count();
-		page_result(0, "", array(
-			'demand'	=> $demand,
-			'logcount'	=> $logcount
-			));
-	}
-	
-	public function wdemandLogList()
-	{
-		$ppage = input('ppage/d', 1);
-		$psize = input('psize/d', 20);
-		$map = array();
-		$workerid = input('workerid/d', 0);
-		$map[] = ['workerid','=',$workerid];
-		$demandid = input('demandid/d', 0);
-		$map[] = ['demandid','=',$demandid];
-		$plist = DemandLogModel::with(['gworker'])->where($map)->order(['createtime'=>'desc', 'id'=>'desc'])->page($ppage)->limit($psize)->select();
-		page_result(0, "", array(
-			'plist'		=> $plist, 
-			'pstatus'	=> $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
-	
-	
-	
-	public function pageComlog()
-	{
-		$workerid = input('workerid/d', 0);
-		$demandlist = DemandModel::where(['workerid'=>$workerid])->order(['updatetime'=>'desc', 'createtime'=>'desc', 'id'=>'desc'])->field('id as value,title')->select()->toArray();
-		array_unshift( $demandlist, array('id'=>0,'value'=>'全部') );
-		page_result(0, "", array(
-			'demandlist'	=> $demandlist,
-			'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];
-		}
-		$demandid = input('demandid/d', 0);
-		if (!empty($demandid)){
-			$map[] = ['demandid','=',$demandid];
-		}
-		$plist = DemandLogModel::with(['demand','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);
-		$demandlog = DemandLogModel::where(['workerid'=>$workerid])->findOrEmpty($logid);
-		if ( $demandlog->isEmpty() ){
-			page_result(1, "报名记录信息不存在。");
-		}
-		$demandlog->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);
-		$demandlog = DemandLogModel::with(['demand','user'])->where(['workerid'=>$workerid])->append(['status_text'])->findOrEmpty($logid);
-		if ( $demandlog->isEmpty() ){
-			page_result(1, "报名记录信息不存在。");
-		}
-		$status = input('status/d', 1);
-		$demandlog->save([
-			'status'	=> $status
-		]);
-		page_result(0, "", array(
-			'demandlog'	=> $demandlog 
-		));
-	}
-	
-	
-	public function statusDemand()
-	{
-		$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, "用户或公司信息不存在。");
-		}
-		$demandid = input('demandid/d', 0);
-		$demand = DemandModel::where(1)->findOrEmpty($demandid);
-		if ( $demand->isEmpty() ){
-			page_result(1, "招聘订单信息不存在。");
-		}
-		$status = input('status/d', 3);
-		if ( $status==3 && time()>strtotime($demand->enddate)+86400 ){
-			page_result(1, "招聘时间已截止,请先编辑招聘订单截止日期。");
-		}
-		$demand->save([
-			'status'	=> $status
-		]);
-		page_result(0, "", array());
-	}
-	
-	public function updateDemand()
-	{
-		$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->topdemand){
-			page_result(1, "每次置顶招聘订单信息需要扣除".$param->topdemand."积分,你当前积分不足。");
-		}
-		$demandid = input('demandid/d', 0);
-		$demand = DemandModel::where(1)->findOrEmpty($demandid);
-		if ( $demand->isEmpty() ){
-			page_result(1, "招聘信息不存在。");
-		}
-		$demand->save(['updatetime'=>time()]);
-		$intdata = array(
-		    'userid'		=> $userid,
-		    'title'			=> "置顶招聘订单信息扣除",
-		    'intvalue'		=> 0 - $param->topdemand,
-		    'intmoney'		=> 0.00,
-			'onlycontent'	=> "",
-		    'remark'		=> input('title/s', ""),
-		    'itype'			=> 5,
-			'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->topdemand);
-		$user->save([
-			'integral'	=> $integral
-		]);
-		page_result(0, "", array());
-	}
-	
-	public function listDemand()
-	{
-		$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 = DemandModel::with(['demandCate'])->where($map)->order($orderby)->page($ppage)->limit($psize)->append(['ftype_text'])->select();
-		$param = ParamModel::where(1)->findOrEmpty();
-		page_result(0, "", array(
-			'param' => $param,
-			'plist' => $plist,
-			'pstatus' => $psize > count($plist) ? 'noMore' : 'more'
-			));
-	}
-	
-	public function getDemand()
-	{
-		$workerid = input('workerid/d', 0);
-		$demandid = input('demandid/d', 0);
-		$demand = DemandModel::where('workerid','=',$workerid)->where('id','=',$demandid)->findOrEmpty();
-		if ($demand->isEmpty()){
-			$demand = "NULL";
-		}else{
-			$demand->tags = implode(" ", $demand->tags);
-		}
-		$catelist = DemandCateModel::order(['priority'=>'desc','id'=>'desc'])->select()->toArray();
-		page_result(0, "", array(
-			'demand'		=> $demand,
-			'catelist'		=> $catelist
-			));
-	}
-	
-	
-	public function editDemand() 
-	{
-		$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);
-		$picall = input('picall/s', "");
-		$zwagall = $wtype==1 ? input('zwagall/s', "") : '';
-		$data = [
-			'workerid'			=> input('workerid/d', 0),
-			'title'				=> input('title/s', ""),
-			'num'				=> input('num/d', ""),
-			'cateid'			=> input('cateid/d', 0),
-			'province'			=> input('province/s', ""),
-			'city'				=> input('city/s', ""),
-			'district'			=> input('district/s', ""),
-			'agegroup'			=> input('agegroup/s', ""),
-			'tags'				=> explode(" ", input('tags/s', "")),
-			'enddate'			=> input('enddate/s', ""),
-			'requirement'		=> input('requirement/s', ""),
-			'comdetails'		=> input('comdetails/s', ""),
-			'picall'			=> empty($picall) ? array() : explode(",", $picall),
-			'video'				=> input('video/s', ""), 
-			'wtype'				=> $wtype,
-			'bwagall'			=> input('bwagall/s', ""),
-			'zwagall'			=> $zwagall,
-			'ftype'				=> input('ftype/d', 1),
-			'fwagall'			=> input('fwagall/s', ""),
-			'telephone'			=> input('telephone/s', ""),
-			'remark'			=> input('remark/s', ""),
-		];
-		try {
-		    validate(DemandValidate::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,
-				'telearr'			=> array()
-			]);
-			if ($user->integral < $param->adddemand){
-				page_result(1, "每次发布招聘订单信息需要扣除".$param->adddemand."积分,你当前积分不足。");
-			}
-			$demand = DemandModel::create($data);
-			$intdata = array(
-			    'userid'		=> $userid,
-			    'title'			=> "发布招聘订单信息扣除",
-			    'intvalue'		=> 0 - $param->adddemand,
-			    'intmoney'		=> 0.00,
-				'onlycontent'	=> "",
-			    'remark'		=> input('title/s', ""),
-			    'itype'			=> 5,
-				'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->adddemand);
-			$user->save([
-				'integral'	=> $integral
-			]);
-		}else{
-			$demand = DemandModel::where('id','=',$id)->findOrEmpty();
-			$demand->save($data);
-		}
-		page_result(0, "", array(
-			'demand'		=> $demand
-			));
-	}
-	
+
+    public function pageWdemandLog()
+    {
+        $demandid = input('demandid/d', 0);
+        $workerid = input('workerid/d', 0);
+        $demand   = DemandModel::where(['workerid' => $workerid])->append(['ftype_text', 'wtype_text'])->findOrEmpty($demandid);
+        if ($demand->isEmpty()) {
+            page_result(1, "招聘订单信息不存在。");
+        }
+        $logcount = DemandSnatchModel::where(['demand_id' => $demandid])->where('status','>=',2)->count();
+        page_result(0, "", [
+            'demand'   => $demand,
+            'logcount' => $logcount,
+        ]);
+    }
+
+    /*public function wdemandLogList()
+    {
+        $ppage = input('ppage/d', 1);
+        $psize = input('psize/d', 20);
+        $map = array();
+        $workerid = input('workerid/d', 0);
+        $map[] = ['workerid','=',$workerid];
+        $demandid = input('demandid/d', 0);
+        $map[] = ['demandid','=',$demandid];
+        $plist = DemandLogModel::with(['gworker'])->where($map)->order(['createtime'=>'desc', 'id'=>'desc'])->page($ppage)->limit($psize)->select();
+        page_result(0, "", array(
+            'plist'		=> $plist,
+            'pstatus'	=> $psize > count($plist) ? 'noMore' : 'more'
+            ));
+    }*/
+
+    public function wdemandLogList()
+    {
+        $ppage    = input('ppage/d', 1);
+        $psize    = input('psize/d', 20);
+        $map      = [];
+        $demandid = input('demandid/d', 0);
+        $map[]    = ['demand_id', '=', $demandid];
+        $map[]    = ['status', '>=', 2];
+        $plist    = DemandSnatchModel::with(['worker'])->where($map)->order(['createtime' => 'desc', 'id' => 'desc'])->page($ppage)->limit($psize)->select();
+        page_result(0, "", [
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
+    public function pageComlog()
+    {
+        $workerid   = input('workerid/d', 0);
+        $demandlist = DemandModel::where(['workerid' => $workerid])->order(['updatetime' => 'desc', 'createtime' => 'desc', 'id' => 'desc'])->field('id as value,title')->select()->toArray();
+        array_unshift($demandlist, ['id' => 0, 'value' => '全部']);
+        page_result(0, "", [
+            'demandlist' => $demandlist,
+            '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];
+        }
+        $demandid = input('demandid/d', 0);
+        if (!empty($demandid)) {
+            $map[] = ['demandid', '=', $demandid];
+        }
+        $plist = DemandLogModel::with(['demand', '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);
+        $demandlog = DemandLogModel::where(['workerid' => $workerid])->findOrEmpty($logid);
+        if ($demandlog->isEmpty()) {
+            page_result(1, "报名记录信息不存在。");
+        }
+        $demandlog->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);
+        $demandlog = DemandLogModel::with(['demand', 'user'])->where(['workerid' => $workerid])->append(['status_text'])->findOrEmpty($logid);
+        if ($demandlog->isEmpty()) {
+            page_result(1, "报名记录信息不存在。");
+        }
+        $status = input('status/d', 1);
+        $demandlog->save([
+            'status' => $status,
+        ]);
+        page_result(0, "", [
+            'demandlog' => $demandlog,
+        ]);
+    }
+
+
+    public function statusDemand()
+    {
+        $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, "用户或公司信息不存在。");
+        }
+        $demandid = input('demandid/d', 0);
+        $demand   = DemandModel::where(1)->findOrEmpty($demandid);
+        if ($demand->isEmpty()) {
+            page_result(1, "招聘订单信息不存在。");
+        }
+        $status = input('status/d', 3);
+        if ($status == 3 && time() > strtotime($demand->enddate) + 86400) {
+            page_result(1, "招聘时间已截止,请先编辑招聘订单截止日期。");
+        }
+        $demand->save([
+            'status' => $status,
+        ]);
+        page_result(0, "", []);
+    }
+
+    public function updateDemand()
+    {
+        $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->topdemand) {
+            page_result(1, "每次置顶招聘订单信息需要扣除" . $param->topdemand . "积分,你当前积分不足。");
+        }
+        $demandid = input('demandid/d', 0);
+        $demand   = DemandModel::where(1)->findOrEmpty($demandid);
+        if ($demand->isEmpty()) {
+            page_result(1, "招聘信息不存在。");
+        }
+        $demand->save(['updatetime' => time()]);
+        $intdata = [
+            'userid'      => $userid,
+            'title'       => "置顶招聘订单信息扣除",
+            'intvalue'    => 0 - $param->topdemand,
+            'intmoney'    => 0.00,
+            'onlycontent' => "",
+            'remark'      => input('title/s', ""),
+            'itype'       => 5,
+            '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->topdemand);
+        $user->save([
+            'integral' => $integral,
+        ]);
+        page_result(0, "", []);
+    }
+
+    public function listDemand()
+    {
+        $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   = DemandModel::with(['demandCate'])->where($map)->order($orderby)->page($ppage)->limit($psize)->append(['ftype_text'])->select();
+        $param   = ParamModel::where(1)->findOrEmpty();
+        page_result(0, "", [
+            'param'   => $param,
+            'plist'   => $plist,
+            'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
+        ]);
+    }
+
+    public function getDemand()
+    {
+        $workerid = input('workerid/d', 0);
+        $demandid = input('demandid/d', 0);
+        $demand   = DemandModel::where('workerid', '=', $workerid)->where('id', '=', $demandid)->findOrEmpty();
+        if ($demand->isEmpty()) {
+            $demand = "NULL";
+        } else {
+            $demand->tags = implode(" ", $demand->tags);
+        }
+        $catelist = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select()->toArray();
+        page_result(0, "", [
+            'demand'   => $demand,
+            'catelist' => $catelist,
+        ]);
+    }
+
+
+    public function editDemand()
+    {
+        $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);
+        $picall  = input('picall/s', "");
+        $zwagall = $wtype == 1 ? input('zwagall/s', "") : '';
+        $data    = [
+            'workerid'    => input('workerid/d', 0),
+            'title'       => input('title/s', ""),
+            'num'         => input('num/d', ""),
+            'cateid'      => input('cateid/d', 0),
+            'province'    => input('province/s', ""),
+            'city'        => input('city/s', ""),
+            'district'    => input('district/s', ""),
+            'agegroup'    => input('agegroup/s', ""),
+            'tags'        => explode(" ", input('tags/s', "")),
+            'enddate'     => input('enddate/s', ""),
+            'requirement' => input('requirement/s', ""),
+            'comdetails'  => input('comdetails/s', ""),
+            'picall'      => empty($picall) ? [] : explode(",", $picall),
+            'video'       => input('video/s', ""),
+            'wtype'       => $wtype,
+            'bwagall'     => input('bwagall/s', ""),
+            'zwagall'     => $zwagall,
+            'ftype'       => input('ftype/d', 1),
+            'fwagall'     => input('fwagall/s', ""),
+            'telephone'   => input('telephone/s', ""),
+            'remark'      => input('remark/s', ""),
+        ];
+        try {
+            validate(DemandValidate::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,
+                'telearr'    => [],
+            ]);
+            if ($user->integral < $param->adddemand) {
+                page_result(1, "每次发布招聘订单信息需要扣除" . $param->adddemand . "积分,你当前积分不足。");
+            }
+            $demand  = DemandModel::create($data);
+            $intdata = [
+                'userid'      => $userid,
+                'title'       => "发布招聘订单信息扣除",
+                'intvalue'    => 0 - $param->adddemand,
+                'intmoney'    => 0.00,
+                'onlycontent' => "",
+                'remark'      => input('title/s', ""),
+                'itype'       => 5,
+                '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->adddemand);
+            $user->save([
+                'integral' => $integral,
+            ]);
+        } else {
+            $demand = DemandModel::where('id', '=', $id)->findOrEmpty();
+            $demand->save($data);
+        }
+        page_result(0, "", [
+            'demand' => $demand,
+        ]);
+    }
+
 }

+ 12 - 1
app/worker/controller/Demand.php

@@ -980,6 +980,13 @@ class Demand extends BaseController
                 ]));
             }
 
+            if ($snatch['status'] != 2) {
+                exit(json_encode([
+                    'code' => 1,
+                    'msg'  => "该订单暂时无法报备",
+                ]));
+            }
+
             $snatch_num = DemandReportModel::where('snatchid', $id)->count();
             if ($snatch_num >= $snatch['num']) {
                 exit(json_encode([
@@ -1009,6 +1016,10 @@ class Demand extends BaseController
                 'remark'     => input('remark/s', ''),
                 'createtime' => time(),
             ]);
+            if ($snatch_num + 1 == $snatch['num']) {
+                $snatch->status == 3;
+                $snatch->save();
+            }
             exit(json_encode(['code' => 0]));
         } else {
             return view('demand/report', [
@@ -1077,7 +1088,7 @@ class Demand extends BaseController
                 ->select();
             if (!$list->isEmpty()) {
                 foreach ($list as $v) {
-                    $v['snatch_num'] = DemandReportModel::where('snatchid',$v['id'])->count();
+                    $v['snatch_num'] = DemandReportModel::where('snatchid', $v['id'])->count();
                 }
             }
 

+ 43 - 35
app/worker/view/index.html

@@ -67,7 +67,11 @@
 		<div class="layui-side layui-side-menu">
 			<div class="layui-side-scroll">
 				<div class="layui-logo">
+					{eq name="access_worker.wtype" value="2"}
 					<span>劳务公司管理中心</span>
+					{else/}
+					<span>个人雇主管理中心</span>
+					{/eq}
 				</div>
 
 				<ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
@@ -103,30 +107,32 @@
 							</dd>
 						</dl>
 					</li>
-					
-					<li data-name="worder" class="layui-nav-item">
-						<a href="javascript:;" lay-tips="订单">
-							<i class="layui-icon layui-icon-component"></i>
-							<cite>订单</cite>
-						<span class="layui-nav-more"></span></a>
-						<dl class="layui-nav-child">
-							<dd>
-								<a lay-href="{:url('/demand/demandlist')}" lay-text="派遣订单">派遣订单</a>
-							</dd>
-							<dd>
-								<a lay-href="{:url('/demand/allhall')}" lay-text="抢单大厅">抢单大厅</a>
-							</dd>
-							<dd>
-								<a lay-href="{:url('/demand/roblist')}" lay-text="抢到的订单">抢到的订单</a>
-							</dd>
-							<dd>
-								<a lay-href="{:url('/demand/logList')}" lay-text="报备记录">报备记录</a>
-							</dd>
-							<dd>
-								<a lay-href="{:url('/demand/otherlist')}" lay-text="其他订单">其他订单</a>
-							</dd>
-						</dl>
-					</li>
+
+					{eq name="access_worker.wtype" value="2"}
+						<li data-name="worder" class="layui-nav-item">
+							<a href="javascript:;" lay-tips="订单">
+								<i class="layui-icon layui-icon-component"></i>
+								<cite>订单</cite>
+							<span class="layui-nav-more"></span></a>
+							<dl class="layui-nav-child">
+								<dd>
+									<a lay-href="{:url('/demand/demandlist')}" lay-text="派遣订单">派遣订单</a>
+								</dd>
+								<dd>
+									<a lay-href="{:url('/demand/allhall')}" lay-text="抢单大厅">抢单大厅</a>
+								</dd>
+								<dd>
+									<a lay-href="{:url('/demand/roblist')}" lay-text="抢到的订单">抢到的订单</a>
+								</dd>
+								<dd>
+									<a lay-href="{:url('/demand/logList')}" lay-text="报备记录">报备记录</a>
+								</dd>
+								<dd>
+									<a lay-href="{:url('/demand/otherlist')}" lay-text="其他订单">其他订单</a>
+								</dd>
+							</dl>
+						</li>
+					{/eq}
 					<li data-name="resume" class="layui-nav-item">
 						<a href="javascript:;" lay-tips="简历">
 							<i class="layui-icon layui-icon-component"></i>
@@ -144,17 +150,19 @@
 							</dd>
 						</dl>
 					</li>
-					<li data-name="worder" class="layui-nav-item">
-						<a href="javascript:;" lay-tips="共享用工">
-							<i class="layui-icon layui-icon-component"></i>
-							<cite>共享用工</cite>
-							<span class="layui-nav-more"></span></a>
-						<dl class="layui-nav-child">
-							<dd>
-								<a lay-href="{:url('/supply/supplylist')}" lay-text="用工管理">用工管理</a>
-							</dd>
-						</dl>
-					</li>
+					{eq name="access_worker.wtype" value="2"}
+						<li data-name="worder" class="layui-nav-item">
+							<a href="javascript:;" lay-tips="共享用工">
+								<i class="layui-icon layui-icon-component"></i>
+								<cite>共享用工</cite>
+								<span class="layui-nav-more"></span></a>
+							<dl class="layui-nav-child">
+								<dd>
+									<a lay-href="{:url('/supply/supplylist')}" lay-text="用工管理">用工管理</a>
+								</dd>
+							</dl>
+						</li>
+					{/eq}
 					<li data-name="admin" class="layui-nav-item">
 						<a href="javascript:;" lay-tips="公司" lay-direction="2">
 							<i class="layui-icon layui-icon-engine"></i>