LotteryEventsTypeInvitation.class.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. namespace Cas\Module;
  3. use Cas\Dao\LotteryEventsInvitation;
  4. use KIF\Verify;
  5. use Cas\Dao\LotteryEvents;
  6. use KIF\Core\Config;
  7. use Cas\Dao\LotteryPrize;
  8. use KIF\Cache\Memcached;
  9. use KIF\Dao\SqlHelper;
  10. use Cas\Dao\LotteryPrizeVirtualData;
  11. use Cas\Dao\LotteryData;
  12. use Cas\Module\LotteryLog;
  13. use Cas\Dao\LotteryEventsLog as DLog;
  14. use Cas\Module\Lottery;
  15. use Cas\Dao\LotteryEventsLetters;
  16. use Cas\Dao\LotteryEventsUserLetters;
  17. use Cas\Dao\LotteryEventsUserPrizeData;
  18. use KIF\Data\ResultWrapper;
  19. use KIF\Core\Request;
  20. use Cas\Dao\LotteryEventsVote;
  21. use Cas\Dao\LotteryEventsVoteUserLog;
  22. use Cas\Dao\LotteryEventsTry;
  23. use Cas\Dao\LotteryUserExpress;
  24. use KIF\Dao\AbstractDao;
  25. /**
  26. *
  27. * 邀请涵 [模型]
  28. *
  29. * @author lihuanchun
  30. */
  31. class LotteryEventsTypeInvitation {
  32. private $uid;
  33. private $events_id;
  34. private $objMlottery;
  35. private $objMLotteryLog;
  36. private $thisTime;
  37. private $objMLotteryEventsLimitations;
  38. private $objDLotteryEventsInvitation;
  39. public function __construct($uid=null , $events_id=null ) {
  40. $this->uid = $uid;
  41. $this->events_id = $events_id;
  42. $this->objMlottery = new Lottery();
  43. $this->objMLotteryLog = new LotteryLog($uid,$events_id);
  44. $this->thisTime = time();
  45. $this->objMLotteryEventsLimitations = new LotteryEventsLimitations();
  46. $this->objDLotteryEventsInvitation = new LotteryEventsInvitation();
  47. }
  48. /**
  49. * 获取当前“邀请函活动”信息
  50. */
  51. public function getEventsData(){
  52. return $this->objMlottery->getOneLotteryEvents($this->events_id);
  53. }
  54. /**
  55. * 检查当前用户是否在白名单中
  56. */
  57. public function ckUidInWhiteList(){
  58. $eventsData = $this->objMlottery->getOneLotteryEvents($this->events_id);
  59. if($eventsData['invitation_white_list'] !=''
  60. && isset($eventsData['invitation_white_list'])
  61. && !isset($eventsData['invitation_white_list'][$this->uid])){
  62. return false;
  63. }
  64. return true;
  65. }
  66. /**
  67. * 提交用户信息
  68. */
  69. public function submitUser(){
  70. $eventsData = $this->objMlottery->getOneLotteryEvents($this->events_id);
  71. if($eventsData['invitation_white_list'] !=''
  72. && isset($eventsData['invitation_white_list'])
  73. && !isset($eventsData['invitation_white_list'][$this->uid])){
  74. return ResultWrapper::fail('抱歉您没有权限参与此活动');
  75. }
  76. # 活动是否开始
  77. if($this->thisTime < $eventsData['begin_time'] || $this->thisTime > $eventsData['end_time']){
  78. return ResultWrapper::fail('当前活动未开始');
  79. }
  80. # 活动限制
  81. if(!$this->objMLotteryEventsLimitations->ckEventRestrictions($this->uid,Request::ip(), $this->events_id)){
  82. return ResultWrapper::fail('您已成功领取二维码');
  83. }
  84. # 获取当前活动最大上线
  85. if($eventsData['participation_user_max_num']){
  86. $runNum = $this->objMlottery->getParticipationUserNum($this->events_id);
  87. if($runNum >= $eventsData['participation_user_max_num'] ){
  88. return ResultWrapper::fail('实在抱歉,由于参与太热情,报名人数已满,敬请关注下次活动');
  89. }
  90. }
  91. # 记录参与日志
  92. $other = array(
  93. 'postData' => $_POST,
  94. 'getData' => $_GET
  95. );
  96. $this->objMLotteryLog ->addLog(DLog::LOG_TYPE_PARTICIPATION, $other);
  97. return ResultWrapper::success('通过');
  98. }
  99. # 记录行为
  100. public function setLimitations(){
  101. $this->objMLotteryEventsLimitations->setUserEventNum($this->uid, $this->events_id); // 记录用户参与UID(天)
  102. $this->objMLotteryEventsLimitations->setIpEventNum(Request::ip(), $this->events_id);// 记录用户参与IP(天)
  103. $this->objMLotteryEventsLimitations->setUserParticipationNum($this->uid, $this->events_id); // 记录用户参与次数
  104. # 记录"参与成功"日志
  105. $other = array();
  106. $this->objMLotteryLog ->addLog(DLog::LOG_TYPE_PARTICIPATION_TRUE, $other);
  107. # 记录"用户参与" other 表单内容
  108. $other = array(
  109. '表单内容:' => join(',', $_POST),
  110. );
  111. $this->objMLotteryLog ->addUserParticipateLog($other);
  112. }
  113. /**
  114. * 获取生成二维码链接的token
  115. */
  116. public function getQrcodeUrlToken() {
  117. $sjs = '8SY-NXOsFMooo';
  118. $arr = array($this->uid, $this->events_id);
  119. sort($arr);
  120. return md5(implode($arr) . $sjs);
  121. }
  122. }