123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203 |
- import json
- from django.core.paginator import Paginator
- from django.http import JsonResponse
- from DCbackend.utils import common
- from DCbackend.utils.common import success, fail, pageData
- from backend.Form.SourceDataForm import SourceDataForm
- from backend.models import SourceData, SourceCategory
- class SourceDataService:
- @staticmethod
- def Create(request):
- form = SourceDataForm(request.POST)
- if form.is_valid():
- form.save()
- return success("成功")
- else:
- return fail(form.errors)
- @staticmethod
- def Update(request):
- data = SourceData.objects.filter(id=request.POST.get("id")).first()
- if data is not None:
- data.code = request.POST.get("code")
- data.name = request.POST.get("name")
- data.source_data = request.POST.get("source_data")
- data.status = request.POST.get("status")
- data.category_id = request.POST.get("category_id")
- data.save()
- return success("成功")
- else:
- return fail("更新源数据成功")
- @staticmethod
- def Info(request):
- info = SourceData.objects.filter(id=request.POST.get("id")).first()
- return success(SourceDataService.getDetail(info))
- @staticmethod
- def Delete(request):
- SourceData.objects.filter(id=request.POST.get("id")).update(status=4)
- return success("成功")
- @staticmethod
- def getDetail(item: SourceData):
- return {
- "id": item.id,
- 'code': item.code,
- 'name': item.name,
- 'source_data': item.source_data,
- 'createTime': item.create_time,
- 'status': item.status,
- 'category_id': item.category_id
- }
- @staticmethod
- def getDetailList(item):
- return {
- "id": item['id'],
- 'code': item['code'],
- 'name': item['name'],
- 'createTime': item['create_time'].strftime('%Y-%m-%d %H:%M:%S') if item['create_time'] else None,
- 'status': item['status'],
- 'category_id': item['category_id']
- }
- @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 = {}
- code = request.POST.get("code", '')
- if code:
- where["code__icontains"] = code
- name = request.POST.get("name", '')
- if name:
- where["name__icontains"] = name
- status = request.POST.get("status")
- if status:
- where['status'] = status
- paginator = Paginator(SourceData.objects.filter(**where).exclude(status=4).order_by("-id").values('id','code','name','status','category_id','create_time'),
- pageSize) # 每页显示10条数据
- page_obj = paginator.get_page(page)
- dataList = []
- for item in page_obj:
- dataInfo = SourceDataService.getDetailList(item)
- dataList.append(dataInfo)
- return success(pageData(page, pageSize, paginator.num_pages, paginator.count, dataList))
- @staticmethod
- def findData(request):
- row = request.POST.get("row")
- col = request.POST.get("col")
- tbCode = request.POST.get("code")
- tbData = SourceData.objects.filter(code=tbCode).first()
- if not tbData:
- return fail("数据表标签不正确")
- jsonData = json.loads(tbData.source_data)
- sheetData=jsonData['exportJson']['sheets'][0]['data']
- rowData=sheetData[int(row)]
- result=''
- if 'v' in rowData[int(col)]:
- result = rowData[int(col)]['v']
- elif 'ct' in rowData[int(col)]:
- if 's' in rowData[int(col)]['ct']:
- for sub in rowData[int(col)]['ct']['s']:
- result+=str(sub['v'])
- return success({"result": result})
- @staticmethod
- def Categories(request):
- query = request.POST.get('query', '')
- status = request.POST.get('status', '')
- page = request.POST.get('page', 1)
- sourcecategories = SourceCategory.objects.all()
- if query:
- sourcecategories = sourcecategories.filter(name__icontains=query)
- if status:
- sourcecategories = sourcecategories.filter(status=status)
- paginator = Paginator(sourcecategories, 10) # 每页显示10条
- page_obj = paginator.get_page(page)
- sourcecategories = paginator.get_page(page)
- data = {
- 'status': '200',
- 'message': 'success',
- 'data': {
- 'sourcecategories': [
- {
- 'id': category.id,
- 'name': category.name,
- 'status': category.status,
- 'created_at': category.created_at.strftime('%Y-%m-%d %H:%M:%S')
- } for category in page_obj
- ],
- 'total': paginator.count,
- 'page': page,
- 'total_pages': paginator.num_pages
- }
- }
- return JsonResponse(data)
- @staticmethod
- def Catcreat(request):
- name = request.POST.get('name')
- status = request.POST.get('status', 'active')
- sourcecategory = SourceCategory.objects.create(name=name, status=status)
- data = {
- 'id': sourcecategory.id,
- 'name': sourcecategory.name,
- 'status': sourcecategory.status,
- 'created_at': sourcecategory.created_at.strftime('%Y-%m-%d %H:%M:%S')
- }
- return success(data)
- @staticmethod
- def info(request):
- info = SourceCategory.objects.filter(id=request.POST.get("id")).first()
- return success(SourceDataService.getcategory(info))
- @staticmethod
- def updatetype(request):
- data = SourceCategory.objects.filter(id=request.POST.get("id")).first()
- if data is not None:
- data.name = request.POST.get("name")
- data.status = request.POST.get("status")
- data.created_at = request.POST.get("created_at")
- data.save()
- return success("成功")
- else:
- return fail("更新源数据成功")
- @staticmethod
- def getcategory(item: SourceCategory):
- return {
- "id": item.id,
- 'name': item.name,
- 'status': item.status,
- 'created_at': item.created_at
- }
|