Demand.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  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([
  49. 'code' => 0,
  50. 'msg' => "",
  51. ]));
  52. }
  53. exit(json_encode([
  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([
  64. 'code' => 1,
  65. 'msg' => "信息不存在",
  66. ]));
  67. } else {
  68. $log->save([
  69. input('field/s') => input('value'),
  70. ]);
  71. }
  72. exit(json_encode([
  73. 'code' => 0,
  74. ]));
  75. }
  76. public function listLog()
  77. {
  78. $limit = input('limit/d', 20);
  79. $page = input('page/d', 1);
  80. $map = [];
  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([
  97. 'code' => 1,
  98. 'msg' => "未查询到数据",
  99. ]));
  100. }
  101. exit(json_encode([
  102. 'code' => 0,
  103. 'msg' => "",
  104. 'count' => $count,
  105. 'data' => $list,
  106. ]));
  107. }
  108. public function exportLog()
  109. {
  110. $map = [];
  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 = [
  122. ['id', '表ID'],
  123. ['gworker.title', '接单公司名称'],
  124. ['gworker.realname', '接单公司联系人姓名'],
  125. ['gworker.mobile', '接单公司联系人手机号'],
  126. ['worker.title', '发单公司'],
  127. ['demand.title', '订单标题'],
  128. ['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 = [];
  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([
  178. 'code' => 1,
  179. 'msg' => "未查询到数据",
  180. ]));
  181. }
  182. exit(json_encode([
  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. $is_released = is_released($access_worker['id']);
  195. }
  196. return view('demand/demandlist', [
  197. 'param' => $param,
  198. 'catelist' => $catelist,
  199. 'wtype' => $access_worker['wtype'],
  200. 'is_released' => $is_released['code'],
  201. ]);
  202. }
  203. }
  204. public function demandForm()
  205. {
  206. $worker_data = Session::get('access_worker');
  207. $catelist = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  208. return view('demand/demandform', [
  209. 'catelist' => $catelist,
  210. 'title' => $worker_data['title'],
  211. ]);
  212. }
  213. public function demandFormWyd()
  214. {
  215. $worker_data = Session::get('access_worker');
  216. $catelist = DemandCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  217. return view('demand/demandformwyd', [
  218. 'catelist' => $catelist,
  219. 'title' => $worker_data['title'],
  220. ]);
  221. }
  222. //修改订单状态
  223. public function editDemandStatus()
  224. {
  225. $id = input('id/d', 0);
  226. $workerid = $this->access_worker['id'];
  227. if (Request::isAjax()) {
  228. $status = input('status/d', 0);
  229. $res = Db::name("demand")
  230. ->where('workerid', $workerid)
  231. ->where('id', $id)
  232. ->update(['status' => $status]);
  233. if ($res) {
  234. exit(json_encode([
  235. 'code' => 0,
  236. ]));
  237. }
  238. } else {
  239. $data = Db::name('demand')
  240. ->field('id,workerid,title,status')
  241. ->where('workerid', $workerid)
  242. ->where('id', $id)
  243. ->find();
  244. if ($data['status'] == 1) {
  245. $data['status_text'] = '待修改';
  246. } elseif ($data['status'] == 2) {
  247. $data['status_text'] = '待审核';
  248. } elseif ($data['status'] == 3) {
  249. $data['status_text'] = '已上架';
  250. } elseif ($data['status'] == 4) {
  251. $data['status_text'] = '已停招';
  252. } elseif ($data['status'] == 5) {
  253. $data['status_text'] = '已下架';
  254. } elseif ($data['status'] == 6) {
  255. $data['status_text'] = '已删除';
  256. }
  257. return view('demand/editdemandstatus', [
  258. 'data' => $data,
  259. ]);
  260. }
  261. }
  262. public function editDemand()
  263. {
  264. $id = input('id/d', 0);
  265. $workerid = $this->access_worker['id'];
  266. $user = UserModel::findOrEmpty($this->access_worker['userid']);
  267. $param = ParamModel::where(1)->findOrEmpty();
  268. if ($user->isEmpty()) {
  269. exit(json_encode([
  270. 'code' => 1,
  271. 'msg' => "用户信息不存在",
  272. ]));
  273. }
  274. $wtype = input('wtype/d', 1);
  275. $type = input('type/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', []),
  286. 'enddate' => input('enddate/s', ""),
  287. 'requirement' => input('requirement/s', ""),
  288. 'comdetails' => input('comdetails/s', ""),
  289. 'picall' => input('picall/a', []),
  290. 'wtype' => $wtype,
  291. 'type' => $type,
  292. 'bwagall' => input('bwagall/s', ""),
  293. 'zwagall' => $zwagall,
  294. 'ftype' => input('ftype/d', 1),
  295. 'fwagall' => input('fwagall/s', ""),
  296. 'telephone' => input('telephone/s', ""),
  297. 'remark' => input('remark/s', ""),
  298. 'isfree' => 1,
  299. ];
  300. try {
  301. validate(DemandValidate::class)->check($data);
  302. } catch (ValidateException $e) {
  303. exit(json_encode([
  304. 'code' => 1,
  305. 'msg' => $e->getError(),
  306. ]));
  307. }
  308. if (empty($id)) {
  309. if ($this->access_worker['status'] == 1) {
  310. $is_released = is_released($workerid);
  311. if ($is_released['code'] == 1001) {
  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'] = [];
  325. $demand = DemandModel::create($data);
  326. $intdata = [
  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. $data['video'] = $old_video;
  351. }
  352. }
  353. $data['createtime'] = time();
  354. $data['status'] = input('status/d', 0);
  355. $demand = DemandModel::find($id);
  356. DemandLogModel::update(['workerid' => input('workerid/d', 0)], ['demandid' => $demand->id]);
  357. $demand->save($data);
  358. }
  359. exit(json_encode([
  360. 'code' => 0,
  361. ]));
  362. }
  363. public function editdemandformWyd()
  364. {
  365. $id = input('id/d', 0);
  366. $workerid = $this->access_worker['id'];
  367. $user = UserModel::findOrEmpty($this->access_worker['userid']);
  368. $param = ParamModel::where(1)->findOrEmpty();
  369. if ($user->isEmpty()) {
  370. exit(json_encode([
  371. 'code' => 1,
  372. 'msg' => "用户信息不存在",
  373. ]));
  374. }
  375. $wtype = input('wtype/d', 1);
  376. $zwagall = $wtype == 1 ? input('zwagall/s', "") : '';
  377. $data = [
  378. 'workerid' => $workerid,
  379. 'title' => input('title/s', ""),
  380. 'cateid' => input('cateid/d', 0),
  381. 'province' => input('province/s', ""),
  382. 'city' => input('city/s', ""),
  383. 'district' => input('district/s', ""),
  384. 'agegroup' => input('agegroup/s', ""),
  385. 'tags' => input('tags/a', []),
  386. 'enddate' => input('enddate/s', ""),
  387. 'requirement' => input('requirement/s', ""),
  388. 'comdetails' => input('comdetails/s', ""),
  389. 'wtype' => $wtype,
  390. 'bwagall' => input('bwagall/s', ""),
  391. 'zwagall' => $zwagall,
  392. 'ftype' => input('ftype/d', 1),
  393. 'fwagall' => input('fwagall/s', ""),
  394. 'telephone' => input('telephone/s', ""),
  395. 'remark' => input('remark/s', ""),
  396. 'isfree' => 2,
  397. ];
  398. try {
  399. validate(DemandValidate::class)->check($data);
  400. } catch (ValidateException $e) {
  401. exit(json_encode([
  402. 'code' => 1,
  403. 'msg' => $e->getError(),
  404. ]));
  405. }
  406. if (empty($id)) {
  407. if ($this->access_worker['status'] == 1) {
  408. $is_released = is_released($workerid);
  409. if ($is_released['code'] == 1001) {
  410. return $is_released;
  411. }
  412. } else {
  413. if ($user->integral < $param->adddemandwyd) {
  414. page_result1(1, "每次发布悬赏单需要扣除" . $param->adddemandwyd . "积分,你当前积分不足。");
  415. }
  416. }
  417. $data['video'] = input('new_video/s', "");
  418. $data['updatetime'] = time();
  419. $data['createtime'] = time();
  420. $data['status'] = (int)2;
  421. $data['volume'] = 0;
  422. $data['telearr'] = [];
  423. $demand = DemandModel::create($data);
  424. $intdata = [
  425. 'userid' => $user->id,
  426. 'title' => "发布悬赏单扣除",
  427. 'intvalue' => 0 - $param->adddemandwyd,
  428. 'intmoney' => 0.00,
  429. 'onlycontent' => "",
  430. 'remark' => input('title/s', ""),
  431. 'itype' => 4,
  432. 'createtime' => date("Y-m-d H:i:s"),
  433. 'yeartime' => date("Y"),
  434. 'monthtime' => date("Ym"),
  435. ];
  436. UserIntegralModel::create($intdata);
  437. $integral = intval($user->integral) - intval($param->adddemandwyd);
  438. $user->save([
  439. 'integral' => $integral,
  440. ]);
  441. } else {
  442. $data['updatetime'] = time();
  443. $data['status'] = input('status/d', 0);
  444. $old_video = input('old_video/s', '');
  445. $new_video = input('new_video/s', '');
  446. if (!empty($new_video)) {
  447. $data['video'] = $new_video;
  448. } else {
  449. if (!empty($old_video)) {
  450. $data['video'] = $old_video;
  451. }
  452. }
  453. $demand = DemandModel::find($id);
  454. DemandLogModel::update(['workerid' => input('workerid/d', 0)], ['demandid' => $demand->id]);
  455. $demand->save($data);
  456. }
  457. exit(json_encode([
  458. 'code' => 0,
  459. ]));
  460. }
  461. public function fieldDemand()
  462. {
  463. $id = input('id/d', 0);
  464. $demand = DemandModel::findOrEmpty($id);
  465. if ($demand->isEmpty()) {
  466. exit(json_encode([
  467. 'code' => 1,
  468. 'msg' => "信息不存在",
  469. ]));
  470. } else {
  471. $demand->save([
  472. 'telephone' => input('value'),
  473. ]);
  474. }
  475. exit(json_encode([
  476. 'code' => 0,
  477. ]));
  478. }
  479. public function delDemand()
  480. {
  481. $workerid = $this->access_worker['id'];
  482. $idarr = input('idarr/a');
  483. $res = Db::name('demand')
  484. ->where(['workerid' => $workerid])
  485. ->whereIn('id', $idarr)
  486. ->update(['status' => 6]);
  487. if ($res) {
  488. exit(json_encode([
  489. 'code' => 0,
  490. 'msg' => "",
  491. ]));
  492. }
  493. exit(json_encode([
  494. 'code' => 1,
  495. 'msg' => "删除失败,请稍后重试",
  496. ]));
  497. }
  498. public function listDemand()
  499. {
  500. $limit = input('limit/d', 20);
  501. $page = input('page/d', 1);
  502. $map = [];
  503. $keywords = input('keywords/s', "");
  504. if (!empty($keywords)) {
  505. $map[] = ['title', 'like', '%' . $keywords . '%'];
  506. }
  507. $workerid = input('workerid/d', 0);
  508. if (!empty($workerid)) {
  509. $map[] = ['workerid', '=', $workerid];
  510. }
  511. $cateid = input('cateid/d', 0);
  512. if (!empty($cateid)) {
  513. $map[] = ['cateid', '=', $cateid];
  514. }
  515. $wtype = input('wtype/d');
  516. if (!empty($wtype)) {
  517. $map[] = ['wtype', '=', $wtype];
  518. }
  519. $ftype = input('ftype/d');
  520. if (!empty($ftype)) {
  521. $map[] = ['ftype', '=', $ftype];
  522. }
  523. $status = input('status/d');
  524. if (!empty($status)) {
  525. $map[] = ['status', '=', $status];
  526. }
  527. $isfree = input('isfree/d', 0);
  528. if (!empty($isfree)) {
  529. $map[] = ['isfree', '=', $isfree];
  530. }
  531. $list = DemandModel::with(['worker', 'demandCate'])
  532. ->withCount(['demandLog'])
  533. ->where($map)
  534. ->order(['priority' => 'desc', 'id' => 'desc',])
  535. ->limit($limit)
  536. ->page($page)
  537. ->append(['wtype_text', 'ftype_text', 'status_text', 'isfree_text'])
  538. ->select();
  539. $count = DemandModel::where($map)->count();
  540. if ($count == 0) {
  541. exit(json_encode([
  542. 'code' => 1,
  543. 'msg' => "未查询到数据",
  544. ]));
  545. }
  546. exit(json_encode([
  547. 'code' => 0,
  548. 'msg' => "",
  549. 'count' => $count,
  550. 'data' => $list,
  551. ]));
  552. }
  553. }