123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- from django.core.paginator import Paginator
- from DCbackend.utils.common import success, fail, pageData
- from backend.Form.BrandForm import BrandForm
- from backend.Form.ProductCategoryForm import ProductCategoryForm
- from backend.Form.ProductForm import ProductForm
- from backend.models import ProjectCategory, Brand, Product, ProductCategory
- class ProductCategoryService:
- @staticmethod
- def Create(request):
- form = ProductCategoryForm(request.POST)
- if form.is_valid():
- form.save()
- return success("成功")
- else:
- return fail(form.errors)
- @staticmethod
- def Update(request):
- data = ProductCategory.objects.filter(id=request.POST.get("id")).first();
- if data is not None:
- data.name = request.POST.get("name")
- data.parent_id = request.POST.get("parent_id")
- data.attrs = request.POST.get("attrs")
- data.status = request.POST.get("status")
- data.save()
- return success("成功")
- else:
- return fail("更新产品分类失败")
- @staticmethod
- def Info(request):
- info = ProductCategory.objects.filter(id=request.POST.get("id")).first()
- return success(ProductCategoryService.getDetail(info))
- @staticmethod
- def Delete(request):
- ProductCategory.objects.filter(id=request.POST.get("id")).update(status=4)
- return success("成功")
- @staticmethod
- def getDetail(item: ProductCategory):
- parentData = {}
- if item.parent_id > 0:
- parentItem = ProductCategory.objects.filter(id=item.parent_id).first()
- parentData = ProductCategoryService.getDetail(parentItem)
- return {
- "id": item.id,
- 'parent_id': item.parent_id,
- 'parentData': parentData,
- 'name': item.name,
- 'attrs': item.attrs,
- 'createTime': item.create_time,
- 'children':[],
- 'status': item.status
- }
- @staticmethod
- def Search(request):
- page = request.POST.get("page")
- pageSize = request.POST.get("pageSize")
- if page is None:
- page = 1
- if pageSize is None:
- pageSize = 1
- where = {}
- parent_id = request.POST.get("parent_id")
- if parent_id:
- where["parent_id"] = parent_id
- else:
- where['parent_id'] = 0
- name = request.POST.get("name")
- if name:
- where["name__icontains"] = name
- status = request.POST.get("status")
- if status:
- where['status'] = status
- paginator = Paginator(ProductCategory.objects.filter(**where).exclude(status=4).order_by("-id"),
- pageSize) # 每页显示10条数据
- page_obj = paginator.get_page(page)
- dataList = []
- for item in page_obj:
- info = ProductCategoryService.getDetail(item)
- dataList.append(info)
- return success(pageData(page, pageSize, paginator.num_pages, paginator.count, dataList))
- @staticmethod
- def getAllCategories():
- top = ProductCategory.objects.filter(status=5, parent_id=0).order_by("id").all()
- dataList = []
- for item in top:
- itemData={
- "id": item.id,
- 'children': ProductCategoryService.getSubCategory(item),
- 'value': item.id,
- 'label': item.name,
- 'attrs': item.attrs,
- }
- dataList.append(itemData)
- return success(dataList)
- @staticmethod
- def getSubCategory(topCategory: ProductCategory):
- items = ProductCategory.objects.filter(status=5, parent_id=topCategory.id).order_by("id").all()
- dataList = []
- for item in items:
- itemData = {
- "id": item.id,
- 'label': item.name,
- 'value': item.id,
- 'attrs':item.attrs,
- }
- dataList.append(itemData)
- return dataList
|