guarantee-admin-api-v0.2/Modules/Company/CompanyRoutes.py

252 lines
8.3 KiB
Python

from flask import Blueprint, request
from Modules.AdminUser.UserAuthUtils import verify_token
from Modules.Company.CompanyImpl import BasicBusinessInfoImpl
from Modules.Company.CompanyManageImpl import CompanyManageImpl
from Utils.ErrorUtil import AttrCheckError, APIReturnError
from Utils.RouteUtil import RouteParamsCheck
company_route = Blueprint('company', __name__)
@company_route.route('/create', methods=['POST'])
@verify_token
def create_route(**kwargs):
"""新增公司"""
try:
file = request.files['file']
impl = BasicBusinessInfoImpl()
impl.parse_excel_and_create_company(file)
return {"info": "新增成功"}, 200
except AssertionError as e:
return {"info": e.__str__()}, 202
except AttrCheckError as e:
return {"info": e.__str__()}, 202
@company_route.route('/search', methods=['GET'])
@verify_token
def search_route(**kwargs):
"""公司搜索"""
try:
RouteParamsCheck(request.args, ["company_name", "page_size", "page_no"]).required()
company_name = request.args["company_name"]
page_size = request.args["page_size"]
page_no = request.args["page_no"]
impl = CompanyManageImpl()
result = impl.search(
company_name=company_name,
page_size=page_size,
page_no=page_no
)
return {"info": "公司搜索", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@company_route.route('customer_info', methods=['GET'])
@verify_token
def customer_info_route(**kwargs):
"""客户信息"""
try:
RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required()
cid = request.args["cid"]
page_no = request.args["page_no"]
page_size = request.args["page_size"]
impl = CompanyManageImpl()
result = impl.customer_info(cid=cid, page_no=page_no, page_size=page_size)
return {"info": "客户信息", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@company_route.route('regional_info', methods=['GET'])
@verify_token
def regional_info_route(**kwargs):
"""区域分布"""
try:
RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required()
cid = request.args["cid"]
page_no = request.args["page_no"]
page_size = request.args["page_size"]
impl = CompanyManageImpl()
result = impl.regional_info(cid=cid, page_no=page_no, page_size=page_size)
return {"info": "客户信息", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@company_route.route('industry_info', methods=['GET'])
@verify_token
def industry_info_route(**kwargs):
"""行业分布"""
try:
RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required()
cid = request.args["cid"]
page_no = request.args["page_no"]
page_size = request.args["page_size"]
impl = CompanyManageImpl()
result = impl.industry_info(cid=cid, page_no=page_no, page_size=page_size)
return {"info": "客户信息", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@company_route.route('guarantee_balance_info', methods=['GET'])
@verify_token
def guarantee_balance_info_route(**kwargs):
"""担保金额分布"""
try:
RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required()
cid = request.args["cid"]
page_no = request.args["page_no"]
page_size = request.args["page_size"]
impl = CompanyManageImpl()
result = impl.guarantee_balance_info(cid=cid, page_no=page_no, page_size=page_size)
return {"info": "客户信息", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@company_route.route('/basic_data', methods=['GET'])
@verify_token
def basic_data_route(**kwargs):
"""基本信息"""
try:
RouteParamsCheck(request.args, ["cid"]).required()
cid = request.args["cid"]
impl = CompanyManageImpl()
result = impl.basic_data(cid=cid)
return {"info": "基本信息", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@company_route.route('/financial_data', methods=['GET', 'POST'])
@verify_token
def financial_data_route(**kwargs):
"""财务数据"""
try:
if request.method == 'GET':
RouteParamsCheck(request.args, ["cid"]).required()
cid = request.args["cid"]
impl = CompanyManageImpl()
result = impl.get_financial_data(cid=cid)
return {"info": "财务数据", "result": result}, 200
if request.method == 'POST':
RouteParamsCheck(request.json, ["cid", "report_date", "update_data"]).required()
cid = request.json["cid"]
report_date = request.json["report_date"]
update_data = request.json["update_data"]
impl = CompanyManageImpl()
impl.edit_financial_data(cid=cid, report_date=report_date, update_data=update_data)
return {"info": "财务数据", "result": "修改成功"}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@company_route.route('/guarantee_info', methods=['GET', 'POST'])
@verify_token
def guarantee_info_route(**kwargs):
"""担保信息"""
try:
if request.method == "GET":
RouteParamsCheck(request.args, ["cid"]).required()
cid = request.args["cid"]
impl = CompanyManageImpl()
result = impl.get_guarantee_info(cid=cid)
return {"info": "担保信息", "result": result}, 200
if request.method == "POST":
RouteParamsCheck(
request.json,
[
"企业ID", "项目名称", "被担保人", "担保类型", "担保方式", "担保余额(万元)", "解除金额(万元)",
"责任担保余额(万元)", "担保开始日期", "担保结束日期", "省份", "地级市", "行业"
]
).required()
impl = CompanyManageImpl()
data = request.json
if 'new' in request.args.keys():
result = impl.new_guarantee_info(data=data)
else:
result = impl.edit_guarantee_info(data=data)
return {"info": "担保信息", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@company_route.route('/repay', methods=['GET', 'POST'])
@verify_token
def repay_route(**kwargs):
"""代偿信息"""
try:
if request.method == "GET":
RouteParamsCheck(request.args, ["gid"]).required()
gid = request.args["gid"]
impl = CompanyManageImpl()
result = impl.get_repay(gid=gid)
return {"info": "担保信息", "result": result}, 200
if request.method == "POST":
RouteParamsCheck(
request.json,
[
"担保ID", "项目名称", "代偿金额(万元)", "代偿回收金额(万元)", "代偿日期"
]
).required()
impl = CompanyManageImpl()
data = request.json
if 'new' in request.args.keys():
result = impl.new_repay(data=data)
else:
result = impl.edit_repay(data=data)
return {"info": "代偿信息", "result": result}, 200
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@company_route.route('/ratings', methods=['GET'])
@verify_token
def rating_records_route(**kwargs):
"""评级记录"""
try:
if request.method == "GET":
RouteParamsCheck(request.args, ["cid", "page_no", "page_size"]).required()
cid = request.args["cid"]
page_no = request.args["page_no"]
page_size = request.args["page_size"]
result = CompanyManageImpl.get_rating_records(
cid=cid,
page_no=page_no,
page_size=page_size
)
return {"info": "评级记录", "result": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code