Comjobs.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  1. <?php
  2. namespace app\worker\controller;
  3. use app\worker\BaseController;
  4. use app\common\model\Param as ParamModel;
  5. use app\common\model\User as UserModel;
  6. use app\common\model\Worker as WorkerModel;
  7. use app\common\model\Comjobs as ComjobsModel;
  8. use app\common\model\ComjobsPcate as ComjobsPcateModel;
  9. use app\common\model\ComjobsCate as ComjobsCateModel;
  10. use app\common\model\ComjobsLog as ComjobsLogModel;
  11. use app\common\model\ComjobsStar as ComjobsStarModel;
  12. use app\common\model\UserIntegral as UserIntegralModel;
  13. use think\facade\Session;
  14. use think\facade\Db;
  15. use app\common\model\ComjobsSearchCate as ComjobsSearchCateModel;
  16. use app\common\model\ComjobsSearch as ComjobsSearchModel;
  17. class Comjobs extends BaseController
  18. {
  19. // 报名记录
  20. public function logList()
  21. {
  22. $workerid = $this->access_worker['id'];
  23. $comjobslist = ComjobsModel::where(['workerid'=>$workerid])
  24. ->order(['id'=>'desc'])
  25. ->where('del_status',0)
  26. ->select();
  27. $comjobs_cate_data = Db::name('comjobs')
  28. ->alias('a')
  29. ->field('any_value(a.id) id,a.cateid,any_value(a.workerid) workerid,any_value(b.title) title')
  30. ->where('a.workerid',$workerid)
  31. ->join('comjobs_cate b','a.cateid = b.id','LEFT')
  32. ->group('a.cateid')
  33. ->select();
  34. return view('comjobs/loglist',[
  35. 'comjobslist' => $comjobslist,
  36. 'comjobs_cate_data' => $comjobs_cate_data
  37. ]);
  38. }
  39. public function delLog()
  40. {
  41. $workerid = $this->access_worker['id'];
  42. $idarr = input('idarr/a');
  43. // $log = ComjobsLogModel::where(['workerid'=>$workerid])->whereIn('id',$idarr)->select();
  44. // $result = $log->delete();
  45. $comjobsLog_data = Db::name('comjobs_log')
  46. ->where(['workerid'=>$workerid])
  47. ->whereIn('id',$idarr)
  48. ->update(['del_status'=>1]);
  49. if ($comjobsLog_data){
  50. exit(json_encode(array(
  51. 'code' => 0,
  52. 'msg' => ""
  53. )));
  54. }
  55. exit(json_encode(array(
  56. 'code' => 1,
  57. 'msg' => "删除失败,请稍后重试"
  58. )));
  59. }
  60. public function fieldLog()
  61. {
  62. $workerid = $this->access_worker['id'];
  63. $id = input('id/d',0);
  64. $log = ComjobsLogModel::where(['workerid'=>$workerid])->findOrEmpty($id);
  65. if ($log->isEmpty()){
  66. exit(json_encode(array(
  67. 'code' => 1,
  68. 'msg' => "信息不存在"
  69. )));
  70. }else{
  71. $log->save([
  72. input('field/s') => input('value')
  73. ]);
  74. }
  75. exit(json_encode(array(
  76. 'code' => 0
  77. )));
  78. }
  79. public function listLog()
  80. {
  81. $workerid = $this->access_worker['id'];
  82. $limit = input('limit/d',20);
  83. $page = input('page/d',1);
  84. $where = array();
  85. $where[] = ['a.workerid', '=', $workerid];
  86. $where[] = ['a.del_status', '=', 0];
  87. $cateid = input('cateid/d',0);
  88. if (!empty($cateid)){
  89. $where[] = ['b.cateid', '=', $cateid];
  90. }
  91. $comjobsid = input('comjobsid/d',0);
  92. if (!empty($comjobsid)){
  93. $where[] = ['a.comjobsid', '=', $comjobsid];
  94. }
  95. $status = input('status/d',0);
  96. if (!empty($status)){
  97. $where[] = ['a.status', '=', $status];
  98. }
  99. $list = Db::name("comjobs_log")
  100. ->alias('a')
  101. ->field('a.id,a.status,a.remark,from_unixtime(a.createtime) createtime,a.del_status,d.avatar,d.realname,d.nickname,d.mobile,c.title cate,b.title,b.recruitment_cate')
  102. ->where($where)
  103. ->join('comjobs b','a.comjobsid = b.id','LEFT')
  104. ->join('comjobs_cate c','b.cateid = c.id','LEFT')
  105. ->join('user d','a.userid = d.id','LEFT')
  106. ->order('a.id desc')
  107. ->limit($limit)
  108. ->page($page)
  109. ->select()
  110. ->toArray();
  111. foreach($list as $k=>$v)
  112. {
  113. if($v['recruitment_cate'] == 1)
  114. {
  115. $list[$k]['recruitment_text'] = '普通招聘';
  116. }elseif($v['recruitment_cate'] == 2){
  117. $list[$k]['recruitment_text'] = '无忧聘';
  118. }
  119. if($v['status'] == 1){
  120. $list[$k]['status_text'] = '未跟进';
  121. }elseif($v['status'] == 2){
  122. $list[$k]['status_text'] = '未面试';
  123. }elseif($v['status'] == 3){
  124. $list[$k]['status_text'] = '面试通过';
  125. }elseif($v['status'] == 4){
  126. $list[$k]['status_text'] = '面试未通过';
  127. }elseif($v['status'] == 5){
  128. $list[$k]['status_text'] = '用户放弃';
  129. }elseif($v['status'] == 6){
  130. $list[$k]['status_text'] = '已入职';
  131. }elseif($v['status'] == 7){
  132. $list[$k]['status_text'] = '已离职';
  133. }
  134. }
  135. $count = Db::name("comjobs_log")
  136. ->alias('a')
  137. ->where($where)
  138. ->join('comjobs b','a.comjobsid = b.id','LEFT')
  139. ->join('comjobs_cate c','b.cateid = c.id','LEFT')
  140. ->join('user d','a.userid = d.id','LEFT')
  141. ->count();
  142. if ($count==0){
  143. exit(json_encode(array(
  144. 'code' => 1,
  145. 'msg' => "未查询到数据"
  146. )));
  147. }
  148. exit(json_encode(array(
  149. 'code' => 0,
  150. 'msg' => "",
  151. 'count' => $count,
  152. 'data' => $list
  153. )));
  154. }
  155. public function exportLog()
  156. {
  157. $workerid = $this->access_worker['id'];
  158. $where = array();
  159. $where[] = ['a.workerid', '=', $workerid];
  160. $where[] = ['a.del_status', '=', 0];
  161. $cateid = input('cateid/d',0);
  162. if (!empty($cateid)){
  163. $where[] = ['b.cateid', '=', $cateid];
  164. }
  165. $comjobsid = input('comjobsid/d',0);
  166. if (!empty($comjobsid)){
  167. $where[] = ['a.comjobsid', '=', $comjobsid];
  168. }
  169. $status = input('status/d',0);
  170. if (!empty($status)){
  171. $where[] = ['a.status', '=', $status];
  172. }
  173. $xlsData = Db::name("comjobs_log")
  174. ->alias('a')
  175. ->field('a.id,a.status,a.remark,from_unixtime(a.createtime) createtime,d.realname,d.nickname,d.mobile,c.title cate,b.title,b.recruitment_cate')
  176. ->where($where)
  177. ->join('comjobs b','a.comjobsid = b.id','LEFT')
  178. ->join('comjobs_cate c','b.cateid = c.id','LEFT')
  179. ->join('user d','a.userid = d.id','LEFT')
  180. ->order('a.id desc')
  181. ->select()
  182. ->toArray();
  183. foreach($xlsData as $k=>$v)
  184. {
  185. if($v['recruitment_cate'] == 1)
  186. {
  187. $xlsData[$k]['recruitment_text'] = '普通招聘';
  188. }elseif($v['recruitment_cate'] == 2){
  189. $xlsData[$k]['recruitment_text'] = '无忧聘';
  190. }
  191. if($v['status'] == 1){
  192. $xlsData[$k]['status_text'] = '未跟进';
  193. }elseif($v['status'] == 2){
  194. $xlsData[$k]['status_text'] = '未面试';
  195. }elseif($v['status'] == 3){
  196. $xlsData[$k]['status_text'] = '面试通过';
  197. }elseif($v['status'] == 4){
  198. $xlsData[$k]['status_text'] = '面试未通过';
  199. }elseif($v['status'] == 5){
  200. $xlsData[$k]['status_text'] = '用户放弃';
  201. }elseif($v['status'] == 6){
  202. $xlsData[$k]['status_text'] = '已入职';
  203. }elseif($v['status'] == 7){
  204. $xlsData[$k]['status_text'] = '已离职';
  205. }
  206. }
  207. $xlsCell = array(
  208. array('id','表ID'),
  209. array('realname','姓名'),
  210. array('nickname','昵称'),
  211. array('mobile','手机号'),
  212. array('title','招聘标题'),
  213. array('cate','岗位类别'),
  214. array('recruitment_text','招聘类别'),
  215. array('status_text','公司反馈'),
  216. array('remark','反馈备注'),
  217. array('createtime','报名时间'),
  218. );
  219. export_excel("招聘报名记录",$xlsCell,$xlsData);
  220. }
  221. // 企业招聘
  222. public function comjobsList()
  223. {
  224. $param = ParamModel::where(1)->findOrEmpty();
  225. $access_worker = Session::get('access_worker');
  226. $catelist = ComjobsCateModel::order(['priority'=>'desc','id'=>'desc'])->select();
  227. $is_released = 1;
  228. if($access_worker['status'] == 1)
  229. {
  230. $is_released = is_released($access_worker['id']);
  231. }
  232. return view('comjobs/comjobslist',[
  233. 'param' => $param,
  234. 'wtype' => $access_worker['wtype'],
  235. 'catelist' => $catelist,
  236. 'is_released' => $is_released['code']
  237. ]);
  238. }
  239. // 上传视频
  240. public function upload_video()
  241. {
  242. $file = request()->file("file");
  243. $savename = \think\facade\Filesystem::disk('public')->putFile('video',$file);
  244. if($file){
  245. $filename = str_replace(strrchr($_FILES['file']['name'], "."),"",$_FILES['file']['name']);
  246. exit(json_encode(array(
  247. 'code' => 0,
  248. 'msg' => "",
  249. 'data' => array(
  250. 'src' => request()->domain() ."/attachment/". str_replace("\\","/",$savename),
  251. 'title' => $filename
  252. )
  253. )));
  254. }else{
  255. exit(json_encode(array(
  256. 'code' => 1,
  257. 'msg' => "上传失败,请稍后重试"
  258. )));
  259. }
  260. }
  261. public function comjobsForm()
  262. {
  263. $worker = $this->access_worker;
  264. $id = input('id/d, 0');
  265. $comjobs = ComjobsModel::findOrEmpty($id);
  266. $catelist = ComjobsCateModel::order(['priority'=>'desc','id'=>'desc'])->select();
  267. return view('comjobs/comjobsform',[
  268. 'catelist' => $catelist,
  269. 'worker' => $worker,
  270. 'id' => $id,
  271. 'comjobs' => $comjobs
  272. ]);
  273. }
  274. public function editComjobs()
  275. {
  276. $workerid = $this->access_worker['id'];
  277. $user = UserModel::findOrEmpty($this->access_worker['userid']);
  278. if ( $user->isEmpty() ){
  279. exit(json_encode(array(
  280. 'code' => 1,
  281. 'msg' => "用户信息不存在"
  282. )));
  283. }
  284. $param = ParamModel::where(1)->findOrEmpty();
  285. $id = input('id/d', 0);
  286. $wtype = input('wtype/d', 1);
  287. $zwagall = $wtype==1 ? input('zwagall/s', "") : '';
  288. $data = [
  289. 'workerid' => $workerid,
  290. 'title' => input('title/s', ""),
  291. 'cateid' => input('cateid/d', 0),
  292. 'province' => input('province/s', ""),
  293. 'city' => input('city/s', ""),
  294. 'district' => input('district/s', ""),
  295. 'agegroup' => input('agegroup/s', ""),
  296. 'tags' => input('tags/a', array()),
  297. 'enddate' => input('enddate/s', ""),
  298. 'requirement' => input('requirement/s', ""),
  299. 'comdetails' => input('comdetails/s', ""),
  300. 'retmoney' => input('retmoney/d', ""),
  301. 'picall' => input('picall/a', array()),
  302. 'companydetails' => input('companydetails/s', ""),
  303. 'wtype' => $wtype,
  304. 'bwagall' => input('bwagall/s', ""),
  305. 'zwagall' => $zwagall,
  306. 'fwagall' => input('fwagall/s', ""),
  307. 'telephone' => input('telephone/s', ""),
  308. 'remark' => input('remark/s', ""),
  309. 'recruitment_cate' => (int)1,
  310. ];
  311. if (empty($id)){
  312. if($this->access_worker['status'] == 1)
  313. {
  314. $is_released = is_released($workerid);
  315. if($is_released['code'] == 1001)
  316. {
  317. return $is_released;
  318. }
  319. }else{
  320. if ($user->integral < $param->addcomjobs){
  321. page_result1(1, "每次发布招聘信息需要扣除".$param->addcomjobs."积分,你当前积分不足。");
  322. }
  323. }
  324. $data['priority'] = 0;
  325. $data['video'] = input('new_video/s', "");
  326. $data['updatetime'] = time();
  327. $data['createtime'] = time();
  328. $data['status'] = (int)2;
  329. $data['volume'] = 0;
  330. $comjobs = ComjobsModel::create($data);
  331. $intdata = array(
  332. 'userid' => $user->id,
  333. 'title' => "发布招聘信息扣除",
  334. 'intvalue' => 0 - $param->addcomjobs,
  335. 'intmoney' => 0.00,
  336. 'onlycontent' => "",
  337. 'remark' => input('title/s', ""),
  338. 'itype' => 4,
  339. 'createtime' => date("Y-m-d H:i:s"),
  340. 'yeartime' => date("Y"),
  341. 'monthtime' => date("Ym")
  342. );
  343. UserIntegralModel::create($intdata);
  344. $integral = intval($user->integral) - intval($param->addcomjobs);
  345. $user->save([
  346. 'integral' => $integral
  347. ]);
  348. }else{
  349. $data['updatetime'] = time();
  350. $data['status'] = input('status/d', 0);
  351. $old_video = input('old_video/s','');
  352. $new_video = input('new_video/s','');
  353. if(!empty($new_video)){
  354. $data['video'] = $new_video;
  355. }else{
  356. if(!empty($old_video))
  357. {
  358. $data['video'] = $old_video;
  359. }
  360. }
  361. $comjobs = ComjobsModel::find($id);
  362. ComjobsLogModel::update([ 'workerid' => input('workerid/d', 0) ],['comjobsid'=>$comjobs->id]);
  363. $comjobs->save($data);
  364. }
  365. exit(json_encode(array(
  366. 'code' => 0
  367. )));
  368. }
  369. public function comjobsFormWyp()
  370. {
  371. $worker = $this->access_worker;
  372. $id = input('id/d, 0');
  373. $comjobs = ComjobsModel::findOrEmpty($id);
  374. $catelist = ComjobsCateModel::order(['priority'=>'desc','id'=>'desc'])->select();
  375. return view('comjobs/comjobsformWyp',[
  376. 'catelist' => $catelist,
  377. 'worker' => $worker,
  378. 'id' => $id,
  379. 'comjobs' => $comjobs
  380. ]);
  381. }
  382. public function editComjobsWyp()
  383. {
  384. $workerid = $this->access_worker['id'];
  385. $user = UserModel::findOrEmpty($this->access_worker['userid']);
  386. if ( $user->isEmpty() ){
  387. exit(json_encode(array(
  388. 'code' => 1,
  389. 'msg' => "用户信息不存在"
  390. )));
  391. }
  392. $param = ParamModel::where(1)->findOrEmpty();
  393. $id = input('id/d', 0);
  394. $wtype = input('wtype/d', 1);
  395. $zwagall = $wtype==1 ? input('zwagall/s', "") : '';
  396. $data = [
  397. 'workerid' => $workerid,
  398. 'title' => input('title/s', ""),
  399. 'cateid' => input('cateid/d', 0),
  400. 'province' => input('province/s', ""),
  401. 'city' => input('city/s', ""),
  402. 'district' => input('district/s', ""),
  403. 'agegroup' => input('agegroup/s', ""),
  404. 'tags' => input('tags/a', array()),
  405. 'enddate' => input('enddate/s', ""),
  406. 'requirement' => input('requirement/s', ""),
  407. 'comdetails' => input('comdetails/s', ""),
  408. 'retmoney' => input('retmoney/d', ""),
  409. 'picall' => input('picall/a', array()),
  410. 'companydetails' => input('companydetails/s', ""),
  411. 'wtype' => $wtype,
  412. 'bwagall' => input('bwagall/s', ""),
  413. 'zwagall' => $zwagall,
  414. 'fwagall' => input('fwagall/s', ""),
  415. 'telephone' => input('telephone/s', ""),
  416. 'remark' => input('remark/s', ""),
  417. 'recruitment_cate' => (int)2,
  418. ];
  419. if (empty($id)){
  420. if($this->access_worker['status'] == 1)
  421. {
  422. $is_released = is_released($workerid);
  423. if($is_released['code'] == 1001)
  424. {
  425. return $is_released;
  426. }
  427. }else{
  428. if ($user->integral < $param->addcomjobswyp){
  429. page_result1(1, "每次发布招聘信息需要扣除".$param->addcomjobswyp."积分,你当前积分不足。");
  430. }
  431. }
  432. $data['priority'] = 0;
  433. $data['video'] = input('new_video/s', "");
  434. $data['updatetime'] = time();
  435. $data['createtime'] = time();
  436. $data['status'] = (int)2;
  437. $data['volume'] = 0;
  438. $comjobs = ComjobsModel::create($data);
  439. $intdata = array(
  440. 'userid' => $user->id,
  441. 'title' => "发布招聘信息扣除",
  442. 'intvalue' => 0 - $param->addcomjobs,
  443. 'intmoney' => 0.00,
  444. 'onlycontent' => "",
  445. 'remark' => input('title/s', ""),
  446. 'itype' => 4,
  447. 'createtime' => date("Y-m-d H:i:s"),
  448. 'yeartime' => date("Y"),
  449. 'monthtime' => date("Ym")
  450. );
  451. UserIntegralModel::create($intdata);
  452. $integral = intval($user->integral) - intval($param->addcomjobswyp);
  453. $user->save([
  454. 'integral' => $integral
  455. ]);
  456. }else{
  457. $old_video = input('old_video/s','');
  458. $new_video = input('new_video/s','');
  459. if(!empty($new_video)){
  460. $data['video'] = $new_video;
  461. }else{
  462. if(!empty($old_video))
  463. {
  464. $data['video'] = $old_video;
  465. }
  466. }
  467. $data['createtime'] = time();
  468. $data['status'] = input('status/d', 0);
  469. $comjobs = ComjobsModel::find($id);
  470. ComjobsLogModel::update([ 'workerid' => input('workerid/d', 0) ],['comjobsid'=>$comjobs->id]);
  471. $comjobs->save($data);
  472. }
  473. exit(json_encode(array(
  474. 'code' => 0
  475. )));
  476. }
  477. public function fieldComjobs()
  478. {
  479. $workerid = $this->access_worker['id'];
  480. $id = input('id/d',0);
  481. $comjobs = ComjobsModel::where(['workerid'=>$workerid])->findOrEmpty($id);
  482. if ($comjobs->isEmpty()){
  483. exit(json_encode(array(
  484. 'code' => 1,
  485. 'msg' => "信息不存在"
  486. )));
  487. }else{
  488. $comjobs->save([
  489. 'telephone' => input('value')
  490. ]);
  491. }
  492. exit(json_encode(array(
  493. 'code' => 0
  494. )));
  495. }
  496. public function delComjobs()
  497. {
  498. $workerid = $this->access_worker['id'];
  499. $idarr = input('idarr/a');
  500. $comjobs_data = Db::name('comjobs')
  501. ->where(['workerid'=>$workerid])
  502. ->whereIn('id',$idarr)
  503. ->update(['del_status'=>1]);
  504. if ($comjobs_data){
  505. exit(json_encode(array(
  506. 'code' => 0,
  507. 'msg' => ""
  508. )));
  509. }
  510. exit(json_encode(array(
  511. 'code' => 1,
  512. 'msg' => "删除失败,请稍后重试"
  513. )));
  514. }
  515. public function listComjobs()
  516. {
  517. $workerid = $this->access_worker['id'];
  518. $limit = input('limit/d',20);
  519. $page = input('page/d',1);
  520. $map = array();
  521. $map[] = ['workerid', '=', $workerid];
  522. $keywords = input('keywords/s', "");
  523. if (!empty($keywords)){
  524. $map[] =['title', 'like', '%'.$keywords.'%'];
  525. }
  526. $status = input('status/d');
  527. if (!empty($status)){
  528. $map[] = ['status', '=', $status];
  529. }
  530. $cateid = input('cateid/d', 0);
  531. if (!empty($cateid)){
  532. $map[] = ['cateid', '=', $cateid];
  533. }
  534. $wtype = input('wtype/d');
  535. if (!empty($wtype)){
  536. $map[] = ['wtype', '=', $wtype];
  537. }
  538. $recruitment_cate = input('recruitment_cate/d');
  539. if (!empty($recruitment_cate)){
  540. $map[] = ['recruitment_cate', '=', $recruitment_cate];
  541. }
  542. $list = ComjobsModel::with(['worker','comjobsCate'])
  543. ->withCount(['comjobsLog'])
  544. ->where('del_status',0)
  545. ->where($map)
  546. ->order('id desc')
  547. ->limit($limit)
  548. ->page($page)
  549. ->append(['wtype_text','status_text','recruitmentcate_text'])
  550. ->select();
  551. $count = ComjobsModel::where($map)->count();
  552. if ($count==0){
  553. exit(json_encode(array(
  554. 'code' => 1,
  555. 'msg' => "未查询到数据"
  556. )));
  557. }
  558. exit(json_encode(array(
  559. 'code' => 0,
  560. 'msg' => "",
  561. 'count' => $count,
  562. 'data' => $list,
  563. )));
  564. }
  565. }