LotteryEventsTypeVote.class.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. namespace Cas\Module;
  3. use KIF\Verify;
  4. use Cas\Dao\LotteryEvents;
  5. use KIF\Core\Config;
  6. use Cas\Dao\LotteryPrize;
  7. use KIF\Cache\Memcached;
  8. use KIF\Dao\SqlHelper;
  9. use Cas\Dao\LotteryPrizeVirtualData;
  10. use Cas\Dao\LotteryData;
  11. use Cas\Module\LotteryLog;
  12. use Cas\Dao\LotteryEventsLog as DLog;
  13. use Cas\Module\Lottery;
  14. use Cas\Dao\LotteryEventsLetters;
  15. use Cas\Dao\LotteryEventsUserLetters;
  16. use Cas\Dao\LotteryEventsUserPrizeData;
  17. use KIF\Data\ResultWrapper;
  18. use KIF\Core\Request;
  19. use Cas\Dao\LotteryEventsVote;
  20. use Cas\Dao\LotteryEventsVoteUserLog;
  21. /**
  22. *
  23. * 投票 [模型]
  24. *
  25. * @author lihuanchun
  26. */
  27. class LotteryEventsTypeVote {
  28. private $uid;
  29. private $events_id;
  30. private $objMlottery;
  31. private $objMLotteryLog;
  32. private $thisTime;
  33. private $objMLotteryEventsLimitations;
  34. private $objDLotteryEventsVote;
  35. private $objDLotteryEventsVoteUserLog;
  36. public function __construct($uid=null , $events_id=null ) {
  37. $this->uid = $uid;
  38. $this->events_id = $events_id;
  39. $this->objMlottery = new Lottery();
  40. $this->objDLotteryEventsVote = new LotteryEventsVote();
  41. $this->objDLotteryEventsVoteUserLog = new LotteryEventsVoteUserLog();
  42. $this->objMLotteryLog = new LotteryLog($uid,$events_id);
  43. $this->thisTime = time();
  44. $this->objMLotteryEventsLimitations = new LotteryEventsLimitations();
  45. }
  46. /**
  47. * 获取当前“投票”信息
  48. */
  49. public function getEventsData(){
  50. $data = $this->objMlottery->getOneLotteryEvents($this->events_id);
  51. $data['vote'] = $this->objDLotteryEventsVote-> getThisEventData($this->events_id);
  52. return $data;
  53. }
  54. /**
  55. * 参与投票
  56. */
  57. public function vote($vote_id){
  58. $eventsData = $this->objMlottery->getOneLotteryEvents($this->events_id);
  59. # 活动是否开始
  60. if($this->thisTime < $eventsData['begin_time'] || $this->thisTime > $eventsData['end_time']){
  61. return ResultWrapper::fail('当前活动未开始');
  62. }
  63. # 活动限制
  64. if(!$this->objMLotteryEventsLimitations->ckEventRestrictions($this->uid,Request::ip(), $this->events_id)){
  65. return ResultWrapper::fail('您不可以重复参与哦!');
  66. }
  67. # 记录参与日志
  68. $other = array(
  69. 'vote_id' => $vote_id,
  70. );
  71. $this->objMLotteryLog ->addLog(DLog::LOG_TYPE_PARTICIPATION, $other);
  72. # 记录用户
  73. $this->objMLotteryEventsLimitations->setUserEventNum($this->uid, $this->events_id); // 记录用户参与UID(天)
  74. $this->objMLotteryEventsLimitations->setIpEventNum(Request::ip(), $this->events_id);// 记录用户参与IP(天)
  75. $this->objMLotteryEventsLimitations->setUserParticipationNum($this->uid, $this->events_id); // 记录用户参与次数
  76. # 修改数量
  77. $this->objDLotteryEventsVote ->upNum($vote_id);
  78. # 记录用户的投票日志中
  79. $info = array(
  80. 'events_id' => $this->events_id,
  81. 'vote_id' => $vote_id,
  82. 'uid' => $this->uid
  83. );
  84. $this->objDLotteryEventsVoteUserLog ->add($info);
  85. #######用户行为记录########
  86. #用户抽中奖品
  87. $allVoteData = $this->objDLotteryEventsVote ->getThisEventData($this->events_id);
  88. $other = array(
  89. '投票:' => $allVoteData[$vote_id]['title'],
  90. );
  91. $this->objMLotteryLog ->addUserParticipateLog($other);
  92. #########################
  93. return ResultWrapper::success('投票成功');
  94. }
  95. /**
  96. * 取消投票
  97. * @param unknown $vote_id
  98. */
  99. public function cancelVote($vote_id) {
  100. $this->objDLotteryEventsVote->decrNum($vote_id);
  101. $condition = array(
  102. 'events_id' => $this->events_id,
  103. 'vote_id' => $vote_id,
  104. 'uid' => $this->uid,
  105. );
  106. $result = $this->objDLotteryEventsVoteUserLog->delete($condition);
  107. if (!$result) {
  108. return ResultWrapper::fail("取消失败");
  109. }
  110. return ResultWrapper::success("取消成功");
  111. }
  112. }