SupplierService.py 2.5 KB

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