|
@@ -859,34 +859,38 @@ class CloudStorageView(View):
|
|
|
success = alipay.verify(data, signature)
|
|
|
if success and data["trade_status"] in ("TRADE_SUCCESS", "TRADE_FINISHED"):
|
|
|
print("trade succeed")
|
|
|
+ order_qs = Order_Model.objects.filter(orderID=orderID)
|
|
|
nowTime = int(time.time())
|
|
|
- order_list = order_qs.values("UID", "commodity_code", "channel")
|
|
|
+ order_list = order_qs.values("UID", "channel", "commodity_code", "rank", "isSelectDiscounts")
|
|
|
UID = order_list[0]['UID']
|
|
|
channel = order_list[0]['channel']
|
|
|
- commodity_code = order_list[0]['commodity_code']
|
|
|
- order_qs.update(status=1, updTime=nowTime)
|
|
|
- smqs = Store_Meal.objects.filter(commodity_code=commodity_code). \
|
|
|
- values("day", "bucket_id", "bucket__storeDay")
|
|
|
+ rank = order_list[0]['rank']
|
|
|
+ smqs = Store_Meal.objects.filter(id=rank). \
|
|
|
+ values("day", "bucket_id", "bucket__storeDay", "expire")
|
|
|
bucketId = smqs[0]['bucket_id']
|
|
|
if not smqs.exists():
|
|
|
return response.json(0, '套餐已删除')
|
|
|
- addTime = int(smqs[0]["day"]) * 24 * 3600
|
|
|
- ubqs = UID_Bucket.objects.filter(uid=UID, channel=channel). \
|
|
|
- values("bucket_id", "endTime", "bucket__storeDay")
|
|
|
+ ubqs = UID_Bucket.objects.filter(bucket__id=bucketId, uid=UID, channel=channel, endTime__gte=nowTime). \
|
|
|
+ values("id", "bucket__storeDay", "bucket__region", "endTime").order_by('endTime')[:1]
|
|
|
nowTime = int(time.time())
|
|
|
+
|
|
|
+ expire = smqs[0]['expire']
|
|
|
+ if order_list[0]['isSelectDiscounts'] == 1:
|
|
|
+ expire = smqs[0]['expire'] * 2
|
|
|
if ubqs.exists():
|
|
|
- ubqs_count = ubqs.count()
|
|
|
- ubq = ubqs[ubqs_count - 1, ubqs_count]
|
|
|
- new_starTime = ubq['endTime'] + 1
|
|
|
- ub_cqs = UID_Bucket.objects.create(uid=UID, channel=channel, bucket_id=bucketId,
|
|
|
- endTime=new_starTime + addTime)
|
|
|
- uid_bucket_id = ub_cqs.id
|
|
|
+ ubq = ubqs[0]
|
|
|
+ endTime = CommonService.calcMonthLater(expire, ubq['endTime'])
|
|
|
+ ub_cqs = UID_Bucket.objects.filter(id=ubq['id']).update \
|
|
|
+ (uid=UID, channel=channel, bucket_id=bucketId,
|
|
|
+ endTime=endTime)
|
|
|
+ uid_bucket_id = ubq['id']
|
|
|
else:
|
|
|
- ub_cqs = UID_Bucket.objects.create(uid=UID, channel=channel, bucket_id=bucketId,
|
|
|
- endTime=nowTime + addTime)
|
|
|
+ endTime = CommonService.calcMonthLater(expire)
|
|
|
+ ub_cqs = UID_Bucket.objects.create \
|
|
|
+ (uid=UID, channel=channel, bucket_id=bucketId, endTime=endTime)
|
|
|
uid_bucket_id = ub_cqs.id
|
|
|
- order_qs.update \
|
|
|
- (payTime=nowTime, status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
|
|
|
+
|
|
|
+ order_qs.update(status=1, updTime=nowTime, uid_bucket_id=uid_bucket_id)
|
|
|
red_url = "{SERVER_DOMAIN}cloudstorage/payOK".format(SERVER_DOMAIN=SERVER_DOMAIN)
|
|
|
return HttpResponseRedirect(red_url)
|
|
|
return response.json(0, signature)
|