GameSignController.class.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?php
  2. namespace bibidd\Controller;
  3. use Bibidd\Controller\CommonBaseController;
  4. /**
  5. * 游戏签到
  6. */
  7. class GameSignController extends CommonBaseController
  8. {
  9. /**
  10. * 获取签到月签到
  11. * @return void
  12. */
  13. public function get_month_sign_list()
  14. {
  15. $this->addHeaders(); //添加头部请求
  16. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  17. $uid = $user_info['id']; //用户id
  18. $month = date("Y-n");
  19. $sign_list = M("game_user_sign")
  20. ->field("uid,month,day,CASE WHEN sign=0 AND day>= CURDATE() THEN 2 ELSE sign END AS sign,award")
  21. ->where("uid='$uid' AND month='$month'")
  22. ->order("id ASC")
  23. ->select();
  24. if(empty($sign_list))
  25. {
  26. //生成当月签到信息
  27. $current_month_dasy = date("t");//当前月天数
  28. $today = date("d");
  29. $day_int = intval($today);
  30. $insert_arry = array();
  31. for($i=1;$i<=$current_month_dasy;$i++)
  32. {
  33. $add_info['uid']=$uid;
  34. $add_info['month']=$month;
  35. $add_info['day']= $month.'-'.$i;
  36. $add_info['sign']=0;
  37. array_push($insert_arry,$add_info);
  38. if($day_int<=$i)
  39. {
  40. $add_info['sign']=2;
  41. }
  42. array_push($sign_list,$add_info);
  43. }//end for
  44. M("game_user_sign")->addAll($insert_arry);
  45. }
  46. $data['code'] = '200';
  47. $data['message'] = 'ok';
  48. $data['today'] = date("Y-n-j");
  49. $data['data'] = $sign_list;
  50. echo json_encode($data);
  51. }
  52. /**
  53. * 签到
  54. * @return void
  55. */
  56. public function sign()
  57. {
  58. $this->addHeaders(); //添加头部请求
  59. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  60. $uid = $user_info['id']; //用户id
  61. $user_coins = $user_info['gold_coins_number'];
  62. $day = date("Y-n-j");
  63. //$day = '2025-1-27';
  64. $is_sign = M("game_user_sign")->where("uid='$uid' AND day='$day'")->getField("sign");
  65. if($is_sign==1)
  66. {
  67. $this->returnDataAndSendMsg("重复签到");
  68. die();
  69. }
  70. $rs = M("game_user_sign")->where("uid='$uid' AND day='$day' AND sign=0")->setField("sign",1);
  71. if(!$rs)
  72. {
  73. $this->returnDataAndSendMsg("签到失败");
  74. die();
  75. }
  76. //累计7天+1金
  77. //累计14天+2金
  78. //累计28天+3金
  79. $month = date("Y-n");
  80. $days = M("game_user_sign")->field("id")->where("uid='$uid' AND month='$month' AND sign=1")->count();
  81. $award = M("game_user_sign")->where("uid='$uid' AND month='$month'")->getField('award');
  82. if($days>=7 && $award<1)
  83. {
  84. $rs = M("user_info")->where("id='$uid' AND gold_coins_number=$user_coins")->setInc("gold_coins_number",1);
  85. $rs = M("game_user_sign")->where("uid='$uid' AND month='$month'")->setField("award",1);
  86. }else if($days>=14 && $award<2)
  87. {
  88. $rs = M("user_info")->where("id='$uid' AND gold_coins_number=$user_coins")->setInc("gold_coins_number",2);
  89. $rs = M("game_user_sign")->where("uid='$uid' AND month='$month'")->setField("award",2);
  90. }else if($days>=28 && $award<3)
  91. {
  92. $rs = M("user_info")->where("id='$uid' AND gold_coins_number=$user_coins")->setInc("gold_coins_number",3);
  93. $rs = M("game_user_sign")->where("uid='$uid' AND month='$month'")->setField("award",3);
  94. }
  95. $data['code'] = '200';
  96. $data['message'] = 'ok';
  97. $data['data'] = $rs;
  98. echo json_encode($data);
  99. }
  100. /**
  101. * 领取2金币签到
  102. * @return void
  103. */
  104. public function draw_2_coins()
  105. {
  106. $this->addHeaders(); //添加头部请求
  107. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  108. $uid = $user_info['id']; //用户id
  109. $month = date("Y-m");
  110. $check_info = M("game_user_sign")->field("id,sign,award")->where("uid='$uid' AND month='$month'")->find();
  111. if(!empty($check_info) && $check_info['award']!=0)
  112. {
  113. $this->returnDataAndSendMsg("请勿重复领取");
  114. die();
  115. }
  116. $days = M("game_user_sign")->field("id")->where("uid='$uid' AND month='$month' AND sign=1")->count();
  117. if($days<15)
  118. {
  119. $this->returnDataAndSendMsg("签到天数未满15天");
  120. die();
  121. }
  122. $rs = M("user_info")->where("id='$uid'")->setInc("gold_coins_number",2);
  123. if(!$rs)
  124. {
  125. $this->returnDataAndSendMsg("领取失败,请稍后重试");
  126. die();
  127. }
  128. $rs = M("game_user_sign")->where("uid='$uid' AND month='$month'")->setField("award",1);
  129. $data['code'] = '200';
  130. $data['message'] = 'ok';
  131. $data['data'] = $rs;
  132. echo json_encode($data);
  133. }
  134. /**
  135. * 领取所有
  136. * @return void
  137. */
  138. public function draw_all_coins()
  139. {
  140. $this->addHeaders(); //添加头部请求
  141. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  142. $uid = $user_info['id']; //用户id
  143. $month = date("Y-m");
  144. $check_info = M("game_user_sign")->field("id,sign,award")->where("uid='$uid' AND month='$month'")->find();
  145. if(!empty($check_info) && $check_info['award']==2)
  146. {
  147. $this->returnDataAndSendMsg("请勿重复领取");
  148. die();
  149. }
  150. $days = M("game_user_sign")->field("id")->where("uid='$uid' AND month='$month' AND sign=1")->count();
  151. if($days<date("t"))
  152. {
  153. $this->returnDataAndSendMsg("签到天数未满当月天数");
  154. die();
  155. }
  156. $rs = M("user_info")->where("id='$uid'")->setInc("gold_coins_number",3);
  157. if(!$rs)
  158. {
  159. $this->returnDataAndSendMsg("领取失败,请稍后重试");
  160. die();
  161. }
  162. $rs = M("game_user_sign")->where("uid='$uid' AND month='$month'")->setField("award",2);
  163. $data['code'] = '200';
  164. $data['message'] = 'ok';
  165. $data['data'] = $rs;
  166. echo json_encode($data);
  167. }
  168. /**
  169. * 删除非当月数据
  170. * @return void
  171. */
  172. public function del_not_current_month()
  173. {
  174. $this->addHeaders(); //添加头部请求
  175. $month = date("Y-n");
  176. $rs = M("game_user_sign")->where("month!='$month'")->delete();
  177. $data['code'] = '200';
  178. $data['message'] = 'ok';
  179. $data['data'] = $rs;
  180. echo json_encode($data);
  181. }
  182. }