"lines-code">
+ (VIRTUAL, u'虚拟'),
+ (COUPON, u'优惠券'),
+ )
+
+ coupon_id = ShortUUIDField(_(u'coupon_id'), max_length=32, blank=True, null=True, help_text=u'券唯一标识', db_index=True, unique=True)
+ user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)
+
+ active_at = models.DateTimeField(_(u'active_at'), blank=True, null=True, help_text=_(u'生效时间'))
+ expire_at = models.DateTimeField(_(u'expire_at'), blank=True, null=True, help_text=_(u'过期时间'))
+
+ right_id = models.CharField(_(u'right_id'), max_length=32, blank=True, null=True, help_text=u'权益唯一标识', db_index=True)
+ right_type = models.IntegerField(_(u'right_type'), choices=RIGHT_TYPE_TUPLE, default=VIRTUAL, help_text=u'权益类型', db_index=True)
+
+ icon = models.ImageField(_(u'icon'), upload_to=upload_path, blank=True, null=True, help_text=u'权益图标')
+ title = models.CharField(_(u'title'), max_length=255, blank=True, null=True, help_text=u'权益名称')
+ subtitle = models.CharField(_(u'subtitle'), max_length=255, blank=True, null=True, help_text=u'权益二级名称')
+ detail = RichTextField(_(u'detail'), blank=True, null=True, help_text=u'权益详情')
+
+ level1 = models.CharField(_(u'level1'), max_length=255, blank=True, null=True, help_text=u'level1')
+ level2 = models.CharField(_(u'level2'), max_length=255, blank=True, null=True, help_text=u'level2')
+ level3 = models.CharField(_(u'level3'), max_length=255, blank=True, null=True, help_text=u'level3')
+ level4 = models.CharField(_(u'level4'), max_length=255, blank=True, null=True, help_text=u'level4')
+ level5 = models.CharField(_(u'level5'), max_length=255, blank=True, null=True, help_text=u'level5')
+
+ minlevel = models.IntegerField(_(u'minlevel'), default=0, help_text=u'权益最低会员级别')
+
+ position = models.IntegerField(_(u'position'), default=1, help_text=u'排序', db_index=True)
+
+ class Meta:
+ verbose_name = _(u'会员券信息')
+ verbose_name_plural = _(u'会员券信息')
+
+ def __unicode__(self):
+ return unicode(self.pk)
+
+ @property
+ def icon_path(self):
+ return upload_file_path(self.icon)
+
+ @property
+ def icon_url(self):
+ return upload_file_url(self.icon)
+
+ @property
+ def data(self):
+ return {
+ 'coupon_id': self.coupon_id,
+ 'active_at': tc.local_string(self.active_at, format='%Y%m%d'),
+ 'expire_at': tc.local_string(self.expire_at, format='%Y%m%d'),
+ 'right_id': self.right_id,
+ 'right_type': self.right_type,
+ 'icon': self.icon_url,
+ 'title': self.title,
+ 'subtitle': self.subtitle,
+ 'detail': self.detail,
+ 'level1': self.level1,
+ 'level2': self.level2,
+ 'level3': self.level3,
+ 'level4': self.level4,
+ 'level5': self.level5,
+ 'minlevel': self.minlevel,
+ 'able': True,
+ 'left_num': 3,
+ 'left_tip': 3,
}
@@ -262,13 +336,25 @@ class MemberActivityInfo(BaseModelMixin):
return upload_file_url(self.slider_image)
@property
- def data(self):
+ def final_state(self):
+ tdate = tc.local_date()
+ if tdate < self.date:
+ return u'报名中'
+ if tdate == self.date:
+ return u'活动中'
+ return u'已结束'
+
+ def is_signed(self, user_id):
+ # 是否已报名
+ return MemberActivitySignupInfo.objects.filter(user_id=user_id, activity_id=self.activity_id, status=True).exists()
+
+ def data(self, user_id):
return {
'id': self.activity_id,
'activity_id': self.activity_id,
'title': self.title,
'subtitle': self.subtitle,
- 'date': tc.local_string(self.date, '%Y-%m-%d'),
+ 'date': tc.local_string(self.date, format='%Y-%m-%d'),
'city': self.city,
'location': self.location,
'lat': self.lat,
@@ -279,8 +365,8 @@ class MemberActivityInfo(BaseModelMixin):
'share_img_link': self.share_img_link,
'share_h5_link': self.share_h5_link,
'slider_image': self.slider_image_url,
- 'state': 0,
- 'is_signed': 0,
+ 'state': self.final_state,
+ 'is_signed': self.is_signed(user_id),
}
@@ -1,7 +1,7 @@ |
||
| 1 | 1 |
CodeConvert==2.0.5 |
| 2 | 2 |
Pillow==5.0.0 |
| 3 | 3 |
StatusCode==1.0.0 |
| 4 |
-TimeConvert==1.5.0 |
|
| 4 |
+TimeConvert==1.5.1 |
|
| 5 | 5 |
furl==2.1.0 |
| 6 | 6 |
isoweek==1.3.3 |
| 7 | 7 |
jsonfield==2.0.2 |