| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328 |
- from rest_framework.views import APIView
- from rest_framework.response import Response
- from django.core.paginator import Paginator
- import time
- from smartfarming.models.agriculture import KnowledgeManage, KnowledgeCategory, Information
- from smartfarming.serializers.knowledge_serializer import KnowledgeCategorySerializer, KnowledgeManageSerializer, InformationSerializer
- from django.db.models import Q
- class KnowledgeCategoryAPIView(APIView):
- permission_classes = []
- authentication_classes = []
- def post(self, request):
- # 知识分类列表
- request_data = request.data
- if (not request_data.get("pagenum")) and (not request_data.get("pagesize")):
- queryset = KnowledgeCategory.objects.filter(is_delete=1).order_by("-uptime","-addtime")
- serializers = KnowledgeCategorySerializer(queryset, many=True)
- return Response({"code": 0, "msg": "success", "data": serializers.data})
- page_num = int(request_data.get("pagenum", 1)) if request_data.get("pagenum") else 1
- page_size = int(request_data.get("pagesize", 10)) if request_data.get("pagesize") else 10
- title = request_data.get("title")
- if title:
- queryset = KnowledgeCategory.objects.filter(is_delete=1, title=title).order_by("-uptime","-addtime")
- else:
- queryset = KnowledgeCategory.objects.filter(is_delete=1).order_by("-uptime","-addtime")
- total_obj = queryset.count()
- paginator = Paginator(queryset, page_size)
- page_obj = paginator.get_page(page_num)
- serializers = KnowledgeCategorySerializer(page_obj, many=True)
- return Response({"code": 0, "msg": "success", "data": serializers.data, "count": total_obj})
-
- class KnowledgeCategoryAddAPIView(APIView):
- def post(self, request):
- # 新增知识分类
- try:
- request_data = request.data
- title = request_data.get("title")
- knowledge_category, is_created= KnowledgeCategory.objects.get_or_create(
- title = title,
- is_delete=1,
- defaults={
- "title": title,
- "uptime": int(time.time()),
- "is_use": 1,
- "addtime": int(time.time())
- }
- )
- if not is_created:
- return Response({"code": 2, "msg": "该知识分类已存在,请检查"})
- else:
- return Response({"code": 0, "msg": "success"})
- except Exception as e:
- print(e)
- return Response({"code": 2, "msg": "fail"})
-
- class KnowledgeCategoryUpdateAPIView(APIView):
- def post(self, request):
- # 知识分类修改
- try:
- request_data = request.data
- category_id = request_data.get("category_id")
- title = request_data.get("title")
- order = request_data.get("order")
- is_use = request_data.get("is_use")
- category = KnowledgeCategory.objects.get(id=category_id)
- if title:
- try:
- kg = KnowledgeCategory.objects.get(title=title)
- if kg.id != category_id:
- return Response({"code": 0, "msg": "该知识分类已存在,请检查"})
- except Exception as e:
- pass
- category.title = title
- category.uptime = int(time.time())
- if order:
- category.order = order
- if is_use:
- category.is_use = is_use
- category.save()
- return Response({"code": 0, "msg": "success"})
- except:
- return Response({"code": 2, "msg": "fail"})
- class KnowledgeCategoryDeleteAPIView(APIView):
- def post(self, request):
- # 知识分类删除
- request_data = request.data
- category_id = request_data.get("category_id")
- manage = KnowledgeManage.objects.filter(category=category_id, is_delete=1)
- if manage:
- return Response({"code": 2, "msg": "该知识分类已被知识信息引用,请检查"})
- KnowledgeCategory.objects.filter(id=category_id).update(is_delete=0)
- return Response({"code": 0, "msg": "success"})
-
- class KnowledgeManageAPIView(APIView):
- permission_classes = []
- authentication_classes = []
- def post(self, request):
- # 知识信息列表
- request_data = request.data
- category_id = request_data.get("category_id")
- related_plan = request_data.get("related_plan")
- is_top = request_data.get("is_top")
- page_num = int(request_data.get("pagenum", 1)) if request_data.get("pagenum") else 1
- page_size = int(request_data.get("pagesize", 10)) if request_data.get("pagesize") else 10
- if category_id and related_plan:
- queryset = KnowledgeManage.objects.filter( Q(is_delete=1) & Q(related_plan__icontains=related_plan) & Q(category=category_id)).order_by("-is_top","-addtime")
- elif category_id and not related_plan:
- queryset = KnowledgeManage.objects.filter(Q(is_delete=1) & Q(category=category_id) ).order_by("-is_top","-addtime")
- elif related_plan and not category_id:
- queryset = KnowledgeManage.objects.filter( Q(is_delete=1) & Q(related_plan__icontains=related_plan)).order_by("-is_top","-addtime")
- else:
- queryset = KnowledgeManage.objects.filter(is_delete=1).order_by("-is_top","-addtime")
- if is_top:
- queryset = queryset.filter(is_top=1).order_by("-is_top","-addtime")
- total_obj = queryset.count()
- paginator = Paginator(queryset, page_size)
- page_obj = paginator.get_page(page_num)
- serializers = KnowledgeManageSerializer(page_obj, many=True)
- return Response({"code": 0, "msg": "success", "data": serializers.data, "count": total_obj})
- class KnowledgeManageAddAPIView(APIView):
- def post(self, request):
- # 知识信息新增
- try:
- request_data = request.data
- category_id = request_data.get("category_id")
- related_plan = request_data.get("related_plan", "")
- title = request_data.get("title")
- is_top = request_data.get("is_top")
- if not is_top:
- is_top = 0
- img = request_data.get("img", "")
- origin = request_data.get("origin", "")
- content = request_data.get("content", "")
- is_created = KnowledgeManage.objects.create(
- category = category_id,
- related_plan = related_plan,
- title = title,
- is_top = is_top,
- img = img,
- origin = origin,
- content = content,
- addtime = int(time.time())
- )
- if is_created:
- return Response({"code": 0, "msg": "success"})
- else:
- return Response({"code": 2, "msg": "创建失败"})
- except:
- return Response({"code": 2, "msg": "fail"})
-
- class KnowledgeManageUpdateAPIView(APIView):
- def post(self, request):
- # 知识信息更新
- try:
- request_data = request.data
- update_top = request_data.get("update_top")
- is_top = request_data.get("is_top")
- manage_id = request_data.get("manage_id")
- if update_top:
- try:
- KnowledgeManage.objects.filter(id=manage_id).update(is_top=is_top)
- return Response({"code": 0, "msg": "success"})
- except Exception as e:
- return Response({"code": 2, "msg": "更新失败"})
- category_id = request_data.get("category_id")
- related_plan = request_data.get("related_plan", "")
- title = request_data.get("title")
- img = request_data.get("img", "")
- origin = request_data.get("origin", "")
- content = request_data.get("content", "")
- is_created = KnowledgeManage.objects.filter(id=manage_id).update(
- category = category_id,
- related_plan = related_plan,
- title = title,
- is_top = 1 if is_top else 0,
- img = img,
- origin = origin,
- content = content
- )
- if is_created:
- return Response({"code": 0, "msg": "success"})
- else:
- return Response({"code": 2, "msg": "更新失败"})
- except:
- return Response({"code": 2, "msg": "fail"})
- class KnowledgeManageDeleteAPIView(APIView):
- def post(self, request):
- # 知识信息删除
- request_data = request.data
- manage_id = request_data.get("manage_id")
- is_update = KnowledgeManage.objects.filter(id=manage_id).update(is_delete=0)
- if is_update:
- return Response({"code": 0, "msg": "success"})
- else:
- return Response({"code": 2, "msg": "删除失败"})
-
- class KnowledgeManageDetailAPIView(APIView):
- permission_classes = []
- authentication_classes = []
- def post(self, request):
- # 知识信息详情
- try:
- request_data = request.data
- manage_id = request_data.get("manage_id")
- queryset = KnowledgeManage.objects.filter(is_delete=1, id=manage_id).order_by("-addtime").first()
- serializers = KnowledgeManageSerializer(queryset)
- if queryset:
- queryset.count += 1
- else:
- queryset.count = 1
- queryset.save()
- return Response({"code": 0, "msg": "success", "data": serializers.data})
- except:
- return Response({"code": 2, "msg": "fail"})
- class InformationAPIView(APIView):
- permission_classes = []
- authentication_classes = []
- def post(self, request):
- # 研判信息列表
- request_data = request.data
- title = request_data.get("title")
- page_num = int(request_data.get("pagenum", 1)) if request_data.get("pagenum") else 1
- page_size = int(request_data.get("pagesize", 10)) if request_data.get("pagesize") else 10
- if title:
- queryset = Information.objects.filter(is_delete=1, title__icontains=title).order_by("-addtime")
- else:
- queryset = Information.objects.filter(is_delete=1).order_by("-addtime")
- total_obj = queryset.count()
- paginator = Paginator(queryset, page_size)
- page_obj = paginator.get_page(page_num)
- serializers = InformationSerializer(page_obj, many=True)
- return Response({"code": 0, "msg": "success", "data": serializers.data, "count": total_obj})
-
- class InformationAddAPIView(APIView):
- def post(self, request):
- # 研判信息新增
- request_data = request.data
- myuser = request.myuser
- title = request_data.get("title")
- content = request_data.get("content")
- user = myuser.uid
- information = Information.objects.create(
- title = title,
- content = content,
- addtime = int(time.time()),
- user = user
- )
- if information:
- return Response({"code": 0, "msg": "success"})
- else:
- return Response({"code": 2, "msg": "失败"})
-
- class InformationUpdateAPIView(APIView):
- def post(self, request):
- # 研判信息更新
- try:
- request_data = request.data
- information_id = request_data.get("information_id")
- title = request_data.get("title")
- content = request_data.get("content")
- information = Information.objects.filter(id=information_id).update(
- title = title,
- content = content
- )
- if information:
- return Response({"code": 0, "msg": "success"})
- else:
- return Response({"code": 2, "msg": "失败"})
- except:
- return Response({"code": 2, "msg": "fail"})
-
- class InformationDeleteAPIView(APIView):
- def post(self, request):
- # 研判信息删除
- try:
- request_data = request.data
- information_id = request_data.get("information_id")
- is_delete = Information.objects.filter(id=information_id).update(is_delete=0)
- if is_delete:
- return Response({"code": 0, "msg": "success"})
- else:
- return Response({"code": 2, "msg": "失败"})
- except:
- return Response({"code": 2, "msg": "fail"})
-
- class InformationDetailAPIView(APIView):
- def post(self, request):
- # 研判信息删除
- try:
- request_data = request.data
- information_id = request_data.get("information_id")
- queryset = Information.objects.get(id=information_id)
- serializers = InformationSerializer(queryset)
- return Response({"code": 0, "msg": "success", "data": serializers.data})
- except Exception as e:
- return Response({"code": 2, "msg": "fail"})
-
-
|