Demand.php 18 KB

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