/** * 开启一个任务 * * @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); }
/** * 添加奖励 * * @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; } }
/** * 更新一条任务信息(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; }