拍爱

models.py 3.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. # -*- coding: utf-8 -*-
  2. from django.conf import settings
  3. from django.db import models
  4. from django.utils.translation import ugettext_lazy as _
  5. from shortuuidfield import ShortUUIDField
  6. from group.models import GroupPhotoInfo
  7. from pai2.basemodels import CreateUpdateMixin
  8. class OrderInfo(CreateUpdateMixin):
  9. NOMARK = 0
  10. ORIGIN = 1
  11. PHOTO_TYPE = (
  12. (NOMARK, u'去除水印'),
  13. (ORIGIN, u'获取高清图'),
  14. )
  15. """
  16. # Trade State of Wechat Query
  17. SUCCESS ——— 支付成功
  18. REFUND ——— 转入退款
  19. NOTPAY ——— 未支付
  20. CLOSED ——— 已关闭
  21. REVOKED ——— 已撤销(刷卡支付)
  22. USERPAYING ——— 用户支付中
  23. PAYERROR ——— 支付失败(其他原因,如银行返回失败)
  24. """
  25. WAITING_PAY = 0
  26. PAID = 1
  27. FAIL = 2
  28. # DELETED = 9
  29. PAY_STATUS = (
  30. (WAITING_PAY, u'待支付'),
  31. (PAID, u'已支付'),
  32. (FAIL, u'已失败'),
  33. # (DELETED, u'已删除'),
  34. )
  35. order_id = ShortUUIDField(_(u'order_id'), max_length=255, help_text=u'订单唯一标识', db_index=True)
  36. group_id = models.CharField(_(u'group_id'), max_length=255, blank=True, null=True, help_text=u'群组唯一标识', db_index=True)
  37. photo_id = models.CharField(_(u'photo_id'), max_length=255, blank=True, null=True, help_text=u'飞图唯一标识', db_index=True)
  38. lensman_photo_id = models.CharField(_(u'lensman_photo_id'), max_length=255, blank=True, null=True, help_text=u'摄影师照片唯一标识,同 PhotosInfo 表', db_index=True)
  39. photo_type = models.IntegerField(_('photo_type'), choices=PHOTO_TYPE, default=NOMARK, help_text=u'购买照片类型')
  40. from_uid = models.CharField(_(u'from_uid'), max_length=255, help_text=u'付款用户唯一标识', db_index=True)
  41. to_uid = models.CharField(_(u'to_uid'), max_length=255, blank=True, null=True, help_text=u'收款用户唯一标识', db_index=True)
  42. body = models.CharField(_(u'body'), max_length=255, blank=True, null=True, help_text=u'商品描述')
  43. total_fee = models.IntegerField(_(u'total_fee'), default=0, help_text=u'总金额')
  44. trade_type = models.CharField(_('trade_type'), max_length=255, blank=True, null=True, help_text=u'支付方式')
  45. pay_status = models.IntegerField(_(u'pay_status'), choices=PAY_STATUS, default=WAITING_PAY, help_text=u'支付状态', db_index=True)
  46. paid_at = models.DateTimeField(_(u'paid_at'), blank=True, null=True, help_text=_(u'支付时间'))
  47. class Meta:
  48. verbose_name = _('orderinfo')
  49. verbose_name_plural = _('orderinfo')
  50. def __unicode__(self):
  51. return u'{0.pk}'.format(self)
  52. def data(self, user_id=None):
  53. try:
  54. group_photo = GroupPhotoInfo.objects.get(pk=self.photo_id)
  55. except GroupPhotoInfo.DoesNotExist:
  56. group_photo = {}
  57. return {
  58. 'order_id': self.order_id,
  59. 'from_uid': self.from_uid,
  60. 'group_id': self.group_id,
  61. 'photo_id': self.photo_id,
  62. 'group_photo_info': group_photo and group_photo.photo_info(user_id),
  63. 'to_uid': self.to_uid,
  64. 'body': self.body,
  65. 'total_fee': self.total_fee,
  66. 'pay_status': self.pay_status,
  67. 'paid_at': self.paid_at and self.paid_at.replace(microsecond=0),
  68. 'created_at': self.created_at.replace(microsecond=0),
  69. }