/** * 自动勋章发放 条件最高的一个 * * 写入状态为可领取 */ protected function awardMaxMedal() { $ds = Wekit::load('medal.PwMedalLog'); //$ds->deleteInfosByUidMedalIds($this->medalBo->uid, array_keys($this->medalBo->getAlreadyMedals()));//删除已发放给用户这一类型的勋章 Wekit::load('medal.dm.PwMedalLogDm'); $dm = new PwMedalLogDm(); $time = Pw::getTime(); $dm->setMedalid($this->awardMedalId)->setUid($this->userBo->uid)->setAwardStatus(3)->setCreatedTime($time)->setExpiredTime(0); $resource = $ds->replaceMedalLog($dm); if (!$resource instanceof PwError) { Wekit::load('medal.srv.PwMedalService')->sendNotice($this->userBo->uid, $resource, $this->awardMedalId, 1); } }
/** * 颁发勋章,用于完成的自动任务获取的勋章 * * @param int $uid * @param int $medalId */ public function awardTaskMedal($uid, $medalId) { $info = $this->_getMedalDs()->getMedalInfo($medalId); if (!$info) { return false; } $userLog = $this->_getMedalLogDs()->getInfoByUidMedalId($uid, $medalId); Wind::import('SRV:medal.dm.PwMedalLogDm'); $time = Pw::getTime(); if ($userLog && $userLog['award_status'] < 4) { $dm = new PwMedalLogDm($userLog['log_id']); $dm->setAwardStatus(3); $resource = $this->_getMedalLogDs()->updateInfo($dm); } else { $dm = new PwMedalLogDm(); $dm->setMedalid($medalId)->setUid($uid)->setAwardStatus(3)->setCreatedTime($time); $resource = $this->_getMedalLogDs()->replaceMedalLog($dm); } }
public function doApplyAction() { $medalId = (int) $this->getInput('medalid', 'post'); $medal = $this->_getMedalDs()->getMedalInfo($medalId); if (!$medal || $medal['receive_type'] == 1) { $this->showError('MEDAL:fail'); } if (!$this->_getMedalService()->allowAwardMedal($this->loginUser->gid, $medal['medal_gids'])) { $this->showError('MEDAL:not.user.group'); } $log = $this->_getMedalLogDs()->getInfoByUidMedalId($this->loginUser->uid, $medalId); if ($log) { $this->showError('MEDAL:already.apply'); } Wind::import('SRV:medal.dm.PwMedalLogDm'); $time = Pw::getTime(); $dm = new PwMedalLogDm(); $dm->setMedalid($medalId)->setUid($this->loginUser->uid)->setAwardStatus(2)->setCreatedTime($time); $resource = $this->_getMedalLogDs()->replaceMedalLog($dm); if ($resource instanceof PwError) { $this->showError('MEDAL:fail'); } $this->showMessage("MEDAL:apply.success"); }
/** * 勋章申请批量操作 * */ public function batchPassAction() { $logids = (array) $this->getInput('logids', 'post'); Wind::import('SRV:medal.dm.PwMedalLogDm'); $ds = $this->_getMedalLogDs(); $srv = $this->_getMedalService(); foreach ($logids as $logid) { $log = $ds->getMedalLog($logid); $dm = new PwMedalLogDm($logid); $dm->setAwardStatus(PwMedalLog::STATUS_AWARD); $resource = $ds->updateInfo($dm); if (!$resource instanceof PwError) { $srv->sendNotice($log['uid'], $log['log_id'], $log['medal_id'], 3); } } $this->showMessage("MEDAL:success"); }
public function updateInfo(PwMedalLogDm $dm) { $resource = $dm->beforeUpdate(); if ($resource instanceof PwError) { return $resource; } return $this->_getDao()->updateInfo($dm->logid, $dm->getData()); }