jobhuntinglogic.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454
  1. <?php
  2. /*
  3. * @Author: wang jun
  4. * @Date: 2021-09-27 09:02:06
  5. * @Last Modified by: wang jun
  6. * @Last Modified time: 2021-11-20 16:33:51
  7. */
  8. namespace app\index\logic;
  9. use app\index\model\groupmodel;
  10. use app\index\model\jobhuntingmodel;
  11. use app\index\model\userinfomodel;
  12. use think\Log;
  13. class jobhuntinglogic
  14. {
  15. private $jobhuntingmodel;
  16. public function __construct()
  17. {
  18. $this->jobhuntingmodel = new jobhuntingmodel();
  19. }
  20. /*
  21. * create by wj
  22. * edit in 20211026
  23. * edit by steelxu
  24. * 增加联系信息
  25. */
  26. public function getinfobyid($id)
  27. {
  28. $where = ['id' => $id];
  29. $info = $this->jobhuntingmodel->getInfo($where);
  30. if (empty($info)) {
  31. return false;
  32. }
  33. //edit by steelxu 20211026
  34. $t_u = new userinfomodel();
  35. $uid = $info['createuid'];
  36. $uinfo = $t_u->selconinfobyid($uid);
  37. $info['coninfo'] = $uinfo;
  38. return $info;
  39. }
  40. public function insertinfo($info)
  41. {
  42. log::info($info);
  43. if (!isset($info['createuid']) || empty($info['createuid'])) {
  44. return backarr(0, "请求错误");
  45. }
  46. $uid = $info['createuid'];
  47. $t_u = new userinfomodel();
  48. $uinfo = $t_u->selconinfobyid($uid);
  49. if (empty($uinfo)) {
  50. return backarr(0, "无用户信息");
  51. }
  52. if (!isset($info['createdate']) || empty($info['createdate'])) {
  53. $info['createdate'] = date('Y-m-d H:i:s', time());
  54. }
  55. if (isset($info['userstyle'])) {
  56. if (!is_numeric($info['userstyle']) || !in_array($info['userstyle'], [1, 2])) {
  57. $info['userstyle'] = 1;
  58. }
  59. if (2 == $info['userstyle']) {
  60. $m_g = new groupmodel();
  61. if (!isset($info['groupid']) || empty($info['groupid'])) {
  62. return backarr(0, "无班组id");
  63. }
  64. $groupinfo = $m_g->getinfo(['id' => $info['groupid']]);
  65. if (empty($groupinfo)) {
  66. return backarr(0, "无组信息");
  67. }
  68. }
  69. if (1 == $info['userstyle']) {
  70. $m_u = new userinfomodel();
  71. if (!isset($info['createuid']) || empty($info['createuid'])) {
  72. return backarr(0, "无创建人id");
  73. }
  74. $userinfo = $m_u->getinfo(['id' => $info['createuid']]);
  75. if (empty($userinfo)) {
  76. return backarr(0, "无用户信息");
  77. }
  78. if (isset($info['groupid'])) {
  79. unset($info['groupid']);
  80. }
  81. }
  82. }
  83. if (isset($info['daysalary'])) {
  84. if (!is_numeric($info['daysalary'])) {
  85. return backarr(0, "日均工资格式错误");
  86. }
  87. }
  88. /*
  89. $where = [];
  90. if (isset($info['userstyle']) && !empty($info['userstyle'])) {
  91. $where['userstyle'] = $info['userstyle'];
  92. }
  93. if (isset($info['createuid']) && !empty($info['createuid'])) {
  94. $where['createuid'] = $info['createuid'];
  95. }
  96. if (isset($info['groupid']) && !empty($info['groupid'])) {
  97. $where['groupid'] = $info['groupid'];
  98. }
  99. if (!empty($where)) {
  100. $where['isactive'] = 1;
  101. $jhinfo = $this->jobhuntingmodel->getinfo($where);
  102. if (!empty($jhinfo)) {
  103. return backarr(0, "数据已存在");
  104. }
  105. }
  106. */
  107. $id = $this->jobhuntingmodel->insertData($info);
  108. if (empty($id)) {
  109. return backarr(0, "添加失败");
  110. } else {
  111. return backarr(1, "添加成功", ['id' => $id]);
  112. }
  113. }
  114. /*
  115. * 20211002
  116. * edit by steelxu
  117. * upade 改为 update
  118. */
  119. public function updateinfobyid($id, $updateData)
  120. {
  121. $where = ['id' => $id];
  122. $result = $this->jobhuntingmodel->update($where, $updateData);
  123. return $result;
  124. }
  125. public function updateisactivebyid($param)
  126. {
  127. if (!isset($param['id']) || empty($param['id'])) {
  128. return backarr(0, "请求数据错误");
  129. }
  130. $id = $param['id'];
  131. $info = $this->getinfobyid($id);
  132. if (empty($info)) {
  133. return backarr(0, "无数据");
  134. }
  135. if (1 != $info['isactive']) {
  136. return backarr(0, "已关闭");
  137. }
  138. $updateData = [
  139. 'isactive' => 0,
  140. 'unactivetime' => date("y-m-d H:i:s", time()),
  141. ];
  142. $updateWhere = [
  143. 'id' => $id,
  144. ];
  145. $row = $this->jobhuntingmodel->updateinfo($updateWhere, $updateData);
  146. if (!$row) {
  147. return backarr(0, "修改失败");
  148. }
  149. return backarr(1, "操作成功", ['id' => $id]);
  150. }
  151. public function incconcountbyid($param)
  152. {
  153. if (!isset($param['id']) || empty($param['id'])) {
  154. return backarr(0, "请求数据错误");
  155. }
  156. $id = $param['id'];
  157. $info = $this->getinfobyid($id);
  158. if (empty($info)) {
  159. return backarr(0, "无数据");
  160. }
  161. $updateWhere = [
  162. 'id' => $id,
  163. ];
  164. $row = $this->jobhuntingmodel->incField($updateWhere, 'concount');
  165. if (!$row) {
  166. return backarr(0, "修改失败");
  167. }
  168. return backarr(1, "操作成功");
  169. }
  170. //根据经纬度获取列表
  171. /*
  172. * 20211003
  173. * edit by steelxu5
  174. * 需加上 isactive=1,只提供未关闭的信息
  175. * 20211003
  176. * edit by steelxu5
  177. * 需要加上头像和通讯信息,
  178. *
  179. */
  180. public function getlistbyrange($arr)
  181. {
  182. $fillArr = ['lng', 'lat'];
  183. foreach ($fillArr as $key => $value) {
  184. if (!isset($arr[$value]) || empty($arr[$value])) {
  185. return backarr(0, "请求数据错误");
  186. }
  187. }
  188. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  189. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  190. $radii = isset($arr['radii']) && !empty($arr['radii']) ? $arr['radii'] : 100;
  191. $minlat = $arr['lat'] - $radii;
  192. $maxlat = $arr['lat'] + $radii;
  193. $minlng = $arr['lng'] - $radii;
  194. $maxlng = $arr['lng'] + $radii;
  195. $where = [
  196. 'gps_lat' => ['between', $minlat . "," . $maxlat],
  197. 'gps_lng' => ['between', $minlng . "," . $maxlng],
  198. 'isactive' => 1,
  199. 'ispass' => 1,
  200. ];
  201. $list = $this->jobhuntingmodel->getList($where, '*', $page, $size);
  202. if (count($list) <= 0) {
  203. return backarr(0, "无数据");
  204. }
  205. $t_u = new userinfomodel();
  206. foreach ($list as &$invent) {
  207. $uid = $invent['createuid'];
  208. $uinfo = $t_u->selconinfobyid($uid);
  209. $invent['coninfo'] = $uinfo;
  210. }
  211. return backarr(1, "查询成功", $list);
  212. }
  213. /*
  214. * 20211003
  215. * edit by steelxu5
  216. * 需加上 isactive=1,只提供未关闭的信息
  217. *
  218. */
  219. public function getlistbyaddress($arr)
  220. {
  221. $where = [];
  222. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  223. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  224. if (isset($arr['city'])) {
  225. $where['city'] = ['like', "%" . $arr['city'] . "%"];
  226. }
  227. if (isset($arr['disc'])) {
  228. $where['disc'] = ['like', "%" . $arr['disc'] . "%"];
  229. }
  230. if (isset($arr['address'])) {
  231. $where['address'] = ['like', "%" . $arr['address'] . "%"];
  232. }
  233. if (empty($where)) {
  234. return backarr(0, "请求数据错误");
  235. }
  236. $where['isactive'] = 1; //edit by steelxu 20211003
  237. $where['ispass'] = 1;
  238. $list = $this->jobhuntingmodel->getList($where, "*", $page, $size);
  239. if (count($list) <= 0) {
  240. return backarr(0, "无数据");
  241. }
  242. $t_u = new userinfomodel();
  243. foreach ($list as &$invent) {
  244. $uid = $invent['createuid'];
  245. $uinfo = $t_u->selconinfobyid($uid);
  246. $invent['coninfo'] = $uinfo;
  247. }
  248. return backarr(1, "查询成功", $list);
  249. }
  250. /*
  251. * 20211002
  252. * steelxu5
  253. * 获取用户本人发的招工信息
  254. */
  255. public function getinventlistbycuid($arr)
  256. {
  257. $crid = $arr['uid'];
  258. $list = $this->jobhuntingmodel->sellistbyuid($crid);
  259. if (count($list) <= 0) {
  260. return backarr(0, "无数据");
  261. }
  262. return backarr(1, "查询成功", $list);
  263. }
  264. /*
  265. * 20211007
  266. * edit by steelxu5
  267. * 没有结果时,获取全部信息按地址发布
  268. *
  269. */
  270. public function getlistbytime($arr)
  271. {
  272. $where = [];
  273. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  274. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  275. $where['isactive'] = 1; //edit by steelxu 20211003
  276. $where['ispass'] = 1;
  277. $list = $this->jobhuntingmodel->getList($where, "*", $page, $size);
  278. if (count($list) <= 0) {
  279. return backarr(0, "无数据");
  280. }
  281. $t_u = new userinfomodel();
  282. foreach ($list as &$invent) {
  283. $uid = $invent['createuid'];
  284. $uinfo = $t_u->selconinfobyid($uid);
  285. $invent['coninfo'] = $uinfo;
  286. }
  287. return backarr(1, "查询成功", $list);
  288. }
  289. /***
  290. * 按工种查询
  291. * 20211026
  292. * wj
  293. */
  294. public function getlistbyworktype($arr)
  295. {
  296. if (!isset($arr['worktype']) || empty($arr['worktype'])) {
  297. return backarr(0, "请求数据错误");
  298. }
  299. $where = [];
  300. $worktype = $arr['worktype'];
  301. $where['worktype'] = $worktype;
  302. if (isset($arr['city']) && !empty($arr['city'])) {
  303. $where['city'] = $arr['city'];
  304. }
  305. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  306. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  307. $where['isactive'] = 1;
  308. $where['ispass'] = 1;
  309. /*$order = 'id desc';
  310. if (isset($arr['order']) && !empty($arr['order'])) {
  311. $order = $arr['order'];
  312. }*/
  313. $list = $this->jobhuntingmodel->getList($where, "*", $page, $size);
  314. if (count($list) <= 0) {
  315. return backarr(0, "无数据");
  316. }
  317. $t_u = new userinfomodel();
  318. foreach ($list as &$invent) {
  319. $uid = $invent['createuid'];
  320. $uinfo = $t_u->selconinfobyid($uid);
  321. $invent['coninfo'] = $uinfo;
  322. }
  323. return backarr(1, "查询成功", $list);
  324. }
  325. /*
  326. * 20211007
  327. * wj
  328. * 根据查询条件返回结果
  329. * 目前仅pc后台使用
  330. */
  331. public function getlistbysearch($arr)
  332. {
  333. $where = [];
  334. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  335. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  336. if (isset($arr['userstyle'])) {
  337. $where['userstyle'] = $arr['userstyle'];
  338. }
  339. if (isset($arr['wname'])) {
  340. $where['wname'] = $arr['wname'];
  341. }
  342. if (isset($arr['telno'])) {
  343. $where['telno'] = $arr['telno'];
  344. }
  345. if (isset($arr['isactive'])) {
  346. $where['isactive'] = $arr['isactive'];
  347. }
  348. if (isset($arr['ispass'])) {
  349. $where['ispass'] = $arr['ispass'];
  350. }
  351. if (isset($arr['worktype'])) {
  352. $where['worktype'] = $arr['worktype'];
  353. }
  354. if (isset($arr['createdate']) && is_array($arr['createdate'])) {
  355. $createdate = array_filter($arr['createdate']);
  356. if (2 == count($createdate)) {
  357. $where['createdate'] = $arr['createdate'];
  358. }
  359. }
  360. $order = 'id desc';
  361. if (isset($arr['order']) && !empty($arr['order'])) {
  362. $order = $arr['order'];
  363. }
  364. $count = $this->jobhuntingmodel->getlistjoinuser($where, "count", $page, $size, $order);
  365. if ($count < 0) {
  366. return backarr(0, "无数据");
  367. }
  368. $list = $this->jobhuntingmodel->getlistjoinuser($where, "*", $page, $size, $order);
  369. $data = [
  370. 'count' => $count ? $count : 0,
  371. 'list' => $list,
  372. ];
  373. return backarr(1, "查询成功", $data);
  374. }
  375. /***
  376. * pc端审核用
  377. * 未审核 审核失败-》 审核成功
  378. * 未审核->审核失败
  379. * 20211117
  380. * wj
  381. */
  382. public function updateispassbyid($arr)
  383. {
  384. if (!isset($arr['idlist']) || !is_array($arr['idlist'])) {
  385. return backarr(0, "请求错误");
  386. }
  387. if (!isset($arr['ispass']) || !in_array($arr['ispass'], [2, 1])) {
  388. return backarr(0, "请求错误");
  389. }
  390. $ispass = $arr['ispass'];
  391. $idlist = $arr['idlist'];
  392. $passtype = $arr['passtype'];
  393. $where = ['isactive' => 1];
  394. switch ($ispass) {
  395. case 1:
  396. $where['ispass'] = ['in', [0, 2]];
  397. break;
  398. case 2:
  399. $where['ispass'] = ['in', [0]];
  400. break;
  401. }
  402. $where['id'] = ['in', $idlist];
  403. $update = [
  404. 'ispass' => $ispass,
  405. 'passtime' => date('Y-m-d H:i:s'),
  406. 'passtype' => $passtype,
  407. ];
  408. $row = $this->jobhuntingmodel->updateinfo($where, $update);
  409. if ($row <= 0) {
  410. return backarr(0, "修改失败");
  411. }
  412. return backarr(1, "修改成功", ['row' => $row, 'idlist' => $idlist, 'ispass' => $ispass]);
  413. }
  414. /**
  415. * pc 后台改数据
  416. * 20211207
  417. * wj
  418. */
  419. public function updateinfoforadmin($arr)
  420. {
  421. if (!isset($arr['id']) || !is_numeric($arr['id'])) {
  422. return backarr(0, "请求错误");
  423. }
  424. $id = $arr['id'];
  425. $where = ['id' => $id];
  426. $info = $this->jobhuntingmodel->getInfo($where);
  427. if (empty($info)) {
  428. return backarr(0, "无数据");
  429. }
  430. $updateField = ['info'];
  431. $upateData = [];
  432. foreach ($updateField as $key => $value) {
  433. if (isset($arr[$value])) {
  434. if ($arr[$value] != $info[$value]) {
  435. $upateData[$value] = $arr[$value];
  436. }
  437. }
  438. }
  439. if (empty($upateData)) {
  440. return backarr(0, "无修改数据");
  441. }
  442. $row = $this->jobhuntingmodel->updateinfo($where, $upateData);
  443. if ($row <= 0) {
  444. return backarr(0, "修改错误");
  445. }
  446. return backarr(1, "修改成功", ['id' => $id]);
  447. }
  448. }