inventlogic.php 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820
  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-12-24 16:30:10
  7. */
  8. namespace app\index\logic;
  9. use app\index\model\companymodel;
  10. use app\index\model\inventmodel;
  11. use app\index\model\logmodel;
  12. use app\index\model\userinfomodel;
  13. use app\index\model\webusermodel;
  14. use app\index\model\workermodel;
  15. use think\Db;
  16. use think\Log;
  17. class inventlogic
  18. {
  19. private $inventmodel;
  20. public function __construct()
  21. {
  22. $this->inventmodel = new inventmodel();
  23. }
  24. /*
  25. * edit in 20211025
  26. * edit by steelxu
  27. * 增加了发布人的通讯信息
  28. */
  29. public function getinfobyid($id)
  30. {
  31. $where = ['id' => $id];
  32. $info = $this->inventmodel->getInfo($where);
  33. if (empty($info)) {
  34. return false;
  35. }
  36. //edit by steelxu 20211025
  37. $t_u = new userinfomodel();
  38. $uid = $info['createuid'];
  39. $uinfo = $t_u->selconinfobyid($uid);
  40. $info['coninfo'] = empty($uinfo) ? false : $uinfo;
  41. if (!empty($info['releaseid'])) {
  42. $m_wu = new webusermodel();
  43. $wuinfo = $m_wu->getInfo(['id' => $info['releaseid']], ['user_name']);
  44. if (empty($wuinfo)) {
  45. $info['release_user'] = '';
  46. } else {
  47. $info['release_user'] = $wuinfo['user_name'];
  48. }
  49. } else {
  50. $info['release_user'] = '';
  51. }
  52. $m_c = new companymodel();
  53. $cinfo = $m_c->getInfo(['userid' => $info['createuid'], 'isactive' => 1, 'ispass' => 1]);
  54. if (empty($cinfo)) {
  55. $info['is_company'] = 0;
  56. $info['company'] = 0;
  57. } else {
  58. $info['is_company'] = 1;
  59. $info['company'] = $cinfo['company'];
  60. }
  61. return $info;
  62. }
  63. /**
  64. * 20211221
  65. * wj
  66. * 查询详细 仅列表用
  67. */
  68. public function getinfobyidforlist($id)
  69. {
  70. $where = ['id' => $id];
  71. $info = $this->inventmodel->getInfo($where);
  72. if (empty($info)) {
  73. return false;
  74. }
  75. $t_u = new userinfomodel();
  76. $uid = $info['createuid'];
  77. $uinfo = $t_u->selconinfobyid($uid);
  78. $info['coninfo'] = empty($uinfo) ? false : $uinfo;
  79. if (!empty($info['releaseid'])) {
  80. $m_wu = new webusermodel();
  81. $wuinfo = $m_wu->getInfo(['id' => $info['releaseid']], ['user_name']);
  82. if (empty($wuinfo)) {
  83. $info['release_user'] = '';
  84. } else {
  85. $info['release_user'] = $wuinfo['user_name'];
  86. }
  87. } else {
  88. $info['release_user'] = '';
  89. }
  90. $m_c = new companymodel();
  91. $cinfo = $m_c->getInfo(['userid' => $info['createuid'], 'isactive' => 1, 'ispass' => 1]);
  92. if (empty($cinfo)) {
  93. $info['is_company'] = 0;
  94. $info['company'] = 0;
  95. } else {
  96. $info['is_company'] = 1;
  97. $info['company'] = $cinfo['company'];
  98. }
  99. return $info;
  100. }
  101. public function insertinfo($info)
  102. {
  103. if (!isset($info['createuid']) || empty($info['createuid'])) {
  104. return backarr(0, "请求错误");
  105. }
  106. $uid = $info['createuid'];
  107. $t_u = new userinfomodel();
  108. $uinfo = $t_u->selconinfobyid($uid);
  109. if (empty($uinfo)) {
  110. return backarr(0, "无用户信息");
  111. }
  112. if (!isset($info['createdate']) || empty($info['createdate'])) {
  113. $info['createdate'] = date('Y-m-d H:i:s', time());
  114. }
  115. if (isset($info['daysalary'])) {
  116. if (!is_numeric($info['daysalary'])) {
  117. return backarr(0, "日结工资格式错误");
  118. }
  119. }
  120. if (isset($info['disstr']) || !empty($info['disstr'])) {
  121. if (mb_strlen($info['disstr']) > 20) {
  122. return backarr(0, "内容简介过长");
  123. }
  124. }
  125. $info['code'] = $this->getCode();
  126. log::info($info); //调试用
  127. $id = $this->inventmodel->insertData($info);
  128. if (!$id) {
  129. return backarr(0, "操作失败");
  130. }
  131. return backarr(1, "操作成功", ['id' => $id]);
  132. }
  133. /*
  134. * 20211002
  135. * edit by steelxu
  136. * upade 改为 update
  137. */
  138. public function updateinfobyid($id, $updateData)
  139. {
  140. $where = ['id' => $id];
  141. //记录userlog wj
  142. log::info('update:' . $id);
  143. log::info($updateData);
  144. $m_l = new logmodel();
  145. $jsonData = [
  146. 'inventid' => $id,
  147. 'webuserid' => isset($updateData['releaseid']) ? $updateData['releaseid'] : '',
  148. 'createuid' => isset($updateData['createuid']) ? $updateData['createuid'] : '',
  149. ];
  150. $logData = [
  151. 'type' => '招工修改',
  152. 'json' => json_encode($jsonData),
  153. 'create_date' => date('Y-m-d H:i:s'),
  154. ];
  155. $m_l->savelog(json_encode($logData));
  156. $result = $this->inventmodel->update($where, $updateData);
  157. return $result;
  158. }
  159. /*
  160. * 改可用状态
  161. */
  162. public function updateisactivebyid($param)
  163. {
  164. if (!isset($param['id']) || empty($param['id'])) {
  165. return backarr(0, "请求数据错误");
  166. }
  167. $id = $param['id'];
  168. $info = $this->getinfobyid($id);
  169. if (empty($info)) {
  170. return backarr(0, "无数据");
  171. }
  172. if (1 != $info['isactive']) {
  173. return backarr(0, "已关闭");
  174. }
  175. $updateData = [
  176. 'isactive' => 0,
  177. 'unactivetime' => date("y-m-d H:i:s", time()),
  178. ];
  179. $updateWhere = [
  180. 'id' => $id,
  181. ];
  182. $row = $this->inventmodel->updateinfo($updateWhere, $updateData);
  183. if (!$row) {
  184. return backarr(0, "修改失败");
  185. }
  186. return backarr(1, "操作成功", ['id' => $id]);
  187. }
  188. /*
  189. * 加联系次数
  190. */
  191. public function incconcountbyid($param)
  192. {
  193. if (!isset($param['id']) || empty($param['id'])) {
  194. return backarr(0, "请求数据错误");
  195. }
  196. $id = $param['id'];
  197. $info = $this->getinfobyid($id);
  198. if (empty($info)) {
  199. return backarr(0, "无数据");
  200. }
  201. $isadd = true;
  202. $isclose = false;
  203. if (!$info['isactive']) {
  204. return backarr(0, "已关闭");
  205. }
  206. if ($info['maxconcount'] > 0) {
  207. if ($info['concount'] >= $info['maxconcount']) {
  208. $isadd = false;
  209. $isclose = true;
  210. }
  211. if ($isadd) {
  212. if ($info['concount'] + 1 >= $info['maxconcount']) {
  213. $isclose = true;
  214. }
  215. }
  216. if ($isclose) {
  217. $updateData = [
  218. 'isactive' => 0,
  219. 'unactivetime' => date("y-m-d H:i:s", time()),
  220. ];
  221. $updateWhere = [
  222. 'id' => $id,
  223. ];
  224. $row = $this->inventmodel->updateinfo($updateWhere, $updateData);
  225. if (!$row) {
  226. return backarr(0, "自动关闭修改失败");
  227. }
  228. }
  229. }
  230. if ($isadd) {
  231. $updateWhere = [
  232. 'id' => $id,
  233. ];
  234. $row = $this->inventmodel->incField($updateWhere, 'concount');
  235. if (!$row) {
  236. return backarr(0, "修改失败");
  237. }
  238. }
  239. $info = $this->getinfobyid($id);
  240. return backarr(1, "操作成功", ['concount' => $info['concount']]);
  241. }
  242. /*
  243. * 改联系次数
  244. * 20211221
  245. * wj
  246. */
  247. public function updatemaxconcountbyid($param)
  248. {
  249. if (!isset($param['id']) || empty($param['id']) || !isset($param['maxconcount']) || !is_numeric($param['maxconcount'])) {
  250. return backarr(0, "请求数据错误");
  251. }
  252. $id = $param['id'];
  253. $maxconcount = $param['maxconcount'];
  254. $info = $this->getinfobyid($id);
  255. if (empty($info)) {
  256. return backarr(0, "无数据");
  257. }
  258. $updateData = [
  259. 'maxconcount' => $maxconcount,
  260. ];
  261. $updateWhere = [
  262. 'id' => $id,
  263. ];
  264. $row = $this->inventmodel->updateinfo($updateWhere, $updateData);
  265. if (!$row) {
  266. return backarr(0, "修改失败");
  267. }
  268. return backarr(1, "操作成功", ['id' => $id]);
  269. }
  270. //根据经纬度获取列表
  271. /*
  272. * 20211003
  273. * edit by steelxu5
  274. * 需加上 isactive=1,只提供未关闭的信息
  275. * 20211003
  276. * edit by steelxu5
  277. * 需要加上头像和通讯信息,
  278. *
  279. */
  280. public function getlistbyrange($arr)
  281. {
  282. $fillArr = ['lng', 'lat'];
  283. foreach ($fillArr as $key => $value) {
  284. if (!isset($arr[$value]) || empty($arr[$value])) {
  285. return backarr(0, "请求数据错误");
  286. }
  287. }
  288. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  289. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  290. $radii = isset($arr['radii']) && !empty($arr['radii']) ? $arr['radii'] : 100;
  291. $minlat = $arr['lat'] - $radii;
  292. $maxlat = $arr['lat'] + $radii;
  293. $minlng = $arr['lng'] - $radii;
  294. $maxlng = $arr['lng'] + $radii;
  295. $where = [
  296. 'gps_lat' => ['between', $minlat . "," . $maxlat],
  297. 'gps_lng' => ['between', $minlng . "," . $maxlng],
  298. 'isactive' => 1,
  299. 'ispass' => 1,
  300. ];
  301. $order = 'id desc';
  302. if (isset($arr['order']) && !empty($arr['order'])) {
  303. $order = $arr['order'];
  304. }
  305. $list = $this->inventmodel->getList($where, '*', $page, $size, $order);
  306. if (count($list) <= 0) {
  307. return backarr(0, "无数据");
  308. }
  309. $t_u = new userinfomodel();
  310. foreach ($list as $key => &$invent) {
  311. $list[$key] = $this->getinfobyidforlist($invent['id']);
  312. }
  313. return backarr(1, "查询成功", $list);
  314. }
  315. /*
  316. * 20211003
  317. * edit by steelxu5
  318. * 需加上 isactive=1,只提供未关闭的信息
  319. *
  320. */
  321. public function getlistbyaddress($arr)
  322. {
  323. $where = [];
  324. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  325. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  326. if (isset($arr['city'])) {
  327. $where['city'] = ['like', "%" . $arr['city'] . "%"];
  328. }
  329. if (isset($arr['disc'])) {
  330. $where['disc'] = ['like', "%" . $arr['disc'] . "%"];
  331. }
  332. if (isset($arr['town'])) {
  333. $where['town'] = ['like', "%" . $arr['town'] . "%"];
  334. }
  335. if (isset($arr['address'])) {
  336. $where['address'] = ['like', "%" . $arr['address'] . "%"];
  337. }
  338. if (empty($where)) {
  339. return backarr(0, "请求数据错误");
  340. }
  341. $where['isactive'] = 1; //edit by steelxu 20211003
  342. $where['ispass'] = 1;
  343. $order = 'id desc';
  344. if (isset($arr['order']) && !empty($arr['order'])) {
  345. $order = $arr['order'];
  346. }
  347. $list = $this->inventmodel->getList($where, "*", $page, $size, $order);
  348. if (count($list) <= 0) {
  349. return backarr(0, "无数据");
  350. }
  351. $t_u = new userinfomodel();
  352. foreach ($list as $key => &$invent) {
  353. $list[$key] = $this->getinfobyidforlist($invent['id']);
  354. }
  355. return backarr(1, "查询成功", $list);
  356. }
  357. /*
  358. * 20211002
  359. * steelxu5
  360. * 获取用户本人发的招工信息
  361. */
  362. public function getinventlistbycuid($arr)
  363. {
  364. $crid = $arr['uid'];
  365. $list = $this->inventmodel->sellistbyuid($crid);
  366. if (count($list) <= 0) {
  367. return backarr(0, "无数据");
  368. }
  369. foreach ($list as $key => &$invent) {
  370. $list[$key] = $this->getinfobyidforlist($invent['id']);
  371. }
  372. return backarr(1, "查询成功", $list);
  373. }
  374. /*
  375. * 20211007
  376. * edit by steelxu5
  377. * 没有结果时,获取全部信息按地址发布
  378. *
  379. */
  380. public function getlistbytime($arr)
  381. {
  382. $where = [];
  383. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  384. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  385. $where['isactive'] = 1;
  386. $where['ispass'] = 1;
  387. $order = 'id desc';
  388. if (isset($arr['order']) && !empty($arr['order'])) {
  389. $order = $arr['order'];
  390. }
  391. $list = $this->inventmodel->getList($where, "*", $page, $size, $order);
  392. if (count($list) <= 0) {
  393. return backarr(0, "无数据");
  394. }
  395. $t_u = new userinfomodel();
  396. foreach ($list as $key => &$invent) {
  397. $list[$key] = $this->getinfobyidforlist($invent['id']);
  398. }
  399. return backarr(1, "查询成功", $list);
  400. }
  401. /*
  402. * 20211007
  403. * wj
  404. * 根据查询条件返回结果
  405. * 目前仅pc后台使用
  406. */
  407. public function getlistbysearch($arr)
  408. {
  409. $m_wu = new webusermodel();
  410. $where = [];
  411. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  412. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  413. if (isset($arr['telno'])) {
  414. $where['telno'] = $arr['telno'];
  415. }
  416. if (isset($arr['wname'])) {
  417. $where['wname'] = $arr['wname'];
  418. }
  419. if (isset($arr['code'])) {
  420. $where['code'] = $arr['code'];
  421. }
  422. if (isset($arr['isactive'])) {
  423. $where['isactive'] = $arr['isactive'];
  424. }
  425. if (isset($arr['ispass'])) {
  426. $where['ispass'] = $arr['ispass'];
  427. }
  428. if (isset($arr['createdate']) && is_array($arr['createdate'])) {
  429. $createdate = array_filter($arr['createdate']);
  430. if (2 == count($createdate)) {
  431. $where['createdate'] = $arr['createdate'];
  432. }
  433. }
  434. $order = 'id desc';
  435. if (isset($arr['order']) && !empty($arr['order'])) {
  436. $order = $arr['order'];
  437. }
  438. $count = $this->inventmodel->getlistjoinuser($where, "count", $page, $size, $order);
  439. if ($count < 0) {
  440. return backarr(0, "无数据");
  441. }
  442. $list = $this->inventmodel->getlistjoinuser($where, "*", $page, $size, $order);
  443. foreach ($list as $key => &$invent) {
  444. $list[$key] = $this->getinfobyidforlist($invent['id']);
  445. }
  446. /*foreach ($list as $key => &$value) {
  447. if (!empty($value['releaseid'])) {
  448. $wuinfo = $m_wu->getInfo(['id' => $value['releaseid']], ['user_name']);
  449. if (empty($wuinfo)) {
  450. $value['release_user'] = '';
  451. } else {
  452. $value['release_user'] = $wuinfo['user_name'];
  453. }
  454. } else {
  455. $value['release_user'] = '';
  456. }
  457. }*/
  458. $data = [
  459. 'count' => $count ? $count : 0,
  460. 'list' => $list,
  461. ];
  462. return backarr(1, "查询成功", $data);
  463. }
  464. /***
  465. * 20211026
  466. * 按工种查询
  467. * wj
  468. */
  469. public function getlistbyworktype($arr)
  470. {
  471. if (!isset($arr['worktype']) || empty($arr['worktype'])) {
  472. return backarr(0, "请求数据错误");
  473. }
  474. if (!isset($arr['city']) || empty($arr['city'])) {
  475. $arr['city'] = "天津";
  476. }
  477. $where = [];
  478. $worktype = $arr['worktype'];
  479. $where['worktype'] = $worktype;
  480. if (isset($arr['city']) && !empty($arr['city'])) {
  481. $where['city'] = ['like', '%' . $arr['city'] . '%'];
  482. }
  483. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  484. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  485. $where['isactive'] = 1;
  486. $where['ispass'] = 1;
  487. $order = 'id desc';
  488. if (isset($arr['order']) && !empty($arr['order'])) {
  489. $order = $arr['order'];
  490. }
  491. $list = $this->inventmodel->getList($where, "*", $page, $size, $order);
  492. if (count($list) <= 0) {
  493. return backarr(0, "无数据");
  494. }
  495. $t_u = new userinfomodel();
  496. foreach ($list as $key => &$invent) {
  497. $list[$key] = $this->getinfobyidforlist($invent['id']);
  498. }
  499. return backarr(1, "查询成功", $list);
  500. }
  501. //代发
  502. // 20211101 wj
  503. public function insertinfobyrelease($arr)
  504. {
  505. $fillFiled = ['telno', 'releaseid', 'info', 'worktype', 'disc', 'city', 'address'];
  506. foreach ($fillFiled as $key => $value) {
  507. if (!isset($arr[$value]) || empty($arr[$value])) {
  508. return backarr(0, "请求错误");
  509. }
  510. }
  511. $m_u = new userinfomodel();
  512. $m_wu = new webusermodel();
  513. $m_w = new workermodel();
  514. Db::startTrans();
  515. try {
  516. $telno = $arr['telno'];
  517. $userinfo = $m_u->getInfo(['telno' => $telno]);
  518. if (empty($userinfo)) {
  519. $addData = [
  520. 'telno' => $telno,
  521. 'isactive' => 0,
  522. 'createtime' => date('Y-m-d H:i:s', time()),
  523. 'platform' => '管理后台',
  524. ];
  525. $createuid = $m_u->insertData($addData);
  526. if (empty($createuid)) {
  527. throw new \Exception("会员创建失败");
  528. }
  529. $winsertInfo = [
  530. 'userid' => $createuid,
  531. 'telno' => $telno,
  532. ];
  533. $wid = $m_w->insertData($winsertInfo);
  534. if (empty($wid)) {
  535. throw new \Exception("会员工人信息创建失败");
  536. }
  537. } else {
  538. if (1 != $userinfo['isright']) {
  539. throw new \Exception("发布状态为无效");
  540. }
  541. $createuid = $userinfo['id'];
  542. }
  543. $wuinfo = $m_wu->getInfo(['id' => $arr['releaseid']]);
  544. if (empty($wuinfo)) {
  545. throw new \Exception("用户信息错误");
  546. }
  547. unset($arr['telno']);
  548. $arr['createuid'] = $createuid;
  549. if (!isset($arr['createdate']) || empty($arr['createdate'])) {
  550. $arr['createdate'] = date('Y-m-d H:i:s', time());
  551. }
  552. if (isset($arr['daysalary'])) {
  553. if (!is_numeric($arr['daysalary'])) {
  554. throw new \Exception("日结工资格式错误");
  555. }
  556. }
  557. $arr['code'] = $this->getCode();
  558. $arr['ispass'] = 1;
  559. $arr['passtime'] = date('Y-m-d H:i:s');
  560. $arr['passtype'] = 1;
  561. if (isset($arr['info']) && !empty($arr['info'])) {
  562. if (!isset($arr['disstr']) || empty($arr['disstr'])) {
  563. $arr['disstr'] = mb_substr($arr['info'], 0, 10);
  564. }
  565. }
  566. $id = $this->inventmodel->insertData($arr);
  567. if (!$id) {
  568. throw new \Exception("操作失败");
  569. }
  570. Db::commit();
  571. return backarr(1, "操作成功", ['id' => $id]);
  572. } catch (\Exception $e) {
  573. Db::rollback();
  574. return backarr(0, $e->getMessage());
  575. }
  576. }
  577. private function getCode()
  578. {
  579. $code = 'I' . date('YmdHis');
  580. return $code;
  581. }
  582. //修改
  583. // 20211102 wj
  584. public function updateinventfromadmin($arr)
  585. {
  586. $fillFiled = ['id', 'telno', 'releaseid', 'disstr', 'info', 'worktype', 'disc', 'city', 'address'];
  587. foreach ($fillFiled as $key => $value) {
  588. if (!isset($arr[$value]) || empty($arr[$value])) {
  589. return backarr(0, "请求错误");
  590. }
  591. }
  592. $m_u = new userinfomodel();
  593. $m_wu = new webusermodel();
  594. $m_i = new inventmodel();
  595. $m_w = new workermodel();
  596. $inventInfo = $m_i->getInfo(['id' => $arr['id']]);
  597. if (empty($inventInfo)) {
  598. return backarr(0, "无数据");
  599. }
  600. Db::startTrans();
  601. try {
  602. $wuinfo = $m_wu->getInfo(['id' => $arr['releaseid']]);
  603. if (empty($wuinfo)) {
  604. throw new \Exception("用户信息错误");
  605. }
  606. $id = $inventInfo['id'];
  607. $telno = $arr['telno'];
  608. $userinfo = $m_u->getInfo(['telno' => $telno]);
  609. if (empty($userinfo)) {
  610. $addData = [
  611. 'telno' => $telno,
  612. 'isactive' => 0,
  613. 'createtime' => date('Y-m-d H:i:s', time()),
  614. 'platform' => '管理后台',
  615. ];
  616. $createuid = $m_u->insertData($addData);
  617. if (empty($createuid)) {
  618. throw new \Exception("会员创建失败");
  619. }
  620. $workerAddData = [
  621. 'userid' => $createuid,
  622. 'telno' => $telno,
  623. ];
  624. $wid = $m_w->insertData($workerAddData);
  625. if (empty($wid)) {
  626. throw new \Exception("工人信息创建失败");
  627. }
  628. } else {
  629. $createuid = $userinfo['id'];
  630. }
  631. $arr['createuid'] = $createuid;
  632. $updateData = [];
  633. $updateField = ['createuid', 'city', 'disc', 'address', 'disstr', 'worktypeid', 'worktype', 'daysalary', 'info', 'town'];
  634. foreach ($updateField as $key => $value) {
  635. if ($arr[$value] !== $inventInfo[$value]) {
  636. $updateData[$value] = $arr[$value];
  637. }
  638. }
  639. if (empty($inventInfo['code'])) {
  640. $updateData['code'] = $this->getCode();
  641. }
  642. $row = $this->inventmodel->updateinfo(['id' => $id], $updateData);
  643. if (empty($row)) {
  644. throw new \Exception("需改失败");
  645. }
  646. //修改成功 记录log
  647. log::info('update:' . $id);
  648. log::info($updateData);
  649. $m_l = new logmodel();
  650. $jsonData = [
  651. 'inventid' => $id,
  652. 'webuserid' => isset($updateData['releaseid']) ? $updateData['releaseid'] : '',
  653. 'createuid' => isset($updateData['createuid']) ? $updateData['createuid'] : '',
  654. ];
  655. $logData = [
  656. 'type' => '招工修改',
  657. 'json' => json_encode($jsonData),
  658. 'create_date' => date('Y-m-d H:i:s'),
  659. ];
  660. $m_l->savelog(json_encode($logData));
  661. Db::commit();
  662. return backarr(1, "操作成功", ['id' => $id]);
  663. } catch (\Exception $e) {
  664. Db::rollback();
  665. return backarr(0, $e->getMessage());
  666. }
  667. }
  668. /***
  669. * px端审核用
  670. * 未审核 审核失败-》 审核成功
  671. * 未审核->审核失败
  672. * 20211117
  673. * wj
  674. */
  675. public function updateispassbyid($arr)
  676. {
  677. if (!isset($arr['idlist']) || !is_array($arr['idlist'])) {
  678. return backarr(0, "请求错误1");
  679. }
  680. if (!isset($arr['ispass']) || !in_array($arr['ispass'], [2, 1])) {
  681. return backarr(0, "请求错误");
  682. }
  683. $ispass = $arr['ispass'];
  684. $idlist = $arr['idlist'];
  685. $m_i = new inventmodel();
  686. $where = ['isactive' => 1];
  687. switch ($ispass) {
  688. case 1:
  689. $where['ispass'] = ['in', [0, 2]];
  690. break;
  691. case 2:
  692. $where['ispass'] = ['in', [0]];
  693. break;
  694. }
  695. $where['id'] = ['in', $idlist];
  696. $update = [
  697. 'ispass' => $ispass,
  698. 'passtime' => date('Y-m-d H:i:s'),
  699. 'passtype' => 2,
  700. ];
  701. $row = $m_i->updateinfo($where, $update);
  702. if ($row <= 0) {
  703. return backarr(0, "修改失败");
  704. }
  705. return backarr(1, "修改成功", ['row' => $row, 'idlist' => $idlist, 'ispass' => $ispass]);
  706. }
  707. /**
  708. * 根据类型获取列表
  709. * 20211213
  710. * wj
  711. */
  712. public function getlistbywhere($arr)
  713. {
  714. //字段转译 key 请求字段 value 查询使用字段
  715. $fileds = [
  716. 'a' => 'address', //用字符|分割
  717. 'lng' => 'lng',
  718. 'lat' => 'lat',
  719. 'wt' => 'worktype',
  720. 'r' => 'radii',
  721. 'od' => 'orderdaysalary', //order daysalary desc
  722. ];
  723. $page = isset($arr['page']) && !empty($arr['page']) && is_numeric($arr['page']) ? $arr['page'] : 1;
  724. $size = isset($arr['size']) && !empty($arr['size']) && is_numeric($arr['size']) ? $arr['size'] : 10;
  725. $useValue = [];
  726. $pattern = '/[\'+%-]+/';
  727. foreach ($fileds as $key => $value) {
  728. if (isset($arr[$key]) && !empty($arr[$key]) && is_string($arr[$key])) {
  729. $str = preg_match_all($pattern, $arr[$key]);
  730. if ($str) {
  731. return backarr(0, "查询请求数据错误");
  732. }
  733. $useValue[$value] = $arr[$key];
  734. }
  735. }
  736. $where = [];
  737. if (isset($useValue['address']) && !empty($useValue['address'])) {
  738. $addressArr = explode('|', $useValue['address']);
  739. $searchAddress = [
  740. 'city' => isset($addressArr[0]) ? $addressArr[0] : '',
  741. 'disc' => isset($addressArr[1]) ? $addressArr[1] : '',
  742. 'town' => isset($addressArr[2]) ? $addressArr[2] : '',
  743. 'address' => isset($addressArr[3]) ? $addressArr[3] : '',
  744. ];
  745. $searchAddress = array_filter($searchAddress);
  746. if (!empty($searchAddress)) {
  747. $where = array_merge($where, $searchAddress);
  748. }
  749. }
  750. if (isset($useValue['orderdaysalary']) && !empty($useValue['orderdaysalary'])) {
  751. $useValue['orderdaysalary'] = true;
  752. } else {
  753. $useValue['orderdaysalary'] = false;
  754. }
  755. if (isset($useValue['radii']) && is_numeric($useValue['radii']) && !empty($useValue['radii'])) {
  756. //有经纬度
  757. $fillFidle = ['lng', 'lat'];
  758. foreach ($fillFidle as $key => $value) {
  759. if (isset($useValue[$value]) && is_numeric($useValue[$value]) && !empty($useValue[$value])) {
  760. $where[$value] = $useValue[$value];
  761. }
  762. }
  763. $where['radii'] = $useValue['radii'];
  764. }
  765. if (isset($useValue['worktype']) && !empty($useValue['worktype'])) {
  766. $where['worktype'] = $useValue['worktype'];
  767. }
  768. $order = 'id desc'; //默认时间倒序
  769. if ($useValue['orderdaysalary']) {
  770. $order = 'daysalary desc'; //工资倒序
  771. }
  772. $m_i = new inventmodel();
  773. $list = $m_i->getlistbymultiplecondition($where, $page, $size, $order);
  774. if (count($list) <= 0) {
  775. return backarr(0, "无数据");
  776. }
  777. $t_u = new userinfomodel();
  778. foreach ($list as $key => &$invent) {
  779. $list[$key] = $this->getinfobyidforlist($invent['id']);
  780. }
  781. return backarr(1, "查询成功", $list);
  782. }
  783. /**
  784. * 获取一定时间内无联系数量 默认5分钟
  785. * 20211222
  786. * wj
  787. */
  788. public function getnocalldata($arr)
  789. {
  790. $page = isset($arr['page']) && !empty($arr['page']) && is_numeric($arr['page']) ? $arr['page'] : 1;
  791. $size = isset($arr['size']) && !empty($arr['size']) && is_numeric($arr['size']) ? $arr['size'] : 10;
  792. $where = [];
  793. if (isset($arr['wname']) && !empty($arr['wname']) && is_string($arr['wname'])) {
  794. $where['wname'] = $arr['wname'];
  795. }
  796. if (isset($arr['telno']) && !empty($arr['telno']) && is_numeric($arr['telno'])) {
  797. $where['telno'] = $arr['telno'];
  798. }
  799. $m_i = new inventmodel();
  800. //获取5分钟内无联系招工
  801. $count = $m_i->getnocalldata(5, $where, true);
  802. if ($count <= 0) {
  803. return backarr(0, "无数据");
  804. }
  805. $list = $m_i->getnocalldata(5, $where, false, $page, $size);
  806. $data = [
  807. 'count' => $count,
  808. 'list' => $list,
  809. ];
  810. return backarr(1, "查询成功", $data);
  811. }
  812. }