GroupRecord.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. class GroupRecord extends ARedisRecord{
  3. public $id;
  4. public $name;
  5. public $desc;
  6. public $avatar;
  7. public $can_join;
  8. public $can_find;
  9. public $can_topic;
  10. public $can_pics_view;
  11. public $can_commend_view;
  12. public $can_post;
  13. public $admins=array();
  14. public $relate_pet_types=array();
  15. public $cover=array();
  16. public $city_info=array();
  17. public $cat = array();
  18. public $tags = array();
  19. public $topics_count;
  20. public $today_topic;
  21. public $posts_count;
  22. public $users_count;
  23. public $order;
  24. public $is_follow;
  25. public $keyword;
  26. public $tags_str;
  27. public $status;
  28. public static $need_serialize = array('admins','relate_pet_types','cover','city_info','cat','tags');
  29. public static $int_filed = array('can_join','can_find','can_topic','can_pics_view','can_commend_view','can_post','topics_count','posts_count','users_count','today_topic','order','is_follow');
  30. public function __construct($scenario='insert'){
  31. parent::__construct($scenario);
  32. }
  33. public static function get($id){
  34. $group_info = self::model()->findByPk($id);
  35. $res = array();
  36. if($group_info){
  37. foreach($group_info->attributeNames() as $attribute) {
  38. if(in_array($attribute,GroupRecord::$need_serialize)){
  39. if(is_array($group_info->{$attribute})){
  40. $res[$attribute] = $group_info->{$attribute};
  41. }else{
  42. $res[$attribute] = unserialize($group_info->{$attribute});
  43. }
  44. }elseif(in_array($attribute,GroupRecord::$int_filed)){
  45. $res[$attribute] = intval($group_info->{$attribute});
  46. }else{
  47. $res[$attribute] = $group_info->{$attribute};
  48. }
  49. }
  50. }else{
  51. $group = Group::get(new MongoId($id));
  52. if($group){
  53. return $group->parseRow($group);
  54. }else{
  55. return false;
  56. }
  57. }
  58. return $res;
  59. }
  60. public static function model($className=__CLASS__)
  61. {
  62. return parent::model($className);
  63. }
  64. public function beforeSave()
  65. {
  66. foreach($this->attributeNames() as $attribute) {
  67. if(in_array($attribute,GroupRecord::$need_serialize)){
  68. $this->{$attribute} = serialize($this->{$attribute});
  69. }
  70. }
  71. return true;
  72. }
  73. }