My.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581
  1. <?php
  2. namespace app\mainapp\controller;
  3. use app\common\model\ResumeInvite;
  4. use app\common\model\UserWill;
  5. use app\common\service\IntegralService;
  6. use app\mainapp\BaseController;
  7. use app\common\model\Param as ParamModel;
  8. use app\common\model\User as UserModel;
  9. use app\common\model\UserAuths as UserAuthsModel;
  10. use app\common\model\UserGroups as UserGroupsModel;
  11. use app\common\model\UserIntegral as UserIntegralModel;
  12. use app\common\model\UserParam as UserParamModel;
  13. use app\common\model\UserPart as UserPartModel;
  14. use app\common\model\UserRank as UserRankModel;
  15. use app\common\model\ComjobsLog as ComjobsLogModel;
  16. use app\common\model\Worker as WorkerModel;
  17. use app\common\model\Agent as AgentModel;
  18. use app\common\model\Broker as BrokerModel;
  19. use app\common\model\ArticleCollect as ArticleCollectModel;
  20. use echowx\WxProgram;
  21. use echowx\WxPay;
  22. class My extends BaseController
  23. {
  24. // 我的推广码
  25. public function pageCode()
  26. {
  27. $param = ParamModel::where(1)->find();
  28. $plist = UserRankModel::order('partnumber', 'desc')->limit(100)->select();
  29. page_result(0, "", [
  30. 'param' => $param,
  31. 'plist' => $plist,
  32. 'pcount' => count($plist),
  33. ]);
  34. }
  35. public function refCode()
  36. {
  37. $userid = input('userid/d', 0);
  38. $wxprogram = new WxProgram();
  39. $wxampcode = $wxprogram->wxacode_get_unlimited($userid, "pages/login/sharepuser", 430, "attachment/wxampcode/" . md5(time()) . ".jpg");
  40. if ($wxampcode == false) {
  41. page_result(1, "小程序码生成失败,请稍后再试。");
  42. }
  43. UserModel::update([
  44. 'id' => $userid,
  45. 'wxampcode' => $wxampcode,
  46. ]);
  47. page_result(0, "", [
  48. 'wxampcode' => $wxampcode,
  49. ]);
  50. }
  51. public function regUser()
  52. {
  53. $userid = input('userid/d', 0);
  54. $user = UserModel::findOrEmpty($userid);
  55. if ($user->isEmpty()) {
  56. page_result(1, "用户信息不存在");
  57. }
  58. $realname = input('realname/s', "");
  59. $mobile = input('mobile/s', "");
  60. if (empty($realname) || empty($mobile)) {
  61. page_result(1, "姓名手机号均不能为空。");
  62. }
  63. $reguser = WorkerModel::where('mobile', '=', $mobile)->findOrEmpty();
  64. if (!$reguser->isEmpty()) {
  65. page_result(1, "该手机号已注册过了。");
  66. }
  67. $groups = UserGroupsModel::order(['isdefault' => 'desc', 'id' => 'asc'])->findOrEmpty();
  68. $groupsid = $groups->isEmpty() ? 0 : $groups->id;
  69. $newuser = new UserModel;
  70. $newuser->save([
  71. 'groupsid' => $groupsid,
  72. 'brokerid' => $user->brokerid,
  73. 'nickname' => $realname,
  74. 'avatar' => "",
  75. 'realname' => $realname,
  76. 'mobile' => $mobile,
  77. 'password' => md5(time() . mt_rand(100000, 999999)),
  78. 'integral' => 0,
  79. 'inttotal' => 0,
  80. 'status' => 2,
  81. 'isvip' => 1,
  82. 'authstatus' => 1,
  83. 'authremark' => "",
  84. 'idcardzpic' => "",
  85. 'idcardfpic' => "",
  86. 'idcard' => "",
  87. 'gender' => 1,
  88. 'birthday' => "",
  89. 'address' => "",
  90. 'education' => "",
  91. 'createtime' => time(),
  92. 'jobintention' => "",
  93. 'workexperience' => "",
  94. 'eduexperience' => "",
  95. 'followstatus' => 1,
  96. 'wxampcode' => "",
  97. 'bankcard' => ['openbank' => "", 'account' => "", 'number' => ""],
  98. ]);
  99. $mobileuserauths = new UserAuthsModel;
  100. $mobileuserauths->save([
  101. 'userid' => $newuser->id,
  102. 'identitytype' => "mobile",
  103. 'identifier' => $mobile,
  104. 'password' => md5(time() . mt_rand(100000, 999999)),
  105. 'logintime' => time(),
  106. 'loginip' => $_SERVER['SERVER_ADDR'],
  107. ]);
  108. $param = UserParamModel::where(1)->findOrEmpty();
  109. $part = new UserPartModel;
  110. $part->save([
  111. 'puserid' => $userid,
  112. 'userid' => $newuser->id,
  113. 'redmoney' => intval($param->redmoney),
  114. 'status' => 1,
  115. 'createtime' => time(),
  116. ]);
  117. if ($param->postintegral > 0) {
  118. $integral = new UserIntegralModel;
  119. $integral->save([
  120. 'userid' => $user->id,
  121. 'title' => "推荐注册用户奖励",
  122. 'intvalue' => $param->postintegral,
  123. 'intmoney' => 0.00,
  124. 'onlycontent' => "",
  125. 'remark' => "推荐注册用户【" . $realname . "】奖励积分",
  126. 'itype' => 1,
  127. 'status' => 2,
  128. 'createtime' => time(),
  129. 'yeartime' => date("Y"),
  130. 'monthtime' => date("Ym"),
  131. ]);
  132. $updata = [
  133. 'integral' => $user->integral + $param->postintegral,
  134. 'inttotal' => $user->inttotal + $param->postintegral,
  135. ];
  136. $user->save($updata);
  137. }
  138. page_result(0, "", []);
  139. }
  140. // 获得用户信息
  141. public function getUser()
  142. {
  143. $param = ParamModel::where(1)->find();
  144. $userid = input('userid/d');
  145. $user = UserModel::findOrEmpty($userid);
  146. if ($user->isEmpty()) {
  147. page_result(1, "用户信息不存在");
  148. }
  149. // $user['nickname'] = mb_substr($user['nickname'],0,6,'utf-8').'...';
  150. $workerall = WorkerModel::where('userid', '=', $user->id)->select();
  151. $agentall = AgentModel::where('userid', '=', $user->id)->select();
  152. $brokerall = BrokerModel::where('userid', '=', $user->id)->select();
  153. page_result(0, "", [
  154. 'param' => $param,
  155. 'user' => $user,
  156. 'workerall' => $workerall->isEmpty() ? null : $workerall,
  157. 'agentall' => $agentall->isEmpty() ? null : $agentall,
  158. 'brokerall' => $brokerall->isEmpty() ? null : $brokerall,
  159. ]);
  160. }
  161. // 我的职业顾问
  162. public function getMyBroker()
  163. {
  164. $userid = input('userid/d');
  165. $user = UserModel::findOrEmpty($userid);
  166. if ($user->isEmpty()) {
  167. page_result(1, "用户信息不存在");
  168. }
  169. $agent = AgentModel::where('id', '=', $user->agentid)->find();
  170. $broker = BrokerModel::where('id', '=', $user->brokerid)->find();
  171. page_result(0, "", [
  172. 'agent' => $agent,
  173. 'broker' => $broker,
  174. ]);
  175. }
  176. // 收藏夹
  177. public function listCollect()
  178. {
  179. $ppage = input('ppage/d', 1);
  180. $psize = input('psize/d', 20);
  181. $userid = input('userid/d', 0);
  182. if (empty($userid)) {
  183. page_result(1, "用户信息不存在");
  184. }
  185. $plist = ArticleCollectModel::with('article')->where('userid', '=', $userid)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select();
  186. page_result(0, "", [
  187. 'plist' => $plist,
  188. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  189. ]);
  190. }
  191. public function delCollect()
  192. {
  193. $id = input('id/d', 0);
  194. $userid = input('userid/d', 0);
  195. $collect = ArticleCollectModel::where(['id' => $id, 'userid' => $userid])->findOrEmpty();
  196. $result = $collect->delete();
  197. if ($result) {
  198. exit(json_encode([
  199. 'code' => 0,
  200. 'msg' => "",
  201. ]));
  202. }
  203. exit(json_encode([
  204. 'code' => 1,
  205. 'msg' => "删除失败,请稍后重试",
  206. ]));
  207. }
  208. // 我的邀请
  209. public function myTeam()
  210. {
  211. $userid = input('userid/d', 0);
  212. $user = UserModel::findOrEmpty($userid);
  213. if ($user->isEmpty()) {
  214. page_result(1, "用户信息不存在。");
  215. }
  216. $redmoneyarr = ['status0' => 0, 'status1' => 0, 'status2' => 0, 'status3' => 0];
  217. $redmoneyall = UserPartModel::field('status, userid, SUM(redmoney) AS redmoneysum')->where('puserid', '=', $userid)->group('status')->select()->toArray();
  218. if (!empty($redmoneyall)) {
  219. foreach ($redmoneyall as $k => $v) {
  220. $redmoneyarr['status' . $v['status']] = intval($v['redmoneysum']);
  221. }
  222. }
  223. $redmoneyarr['status0'] = $redmoneyarr['status2'] + $redmoneyarr['status3'];
  224. page_result(0, "", [
  225. 'redmoneyarr' => $redmoneyarr,
  226. ]);
  227. }
  228. public function getTeam()
  229. {
  230. $ppage = input('ppage/d', 1);
  231. $psize = input('psize/d', 20);
  232. $userid = input('userid/d', 0);
  233. if ($userid != 0) {
  234. $map[] = ['puserid', '=', $userid];
  235. }
  236. $status = input('status/d', 0);
  237. if ($status != 0) {
  238. $map[] = ['status', '=', $status];
  239. }
  240. $plist = UserPartModel::with('user')->where($map)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select();
  241. page_result(0, "", [
  242. 'plist' => $plist,
  243. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  244. ]);
  245. }
  246. // 我的积分
  247. public function myIntegral()
  248. {
  249. $userid = input('userid/d', 0);
  250. $user = UserModel::findOrEmpty($userid);
  251. if ($user->isEmpty()) {
  252. page_result(1, "用户信息不存在。");
  253. }
  254. $monthtime = date('Ym', strtotime('-1 month'));
  255. $monthintegral = UserIntegralModel::where(['monthtime' => $monthtime, 'userid' => $userid])->sum('intvalue');
  256. $userparam = UserParamModel::where(1)->findOrEmpty();
  257. page_result(0, "", [
  258. 'user' => $user,
  259. 'monthintegral' => $monthintegral,
  260. 'userparam' => $userparam,
  261. ]);
  262. }
  263. public function getRecharge()
  264. {
  265. $userid = input('userid/d', 0);
  266. $user = UserModel::findOrEmpty($userid);
  267. if ($user->isEmpty()) {
  268. page_result(1, "用户信息不存在。");
  269. }
  270. $userauths = UserAuthsModel::where(['userid' => $userid, 'identitytype' => "weixin"])->findOrEmpty();
  271. if ($userauths->isEmpty()) {
  272. page_result(1, "请先授权微信号登录。");
  273. }
  274. $userparam = UserParamModel::where(1)->findOrEmpty();
  275. if ($userparam->isEmpty() || $userparam->intrecharge <= 0) {
  276. page_result(1, "禁止用户充值。");
  277. }
  278. $moneyvalue = input('moneyvalue/f', 0.00);
  279. $intvalue = intval($moneyvalue * $userparam->intrecharge);
  280. if ($moneyvalue <= 0.00 || $intvalue <= 0) {
  281. page_result(1, "充值积分额不能小于0。");
  282. }
  283. $integral = new UserIntegralModel;
  284. $integral->save([
  285. 'userid' => $userid,
  286. 'title' => "用户积分充值(¥" . $moneyvalue . "元" . $intvalue . "积分)",
  287. 'intvalue' => $intvalue,
  288. 'intmoney' => $moneyvalue,
  289. 'onlycontent' => "",
  290. 'remark' => "R" . date("YmdHis") . mt_rand(100000, 999999),
  291. 'itype' => 2,
  292. 'status' => 1,
  293. 'createtime' => time(),
  294. 'yeartime' => date('Y'),
  295. 'monthtime' => date('Ym'),
  296. ]);
  297. $payData = [
  298. 'body' => "用户积分充值(¥" . $moneyvalue . "元" . $intvalue . "积分)",
  299. 'out_trade_no' => $integral->remark,
  300. 'total_fee' => intval($moneyvalue * 100),
  301. 'openid' => $userauths->identifier,
  302. ];
  303. $wxpay = new WxPay();
  304. $info = $wxpay->wxpay_unified_order($payData);
  305. if ($info['status'] == 1) {
  306. $payinfo = $wxpay->get_jsapi_param($info['data']['prepay_id']);
  307. page_result(0, "", ['payinfo' => $payinfo]);
  308. } else {
  309. page_result(1, $info['data']);
  310. }
  311. }
  312. public function getMoney()
  313. {
  314. $userid = input('userid/d', 0);
  315. $user = UserModel::findOrEmpty($userid);
  316. if ($user->isEmpty()) {
  317. page_result(1, "用户信息不存在。");
  318. }
  319. $bankcard = $user->bankcard;
  320. if (empty($bankcard) || empty($bankcard['number'])) {
  321. page_result(1, "请先完善个人银行卡信息。");
  322. }
  323. $oldintegral = UserIntegralModel::where(['userid' => $userid, 'itype' => 3, 'status' => 1])->findOrEmpty();
  324. if (!$oldintegral->isEmpty()) {
  325. page_result(1, "你已存在未处理的兑现申请,请耐心等待客服处理,处理完成后方可再次提交兑现申请。");
  326. }
  327. $userparam = UserParamModel::where(1)->findOrEmpty();
  328. if ($userparam->isEmpty() || $userparam->inttomoney <= 0) {
  329. page_result(1, "禁止用户提现。");
  330. }
  331. $intvalue = input('intvalue/d', 0);
  332. if ($intvalue <= 0 || $intvalue < intval($userparam->minintegral)) {
  333. page_result(1, "兑现积分值要大于" . $userparam->minintegral . "。");
  334. }
  335. if ($intvalue > intval($user->integral)) {
  336. page_result(1, "兑现积分值不能大于当前可用积分。");
  337. }
  338. $integral = new UserIntegralModel;
  339. $intmoney = sprintf("%.2f", floatval($intvalue / $userparam->inttomoney));
  340. $integral->save([
  341. 'userid' => $userid,
  342. 'title' => "用户积分兑现",
  343. 'intvalue' => 0 - $intvalue,
  344. 'intmoney' => $intmoney,
  345. 'onlycontent' => "",
  346. 'remark' => "用户积分兑现现金",
  347. 'itype' => 3,
  348. 'status' => 1,
  349. 'createtime' => time(),
  350. 'yeartime' => date('Y'),
  351. 'monthtime' => date('Ym'),
  352. ]);
  353. $hasintegral = intval($user->integral) - $intvalue;
  354. $user->save([
  355. 'integral' => $hasintegral,
  356. ]);
  357. page_result(0, "", [
  358. 'user' => $user,
  359. ]);
  360. }
  361. public function getIntegral()
  362. {
  363. $ppage = input('ppage/d', 1);
  364. $psize = input('psize/d', 20);
  365. $userid = input('userid/d', 0);
  366. if ($userid != 0) {
  367. $map[] = ['userid', '=', $userid];
  368. }
  369. $plist = UserIntegralModel::where($map)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select()->append(['itype_text', 'status_text']);
  370. page_result(0, "", [
  371. 'plist' => $plist,
  372. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  373. ]);
  374. }
  375. // 银行卡信息
  376. public function editUserBankinfo()
  377. {
  378. $userid = input('userid/d', 0);
  379. $user = UserModel::findOrEmpty($userid);
  380. if ($user->isEmpty()) {
  381. page_result(1, "用户信息不存在");
  382. }
  383. $openbank = input('openbank/s', "");
  384. $account = input('account/s', "");
  385. $number = input('number/s', "");
  386. $bankcard = [
  387. 'openbank' => $openbank,
  388. 'account' => $account,
  389. 'number' => $number,
  390. ];
  391. $user->save(['bankcard' => $bankcard]);
  392. page_result(0, "", $user);
  393. }
  394. // 个人信息
  395. public function editUserInfo()
  396. {
  397. $userid = input('userid/d');
  398. $user = UserModel::findOrEmpty($userid);
  399. if ($user->isEmpty()) {
  400. page_result(1, "用户信息不存在");
  401. }
  402. $field = input('field/s');
  403. $value = input('value');
  404. $field_array = ['emp_time', 'com_cate','work_place'];
  405. if (in_array($field, $field_array)) {
  406. $value = json_decode($value, true);
  407. }
  408. $user->$field = $value;
  409. $user->save();
  410. page_result(0, "", $user);
  411. }
  412. public function perfectUserInfo()
  413. {
  414. $userid = input('userid/d');
  415. $user = UserModel::findOrEmpty($userid);
  416. if ($user->isEmpty()) {
  417. page_result(1, "用户信息不存在");
  418. }
  419. if ($user['is_perfect'] == 2) {
  420. $user->is_perfect = 1;
  421. $user->save();
  422. }
  423. $integralService = new IntegralService();
  424. $integralService->add($userid,IntegralService::IMPROVERESUME);
  425. page_result();
  426. }
  427. // 身份证认证
  428. public function editIdCard()
  429. {
  430. $userid = input('userid/d');
  431. $user = UserModel::findOrEmpty($userid);
  432. if ($user->isEmpty()) {
  433. page_result(1, "用户信息不存在");
  434. }
  435. $data = input('data');
  436. if (is_string($data)) {
  437. $data = json_decode($data, true);
  438. }
  439. $fileds = ['nickname', 'idcard', 'gender', 'birthday'];
  440. foreach ($data as $k => $v) {
  441. if (in_array($k, $fileds)) {
  442. $user->$k = $v;
  443. }
  444. }
  445. $user->save();
  446. page_result(0, "", $user);
  447. }
  448. // 提交实名认证审核
  449. public function setAuthStatus()
  450. {
  451. $userid = input('userid/d');
  452. $user = UserModel::findOrEmpty($userid);
  453. if ($user->isEmpty()) {
  454. page_result(1, "用户信息不存在");
  455. }
  456. if (empty($user->idcardzpic)) {
  457. page_result(1, "请上传上传身份证(头像页)照。");
  458. }
  459. if (empty($user->idcardfpic)) {
  460. page_result(1, "请上传上传身份证(国徽页)照。");
  461. }
  462. if (empty($user->idcard)) {
  463. page_result(1, "请填写身份证号。");
  464. }
  465. if (isIdCard($user->idcard) == false) {
  466. page_result(1, "请填写正确的身份证号。");
  467. }
  468. if (empty($user->realname)) {
  469. page_result(1, "请填写姓名。");
  470. }
  471. $user->save([
  472. 'authstatus' => 2,
  473. 'gender' => get_sex($user->idcard),
  474. 'birthday' => get_birthday($user->idcard),
  475. ]);
  476. page_result(0, "", $user);
  477. }
  478. public function jobintention_lst()
  479. {
  480. $plist = UserWill::select();
  481. page_result(0, "", [
  482. 'plist' => $plist,
  483. ]);
  484. }
  485. public function getauthimg()
  486. {
  487. $image_url = "//" . $_SERVER['SERVER_NAME'];
  488. $head1 = $image_url . "/static/images/head1.png";
  489. $head2 = $image_url . "/static/images/head2.png";
  490. page_result(0, "", [
  491. 'head1' => $head1,
  492. 'head2' => $head2,
  493. ]);
  494. }
  495. public function gettipnum()
  496. {
  497. $userid = input('userid/d');
  498. $comjobs_num = ComjobsLogModel::where('userid', $userid)->whereIn('status', [2, 3, 4])->count();
  499. $invite_num = ResumeInvite::where('userid', $userid)->where('status', 1)->count();
  500. page_result(0, "", [
  501. 'comjobs_num' => $comjobs_num,
  502. 'invite_num' => $invite_num,
  503. ]);
  504. }
  505. public function signin()
  506. {
  507. $userid = input('userid/d');
  508. $check = UserIntegralModel::where('createtime','>=',strtotime(date('Y-m-d')))
  509. ->where('createtime','<=',strtotime(date('Y-m-d 23:59:59')))
  510. ->where('userid',$userid)
  511. ->where('itype',9)
  512. ->find();
  513. if (!empty($check)) {
  514. page_result(1, "今日已签到");
  515. }
  516. $integralService = new IntegralService();
  517. $integralService->add($userid,IntegralService::SINGIN,9);
  518. page_result(0, "");
  519. }
  520. public function task()
  521. {
  522. $userid = input('userid/d');
  523. $param = UserParamModel::field(['improveresume','certification','entry','signin','sharejob','sharejobnum','taskimage'])->where(1)->find();
  524. $share_num = UserIntegralModel::where('createtime','>=',strtotime(date('Y-m-d')))
  525. ->where('createtime','<=',strtotime(date('Y-m-d 23:59:59')))
  526. ->where('userid',$userid)
  527. ->where('itype',10)
  528. ->count();
  529. $check = UserIntegralModel::where('createtime','>=',strtotime(date('Y-m-d')))
  530. ->where('createtime','<=',strtotime(date('Y-m-d 23:59:59')))
  531. ->where('userid',$userid)
  532. ->where('itype',9)
  533. ->find();
  534. $is_signin = empty($check) ? 2 : 1;
  535. page_result(0, "",['tasklist'=>$param,'share_num'=>$share_num,'is_signin'=>$is_signin]);
  536. }
  537. }