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):
|
||||
"""
|
||||
插入单条数据
|
||||
更新单条数据
|
||||
param1: str 数据库
|
||||
param2: str 数据表
|
||||
param3: dict 查询条件
|
||||
|
@ -202,6 +202,32 @@ class MongoHelper:
|
|||
collection = self.client[param1][param2]
|
||||
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):
|
||||
"""
|
||||
根据查询条件删除一条文档
|
||||
|
|
|
@ -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 Modules.Indicators.IndicatorObj import TagObj
|
||||
from Modules.Indicators.Tags.TagsObj import TagObj
|
||||
from Utils.CommonUtil import CommonUtils
|
||||
|
||||
|
||||
class IndicatorImpl(object):
|
||||
class TagsImpl(object):
|
||||
|
||||
@staticmethod
|
||||
def make_new_cid():
|
||||
|
@ -28,12 +30,12 @@ class IndicatorImpl(object):
|
|||
{'标签名称': {"$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']}},
|
||||
['标签名称'],
|
||||
{'标签名称': -1},
|
||||
['标签名称', '创建日期'],
|
||||
{'创建日期': -1},
|
||||
kwargs['page_size'],
|
||||
kwargs['page_no']
|
||||
)
|
||||
|
@ -51,6 +53,8 @@ class IndicatorImpl(object):
|
|||
obj = TagObj()
|
||||
obj.tag_id = self.make_new_cid()
|
||||
obj.tag_field = filed
|
||||
obj.associate_func = list()
|
||||
obj.create_date = time.strftime('%Y-%m-%d', time.localtime())
|
||||
DB_TEST.upsert_single_data(
|
||||
'模型数据',
|
||||
'标签数据',
|
||||
|
@ -58,3 +62,38 @@ class IndicatorImpl(object):
|
|||
obj.fields_toggle()
|
||||
)
|
||||
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.ValidateUtil import ValidateAttr
|
||||
from Utils.ValidateUtil import ValidateAttr, Validate
|
||||
|
||||
|
||||
class IndexObj(SpecObject):
|
||||
|
@ -76,13 +76,15 @@ class TagObj(SpecObject):
|
|||
"func_id": "函数ID",
|
||||
"func_name": "函数名称"
|
||||
}
|
||||
|
||||
|
||||
tag_id = ValidateAttr(field='tag_id', type=str)
|
||||
tag_field = ValidateAttr(field='tag_field', type=str)
|
||||
associate_func = ValidateAttr(field='associate_func', instance_list=AssociateFunc)
|
||||
create_date = ValidateAttr(field='create_date', func=Validate.date_format)
|
||||
|
||||
fields_map = {
|
||||
"tag_id": "标签ID",
|
||||
"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 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__)
|
||||
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(indicator_route, url_prefix='/rating/indicator')
|
||||
app.register_blueprint(tags_route, url_prefix='/rating/indicator/tags')
|
||||
|
||||
|
||||
@app.route('/admin/version')
|
||||
|
|
Loading…
Reference in New Issue