locky 8 сар өмнө
parent
commit
85a25e2a87

+ 26 - 1
Controller/AppSetController.py

@@ -5,9 +5,11 @@ import time
 from django.db import transaction
 from django.views.generic.base import View
 
-from Ansjer.config import SERVER_TYPE
+from Ansjer.config import SERVER_TYPE, CONFIG_INFO, CONFIG_TEST
 from Model.models import AppSetModel, PromotionRuleModel, PopupsConfig, RedDotsConfig, Device_Info, UidSetModel, \
     UserOperationLog, Order_Model, IPAddr, RegionRestriction, UserSetStatus
+from Object.Enums.ConstantEnum import ConstantEnum
+from Object.Enums.RedisKeyConstant import RedisKeyConstant
 from Object.IPWeatherObject import IPQuery
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
@@ -53,6 +55,8 @@ class AppSetView(View):
             return self.status_by_ip(user_id, request, response)
         elif operation == 'userSetAdStatus':
             return self.user_set_ad_status(user_id, request_dict, response)
+        elif operation == 'promotionTime':
+            return self.promotion_time(user_id, response)
         else:
             return response.json(414)
 
@@ -368,3 +372,24 @@ class AppSetView(View):
         except Exception as e:
             LOGGER.info('设置用户广告状态异常,errLine:{}, errMsg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
             return response.json(500)
+
+    @staticmethod
+    def promotion_time(user_id, response):
+        """
+        促销时间
+        @return:
+        """
+        redis_obj = RedisObject()
+        distribute_key = RedisKeyConstant.CLOUD_STORAGE_COUPONS.value + user_id
+        is_distributed = redis_obj.get_data(distribute_key)
+        if is_distributed == '1':
+            if CONFIG_INFO == CONFIG_TEST:
+                start_time = 1734080109
+            else:
+                start_time = ConstantEnum.PROMOTION_START_TIME.value
+            res = {
+                'start_time': start_time,
+                'end_time': ConstantEnum.PROMOTION_END_TIME.value
+            }
+            return response.json(0, res)
+        return response.json(0)

+ 2 - 1
Controller/CouponController.py

@@ -7,6 +7,7 @@ from django.views.generic.base import View
 
 from Controller.CloudPhoto.CloudServiceController import CloudServiceController
 from Model.models import CouponModel, Device_User
+from Object.Enums.ConstantEnum import ConstantEnum
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Service.CommonService import CommonService
@@ -128,7 +129,7 @@ class CouponView(View):
         @return: True | False
         """
         try:
-            end_timestamp = 1735534799  # 活动时间结束: 东部时间2024-12-29 23:59:59
+            end_timestamp = ConstantEnum.PROMOTION_END_TIME.value
             now_time = int(time.time())
             if now_time >= end_timestamp:
                 LOGGER.info('活动已结束,无法赠送优惠券')

+ 2 - 2
Controller/SysManage.py

@@ -23,6 +23,7 @@ from Ansjer.config import BASE_DIR
 from Controller.CouponController import CouponView
 from Model.models import SysMsgModel, Device_Info, Ai_Push_Info, UidSetModel, ExperienceContextModel, Order_Model, \
     UID_Bucket
+from Object.Enums.ConstantEnum import ConstantEnum
 from Object.Enums.RedisKeyConstant import RedisKeyConstant
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
@@ -138,8 +139,7 @@ def initMsgFunc(request):
     }
     # 如果没有发放过云存优惠券,异步发放
     now_time = int(time.time())
-    # 活动时间: 东部时间2024-12-23 00:00:00 - 2024-12-29 23:59:59
-    start_time, end_time = 1734930000, 1735534799
+    start_time, end_time = ConstantEnum.PROMOTION_START_TIME.value, ConstantEnum.PROMOTION_END_TIME.value
     # 缓存过期时间
     expire = end_time - now_time
     if expire > 0:

+ 11 - 0
Object/Enums/ConstantEnum.py

@@ -0,0 +1,11 @@
+# @Author    : Rocky
+# @File      : ConstantEnum.py
+# @Time      : 2024/12/13 16:28
+from enum import IntEnum, unique
+
+
+@unique
+class ConstantEnum(IntEnum):
+    # 2024圣诞促销活动时间: 东部时间2024-12-23 00:00:00 - 2024-12-29 23:59:59
+    PROMOTION_START_TIME = 1734930000
+    PROMOTION_END_TIME = 1735534799