My.php 24 KB

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