My.php 14 KB

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