/**
  * 添加精华
  *
  * @param int $tid
  * @param array $fields
  * @return boolean
  */
 public function addThreadDigest(PwThreadDigestDm $dm)
 {
     if (true !== ($r = $dm->beforeAdd())) {
         return $r;
     }
     return $this->_getDao()->addThread($dm->tid, $dm->getData());
 }
 /**
  * 精华处理
  * 
  * @return boolean
  */
 private function _digest()
 {
     if (1 != $this->digest) {
         return Wekit::load('forum.PwThreadDigestIndex')->batchDeleteThread($this->tids);
     }
     Wind::import('SRV:forum.dm.PwThreadDigestDm');
     /* @var $srv PwForumService */
     $srv = Wekit::load('forum.srv.PwForumService');
     $digestDms = array();
     $fids = array();
     $time = Pw::getTime();
     foreach ($this->threads as $thread) {
         $_tmp = new PwThreadDigestDm($thread['tid']);
         if (!isset($fids[$thread['fid']])) {
             $fids[$thread['fid']] = $srv->getCateId($thread['fid']);
         }
         $_tmp->setCid($fids[$thread['fid']])->setFid($thread['fid'])->setCreatedTime($thread['created_time'])->setLastpostTime($thread['lastpost_time'])->setTopicType($thread['topic_type'])->setOperator($this->srv->user->username, $this->srv->user->uid, $time);
         $digestDms[] = $_tmp;
     }
     /* @var $digestDs PwThreadDigestIndex */
     $digestDs = Wekit::load('SRV:forum.PwThreadDigestIndex');
     return $digestDs->batchAddDigest($digestDms);
 }