update 标签管理
This commit is contained in:
parent
fb10a80bc9
commit
9fc6da3b01
|
@ -191,7 +191,7 @@ class MongoHelper:
|
||||||
|
|
||||||
def update_single_data(self, param1, param2, param3, param4):
|
def update_single_data(self, param1, param2, param3, param4):
|
||||||
"""
|
"""
|
||||||
插入单条数据
|
更新单条数据
|
||||||
param1: str 数据库
|
param1: str 数据库
|
||||||
param2: str 数据表
|
param2: str 数据表
|
||||||
param3: dict 查询条件
|
param3: dict 查询条件
|
||||||
|
@ -202,6 +202,32 @@ class MongoHelper:
|
||||||
collection = self.client[param1][param2]
|
collection = self.client[param1][param2]
|
||||||
collection.update_one(param3, {"$set": param4})
|
collection.update_one(param3, {"$set": param4})
|
||||||
|
|
||||||
|
def update_single_data_by_pull(self, param1, param2, param3, param4):
|
||||||
|
"""
|
||||||
|
更新单条数据
|
||||||
|
param1: str 数据库
|
||||||
|
param2: str 数据表
|
||||||
|
param3: dict 查询条件
|
||||||
|
param4: dict 更新或新插入的数据
|
||||||
|
return:
|
||||||
|
None
|
||||||
|
"""
|
||||||
|
collection = self.client[param1][param2]
|
||||||
|
collection.update_one(param3, {"$pull": param4})
|
||||||
|
|
||||||
|
def update_single_data_by_add(self, param1, param2, param3, param4):
|
||||||
|
"""
|
||||||
|
更新单条数据
|
||||||
|
param1: str 数据库
|
||||||
|
param2: str 数据表
|
||||||
|
param3: dict 查询条件
|
||||||
|
param4: dict 更新或新插入的数据
|
||||||
|
return:
|
||||||
|
None
|
||||||
|
"""
|
||||||
|
collection = self.client[param1][param2]
|
||||||
|
collection.update_one(param3, {"$addToSet": param4})
|
||||||
|
|
||||||
def delete_single_data(self, param1, param2, param3):
|
def delete_single_data(self, param1, param2, param3):
|
||||||
"""
|
"""
|
||||||
根据查询条件删除一条文档
|
根据查询条件删除一条文档
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
from flask import Blueprint, request
|
|
||||||
|
|
||||||
from Modules.Indicators.IndicatorImpl import IndicatorImpl
|
|
||||||
from Utils.ErrorUtil import APIReturnError
|
|
||||||
from Utils.RouteUtil import RouteParamsCheck
|
|
||||||
|
|
||||||
indicator_route = Blueprint('indicator', __name__)
|
|
||||||
|
|
||||||
|
|
||||||
@indicator_route.route('/search_tags', methods=['GET'])
|
|
||||||
def search_tags_route():
|
|
||||||
"""查询标签"""
|
|
||||||
try:
|
|
||||||
RouteParamsCheck(request.args, ["tag_name", "page_no", "page_size"]).required()
|
|
||||||
tag_name = request.args["tag_name"]
|
|
||||||
page_no = request.args["page_no"]
|
|
||||||
page_size = request.args["page_size"]
|
|
||||||
impl = IndicatorImpl()
|
|
||||||
result = impl.search_tags(tag_name=tag_name, page_no=page_no, page_size=page_size)
|
|
||||||
return {"info": "标签搜索", "result": result}, 200
|
|
||||||
|
|
||||||
except APIReturnError as e:
|
|
||||||
return {"info": e.__str__()}, e.status_code
|
|
||||||
|
|
||||||
|
|
||||||
@indicator_route.route('/new_tags', methods=['GET'])
|
|
||||||
def new_tags_route():
|
|
||||||
"""新增标签"""
|
|
||||||
try:
|
|
||||||
RouteParamsCheck(request.args, ["tag_name"]).required()
|
|
||||||
tag_name = request.args["tag_name"]
|
|
||||||
impl = IndicatorImpl()
|
|
||||||
result = impl.new_tags(tag_name=tag_name)
|
|
||||||
return {"info": "新增标签", "result": result}, 200
|
|
||||||
|
|
||||||
except APIReturnError as e:
|
|
||||||
return {"info": e.__str__()}, e.status_code
|
|
||||||
|
|
||||||
|
|
||||||
@indicator_route.route('/new_indicator', methods=['POST'])
|
|
||||||
def new_indicator_route():
|
|
||||||
"""构建指标"""
|
|
||||||
try:
|
|
||||||
RouteParamsCheck(request.args, ["tag_name"]).required()
|
|
||||||
except APIReturnError as e:
|
|
||||||
return {"inof": e.__str__()}, e.status_code
|
|
|
@ -1,9 +1,11 @@
|
||||||
|
import time
|
||||||
|
|
||||||
from DBHelper.MongoHelperInstance import DB_TEST
|
from DBHelper.MongoHelperInstance import DB_TEST
|
||||||
from Modules.Indicators.IndicatorObj import TagObj
|
from Modules.Indicators.Tags.TagsObj import TagObj
|
||||||
from Utils.CommonUtil import CommonUtils
|
from Utils.CommonUtil import CommonUtils
|
||||||
|
|
||||||
|
|
||||||
class IndicatorImpl(object):
|
class TagsImpl(object):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def make_new_cid():
|
def make_new_cid():
|
||||||
|
@ -28,12 +30,12 @@ class IndicatorImpl(object):
|
||||||
{'标签名称': {"$regex": kwargs['tag_name']}}
|
{'标签名称': {"$regex": kwargs['tag_name']}}
|
||||||
)
|
)
|
||||||
|
|
||||||
records = DB_TEST.find_all_data_with_single_sort(
|
records = DB_TEST.find_data_by_page_with_sort(
|
||||||
'模型数据',
|
'模型数据',
|
||||||
'标签数据',
|
'标签数据',
|
||||||
{'标签名称': {"$regex": kwargs['tag_name']}},
|
{'标签名称': {"$regex": kwargs['tag_name']}},
|
||||||
['标签名称'],
|
['标签名称', '创建日期'],
|
||||||
{'标签名称': -1},
|
{'创建日期': -1},
|
||||||
kwargs['page_size'],
|
kwargs['page_size'],
|
||||||
kwargs['page_no']
|
kwargs['page_no']
|
||||||
)
|
)
|
||||||
|
@ -51,6 +53,8 @@ class IndicatorImpl(object):
|
||||||
obj = TagObj()
|
obj = TagObj()
|
||||||
obj.tag_id = self.make_new_cid()
|
obj.tag_id = self.make_new_cid()
|
||||||
obj.tag_field = filed
|
obj.tag_field = filed
|
||||||
|
obj.associate_func = list()
|
||||||
|
obj.create_date = time.strftime('%Y-%m-%d', time.localtime())
|
||||||
DB_TEST.upsert_single_data(
|
DB_TEST.upsert_single_data(
|
||||||
'模型数据',
|
'模型数据',
|
||||||
'标签数据',
|
'标签数据',
|
||||||
|
@ -58,3 +62,38 @@ class IndicatorImpl(object):
|
||||||
obj.fields_toggle()
|
obj.fields_toggle()
|
||||||
)
|
)
|
||||||
return '新增成功'
|
return '新增成功'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def cancel_associate_func(**kwargs):
|
||||||
|
"""取消关联函数"""
|
||||||
|
tag_id = kwargs['tag_id']
|
||||||
|
func_id = kwargs['func_id']
|
||||||
|
|
||||||
|
DB_TEST.update_single_data_by_pull(
|
||||||
|
'模型数据',
|
||||||
|
'标签数据',
|
||||||
|
{'标签ID': tag_id},
|
||||||
|
{"关联函数": {"函数ID": func_id}}
|
||||||
|
)
|
||||||
|
|
||||||
|
return '取消关联成功'
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def associate_func(**kwargs):
|
||||||
|
"""关联函数"""
|
||||||
|
tag_id = kwargs['tag_id']
|
||||||
|
func_id = kwargs['func_id']
|
||||||
|
func_name = kwargs['func_name']
|
||||||
|
|
||||||
|
obj = TagObj.AssociateFunc()
|
||||||
|
obj.func_id = func_id
|
||||||
|
obj.func_name = func_name
|
||||||
|
|
||||||
|
DB_TEST.update_single_data_by_add(
|
||||||
|
'模型数据',
|
||||||
|
'标签数据',
|
||||||
|
{'标签ID': tag_id},
|
||||||
|
{"关联函数": obj.fields_toggle()}
|
||||||
|
)
|
||||||
|
|
||||||
|
return '关联成功'
|
|
@ -1,5 +1,5 @@
|
||||||
from Utils.ObjUtil import SpecObject
|
from Utils.ObjUtil import SpecObject
|
||||||
from Utils.ValidateUtil import ValidateAttr
|
from Utils.ValidateUtil import ValidateAttr, Validate
|
||||||
|
|
||||||
|
|
||||||
class IndexObj(SpecObject):
|
class IndexObj(SpecObject):
|
||||||
|
@ -76,13 +76,15 @@ class TagObj(SpecObject):
|
||||||
"func_id": "函数ID",
|
"func_id": "函数ID",
|
||||||
"func_name": "函数名称"
|
"func_name": "函数名称"
|
||||||
}
|
}
|
||||||
|
|
||||||
tag_id = ValidateAttr(field='tag_id', type=str)
|
tag_id = ValidateAttr(field='tag_id', type=str)
|
||||||
tag_field = ValidateAttr(field='tag_field', type=str)
|
tag_field = ValidateAttr(field='tag_field', type=str)
|
||||||
associate_func = ValidateAttr(field='associate_func', instance_list=AssociateFunc)
|
associate_func = ValidateAttr(field='associate_func', instance_list=AssociateFunc)
|
||||||
|
create_date = ValidateAttr(field='create_date', func=Validate.date_format)
|
||||||
|
|
||||||
fields_map = {
|
fields_map = {
|
||||||
"tag_id": "标签ID",
|
"tag_id": "标签ID",
|
||||||
"tag_field": "标签名称",
|
"tag_field": "标签名称",
|
||||||
"associate_func": "关联函数"
|
"associate_func": "关联函数",
|
||||||
|
"create_date": "创建日期"
|
||||||
}
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
from flask import Blueprint, request
|
||||||
|
|
||||||
|
from Modules.Indicators.Tags.TagsImpl import TagsImpl
|
||||||
|
from Utils.ErrorUtil import APIReturnError
|
||||||
|
from Utils.RouteUtil import RouteParamsCheck
|
||||||
|
|
||||||
|
tags_route = Blueprint('tags', __name__)
|
||||||
|
|
||||||
|
|
||||||
|
@tags_route.route('/search_tags', methods=['GET'])
|
||||||
|
def search_tags_route():
|
||||||
|
"""查询标签"""
|
||||||
|
try:
|
||||||
|
RouteParamsCheck(request.args, ["tag_name", "page_no", "page_size"]).required()
|
||||||
|
tag_name = request.args["tag_name"]
|
||||||
|
page_no = request.args["page_no"]
|
||||||
|
page_size = request.args["page_size"]
|
||||||
|
impl = TagsImpl()
|
||||||
|
result = impl.search_tags(tag_name=tag_name, page_no=page_no, page_size=page_size)
|
||||||
|
return {"info": "标签搜索", "result": result}, 200
|
||||||
|
|
||||||
|
except APIReturnError as e:
|
||||||
|
return {"info": e.__str__()}, e.status_code
|
||||||
|
|
||||||
|
|
||||||
|
@tags_route.route('/new_tags', methods=['GET'])
|
||||||
|
def new_tags_route():
|
||||||
|
"""新增标签"""
|
||||||
|
try:
|
||||||
|
RouteParamsCheck(request.args, ["tag_name"]).required()
|
||||||
|
tag_name = request.args["tag_name"]
|
||||||
|
impl = TagsImpl()
|
||||||
|
result = impl.new_tags(tag_name=tag_name)
|
||||||
|
return {"info": "新增标签", "result": result}, 200
|
||||||
|
|
||||||
|
except APIReturnError as e:
|
||||||
|
return {"info": e.__str__()}, e.status_code
|
||||||
|
|
||||||
|
|
||||||
|
@tags_route.route('/cancel_associate_func', methods=['GET'])
|
||||||
|
def cancel_associate_func_route():
|
||||||
|
"""取消关联函数"""
|
||||||
|
try:
|
||||||
|
RouteParamsCheck(request.args, ["tag_id", "func_id"]).required()
|
||||||
|
tag_id = request.args['tag_id']
|
||||||
|
func_id = request.args['func_id']
|
||||||
|
impl = TagsImpl()
|
||||||
|
result = impl.cancel_associate_func(tag_id=tag_id, func_id=func_id)
|
||||||
|
return {"info": "关联函数", "result": result}, 200
|
||||||
|
|
||||||
|
except APIReturnError as e:
|
||||||
|
return {"info": e.__str__()}, e.status_code
|
||||||
|
|
||||||
|
|
||||||
|
@tags_route.route('/associate_func', methods=['GET'])
|
||||||
|
def associate_func_route():
|
||||||
|
"""关联函数"""
|
||||||
|
try:
|
||||||
|
RouteParamsCheck(request.args, ["tag_id", "func_id", "func_name"]).required()
|
||||||
|
tag_id = request.args['tag_id']
|
||||||
|
func_id = request.args['func_id']
|
||||||
|
func_name = request.args['func_name']
|
||||||
|
impl = TagsImpl()
|
||||||
|
result = impl.associate_func(tag_id=tag_id, func_id=func_id, func_name=func_name)
|
||||||
|
return {"info": "关联函数", "result": result}, 200
|
||||||
|
|
||||||
|
except APIReturnError as e:
|
||||||
|
return {"info": e.__str__()}, e.status_code
|
4
app.py
4
app.py
|
@ -2,7 +2,7 @@ from flask import Flask
|
||||||
from flask_cors import *
|
from flask_cors import *
|
||||||
|
|
||||||
from Modules.Functions.FinIndex.FinIndexRoutes import finance_route
|
from Modules.Functions.FinIndex.FinIndexRoutes import finance_route
|
||||||
from Modules.Indicators.IndicatorRoutes import indicator_route
|
from Modules.Indicators.Tags.TagsRoutes import tags_route
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
CORS(app, supports_credentials=True)
|
CORS(app, supports_credentials=True)
|
||||||
|
@ -10,7 +10,7 @@ app.config['JSON_SORT_KEYS'] = False
|
||||||
|
|
||||||
|
|
||||||
app.register_blueprint(finance_route, url_prefix='/rating/functions/finance')
|
app.register_blueprint(finance_route, url_prefix='/rating/functions/finance')
|
||||||
app.register_blueprint(indicator_route, url_prefix='/rating/indicator')
|
app.register_blueprint(tags_route, url_prefix='/rating/indicator/tags')
|
||||||
|
|
||||||
|
|
||||||
@app.route('/admin/version')
|
@app.route('/admin/version')
|
||||||
|
|
Loading…
Reference in New Issue