FormulaService.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. from django.core.paginator import Paginator
  2. from DCbackend.utils.common import success, fail, pageData
  3. from backend.Form.BrandForm import BrandForm
  4. from backend.Form.FormulaForm import FormulaForm
  5. from backend.models import ProjectCategory, Brand, Formula
  6. class FormulaService:
  7. @staticmethod
  8. def Create(request):
  9. form = FormulaForm(request.POST)
  10. if form.is_valid():
  11. form.save()
  12. return success("成功")
  13. else:
  14. return fail(form.errors)
  15. @staticmethod
  16. def Update(request):
  17. data = Formula.objects.filter(id=request.POST.get("id")).first()
  18. if data is not None:
  19. data.name = request.POST.get("name")
  20. data.formula = request.POST.get("formula")
  21. data.use_status = request.POST.get("use_status")
  22. data.intro = request.POST.get("intro")
  23. data.params = request.POST.get("params")
  24. data.status = request.POST.get("status")
  25. data.point = request.POST.get("point")
  26. data.save()
  27. return success("成功")
  28. else:
  29. return fail("更新品牌信息失败")
  30. @staticmethod
  31. def Info(request):
  32. info = Formula.objects.filter(id=request.POST.get("id")).first()
  33. return success(FormulaService.getDetail(info))
  34. @staticmethod
  35. def Delete(request):
  36. Formula.objects.filter(id=request.POST.get("id")).update(status=4)
  37. return success("成功")
  38. @staticmethod
  39. def getDetail(item: Formula):
  40. return {
  41. "id": item.id,
  42. 'name': item.name,
  43. 'formula': item.formula,
  44. 'intro': item.intro,
  45. 'use_status': item.use_status,
  46. 'createTime': item.create_time,
  47. 'params': item.params,
  48. 'point': item.point,
  49. 'status': item.status
  50. }
  51. @staticmethod
  52. def Search(request):
  53. page = request.POST.get("page")
  54. pageSize = request.POST.get("pageSize")
  55. if page is None:
  56. page = 1
  57. if pageSize is None:
  58. pageSize = 1
  59. where = {}
  60. name = request.POST.get("name", '')
  61. if name:
  62. where["name__icontains"] = name
  63. status = request.POST.get("status")
  64. if status:
  65. where['status'] = status
  66. paginator = Paginator(Formula.objects.filter(**where).exclude(status=4).order_by("-id"), pageSize) # 每页显示10条数据
  67. page_obj = paginator.get_page(page)
  68. dataList = []
  69. for item in page_obj:
  70. info = FormulaService.getDetail(item)
  71. dataList.append(info)
  72. return success(pageData(page, pageSize, paginator.num_pages, paginator.count, dataList))