Demand.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620
  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. 'picall' => input('picall/a', array()),
  290. 'wtype' => $wtype,
  291. 'bwagall' => input('bwagall/s', ""),
  292. 'zwagall' => $zwagall,
  293. 'ftype' => input('ftype/d', 1),
  294. 'fwagall' => input('fwagall/s', ""),
  295. 'telephone' => input('telephone/s', ""),
  296. 'remark' => input('remark/s', ""),
  297. 'isfree' => 1
  298. ];
  299. try {
  300. validate(DemandValidate::class)->check($data);
  301. } catch (ValidateException $e) {
  302. exit(json_encode(array(
  303. 'code' => 1,
  304. 'msg' => $e->getError()
  305. )));
  306. }
  307. if (empty($id)){
  308. if($this->access_worker['status'] == 1)
  309. {
  310. $is_released = is_released($workerid);
  311. if($is_released['code'] == 1001)
  312. {
  313. return $is_released;
  314. }
  315. }else{
  316. if ($user->integral < $param->adddemand){
  317. page_result1(1, "每次发布订单信息需要扣除".$param->adddemand."积分,你当前积分不足。");
  318. }
  319. }
  320. $data['video'] = input('new_video/s', "");
  321. $data['updatetime'] = time();
  322. $data['createtime'] = time();
  323. $data['status'] = (int)2;
  324. $data['volume'] = 0;
  325. $data['telearr'] = array();
  326. $demand = DemandModel::create($data);
  327. $intdata = array(
  328. 'userid' => $user->id,
  329. 'title' => "发布订单信息扣除",
  330. 'intvalue' => 0 - $param->adddemand,
  331. 'intmoney' => 0.00,
  332. 'onlycontent' => "",
  333. 'remark' => input('title/s', ""),
  334. 'itype' => 4,
  335. 'createtime' => date("Y-m-d H:i:s"),
  336. 'yeartime' => date("Y"),
  337. 'monthtime' => date("Ym")
  338. );
  339. UserIntegralModel::create($intdata);
  340. $integral = intval($user->integral) - intval($param->adddemand);
  341. $user->save([
  342. 'integral' => $integral
  343. ]);
  344. }else{
  345. $old_video = input('old_video/s','');
  346. $new_video = input('new_video/s','');
  347. if(!empty($new_video)){
  348. $data['video'] = $new_video;
  349. }else{
  350. if(!empty($old_video))
  351. {
  352. $data['video'] = $old_video;
  353. }
  354. }
  355. $data['createtime'] = time();
  356. $data['status'] = input('status/d', 0);
  357. $demand = DemandModel::find($id);
  358. DemandLogModel::update([ 'workerid' => input('workerid/d', 0) ],['demandid'=>$demand->id]);
  359. $demand->save($data);
  360. }
  361. exit(json_encode(array(
  362. 'code' => 0
  363. )));
  364. }
  365. public function editdemandformWyd()
  366. {
  367. $id = input('id/d', 0);
  368. $workerid = $this->access_worker['id'];
  369. $user = UserModel::findOrEmpty($this->access_worker['userid']);
  370. $param = ParamModel::where(1)->findOrEmpty();
  371. if ($user->isEmpty()){
  372. exit(json_encode(array(
  373. 'code' => 1,
  374. 'msg' => "用户信息不存在"
  375. )));
  376. }
  377. $wtype = input('wtype/d', 1);
  378. $zwagall = $wtype==1 ? input('zwagall/s', "") : '';
  379. $data = [
  380. 'workerid' => $workerid,
  381. 'title' => input('title/s', ""),
  382. 'cateid' => input('cateid/d', 0),
  383. 'province' => input('province/s', ""),
  384. 'city' => input('city/s', ""),
  385. 'district' => input('district/s', ""),
  386. 'agegroup' => input('agegroup/s', ""),
  387. 'tags' => input('tags/a', array()),
  388. 'enddate' => input('enddate/s', ""),
  389. 'requirement' => input('requirement/s', ""),
  390. 'comdetails' => input('comdetails/s', ""),
  391. 'wtype' => $wtype,
  392. 'bwagall' => input('bwagall/s', ""),
  393. 'zwagall' => $zwagall,
  394. 'ftype' => input('ftype/d', 1),
  395. 'fwagall' => input('fwagall/s', ""),
  396. 'telephone' => input('telephone/s', ""),
  397. 'remark' => input('remark/s', ""),
  398. 'isfree' => 2
  399. ];
  400. try {
  401. validate(DemandValidate::class)->check($data);
  402. } catch (ValidateException $e) {
  403. exit(json_encode(array(
  404. 'code' => 1,
  405. 'msg' => $e->getError()
  406. )));
  407. }
  408. if (empty($id)){
  409. if($this->access_worker['status'] == 1)
  410. {
  411. $is_released = is_released($workerid);
  412. if($is_released['code'] == 1001)
  413. {
  414. return $is_released;
  415. }
  416. }else{
  417. if ($user->integral < $param->adddemandwyd){
  418. page_result1(1, "每次发布悬赏单需要扣除".$param->adddemandwyd."积分,你当前积分不足。");
  419. }
  420. }
  421. $data['video'] = input('new_video/s', "");
  422. $data['updatetime'] = time();
  423. $data['createtime'] = time();
  424. $data['status'] = (int)2;
  425. $data['volume'] = 0;
  426. $data['telearr'] = array();
  427. $demand = DemandModel::create($data);
  428. $intdata = array(
  429. 'userid' => $user->id,
  430. 'title' => "发布悬赏单扣除",
  431. 'intvalue' => 0 - $param->adddemandwyd,
  432. 'intmoney' => 0.00,
  433. 'onlycontent' => "",
  434. 'remark' => input('title/s', ""),
  435. 'itype' => 4,
  436. 'createtime' => date("Y-m-d H:i:s"),
  437. 'yeartime' => date("Y"),
  438. 'monthtime' => date("Ym")
  439. );
  440. UserIntegralModel::create($intdata);
  441. $integral = intval($user->integral) - intval($param->adddemandwyd);
  442. $user->save([
  443. 'integral' => $integral
  444. ]);
  445. }else{
  446. $data['updatetime'] = time();
  447. $data['status'] = input('status/d', 0);
  448. $old_video = input('old_video/s','');
  449. $new_video = input('new_video/s','');
  450. if(!empty($new_video)){
  451. $data['video'] = $new_video;
  452. }else{
  453. if(!empty($old_video))
  454. {
  455. $data['video'] = $old_video;
  456. }
  457. }
  458. $demand = DemandModel::find($id);
  459. DemandLogModel::update([ 'workerid' => input('workerid/d', 0) ],['demandid'=>$demand->id]);
  460. $demand->save($data);
  461. }
  462. exit(json_encode(array(
  463. 'code' => 0
  464. )));
  465. }
  466. public function fieldDemand()
  467. {
  468. $id = input('id/d',0);
  469. $demand = DemandModel::findOrEmpty($id);
  470. if ($demand->isEmpty()){
  471. exit(json_encode(array(
  472. 'code' => 1,
  473. 'msg' => "信息不存在"
  474. )));
  475. }else{
  476. $demand->save([
  477. 'telephone' => input('value'),
  478. ]);
  479. }
  480. exit(json_encode(array(
  481. 'code' => 0
  482. )));
  483. }
  484. public function delDemand()
  485. {
  486. $workerid = $this->access_worker['id'];
  487. $idarr = input('idarr/a');
  488. $res = Db::name('demand')
  489. ->where(['workerid'=>$workerid])
  490. ->whereIn('id',$idarr)
  491. ->update(['status'=>6]);
  492. if ($res){
  493. exit(json_encode(array(
  494. 'code' => 0,
  495. 'msg' => ""
  496. )));
  497. }
  498. exit(json_encode(array(
  499. 'code' => 1,
  500. 'msg' => "删除失败,请稍后重试"
  501. )));
  502. }
  503. public function listDemand()
  504. {
  505. $limit = input('limit/d',20);
  506. $page = input('page/d',1);
  507. $map = array();
  508. $keywords = input('keywords/s', "");
  509. if (!empty($keywords)){
  510. $map[] =['title', 'like', '%'.$keywords.'%'];
  511. }
  512. $workerid = input('workerid/d', 0);
  513. if (!empty($workerid)){
  514. $map[] = ['workerid', '=', $workerid];
  515. }
  516. $cateid = input('cateid/d', 0);
  517. if (!empty($cateid)){
  518. $map[] = ['cateid', '=', $cateid];
  519. }
  520. $wtype = input('wtype/d');
  521. if (!empty($wtype)){
  522. $map[] = ['wtype', '=', $wtype];
  523. }
  524. $ftype = input('ftype/d');
  525. if (!empty($ftype)){
  526. $map[] = ['ftype', '=', $ftype];
  527. }
  528. $status = input('status/d');
  529. if (!empty($status)){
  530. $map[] = ['status', '=', $status];
  531. }
  532. $isfree = input('isfree/d',0);
  533. if (!empty($isfree)){
  534. $map[] = ['isfree', '=', $isfree];
  535. }
  536. $list = DemandModel::with(['worker','demandCate'])
  537. ->withCount(['demandLog'])
  538. ->where($map)
  539. ->order(['priority'=>'desc','id'=>'desc',])
  540. ->limit($limit)
  541. ->page($page)
  542. ->append(['wtype_text','ftype_text','status_text','isfree_text'])
  543. ->select();
  544. $count = DemandModel::where($map)->count();
  545. if ($count==0){
  546. exit(json_encode(array(
  547. 'code' => 1,
  548. 'msg' => "未查询到数据"
  549. )));
  550. }
  551. exit(json_encode(array(
  552. 'code' => 0,
  553. 'msg' => "",
  554. 'count' => $count,
  555. 'data' => $list
  556. )));
  557. }
  558. }