|
@@ -1,6 +1,8 @@
|
|
|
#!/usr/bin/env python3
|
|
|
# -*- coding: utf-8 -*-
|
|
|
import time
|
|
|
+from datetime import datetime
|
|
|
+
|
|
|
|
|
|
from django.db.models import F
|
|
|
from django.http import HttpResponse
|
|
@@ -11,6 +13,7 @@ from Model.models import CouponModel, Device_User
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
|
from Service.CommonService import CommonService
|
|
|
+from Ansjer.config import LOGGER, CONFIG_INFO, CONFIG_TEST
|
|
|
|
|
|
|
|
|
# 优惠券
|
|
@@ -42,6 +45,9 @@ class CouponView(View):
|
|
|
userID = tko.userID
|
|
|
if operation == 'UserCoupon': # 用户优惠券
|
|
|
return self.query_user_coupon(request_dict, userID, response)
|
|
|
+ elif operation == 'createCoupon':
|
|
|
+ self.generate_coupon_by_user(userID)
|
|
|
+ return response.json(0)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -116,3 +122,40 @@ class CouponView(View):
|
|
|
'couponList': list(coupon_obj),
|
|
|
}
|
|
|
return response.json(0, result)
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def generate_coupon_by_user(user_id):
|
|
|
+ """
|
|
|
+ 赠送优惠券圣诞节
|
|
|
+ @param user_id: 用户ID
|
|
|
+ @return: True | False
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ # 创建指定的日期和时间
|
|
|
+ end_dt = datetime(2024, 12, 29, 23, 59, 59)
|
|
|
+ end_timestamp = int(end_dt.timestamp()) # 圣诞节活动时间戳
|
|
|
+
|
|
|
+ now_time = int(time.time())
|
|
|
+ if now_time >= end_timestamp:
|
|
|
+ LOGGER.info('活动已结束,无法赠送优惠券')
|
|
|
+ return False
|
|
|
+
|
|
|
+ # 赠送三个优惠券
|
|
|
+ for i in range(1, 4): # 赠送三个优惠券
|
|
|
+ coupon_config_id = 21 if i < 3 else 22 # 21 9折 22 8折
|
|
|
+ CouponModel.objects.create(
|
|
|
+ use_status=0,
|
|
|
+ distribute_time=now_time,
|
|
|
+ valid_time=end_timestamp,
|
|
|
+ userID=user_id,
|
|
|
+ coupon_config_id=coupon_config_id,
|
|
|
+ update_time=now_time,
|
|
|
+ create_time=now_time
|
|
|
+ )
|
|
|
+
|
|
|
+ return True
|
|
|
+ except Exception as e:
|
|
|
+ # 记录异常信息
|
|
|
+ LOGGER.error('赠送优惠券异常 user: {}: errLine: {}, errMsg: {}'.format(
|
|
|
+ user_id, e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ return False
|