2022-01-14 14:15:37 +08:00
|
|
|
|
import datetime
|
2022-01-12 14:44:37 +08:00
|
|
|
|
import os
|
2022-01-11 16:56:50 +08:00
|
|
|
|
import time
|
|
|
|
|
|
|
|
|
|
from flask import Blueprint, request
|
|
|
|
|
|
|
|
|
|
from Certificate.PdfCertificate import CertificateGenerator
|
2022-01-12 14:44:37 +08:00
|
|
|
|
from Certificate.scripts.common import get_certificate_data
|
|
|
|
|
from Certificate.scripts.path_tool import get_gen_report_path
|
|
|
|
|
from Certificate.db import upload_pdf
|
2022-01-11 16:56:50 +08:00
|
|
|
|
from common.scripts import verify_token
|
|
|
|
|
|
|
|
|
|
certificate_route = Blueprint('certificate', __name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@certificate_route.route('/generate_certificate', methods=['POST'])
|
|
|
|
|
@verify_token
|
|
|
|
|
def gen_certificate():
|
|
|
|
|
"""
|
|
|
|
|
描述
|
|
|
|
|
Parameters:
|
|
|
|
|
company str 企业名称
|
|
|
|
|
cid str 企业ID
|
|
|
|
|
rid str 评价ID
|
|
|
|
|
Returns:
|
|
|
|
|
result: 证书FileID
|
|
|
|
|
"""
|
|
|
|
|
|
2022-01-12 14:44:37 +08:00
|
|
|
|
def certificate(param):
|
|
|
|
|
"""
|
|
|
|
|
生成证书pdf
|
|
|
|
|
Parameters:
|
|
|
|
|
param: dict 证书所需数据
|
|
|
|
|
Returns:
|
|
|
|
|
res: 处理成功返回报告FileID;处理失败返回False
|
|
|
|
|
"""
|
|
|
|
|
# 生成PDF报告文件,以时间戳命名,临时存储
|
2022-01-14 14:15:37 +08:00
|
|
|
|
certificate_file_name = '{}_{}.pdf'.format(req_body['company'], datetime.datetime.now().strftime('%Y%m%d'))
|
2022-01-12 14:44:37 +08:00
|
|
|
|
pdf_report = CertificateGenerator(name=certificate_file_name, text_data=param)
|
|
|
|
|
pdf_report.gen()
|
|
|
|
|
|
|
|
|
|
return certificate_file_name
|
|
|
|
|
|
|
|
|
|
def save_certificate(param):
|
|
|
|
|
"""
|
|
|
|
|
保存证书pdf
|
|
|
|
|
Parameters:
|
|
|
|
|
param: 证书pdf
|
|
|
|
|
Returns:
|
|
|
|
|
res: 处理成功返回报告FileID;处理失败返回False
|
|
|
|
|
"""
|
|
|
|
|
# 保存PDF报告文件,删除临时存储的报告
|
|
|
|
|
file_id = upload_pdf(param)
|
|
|
|
|
certificate_path = get_gen_report_path(name=param)
|
|
|
|
|
os.remove(certificate_path)
|
|
|
|
|
|
|
|
|
|
# 保存PDF报告成功,返回FileID;保存PDF报告文件失败,返回False
|
|
|
|
|
return file_id if file_id else False
|
|
|
|
|
|
2022-01-11 16:56:50 +08:00
|
|
|
|
# Parameters
|
|
|
|
|
req_body = request.json # 接收的json格式请求体
|
2022-01-12 14:44:37 +08:00
|
|
|
|
text_data = get_certificate_data(req_body)
|
|
|
|
|
certifice_pdf = certificate(text_data)
|
|
|
|
|
result = save_certificate(certifice_pdf)
|
|
|
|
|
|
|
|
|
|
if result is not False:
|
|
|
|
|
return {"info": "生成证书成功", "result": {"FileID": result}}, 200
|
|
|
|
|
else:
|
|
|
|
|
return {"info": "生成证书失败"}, 210
|