Demand.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934
  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\Demand as DemandModel;
  6. use app\common\model\DemandOther as DemandOtherModel;
  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\model\DemandSnatch as DemandSnatchModel;
  12. use app\common\validate\Demand as DemandValidate;
  13. use think\exception\ValidateException;
  14. use think\facade\Session;
  15. use think\facade\Db;
  16. use think\facade\Request;
  17. class Demand extends BaseController
  18. {
  19. // 我的报名记录
  20. public function logList()
  21. {
  22. $workerid = $this->access_worker['id'];
  23. $workerid = 89;
  24. $data = Db::name("demand_log")
  25. ->alias('a')
  26. ->field('c.ftitle,b.title,a.id,a.gworkerid,a.demandid')
  27. ->where('a.workerid', $workerid)
  28. ->join('demand b', 'a.demandid = b.id', 'LEFT')
  29. ->join('worker c', 'a.gworkerid = c.id', 'LEFT')
  30. ->select()
  31. ->toArray();
  32. $gworker_data = assoc_unique($data, 'gworkerid');
  33. $demand_data = assoc_unique($data, 'demandid');
  34. return view('demand/loglist', [
  35. 'gworker_data' => $gworker_data,
  36. 'demand_data' => $demand_data,
  37. ]);
  38. }
  39. public function delLog()
  40. {
  41. $idarr = input('idarr/a');
  42. $workerid = $this->access_worker['id'];
  43. $workerid = 89;
  44. $res = Db::name('demand_log')
  45. ->where('workerid', $workerid)
  46. ->whereIn('id', $idarr)
  47. ->update(['del_status' => (int)2]);
  48. if ($res) {
  49. exit(json_encode([
  50. 'code' => 0,
  51. 'msg' => "",
  52. ]));
  53. }
  54. exit(json_encode([
  55. 'code' => 1,
  56. 'msg' => "删除失败,请稍后重试",
  57. ]));
  58. }
  59. public function fieldLog()
  60. {
  61. $id = input('id/d', 0);
  62. $log = DemandLogModel::findOrEmpty($id);
  63. if ($log->isEmpty()) {
  64. exit(json_encode([
  65. 'code' => 1,
  66. 'msg' => "信息不存在",
  67. ]));
  68. } else {
  69. $log->save([
  70. input('field/s') => input('value'),
  71. ]);
  72. }
  73. exit(json_encode([
  74. 'code' => 0,
  75. ]));
  76. }
  77. public function listLog()
  78. {
  79. $limit = input('limit/d', 20);
  80. $page = input('page/d', 1);
  81. $map = [];
  82. $gworkerid = input('gworkerid/d');
  83. $demandid = input('demandid/d');
  84. $workerid = $this->access_worker['id'];
  85. $workerid = 89;
  86. $map[] = ['workerid', '=', $workerid];
  87. $map[] = ['del_status', '=', 1];
  88. if (!empty($gworkerid)) {
  89. $map[] = ['gworkerid', '=', $gworkerid];
  90. }
  91. if (!empty($demandid)) {
  92. $map[] = ['demandid', '=', $demandid];
  93. }
  94. $list = DemandLogModel::with(['gworker', 'worker', 'demand'])->where($map)->order('id', 'DESC')->limit($limit)->page($page)->select();
  95. $count = DemandLogModel::where($map)->count();
  96. if ($count == 0) {
  97. exit(json_encode([
  98. 'code' => 1,
  99. 'msg' => "未查询到数据",
  100. ]));
  101. }
  102. exit(json_encode([
  103. 'code' => 0,
  104. 'msg' => "",
  105. 'count' => $count,
  106. 'data' => $list,
  107. ]));
  108. }
  109. public function exportLog()
  110. {
  111. $map = [];
  112. $workerdemandarr = explode(",", input('workerdemand/s'));
  113. $workerid = isset($workerdemandarr[0]) ? $workerdemandarr[0] : 0;
  114. $demandid = isset($workerdemandarr[1]) ? $workerdemandarr[1] : 0;
  115. if (!empty($workerid)) {
  116. $map[] = ['workerid', '=', $workerid];
  117. }
  118. if (!empty($demandid)) {
  119. $map[] = ['demandid', '=', $demandid];
  120. }
  121. $xlsData = DemandLogModel::with(['gworker', 'worker', 'demand'])->where($map)->order('id', 'DESC')->select()->toArray();
  122. $xlsCell = [
  123. ['id', '表ID'],
  124. ['gworker.title', '接单公司名称'],
  125. ['gworker.realname', '接单公司联系人姓名'],
  126. ['gworker.mobile', '接单公司联系人手机号'],
  127. ['worker.title', '发单公司'],
  128. ['demand.title', '订单标题'],
  129. ['createtime', '接单时间'],
  130. ];
  131. export_excel("接单报名记录", $xlsCell, $xlsData);
  132. }
  133. // 企业招聘
  134. public function demandList()
  135. {
  136. if (Request::isAjax()) {
  137. $limit = input('limit/d', 20);
  138. $page = input('page/d', 1);
  139. $map = [];
  140. $workerid = $this->access_worker['id'];
  141. $map[] = ['workerid', '=', $workerid];
  142. $keywords = input('keywords/s', "");
  143. if (!empty($keywords)) {
  144. $map[] = ['title', 'like', '%' . $keywords . '%'];
  145. }
  146. $cateid = input('cateid/d', 0);
  147. if (!empty($cateid)) {
  148. $map[] = ['cateid', '=', $cateid];
  149. }
  150. $wtype = input('wtype/d');
  151. if (!empty($wtype)) {
  152. $map[] = ['wtype', '=', $wtype];
  153. }
  154. $ftype = input('ftype/d');
  155. if (!empty($ftype)) {
  156. $map[] = ['ftype', '=', $ftype];
  157. }
  158. $status = input('status/d');
  159. if (!empty($status)) {
  160. $map[] = ['status', '=', $status];
  161. } else {
  162. $map[] = ['status', '<', 6];
  163. }
  164. $isfree = input('isfree/d', 0);
  165. if (!empty($isfree)) {
  166. $map[] = ['isfree', '=', $isfree];
  167. }
  168. $list = DemandModel::with(['worker', 'demandCate'])
  169. ->withCount(['demandLog'])
  170. ->where($map)
  171. ->order(['priority' => 'desc', 'id' => 'desc',])
  172. ->limit($limit)
  173. ->page($page)
  174. ->append(['wtype_text', 'ftype_text', 'status_text', 'isfree_text'])
  175. ->select();
  176. $count = DemandModel::where($map)->count();
  177. if ($count == 0) {
  178. exit(json_encode([
  179. 'code' => 1,
  180. 'msg' => "未查询到数据",
  181. ]));
  182. }
  183. exit(json_encode([
  184. 'code' => 0,
  185. 'msg' => "",
  186. 'count' => $count,
  187. 'data' => $list,
  188. ]));
  189. } else {
  190. $catelist = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  191. $param = ParamModel::where(1)->findOrEmpty();
  192. $access_worker = Session::get('access_worker');
  193. $is_released = 1;
  194. if ($access_worker['status'] == 1) {
  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([
  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([
  271. 'code' => 1,
  272. 'msg' => "用户信息不存在",
  273. ]));
  274. }
  275. $wtype = input('wtype/d', 1);
  276. $type = input('type/d', 1);
  277. $zwagall = $wtype == 1 ? input('zwagall/s', "") : '';
  278. $data = [
  279. 'workerid' => $workerid,
  280. 'title' => input('title/s', ""),
  281. 'num' => input('num/d', 1),
  282. 'cateid' => input('cateid/d', 0),
  283. 'province' => input('province/s', ""),
  284. 'city' => input('city/s', ""),
  285. 'district' => input('district/s', ""),
  286. 'agegroup' => input('agegroup/s', ""),
  287. 'tags' => input('tags/a', []),
  288. 'enddate' => input('enddate/s', ""),
  289. 'requirement' => input('requirement/s', ""),
  290. 'comdetails' => input('comdetails/s', ""),
  291. 'picall' => input('picall/a', []),
  292. 'wtype' => $wtype,
  293. 'type' => $type,
  294. 'bwagall' => input('bwagall/s', ""),
  295. 'zwagall' => $zwagall,
  296. 'ftype' => input('ftype/d', 1),
  297. 'fwagall' => input('fwagall/s', ""),
  298. 'telephone' => input('telephone/s', ""),
  299. 'remark' => input('remark/s', ""),
  300. 'isfree' => 1,
  301. ];
  302. try {
  303. validate(DemandValidate::class)->check($data);
  304. } catch (ValidateException $e) {
  305. exit(json_encode([
  306. 'code' => 1,
  307. 'msg' => $e->getError(),
  308. ]));
  309. }
  310. if (empty($id)) {
  311. if ($this->access_worker['status'] == 1) {
  312. $is_released = is_released($workerid);
  313. if ($is_released['code'] == 1001) {
  314. return $is_released;
  315. }
  316. } else {
  317. if ($user->integral < $param->adddemand) {
  318. page_result1(1, "每次发布订单信息需要扣除" . $param->adddemand . "积分,你当前积分不足。");
  319. }
  320. }
  321. $data['video'] = input('new_video/s', "");
  322. $data['updatetime'] = time();
  323. $data['createtime'] = time();
  324. $data['status'] = (int)2;
  325. $data['volume'] = 0;
  326. $data['telearr'] = [];
  327. $demand = DemandModel::create($data);
  328. $intdata = [
  329. 'userid' => $user->id,
  330. 'title' => "发布订单信息扣除",
  331. 'intvalue' => 0 - $param->adddemand,
  332. 'intmoney' => 0.00,
  333. 'onlycontent' => "",
  334. 'remark' => input('title/s', ""),
  335. 'itype' => 4,
  336. 'createtime' => date("Y-m-d H:i:s"),
  337. 'yeartime' => date("Y"),
  338. 'monthtime' => date("Ym"),
  339. ];
  340. UserIntegralModel::create($intdata);
  341. $integral = intval($user->integral) - intval($param->adddemand);
  342. $user->save([
  343. 'integral' => $integral,
  344. ]);
  345. } else {
  346. $old_video = input('old_video/s', '');
  347. $new_video = input('new_video/s', '');
  348. if (!empty($new_video)) {
  349. $data['video'] = $new_video;
  350. } else {
  351. if (!empty($old_video)) {
  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([
  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([
  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', []),
  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([
  404. 'code' => 1,
  405. 'msg' => $e->getError(),
  406. ]));
  407. }
  408. if (empty($id)) {
  409. if ($this->access_worker['status'] == 1) {
  410. $is_released = is_released($workerid);
  411. if ($is_released['code'] == 1001) {
  412. return $is_released;
  413. }
  414. } else {
  415. if ($user->integral < $param->adddemandwyd) {
  416. page_result1(1, "每次发布悬赏单需要扣除" . $param->adddemandwyd . "积分,你当前积分不足。");
  417. }
  418. }
  419. $data['video'] = input('new_video/s', "");
  420. $data['updatetime'] = time();
  421. $data['createtime'] = time();
  422. $data['status'] = (int)2;
  423. $data['volume'] = 0;
  424. $data['telearr'] = [];
  425. $demand = DemandModel::create($data);
  426. $intdata = [
  427. 'userid' => $user->id,
  428. 'title' => "发布悬赏单扣除",
  429. 'intvalue' => 0 - $param->adddemandwyd,
  430. 'intmoney' => 0.00,
  431. 'onlycontent' => "",
  432. 'remark' => input('title/s', ""),
  433. 'itype' => 4,
  434. 'createtime' => date("Y-m-d H:i:s"),
  435. 'yeartime' => date("Y"),
  436. 'monthtime' => date("Ym"),
  437. ];
  438. UserIntegralModel::create($intdata);
  439. $integral = intval($user->integral) - intval($param->adddemandwyd);
  440. $user->save([
  441. 'integral' => $integral,
  442. ]);
  443. } else {
  444. $data['updatetime'] = time();
  445. $data['status'] = input('status/d', 0);
  446. $old_video = input('old_video/s', '');
  447. $new_video = input('new_video/s', '');
  448. if (!empty($new_video)) {
  449. $data['video'] = $new_video;
  450. } else {
  451. if (!empty($old_video)) {
  452. $data['video'] = $old_video;
  453. }
  454. }
  455. $demand = DemandModel::find($id);
  456. DemandLogModel::update(['workerid' => input('workerid/d', 0)], ['demandid' => $demand->id]);
  457. $demand->save($data);
  458. }
  459. exit(json_encode([
  460. 'code' => 0,
  461. ]));
  462. }
  463. public function fieldDemand()
  464. {
  465. $id = input('id/d', 0);
  466. $demand = DemandModel::findOrEmpty($id);
  467. if ($demand->isEmpty()) {
  468. exit(json_encode([
  469. 'code' => 1,
  470. 'msg' => "信息不存在",
  471. ]));
  472. } else {
  473. $demand->save([
  474. 'telephone' => input('value'),
  475. ]);
  476. }
  477. exit(json_encode([
  478. 'code' => 0,
  479. ]));
  480. }
  481. public function delDemand()
  482. {
  483. $workerid = $this->access_worker['id'];
  484. $idarr = input('idarr/a');
  485. $res = Db::name('demand')
  486. ->where(['workerid' => $workerid])
  487. ->whereIn('id', $idarr)
  488. ->update(['status' => 6]);
  489. if ($res) {
  490. exit(json_encode([
  491. 'code' => 0,
  492. 'msg' => "",
  493. ]));
  494. }
  495. exit(json_encode([
  496. 'code' => 1,
  497. 'msg' => "删除失败,请稍后重试",
  498. ]));
  499. }
  500. public function listDemand()
  501. {
  502. $limit = input('limit/d', 20);
  503. $page = input('page/d', 1);
  504. $map = [];
  505. $keywords = input('keywords/s', "");
  506. if (!empty($keywords)) {
  507. $map[] = ['title', 'like', '%' . $keywords . '%'];
  508. }
  509. $workerid = input('workerid/d', 0);
  510. if (!empty($workerid)) {
  511. $map[] = ['workerid', '=', $workerid];
  512. }
  513. $cateid = input('cateid/d', 0);
  514. if (!empty($cateid)) {
  515. $map[] = ['cateid', '=', $cateid];
  516. }
  517. $wtype = input('wtype/d');
  518. if (!empty($wtype)) {
  519. $map[] = ['wtype', '=', $wtype];
  520. }
  521. $ftype = input('ftype/d');
  522. if (!empty($ftype)) {
  523. $map[] = ['ftype', '=', $ftype];
  524. }
  525. $status = input('status/d');
  526. if (!empty($status)) {
  527. $map[] = ['status', '=', $status];
  528. }
  529. $isfree = input('isfree/d', 0);
  530. if (!empty($isfree)) {
  531. $map[] = ['isfree', '=', $isfree];
  532. }
  533. $list = DemandModel::with(['worker', 'demandCate'])
  534. ->withCount(['demandLog'])
  535. ->where($map)
  536. ->order(['priority' => 'desc', 'id' => 'desc',])
  537. ->limit($limit)
  538. ->page($page)
  539. ->append(['wtype_text', 'ftype_text', 'status_text', 'isfree_text'])
  540. ->select();
  541. $count = DemandModel::where($map)->count();
  542. if ($count == 0) {
  543. exit(json_encode([
  544. 'code' => 1,
  545. 'msg' => "未查询到数据",
  546. ]));
  547. }
  548. exit(json_encode([
  549. 'code' => 0,
  550. 'msg' => "",
  551. 'count' => $count,
  552. 'data' => $list,
  553. ]));
  554. }
  555. // 企业招聘
  556. public function otherList()
  557. {
  558. if (Request::isAjax()) {
  559. $limit = input('limit/d', 20);
  560. $page = input('page/d', 1);
  561. $map = [];
  562. $workerid = $this->access_worker['id'];
  563. $map[] = ['workerid', '=', $workerid];
  564. $title = input('title/s', "");
  565. if (!empty($title)) {
  566. $map[] = ['title', 'like', '%' . $title . '%'];
  567. }
  568. $keywords = input('keywords/s', "");
  569. if (!empty($keywords)) {
  570. $map[] = ['company_name|company_contact|company_mobile', 'like', '%' . $keywords . '%'];
  571. }
  572. $cateid = input('cateid/d', 0);
  573. if (!empty($cateid)) {
  574. $map[] = ['cateid', '=', $cateid];
  575. }
  576. $wtype = input('wtype/d');
  577. if (!empty($wtype)) {
  578. $map[] = ['wtype', '=', $wtype];
  579. }
  580. $ftype = input('ftype/d');
  581. if (!empty($ftype)) {
  582. $map[] = ['ftype', '=', $ftype];
  583. }
  584. $status = input('status/d');
  585. if (!empty($status)) {
  586. $map[] = ['status', '=', $status];
  587. } else {
  588. $map[] = ['status', '<', 6];
  589. }
  590. $isfree = input('isfree/d', 0);
  591. if (!empty($isfree)) {
  592. $map[] = ['isfree', '=', $isfree];
  593. }
  594. $list = DemandOtherModel::with(['worker', 'demandCate'])
  595. ->where($map)
  596. ->order(['priority' => 'desc', 'id' => 'desc',])
  597. ->limit($limit)
  598. ->page($page)
  599. ->append(['wtype_text', 'ftype_text', 'status_text', 'isfree_text'])
  600. ->select();
  601. $count = DemandOtherModel::where($map)->count();
  602. if ($count == 0) {
  603. exit(json_encode([
  604. 'code' => 1,
  605. 'msg' => "未查询到数据",
  606. ]));
  607. }
  608. exit(json_encode([
  609. 'code' => 0,
  610. 'msg' => "",
  611. 'count' => $count,
  612. 'data' => $list,
  613. ]));
  614. } else {
  615. $catelist = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  616. $param = ParamModel::where(1)->findOrEmpty();
  617. $access_worker = Session::get('access_worker');
  618. return view('demand/otherlist', [
  619. 'param' => $param,
  620. 'catelist' => $catelist,
  621. 'wtype' => $access_worker['wtype'],
  622. ]);
  623. }
  624. }
  625. public function otherForm()
  626. {
  627. $worker_data = Session::get('access_worker');
  628. $id = input('id/d, 0');
  629. $demand = DemandOtherModel::where('workerid', $worker_data['id'])->findOrEmpty($id);
  630. $catelist = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  631. return view('demand/otherform', [
  632. 'catelist' => $catelist,
  633. 'demand' => $demand,
  634. 'title' => $worker_data['title'],
  635. ]);
  636. }
  637. public function editOther()
  638. {
  639. $worker_data = Session::get('access_worker');
  640. $id = input('id/d', 0);
  641. $wtype = input('wtype/d', 1);
  642. $type = input('type/d', 1);
  643. $zwagall = $wtype == 1 ? input('zwagall/s', "") : '';
  644. $data = [
  645. 'workerid' => input('workerid/d', 0),
  646. 'title' => input('title/s', ""),
  647. 'cateid' => input('cateid/d', 0),
  648. 'province' => input('province/s', ""),
  649. 'city' => input('city/s', ""),
  650. 'district' => input('district/s', ""),
  651. 'agegroup' => input('agegroup/s', ""),
  652. 'tags' => input('tags/a', []),
  653. 'enddate' => input('enddate/s', ""),
  654. 'requirement' => input('requirement/s', ""),
  655. 'comdetails' => input('comdetails/s', ""),
  656. 'type' => $type,
  657. 'wtype' => $wtype,
  658. 'bwagall' => input('bwagall/s', ""),
  659. 'zwagall' => $zwagall,
  660. 'ftype' => input('ftype/d', 1),
  661. 'fwagall' => input('fwagall/s', ""),
  662. 'telephone' => input('telephone/s', ""),
  663. 'remark' => input('remark/s', ""),
  664. 'status' => input('status/d', 1),
  665. 'isfree' => input('isfree/d', 1),
  666. 'priority' => input('priority/d', 0),
  667. 'updatetime' => input('updatetime/s', ""),
  668. 'createtime' => input('createtime/s', ""),
  669. 'volume' => input('volume/d', 0),
  670. 'company_name' => input('remark/s', ""),
  671. 'company_contact' => input('remark/s', ""),
  672. 'company_mobile' => input('remark/s', ""),
  673. ];
  674. try {
  675. validate(DemandValidate::class)->check($data);
  676. } catch (ValidateException $e) {
  677. exit(json_encode([
  678. 'code' => 1,
  679. 'msg' => $e->getError(),
  680. ]));
  681. }
  682. if (empty($id)) {
  683. $data['workerid'] = $worker_data['id'];
  684. $data['telearr'] = [];
  685. $data['video'] = input('new_video/s', "");
  686. DemandOtherModel::create($data);
  687. } else {
  688. $old_video = input('old_video/s', '');
  689. $new_video = input('new_video/s', '');
  690. if (!empty($new_video)) {
  691. $data['video'] = $new_video;
  692. } else {
  693. if (!empty($old_video)) {
  694. $data['video'] = $old_video;
  695. }
  696. }
  697. $demand = DemandOtherModel::find($id);
  698. $demand->save($data);
  699. }
  700. exit(json_encode([
  701. 'code' => 0,
  702. ]));
  703. }
  704. // 企业招聘
  705. public function allhall()
  706. {
  707. if (Request::isAjax()) {
  708. $limit = input('limit/d', 20);
  709. $page = input('page/d', 1);
  710. $map = [];
  711. $map[] = ['status', '=', 3];
  712. $keywords = input('keywords/s', "");
  713. if (!empty($keywords)) {
  714. $map[] = ['title', 'like', '%' . $keywords . '%'];
  715. }
  716. $cateid = input('cateid/d', 0);
  717. if (!empty($cateid)) {
  718. $map[] = ['cateid', '=', $cateid];
  719. }
  720. $wtype = input('wtype/d');
  721. if (!empty($wtype)) {
  722. $map[] = ['wtype', '=', $wtype];
  723. }
  724. $ftype = input('ftype/d');
  725. if (!empty($ftype)) {
  726. $map[] = ['ftype', '=', $ftype];
  727. }
  728. $isfree = input('isfree/d', 0);
  729. if (!empty($isfree)) {
  730. $map[] = ['isfree', '=', $isfree];
  731. }
  732. $list = DemandModel::with(['worker', 'demandCate'])
  733. ->withCount(['demandLog'])
  734. ->where($map)
  735. ->order(['priority' => 'desc', 'id' => 'desc',])
  736. ->limit($limit)
  737. ->page($page)
  738. ->append(['wtype_text', 'ftype_text', 'status_text', 'isfree_text'])
  739. ->select();
  740. $count = DemandModel::where($map)->count();
  741. if ($count == 0) {
  742. exit(json_encode([
  743. 'code' => 1,
  744. 'msg' => "未查询到数据",
  745. ]));
  746. }
  747. exit(json_encode([
  748. 'code' => 0,
  749. 'msg' => "",
  750. 'count' => $count,
  751. 'data' => $list,
  752. ]));
  753. } else {
  754. $catelist = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  755. $param = ParamModel::where(1)->findOrEmpty();
  756. return view('demand/allhall', [
  757. 'param' => $param,
  758. 'catelist' => $catelist,
  759. ]);
  760. }
  761. }
  762. public function snatchDemand()
  763. {
  764. $id = input('id/d', 0);
  765. if (empty($id)) {
  766. exit(json_encode([
  767. 'code' => 1,
  768. 'msg' => "未查询到数据",
  769. ]));
  770. }
  771. if (Request::isAjax()) {
  772. //数据校验
  773. $num = input('num/d', 0);
  774. if ($num <= 0) {
  775. exit(json_encode([
  776. 'code' => 1,
  777. 'msg' => "抢单人数必须大于等于0",
  778. ]));
  779. }
  780. $demand = DemandModel::findOrEmpty($id);
  781. if (empty($demand)) {
  782. exit(json_encode([
  783. 'code' => 1,
  784. 'msg' => "订单不存在 ",
  785. ]));
  786. }
  787. $total = DemandSnatchModel::where('status', '>', 1)->where('demand_id', $id)->sum('num');
  788. $remain = $demand['num'] - $total;
  789. if ($demand['num'] - $total < $num) {
  790. exit(json_encode([
  791. 'code' => 1,
  792. 'msg' => "订单剩余{$remain}人,请输入该人数以下的值",
  793. ]));
  794. }
  795. //抢单
  796. $worker_data = Session::get('access_worker');
  797. DemandSnatchModel::create([
  798. 'demand_id' => $id,
  799. 'worker_id' => $worker_data['id'],
  800. 'num' => $num,
  801. 'status' => 1,
  802. 'createtime' => date("Y-m-d H:i:s"),
  803. ]);
  804. exit(json_encode(['code' => 0]));
  805. } else {
  806. return view('demand/snatchDemand', [
  807. 'id' => $id,
  808. ]);
  809. }
  810. }
  811. public function roblist()
  812. {
  813. if (Request::isAjax()) {
  814. $limit = input('limit/d', 20);
  815. $page = input('page/d', 1);
  816. $map = [];
  817. $status = input('status/d', 0);
  818. if (!empty($status)) {
  819. $map[] = ['status', '=', $status];
  820. }
  821. $list = DemandSnatchModel::with(['demand','worker'])
  822. ->where($map)
  823. ->order(['id' => 'desc',])
  824. ->limit($limit)
  825. ->page($page)
  826. ->append([ 'status_text'])
  827. ->select();
  828. // halt($list);
  829. $count = DemandSnatchModel::where($map)->count();
  830. if ($count == 0) {
  831. exit(json_encode([
  832. 'code' => 1,
  833. 'msg' => "未查询到数据",
  834. ]));
  835. }
  836. exit(json_encode([
  837. 'code' => 0,
  838. 'msg' => "",
  839. 'count' => $count,
  840. 'data' => $list,
  841. ]));
  842. } else {
  843. return view('demand/roblist');
  844. }
  845. }
  846. }