inventv1logic.php 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838
  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-16 17:43:00
  7. */
  8. namespace app\index\logic;
  9. use app\index\model\companymodel;
  10. use app\index\model\inventv1model;
  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 inventv1logic
  18. {
  19. private $inventmodel;
  20. public function __construct()
  21. {
  22. $this->inventmodel = new inventv1model();
  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. return backarr(1, "操作成功");
  240. }
  241. /*
  242. * 改联系次数
  243. * 20211221
  244. * wj
  245. */
  246. public function updatemaxconcountbyid($param)
  247. {
  248. if (!isset($param['id']) || empty($param['id']) || !isset($param['maxconcount']) || !is_numeric($param['maxconcount'])) {
  249. return backarr(0, "请求数据错误");
  250. }
  251. $id = $param['id'];
  252. $maxconcount = $param['maxconcount'];
  253. $info = $this->getinfobyid($id);
  254. if (empty($info)) {
  255. return backarr(0, "无数据");
  256. }
  257. $updateData = [
  258. 'maxconcount' => $maxconcount,
  259. ];
  260. $updateWhere = [
  261. 'id' => $id,
  262. ];
  263. $row = $this->inventmodel->updateinfo($updateWhere, $updateData);
  264. if (!$row) {
  265. return backarr(0, "修改失败");
  266. }
  267. return backarr(1, "操作成功", ['id' => $id]);
  268. }
  269. //根据经纬度获取列表
  270. /*
  271. * 20211003
  272. * edit by steelxu5
  273. * 需加上 isactive=1,只提供未关闭的信息
  274. * 20211003
  275. * edit by steelxu5
  276. * 需要加上头像和通讯信息,
  277. *
  278. */
  279. public function getlistbyrange($arr)
  280. {
  281. $fillArr = ['lng', 'lat'];
  282. foreach ($fillArr as $key => $value) {
  283. if (!isset($arr[$value]) || empty($arr[$value])) {
  284. return backarr(0, "请求数据错误");
  285. }
  286. }
  287. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  288. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  289. $radii = isset($arr['radii']) && !empty($arr['radii']) ? $arr['radii'] : 100;
  290. $minlat = $arr['lat'] - $radii;
  291. $maxlat = $arr['lat'] + $radii;
  292. $minlng = $arr['lng'] - $radii;
  293. $maxlng = $arr['lng'] + $radii;
  294. $where = [
  295. 'gps_lat' => ['between', $minlat . "," . $maxlat],
  296. 'gps_lng' => ['between', $minlng . "," . $maxlng],
  297. //'isactive' => 1,
  298. 'ispass' => 1,
  299. ];
  300. if (isset($arr['isactive']) && in_array($arr['isactive'], [0, 1]) && is_numeric($arr['isactive'])) {
  301. $where['isactive'] = $arr['isactive'];
  302. }
  303. $order = 'id desc';
  304. if (isset($arr['order']) && !empty($arr['order'])) {
  305. $order = $arr['order'];
  306. }
  307. $list = $this->inventmodel->getList($where, '*', $page, $size, $order);
  308. if (count($list) <= 0) {
  309. return backarr(0, "无数据");
  310. }
  311. $t_u = new userinfomodel();
  312. foreach ($list as $key => &$invent) {
  313. $list[$key] = $this->getinfobyidforlist($invent['id']);
  314. }
  315. return backarr(1, "查询成功", $list);
  316. }
  317. /*
  318. * 20211003
  319. * edit by steelxu5
  320. * 需加上 isactive=1,只提供未关闭的信息
  321. *
  322. */
  323. public function getlistbyaddress($arr)
  324. {
  325. $where = [];
  326. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  327. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  328. if (isset($arr['city'])) {
  329. $where['city'] = ['like', "%" . $arr['city'] . "%"];
  330. }
  331. if (isset($arr['disc'])) {
  332. $where['disc'] = ['like', "%" . $arr['disc'] . "%"];
  333. }
  334. if (isset($arr['town'])) {
  335. $where['town'] = ['like', "%" . $arr['town'] . "%"];
  336. }
  337. if (isset($arr['address'])) {
  338. $where['address'] = ['like', "%" . $arr['address'] . "%"];
  339. }
  340. if (isset($arr['isactive']) && in_array($arr['isactive'], [0, 1]) && is_numeric($arr['isactive'])) {
  341. $where['isactive'] = $arr['isactive'];
  342. }
  343. if (empty($where)) {
  344. return backarr(0, "请求数据错误");
  345. }
  346. //$where['isactive'] = 1; //edit by steelxu 20211003
  347. $where['ispass'] = 1;
  348. $order = 'id desc';
  349. if (isset($arr['order']) && !empty($arr['order'])) {
  350. $order = $arr['order'];
  351. }
  352. $list = $this->inventmodel->getList($where, "*", $page, $size, $order);
  353. if (count($list) <= 0) {
  354. return backarr(0, "无数据");
  355. }
  356. $t_u = new userinfomodel();
  357. foreach ($list as $key => &$invent) {
  358. $list[$key] = $this->getinfobyidforlist($invent['id']);
  359. }
  360. return backarr(1, "查询成功", $list);
  361. }
  362. /*
  363. * 20211002
  364. * steelxu5
  365. * 获取用户本人发的招工信息
  366. */
  367. public function getinventlistbycuid($arr)
  368. {
  369. $crid = $arr['uid'];
  370. $list = $this->inventmodel->sellistbyuid($crid);
  371. if (count($list) <= 0) {
  372. return backarr(0, "无数据");
  373. }
  374. foreach ($list as $key => &$invent) {
  375. $list[$key] = $this->getinfobyidforlist($invent['id']);
  376. }
  377. return backarr(1, "查询成功", $list);
  378. }
  379. /*
  380. * 20211007
  381. * edit by steelxu5
  382. * 没有结果时,获取全部信息按地址发布
  383. *
  384. */
  385. public function getlistbytime($arr)
  386. {
  387. $where = [];
  388. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  389. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  390. if (isset($arr['isactive']) && in_array($arr['isactive'], [0, 1]) && is_numeric($arr['isactive'])) {
  391. $where['isactive'] = $arr['isactive'];
  392. }
  393. //$where['isactive'] = 1;
  394. $where['ispass'] = 1;
  395. $order = 'id desc';
  396. if (isset($arr['order']) && !empty($arr['order'])) {
  397. $order = $arr['order'];
  398. }
  399. $list = $this->inventmodel->getList($where, "*", $page, $size, $order);
  400. if (count($list) <= 0) {
  401. return backarr(0, "无数据");
  402. }
  403. $t_u = new userinfomodel();
  404. foreach ($list as $key => &$invent) {
  405. $list[$key] = $this->getinfobyidforlist($invent['id']);
  406. }
  407. return backarr(1, "查询成功", $list);
  408. }
  409. /*
  410. * 20211007
  411. * wj
  412. * 根据查询条件返回结果
  413. * 目前仅pc后台使用
  414. */
  415. public function getlistbysearch($arr)
  416. {
  417. $m_wu = new webusermodel();
  418. $where = [];
  419. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  420. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  421. if (isset($arr['telno'])) {
  422. $where['telno'] = $arr['telno'];
  423. }
  424. if (isset($arr['wname'])) {
  425. $where['wname'] = $arr['wname'];
  426. }
  427. if (isset($arr['code'])) {
  428. $where['code'] = $arr['code'];
  429. }
  430. if (isset($arr['isactive'])) {
  431. $where['isactive'] = $arr['isactive'];
  432. }
  433. if (isset($arr['ispass'])) {
  434. $where['ispass'] = $arr['ispass'];
  435. }
  436. if (isset($arr['createdate']) && is_array($arr['createdate'])) {
  437. $createdate = array_filter($arr['createdate']);
  438. if (2 == count($createdate)) {
  439. $where['createdate'] = $arr['createdate'];
  440. }
  441. }
  442. $order = 'id desc';
  443. if (isset($arr['order']) && !empty($arr['order'])) {
  444. $order = $arr['order'];
  445. }
  446. $count = $this->inventmodel->getlistjoinuser($where, "count", $page, $size, $order);
  447. if ($count < 0) {
  448. return backarr(0, "无数据");
  449. }
  450. $list = $this->inventmodel->getlistjoinuser($where, "*", $page, $size, $order);
  451. foreach ($list as $key => &$invent) {
  452. $list[$key] = $this->getinfobyidforlist($invent['id']);
  453. }
  454. /*foreach ($list as $key => &$value) {
  455. if (!empty($value['releaseid'])) {
  456. $wuinfo = $m_wu->getInfo(['id' => $value['releaseid']], ['user_name']);
  457. if (empty($wuinfo)) {
  458. $value['release_user'] = '';
  459. } else {
  460. $value['release_user'] = $wuinfo['user_name'];
  461. }
  462. } else {
  463. $value['release_user'] = '';
  464. }
  465. }*/
  466. $data = [
  467. 'count' => $count ? $count : 0,
  468. 'list' => $list,
  469. ];
  470. return backarr(1, "查询成功", $data);
  471. }
  472. /***
  473. * 20211026
  474. * 按工种查询
  475. * wj
  476. */
  477. public function getlistbyworktype($arr)
  478. {
  479. if (!isset($arr['worktype']) || empty($arr['worktype'])) {
  480. return backarr(0, "请求数据错误");
  481. }
  482. if (!isset($arr['city']) || empty($arr['city'])) {
  483. $arr['city'] = "天津";
  484. }
  485. $where = [];
  486. $worktype = $arr['worktype'];
  487. $where['worktype'] = $worktype;
  488. if (isset($arr['city']) && !empty($arr['city'])) {
  489. $where['city'] = ['like', '%' . $arr['city'] . '%'];
  490. }
  491. if (isset($arr['isactive']) && in_array($arr['isactive'], [0, 1]) && is_numeric($arr['isactive'])) {
  492. $where['isactive'] = $arr['isactive'];
  493. }
  494. $page = isset($arr['page']) && !empty($arr['page']) ? $arr['page'] : 1;
  495. $size = isset($arr['size']) && !empty($arr['size']) ? $arr['size'] : 10;
  496. //$where['isactive'] = 1;
  497. $where['ispass'] = 1;
  498. $order = 'id desc';
  499. if (isset($arr['order']) && !empty($arr['order'])) {
  500. $order = $arr['order'];
  501. }
  502. $list = $this->inventmodel->getList($where, "*", $page, $size, $order);
  503. if (count($list) <= 0) {
  504. return backarr(0, "无数据");
  505. }
  506. $t_u = new userinfomodel();
  507. foreach ($list as $key => &$invent) {
  508. $list[$key] = $this->getinfobyidforlist($invent['id']);
  509. }
  510. return backarr(1, "查询成功", $list);
  511. }
  512. //代发
  513. // 20211101 wj
  514. public function insertinfobyrelease($arr)
  515. {
  516. $fillFiled = ['telno', 'releaseid', 'info', 'worktype', 'disc', 'city', 'address'];
  517. foreach ($fillFiled as $key => $value) {
  518. if (!isset($arr[$value]) || empty($arr[$value])) {
  519. return backarr(0, "请求错误");
  520. }
  521. }
  522. $m_u = new userinfomodel();
  523. $m_wu = new webusermodel();
  524. $m_w = new workermodel();
  525. Db::startTrans();
  526. try {
  527. $telno = $arr['telno'];
  528. $userinfo = $m_u->getInfo(['telno' => $telno]);
  529. if (empty($userinfo)) {
  530. $addData = [
  531. 'telno' => $telno,
  532. 'isactive' => 0,
  533. 'createtime' => date('Y-m-d H:i:s', time()),
  534. 'platform' => '管理后台',
  535. ];
  536. $createuid = $m_u->insertData($addData);
  537. if (empty($createuid)) {
  538. throw new \Exception("会员创建失败");
  539. }
  540. $winsertInfo = [
  541. 'userid' => $createuid,
  542. 'telno' => $telno,
  543. ];
  544. $wid = $m_w->insertData($winsertInfo);
  545. if (empty($wid)) {
  546. throw new \Exception("会员工人信息创建失败");
  547. }
  548. } else {
  549. if (1 != $userinfo['isright']) {
  550. throw new \Exception("发布状态为无效");
  551. }
  552. $createuid = $userinfo['id'];
  553. }
  554. $wuinfo = $m_wu->getInfo(['id' => $arr['releaseid']]);
  555. if (empty($wuinfo)) {
  556. throw new \Exception("用户信息错误");
  557. }
  558. unset($arr['telno']);
  559. $arr['createuid'] = $createuid;
  560. if (!isset($arr['createdate']) || empty($arr['createdate'])) {
  561. $arr['createdate'] = date('Y-m-d H:i:s', time());
  562. }
  563. if (isset($arr['daysalary'])) {
  564. if (!is_numeric($arr['daysalary'])) {
  565. throw new \Exception("日结工资格式错误");
  566. }
  567. }
  568. $arr['code'] = $this->getCode();
  569. $arr['ispass'] = 1;
  570. $arr['passtime'] = date('Y-m-d H:i:s');
  571. $arr['passtype'] = 1;
  572. if (isset($arr['info']) && !empty($arr['info'])) {
  573. if (!isset($arr['disstr']) || empty($arr['disstr'])) {
  574. $arr['disstr'] = mb_substr($arr['info'], 0, 10);
  575. }
  576. }
  577. $id = $this->inventmodel->insertData($arr);
  578. if (!$id) {
  579. throw new \Exception("操作失败");
  580. }
  581. Db::commit();
  582. return backarr(1, "操作成功", ['id' => $id]);
  583. } catch (\Exception $e) {
  584. Db::rollback();
  585. return backarr(0, $e->getMessage());
  586. }
  587. }
  588. private function getCode()
  589. {
  590. $code = 'I' . date('YmdHis');
  591. return $code;
  592. }
  593. //修改
  594. // 20211102 wj
  595. public function updateinventfromadmin($arr)
  596. {
  597. $fillFiled = ['id', 'telno', 'releaseid', 'disstr', 'info', 'worktype', 'disc', 'city', 'address'];
  598. foreach ($fillFiled as $key => $value) {
  599. if (!isset($arr[$value]) || empty($arr[$value])) {
  600. return backarr(0, "请求错误");
  601. }
  602. }
  603. $m_u = new userinfomodel();
  604. $m_wu = new webusermodel();
  605. $m_i = new inventv1model();
  606. $m_w = new workermodel();
  607. $inventInfo = $m_i->getInfo(['id' => $arr['id']]);
  608. if (empty($inventInfo)) {
  609. return backarr(0, "无数据");
  610. }
  611. Db::startTrans();
  612. try {
  613. $wuinfo = $m_wu->getInfo(['id' => $arr['releaseid']]);
  614. if (empty($wuinfo)) {
  615. throw new \Exception("用户信息错误");
  616. }
  617. $id = $inventInfo['id'];
  618. $telno = $arr['telno'];
  619. $userinfo = $m_u->getInfo(['telno' => $telno]);
  620. if (empty($userinfo)) {
  621. $addData = [
  622. 'telno' => $telno,
  623. 'isactive' => 0,
  624. 'createtime' => date('Y-m-d H:i:s', time()),
  625. 'platform' => '管理后台',
  626. ];
  627. $createuid = $m_u->insertData($addData);
  628. if (empty($createuid)) {
  629. throw new \Exception("会员创建失败");
  630. }
  631. $workerAddData = [
  632. 'userid' => $createuid,
  633. 'telno' => $telno,
  634. ];
  635. $wid = $m_w->insertData($workerAddData);
  636. if (empty($wid)) {
  637. throw new \Exception("工人信息创建失败");
  638. }
  639. } else {
  640. $createuid = $userinfo['id'];
  641. }
  642. $arr['createuid'] = $createuid;
  643. $updateData = [];
  644. $updateField = ['createuid', 'city', 'disc', 'address', 'disstr', 'worktypeid', 'worktype', 'daysalary', 'info', 'town'];
  645. foreach ($updateField as $key => $value) {
  646. if ($arr[$value] !== $inventInfo[$value]) {
  647. $updateData[$value] = $arr[$value];
  648. }
  649. }
  650. if (empty($inventInfo['code'])) {
  651. $updateData['code'] = $this->getCode();
  652. }
  653. $row = $this->inventmodel->updateinfo(['id' => $id], $updateData);
  654. if (empty($row)) {
  655. throw new \Exception("需改失败");
  656. }
  657. //修改成功 记录log
  658. log::info('update:' . $id);
  659. log::info($updateData);
  660. $m_l = new logmodel();
  661. $jsonData = [
  662. 'inventid' => $id,
  663. 'webuserid' => isset($updateData['releaseid']) ? $updateData['releaseid'] : '',
  664. 'createuid' => isset($updateData['createuid']) ? $updateData['createuid'] : '',
  665. ];
  666. $logData = [
  667. 'type' => '招工修改',
  668. 'json' => json_encode($jsonData),
  669. 'create_date' => date('Y-m-d H:i:s'),
  670. ];
  671. $m_l->savelog(json_encode($logData));
  672. Db::commit();
  673. return backarr(1, "操作成功", ['id' => $id]);
  674. } catch (\Exception $e) {
  675. Db::rollback();
  676. return backarr(0, $e->getMessage());
  677. }
  678. }
  679. /***
  680. * px端审核用
  681. * 未审核 审核失败-》 审核成功
  682. * 未审核->审核失败
  683. * 20211117
  684. * wj
  685. */
  686. public function updateispassbyid($arr)
  687. {
  688. if (!isset($arr['idlist']) || !is_array($arr['idlist'])) {
  689. return backarr(0, "请求错误1");
  690. }
  691. if (!isset($arr['ispass']) || !in_array($arr['ispass'], [2, 1])) {
  692. return backarr(0, "请求错误");
  693. }
  694. $ispass = $arr['ispass'];
  695. $idlist = $arr['idlist'];
  696. $m_i = new inventv1model();
  697. $where = ['isactive' => 1];
  698. switch ($ispass) {
  699. case 1:
  700. $where['ispass'] = ['in', [0, 2]];
  701. break;
  702. case 2:
  703. $where['ispass'] = ['in', [0]];
  704. break;
  705. }
  706. $where['id'] = ['in', $idlist];
  707. $update = [
  708. 'ispass' => $ispass,
  709. 'passtime' => date('Y-m-d H:i:s'),
  710. 'passtype' => 2,
  711. ];
  712. $row = $m_i->updateinfo($where, $update);
  713. if ($row <= 0) {
  714. return backarr(0, "修改失败");
  715. }
  716. return backarr(1, "修改成功", ['row' => $row, 'idlist' => $idlist, 'ispass' => $ispass]);
  717. }
  718. /**
  719. * 根据类型获取列表
  720. * 20211213
  721. * wj
  722. */
  723. public function getlistbywhere($arr)
  724. {
  725. //字段转译 key 请求字段 value 查询使用字段
  726. $fileds = [
  727. 'a' => 'address', //用字符|分割
  728. 'lng' => 'lng',
  729. 'lat' => 'lat',
  730. 'wt' => 'worktype',
  731. 'r' => 'radii',
  732. 'od' => 'orderdaysalary', //order daysalary desc
  733. 'active' => 'isactive',
  734. ];
  735. $page = isset($arr['page']) && !empty($arr['page']) && is_numeric($arr['page']) ? $arr['page'] : 1;
  736. $size = isset($arr['size']) && !empty($arr['size']) && is_numeric($arr['size']) ? $arr['size'] : 10;
  737. $useValue = [];
  738. $pattern = '/[\'+%-]+/';
  739. foreach ($fileds as $key => $value) {
  740. if (isset($arr[$key]) && !empty($arr[$key]) && is_string($arr[$key])) {
  741. $str = preg_match_all($pattern, $arr[$key]);
  742. if ($str) {
  743. return backarr(0, "查询请求数据错误");
  744. }
  745. $useValue[$value] = $arr[$key];
  746. }
  747. }
  748. $where = [];
  749. if (isset($useValue['address']) && !empty($useValue['address'])) {
  750. $addressArr = explode('|', $useValue['address']);
  751. $searchAddress = [
  752. 'city' => isset($addressArr[0]) ? $addressArr[0] : '',
  753. 'disc' => isset($addressArr[1]) ? $addressArr[1] : '',
  754. 'town' => isset($addressArr[2]) ? $addressArr[2] : '',
  755. 'address' => isset($addressArr[3]) ? $addressArr[3] : '',
  756. ];
  757. $searchAddress = array_filter($searchAddress);
  758. if (!empty($searchAddress)) {
  759. $where = array_merge($where, $searchAddress);
  760. }
  761. }
  762. if (isset($useValue['orderdaysalary']) && !empty($useValue['orderdaysalary'])) {
  763. $useValue['orderdaysalary'] = true;
  764. } else {
  765. $useValue['orderdaysalary'] = false;
  766. }
  767. if (isset($useValue['radii']) && is_numeric($useValue['radii']) && !empty($useValue['radii'])) {
  768. //有经纬度
  769. $fillFidle = ['lng', 'lat'];
  770. foreach ($fillFidle as $key => $value) {
  771. if (isset($useValue[$value]) && is_numeric($useValue[$value]) && !empty($useValue[$value])) {
  772. $where[$value] = $useValue[$value];
  773. }
  774. }
  775. $where['radii'] = $useValue['radii'];
  776. }
  777. if (isset($useValue['worktype']) && !empty($useValue['worktype'])) {
  778. $where['worktype'] = $useValue['worktype'];
  779. }
  780. if (isset($useValue['isactive']) && in_array($useValue['isactive'], [0, 1]) && is_numeric($useValue['isactive'])) {
  781. $where['isactive'] = $useValue['isactive'];
  782. }
  783. //$where['isactive'] = 1;
  784. $where['ispass'] = 1;
  785. $order = 'id desc'; //默认时间倒序
  786. if ($useValue['orderdaysalary']) {
  787. $order = 'daysalary desc'; //工资倒序
  788. }
  789. $m_i = new inventv1model();
  790. $list = $m_i->getlistbymultiplecondition($where, $page, $size, $order);
  791. if (count($list) <= 0) {
  792. return backarr(0, "无数据");
  793. }
  794. $t_u = new userinfomodel();
  795. foreach ($list as $key => &$invent) {
  796. $list[$key] = $this->getinfobyidforlist($invent['id']);
  797. }
  798. return backarr(1, "查询成功", $list);
  799. }
  800. /**
  801. * 获取一定时间内无联系数量 默认5分钟
  802. * 20211222
  803. * wj
  804. */
  805. public function getnocalldata($arr)
  806. {
  807. $page = isset($arr['page']) && !empty($arr['page']) && is_numeric($arr['page']) ? $arr['page'] : 1;
  808. $size = isset($arr['size']) && !empty($arr['size']) && is_numeric($arr['size']) ? $arr['size'] : 10;
  809. $where = [];
  810. if (isset($arr['wname']) && !empty($arr['wname']) && is_string($arr['wname'])) {
  811. $where['wname'] = $arr['wname'];
  812. }
  813. if (isset($arr['telno']) && !empty($arr['telno']) && is_numeric($arr['telno'])) {
  814. $where['telno'] = $arr['telno'];
  815. }
  816. $m_i = new inventv1model();
  817. //获取5分钟内无联系招工
  818. $count = $m_i->getnocalldata(5, $where, true);
  819. if ($count <= 0) {
  820. return backarr(0, "无数据");
  821. }
  822. $list = $m_i->getnocalldata(5, $where, false, $page, $size);
  823. $data = [
  824. 'count' => $count,
  825. 'list' => $list,
  826. ];
  827. return backarr(1, "查询成功", $data);
  828. }
  829. }