|
@@ -0,0 +1,479 @@
|
|
|
+#!/usr/bin/env python3
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+import time
|
|
|
+
|
|
|
+from django.views.generic.base import View
|
|
|
+from Model.models import Lang, AiStoreMeal, AiService, Order_Model
|
|
|
+from Object.ResponseObject import ResponseObject
|
|
|
+from Object.TokenObject import TokenObject
|
|
|
+from Service.CommonService import CommonService
|
|
|
+
|
|
|
+
|
|
|
+class AiServeView(View):
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation')
|
|
|
+ return self.validation(request.GET, request, operation)
|
|
|
+
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ operation = kwargs.get('operation')
|
|
|
+ return self.validation(request.POST, request, operation)
|
|
|
+
|
|
|
+ def validation(self, request_dict, request, operation):
|
|
|
+ language = request_dict.get('language', 'en')
|
|
|
+ response = ResponseObject(language, 'pc')
|
|
|
+ if operation == 'xxx': # 不认证token接口
|
|
|
+ pass
|
|
|
+ else:
|
|
|
+ tko = TokenObject(
|
|
|
+ request.META.get('HTTP_AUTHORIZATION'),
|
|
|
+ returntpye='pc')
|
|
|
+ if tko.code != 0:
|
|
|
+ return response.json(tko.code)
|
|
|
+ response.lang = tko.lang
|
|
|
+ userID = tko.userID
|
|
|
+ # ai套餐信息相关
|
|
|
+ if operation == 'getAiStoreMealList':
|
|
|
+ return self.getAiStoreMealList(request_dict, response)
|
|
|
+ elif operation == 'addOrEditAiStoreMeal':
|
|
|
+ return self.addOrEditAiStoreMeal(request_dict, response)
|
|
|
+ elif operation == 'deleteAiStoreMeal':
|
|
|
+ return self.deleteAiStoreMeal(request_dict, response)
|
|
|
+ # ai套餐语言相关
|
|
|
+ elif operation == 'getAiMealLanguage':
|
|
|
+ return self.getAiMealLanguage(request_dict, response)
|
|
|
+ elif operation == 'addOrEditAiMealLanguage':
|
|
|
+ return self.addOrEditAiMealLanguage(request_dict, response)
|
|
|
+ elif operation == 'deleteAiMealLanguage':
|
|
|
+ return self.deleteAiMealLanguage(request_dict, response)
|
|
|
+ # 设备ai套餐相关
|
|
|
+ elif operation == 'getDeviceAiMealList':
|
|
|
+ return self.getDeviceAiMealList(request_dict, response)
|
|
|
+ # ai用户信息相关
|
|
|
+ elif operation == 'getAiUserList':
|
|
|
+ return self.getAiUserList(request_dict, response)
|
|
|
+ # ai服务开通数量数据
|
|
|
+ elif operation == 'getAiDataList':
|
|
|
+ return self.getAiDataList(request_dict, response)
|
|
|
+ else:
|
|
|
+ return response.json(404)
|
|
|
+
|
|
|
+ def getAiStoreMealList(self, request_dict, response):
|
|
|
+ # 获取ai套餐信息数据
|
|
|
+ print('request_dict: ', request_dict)
|
|
|
+
|
|
|
+ isSelect = request_dict.get('isSelect', None)
|
|
|
+ if isSelect:
|
|
|
+ # 获取套餐ID作为选项
|
|
|
+ ai_meal_qs = AiStoreMeal.objects.filter(
|
|
|
+ lang__lang='cn').values(
|
|
|
+ 'id', 'lang__title')
|
|
|
+ return response.json(
|
|
|
+ 0, {'list': CommonService.qs_to_list(ai_meal_qs)})
|
|
|
+
|
|
|
+ pageNo = request_dict.get('pageNo', None)
|
|
|
+ pageSize = request_dict.get('pageSize', None)
|
|
|
+
|
|
|
+ if not all([pageNo, pageSize]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ page = int(pageNo)
|
|
|
+ line = int(pageSize)
|
|
|
+ try:
|
|
|
+ ai_meal_qs = AiStoreMeal.objects.filter()
|
|
|
+ ai_meal_val = ai_meal_qs.values(
|
|
|
+ 'id',
|
|
|
+ 'price',
|
|
|
+ 'virtual_price',
|
|
|
+ 'symbol',
|
|
|
+ 'currency',
|
|
|
+ 'currency',
|
|
|
+ 'is_show',
|
|
|
+ 'is_discounts',
|
|
|
+ 'discount_price',
|
|
|
+ 'effective_day',
|
|
|
+ 'add_time',
|
|
|
+ 'update_time')
|
|
|
+ total = len(ai_meal_val)
|
|
|
+ ai_meals = ai_meal_val[(page - 1) * line:page * line]
|
|
|
+ ai_meal_list = []
|
|
|
+ for ai_meal in ai_meals:
|
|
|
+ # 获取支付方式列表
|
|
|
+ pay_type_list = [
|
|
|
+ pay_type['id'] for pay_type in AiStoreMeal.objects.get(
|
|
|
+ id=ai_meal['id']).pay_type.values('id')]
|
|
|
+ # 组织响应数据
|
|
|
+ ai_meal_list.append({
|
|
|
+ 'aiMealID': ai_meal['id'],
|
|
|
+ 'price': ai_meal['price'],
|
|
|
+ 'virtual_price': ai_meal['virtual_price'],
|
|
|
+ 'symbol': ai_meal['symbol'],
|
|
|
+ 'currency': ai_meal['currency'],
|
|
|
+ 'is_show': ai_meal['is_show'],
|
|
|
+ 'is_discounts': ai_meal['is_discounts'],
|
|
|
+ 'discount_price': ai_meal['discount_price'],
|
|
|
+ 'effective_day': ai_meal['effective_day'],
|
|
|
+ 'pay_type': pay_type_list,
|
|
|
+ 'addTime': ai_meal['add_time'].strftime("%Y-%m-%d %H:%M:%S"),
|
|
|
+ 'updTime': ai_meal['update_time'].strftime("%Y-%m-%d %H:%M:%S"),
|
|
|
+ })
|
|
|
+ print('store_meal_list: ', ai_meal_list)
|
|
|
+ return response.json(
|
|
|
+ 0, {'list': ai_meal_list, 'total': total})
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def addOrEditAiStoreMeal(self, request_dict, response):
|
|
|
+ # 添加/编辑套餐
|
|
|
+ print('request_dict: ', request_dict)
|
|
|
+ aiMealID = request_dict.get('aiMealID', None)
|
|
|
+ effective_day = int(request_dict.get('effective_day', 0))
|
|
|
+ price = request_dict.get('price', '')
|
|
|
+ virtual_price = request_dict.get('virtual_price', '')
|
|
|
+ currency = request_dict.get('currency', '')
|
|
|
+ symbol = request_dict.get('symbol', '')
|
|
|
+ pay_type = request_dict.get(
|
|
|
+ 'pay_type', '')[
|
|
|
+ 1:-1].split(',') # '[1,2]' -> ['1','2']
|
|
|
+ is_discounts = int(request_dict.get('is_discounts', 0))
|
|
|
+ discount_price = request_dict.get('discount_price', '')
|
|
|
+ is_show = int(request_dict.get('is_show', 1))
|
|
|
+ isEdit = request_dict.get('isEdit', None)
|
|
|
+
|
|
|
+ if not all([effective_day, price, currency, symbol, pay_type]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ try:
|
|
|
+ ai_store_meal_data = {
|
|
|
+ 'effective_day': effective_day,
|
|
|
+ 'price': price,
|
|
|
+ 'virtual_price': virtual_price,
|
|
|
+ 'currency': currency,
|
|
|
+ 'symbol': symbol,
|
|
|
+ 'is_discounts': is_discounts,
|
|
|
+ 'discount_price': discount_price,
|
|
|
+ 'is_show': is_show,
|
|
|
+ }
|
|
|
+ if isEdit:
|
|
|
+ if not aiMealID:
|
|
|
+ return response.json(444)
|
|
|
+ AiStoreMeal.objects.filter(
|
|
|
+ id=aiMealID).update(
|
|
|
+ **ai_store_meal_data)
|
|
|
+ AiStoreMeal.objects.get(id=aiMealID).pay_type.set(pay_type)
|
|
|
+ else:
|
|
|
+ AiStoreMeal.objects.create(
|
|
|
+ **ai_store_meal_data).pay_type.set(pay_type)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def deleteAiStoreMeal(self, request_dict, response):
|
|
|
+ # 删除ai套餐
|
|
|
+ print('request_dict: ', request_dict)
|
|
|
+ aiMealID = request_dict.get('aiMealID', None)
|
|
|
+ if not aiMealID:
|
|
|
+ return response.json(444)
|
|
|
+ try:
|
|
|
+ AiStoreMeal.objects.filter(id=aiMealID).delete()
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def getAiMealLanguage(self, request_dict, response):
|
|
|
+ # 获取ai套餐语言
|
|
|
+ print('request_dict: ', request_dict)
|
|
|
+ aiMealID = request_dict.get('aiMealID', None)
|
|
|
+ pageNo = request_dict.get('pageNo', None)
|
|
|
+ pageSize = request_dict.get('pageSize', None)
|
|
|
+
|
|
|
+ if not all([pageNo, pageSize]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ page = int(pageNo)
|
|
|
+ line = int(pageSize)
|
|
|
+ try:
|
|
|
+ if aiMealID: # 条件查询
|
|
|
+ store_meal_lang_qs = AiStoreMeal.objects.filter(id=aiMealID)
|
|
|
+ else: # 查询全部
|
|
|
+ store_meal_lang_qs = AiStoreMeal.objects.filter(
|
|
|
+ lang__isnull=False)
|
|
|
+ ai_meal_lang_val = store_meal_lang_qs.values(
|
|
|
+ 'id',
|
|
|
+ 'lang__id',
|
|
|
+ 'lang__lang',
|
|
|
+ 'lang__title',
|
|
|
+ 'lang__content',
|
|
|
+ 'lang__discount_content',
|
|
|
+ )
|
|
|
+ total = len(ai_meal_lang_val)
|
|
|
+ ai_meal_langs = ai_meal_lang_val[(
|
|
|
+ page - 1) * line:page * line]
|
|
|
+ ai_meal_lang_list = []
|
|
|
+ for ai_meal_lang in ai_meal_langs:
|
|
|
+ ai_meal_lang_list.append({
|
|
|
+ 'aiMealID': ai_meal_lang['id'],
|
|
|
+ 'langID': ai_meal_lang['lang__id'],
|
|
|
+ 'lang': ai_meal_lang['lang__lang'],
|
|
|
+ 'title': ai_meal_lang['lang__title'],
|
|
|
+ 'content': ai_meal_lang['lang__content'],
|
|
|
+ 'discountContent': ai_meal_lang['lang__discount_content'],
|
|
|
+ })
|
|
|
+ print('ai_meal_lang_list: ', ai_meal_lang_list)
|
|
|
+ return response.json(
|
|
|
+ 0, {'list': ai_meal_lang_list, 'total': total})
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def addOrEditAiMealLanguage(self, request_dict, response):
|
|
|
+ # 添加/编辑套餐语言
|
|
|
+ print('request_dict: ', request_dict)
|
|
|
+ aiMealID = request_dict.get('aiMealID', None)
|
|
|
+ lang = request_dict.get('lang', None)
|
|
|
+ title = request_dict.get('title', None)
|
|
|
+ content = request_dict.get('content', None)
|
|
|
+ discount_content = request_dict.get('discountContent', '')
|
|
|
+ isEdit = request_dict.get('isEdit', None)
|
|
|
+
|
|
|
+ if not all([aiMealID, lang, title, content]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ try:
|
|
|
+ # 查询套餐是否存在
|
|
|
+ ai_meal_qs = AiStoreMeal.objects.get(id=aiMealID)
|
|
|
+ if not ai_meal_qs:
|
|
|
+ return response.json(173)
|
|
|
+ if isEdit: # 编辑
|
|
|
+ langID = request_dict.get('langID', None)
|
|
|
+ if not langID:
|
|
|
+ return response.json(444)
|
|
|
+ Lang.objects.filter(
|
|
|
+ id=langID).update(
|
|
|
+ lang=lang,
|
|
|
+ title=title,
|
|
|
+ content=content,
|
|
|
+ discount_content=discount_content)
|
|
|
+ else: # 添加
|
|
|
+ lang_obj = Lang.objects.filter(
|
|
|
+ lang=lang,
|
|
|
+ title=title,
|
|
|
+ content=content,
|
|
|
+ discount_content=discount_content)
|
|
|
+ if not lang_obj.exists():
|
|
|
+ # 数据不存在,lang表创建数据
|
|
|
+ Lang.objects.create(
|
|
|
+ lang=lang,
|
|
|
+ title=title,
|
|
|
+ content=content,
|
|
|
+ discount_content=discount_content)
|
|
|
+ lang_obj = Lang.objects.filter(
|
|
|
+ lang=lang,
|
|
|
+ title=title,
|
|
|
+ content=content,
|
|
|
+ discount_content=discount_content)
|
|
|
+ ai_meal_qs.lang.add(*lang_obj) # store_meal表添加语言数据
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def deleteAiMealLanguage(self, request_dict, response):
|
|
|
+ # 删除套餐语言
|
|
|
+ aiMealID = request_dict.get('aiMealID', None)
|
|
|
+ langID = request_dict.get('langID', None)
|
|
|
+
|
|
|
+ if not all([aiMealID, langID]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ try:
|
|
|
+ ai_meal_qs = AiStoreMeal.objects.get(id=aiMealID)
|
|
|
+ if not ai_meal_qs:
|
|
|
+ return response.json(173)
|
|
|
+ lang_qs = Lang.objects.filter(id=langID)
|
|
|
+ ai_meal_qs.lang.remove(*lang_qs)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def getDeviceAiMealList(self, request_dict, response):
|
|
|
+ pageNo = request_dict.get('pageNo', None)
|
|
|
+ pageSize = request_dict.get('pageSize', None)
|
|
|
+ uid = request_dict.get('uid', None)
|
|
|
+ if not all([pageNo, pageSize]):
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ page = int(pageNo)
|
|
|
+ line = int(pageSize)
|
|
|
+ try:
|
|
|
+ ai_service_qs = AiService.objects.all()
|
|
|
+ if uid:
|
|
|
+ ai_service_qs = ai_service_qs.filter(uid__contains=uid)
|
|
|
+
|
|
|
+ if not ai_service_qs.exists():
|
|
|
+ return response.json(0, [])
|
|
|
+
|
|
|
+ count = ai_service_qs.count()
|
|
|
+ ai_service_qs = ai_service_qs.values(
|
|
|
+ 'id',
|
|
|
+ 'uid',
|
|
|
+ 'channel',
|
|
|
+ 'use_status',
|
|
|
+ 'detect_status',
|
|
|
+ 'detect_group',
|
|
|
+ 'endTime',
|
|
|
+ 'addTime',
|
|
|
+ 'updTime',)
|
|
|
+
|
|
|
+ ai_service_qs = ai_service_qs[(page - 1) * line:page * line]
|
|
|
+ return response.json(
|
|
|
+ 0, {'list': list(ai_service_qs), 'total': count})
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def getAiUserList(self, request_dict, response):
|
|
|
+ username = request_dict.get('username', None)
|
|
|
+ NickName = request_dict.get('NickName', None)
|
|
|
+ uid = request_dict.get('uid', None)
|
|
|
+ payType = request_dict.get('payType', None)
|
|
|
+ status = request_dict.get('status', None)
|
|
|
+ use_status = request_dict.get('use_status', None)
|
|
|
+ addTimeRange = request_dict.getlist('addTimeRange[]', None)
|
|
|
+
|
|
|
+ pageNo = request_dict.get('pageNo', None)
|
|
|
+ pageSize = request_dict.get('pageSize', None)
|
|
|
+ if not all([pageNo, pageSize]):
|
|
|
+ return response.json(444)
|
|
|
+ page = int(pageNo)
|
|
|
+ line = int(pageSize)
|
|
|
+
|
|
|
+ try:
|
|
|
+ order_qs = Order_Model.objects.filter(
|
|
|
+ order_type=1).order_by('-addTime')
|
|
|
+ if username or NickName or uid or payType or status or use_status or addTimeRange:
|
|
|
+ if username:
|
|
|
+ order_qs = order_qs.filter(
|
|
|
+ userID__username__contains=username)
|
|
|
+ if NickName:
|
|
|
+ order_qs = order_qs.filter(
|
|
|
+ userID__NickName__contains=NickName)
|
|
|
+ if uid:
|
|
|
+ order_qs = order_qs.filter(UID__contains=uid)
|
|
|
+ if payType:
|
|
|
+ order_qs = order_qs.filter(payType=payType)
|
|
|
+ if status:
|
|
|
+ order_qs = order_qs.filter(status=status)
|
|
|
+ if use_status:
|
|
|
+ order_qs = order_qs.filter(use_status=use_status)
|
|
|
+ if addTimeRange:
|
|
|
+ addStartTime, addEndTime = int(
|
|
|
+ addTimeRange[0][:-3]), int(addTimeRange[1][:-3])
|
|
|
+ order_qs = order_qs.filter(
|
|
|
+ addTime__gte=addStartTime,
|
|
|
+ addTime__lte=addEndTime)
|
|
|
+ if not order_qs.exists():
|
|
|
+ return response.json(0, {'list': [], 'total': 0})
|
|
|
+ count = order_qs.count()
|
|
|
+ else:
|
|
|
+ count = Order_Model.objects.filter(order_type=1).count()
|
|
|
+ order_qs = order_qs.values(
|
|
|
+ 'userID__username',
|
|
|
+ 'userID__NickName',
|
|
|
+ 'UID',
|
|
|
+ 'channel',
|
|
|
+ 'orderID',
|
|
|
+ 'desc',
|
|
|
+ 'payType',
|
|
|
+ 'price',
|
|
|
+ 'status',
|
|
|
+ 'refunded_amount',
|
|
|
+ 'addTime',
|
|
|
+ 'updTime',
|
|
|
+ )[(page - 1) * line:page * line]
|
|
|
+ data_list = []
|
|
|
+ for order in order_qs:
|
|
|
+ data_dict = {
|
|
|
+ 'username': order['userID__username'],
|
|
|
+ 'NickName': order['userID__NickName'],
|
|
|
+ 'uid': order['UID'],
|
|
|
+ 'channel': order['channel'],
|
|
|
+ 'orderID': order['orderID'],
|
|
|
+ 'desc': order['desc'],
|
|
|
+ 'payType': order['payType'],
|
|
|
+ 'price': order['price'],
|
|
|
+ 'status': order['status'],
|
|
|
+ 'refunded_amount': order['refunded_amount'],
|
|
|
+ 'addTime': order['addTime'],
|
|
|
+ 'updTime': order['updTime'],
|
|
|
+ }
|
|
|
+ ai_service_qs = AiService.objects.filter(
|
|
|
+ orders_id=order['orderID']).values(
|
|
|
+ 'endTime', 'use_status')
|
|
|
+ if ai_service_qs.exists():
|
|
|
+ data_dict['endTime'] = ai_service_qs[0]['endTime']
|
|
|
+ data_dict['use_status'] = ai_service_qs[0]['use_status']
|
|
|
+ data_list.append(data_dict)
|
|
|
+ return response.json(
|
|
|
+ 0, {'list': data_list, 'total': count})
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ def getAiDataList(self, request_dict, response):
|
|
|
+ year = request_dict.get('year', None)
|
|
|
+ Jan = int(time.mktime(time.strptime(year + '-1-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Feb = int(time.mktime(time.strptime(year + '-2-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Mar = int(time.mktime(time.strptime(year + '-3-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Apr = int(time.mktime(time.strptime(year + '-4-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ May = int(time.mktime(time.strptime(year + '-5-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Jun = int(time.mktime(time.strptime(year + '-6-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Jul = int(time.mktime(time.strptime(year + '-7-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Aug = int(time.mktime(time.strptime(year + '-8-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Sep = int(time.mktime(time.strptime(year + '-9-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Oct = int(time.mktime(time.strptime(year + '-10-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Nov = int(time.mktime(time.strptime(year + '-11-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Dec = int(time.mktime(time.strptime(year + '-12-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+ Jan_next = int(time.mktime(time.strptime(str(int(year)+1) + '-1-1 00:00:00', "%Y-%m-%d %H:%M:%S")))
|
|
|
+
|
|
|
+ list_data = []
|
|
|
+ ai_store_meal_qs = AiStoreMeal.objects.filter(lang__lang='cn').values('id', 'lang__title', 'lang__content')
|
|
|
+ if not ai_store_meal_qs.exists():
|
|
|
+ return response.json(173)
|
|
|
+ try:
|
|
|
+ for ai_store_meal in ai_store_meal_qs:
|
|
|
+ name = ai_store_meal['lang__title']+'-'+ai_store_meal['lang__content']
|
|
|
+ order = Order_Model.objects.filter(order_type=1, status=1, ai_rank=ai_store_meal['id'])
|
|
|
+ if not order.exists():
|
|
|
+ continue
|
|
|
+ Jan_count = order.filter(status=1, addTime__range=[Jan, Feb]).count()
|
|
|
+ Feb_count = order.filter(status=1, addTime__range=[Feb, Mar]).count()
|
|
|
+ Mar_count = order.filter(status=1, addTime__range=[Mar, Apr]).count()
|
|
|
+ Apr_count = order.filter(status=1, addTime__range=[Apr, May]).count()
|
|
|
+ May_count = order.filter(status=1, addTime__range=[May, Jun]).count()
|
|
|
+ Jun_count = order.filter(status=1, addTime__range=[Jun, Jul]).count()
|
|
|
+ Jul_count = order.filter(status=1, addTime__range=[Jul, Aug]).count()
|
|
|
+ Aug_count = order.filter(status=1, addTime__range=[Aug, Sep]).count()
|
|
|
+ Sep_count = order.filter(status=1, addTime__range=[Sep, Oct]).count()
|
|
|
+ Oct_count = order.filter(status=1, addTime__range=[Oct, Nov]).count()
|
|
|
+ Nov_count = order.filter(status=1, addTime__range=[Nov, Dec]).count()
|
|
|
+ Dec_count = order.filter(status=1, addTime__range=[Dec, Jan_next]).count()
|
|
|
+ data = [Jan_count, Feb_count, Mar_count, Apr_count, May_count, Jun_count, Jul_count, Aug_count, Sep_count,
|
|
|
+ Oct_count, Nov_count, Dec_count]
|
|
|
+
|
|
|
+ cloud_data = {
|
|
|
+ 'name': name,
|
|
|
+ 'type': 'line',
|
|
|
+ 'data': data,
|
|
|
+ }
|
|
|
+ list_data.append(cloud_data)
|
|
|
+
|
|
|
+ return response.json(0, {'list': list_data})
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|