UserSignController.class.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  1. <?php
  2. namespace bibidd\Controller;
  3. use Bibidd\Controller\CommonBaseController;
  4. class UserSignController extends CommonBaseController
  5. {
  6. /**
  7. * 查询用户签到信息
  8. * @return void
  9. */
  10. public function query_sign_info()
  11. {
  12. $this->addHeaders(); //添加头部请求
  13. $this->checkUserIsExist($_POST['uid']); //检查用户
  14. $uid= $_POST['uid'];
  15. $last_time = date('Y-m-d 00:00:00');
  16. $data_list = M("user_sign")->where("user_id = '$uid' AND last_sign='$last_time'")->find();
  17. if(empty($data_list))
  18. {
  19. $data_list = M("user_sign")->where("user_id = '$uid' AND TO_DAYS(last_sign)=TO_DAYS(NOW()) - 1")->find();
  20. }
  21. if(null != $data_list && $data_list['lianxu_days']>=15)
  22. {
  23. //连续15次签到则可以修改兑换
  24. $data_list['isFull'] = 'true';
  25. }
  26. //添加今天是否签
  27. $data['isSignTody'] = 'no';
  28. if(!empty($data_list['last_sign']) && $data_list['last_sign']==$last_time)
  29. {
  30. $data['isSignTody'] = 'yes';
  31. }
  32. $data['code'] = '200';
  33. $data['message'] = 'ok';
  34. $data['data'] = $data_list;
  35. echo json_encode($data);
  36. }
  37. public function is_yongjiu_huiyuan()
  38. {
  39. $this->addHeaders(); //添加头部请求
  40. $userInfo = $this->checkUserIsExist($_POST['uid']); //检查用户
  41. $uid= $userInfo['id'];
  42. $huiyuan_time_list = M("user_info")->where("id=$uid")->field("vip_over_time,vip_yn,gold_coins_number")->find();
  43. $huiyuan_time = $huiyuan_time_list['vip_over_time'];
  44. $huiyuan_type = $huiyuan_time_list['vip_yn'];
  45. $vip_info['isVip']=true;
  46. $vip_info['isYongjiu']=true;
  47. if(empty($huiyuan_type)||$huiyuan_type==0)
  48. {
  49. $vip_info['isVip']=false;
  50. }
  51. $now_time = time()+(3600*24*365);//大于追加一年则是永久会员
  52. if(empty($huiyuan_time)||$huiyuan_time<$now_time)
  53. {
  54. $vip_info['isYongjiu']=false;
  55. }
  56. $data['code'] = '200';
  57. $data['message'] = 'ok';
  58. $data['data'] = $vip_info;
  59. echo json_encode($data);
  60. }
  61. /**
  62. * 签到,一个批次15天,需连续否则清0
  63. * @return void
  64. */
  65. public function sign()
  66. {
  67. $this->addHeaders(); //添加头部请求
  68. $userInfo = $this->checkUserIsExist($_POST['uid']); //检查用户
  69. $uid= $userInfo['id'];
  70. $view_num = $userInfo['views_num']; //看片次数
  71. //判断是否是永久会员
  72. $huiyuan_time_list = M("user_info")->where("id=$uid")->field("vip_over_time,vip_yn,gold_coins_number")->find();
  73. $huiyuan_time = $huiyuan_time_list['vip_over_time'];
  74. $huiyuan_type = $huiyuan_time_list['vip_yn'];
  75. $mess="此福利仅对<br>9169永久会员开放";
  76. if(empty($huiyuan_type)||$huiyuan_type==0)
  77. {
  78. $this->returnDataAndSendMsg($mess);
  79. die();
  80. }
  81. $now_time = time()+(3600*24*365);//大于追加一年则是永久会员
  82. if(empty($huiyuan_time)||$huiyuan_time<$now_time)
  83. {
  84. $this->returnDataAndSendMsg($mess);
  85. die();
  86. }
  87. //检查是否被封号
  88. $check_jf = M("user_sign_fj")->where("uid = '$uid'")->find();
  89. if(!empty($check_jf))
  90. {
  91. $this->returnDataAndSendMsg("您涉及作弊已被封禁");
  92. die();
  93. }
  94. //检查用户是否被暂停兑换
  95. if($userInfo['zb_type']!='0' && $userInfo['zb_type']!='2')
  96. {
  97. $this->returnDataAndSendMsg("已被暂停兑换.");
  98. die();
  99. }
  100. //查询昨天是否有签单记录,判断连续性
  101. $user_sign = M("user_sign")->where("user_id = '$uid' AND TO_DAYS(last_sign)=TO_DAYS(NOW()) - 1")->order("last_sign DESC")->find();
  102. if(empty($user_sign))
  103. {
  104. //没有连续,或没有签到记录
  105. $rs = $this->addNewSign($uid);
  106. $data['code'] = '200';
  107. $data['message'] = 'ok';
  108. $data['data'] = $rs;
  109. echo json_encode($data);
  110. die();
  111. }
  112. //连续签到天数
  113. $lianxu_days = $user_sign['lianxu_days'];
  114. if($lianxu_days>=15)
  115. {
  116. //没有连续,或没有签到记录
  117. if($user_sign["duihuan_status"]==0)
  118. {
  119. //补全逻辑,此处代码可以不用
  120. $user_sign["duihuan_status"]=1;
  121. $user_sign["lianxu_money"]=100;
  122. $user_sign['duihuan_code']=$this->random_str(4).mt_rand(1000, 9999);
  123. M("user_sign")->save($user_sign);
  124. }
  125. $rs = $this->addNewSign($uid);
  126. $data['code'] = '200';
  127. $data['message'] = 'ok';
  128. $data['data'] = $rs;
  129. echo json_encode($data);
  130. die();
  131. }
  132. //封号处理,其累计看片总数量≤10 封号
  133. // if($view_num<=10 && $lianxu_days>=7)
  134. // {
  135. // $fenhao_info['uid'] = $uid;
  136. // $fenhao_info['name'] = $userInfo['name'];
  137. // $fenhao_info['fj_date'] = date('Y-m-d H:i:s');
  138. // $fenhao_info['user_ip'] = $userInfo['userip'];
  139. // $fenhao_info['desc'] = "连续签到大于等于7,看片数量小于10";
  140. // M("user_sign_fj")->add($fenhao_info);
  141. //
  142. // //关联封号,相同IP切看片数量小于5的用户
  143. // $user_ip = $userInfo['userip'];
  144. // $user_list = M("user_info")->where("userip = '$user_ip' AND views_num<=5 AND id != '$uid'")->select();
  145. // if(!empty($user_list) && count($user_list)>=5)
  146. // {
  147. // foreach ($user_list as $key => $value)
  148. // {
  149. // $fenhao_info['uid'] = $value['id'];
  150. // $fenhao_info['name'] = $value['name'];
  151. // $fenhao_info['fj_date'] = date('Y-m-d H:i:s');
  152. // $fenhao_info['user_ip'] = $value['userip'];
  153. // $fenhao_info['desc'] = "关联封号";
  154. // M("user_sign_fj")->add($fenhao_info);
  155. // }
  156. // }
  157. //
  158. // $this->returnDataAndSendMsg("您涉及作弊已被封禁");
  159. // die();
  160. // }
  161. $id = $user_sign["id"];
  162. $user_sign['last_sign']= date('Y-m-d 00:00:00');
  163. $user_sign['lianxu_money']+=6.6 ;
  164. $user_sign['lianxu_days']+=1;
  165. if($user_sign['lianxu_days']>=15)
  166. {
  167. $user_sign["duihuan_status"]=1;
  168. $user_sign["lianxu_money"]=100;
  169. $user_sign['duihuan_code']=$this->random_str(4).mt_rand(1000, 9999);
  170. }
  171. $rs = M("user_sign")->where("id=$id")->save($user_sign);
  172. $data['code'] = '200';
  173. $data['message'] = 'ok';
  174. $data['data'] = $rs;
  175. echo json_encode($data);
  176. }
  177. /**
  178. * 判断用户是否绑定了手机号码
  179. * @return void
  180. */
  181. public function is_bing_phone()
  182. {
  183. $this->addHeaders(); //添加头部请求
  184. $this->checkUserIsExist($_POST['uid']); //检查用户
  185. $uid= $_POST['uid'];
  186. $data['code'] = '200';
  187. $data['message'] = 'ok';
  188. $data['data'] = "yes";
  189. //判断用户是否绑定手机
  190. $user_info = M("user_info")->where("id = '$uid'")->find();
  191. if(null == $user_info || empty($user_info['tel_phone']))
  192. {
  193. $data['data'] = "no";
  194. }
  195. echo json_encode($data);
  196. }
  197. /**
  198. * 判断用户是绑定智博账号
  199. * @return void
  200. */
  201. public function is_bing_zhibo_account()
  202. {
  203. $this->addHeaders(); //添加头部请求
  204. $this->checkUserIsExist($_POST['uid']); //检查用户
  205. $uid= $_POST['uid'];
  206. $data['code'] = '200';
  207. $data['message'] = 'ok';
  208. $data['data'] = "yes";
  209. //判断用户是否绑定智博账号
  210. $user_info = M("user_info")->where("id = '$uid'")->find();
  211. if(null == $user_info || empty($user_info['zhibo_account']))
  212. {
  213. $data['data'] = "no";
  214. }
  215. echo json_encode($data);
  216. }
  217. /**
  218. * 添加最新签到数据
  219. * @param $uid
  220. * @return void
  221. */
  222. private function addNewSign($uid)
  223. {
  224. $last_time = date('Y-m-d 00:00:00');
  225. //跳过重复签到
  226. $tmp_info = M("user_sign")->where("user_id = '$uid' AND last_sign='$last_time'")->find();
  227. if(!empty($tmp_info))
  228. {
  229. return 0;
  230. }
  231. $user_sign['user_id']=$uid;
  232. $user_sign['lianxu_days']=1;
  233. $user_sign['lianxu_money']=6.6;
  234. $user_sign['last_sign']=$last_time;
  235. return M("user_sign")->add($user_sign);
  236. }
  237. /**
  238. *
  239. * 获取签到验证码
  240. * @return void
  241. */
  242. public function getSignSms()
  243. {
  244. $this->addHeaders(); //添加头部请求
  245. $this->checkUserIsExist($_POST['uid']); //检查用户
  246. $telPhone = $_POST['telPhone'];
  247. $uid= $_POST['uid'];
  248. if(empty($telPhone))
  249. {
  250. $this->returnDataAndSendMsg("手机号码不能为空.");
  251. die();
  252. }
  253. //这几个前缀的手机号是虚拟号码
  254. $phoneDuan=array("162","165","167","170","171");
  255. if (in_array(substr($telPhone,0,3),$phoneDuan)) {
  256. $this->returnDataAndSendMsg("手机号格式错误.");
  257. die;
  258. }
  259. $user_info = M("user_info")->where("tel_phone = '$telPhone' AND id!='$uid'")->find();
  260. if(!empty($user_info))
  261. {
  262. $this->returnDataAndSendMsg("该手机号码已被其他用户绑定,请更换号码.");
  263. die();
  264. }
  265. //判断重复发送
  266. $sms_info_check = M("sms")->where("tel_phone='$telPhone' AND type_='用户信息绑定' AND create_at > NOW() - interval sms_valid_time second")->find();
  267. if(!empty($sms_info_check))
  268. {
  269. $this->returnDataAndSendMsg("在60秒内请勿重复发送.");
  270. die();
  271. }
  272. //下发短信
  273. $random_number = mt_rand(100000, 999999);
  274. $rs = $this->sendMessage($telPhone,$random_number);
  275. //存库
  276. $sms_info['tel_phone']=$telPhone;
  277. $sms_info['type_']="用户信息绑定";
  278. $sms_info['sms_code']=$random_number;
  279. $sms_info['sms_valid_time']=60;
  280. $sms_info['create_at']=date('Y-m-d H:i:s');
  281. M("sms")->add($sms_info);
  282. $data['code'] = '200';
  283. $data['message'] = 'ok';
  284. echo json_encode($data);
  285. }
  286. /**
  287. * 绑定
  288. * @return void
  289. */
  290. public function binding_phone()
  291. {
  292. $this->addHeaders(); //添加头部请求
  293. $this->checkUserIsExist($_POST['uid']); //检查用户
  294. $telPhone = $_POST['telPhone'];
  295. $smsNumber= $_POST['smsNumber']; //智博账号
  296. $uid= $_POST['uid'];
  297. if(empty($telPhone))
  298. {
  299. $this->returnDataAndSendMsg("手机号码不能为空.");
  300. die();
  301. }
  302. if(empty($smsNumber))
  303. {
  304. $this->returnDataAndSendMsg("短信验证码不能为空.");
  305. die();
  306. }
  307. //验证短信
  308. $sms_info_check = M("sms")->where("sms_code='$smsNumber' AND create_at > NOW() - interval sms_valid_time second")->find();
  309. if(empty($sms_info_check) || $sms_info_check['sms_code']!=$smsNumber)
  310. {
  311. $this->returnDataAndSendMsg("短信验证码过期或输入有误.");
  312. die();
  313. }
  314. $user_info = M("user_info")->where("tel_phone = '$telPhone' AND id!='$uid'")->find();
  315. if(!empty($user_info))
  316. {
  317. $this->returnDataAndSendMsg("该手机号码已被其他用户绑定,请更换号码.");
  318. die();
  319. }
  320. $user_info['tel_phone'] = $telPhone;
  321. $rs = M("user_info")->where("id='$uid'")->save($user_info);
  322. $data['code'] = '200';
  323. $data['message'] = 'ok';
  324. $data['data'] = $rs;
  325. echo json_encode($data);
  326. }
  327. public function binding_zhibo_account()
  328. {
  329. $this->addHeaders(); //添加头部请求
  330. $this->checkUserIsExist($_POST['uid']); //检查用户
  331. $zhibo_account= $_POST['zhibo_account']; //智博账号
  332. $uid= $_POST['uid'];
  333. if(empty($zhibo_account))
  334. {
  335. $this->returnDataAndSendMsg("智博账号不能为空.");
  336. die();
  337. }
  338. $user_info = M("user_info")->where("id!='$uid' AND zhibo_account = '$zhibo_account'")->find();
  339. if(!empty($user_info))
  340. {
  341. $this->returnDataAndSendMsg("已被其他用户绑定,请更换.");
  342. die();
  343. }
  344. $user_info['zhibo_account'] = $zhibo_account;
  345. $rs = M("user_info")->where("id='$uid'")->save($user_info);
  346. $data['code'] = '200';
  347. $data['message'] = 'ok';
  348. $data['data'] = $rs;
  349. echo json_encode($data);
  350. }
  351. /**
  352. * 查询所有
  353. * @return void
  354. */
  355. public function query_sign_list()
  356. {
  357. $this->addHeaders(); //添加头部请求
  358. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  359. $uid= $_POST['uid'];
  360. $page = $_POST['page'];
  361. //判断用户是否绑定手机
  362. // if(null == $user_info || empty($user_info['tel_phone']))
  363. // {
  364. // $this->returnDataAndSendMsg("请绑定手机号码后查看.");
  365. // die();
  366. // }
  367. $one_size = 30; //每頁30行記錄
  368. $page_one = ($page - 1) * $one_size;
  369. //AND duihuan_status!=0
  370. $data_list = M("user_sign")->where("user_id = '$uid'")->LIMIT($page_one, $one_size)->order("duihuan_status ASC")->select();
  371. $data['code'] = '200';
  372. $data['message'] = 'ok';
  373. $data['all_num'] =M("user_sign")->where("user_id = '$uid' AND duihuan_status!=0")->count();
  374. $data['data'] = $data_list;
  375. $data['zhiboAccount'] = $user_info['zhibo_account'];
  376. echo json_encode($data);
  377. }
  378. /**
  379. * 兑换
  380. * @return void
  381. */
  382. public function exchange()
  383. {
  384. $this->addHeaders(); //添加头部请求
  385. $this->checkUserIsExist($_POST['uid']); //检查用户
  386. $id= $_POST['id'];
  387. $uid = $_POST['uid'];
  388. //判断用户是否绑定智博账号
  389. $user_info = M("user_info")->where("id = '$uid'")->find();
  390. if(null == $user_info || empty($user_info['zhibo_account']))
  391. {
  392. $this->returnDataAndSendMsg("请绑定智博账号后在兑换.");
  393. die();
  394. }
  395. //检查用户是否被暂停兑换
  396. if($user_info['zb_type']!='0' && $user_info['zb_type']!='2')
  397. {
  398. $this->returnDataAndSendMsg("已被暂停兑换.");
  399. die();
  400. }
  401. //兑换检查
  402. $check_info = M("user_sign")->where("id = '$id'")->find();
  403. if(empty($check_info) || $check_info['user_id']!=$uid)
  404. {
  405. $this->returnDataAndSendMsg("非法操作.");
  406. die();
  407. }
  408. if(empty($check_info['duihuan_code']) || $check_info['lianxu_days']<15 )
  409. {
  410. $this->returnDataAndSendMsg("暂不满足兑换条件.");
  411. die();
  412. }
  413. //重复兑换检查
  414. if($check_info["duihuan_status"]>=2)
  415. {
  416. $this->returnDataAndSendMsg("请勿重复兑换.");
  417. die();
  418. }
  419. $sign_info['duihuan_status']=2;
  420. $sign_info['duihuan_time']=date('Y-m-d H:i:s');
  421. //2.6添加IP地址
  422. $sign_info['ip']=$this->getIp();
  423. $user_weizhi=$this->get_user_ip_info($sign_info['ip']);
  424. if($user_weizhi['code']=="200" && !empty($user_weizhi['data']['region'])){
  425. $sign_info['ip_addr']=$user_weizhi['data']['region']."省".$user_weizhi['data']['city']."市 ".$user_weizhi['data']['isp'];
  426. }else{
  427. $sign_info['ip_addr']="暂无";
  428. }
  429. $data_list = M("user_sign")->where("id = '$id'")->save($sign_info);
  430. $data['code'] = '200';
  431. $data['message'] = 'ok';
  432. $data['data'] = $data_list;
  433. echo json_encode($data);
  434. //发送机器人
  435. //$text = "彩金兑换 🏆🏆🏆\n"."9169用户: ".$user_info['name']."\n"."智博账号: ".$user_info['zhibo_account']."\n"."兑换100智博彩金"."\n\n请尽快给用户加彩金";
  436. // 11 22 用户ID : 6199511960
  437. //群id
  438. //$this->send_msg_to_telegram("6543542631:AAGRvYWAXAk4VV45yEHtQY3mG8h13MhLT-k","-4190639794",$text);
  439. }
  440. /**
  441. * 清空用户级别暂停兑换
  442. * @return void
  443. */
  444. public function clear()
  445. {
  446. $this->addHeaders(); //添加头部请求
  447. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  448. $id = $user_info['id'];
  449. $user_info_tmp['zb_type']='2';
  450. $rs = M("user_info")->where("id='$id'")->save($user_info_tmp);
  451. $data['code'] = '200';
  452. $data['message'] = 'ok';
  453. $data['data'] = $rs;
  454. echo json_encode($data);
  455. }
  456. }