Worker.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\BaseController;
  4. use app\common\model\User as UserModel;
  5. use app\common\model\Worker as WorkerModel;
  6. use app\common\model\WorkerForm as WorkerFormModel;
  7. use app\common\model\WorkerIncome as WorkerIncomeModel;
  8. use app\common\model\WorkerShareCate as WorkerShareCateModel;
  9. use app\common\model\WorkerShare as WorkerShareModel;
  10. use app\common\service\BalanceService;
  11. use app\common\service\WorkerIncomeService;
  12. use think\facade\Db;
  13. class Worker extends BaseController
  14. {
  15. // 推广海报
  16. public function shareList()
  17. {
  18. $catelist = WorkerShareCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  19. return view('worker/sharelist', [
  20. 'catelist' => $catelist,
  21. ]);
  22. }
  23. public function shareCateForm()
  24. {
  25. $id = input('id/d', 0);
  26. $sharecate = WorkerShareCateModel::findOrEmpty($id);
  27. return view('worker/sharecateform', [
  28. 'sharecate' => $sharecate,
  29. ]);
  30. }
  31. public function shareForm()
  32. {
  33. $id = input('id/d', 0);
  34. $share = WorkerShareModel::findOrEmpty($id);
  35. $catelist = WorkerShareCateModel::order(['priority' => 'desc', 'id' => 'desc'])->select();
  36. return view('worker/shareform', [
  37. 'share' => $share,
  38. 'catelist' => $catelist,
  39. ]);
  40. }
  41. public function editShareCate()
  42. {
  43. $id = input('id/d', 0);
  44. $data = [
  45. 'title' => input('title/s', ""),
  46. 'status' => input('status/d', 1),
  47. 'priority' => input('priority/d', 0),
  48. ];
  49. if (empty($id)) {
  50. $sharecate = WorkerShareCateModel::create($data);
  51. } else {
  52. $sharecate = WorkerShareCateModel::find($id);
  53. $sharecate->save($data);
  54. }
  55. exit(json_encode([
  56. 'code' => 0,
  57. ]));
  58. }
  59. public function editShare()
  60. {
  61. $id = input('id/d', 0);
  62. $data = [
  63. 'cateid' => input('cateid/d', 0),
  64. 'title' => input('title/s', ""),
  65. 'tilpic' => input('tilpic/s', ""),
  66. 'status' => input('status/d', 1),
  67. 'priority' => input('priority/d', 0),
  68. ];
  69. if (empty($id)) {
  70. $share = WorkerShareModel::create($data);
  71. } else {
  72. $share = WorkerShareModel::find($id);
  73. $share->save($data);
  74. }
  75. exit(json_encode([
  76. 'code' => 0,
  77. ]));
  78. }
  79. public function listShareCate()
  80. {
  81. $limit = input('limit');
  82. $page = input('page');
  83. $list = WorkerShareCateModel::withCount('workerShare')->order(['priority' => 'desc', 'id' => 'desc'])->limit($limit)->page($page)->append(['status_text'])->select();
  84. $count = WorkerShareCateModel::count();
  85. if ($count == 0) {
  86. exit(json_encode([
  87. 'code' => 1,
  88. 'msg' => "未查询到数据",
  89. ]));
  90. }
  91. exit(json_encode([
  92. 'code' => 0,
  93. 'msg' => "",
  94. 'count' => $count,
  95. 'data' => $list,
  96. ]));
  97. }
  98. public function listShare()
  99. {
  100. $limit = input('limit');
  101. $page = input('page');
  102. $map = [];
  103. $cateid = input('cateid/d', 0);
  104. if (!empty($cateid)) {
  105. $map[] = ['cateid', '=', $cateid];
  106. }
  107. $status = input('status/d', 0);
  108. if (!empty($status)) {
  109. $map[] = ['status', '=', $status];
  110. }
  111. $list = WorkerShareModel::with('workerShareCate')->where($map)->order(['priority' => 'desc', 'id' => 'desc'])->limit($limit)->page($page)->append(['status_text', 'stype_text'])->select();
  112. $count = WorkerShareModel::where($map)->count();
  113. if ($count == 0) {
  114. exit(json_encode([
  115. 'code' => 1,
  116. 'msg' => "未查询到数据",
  117. ]));
  118. }
  119. exit(json_encode([
  120. 'code' => 0,
  121. 'msg' => "",
  122. 'count' => $count,
  123. 'data' => $list,
  124. ]));
  125. }
  126. public function fieldShareCate()
  127. {
  128. $id = input('id/d', 0);
  129. $info = WorkerShareCateModel::find($id);
  130. $info->save([
  131. input('field/s') => input('value/s', ""),
  132. ]);
  133. exit(json_encode([
  134. 'code' => 0,
  135. ]));
  136. }
  137. public function fieldShare()
  138. {
  139. $id = input('id/d', 0);
  140. $info = WorkerShareModel::find($id);
  141. $info->save([
  142. input('field/s') => input('value/s', ""),
  143. ]);
  144. exit(json_encode([
  145. 'code' => 0,
  146. ]));
  147. }
  148. public function delShareCate()
  149. {
  150. $id = input('id/d', 0);
  151. $sharecate = WorkerShareCateModel::where('id', $id)->select();
  152. WorkerShareModel::where('cateid', '=', $id)->delete();
  153. $result = $sharecate->delete();
  154. if ($result) {
  155. exit(json_encode([
  156. 'code' => 0,
  157. 'msg' => "",
  158. ]));
  159. }
  160. exit(json_encode([
  161. 'code' => 1,
  162. 'msg' => "删除失败,请稍后重试",
  163. ]));
  164. }
  165. public function delShare()
  166. {
  167. $id = input('id/d', 0);
  168. $share = WorkerShareModel::where('id', $id)->select();
  169. $result = $share->delete();
  170. if ($result) {
  171. exit(json_encode([
  172. 'code' => 0,
  173. 'msg' => "",
  174. ]));
  175. }
  176. exit(json_encode([
  177. 'code' => 1,
  178. 'msg' => "删除失败,请稍后重试",
  179. ]));
  180. }
  181. // 申请注册经纪人
  182. public function fworkerList()
  183. {
  184. return view('worker/fworkerlist');
  185. }
  186. public function fworkerForm()
  187. {
  188. $id = input('id/d, 0');
  189. $fworker = WorkerFormModel::findOrEmpty($id);
  190. return view('worker/fworkerform', [
  191. 'fworker' => $fworker,
  192. ]);
  193. }
  194. public function editFworker()
  195. {
  196. $id = input('id/d');
  197. $fworker = WorkerFormModel::findOrEmpty($id);
  198. $fworker->save([
  199. 'comname' => input('comname/s', ""),
  200. 'address' => input('address/s', ""),
  201. 'details' => input('details/s', ""),
  202. 'realname' => input('realname/s', ""),
  203. 'mobile' => input('mobile/s', ""),
  204. 'address' => input('address/s', ""),
  205. 'comjobs' => input('comjobs/s', ""),
  206. 'status' => input('status/d', 1),
  207. 'remark' => input('remark/s', ""),
  208. 'createtime' => input('createtime/s', ""),
  209. ]);
  210. exit(json_encode([
  211. 'code' => 0,
  212. ]));
  213. }
  214. public function fieldFworker()
  215. {
  216. $id = input('id/d', 0);
  217. $info = WorkerFormModel::findOrEmpty($id);
  218. $info->save([
  219. input('field/s') => input('value/s', ""),
  220. ]);
  221. exit(json_encode([
  222. 'code' => 0,
  223. ]));
  224. }
  225. public function delFworker()
  226. {
  227. $idarr = input('idarr/a');
  228. $fworker = WorkerFormModel::whereIn('id', $idarr)->select();
  229. $result = $fworker->delete();
  230. if ($result) {
  231. exit(json_encode([
  232. 'code' => 0,
  233. 'msg' => "",
  234. ]));
  235. }
  236. exit(json_encode([
  237. 'code' => 1,
  238. 'msg' => "删除失败,请稍后重试",
  239. ]));
  240. }
  241. public function listFworker()
  242. {
  243. $limit = input('limit');
  244. $page = input('page');
  245. $map = [];
  246. $keywords = input('keywords/s');
  247. if (!empty($keywords)) {
  248. $map[] = ['comname|realname', 'like', '%' . $keywords . '%'];
  249. }
  250. $status = input('status/d');
  251. if (!empty($status)) {
  252. $map[] = ['status', '=', $status];
  253. }
  254. $list = WorkerFormModel::where($map)->order('id', 'DESC')->limit($limit)->page($page)->append(['status_text'])->select();
  255. $count = WorkerFormModel::where($map)->count();
  256. if ($count == 0) {
  257. exit(json_encode([
  258. 'code' => 1,
  259. 'msg' => "未查询到数据",
  260. ]));
  261. }
  262. exit(json_encode([
  263. 'code' => 0,
  264. 'msg' => "",
  265. 'count' => $count,
  266. 'data' => $list,
  267. ]));
  268. }
  269. public function workerList()
  270. {
  271. return view('worker/workerlist');
  272. }
  273. public function workerForm()
  274. {
  275. $id = input('id/d', 0);
  276. $worker = WorkerModel::with(['muser'])->findOrEmpty($id);
  277. return view('worker/workerform', [
  278. 'worker' => $worker,
  279. ]);
  280. }
  281. public function editWorker()
  282. {
  283. $id = input('id/d', "");
  284. $muser = UserModel::where(['mobile' => input('musermobile/s', '')])->findOrEmpty();
  285. if ($muser->isEmpty()) {
  286. exit(json_encode([
  287. 'code' => 1,
  288. 'msg' => "关联的用户不存在。",
  289. ]));
  290. }
  291. $data = [
  292. 'userid' => $muser->id,
  293. 'wtype' => input('wtype/d', 1),
  294. 'title' => input('title/s', ""),
  295. 'ftitle' => input('ftitle/s', ""),
  296. 'tilpic' => input('tilpic/s', ""),
  297. 'realname' => input('realname/s', ""),
  298. 'mobile' => input('mobile/s', ""),
  299. 'weixin' => input('weixin/s', ""),
  300. 'latitude' => input('latitude/f'),
  301. 'longitude' => input('longitude/f'),
  302. 'province' => input('province/s'),
  303. 'city' => input('city/s'),
  304. 'district' => input('district/s'),
  305. 'address' => input('address/s'),
  306. 'picone' => input('picone/s', ""),
  307. 'pictwo' => input('pictwo/s', ""),
  308. 'picthr' => input('picthr/s', ""),
  309. 'details' => input('details/s'),
  310. 'priority' => input('priority/d', 0),
  311. 'remark' => input('remark/s', ""),
  312. 'status' => input('status/d', 1),
  313. 'idcardzpic' => input('idcardzpic/s', ""),
  314. 'idcardfpic' => input('idcardfpic/s', ""),
  315. ];
  316. if (empty($id)) {
  317. $data['createtime'] = time();
  318. WorkerModel::create($data);
  319. } else {
  320. $worker = WorkerModel::find($id);
  321. $worker->save($data);
  322. }
  323. if ($data['status'] == 2) {
  324. if ($muser['is_register_worker'] == 2) {
  325. $muser->is_register_worker = 1;
  326. $balanceService = new BalanceService();
  327. $balanceService->add($muser['id'], BalanceService::WORKER_REGISTER);
  328. }
  329. }
  330. exit(json_encode([
  331. 'code' => 0,
  332. ]));
  333. }
  334. public function fieldWorker()
  335. {
  336. $id = input('id/d', 0);
  337. $info = WorkerModel::findOrEmpty($id);
  338. if ($info->isEmpty()) {
  339. exit(json_encode([
  340. 'code' => 1,
  341. 'msg' => "信息不存在。",
  342. ]));
  343. } else {
  344. $info->save([
  345. input('field/s') => input('value', ""),
  346. ]);
  347. }
  348. exit(json_encode([
  349. 'code' => 0,
  350. ]));
  351. }
  352. public function delWorker()
  353. {
  354. $access_admin = session('access_admin');
  355. $password = input('password');
  356. if ($access_admin['password'] !== md5($password)) {
  357. exit(json_encode([
  358. 'code' => 1,
  359. 'msg' => "操作密码验证失败",
  360. ]));
  361. }
  362. $idarr = input('idarr/a');
  363. $result = Db::name('worker')->whereIn('id', $idarr)->update(['deletetime' => time()]);
  364. if ($result) {
  365. exit(json_encode([
  366. 'code' => 0,
  367. 'msg' => "",
  368. ]));
  369. }
  370. exit(json_encode([
  371. 'code' => 1,
  372. 'msg' => "删除失败,请稍后重试",
  373. ]));
  374. }
  375. public function listWorker()
  376. {
  377. $limit = input('limit');
  378. $page = input('page');
  379. $map = [];
  380. $keywords = input('keywords/s', "");
  381. if (!empty($keywords)) {
  382. $map[] = ['title|realname', 'like', '%' . $keywords . '%'];
  383. }
  384. $wtype = input('wtype/d', 0);
  385. if (!empty($wtype)) {
  386. $map[] = ['wtype', '=', $wtype];
  387. }
  388. $status = input('status/d', 0);
  389. if (!empty($status)) {
  390. $map[] = ['status', '=', $status];
  391. }
  392. $list = WorkerModel::with(['muser'])->where($map)->order(['priority' => 'DESC', 'id' => 'DESC'])->limit($limit)->page($page)->append(['wtype_text', 'status_text'])->select();
  393. //dd($list);
  394. $count = WorkerModel::where($map)->count();
  395. if ($count == 0) {
  396. exit(json_encode([
  397. 'code' => 1,
  398. 'msg' => "未查询到数据",
  399. ]));
  400. }
  401. //var_dump(json_decode($list,true));
  402. exit(json_encode([
  403. 'code' => 0,
  404. 'msg' => "",
  405. 'count' => $count,
  406. 'data' => $list,
  407. ]));
  408. }
  409. public function incomeList()
  410. {
  411. $workerid = input('workerid');
  412. if (empty($workerid)) {
  413. exit("未查询到数据");
  414. }
  415. return view('worker/incomelist', [
  416. 'workerid' => $workerid,
  417. ]);
  418. }
  419. public function listIncome()
  420. {
  421. $workerid = input('workerid');
  422. if (empty($workerid)) {
  423. exit(json_encode([
  424. 'code' => 1,
  425. 'msg' => "未查询到数据",
  426. ]));
  427. }
  428. $limit = input('limit/d', 20);
  429. $page = input('page/d', 1);
  430. $map = [
  431. ['workerid', '=', $workerid],
  432. ];
  433. $list = WorkerIncomeModel::where($map)->order('id', 'DESC')->limit($limit)->page($page)->select();
  434. $count = WorkerIncomeModel::where($map)->count();
  435. if ($count == 0) {
  436. exit(json_encode([
  437. 'code' => 1,
  438. 'msg' => "未查询到数据",
  439. ]));
  440. }
  441. exit(json_encode([
  442. 'code' => 0,
  443. 'msg' => "",
  444. 'count' => $count,
  445. 'data' => $list,
  446. ]));
  447. }
  448. public function settleIncome()
  449. {
  450. $workerid = input('workerid');
  451. $value = input('value');
  452. if (empty($workerid) || $value <= 0) {
  453. exit(json_encode([
  454. 'code' => 1,
  455. 'msg' => "参数错误",
  456. ]));
  457. }
  458. $worker = WorkerModel::find($workerid);
  459. if (empty($worker)) {
  460. exit(json_encode([
  461. 'code' => 1,
  462. 'msg' => "未查询到数据",
  463. ]));
  464. }
  465. if ($worker['income'] < $value) {
  466. exit(json_encode([
  467. 'code' => 1,
  468. 'msg' => "公司收益不足",
  469. ]));
  470. }
  471. $incomeService = new WorkerIncomeService();
  472. $incomeService->add($workerid, -$value, '商家结算', '平台与劳务公司线下结算');
  473. exit(json_encode([
  474. 'code' => 0,
  475. 'msg' => "",
  476. ]));
  477. }
  478. }