123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- from backend.Form.KbmDocumentTypeForm import KbmDocumentTypeForm
- from backend.models import KbmDocumentType, DocumentKbm
- from base import logger
- from django.core.paginator import Paginator
- from django.db import transaction
- from DCbackend import settings
- from DCbackend.utils.common import success, fail, pageData
- #知识库文件分类
- class KbmDocumentTypeService:
- @staticmethod
- @transaction.atomic
- def insertType(request):
- kb_id = request.POST.get("kb_id")
- if not kb_id:
- return fail("知识库id为空")
- form = KbmDocumentTypeForm(request.POST)
- if form.is_valid():
- form.save()
- return success("保存成功")
- else:
- return fail(form.errors)
- @staticmethod
- @transaction.atomic
- def updateType(request):
- data = KbmDocumentType.objects.filter(id=request.POST.get("id")).first();
- if data is not None:
- data.name = request.POST.get("name")
- data.kb_id = request.POST.get("kb_id")
- data.status = request.POST.get("status")
- data.parent_id = request.POST.get("parent_id")
- data.save()
- return success("更新成功")
- else:
- return fail("更新参数信息失败")
- @staticmethod
- def selectTypeList(request):
- page = request.POST.get("page",1)
- pageSize = request.POST.get("pageSize",10)
- kb_id = request.POST.get("kb_id")
- if not kb_id:
- return fail("知识库id为空")
- where = {}
- name = request.POST.get("name", '')
- if name:
- where["name__icontains"] = name
- status = request.POST.get("status")
- if status:
- where['status'] = status
- where['kb_id'] = kb_id
- paginator = Paginator(KbmDocumentType.objects.filter(**where).exclude(status=4).order_by("-id"),
- pageSize) # 每页显示10条数据
- page_obj = paginator.get_page(page)
- dataList = []
- for item in page_obj:
- count = DocumentKbm.objects.filter(doc_type_id=item.id).count()
- info = KbmDocumentTypeService.getDetail(item, count)
- dataList.append(info)
- return success(pageData(page, pageSize, paginator.num_pages, paginator.count, dataList))
- @staticmethod
- def getDetail(item, count=None):
- info = {
- "id": item.id,
- 'name': item.name,
- 'kb_id': item.kb_id,
- 'create_time': item.create_time,
- 'status': item.status
- }
- if count is not None:
- info['document_count'] = count
- return info
- @staticmethod
- @transaction.atomic
- def delete(request):
- id = request.POST.get("id")
- if not id:
- return fail("id为空")
- count = DocumentKbm.objects.filter(doc_type_id=id).exclude(status=4).count()
- if count > 0:
- return fail("该分类下存在文件,请删除后重试")
- KbmDocumentType.objects.filter(id=id).update(status=4)
- return success("删除成功")
- @staticmethod
- def Info(request):
- info = KbmDocumentType.objects.filter(id=request.POST.get("id")).first()
- return success(KbmDocumentTypeService.getDetail(info),"查询成功")
- @staticmethod
- def selectType0(request):
- type_id = request.POST.get("type_id")
- kb_id = request.POST.get("kb_id")
- if not type_id:
- return fail("type_id为空")
- count = DocumentKbm.objects.filter(doc_type_id=type_id,kb_id=kb_id).exclude(status=4).count()
- return success(count)
|