예제 #1
0
 /**
  * 开启一个任务
  *
  * @param int $id
  * @param int $status 开启1或是关闭0
  * @param int $order 顺序
  * @param string $title 标题
  * @return PwError|boolean
  */
 public function openTask($id, $status, $order = '', $title = '')
 {
     $task = $this->_taskDs()->get($id);
     if (!$task) {
         return new PwError('TASK:id.illegal');
     }
     $taskDm = new PwTaskDm();
     $reward = unserialize($task['reward']);
     $taskDm->setTaskId($id)->setTitle($title)->setViewOrder($order)->setIsOpen($status)->setEndTime($task['end_time'])->setIsAuto($task['is_auto'])->setIsDisplayAll($task['is_display_all'])->setUserGroups(explode(',', $task['user_groups']))->setReward($reward);
     PwTaskDmFactory::addRewardDecoration($taskDm, $reward);
     return $this->_taskDs()->updateTask($taskDm);
 }
예제 #2
0
 /**
  * 添加奖励
  *
  * @param PwTaskDm $dm
  * @param array $reward
  * @return PwTaskDm
  */
 public static function addRewardDecoration(PwTaskDm $dm, $reward)
 {
     switch ($reward['type']) {
         case 'credit':
             $decoration = Wekit::load('SRV:task.srv.reward.PwTaskCreditRewardDo');
             return $dm->setReward($reward)->setRewardDecoration($decoration);
             break;
         case 'group':
             $decoration = Wekit::load('SRV:task.srv.reward.PwTaskGroupRewardDo');
             return $dm->setReward($reward)->setRewardDecoration($decoration);
         default:
             return $dm->setReward($reward);
             break;
     }
 }
예제 #3
0
 /**
  * 更新一条任务信息(for pw_task表)
  *
  * @param int $id
  * @param PwTaskDm $dm
  * @return PwError|boolean
  */
 public function updateTask($dm)
 {
     if (!$dm instanceof PwTaskDm) {
         return new PwError('TASK:datamodel.illegal');
     }
     if (($r = $dm->beforeUpdate()) instanceof PwError) {
         return $r;
     }
     //更新pw_task表记录
     $this->_taskDao()->update($dm->getTaskId(), $dm->getData());
     $this->_taskGroupDao()->deleteByTaskId($dm->getTaskId());
     if (1 == $dm->getField('is_open')) {
         return $this->_taskGroupDao()->batchReplaceTaskGroups($dm->getTaskGroupData());
     }
     return true;
 }