新注册企业用户,添加一级行业字段

This commit is contained in:
王思川 2022-03-29 05:12:14 +08:00
parent e612c16dd7
commit e3c451ab42
5 changed files with 245 additions and 1 deletions

11
DBHelper/DBConfig.json Normal file
View File

@ -0,0 +1,11 @@
{
"MongoDB": {
"tfse_v0.21": "root:UTlC9cCoglD1cI1*@116.63.130.34:27021"
},
"Mysql": {
},
"Redis": {
}
}

203
DBHelper/MongoHelper.py Normal file
View File

@ -0,0 +1,203 @@
import os
import json
import gridfs
import pymongo
from bson import ObjectId
from gridfs import GridFS
class MongoHelper:
def __init__(self, param):
"""
param:
typestr
desc: 选择连接哪个MongoDB数据库
"""
with open(os.path.abspath(os.path.dirname(__file__) + '/DBConfig.json')) as f:
db_configs = json.load(f)
this_mongo_cfg = db_configs['MongoDB'][param]
self.client = pymongo.MongoClient('mongodb://{}'.format(this_mongo_cfg))
def find_single_column(self, param1, param2, param3, param4):
"""
查询符合条件的第一条数据的某个指定字段值
param2: str 数据表
param3: dict 查询条件
param4: str 一个指定查询字段
return:
type: None or dict
desc: 查询结果为空返回None; 查询结果正常返回查询结果的第一条数据;
"""
collection = self.client[param1][param2]
column = {**{'_id': False}, **{param4: 1}}
record = list(collection.find(param3, column))
return None if record == [] else record[0][param4]
def find_single_data(self, param1, param2, param3, param4):
"""
查询符合条件的第一条数据
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: list 查询字段
return:
type: bool or dict
desc: 查询结果为空返回False; 查询结果正常返回查询结果的第一条数据;
"""
collection = self.client[param1][param2]
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
record = list(collection.find(param3, columns))
return False if record == [] else record[0]
def find_single_data_with_single_sort(self, param1, param2, param3, param4, param5):
"""
查询符合条件的第一条数据,按单个排序条件返回
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: list 查询字段
param5: dict 排序条件 例如 {"name": 1} 表示按照name字段正序返回
return:
type: bool or dict
desc: 查询结果为空返回False; 查询结果正常返回查询结果的第一条数据;
"""
collection = self.client[param1][param2]
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
record = list(collection.find(param3, columns).sort(list(param5.keys())[0], list(param5.values())[0]).limit(1))
return False if record == [] else record[0]
def find_all_data(self, param1, param2, param3, param4):
"""
查询符合条件的所有数据
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: list 查询字段
return:
type: list
desc: 查询结果
"""
collection = self.client[param1][param2]
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
record = list(collection.find(param3, columns))
return record
def find_all_data_with_count(self, param1, param2, param3):
"""
查询所有符合条件的数据并返回统计数量
param1: str 数据库
param2: str 数据表
param3: str 查询条件
return: int 符合条件的数据数量
"""
collection = self.client[param1][param2]
num = collection.find(param3).count()
return num
def find_all_data_with_single_sort(self, param1, param2, param3, param4, param5):
"""
查询符合条件的数据,按单个排序条件返回
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: list 查询字段
param5: dict 排序条件 例如 {"name": 1} 表示按照name字段正序返回
return:
type: bool or dict
desc: 查询结果为空返回False; 查询结果正常返回查询结果的第一条数据;
"""
collection = self.client[param1][param2]
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
record = list(collection.find(param3, columns).sort(list(param5.keys())[0], list(param5.values())[0]))
return False if record == [] else record
def find_data_with_aggregate(self, param1, param2, param3):
"""
根据聚合条件查询
param1: str 数据库
param2: str 数据集
param3:
type: list
desc: 聚合条件
demo: [{'$match':{'price':{'$gte':50}}}, {'$group': {'_id': "$fName", 'count': {'$sum': 1}}}]
"""
collection = self.client[param1][param2]
data = list(collection.aggregate(param3))
return data
def find_data_by_page_with_sort(self, param1, param2, param3, param4, param5, param6, param7):
"""
根据聚合翻页查询,且按照需求字段排序返回
param1: str 数据库
param2: str 数据集
param3: dict 查询条件
param4: list 显示字段
param5: dict 排序条件 例如 {"name": 1} 表示按照name字段正序返回
param6: int page_size 每页数据条数
param7: int page_no 当前页码
"""
collection = self.client[param1][param2]
columns = {**{'_id': False}, **dict(zip(param4, [1] * len(param4)))}
page_size = int(param6)
page_no = int(param7)
skip_num = page_size * (page_no - 1)
record = list(collection.find(param3, columns).sort(list(param5.keys())[0], list(param5.values())[0]).limit(page_size).skip(skip_num))
return False if record == [] else record
def upsert_single_data(self, param1, param2, param3, param4):
"""
插入单条数据
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: dict 更新或新插入的数据
return:
None
"""
collection = self.client[param1][param2]
collection.update_one(param3, {"$set": param4}, upsert=True)
def update_single_data(self, param1, param2, param3, param4):
"""
插入单条数据
param1: str 数据库
param2: str 数据表
param3: dict 查询条件
param4: dict 更新或新插入的数据
return:
None
"""
collection = self.client[param1][param2]
collection.update_one(param3, {"$set": param4})
def find_file(self, param1, param2, param3):
"""
读取一个文件
param1: str 数据库
param2: str 存储桶
param3: str 文件id
return:
type: binary?
desc: 二进制文件流
"""
try:
# 实例化一个文件存储器
gfs = GridFS(self.client[param1], collection=param2)
# 二进制读取文件
data_stream = gfs.get(ObjectId(param3)).read()
# 返回文件二进制流
return data_stream
except gridfs.errors.NoFile:
return False
def delete_file(self, param1, param2, param3):
"""
根据id删除文件
param1: str 数据库
param2: str 存储桶
param3: str 文件fid
"""
fs = GridFS(self.client[param1], param2)
fs.delete(ObjectId(param3))

