|
@@ -11,16 +11,18 @@
|
|
|
@file: MealManage.py
|
|
|
@Contact: chanjunkai@163.com
|
|
|
"""
|
|
|
-from django.views.generic.base import View
|
|
|
+import traceback
|
|
|
+from django.db.models import Q, F
|
|
|
+from django.utils import timezone
|
|
|
from django.utils.decorators import method_decorator
|
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
|
-from Service.ModelService import ModelService
|
|
|
-from Service.CommonService import CommonService
|
|
|
+from django.views.generic.base import View
|
|
|
+
|
|
|
from Model.models import Store_Meal, VodBucketModel
|
|
|
-import traceback
|
|
|
-from django.utils import timezone
|
|
|
-from Object.TokenObject import TokenObject
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
+from Object.TokenObject import TokenObject
|
|
|
+from Service.CommonService import CommonService
|
|
|
+from Service.ModelService import ModelService
|
|
|
|
|
|
'''
|
|
|
http://192.168.136.40:8077/meal/manage?operation=add&token=local&title=套餐A&price=$199&content=存7天&day=7&id=1
|
|
@@ -70,9 +72,6 @@ class MealManage(View):
|
|
|
return response.json(444, 'operation')
|
|
|
|
|
|
def add(self, request_dict, userID, response):
|
|
|
- own_perm = ModelService.check_permission(userID=userID, permID=40)
|
|
|
- if own_perm is not True:
|
|
|
- return response.json(404)
|
|
|
title = request_dict.get('title', None)
|
|
|
id = request_dict.get('id', None)
|
|
|
price = request_dict.get('price', None)
|
|
@@ -82,11 +81,15 @@ class MealManage(View):
|
|
|
bucketID = request_dict.get('bucketID', None)
|
|
|
if not title or not id or not price or not day or not content:
|
|
|
return response.json(444, 'title,id,price,content,day,bucketID')
|
|
|
+ own_perm = ModelService.check_permission(userID=userID, permID=40)
|
|
|
+ if own_perm is not True:
|
|
|
+ return response.json(404)
|
|
|
try:
|
|
|
bucketQs = VodBucketModel.objects.filter(id=bucketID)
|
|
|
if Store_Meal.objects.filter(id=id):
|
|
|
- return response.json(10,'已存在')
|
|
|
- store_meal = Store_Meal(id=id, title=title, price=price, content=content, day=day, bucket_id=bucketID,currency=currency)
|
|
|
+ return response.json(10, '已存在')
|
|
|
+ store_meal = Store_Meal(id=id, title=title, price=price, content=content, day=day, bucket_id=bucketID,
|
|
|
+ currency=currency)
|
|
|
store_meal.save()
|
|
|
except Exception:
|
|
|
errorInfo = traceback.format_exc()
|
|
@@ -111,8 +114,9 @@ class MealManage(View):
|
|
|
line = int(request_dict.get('line', None))
|
|
|
if page is None or line is None:
|
|
|
return response.json(444)
|
|
|
- qs = Store_Meal.objects.values("id", "title", "price", "content", "day", "add_time", "update_time", "currency","bucket_id",
|
|
|
- "bucket__bucket","bucket__storeDay")
|
|
|
+ qs = Store_Meal.objects.values("id", "title", "price", "content", "day", "add_time", "update_time", "currency",
|
|
|
+ "bucket_id",
|
|
|
+ "bucket__bucket", "bucket__storeDay")
|
|
|
res = {}
|
|
|
if qs.exists():
|
|
|
res['count'] = qs.count()
|
|
@@ -120,81 +124,71 @@ class MealManage(View):
|
|
|
return response.json(0, res)
|
|
|
|
|
|
def update(self, request_dict, userID, response):
|
|
|
+ id = request_dict.get('id', None)
|
|
|
+ title = request_dict.get('title', None)
|
|
|
+ price = request_dict.get('price', None)
|
|
|
+ day = request_dict.get('day', None)
|
|
|
+ content = request_dict.get('content', None)
|
|
|
+ currency = request_dict.get('currency', None)
|
|
|
+ bucketID = request_dict.get('bucketID', None)
|
|
|
+ if not id or not title or not price or not content or not day:
|
|
|
+ return response.json(444, 'id, title, price, content, day')
|
|
|
own_perm = ModelService.check_permission(userID=userID, permID=30)
|
|
|
if own_perm is True:
|
|
|
- id = request_dict.get('id', None)
|
|
|
- title = request_dict.get('title', None)
|
|
|
- price = request_dict.get('price', None)
|
|
|
- day = request_dict.get('day', None)
|
|
|
- content = request_dict.get('content', None)
|
|
|
- currency = request_dict.get('currency', None)
|
|
|
- bucketID = request_dict.get('bucketID', None)
|
|
|
- param_flag = CommonService.get_param_flag(
|
|
|
- data=[id, title, price, content, day])
|
|
|
- if param_flag is True:
|
|
|
- try:
|
|
|
- store_meal = Store_Meal.objects.get(id=id)
|
|
|
- now_time = timezone.localtime(timezone.now())
|
|
|
- print(now_time)
|
|
|
- store_meal.title = title
|
|
|
- store_meal.price = price
|
|
|
- store_meal.content = content
|
|
|
- store_meal.day = day
|
|
|
- if bucketID:
|
|
|
- store_meal.bucket_id = bucketID
|
|
|
- if currency:
|
|
|
- store_meal.currency = currency
|
|
|
- store_meal.save()
|
|
|
- except Exception:
|
|
|
- errorInfo = traceback.format_exc()
|
|
|
- print(errorInfo)
|
|
|
- return response.json(424, {'details': errorInfo})
|
|
|
- else:
|
|
|
- return response.json(0, {'update_id': store_meal.id, 'update_time': str(now_time)})
|
|
|
- else:
|
|
|
- return response.json(444)
|
|
|
- else:
|
|
|
return response.json(404)
|
|
|
+ try:
|
|
|
+ store_meal = Store_Meal.objects.get(id=id)
|
|
|
+ now_time = timezone.localtime(timezone.now())
|
|
|
+ print(now_time)
|
|
|
+ store_meal.title = title
|
|
|
+ store_meal.price = price
|
|
|
+ store_meal.content = content
|
|
|
+ store_meal.day = day
|
|
|
+ if bucketID:
|
|
|
+ store_meal.bucket_id = bucketID
|
|
|
+ if currency:
|
|
|
+ store_meal.currency = currency
|
|
|
+ store_meal.save()
|
|
|
+ except Exception:
|
|
|
+ errorInfo = traceback.format_exc()
|
|
|
+ print(errorInfo)
|
|
|
+ return response.json(424, {'details': errorInfo})
|
|
|
+ else:
|
|
|
+ return response.json(0, {'update_id': store_meal.id, 'update_time': str(now_time)})
|
|
|
|
|
|
def delete(self, request_dict, userID, response):
|
|
|
+ id_list = request_dict.getlist('id', None)
|
|
|
+ if not id_list:
|
|
|
+ return response.json(444, 'id')
|
|
|
own_perm = ModelService.check_permission(userID=userID, permID=10)
|
|
|
- if own_perm is True:
|
|
|
- id_list = request_dict.getlist('id', None)
|
|
|
- param_flag = CommonService.get_param_flag(data=[id_list])
|
|
|
- if param_flag is True:
|
|
|
- try:
|
|
|
- for id in id_list:
|
|
|
- Store_Meal.objects.filter(id=id).delete()
|
|
|
- except Exception as e:
|
|
|
- errorInfo = traceback.format_exc()
|
|
|
- print(errorInfo)
|
|
|
- return response.json(424, {'details': repr(e)})
|
|
|
- else:
|
|
|
- return response.json(0)
|
|
|
- else:
|
|
|
- return response.json(444)
|
|
|
- else:
|
|
|
+ if own_perm is not True:
|
|
|
return response.json(404)
|
|
|
+ try:
|
|
|
+ for id in id_list:
|
|
|
+ Store_Meal.objects.filter(id=id).delete()
|
|
|
+ except Exception as e:
|
|
|
+ errorInfo = traceback.format_exc()
|
|
|
+ print(errorInfo)
|
|
|
+ return response.json(424, {'details': repr(e)})
|
|
|
+ else:
|
|
|
+ return response.json(0)
|
|
|
|
|
|
def find(self, request_dict, userID, response):
|
|
|
+ page = int(request_dict.get('page', None))
|
|
|
+ line = int(request_dict.get('line', None))
|
|
|
+ if not page or not line:
|
|
|
+ return response.json(444, 'page,line')
|
|
|
own_perm = ModelService.check_permission(userID=userID, permID=30)
|
|
|
- if own_perm is True:
|
|
|
- page = int(request_dict.get('page', None))
|
|
|
- line = int(request_dict.get('line', None))
|
|
|
- param_flag = CommonService.get_param_flag(data=[page, line])
|
|
|
- if param_flag is True:
|
|
|
- queryset = Store_Meal.objects.all()
|
|
|
- if queryset.exists():
|
|
|
- count = queryset.count()
|
|
|
- res = queryset[(page - 1) * line:page * line]
|
|
|
- send_json = CommonService.qs_to_dict(res)
|
|
|
- send_json['count'] = count
|
|
|
- return response.json(0, send_json)
|
|
|
- return response.json(0)
|
|
|
- else:
|
|
|
- return response.json(444)
|
|
|
- else:
|
|
|
+ if own_perm is not True:
|
|
|
return response.json(404)
|
|
|
+ qs = Store_Meal.objects.all()
|
|
|
+ if qs.exists():
|
|
|
+ count = qs.count()
|
|
|
+ res = qs[(page - 1) * line:page * line]
|
|
|
+ send_json = CommonService.qs_to_dict(res)
|
|
|
+ send_json['count'] = count
|
|
|
+ return response.json(0, send_json)
|
|
|
+ return response.json(0)
|
|
|
|
|
|
|
|
|
'''
|
|
@@ -236,9 +230,11 @@ class MealView(View):
|
|
|
return response.json(414)
|
|
|
|
|
|
def do_query(self, response):
|
|
|
- qs = Store_Meal.objects.all().values("id", "title", "content", "price", "day", "currency","bucket__storeDay",
|
|
|
- "bucket__bucket","bucket__area")
|
|
|
-
|
|
|
+ qs = Store_Meal.objects.all().annotate(area=F("bucket__area")).values("id", "title", "content", "price", "day",
|
|
|
+ "currency", "bucket__storeDay",
|
|
|
+ "bucket__bucket", "bucket__area")
|
|
|
+ print(qs)
|
|
|
+ return response.json(0, list(qs))
|
|
|
if qs.exists():
|
|
|
|
|
|
res = {}
|
|
@@ -247,17 +243,15 @@ class MealView(View):
|
|
|
res[q['bucket__area']] = []
|
|
|
res[q['bucket__area']].append(q)
|
|
|
# res['cloudpng'] = 'https://www.dvema.com/web/images/cloud_banner.png'
|
|
|
- result = {'meals':res,'extra':{'cloud_banner':'https://www.dvema.com/web/images/cloud_banner.png'}}
|
|
|
- return response.json(0,result)
|
|
|
+ result = {'meals': res, 'extra': {'cloud_banner': 'https://www.dvema.com/web/images/cloud_banner.png'}}
|
|
|
+ return response.json(0, result)
|
|
|
else:
|
|
|
return response.json(0, [])
|
|
|
|
|
|
def do_query_list(self, response):
|
|
|
- qs = Store_Meal.objects.all().values("id", "title", "content", "price", "day", "currency","bucket__storeDay",
|
|
|
- "bucket__bucket")
|
|
|
+ qs = Store_Meal.objects.all(). \
|
|
|
+ values("id", "title", "content", "price", "day", "currency", "bucket__storeDay", "bucket__bucket")
|
|
|
if qs.exists():
|
|
|
- # res = CommonService.qs_to_list(qs)
|
|
|
return response.json(0, list(qs))
|
|
|
else:
|
|
|
return response.json(0, [])
|
|
|
-
|