Browse Source

优惠券新增查询关联套餐列表

zhangdongming 2 years ago
parent
commit
61ae57a1c6
2 changed files with 44 additions and 12 deletions
  1. 34 0
      Controller/CloudPhoto/CloudServiceController.py
  2. 10 12
      Controller/CouponController.py

+ 34 - 0
Controller/CloudPhoto/CloudServiceController.py

@@ -56,3 +56,37 @@ class CloudServiceController(View):
         for item in coupon_combo_qs:
             combo_list.append(item['combo_id'])
         return combo_list
+
+    @classmethod
+    def get_combo_list(cls, coupon_type, coupon_id):
+        """
+        根据优惠券类型与优惠券ID,获取关联套餐列表
+        @param coupon_type: 优惠券类型
+        @param coupon_id: 套餐id
+        @return: coupon_list
+        """
+        combo_qs = CouponCombo.objects.filter(coupon_type=coupon_type, coupon_id=coupon_id) \
+            .values('combo_id')
+        combo_list = []
+        if not combo_qs.exists():
+            return combo_list
+        for item in combo_qs:
+            combo_list.append(item['combo_id'])
+        return combo_list
+
+    @classmethod
+    def get_coupon_list(cls, coupon_type, combo_id):
+        """
+        根据优惠券类型与套餐ID,获取关联优惠券列表
+        @param coupon_type: 优惠券类型
+        @param combo_id: 套餐id
+        @return: coupon_list
+        """
+        coupon_combo_qs = CouponCombo.objects.filter(coupon_type=coupon_type, combo_id=combo_id) \
+            .values('coupon_id')
+        coupon_list = []
+        if not coupon_combo_qs.exists():
+            return coupon_list
+        for item in coupon_combo_qs:
+            coupon_list.append(item['coupon_id'])
+        return coupon_list

+ 10 - 12
Controller/CouponController.py

@@ -1,16 +1,15 @@
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
-import base64
-import json
-import os
 import time
-import math
+
+from django.db.models import F
+from django.http import HttpResponse
 from django.views.generic.base import View
-from Model.models import CouponModel, Device_User, CouponConfigModel, CouponLang
+
+from Controller.CloudPhoto.CloudServiceController import CloudServiceController
+from Model.models import CouponModel, Device_User
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
-from django.db.models import Q, F, Count
-from django.http import JsonResponse, HttpResponseRedirect, HttpResponse
 from Service.CommonService import CommonService
 
 
@@ -67,7 +66,7 @@ class CouponView(View):
             CouponModel.objects.create(
                 use_status=0,
                 distribute_time=now_time,
-                valid_time=now_time+10000000,
+                valid_time=now_time + 10000000,
                 userID=userID,
                 coupon_config_id=coupon_config_id,
                 update_time=now_time,
@@ -81,10 +80,6 @@ class CouponView(View):
     def query_user_coupon(self, request_dict, userID, response):  # 用户优惠券列表
         now_time = int(time.time())
         lang = request_dict.get('lang', 'en')
-        # couponObj = CouponModel.objects.filter(userID_id=userID, use_status=0, distributeTime__lte=now_time,
-        #                                        valid_time__gt=now_time).annotate(coupon_id=F('id')).values(
-        #     "coupon_id", "type", "coupon_discount", "valid_time")
-
         coupon_obj = CouponModel.objects.filter(
             userID=userID,
             use_status=0,
@@ -99,6 +94,7 @@ class CouponView(View):
             remark=F('coupon_config__lang__remark'),
             quota=F('coupon_config__lang__quota'),
             unit=F('coupon_config__lang__unit'),
+            config_id=F('coupon_config_id')
         ).values(
             "coupon_id",
             "type",
@@ -108,10 +104,12 @@ class CouponView(View):
             "remark",
             "quota",
             "unit",
+            "config_id"
         )
 
         for couponList in coupon_obj:
             couponList['valid_time'] = CommonService.timestamp_to_str(couponList['valid_time'])
+            couponList['comboList'] = CloudServiceController.get_combo_list(0, couponList['config_id'])
 
         result = {
             'count': coupon_obj.count(),