拍爱

models.py 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 pai2.basemodels import CreateUpdateMixin
  7. class OrderInfo(CreateUpdateMixin):
  8. """
  9. # Trade State of Wechat Query
  10. SUCCESS ——— 支付成功
  11. REFUND ——— 转入退款
  12. NOTPAY ——— 未支付
  13. CLOSED ——— 已关闭
  14. REVOKED ——— 已撤销(刷卡支付)
  15. USERPAYING ——— 用户支付中
  16. PAYERROR ——— 支付失败(其他原因,如银行返回失败)
  17. """
  18. WAITING_PAY = 0
  19. PAID = 1
  20. FAIL = 2
  21. # DELETED = 9
  22. PAY_STATUS = (
  23. (WAITING_PAY, u'待支付'),
  24. (PAID, u'已支付'),
  25. (FAIL, u'已失败'),
  26. # (DELETED, u'已删除'),
  27. )
  28. order_id = ShortUUIDField(_(u'order_id'), max_length=255, help_text=u'订单唯一标识', db_index=True)
  29. from_uid = models.CharField(_(u'from_uid'), max_length=255, help_text=u'付款用户唯一标识', db_index=True)
  30. to_lid = models.CharField(_(u'to_lid'), max_length=255, blank=True, null=True, help_text=u'收款摄影师唯一标识', db_index=True)
  31. to_uid = models.CharField(_(u'to_uid'), max_length=255, blank=True, null=True, help_text=u'收款用户唯一标识', db_index=True)
  32. body = models.CharField(_(u'body'), max_length=255, blank=True, null=True, help_text=u'商品描述')
  33. total_fee = models.IntegerField(_(u'total_fee'), default=0, help_text=u'总金额')
  34. trade_type = models.CharField(_('trade_type'), max_length=255, blank=True, null=True, help_text=u'支付方式')
  35. pay_status = models.IntegerField(_(u'pay_status'), choices=PAY_STATUS, default=WAITING_PAY, help_text=u'支付状态', db_index=True)
  36. paid_at = models.DateTimeField(_(u'paid_at'), blank=True, null=True, help_text=_(u'支付时间'))
  37. class Meta:
  38. verbose_name = _('orderinfo')
  39. verbose_name_plural = _('orderinfo')
  40. def __unicode__(self):
  41. return u'{0.pk}'.format(self)
  42. @property
  43. def data(self):
  44. return {
  45. 'order_id': self.order_id,
  46. 'from_uid': self.from_uid,
  47. 'to_lid': self.to_lid,
  48. 'to_uid': self.to_uid,
  49. 'body': self.body,
  50. 'total_fee': self.total_fee,
  51. 'pay_status': self.pay_status,
  52. 'paid_at': self.paid_at and self.paid_at.replace(microsecond=0),
  53. 'created_at': self.created_at.replace(microsecond=0),
  54. }