|
@@ -123,17 +123,15 @@ class SplitAccount(models.Model):
|
|
self.splictAccountAddReceiver(spc, spr)
|
|
self.splictAccountAddReceiver(spc, spr)
|
|
# 分账申请
|
|
# 分账申请
|
|
receivers = [{'account': spd.account, 'amount': spd.amount, 'description': "支付推荐佣金"}]
|
|
receivers = [{'account': spd.account, 'amount': spd.amount, 'description': "支付推荐佣金"}]
|
|
- success, data = spc.splitaccount_order(pay.transaction_id, self.no, receivers)
|
|
|
|
- if not success:
|
|
|
|
- raise CustomError(u'分账申请失败!')
|
|
|
|
|
|
+ result = spc.splitaccount_order(pay.transaction_id, self.no, receivers)
|
|
# 分账请求成功 结果不一定成功
|
|
# 分账请求成功 结果不一定成功
|
|
- self.order_id = data['order_id']
|
|
|
|
- if data['state'] == 'PROCESSING':
|
|
|
|
|
|
+ self.order_id = result.get('order_id')
|
|
|
|
+ if result.get('state') == 'PROCESSING':
|
|
self.status = SplitAccount.PROCESSING
|
|
self.status = SplitAccount.PROCESSING
|
|
- if data['state'] == 'FINISHED':
|
|
|
|
|
|
+ if result.get('state') == 'FINISHED':
|
|
self.status = SplitAccount.FINISHED
|
|
self.status = SplitAccount.FINISHED
|
|
self.save()
|
|
self.save()
|
|
- for item in data['receivers']:
|
|
|
|
|
|
+ for item in result.get('receivers'):
|
|
# 现在只对一个推荐人分账
|
|
# 现在只对一个推荐人分账
|
|
if item['account'] == spd.account:
|
|
if item['account'] == spd.account:
|
|
if item['result'] == 'PENDING':
|
|
if item['result'] == 'PENDING':
|
|
@@ -151,23 +149,19 @@ class SplitAccount(models.Model):
|
|
def splictAccountAddReceiver(self, split_account_func, spr):
|
|
def splictAccountAddReceiver(self, split_account_func, spr):
|
|
'''添加分账接收人'''
|
|
'''添加分账接收人'''
|
|
if spr.status != SplitAccountReceiver.ADD:
|
|
if spr.status != SplitAccountReceiver.ADD:
|
|
- add = split_account_func.splitaccount_addreceiver(spr.account)
|
|
|
|
- if not add:
|
|
|
|
- raise CustomError(u'添加分账接收方失败!')
|
|
|
|
|
|
+ split_account_func.splitaccount_addreceiver(spr.account)
|
|
spr.status = SplitAccountReceiver.ADD
|
|
spr.status = SplitAccountReceiver.ADD
|
|
spr.save()
|
|
spr.save()
|
|
|
|
|
|
def splictAccountQuery(self, split_account_func, transaction_id, out_order_no, detail):
|
|
def splictAccountQuery(self, split_account_func, transaction_id, out_order_no, detail):
|
|
'''查询分账结果'''
|
|
'''查询分账结果'''
|
|
- success, data = split_account_func.splitaccount_orderquery(transaction_id, out_order_no)
|
|
|
|
- if not success:
|
|
|
|
- raise CustomError(u'[%s]查询分账结果失败!' % out_order_no)
|
|
|
|
- if data['state'] == 'PROCESSING':
|
|
|
|
|
|
+ result = split_account_func.splitaccount_orderquery(transaction_id, out_order_no)
|
|
|
|
+ if result.get('state') == 'PROCESSING':
|
|
self.status = SplitAccount.PROCESSING
|
|
self.status = SplitAccount.PROCESSING
|
|
- if data['state'] == 'FINISHED':
|
|
|
|
|
|
+ if result.get('state') == 'FINISHED':
|
|
self.status = SplitAccount.FINISHED
|
|
self.status = SplitAccount.FINISHED
|
|
self.save()
|
|
self.save()
|
|
- for item in data['receivers']:
|
|
|
|
|
|
+ for item in result.get('receivers'):
|
|
if detail and detail.account == item['account']:
|
|
if detail and detail.account == item['account']:
|
|
if item['result'] == 'SUCCESS':
|
|
if item['result'] == 'SUCCESS':
|
|
detail.status = SplitAccountDetail.SUCCESS
|
|
detail.status = SplitAccountDetail.SUCCESS
|
|
@@ -188,27 +182,21 @@ class SplitAccount(models.Model):
|
|
spc = SplitAccountFuc(app.authorizer_appid, app.agent_num, app.private_key, app.cert_serial_no, app.apiv3_key, cert_dir=app.cert_dir, proxy=None)
|
|
spc = SplitAccountFuc(app.authorizer_appid, app.agent_num, app.private_key, app.cert_serial_no, app.apiv3_key, cert_dir=app.cert_dir, proxy=None)
|
|
|
|
|
|
if spr.status != SplitAccountReceiver.ADD:
|
|
if spr.status != SplitAccountReceiver.ADD:
|
|
- add = spc.splitaccount_addreceiver(spr.account)
|
|
|
|
- if not add:
|
|
|
|
- # 添加分账接收方失败 不再继续
|
|
|
|
- return
|
|
|
|
|
|
+ spc.splitaccount_addreceiver(spr.account)
|
|
spr.status = SplitAccountReceiver.ADD
|
|
spr.status = SplitAccountReceiver.ADD
|
|
spr.save()
|
|
spr.save()
|
|
|
|
|
|
receivers = [{'account': spd.account, 'amount': spd.amount, 'description': "支付推荐佣金"}]
|
|
receivers = [{'account': spd.account, 'amount': spd.amount, 'description': "支付推荐佣金"}]
|
|
- success, data = spc.splitaccount_order(pay.transaction_id, self.no, receivers)
|
|
|
|
- if not success:
|
|
|
|
- # 分账请求失败 不再继续
|
|
|
|
- return
|
|
|
|
- # 分账请求成功 结果不一定成功
|
|
|
|
- self.order_id = data['order_id']
|
|
|
|
- if data['state'] == 'PROCESSING':
|
|
|
|
|
|
+ result = spc.splitaccount_order(pay.transaction_id, self.no, receivers)
|
|
|
|
+
|
|
|
|
+ self.order_id = result.get('order_id')
|
|
|
|
+ if result.get('state') == 'PROCESSING':
|
|
self.status = SplitAccount.PROCESSING
|
|
self.status = SplitAccount.PROCESSING
|
|
- if data['state'] == 'FINISHED':
|
|
|
|
|
|
+ if result.get('state') == 'FINISHED':
|
|
self.status = SplitAccount.FINISHED
|
|
self.status = SplitAccount.FINISHED
|
|
self.save()
|
|
self.save()
|
|
- for item in data['receivers']:
|
|
|
|
- # 现在只对一个推荐人分账
|
|
|
|
|
|
+
|
|
|
|
+ for item in result.get('receivers'):
|
|
if item['account'] == spd.account:
|
|
if item['account'] == spd.account:
|
|
if item['result'] == 'PENDING':
|
|
if item['result'] == 'PENDING':
|
|
spd.status = SplitAccountDetail.PENDING
|
|
spd.status = SplitAccountDetail.PENDING
|
|
@@ -467,14 +455,15 @@ class Order(models.Model):
|
|
coupons = ActivityCoupon.objects.filter(activity=self.activity, coupon__enabled=True)
|
|
coupons = ActivityCoupon.objects.filter(activity=self.activity, coupon__enabled=True)
|
|
now = datetime.datetime.date(timezone.now())
|
|
now = datetime.datetime.date(timezone.now())
|
|
for item in coupons:
|
|
for item in coupons:
|
|
- if item.off_type == Coupon.FIXED_DATE:
|
|
|
|
- end_date = item.end_date
|
|
|
|
|
|
+ coupon = item.coupon
|
|
|
|
+ if coupon.off_type == Coupon.FIXED_DATE:
|
|
|
|
+ end_date = coupon.end_date
|
|
else:
|
|
else:
|
|
- end_date = now + datetime.timedelta(days=item.end_days)
|
|
|
|
|
|
+ end_date = now + datetime.timedelta(days=coupon.end_days)
|
|
MemberCoupon.objects.create(
|
|
MemberCoupon.objects.create(
|
|
activity=self.activity,
|
|
activity=self.activity,
|
|
member=self.member,
|
|
member=self.member,
|
|
- coupon=item,
|
|
|
|
|
|
+ coupon=coupon,
|
|
receive_date=now,
|
|
receive_date=now,
|
|
end_date=end_date
|
|
end_date=end_date
|
|
)
|
|
)
|