Question.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. class Question extends MongoAr
  3. {
  4. public $_id; //问题的object id
  5. public $content;//内容
  6. public $time;//问题发表时间
  7. public $user;//作者object id
  8. public $quote;//引用的问题object id
  9. public $type;//
  10. public $status=1;//状态 1正常 0删除 -1垃圾
  11. public $weight=0;//问题的权重
  12. public function __construct($scenario='insert'){
  13. $this->setMongoDBComponent(Yii::app()->getComponent('mongodb_data'));
  14. parent::__construct($scenario);
  15. }
  16. public static $status_option = array(
  17. 1 => array('name' => '正常'),
  18. 0 => array('name' => '删除'),
  19. -1 => array('name' => '垃圾')
  20. );
  21. public static function model($className=__CLASS__)
  22. {
  23. return parent::model($className);
  24. }
  25. public function getCollectionName()
  26. {
  27. return 'question';
  28. }
  29. public static function get($_id) {
  30. if(CommonFn::isMongoId($_id)){
  31. $criteria = new EMongoCriteria();
  32. $criteria->_id('==', $_id);
  33. $model = self::model()->find($criteria);
  34. return $model;
  35. }else{
  36. return false;
  37. }
  38. }
  39. public function parseRow($row,$output=array()){
  40. $newRow = array();
  41. $newRow['id'] = (string)$row['_id'];
  42. $newRow['content'] = CommonFn::get_val_if_isset($row,'content','');
  43. $newRow['time'] = CommonFn::get_val_if_isset($row,'time',time());
  44. $newRow['time_str'] = CommonFn::sgmdate("Y年n月d日", $newRow['time'],1);
  45. $user = array();
  46. if(isset($row['user'])){
  47. $_user = RUser::get($row['user']);
  48. $user = RUser::model()->parseRow($_user->attributes,array('user_name','certify_status','certify_info','user_type','can_be_message','can_access','level','id','avatar','is_fake_user'));
  49. }
  50. $newRow['user'] = $user;
  51. $quote = array();
  52. if(!empty($row['quote'])){
  53. $_question = self::get($row['quote']);
  54. $quote['id'] = (string)$row['quote'];
  55. $quote['content'] = $_question->content;
  56. $quote['status'] = $_question->status;
  57. $quote['time'] = $_question->time;
  58. $_user = RUser::get($_question->user);
  59. $puser = RUser::model()->parse($_user->attributes,false,array('id','certify_status','certify_info','user_type','can_be_message','can_access','user_name'));
  60. $quote['user'] = $puser;
  61. }else{
  62. $quote = (object)$quote;
  63. }
  64. $newRow['quote'] = $quote;
  65. $newRow['weight'] = CommonFn::get_val_if_isset($row,'weight',0);
  66. $newRow['status'] = CommonFn::get_val_if_isset($row,'status',1);
  67. $newRow['action_user'] = CommonFn::get_val_if_isset($row,'action_user',"");
  68. $newRow['action_time'] = CommonFn::get_val_if_isset($row,'action_time',"");
  69. $newRow['action_log'] = CommonFn::get_val_if_isset($row,'action_log',"");
  70. if(APPLICATION=='api'||APPLICATION=='common'){
  71. unset($newRow['action_user']);
  72. unset($newRow['action_time']);
  73. unset($newRow['action_log']);
  74. }
  75. return $this->output($newRow,$output);
  76. }
  77. }