提交 182721fc authored 作者: 张颂恩's avatar 张颂恩

提交

上级 805c57af
...@@ -57,6 +57,7 @@ from datacenter.common import * ...@@ -57,6 +57,7 @@ from datacenter.common import *
import io import io
from PIL import Image from PIL import Image
from base64 import b64encode, b64decode from base64 import b64encode, b64decode
from wx.views import send_hb
sK = 'fgfdvgu$#&3t@j' sK = 'fgfdvgu$#&3t@j'
...@@ -14322,38 +14323,76 @@ def wx_withdraw_cash(request): ...@@ -14322,38 +14323,76 @@ def wx_withdraw_cash(request):
cur.execute(s) cur.execute(s)
r = cur.fetchone() r = cur.fetchone()
if r: if r:
ancestor_id = r[3]
de_points = int(amount) * r[1] de_points = int(amount) * r[1]
# 核对当前积分知否足够提现该次金额 # 核对当前积分知否足够提现该次金额
if de_points > r[2]: if de_points > r[2]:
data['e']="积分不足" data['e']="积分不足"
return JsonResponse(data) return JsonResponse(data)
# 事务
# 事务
try: try:
with transaction.atomic(): with transaction.atomic():
# 扣除积分 # 扣除积分
s = "update logistics.company_bonuspoints set points = ( points - "+str(de_points)+") where company_id = "+ str(c_id) s = "update logistics.company_bonuspoints set points = ( points - "+str(de_points)+") where company_id = "+ str(c_id)
cur.execute(s) cur.execute(s)
# 积分以及积分人写入积分日志表 # 积分以及积分人写入积分日志表
pr = PointsRedeemed(ancestor_id = r[3],company_id=c_id,user_id=user_id,points=de_points,amount=amount, pr = PointsRedeemed(ancestor_id = ancestor_id,company_id=c_id,user_id=user_id,points=de_points,amount=amount,
remark="提现积分扣除") remark="提现积分扣除")
pr.save() pr.save()
bp = BonusPointsLog(ancestor_id=r[3], company_id=c_id, user_id=user_id, bp = BonusPointsLog(ancestor_id=r[3], company_id=c_id, user_id=user_id,
channelpromotions_id=r[4], content_object=pr, channelpromotions_id=r[4], content_object=pr,
object_id=pr.id, self_points=-de_points, remark="提现积分扣除") object_id=pr.id, self_points=-de_points, remark="提现积分扣除")
bp.save() bp.save()
# i = 1/0
w = Withdraw(
company_id=c_id,
ancestor_id=ancestor_id,
user_id=user_id,
amount=amount,
reason='提现申请',
openid=open_id,
state=1
)
w.save()
# 提现 # 提现
err = send_hb(open_id, amount, ancestor_id)
if err['return_code'] == 'SUCCESS':
if err['result_code'] == 'SUCCESS':
if 'send_listid' in err:
wxpay_code = err['send_listid']
if 'partner_trade_no' in err:
wxpay_code = err['partner_trade_no']
else:
if err['return_msg'].startswith('您的商户号') or '余额不足' in err['return_msg']:
data['e'] = '系统升级,请保留好二维码稍后再试-1'
else:
data['e'] = err['return_msg']
if 'err_code_des' in err and err['err_code_des']:
if err['err_code_des'].startswith('该用户今日付款次数超过限制'):
data['e'] = '今天可领取次数已达上限'
elif '余额不足' in err['err_code_des']:
data['e'] = '系统升级,请保留好二维码稍后再试-2'
else:
data['e'] = err['err_code_des']
#抛出错误
i = 1/0
#raise ''
else:
data['e'] = '网络超时'
except: except:
# 发生错误时回滚 # 发生错误时回滚
if data['e'] == '':
data['e']="未知错误" data['e']="未知错误"
finally: finally:
# 返回总金额 pass
s = "SELECT sum(amount) from logistics.company_pointsredeemed where company_id = "+str(c_id)+" and ancestor_id = "+str(r[3])+";"
cur.execute(s)
totals = cur.fetchone()
if totals:
data['total']= totals[0]
return JsonResponse(data) return JsonResponse(data)
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论