User.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991
  1. <?php
  2. namespace app\admin\controller;
  3. use app\common\model\UserWill;
  4. use app\admin\BaseController;
  5. use app\common\model\User as UserModel;
  6. use app\common\model\UserAuths as UserAuthsModel;
  7. use app\common\model\UserFollow as UserFollowModel;
  8. use app\common\model\UserGroups as UserGroupsModel;
  9. use app\common\model\UserPart as UserPartModel;
  10. use app\common\model\UserIntegral as UserIntegralModel;
  11. use app\common\model\UserRank as UserRankModel;
  12. use app\common\model\UserParam as UserParamModel;
  13. use app\common\model\Agent as AgentModel;
  14. use app\common\model\Broker as BrokerModel;
  15. use app\common\validate\User as UserValidate;
  16. use think\exception\ValidateException;
  17. class User extends BaseController
  18. {
  19. // 用户跟进记录
  20. public function follow()
  21. {
  22. $userid = input('userid/d');
  23. $user = UserModel::findOrEmpty($userid);
  24. $followlist = UserFollowModel::where('userid', $userid)->order('id', 'desc')->limit(100)->select();
  25. return view('user/follow', [
  26. 'user' => $user,
  27. 'followlist' => $followlist
  28. ]);
  29. }
  30. public function editFollow()
  31. {
  32. $userid = input('userid/d', 0);
  33. $user = UserModel::findOrEmpty($userid);
  34. if ($user->isEmpty()) {
  35. exit(json_encode(array(
  36. 'code' => 1,
  37. 'msg' => "用户信息不存在。"
  38. )));
  39. }
  40. UserFollowModel::create([
  41. 'userid' => $userid,
  42. 'ftype' => input('ftype/s', ""),
  43. 'remark' => input('remark/s', ""),
  44. 'createtime' => time()
  45. ]);
  46. $followstatus = input('followstatus/d', 1);
  47. $user->save([
  48. 'followstatus' => $followstatus
  49. ]);
  50. exit(json_encode(array(
  51. 'code' => 0
  52. )));
  53. }
  54. // 邀请排行榜
  55. public function rankList()
  56. {
  57. return view('user/ranklist');
  58. }
  59. public function rankForm()
  60. {
  61. $id = input('id/d');
  62. $rank = UserRankModel::findOrEmpty($id);
  63. return view('user/rankform', [
  64. 'rank' => $rank
  65. ]);
  66. }
  67. public function editRank()
  68. {
  69. $id = input('id/d');
  70. $rank = UserRankModel::findOrEmpty($id);
  71. $rank->save([
  72. 'realname' => input('realname/s'),
  73. 'mobile' => input('mobile/s'),
  74. 'partnumber' => input('partnumber/d', 0),
  75. ]);
  76. exit(json_encode(array(
  77. 'code' => 0
  78. )));
  79. }
  80. public function fieldRank()
  81. {
  82. $id = input('id/d', 0);
  83. $rank = UserRankModel::findOrEmpty($id);
  84. if ($rank->isEmpty()) {
  85. exit(json_encode(array(
  86. 'code' => 1,
  87. 'msg' => "信息不存在"
  88. )));
  89. } else {
  90. $rank->save([
  91. input('field/s') => input('value')
  92. ]);
  93. }
  94. exit(json_encode(array(
  95. 'code' => 0
  96. )));
  97. }
  98. public function listRank()
  99. {
  100. $limit = input('limit');
  101. $page = input('page');
  102. $map = array();
  103. $list = UserRankModel::where($map)->order('partnumber', 'desc')->limit($limit)->page($page)->select();
  104. $count = UserRankModel::where($map)->count();
  105. if ($count==0) {
  106. exit(json_encode(array(
  107. 'code' => 1,
  108. 'msg' => "未查询到数据"
  109. )));
  110. }
  111. exit(json_encode(array(
  112. 'code' => 0,
  113. 'msg' => "",
  114. 'count' => $count,
  115. 'data' => $list
  116. )));
  117. }
  118. public function delRank()
  119. {
  120. $idarr = input('idarr/a');
  121. UserRankModel::whereIn('id', $idarr)->delete();
  122. exit(json_encode(array(
  123. 'code' => 0,
  124. 'msg' => ""
  125. )));
  126. }
  127. // 邀请记录
  128. public function partList()
  129. {
  130. return view('user/partlist');
  131. }
  132. public function listPart()
  133. {
  134. $limit = input('limit');
  135. $page = input('page');
  136. $map = array();
  137. $keywords = input('keywords/s', "");
  138. $status = input('status/d', 0);
  139. if (!empty($status)) {
  140. $map[] = ['UserPart.status', '=', $status];
  141. }
  142. $list = UserPartModel::hasWhere('puser', [['realname|mobile', 'like', '%'.$keywords.'%', 'or']])->with(['puser','user'])->where($map)->order('id', 'desc')->limit($limit)->page($page)->append(['status_text'])->select();
  143. $count = UserPartModel::hasWhere('puser', [['realname|mobile', 'like', '%'.$keywords.'%', 'or']])->where($map)->count();
  144. if ($count==0) {
  145. exit(json_encode(array(
  146. 'code' => 1,
  147. 'msg' => "未查询到数据"
  148. )));
  149. }
  150. exit(json_encode(array(
  151. 'code' => 0,
  152. 'msg' => "",
  153. 'count' => $count,
  154. 'data' => $list
  155. )));
  156. }
  157. public function exportPart()
  158. {
  159. $map = array();
  160. $keywords = input('keywords/s', "");
  161. $status = input('status/d', 0);
  162. if (!empty($status)) {
  163. $map[] = ['UserPart.status', '=', $status];
  164. }
  165. $xlsData = UserPartModel::hasWhere('puser', [['realname|mobile', 'like', '%'.$keywords.'%', 'or']])->with(['puser','user'])->where($map)->order('id', 'desc')->select()->toArray();
  166. $xlsCell = array(
  167. array('id','表ID'),
  168. array('puser.nickname','邀请人昵称'),
  169. array('puser.realname','邀请人姓名'),
  170. array('puser.mobile','邀请人手机号'),
  171. array('puser.bankcard.openbank','邀请人开户行'),
  172. array('puser.bankcard.account','邀请人帐户名'),
  173. array('puser.bankcard.number','邀请人账户号'),
  174. array('user.nickname','被邀请人昵称'),
  175. array('user.realname','被邀请人姓名'),
  176. array('user.mobile','被邀请人手机号'),
  177. array('status','状态',array(1=>'未入职',2=>'已入职',3=>'已发放')),
  178. array('redmoney','奖金金额'),
  179. array('createtime','推荐时间'),
  180. );
  181. export_excel("系统用户", $xlsCell, $xlsData);
  182. }
  183. public function fieldPart()
  184. {
  185. $id = input('id/d', 0);
  186. $part = UserPartModel::findOrEmpty($id);
  187. if ($part->isEmpty()) {
  188. exit(json_encode(array(
  189. 'code' => 1,
  190. 'msg' => "信息不存在"
  191. )));
  192. } else {
  193. $part->save([
  194. input('field/s') => input('value')
  195. ]);
  196. }
  197. exit(json_encode(array(
  198. 'code' => 0
  199. )));
  200. }
  201. public function partForm()
  202. {
  203. $id = input('id/d');
  204. $part = UserPartModel::with(['puser','user'])->findOrEmpty($id);
  205. return view('user/partform', [
  206. 'part' => $part
  207. ]);
  208. }
  209. public function editPart()
  210. {
  211. $id = input('id/d');
  212. $part = UserPartModel::findOrEmpty($id);
  213. $part->save([
  214. 'status' => input('status/d', 1),
  215. 'redmoney' => input('redmoney/d', 0),
  216. ]);
  217. exit(json_encode(array(
  218. 'code' => 0
  219. )));
  220. }
  221. public function delPart()
  222. {
  223. $idarr = input('idarr/a');
  224. UserPartModel::whereIn('id', $idarr)->delete();
  225. exit(json_encode(array(
  226. 'code' => 0,
  227. 'msg' => ""
  228. )));
  229. }
  230. // 用户积分
  231. public function integralList()
  232. {
  233. return view('user/integrallist');
  234. }
  235. public function listIntegral()
  236. {
  237. $limit = input('limit');
  238. $page = input('page');
  239. $map = array();
  240. $keywords = input('keywords/s', "");
  241. $itype = input('itype/d', 0);
  242. if (!empty($itype)) {
  243. $map[] = ['itype', '=', $itype];
  244. }
  245. $status = input('status/d', 0);
  246. if (!empty($status)) {
  247. $map[] = ['status', '=', $status];
  248. }
  249. $list = UserIntegralModel::hasWhere('user', [['realname|mobile', 'like', '%'.$keywords.'%', 'or']])->with(['user'])->where($map)->order('id', 'desc')->limit($limit)->page($page)->select()->append(['itype_text','status_text']);
  250. $count = UserIntegralModel::hasWhere('user', [['realname|mobile', 'like', '%'.$keywords.'%', 'or']])->where($map)->count();
  251. if ($count==0) {
  252. exit(json_encode(array(
  253. 'code' => 1,
  254. 'msg' => "未查询到数据"
  255. )));
  256. }
  257. exit(json_encode(array(
  258. 'code' => 0,
  259. 'msg' => "",
  260. 'count' => $count,
  261. 'data' => $list
  262. )));
  263. }
  264. public function exportIntegral()
  265. {
  266. $map = array();
  267. $keywords = input('keywords/s', "");
  268. $itype = input('itype/d', 0);
  269. if (!empty($itype)) {
  270. $map[] = ['itype', '=', $itype];
  271. }
  272. $xlsData = UserIntegralModel::hasWhere('user', [['realname|mobile', 'like', '%'.$keywords.'%', 'or']])->with(['user'])->where($map)->order('id', 'desc')->select()->append(['itype_text','status_text'])->toArray();
  273. $xlsCell = array(
  274. array('id','表ID'),
  275. array('user.nickname','昵称'),
  276. array('user.realname','姓名'),
  277. array('user.mobile','手机号'),
  278. array('user.bankcard.openbank','开户行'),
  279. array('user.bankcard.account','帐户名'),
  280. array('user.bankcard.number','账户号'),
  281. array('title','积分标题'),
  282. array('itype_text','类型'),
  283. array('status_text','状态'),
  284. array('intvalue','积分变更值'),
  285. array('intmoney','积分金额'),
  286. array('remark','备注'),
  287. array('createtime','注册时间'),
  288. );
  289. export_excel("用户积分", $xlsCell, $xlsData);
  290. }
  291. public function fieldIntegral()
  292. {
  293. $id = input('id/d', 0);
  294. $integral = UserIntegralModel::findOrEmpty($id);
  295. if ($integral->isEmpty()) {
  296. exit(json_encode(array(
  297. 'code' => 1,
  298. 'msg' => "信息不存在"
  299. )));
  300. } else {
  301. $integral->save([
  302. input('field/s') => input('value')
  303. ]);
  304. }
  305. exit(json_encode(array(
  306. 'code' => 0
  307. )));
  308. }
  309. public function integralUpdate()
  310. {
  311. $id = input('id/d', 0);
  312. $integral = UserIntegralModel::with('user')->findOrEmpty($id);
  313. return view('user/integralupdate', [
  314. 'integral' => $integral
  315. ]);
  316. }
  317. public function updateIntegral()
  318. {
  319. $id = input('id/d', 0);
  320. $integral = UserIntegralModel::findOrEmpty($id);
  321. if ($integral->isEmpty()) {
  322. exit(json_encode(array(
  323. 'code' => 1,
  324. 'msg' => "用户积分记录不存在"
  325. )));
  326. }
  327. $createtime = input('createtime/s', date("Y-m-d H:i:s"));
  328. $integral->save([
  329. 'title' => input('title/s', ""),
  330. 'intvalue' => input('intvalue/d', 0),
  331. 'intmoney' => input('intmoney/f', 0.00),
  332. 'remark' => input('remark/s', ""),
  333. 'itype' => input('itype/d', 1),
  334. 'status' => input('status/d', 1),
  335. 'createtime' => $createtime,
  336. 'yeartime' => date("Y", strtotime($createtime)),
  337. 'monthtime' => date("Ym", strtotime($createtime))
  338. ]);
  339. exit(json_encode(array(
  340. 'code' => 0
  341. )));
  342. }
  343. public function statusIntegral()
  344. {
  345. $id = input('id/d');
  346. $integral = UserIntegralModel::where(['itype'=>3])->find($id);
  347. if ($integral==null) {
  348. exit(json_encode(array(
  349. 'code' => 1,
  350. 'msg' => "该记录非兑现类型"
  351. )));
  352. } elseif ($integral->status==1) {
  353. $integral->save([
  354. 'status' => 2
  355. ]);
  356. } elseif ($integral->status==2) {
  357. $integral->save([
  358. 'status' => 1
  359. ]);
  360. } else {
  361. exit(json_encode(array(
  362. 'code' => 1,
  363. 'msg' => "该记录非兑现类型。"
  364. )));
  365. }
  366. exit(json_encode(array(
  367. 'code' => 0
  368. )));
  369. }
  370. public function statusIntegralAll()
  371. {
  372. $idarr = input('idarr/a');
  373. UserIntegralModel::update(['status' => 2], ['status'=>1,'itype'=>3,'id'=>$idarr]);
  374. exit(json_encode(array(
  375. 'code' => 0,
  376. 'msg' => ""
  377. )));
  378. }
  379. public function delIntegral()
  380. {
  381. $idarr = input('idarr/a');
  382. UserIntegralModel::whereIn('id', $idarr)->delete();
  383. exit(json_encode(array(
  384. 'code' => 0,
  385. 'msg' => ""
  386. )));
  387. }
  388. public function integralForm()
  389. {
  390. $userid = input('userid/d');
  391. $user = UserModel::findOrEmpty($userid);
  392. return view('user/integralform', [
  393. 'user' => $user
  394. ]);
  395. }
  396. public function editIntegral()
  397. {
  398. $userid = input('userid/d');
  399. $user = UserModel::findOrEmpty($userid);
  400. $intvalue = input('intvalue/d', 0);
  401. if ($intvalue==0) {
  402. exit(json_encode(array(
  403. 'code' => 1,
  404. 'msg' => "积分变更值不能为0"
  405. )));
  406. }
  407. $data = array(
  408. 'userid' => $userid,
  409. 'title' => input('title/s'),
  410. 'intvalue' => $intvalue,
  411. 'intmoney' => input('intmoney/s', 0.00),
  412. 'onlycontent' => "",
  413. 'remark' => input('remark/s'),
  414. 'itype' => input('itype/d'),
  415. 'status' => 2,
  416. 'createtime' => input('createtime/s'),
  417. 'yeartime' => date("Y"),
  418. 'monthtime' => date("Ym")
  419. );
  420. UserIntegralModel::create($data);
  421. $udata = array();
  422. $udata['integral'] = intval($user->integral) + $intvalue;
  423. $isinttotal = input('isinttotal/d', 0);
  424. if ($isinttotal==1) {
  425. $udata['inttotal'] = intval($user->inttotal) + $intvalue;
  426. }
  427. $user->save($udata);
  428. exit(json_encode(array(
  429. 'code' => 0
  430. )));
  431. }
  432. // 用户授权
  433. public function authsList()
  434. {
  435. $userid = input('userid/d');
  436. return view('user/authslist', [
  437. 'userid' => $userid
  438. ]);
  439. }
  440. public function listAuths()
  441. {
  442. $userid = input('userid/d');
  443. $list = UserAuthsModel::where('userid', $userid)->order('id', 'asc')->append(['identitytype_text'])->select();
  444. $count = UserAuthsModel::where('userid', $userid)->count();
  445. if ($count==0) {
  446. exit(json_encode(array(
  447. 'code' => 1,
  448. 'msg' => "未查询到数据"
  449. )));
  450. }
  451. exit(json_encode(array(
  452. 'code' => 0,
  453. 'msg' => "",
  454. 'count' => $count,
  455. 'data' => $list
  456. )));
  457. }
  458. public function delAuths()
  459. {
  460. $id = input('id/d');
  461. $auths = UserAuthsModel::find($id);
  462. if ($auths->identitytype == 'mobile') {
  463. exit(json_encode(array(
  464. 'code' => 1,
  465. 'msg' => "手机号授权方式不允许删除"
  466. )));
  467. }
  468. $result = $auths->delete();
  469. if ($result) {
  470. exit(json_encode(array(
  471. 'code' => 0
  472. )));
  473. }
  474. exit(json_encode(array(
  475. 'code' => 1,
  476. 'msg' => "删除失败,请稍后重试"
  477. )));
  478. }
  479. // 用户
  480. public function userPublic()
  481. {
  482. $groupslist = UserGroupsModel::order(['isdefault'=>'desc','id'=>'asc'])->select();
  483. $agentlist = AgentModel::with('broker')->order(['id'=>'desc'])->select();
  484. return view('user/userpublic', [
  485. 'groupslist' => $groupslist,
  486. 'agentlist' => $agentlist
  487. ]);
  488. }
  489. public function userList()
  490. {
  491. $groupslist = UserGroupsModel::order(['isdefault'=>'desc','id'=>'asc'])->select();
  492. $agentlist = AgentModel::with('broker')->order(['id'=>'desc'])->select();
  493. return view('user/userlist', [
  494. 'groupslist' => $groupslist,
  495. 'agentlist' => $agentlist
  496. ]);
  497. }
  498. public function userForm()
  499. {
  500. $id = input('id/d', 0);
  501. $user = UserModel::with(['broker'])->findOrEmpty($id);
  502. $agentlist = AgentModel::with('broker')->order(['id'=>'asc'])->select();
  503. $groupslist = UserGroupsModel::order(['isdefault'=>'desc','id'=>'asc'])->select();
  504. $willlist = UserWill::select();
  505. return view('user/userform', [
  506. 'groupslist' => $groupslist,
  507. 'willlist' => $willlist,
  508. 'agentlist' => $agentlist,
  509. 'user' => $user
  510. ]);
  511. }
  512. public function fieldUser()
  513. {
  514. $id = input('id/d', 0);
  515. $user = UserModel::findOrEmpty($id);
  516. if ($user->isEmpty()) {
  517. exit(json_encode(array(
  518. 'code' => 1,
  519. 'msg' => "信息不存在"
  520. )));
  521. } else {
  522. $user->save([
  523. input('field/s') => input('value')
  524. ]);
  525. }
  526. exit(json_encode(array(
  527. 'code' => 0
  528. )));
  529. }
  530. public function listUser()
  531. {
  532. $limit = input('limit');
  533. $page = input('page');
  534. $map = array();
  535. $keywords = input('keywords/s');
  536. if (!empty($keywords)) {
  537. $map[] =['nickname|realname|mobile', 'like', '%'.$keywords.'%', 'or'];
  538. }
  539. $groupsid = input('groupsid/d');
  540. if (!empty($groupsid)) {
  541. $map[] = ['groupsid', '=', $groupsid];
  542. }
  543. $ispublic = input('ispublic/d', 0);
  544. if ($ispublic==0) {
  545. $agentbrokerarr = explode(",", input('agentbroker/s'));
  546. $agentid = isset($agentbrokerarr[0]) ? $agentbrokerarr[0] : 0;
  547. if (!empty($agentid)) {
  548. $brokeridarr = BrokerModel::where('agentid', '=', $agentid)->column('id');
  549. $map[] = ['brokerid', 'in', $brokeridarr];
  550. $map[] = ['brokerid', '<>', 0];
  551. }
  552. $brokerid = isset($agentbrokerarr[1]) ? $agentbrokerarr[1] : 0;
  553. if (!empty($brokerid)) {
  554. $map[] = ['brokerid', '=', $brokerid];
  555. }
  556. }else{
  557. $map[] = ['brokerid', '=', 0];
  558. }
  559. $status = input('status/d');
  560. if (!empty($status)) {
  561. $map[] = ['status', '=', $status];
  562. }
  563. $authstatus = input('authstatus/d');
  564. if (!empty($authstatus)) {
  565. $map[] = ['authstatus', '=', $authstatus];
  566. }
  567. $followstatus = input('followstatus/d');
  568. if (!empty($followstatus)) {
  569. $map[] = ['followstatus', '=', $followstatus];
  570. }
  571. $list = UserModel::with(['userGroups','broker'=>['agent','worker']])->withCount('userPart')->where($map)->order('id', 'desc')->limit($limit)->page($page)->append(['status_text','isvip_text','authstatus_text','followstatus_text','education_text','worker_text','jobintention_text'])->select();
  572. $count = UserModel::where($map)->count();
  573. if ($count==0) {
  574. exit(json_encode(array(
  575. 'code' => 1,
  576. 'msg' => "未查询到数据"
  577. )));
  578. }
  579. exit(json_encode(array(
  580. 'code' => 0,
  581. 'msg' => "",
  582. 'count' => $count,
  583. 'data' => $list
  584. )));
  585. }
  586. public function exportUser()
  587. {
  588. $map = array();
  589. $keywords = input('keywords/s');
  590. if (!empty($keywords)) {
  591. $map[] =['nickname|realname|mobile', 'like', '%'.$keywords.'%', 'or'];
  592. }
  593. $groupsid = input('groupsid/d');
  594. if (!empty($groupsid)) {
  595. $map[] = ['groupsid', '=', $groupsid];
  596. }
  597. $agentbrokerarr = explode(",", input('agentbroker/s'));
  598. $agentid = isset($agentbrokerarr[0]) ? $agentbrokerarr[0] : 0;
  599. if (!empty($agentid)) {
  600. $brokeridarr = BrokerModel::where('agentid', '=', $agentid)->column('id');
  601. $map[] = ['brokerid', 'in', $brokeridarr];
  602. $map[] = ['brokerid', '<>', 0];
  603. }
  604. $brokerid = isset($agentbrokerarr[1]) ? $agentbrokerarr[1] : 0;
  605. if (!empty($brokerid)) {
  606. $map[] = ['brokerid', '=', $brokerid];
  607. }
  608. $status = input('status/d');
  609. if (!empty($status)) {
  610. $map[] = ['status', '=', $status];
  611. }
  612. $authstatus = input('authstatus/d');
  613. if (!empty($authstatus)) {
  614. $map[] = ['authstatus', '=', $authstatus];
  615. }
  616. $followstatus = input('followstatus/d');
  617. if (!empty($followstatus)) {
  618. $map[] = ['followstatus', '=', $followstatus];
  619. }
  620. $xlsData = UserModel::with(['userGroups','broker'=>['agent','worker']])->withCount('userPart')->where($map)->order('id', 'desc')->append(['status_text','isvip_text','authstatus_text','followstatus_text'])->select()->toArray();
  621. $xlsCell = array(
  622. array('id','表ID'),
  623. array('nickname','昵称'),
  624. array('realname','姓名'),
  625. array('mobile','手机号'),
  626. array('integral','可用积分'),
  627. array('inttotal','累计积分'),
  628. array('status_text','状态'),
  629. array('isvip_text','是否VIP'),
  630. array('authstatus_text','是否实名认证'),
  631. array('idcard','身份证号'),
  632. array('gender','性别',array(1=>'男',2=>'女')),
  633. array('birthday','出生日期'),
  634. array('address','现居住地'),
  635. array('education','学历'),
  636. array('bankcard.openbank','开户行'),
  637. array('bankcard.account','账户名'),
  638. array('bankcard.number','账户号'),
  639. array('followstatus_text','跟进状态'),
  640. array('userGroups.title','用户组'),
  641. array('broker.worker.title','劳务公司'),
  642. array('broker.agent.title','代理门店'),
  643. array('broker.title','职业顾问'),
  644. array('user_part_count','推广人数'),
  645. array('createtime','注册时间'),
  646. );
  647. export_excel("系统用户", $xlsCell, $xlsData);
  648. }
  649. public function setBroker()
  650. {
  651. $idarr = input('idarr/a');
  652. $setagentbroker = explode(",", input('setagentbroker/s'));
  653. $brokerid = isset($setagentbroker[1]) ? $setagentbroker[1] : 0;
  654. if (empty($brokerid)) {
  655. exit(json_encode(array(
  656. 'code' => 1,
  657. 'msg' => "请选择职业顾问。"
  658. )));
  659. }
  660. UserModel::whereIn('id', $idarr)->update(['brokerid' => $brokerid]);
  661. exit(json_encode(array(
  662. 'code' => 0,
  663. 'msg' => ""
  664. )));
  665. }
  666. public function delUser()
  667. {
  668. $idarr = input('idarr/a');
  669. UserAuthsModel::whereIn('userid', $idarr)->delete();
  670. UserModel::destroy($idarr);
  671. // $result = Db::name('user')->whereIn('id',$idarr)->update(['deletetime'=>time()]);
  672. exit(json_encode(array(
  673. 'code' => 0,
  674. 'msg' => ""
  675. )));
  676. }
  677. public function editUser()
  678. {
  679. $id = input('id/d');
  680. $mobile = input('mobile/s');
  681. $vdata = array(
  682. 'id' => $id,
  683. 'mobile' => $mobile
  684. );
  685. try {
  686. validate(UserValidate::class)->check($vdata);
  687. } catch (ValidateException $e) {
  688. exit(json_encode(array(
  689. 'code' => 1,
  690. 'msg' => $e->getError()
  691. )));
  692. }
  693. $address = input('address/s', "");
  694. $jobintention = input('jobintention/s', "");
  695. if(!$address){
  696. exit(json_encode(array(
  697. 'code' => 1,
  698. 'msg' => "请填写居住地址。"
  699. )));
  700. }
  701. if(!$jobintention){
  702. exit(json_encode(array(
  703. 'code' => 1,
  704. 'msg' => "请填写意向岗位。"
  705. )));
  706. }
  707. $agentbrokerarr = explode(",", input('agentbroker/s'));
  708. $brokerid = isset($agentbrokerarr[1]) ? $agentbrokerarr[1] : 0;
  709. $data = array(
  710. 'groupsid' => input('groupsid/d', 0),
  711. 'brokerid' => $brokerid,
  712. 'nickname' => input('nickname/s', ""),
  713. 'avatar' => input('avatar/s', ""),
  714. 'realname' => input('realname/s', ""),
  715. 'mobile' => $mobile,
  716. 'inttotal' => input('inttotal/d', 0),
  717. 'status' => input('status/d', 1),
  718. 'isvip' => input('isvip/d', 1),
  719. 'authstatus' => input('authstatus/d', 1),
  720. 'authremark' => input('authremark/s', ""),
  721. 'idcardzpic' => input('idcardzpic/s', ""),
  722. 'idcardfpic' => input('idcardfpic/s', ""),
  723. 'idcard' => input('idcard/s', ""),
  724. 'gender' => input('gender/d', 1),
  725. 'birthday' => input('birthday/s', ""),
  726. 'address' => $address,
  727. 'education' => input('education/s', ""),
  728. 'createtime' => input('createtime/s', ""),
  729. 'jobintention' => $jobintention,
  730. 'workexperience' => input('workexperience/s', ""),
  731. 'eduexperience' => input('eduexperience/s', ""),
  732. 'followstatus' => input('followstatus/d', 1),
  733. 'bankcard' => input('bankcard/a', array()),
  734. );
  735. $password = input('password/s');
  736. if (empty($id)) {
  737. $data['integral'] = 0;
  738. $data['wxampcode'] = '';
  739. $user = UserModel::create($data);
  740. $auths = UserAuthsModel::create([
  741. 'userid' => $user->id,
  742. 'identitytype' => "mobile",
  743. 'identifier' => $mobile,
  744. 'password' => empty($password) ? md5("123456789") : md5($password),
  745. 'logintime' => time(),
  746. 'loginip' => $_SERVER['SERVER_ADDR'],
  747. 'wxampcode' => ""
  748. ]);
  749. } else {
  750. $data['id'] = $id;
  751. $user = UserModel::update($data);
  752. $adata = ['identifier'=>$mobile];
  753. if (!empty($password)) {
  754. $adata['password'] = md5($password);
  755. }
  756. UserAuthsModel::update($adata, ['userid'=>$id,'identitytype'=>'mobile']);
  757. }
  758. exit(json_encode(array(
  759. 'code' => 0
  760. )));
  761. }
  762. // 用户组
  763. public function groupsList()
  764. {
  765. return view('user/groupslist');
  766. }
  767. public function groupsForm()
  768. {
  769. $id = input('id/d, 0');
  770. $groups = UserGroupsModel::findOrEmpty($id);
  771. return view('user/groupsform', [
  772. 'groups' => $groups
  773. ]);
  774. }
  775. public function listGroups()
  776. {
  777. $limit = input('limit');
  778. $page = input('page');
  779. $list = UserGroupsModel::order(['isdefault'=>'desc','id'=>'asc'])->limit($limit)->page($page)->append(['isdefault_text'])->select();
  780. $count = UserGroupsModel::count();
  781. if ($count==0) {
  782. exit(json_encode(array(
  783. 'code' => 1,
  784. 'msg' => "未查询到数据"
  785. )));
  786. }
  787. exit(json_encode(array(
  788. 'code' => 0,
  789. 'msg' => "",
  790. 'count' => $count,
  791. 'data' => $list
  792. )));
  793. }
  794. public function editGroups()
  795. {
  796. $id = input('id/d');
  797. if (empty($id)) {
  798. $groups = UserGroupsModel::create([
  799. 'title' => input('title/s'),
  800. 'isdefault' => input('isdefault/d')==2 ? 2 : 1
  801. ]);
  802. } else {
  803. $administer = UserGroupsModel::find($id);
  804. $administer->save([
  805. 'title' => input('title/s'),
  806. 'isdefault' => input('isdefault/d')==2 ? 2 : 1
  807. ]);
  808. }
  809. exit(json_encode(array(
  810. 'code' => 0
  811. )));
  812. }
  813. public function delGroups()
  814. {
  815. $access_admin = session('access_admin');
  816. $password = input('password');
  817. if ($access_admin['password'] !== md5($password)) {
  818. exit(json_encode(array(
  819. 'code' => 1,
  820. 'msg' => "操作密码验证失败"
  821. )));
  822. }
  823. $idarr = input('idarr/a');
  824. UserGroupsModel::whereIn('id', $idarr)->delete();
  825. exit(json_encode(array(
  826. 'code' => 0,
  827. 'msg' => ""
  828. )));
  829. }
  830. // 参数设置
  831. public function param()
  832. {
  833. $param = UserParamModel::where(1)->findOrEmpty();
  834. return view('user/param', [
  835. 'param' => $param
  836. ]);
  837. }
  838. public function editParam()
  839. {
  840. $param = UserParamModel::where(1)->findOrEmpty();
  841. $data = array(
  842. 'redmoney' => input('redmoney/d', 0),
  843. 'usernumber' => input('usernumber/d', 0),
  844. 'shareintegral' => input('shareintegral/d', 0),
  845. 'postintegral' => input('postintegral/d', 0),
  846. 'inttomoney' => input('inttomoney/d', 0),
  847. 'minintegral' => input('minintegral/d', 0),
  848. 'intrecharge' => input('intrecharge/d', 0),
  849. 'picregworker' => input('picregworker/s', ""),
  850. 'intregworker' => input('intregworker/d', 0)
  851. );
  852. if ($param->isEmpty()) {
  853. UserParamModel::create($data);
  854. } else {
  855. $data['id'] = $param->id;
  856. UserParamModel::update($data);
  857. }
  858. exit(json_encode(array(
  859. 'code' => 0,
  860. 'msg' => ""
  861. )));
  862. }
  863. // 用户组
  864. public function willList()
  865. {
  866. return view('user/willlist');
  867. }
  868. public function willForm()
  869. {
  870. $id = input('id/d, 0');
  871. $will = UserWill::findOrEmpty($id);
  872. return view('user/willform', [
  873. 'will' => $will
  874. ]);
  875. }
  876. public function listwill()
  877. {
  878. $limit = input('limit');
  879. $page = input('page');
  880. $list = UserWill::order(['isdefault'=>'desc','id'=>'asc'])->limit($limit)->page($page)->append(['isdefault_text'])->select();
  881. $count = UserWill::count();
  882. if ($count==0) {
  883. exit(json_encode(array(
  884. 'code' => 1,
  885. 'msg' => "未查询到数据"
  886. )));
  887. }
  888. exit(json_encode(array(
  889. 'code' => 0,
  890. 'msg' => "",
  891. 'count' => $count,
  892. 'data' => $list
  893. )));
  894. }
  895. public function editwill()
  896. {
  897. $id = input('id/d');
  898. if (empty($id)) {
  899. UserWill::create([
  900. 'title' => input('title/s'),
  901. 'isdefault' => input('isdefault/d')==2 ? 2 : 1
  902. ]);
  903. } else {
  904. $administer = UserWill::find($id);
  905. $administer->save([
  906. 'title' => input('title/s'),
  907. 'isdefault' => input('isdefault/d')==2 ? 2 : 1
  908. ]);
  909. }
  910. exit(json_encode(array(
  911. 'code' => 0
  912. )));
  913. }
  914. public function delwill()
  915. {
  916. $access_admin = session('access_admin');
  917. $password = input('password');
  918. if ($access_admin['password'] !== md5($password)) {
  919. exit(json_encode(array(
  920. 'code' => 1,
  921. 'msg' => "操作密码验证失败"
  922. )));
  923. }
  924. $idarr = input('idarr/a');
  925. UserWill::whereIn('id', $idarr)->delete();
  926. exit(json_encode(array(
  927. 'code' => 0,
  928. 'msg' => ""
  929. )));
  930. }
  931. }