0
DBHelper/__init__.py Normal file
View File

View File

@ -13,5 +13,6 @@
"法人身份证": null,
"营业执照fid": null,
"身份证fid": null
}
},
"一级行业": null
}

View File

@ -6,6 +6,7 @@ import random
import requests
from werkzeug.security import check_password_hash, generate_password_hash
from DBHelper.MongoHelper import MongoHelper
from user.user_auth import create_token
from user.user_utils import make_id, check_mail_fmt, check_pwd_fmt, check_registered, check_verify_code
from user.user_db import FIND_USER_INFO, UPDATE_VERIFY_CODE, UPDATE_USER_INFO_BY_CID, INSERT_USER_INFO, \
@ -385,6 +386,33 @@ def tyc_company_verify(cid):
def update_verify_status():
UPDATE_USER_INFO_BY_CID(cid, {"企业名称": name, "已认证": ""})
# 更新企业行业信息
def update_industry_info():
db = MongoHelper("tfse_v0.21")
business_info = db.find_single_column(
"企业数据",
"基本工商信息",
{"企业ID": cid},
"工商信息"
)
tyc_industry_l2 = business_info['行业']
fecr_industry_l1 = db.find_single_column(
"模型端",
"天眼查公司行业分类",
{"二级行业": tyc_industry_l2},
"远东_一级行业"
)
db.update_single_data(
"应用端",
"企业用户",
{"企业ID": cid},
{"一级行业": fecr_industry_l1}
)
# 执行流程
def start_impl():
res = check_verify_info_complete()
@ -397,6 +425,7 @@ def tyc_company_verify(cid):
init_company_data()
update_verify_status()
update_industry_info()
return True