123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- import json
- import os
- from datetime import datetime
- from xml.dom.minidom import Document
- import requests
- from django.core import paginator
- from django.http import HttpResponse, JsonResponse
- from DCbackend.settings import MEDIA_ROOT, oss_key_id, oss_key_secret, oss_endPoint, oss_bucket, oss_url
- import os
- import oss2
- from DCbackend.utils.MyEncoder import MyEncoder
- # def success(data):
- # result = {"status": 200, "message": "success", "data": data}
- # return HttpResponse(json.dumps(result, cls=MyEncoder, indent=4), content_type="application/json")
- def success(data, message="success"):
- result = {
- "status": 200,
- "message": message,
- "data": data
- }
- return HttpResponse(
- json.dumps(result, cls=MyEncoder, indent=4),
- content_type="application/json"
- )
- def fail(message):
- return HttpResponse(JsonResponse({"status": 999, "message": message}), content_type="application/json")
- def fail(message=None):
- if message is None:
- message = []
- return HttpResponse(JsonResponse({"status": 999, "message": message}), content_type="application/json")
- def pageData(page, pageSize, totalPage, totalRecord, dataList):
- return {"page": page, "pageSize": pageSize, "totalPage": totalPage, "totalRecord": totalRecord,
- "dataList": dataList}
- def handle_uploaded_file(file):
- date = datetime.now().strftime("%Y%m%d%H%M%S")
- filename = f"{date}_{file.name}"
- if not os.path.exists(MEDIA_ROOT):
- os.mkdir(MEDIA_ROOT)
- path = os.path.join(MEDIA_ROOT, filename)
- with open(path, 'wb+') as destination:
- for chunk in file.chunks():
- destination.write(chunk)
- return path
- # 上传文件到 OSS
- # 这里的file_path就是上面我们保存到local_url容器里面的dst
- def oss_upload_file(file_path):
- # 通过basename方法得到路径最后的文件名,也就是图片名(火影忍者.jpg)
- file_name = os.path.basename(file_path)
- # 构造oss中的路径,我这里就是:anime/火影忍者.jpg
- # 创建 OSS 链接
- auth = oss2.Auth(oss_key_id, oss_key_secret)
- bucket = oss2.Bucket(auth, oss_endPoint, oss_bucket)
- oss_path = "document/" + file_name
- # 上传文件,以二进制方式(rb)打开图片上传
- with open(file_path, 'rb') as file_obj:
- result = bucket.put_object(oss_path, file_obj)
- return oss_url + "/" + oss_path
- # return result
- def getHttpPost():
- url = "https://www.h3yun.com/OpenApi/Invoke"
- payload = {
- "ActionName": "LoadBizObjects",
- "SchemaCode": "isaxp2no91kwgggtzmnfsmf90",
- "Filter": "{\"FromRowNum\": 0,\"RequireCount\": false,\"ReturnItems\": [], \"SortByCollection\": [],\"ToRowNum\": 500, \"Matcher\": { \"Type\": \"And\", \"Matchers\": []}}"
- }
- headers = {
- "EngineCode": "bddua5a6od64p2nu",
- "EngineSecret": "Az24wdw8f1dgZw5j7UeGivgcJuRLuaxqQ0banHM6YLkD/oa2uNIH8g==",
- "Content-Type": "application/json",
- 'content-type': "application/json"
- }
- response = requests.request("POST", url, json=payload, headers=headers)
- if response.status_code == 200:
- data = response.json()
- content = json.dumps(data, cls=MyEncoder, indent=4)
- filename = "customer.txt"
- if not os.path.exists(MEDIA_ROOT):
- os.mkdir(MEDIA_ROOT)
- path = os.path.join(MEDIA_ROOT, filename)
- with open(path, "w", encoding='utf-8') as file:
- file.write(content)
- with open(path, "r", encoding='utf-8') as openFile:
- fileContent = openFile.read()
- fileContent = fileContent.replace('\'', '\"')
- fileContent = fileContent.replace('true', 'True')
- fileContent = fileContent.replace('false', 'False')
- fileContent = fileContent.replace('null', '""')
- item = eval(fileContent)
- result = []
- if item['Successful']:
- for it in item['ReturnData']['BizObjectArray']:
- result.append({
- "objectId": it["ObjectId"],
- "Name": it['Name'],
- "creator": it["OwnerId"],
- "SeqNo": it['SeqNo'],
- "mobile": it["F0000005"],
- 'customerName': it['F0000007'],
- 'enName': it['F0000002'],
- 'CreatedTime': it['CreatedTime'],
- 'ModifiedTime': it['ModifiedTime'],
- 'step': it['F0000010'],
- 'address': it['F0000003'],
- 'contact': it['F0000008'],
- })
- # js = json.loads(json.dumps(temp,cls=MyEncoder, indent=4))
- return result
- return
- else:
- return False
- def formatDateTime(time):
- if time == "":
- return datetime.now()
- date_object = datetime.datetime.strptime(time, "%Y/%m/%d %H:%M:%S")
- formatted_date = date_object.strftime("%Y-%m-%d %H:%M:%S")
- return formatted_date
- def saveDocFile(fileName, htmlText):
- date = datetime.now().strftime("%Y%m%d%H%M%S")
- filename = f"{date}_{fileName}"
- # if not os.path.exists(MEDIA_ROOT):
- # os.mkdir(MEDIA_ROOT)
- path = os.path.join(MEDIA_ROOT, filename)
- # output = pypandoc.convert_text(htmlText, 'docx', format='html')
- # doc = Document()
- # doc.add_paragraph(output)
- # doc.save(path)
- return path
- # 获取文档文件名称
- def getDocxFileName(ext="docx"):
- date = datetime.now().strftime("%Y%m%d%H%M%S")
- fileName = "output." + ext
- filename = f"{date}_{fileName}"
- path = os.path.join(MEDIA_ROOT, filename)
- return path
- def downloadFile(id, fileUrl):
- local_filename = os.path.join(MEDIA_ROOT, str(id)+".xlsx")
- if os.path.exists(local_filename):
- return local_filename
- response = requests.get(fileUrl)
- # Check if the request was successful
- if response.status_code == 200:
- # Open the local file in binary write mode and write the content of the remote file to it
- with open(local_filename, 'wb') as file:
- file.write(response.content)
- return local_filename
- else:
- return ""
|