My.php 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746
  1. <?php
  2. namespace app\mainapp\controller;
  3. use app\common\model\Config;
  4. use app\common\model\Feedback;
  5. use app\common\model\ResumeInvite;
  6. use app\common\model\UserBalance as UserBalanceModel;
  7. use app\common\model\UserGetmoneyLog as UserGetmoneyLogModel;
  8. use app\common\model\UserGetmoneyLog;
  9. use app\common\model\UserWill;
  10. use app\common\service\BalanceService;
  11. use app\common\service\IntegralService;
  12. use app\common\service\SmsService;
  13. use app\mainapp\BaseController;
  14. use app\common\model\Param as ParamModel;
  15. use app\common\model\User as UserModel;
  16. use app\common\model\UserAuths as UserAuthsModel;
  17. use app\common\model\UserGroups as UserGroupsModel;
  18. use app\common\model\UserIntegral as UserIntegralModel;
  19. use app\common\model\UserParam as UserParamModel;
  20. use app\common\model\UserPart as UserPartModel;
  21. use app\common\model\UserRank as UserRankModel;
  22. use app\common\model\ComjobsLog as ComjobsLogModel;
  23. use app\common\model\Resident as ResidentModel;
  24. use app\common\model\Worker as WorkerModel;
  25. use app\common\model\Agent as AgentModel;
  26. use app\common\model\Broker as BrokerModel;
  27. use app\common\model\ArticleCollect as ArticleCollectModel;
  28. use echowx\WxProgram;
  29. use echowx\WxPay;
  30. use payment\wechat\WechatTransfers;
  31. use think\facade\Log;
  32. class My extends BaseController
  33. {
  34. // 我的推广码
  35. public function pageCode()
  36. {
  37. $param = ParamModel::where(1)->find();
  38. $plist = UserRankModel::order('partnumber', 'desc')->limit(100)->select();
  39. page_result(0, "", [
  40. 'param' => $param,
  41. 'plist' => $plist,
  42. 'pcount' => count($plist),
  43. ]);
  44. }
  45. public function refCode()
  46. {
  47. $userid = input('userid/d', 0);
  48. $wxprogram = new WxProgram();
  49. $wxampcode = $wxprogram->wxacode_get_unlimited($userid, "pages/login/sharepuser", 430, "attachment/wxampcode/" . md5(time()) . ".jpg");
  50. if ($wxampcode == false) {
  51. page_result(1, "小程序码生成失败,请稍后再试。");
  52. }
  53. UserModel::update([
  54. 'id' => $userid,
  55. 'wxampcode' => $wxampcode,
  56. ]);
  57. page_result(0, "", [
  58. 'wxampcode' => $wxampcode,
  59. ]);
  60. }
  61. public function regUser()
  62. {
  63. $userid = input('userid/d', 0);
  64. $user = UserModel::findOrEmpty($userid);
  65. if ($user->isEmpty()) {
  66. page_result(1, "用户信息不存在");
  67. }
  68. $realname = input('realname/s', "");
  69. $mobile = input('mobile/s', "");
  70. if (empty($realname) || empty($mobile)) {
  71. page_result(1, "姓名手机号均不能为空。");
  72. }
  73. $reguser = WorkerModel::where('mobile', '=', $mobile)->findOrEmpty();
  74. if (!$reguser->isEmpty()) {
  75. page_result(1, "该手机号已注册过了。");
  76. }
  77. $groups = UserGroupsModel::order(['isdefault' => 'desc', 'id' => 'asc'])->findOrEmpty();
  78. $groupsid = $groups->isEmpty() ? 0 : $groups->id;
  79. $newuser = new UserModel;
  80. $newuser->save([
  81. 'groupsid' => $groupsid,
  82. 'brokerid' => $user->brokerid,
  83. 'nickname' => $realname,
  84. 'avatar' => "",
  85. 'realname' => $realname,
  86. 'mobile' => $mobile,
  87. 'password' => md5(time() . mt_rand(100000, 999999)),
  88. 'integral' => 0,
  89. 'inttotal' => 0,
  90. 'status' => 2,
  91. 'isvip' => 1,
  92. 'authstatus' => 1,
  93. 'authremark' => "",
  94. 'idcardzpic' => "",
  95. 'idcardfpic' => "",
  96. 'idcard' => "",
  97. 'gender' => 1,
  98. 'birthday' => "",
  99. 'address' => "",
  100. 'education' => "",
  101. 'createtime' => time(),
  102. 'jobintention' => "",
  103. 'workexperience' => "",
  104. 'eduexperience' => "",
  105. 'followstatus' => 1,
  106. 'wxampcode' => "",
  107. 'bankcard' => ['openbank' => "", 'account' => "", 'number' => ""],
  108. ]);
  109. $mobileuserauths = new UserAuthsModel;
  110. $mobileuserauths->save([
  111. 'userid' => $newuser->id,
  112. 'identitytype' => "mobile",
  113. 'identifier' => $mobile,
  114. 'password' => md5(time() . mt_rand(100000, 999999)),
  115. 'logintime' => time(),
  116. 'loginip' => $_SERVER['SERVER_ADDR'],
  117. ]);
  118. $param = UserParamModel::where(1)->findOrEmpty();
  119. $part = new UserPartModel;
  120. $part->save([
  121. 'puserid' => $userid,
  122. 'userid' => $newuser->id,
  123. 'redmoney' => intval($param->redmoney),
  124. 'status' => 1,
  125. 'createtime' => time(),
  126. ]);
  127. if ($param->postintegral > 0) {
  128. $integral = new UserIntegralModel;
  129. $integral->save([
  130. 'userid' => $user->id,
  131. 'title' => "推荐注册用户奖励",
  132. 'intvalue' => $param->postintegral,
  133. 'intmoney' => 0.00,
  134. 'onlycontent' => "",
  135. 'remark' => "推荐注册用户【" . $realname . "】奖励积分",
  136. 'itype' => 1,
  137. 'status' => 2,
  138. 'createtime' => time(),
  139. 'yeartime' => date("Y"),
  140. 'monthtime' => date("Ym"),
  141. ]);
  142. $updata = [
  143. 'integral' => $user->integral + $param->postintegral,
  144. 'inttotal' => $user->inttotal + $param->postintegral,
  145. ];
  146. $user->save($updata);
  147. }
  148. page_result(0, "", []);
  149. }
  150. // 获得用户信息
  151. public function getUser()
  152. {
  153. $param = ParamModel::where(1)->find();
  154. $userid = input('userid/d');
  155. $user = UserModel::findOrEmpty($userid);
  156. if ($user->isEmpty()) {
  157. page_result(1, "用户信息不存在");
  158. }
  159. // $user['nickname'] = mb_substr($user['nickname'],0,6,'utf-8').'...';
  160. $workerall = WorkerModel::where('userid', '=', $user->id)->select();
  161. $agentall = AgentModel::where('userid', '=', $user->id)->select();
  162. $brokerall = BrokerModel::where('userid', '=', $user->id)->where('status', 1)->where('type', '<>', 3)->select();
  163. $resident = ResidentModel::where('userid', '=', $user->id)->findOrEmpty();
  164. $upper_id = $user['brokerid'];
  165. if (empty($user['brokerid'])) {
  166. $upper_id = Config::getConfigValue('default_broker');
  167. }
  168. $upper = BrokerModel::where('id', '=', $upper_id)->find();
  169. page_result(0, "", [
  170. 'param' => $param,
  171. 'user' => $user,
  172. 'workerall' => $workerall->isEmpty() ? null : $workerall,
  173. 'agentall' => $agentall->isEmpty() ? null : $agentall,
  174. 'brokerall' => $brokerall->isEmpty() ? null : $brokerall,
  175. 'resident' => $resident->isEmpty() ? null : $resident,
  176. 'upper' => $upper->isEmpty() ? null : $upper,
  177. ]);
  178. }
  179. // 我的经纪人
  180. public function getMyBroker()
  181. {
  182. $userid = input('userid/d');
  183. $user = UserModel::findOrEmpty($userid);
  184. if ($user->isEmpty()) {
  185. page_result(1, "用户信息不存在");
  186. }
  187. $agent = AgentModel::where('id', '=', $user->agentid)->find();
  188. $broker = BrokerModel::where('id', '=', $user->brokerid)->find();
  189. page_result(0, "", [
  190. 'agent' => $agent,
  191. 'broker' => $broker,
  192. ]);
  193. }
  194. // 收藏夹
  195. public function listCollect()
  196. {
  197. $ppage = input('ppage/d', 1);
  198. $psize = input('psize/d', 20);
  199. $userid = input('userid/d', 0);
  200. if (empty($userid)) {
  201. page_result(1, "用户信息不存在");
  202. }
  203. $plist = ArticleCollectModel::with('article')->where('userid', '=', $userid)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select();
  204. page_result(0, "", [
  205. 'plist' => $plist,
  206. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  207. ]);
  208. }
  209. public function delCollect()
  210. {
  211. $id = input('id/d', 0);
  212. $userid = input('userid/d', 0);
  213. $collect = ArticleCollectModel::where(['id' => $id, 'userid' => $userid])->findOrEmpty();
  214. $result = $collect->delete();
  215. if ($result) {
  216. exit(json_encode([
  217. 'code' => 0,
  218. 'msg' => "",
  219. ]));
  220. }
  221. exit(json_encode([
  222. 'code' => 1,
  223. 'msg' => "删除失败,请稍后重试",
  224. ]));
  225. }
  226. // 我的邀请
  227. public function myTeam()
  228. {
  229. $userid = input('userid/d', 0);
  230. $user = UserModel::findOrEmpty($userid);
  231. if ($user->isEmpty()) {
  232. page_result(1, "用户信息不存在。");
  233. }
  234. $redmoneyarr = ['status0' => 0, 'status1' => 0, 'status2' => 0, 'status3' => 0];
  235. $redmoneyall = UserPartModel::field('status, userid, SUM(redmoney) AS redmoneysum')->where('puserid', '=', $userid)->group('status')->select()->toArray();
  236. if (!empty($redmoneyall)) {
  237. foreach ($redmoneyall as $k => $v) {
  238. $redmoneyarr['status' . $v['status']] = intval($v['redmoneysum']);
  239. }
  240. }
  241. $redmoneyarr['status0'] = $redmoneyarr['status2'] + $redmoneyarr['status3'];
  242. page_result(0, "", [
  243. 'redmoneyarr' => $redmoneyarr,
  244. ]);
  245. }
  246. public function getTeam()
  247. {
  248. $ppage = input('ppage/d', 1);
  249. $psize = input('psize/d', 20);
  250. $userid = input('userid/d', 0);
  251. if ($userid != 0) {
  252. $map[] = ['puserid', '=', $userid];
  253. }
  254. $status = input('status/d', 0);
  255. if ($status != 0) {
  256. $map[] = ['status', '=', $status];
  257. }
  258. $plist = UserPartModel::with('user')->where($map)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select();
  259. page_result(0, "", [
  260. 'plist' => $plist,
  261. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  262. ]);
  263. }
  264. // 我的积分
  265. public function myIntegral()
  266. {
  267. $userid = input('userid/d', 0);
  268. $user = UserModel::findOrEmpty($userid);
  269. if ($user->isEmpty()) {
  270. page_result(1, "用户信息不存在。");
  271. }
  272. $monthtime = date('Ym', strtotime('-1 month'));
  273. $monthintegral = UserIntegralModel::where(['monthtime' => $monthtime, 'userid' => $userid])->sum('intvalue');
  274. $userparam = UserParamModel::where(1)->findOrEmpty();
  275. page_result(0, "", [
  276. 'user' => $user,
  277. 'monthintegral' => $monthintegral,
  278. 'userparam' => $userparam,
  279. ]);
  280. }
  281. /**
  282. * 我的钱包
  283. */
  284. public function myBag()
  285. {
  286. $userid = input('userid/d', 0);
  287. $user = UserModel::findOrEmpty($userid);
  288. if ($user->isEmpty()) {
  289. page_result(1, "用户信息不存在。");
  290. }
  291. $month_time = date('Ym', strtotime('-1 month'));
  292. $month_balance = UserBalanceModel::where(['monthtime' => $month_time, 'userid' => $userid])->sum('value');
  293. page_result(0, "", [
  294. 'user' => $user,
  295. 'month_balance' => $month_balance,
  296. ]);
  297. }
  298. public function getRecharge()
  299. {
  300. $userid = input('userid/d', 0);
  301. $user = UserModel::findOrEmpty($userid);
  302. if ($user->isEmpty()) {
  303. page_result(1, "用户信息不存在。");
  304. }
  305. $userauths = UserAuthsModel::where(['userid' => $userid, 'identitytype' => "weixin"])->findOrEmpty();
  306. if ($userauths->isEmpty()) {
  307. page_result(1, "请先授权微信号登录。");
  308. }
  309. $userparam = UserParamModel::where(1)->findOrEmpty();
  310. if ($userparam->isEmpty() || $userparam->intrecharge <= 0) {
  311. page_result(1, "禁止用户充值。");
  312. }
  313. $moneyvalue = input('moneyvalue/f', 0.00);
  314. $intvalue = intval($moneyvalue * $userparam->intrecharge);
  315. if ($moneyvalue <= 0.00 || $intvalue <= 0) {
  316. page_result(1, "充值积分额不能小于0。");
  317. }
  318. $integral = new UserIntegralModel;
  319. $integral->save([
  320. 'userid' => $userid,
  321. 'title' => "用户积分充值(¥" . $moneyvalue . "元" . $intvalue . "积分)",
  322. 'intvalue' => $intvalue,
  323. 'intmoney' => $moneyvalue,
  324. 'onlycontent' => "",
  325. 'remark' => "R" . date("YmdHis") . mt_rand(100000, 999999),
  326. 'itype' => 2,
  327. 'status' => 1,
  328. 'createtime' => time(),
  329. 'yeartime' => date('Y'),
  330. 'monthtime' => date('Ym'),
  331. ]);
  332. $payData = [
  333. 'body' => "用户积分充值(¥" . $moneyvalue . "元" . $intvalue . "积分)",
  334. 'out_trade_no' => $integral->remark,
  335. 'total_fee' => intval($moneyvalue * 100),
  336. 'openid' => $userauths->identifier,
  337. ];
  338. $wxpay = new WxPay();
  339. $info = $wxpay->wxpay_unified_order($payData);
  340. if ($info['status'] == 1) {
  341. $payinfo = $wxpay->get_jsapi_param($info['data']['prepay_id']);
  342. page_result(0, "", ['payinfo' => $payinfo]);
  343. } else {
  344. page_result(1, $info['data']);
  345. }
  346. }
  347. public function getMoney()
  348. {
  349. $userid = input('userid/d', 0);
  350. $user = UserModel::findOrEmpty($userid);
  351. if ($user->isEmpty()) {
  352. page_result(1, "用户信息不存在。");
  353. }
  354. $bankcard = $user->bankcard;
  355. if (empty($bankcard) || empty($bankcard['number'])) {
  356. page_result(1, "请先完善个人银行卡信息。");
  357. }
  358. $oldintegral = UserIntegralModel::where(['userid' => $userid, 'itype' => 3, 'status' => 1])->findOrEmpty();
  359. if (!$oldintegral->isEmpty()) {
  360. page_result(1, "你已存在未处理的兑现申请,请耐心等待客服处理,处理完成后方可再次提交兑现申请。");
  361. }
  362. $userparam = UserParamModel::where(1)->findOrEmpty();
  363. if ($userparam->isEmpty() || $userparam->inttomoney <= 0) {
  364. page_result(1, "禁止用户提现。");
  365. }
  366. $intvalue = input('intvalue/d', 0);
  367. if ($intvalue <= 0 || $intvalue < intval($userparam->minintegral)) {
  368. page_result(1, "兑现积分值要大于" . $userparam->minintegral . "。");
  369. }
  370. if ($intvalue > intval($user->integral)) {
  371. page_result(1, "兑现积分值不能大于当前可用积分。");
  372. }
  373. $integral = new UserIntegralModel;
  374. $intmoney = sprintf("%.2f", floatval($intvalue / $userparam->inttomoney));
  375. $integral->save([
  376. 'userid' => $userid,
  377. 'title' => "用户积分兑现",
  378. 'intvalue' => 0 - $intvalue,
  379. 'intmoney' => $intmoney,
  380. 'onlycontent' => "",
  381. 'remark' => "用户积分兑现现金",
  382. 'itype' => 3,
  383. 'status' => 1,
  384. 'createtime' => time(),
  385. 'yeartime' => date('Y'),
  386. 'monthtime' => date('Ym'),
  387. ]);
  388. $hasintegral = intval($user->integral) - $intvalue;
  389. $user->save([
  390. 'integral' => $hasintegral,
  391. ]);
  392. page_result(0, "", [
  393. 'user' => $user,
  394. ]);
  395. }
  396. public function getIntegral()
  397. {
  398. $ppage = input('ppage/d', 1);
  399. $psize = input('psize/d', 20);
  400. $userid = input('userid/d', 0);
  401. if ($userid != 0) {
  402. $map[] = ['userid', '=', $userid];
  403. }
  404. $plist = UserIntegralModel::where($map)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select()->append(['itype_text', 'status_text']);
  405. page_result(0, "", [
  406. 'plist' => $plist,
  407. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  408. ]);
  409. }
  410. public function getBag()
  411. {
  412. $ppage = input('ppage/d', 1);
  413. $psize = input('psize/d', 20);
  414. $userid = input('userid/d', 0);
  415. if ($userid != 0) {
  416. $map[] = ['userid', '=', $userid];
  417. }
  418. $plist = UserBalanceModel::where($map)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select();
  419. page_result(0, "", [
  420. 'plist' => $plist,
  421. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  422. ]);
  423. }
  424. // 银行卡信息
  425. public function editUserBankinfo()
  426. {
  427. $userid = input('userid/d', 0);
  428. $user = UserModel::findOrEmpty($userid);
  429. if ($user->isEmpty()) {
  430. page_result(1, "用户信息不存在");
  431. }
  432. $openbank = input('openbank/s', "");
  433. $account = input('account/s', "");
  434. $number = input('number/s', "");
  435. $bankcard = [
  436. 'openbank' => $openbank,
  437. 'account' => $account,
  438. 'number' => $number,
  439. ];
  440. $user->save(['bankcard' => $bankcard]);
  441. page_result(0, "", $user);
  442. }
  443. // 个人信息
  444. public function editUserInfo()
  445. {
  446. $userid = input('userid/d');
  447. $user = UserModel::findOrEmpty($userid);
  448. if ($user->isEmpty()) {
  449. page_result(1, "用户信息不存在");
  450. }
  451. $field = input('field/s');
  452. $value = input('value');
  453. $field_array = ['emp_time', 'com_cate', 'work_place'];
  454. if (in_array($field, $field_array)) {
  455. $value = json_decode($value, true);
  456. }
  457. $user->$field = $value;
  458. $user->save();
  459. page_result(0, "", $user);
  460. }
  461. public function perfectUserInfo()
  462. {
  463. $userid = input('userid/d');
  464. $skill_cert = input('skill_cert/a', []);
  465. $user = UserModel::findOrEmpty($userid);
  466. if ($user->isEmpty()) {
  467. page_result(1, "用户信息不存在");
  468. }
  469. $user['skill_cert'] = $skill_cert;
  470. if ($user['is_perfect'] == 2) {
  471. $user->is_perfect = 1;
  472. //发放佣金
  473. $balanceService = new BalanceService();
  474. $balanceService->add($userid, BalanceService::IMPROVERESUME);
  475. }
  476. $user->save();
  477. /*$integralService = new IntegralService();
  478. $integralService->add($userid, IntegralService::IMPROVERESUME);*/
  479. page_result();
  480. }
  481. // 身份证认证
  482. public function editIdCard()
  483. {
  484. $userid = input('userid/d');
  485. $user = UserModel::findOrEmpty($userid);
  486. if ($user->isEmpty()) {
  487. page_result(1, "用户信息不存在");
  488. }
  489. $data = input('data');
  490. if (is_string($data)) {
  491. $data = json_decode($data, true);
  492. }
  493. $fileds = ['nickname', 'idcard', 'gender', 'birthday'];
  494. foreach ($data as $k => $v) {
  495. if (in_array($k, $fileds)) {
  496. $user->$k = $v;
  497. }
  498. }
  499. $user->save();
  500. page_result(0, "", $user);
  501. }
  502. // 提交实名认证审核
  503. public function setAuthStatus()
  504. {
  505. $userid = input('userid/d');
  506. $user = UserModel::findOrEmpty($userid);
  507. if ($user->isEmpty()) {
  508. page_result(1, "用户信息不存在");
  509. }
  510. if (empty($user->idcardzpic)) {
  511. page_result(1, "请上传上传身份证(头像页)照。");
  512. }
  513. if (empty($user->idcardfpic)) {
  514. page_result(1, "请上传上传身份证(国徽页)照。");
  515. }
  516. if (empty($user->idcard)) {
  517. page_result(1, "请填写身份证号。");
  518. }
  519. if (isIdCard($user->idcard) == false) {
  520. page_result(1, "请填写正确的身份证号。");
  521. }
  522. if (empty($user->nickname)) {
  523. page_result(1, "请填写姓名。");
  524. }
  525. $user->save([
  526. 'authstatus' => 2,
  527. 'gender' => get_sex($user->idcard),
  528. 'birthday' => get_birthday($user->idcard),
  529. ]);
  530. $sms = new SmsService();
  531. $sms->examineSend('idcard_examine', [$userid]);
  532. page_result(0, "", $user);
  533. }
  534. public function jobintention_lst()
  535. {
  536. $plist = UserWill::select();
  537. page_result(0, "", [
  538. 'plist' => $plist,
  539. ]);
  540. }
  541. public function getauthimg()
  542. {
  543. $image_url = "//" . $_SERVER['SERVER_NAME'];
  544. $head1 = $image_url . "/static/images/head1.png";
  545. $head2 = $image_url . "/static/images/head2.png";
  546. page_result(0, "", [
  547. 'head1' => $head1,
  548. 'head2' => $head2,
  549. ]);
  550. }
  551. public function gettipnum()
  552. {
  553. $userid = input('userid/d');
  554. $comjobs_num = ComjobsLogModel::where('userid', $userid)->whereIn('status', [2, 3, 4])->count();
  555. $invite_num = ResumeInvite::where('userid', $userid)->where('status', 1)->count();
  556. page_result(0, "", [
  557. 'comjobs_num' => $comjobs_num,
  558. 'invite_num' => $invite_num,
  559. ]);
  560. }
  561. public function signin()
  562. {
  563. $userid = input('userid/d');
  564. $check = UserIntegralModel::where('createtime', '>=', strtotime(date('Y-m-d')))
  565. ->where('createtime', '<=', strtotime(date('Y-m-d 23:59:59')))
  566. ->where('userid', $userid)
  567. ->where('itype', 9)
  568. ->find();
  569. if (!empty($check)) {
  570. page_result(1, "今日已签到");
  571. }
  572. $integralService = new IntegralService();
  573. $integralService->add($userid, IntegralService::SINGIN, 9);
  574. page_result(0, "");
  575. }
  576. public function task()
  577. {
  578. $userid = input('userid/d');
  579. $param = UserParamModel::field(['improveresume', 'certification', 'entry', 'signin', 'sharejob', 'sharejobnum', 'taskimage'])->where(1)->find();
  580. $share_num = UserIntegralModel::where('createtime', '>=', strtotime(date('Y-m-d')))
  581. ->where('createtime', '<=', strtotime(date('Y-m-d 23:59:59')))
  582. ->where('userid', $userid)
  583. ->where('itype', 10)
  584. ->count();
  585. $check = UserIntegralModel::where('createtime', '>=', strtotime(date('Y-m-d')))
  586. ->where('createtime', '<=', strtotime(date('Y-m-d 23:59:59')))
  587. ->where('userid', $userid)
  588. ->where('itype', 9)
  589. ->find();
  590. $is_signin = empty($check) ? 2 : 1;
  591. page_result(0, "", ['tasklist' => $param, 'share_num' => $share_num, 'is_signin' => $is_signin]);
  592. }
  593. public function getmoneylist()
  594. {
  595. $ppage = input('ppage/d', 1);
  596. $psize = input('psize/d', 20);
  597. $userid = input('userid/d', 0);
  598. if ($userid != 0) {
  599. $map[] = ['userid', '=', $userid];
  600. }
  601. $plist = UserGetmoneyLogModel::where($map)->order(['id' => 'desc'])->page($ppage)->limit($psize)->select()->append(['itype_text', 'status_text']);
  602. page_result(0, "", [
  603. 'plist' => $plist,
  604. 'pstatus' => $psize > count($plist) ? 'noMore' : 'more',
  605. ]);
  606. }
  607. public function getmoneyparam()
  608. {
  609. $param = UserParamModel::where(1)->find();
  610. if (empty($param)) {
  611. $param['getmoney'] = [];
  612. }
  613. page_result(0, "", ['getmoney' => $param['getmoney']]);
  614. }
  615. public function cash()
  616. {
  617. $index = input('index/d', 1);
  618. $userid = input('userid/d', 0);
  619. //获取配置参数
  620. $param = UserParamModel::where(1)->find();
  621. if (empty($param) || empty($param['getmoney'])) {
  622. page_result(1, "参数未配置");
  623. }
  624. if (empty($param['getmoney'][$index])) {
  625. page_result(1, "参数错误");
  626. }
  627. $cash = $param['getmoney'][$index];
  628. //满足提现条件
  629. $user = UserModel::findOrEmpty($userid);
  630. if ($user['balance'] < $cash['money']) {
  631. page_result(1, "余额不足");
  632. }
  633. $where = [
  634. ['userid', '=', $userid],
  635. ['money', '=', $cash['money']],
  636. ];
  637. if ($cash['type'] == 2) {
  638. $where[] = ['createtime', '>=', strtotime(date('Y-m-01'))];
  639. }
  640. $cash_count = UserGetmoneyLog::where($where)->count();
  641. if ($cash_count >= $cash['num']) {
  642. page_result(1, "超过次数限制");
  643. }
  644. //提现
  645. $batch_name = '晋江人力小程序用户提现';//转账的名称
  646. $out_trade_no = 'jfhd' . getUniId();//单号
  647. $openid = UserAuthsModel::where('userid', $userid)->where('identitytype', 'weixin')->value('identifier');//用户openid
  648. if (empty($openid)) {
  649. page_result(1, "登录信息有误,请重新登录");
  650. }
  651. $detail = [];
  652. $transfers = new WechatTransfers();
  653. $detail[] = $transfers->getDetailList($out_trade_no, $cash['money'], $batch_name, $openid);
  654. $res = $transfers->transfers($batch_name, $detail);
  655. Log::record('用户提现:' . json_encode($res));
  656. //记录
  657. if (!empty($res['batch_id'])) {
  658. UserGetmoneyLog::create([
  659. 'userid' => $userid,
  660. 'out_trade_no' => $out_trade_no,
  661. 'money' => $cash['money'],
  662. 'remark' => '小程序用户提现',
  663. 'createtime' => time(),
  664. ]);
  665. $balance = new UserBalanceModel();
  666. $balance->save([
  667. 'userid' => $userid,
  668. 'title' => "用户提现",
  669. 'origin_value' => $user->balance,
  670. 'value' => $cash['money'],
  671. 'remark' => "余额提现",
  672. 'status' => 2,
  673. 'createtime' => time(),
  674. 'yeartime' => date("Y"),
  675. 'monthtime' => date("Ym"),
  676. ]);
  677. $user->balance -= $cash['money'];
  678. $user->save();
  679. }
  680. page_result(0, "提现成功", $user);
  681. }
  682. public function feedback()
  683. {
  684. $param = input('param.');
  685. $param['createtime'] = time();
  686. Feedback::create($param);
  687. page_result(0, "提交成功");
  688. }
  689. }