Parcourir la source

支付成功、主次用户

chenshibin il y a 4 ans
Parent
commit
defa175242
3 fichiers modifiés avec 54 ajouts et 23 suppressions
  1. 22 18
      Controller/CloudStorage.py
  2. 16 2
      Controller/EquipmentManager.py
  3. 16 3
      Controller/EquipmentManagerV3.py

+ 22 - 18
Controller/CloudStorage.py

@@ -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)

+ 16 - 2
Controller/EquipmentManager.py

@@ -387,6 +387,20 @@ def addInterface(request):
                 # # 判断是否有已绑定用户
                 # if is_bind:
                 #     return response.json(15)
+
+                main_exist = Device_Info.objects.filter(UID=UID, primaryUserID='',primaryMaster__isnull='')
+                pk = CommonService.getUserID(getUser=False)
+                primaryMaster = ''
+                primaryUserID = ''
+                if not main_exist:
+
+                    duq = Device_User.objects.filter(userID=userID).values('username')
+                    if duq[0].exists():
+                        username = duq[0]['username']
+                        primaryMaster = username
+                        primaryUserID = userID
+
+
                 try:
                     # 判断是否有用户绑定
                     nowTime = int(time.time())
@@ -403,10 +417,10 @@ def addInterface(request):
                         UidSetModel.objects.create(**uid_set_create_dict)
                     else:
                         us_qs.update(nickname=NickName)
-                    pk = CommonService.getUserID(getUser=False)
+
                     userDevice = Device_Info(id=pk, userID_id=userID, UID=UID,
                                              NickName=NickName, View_Account=View_Account,
-                                             View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex)
+                                             View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex, primaryUserID=primaryUserID, primaryMaster=primaryMaster)
                     userDevice.save()
                     # redisObj = RedisObject(db=8)
                     # redisObj.del_data(key='uid_qs_' + userID)

+ 16 - 3
Controller/EquipmentManagerV3.py

@@ -11,7 +11,8 @@ from django.db.models import Q
 from django.views.generic.base import View
 from Object.RedisObject import RedisObject
 from Ansjer.config import OSS_STS_ACCESS_SECRET, OSS_STS_ACCESS_KEY, BASE_DIR
-from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel, UidChannelSetModel
+from Model.models import Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel, UidChannelSetModel, \
+    Device_User
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -85,6 +86,18 @@ class EquipmentManagerV3(View):
                     # # 判断是否有已绑定用户
                     # if is_bind:
                     #     return response.json(15)
+
+                    main_exist = Device_Info.objects.filter(UID=UID, primaryUserID='', primaryMaster__isnull='')
+                    pk = CommonService.getUserID(getUser=False)
+                    primaryMaster = ''
+                    primaryUserID = ''
+                    if not main_exist:
+
+                        duq = Device_User.objects.filter(userID=userID).values('username')
+                        if duq[0].exists():
+                            username = duq[0]['username']
+                            primaryMaster = username
+                            primaryUserID = userID
                     try:
                         # 判断是否有用户绑定
                         nowTime = int(time.time())
@@ -101,10 +114,10 @@ class EquipmentManagerV3(View):
                             UidSetModel.objects.create(**uid_set_create_dict)
                         else:
                             us_qs.update(nickname=NickName)
-                        pk = CommonService.getUserID(getUser=False)
+
                         userDevice = Device_Info(id=pk, userID_id=userID, UID=UID,
                                                  NickName=NickName, View_Account=View_Account,
-                                                 View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex)
+                                                 View_Password=View_Password, Type=Type, ChannelIndex=ChannelIndex, primaryUserID=primaryUserID, primaryMaster=primaryMaster)
                         userDevice.save()
 
                         if not us_qs.exists():