UserCoupon.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * User: charlie
  4. * 用户的代金券
  5. */
  6. class UserCoupon extends MongoAr
  7. {
  8. public $_id;
  9. public $start_time;//代金券的有效开始时间
  10. public $end_time;//代金券的有效结束时间
  11. public $coupon;//Coupon 的 mongoid
  12. public $user; //对应的RUser 的mongoid
  13. public $user_device_id; //对应的RUser 的user_device_id
  14. public $use_time;
  15. public $status=0;// 0=>暂停使用 1=>待使用 -1=>已使用 -2=>已过期
  16. public static $status_option = array(
  17. 0 => array('name' => '暂停使用'),
  18. 1 => array('name' => '待使用'),
  19. -1 => array('name' => '已使用'),
  20. -2 => array('name' => '已过期'),
  21. );
  22. public function __construct($scenario='insert'){
  23. $this->setMongoDBComponent(Yii::app()->getComponent('mongodb_o2o'));
  24. parent::__construct($scenario);
  25. }
  26. public static function model($className=__CLASS__)
  27. {
  28. return parent::model($className);
  29. }
  30. public static function get($_id) {
  31. if(CommonFn::isMongoId($_id)){
  32. $criteria = new EMongoCriteria();
  33. $criteria->_id('==', $_id);
  34. $model = self::model()->find($criteria);
  35. return $model;
  36. }else{
  37. return false;
  38. }
  39. }
  40. public function getCollectionName()
  41. {
  42. return 'user_coupons';
  43. }
  44. public function parseRow($row,$output=array()){
  45. $newRow = array();
  46. $newRow['id'] = (string)$row['_id'];
  47. $newRow['start_time'] = CommonFn::get_val_if_isset($row,'start_time',0);
  48. $newRow['end_time'] = CommonFn::get_val_if_isset($row,'end_time',0);
  49. $newRow['start_time_str'] = date('Y.n.d',$newRow['start_time']);
  50. $newRow['end_time_str'] = date('Y.n.d',$newRow['end_time']);
  51. $newRow['status'] = CommonFn::get_val_if_isset($row,'status',1);
  52. $user = array();
  53. $t_user = new ZUser();
  54. if(isset($row['user'])){
  55. $_user = $t_user->get($row['user']);
  56. if($_user){
  57. $user = RUser::model()->parseRow($_user->attributes,array('user_name','id','avatar'));
  58. }
  59. }
  60. $newRow['user'] = $user;
  61. $coupon = array();
  62. if(isset($row['coupon'])){
  63. $criteria = new EMongoCriteria();
  64. $criteria->_id('==', $row['coupon']);
  65. $_coupon = Coupon::model()->find($criteria);
  66. $coupon = Coupon::model()->parseRow($_coupon->attributes,array('name','id','value','type','alias_name','time_limit_str','type_str','workday_limit','time_limit_start','time_limit_end','workday_limit_str','min_price','status'));
  67. }
  68. $newRow['coupon'] = $coupon;
  69. return $this->output($newRow,$output);
  70. }
  71. }