/**
  * 自动勋章发放 条件最高的一个
  *
  * 写入状态为可领取
  */
 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);
     }
 }
Example #2
0
 /**
  * 颁发勋章,用于完成的自动任务获取的勋章
  * 
  * @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);
     }
 }
Example #3
0
 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");
 }
Example #4
0
 /**
  * 勋章申请批量操作
  *
  */
 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");
 }
Example #5
0
 public function updateInfo(PwMedalLogDm $dm)
 {
     $resource = $dm->beforeUpdate();
     if ($resource instanceof PwError) {
         return $resource;
     }
     return $this->_getDao()->updateInfo($dm->logid, $dm->getData());
 }