Пример #1
0
 /**
  * 根据用户的行为数据分析并发送自动任务
  *
  * @param array $behavior
  * @return boolean
  */
 public function sendAutoTask($behavior)
 {
     if (!Wekit::C('site', 'task.isOpen')) {
         return false;
     }
     $whitBehavior = array('login_days', 'post_days', 'thread_count');
     if (!in_array($behavior['behavior'], $whitBehavior)) {
         return false;
     }
     $tody = Pw::time2str(Pw::getTime(), 'Y-m-d');
     $isSend = false;
     switch ($behavior['behavior']) {
         case 'login_days':
             $isSend = $behavior['number'] % 3 == 0;
             break;
         case 'post_days':
             $is_tody = $tody == Pw::time2str($behavior['extend_info'], 'Y-m-d');
             $isSend = $is_tody && $behavior['number'] % 2 == 0;
             break;
         case 'thread_count':
             $isSend = $behavior['number'] == 1 || $behavior['number'] % 50 == 0;
             break;
     }
     if (!$isSend) {
         return false;
     }
     Wind::import('SRV:task.srv.PwTaskApply');
     $userTask = new PwTaskApply($behavior['uid']);
     $userTask->autoApplies($this->getAutoApplicableTaskList($behavior['uid'], 1));
     return true;
 }
Пример #2
0
 public function welcome(PwUserBo $userBo, $ip)
 {
     if (!Wekit::C('site', 'task.isOpen')) {
         return true;
     }
     /* @var $behaviorDs PwUserBehavior */
     $behaviorDs = Wekit::load('user.PwUserBehavior');
     $info = $behaviorDs->getBehavior($userBo->uid, 'login_days');
     $time = $info['extend_info'] ? $info['extend_info'] : 0;
     if (!$time || Pw::time2str($time, 'Y-m-d') < Pw::time2str(Pw::getTime(), 'Y-m-d')) {
         /* @var $taskService PwTaskService */
         $taskService = Wekit::load('SRV:task.srv.PwTaskService');
         $userTask = new PwTaskApply($userBo->uid);
         $autoTaskIds = $taskService->getAutoApplicableTaskList($userBo->uid, 5);
         $userTask->autoApplies($autoTaskIds);
     }
     return true;
 }
Пример #3
0
 /**
  * 将该任务的后置自动任务发送给用户
  *
  * @param int $task_id
  * @return boolean
  */
 private function sendNextAutoApplicableTaskList()
 {
     /* @var $taskService PwTaskService */
     $taskService = Wekit::load('task.srv.PwTaskService');
     $childs = $taskService->getNextAutoApplicableTaskList($this->taskId, $this->uid);
     if (!$childs) {
         return true;
     }
     $userService = new PwTaskApply($this->uid);
     $userService->autoApplies($childs);
     return true;
 }