From 86e4e10485156f9fb5d8ad6dd6a0f7fc4195c9ef Mon Sep 17 00:00:00 2001 From: P3ngSaM <61768364+P3ngSaM@users.noreply.github.com> Date: Thu, 30 Jun 2022 14:33:49 +0800 Subject: [PATCH] =?UTF-8?q?index=20on=20ps:=204715b0e=20update=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Modules/Functions/FinIndex/FinIndexImpl.py | 50 +++++++++--------- Modules/Functions/FinIndex/FinIndexRoutes.py | 16 +++++- Modules/Functions/FinIndex/FinIndexUtils.py | 18 +++++++ .../__pycache__/FinIndexImpl.cpython-310.pyc | Bin 0 -> 1955 bytes .../__pycache__/FinIndexObj.cpython-310.pyc | Bin 0 -> 1038 bytes .../FinIndexRoutes.cpython-310.pyc | Bin 0 -> 1901 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 154 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 145 bytes Modules/Indicators/Tags/TagsImpl.py | 23 ++++---- Modules/Indicators/Tags/TagsRoutes.py | 19 +++---- .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 146 bytes .../__pycache__/SModelImpl.cpython-310.pyc | Bin 0 -> 152 bytes .../__pycache__/SModelRoutes.cpython-310.pyc | Bin 0 -> 154 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 150 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 142 bytes __pycache__/app.cpython-310.pyc | Bin 0 -> 760 bytes 16 files changed, 78 insertions(+), 48 deletions(-) create mode 100644 Modules/Functions/FinIndex/FinIndexUtils.py create mode 100644 Modules/Functions/FinIndex/__pycache__/FinIndexImpl.cpython-310.pyc create mode 100644 Modules/Functions/FinIndex/__pycache__/FinIndexObj.cpython-310.pyc create mode 100644 Modules/Functions/FinIndex/__pycache__/FinIndexRoutes.cpython-310.pyc create mode 100644 Modules/Functions/FinIndex/__pycache__/__init__.cpython-310.pyc create mode 100644 Modules/Functions/__pycache__/__init__.cpython-310.pyc create mode 100644 Modules/Indicators/__pycache__/__init__.cpython-310.pyc create mode 100644 Modules/Models/SModels/__pycache__/SModelImpl.cpython-310.pyc create mode 100644 Modules/Models/SModels/__pycache__/SModelRoutes.cpython-310.pyc create mode 100644 Modules/Models/SModels/__pycache__/__init__.cpython-310.pyc create mode 100644 Modules/Models/__pycache__/__init__.cpython-310.pyc create mode 100644 __pycache__/app.cpython-310.pyc diff --git a/Modules/Functions/FinIndex/FinIndexImpl.py b/Modules/Functions/FinIndex/FinIndexImpl.py index 4e759b3..825c710 100644 --- a/Modules/Functions/FinIndex/FinIndexImpl.py +++ b/Modules/Functions/FinIndex/FinIndexImpl.py @@ -8,33 +8,31 @@ from Utils.CommonUtil import CommonUtils class FinanceIndexImpl(object): @staticmethod - def make_new_cid(): - new_cid = CommonUtils.random_code(8) + def new_calculate_func(**kwargs): + """新建计算函数""" + data = kwargs['data'] + case = DB_TEST.find_single_column( "模型数据", "计算函数", - {"函数ID": new_cid}, + {"函数ID": data['func_id']}, "函数ID" - ) is not None - while case: - new_cid = CommonUtils.random_code(8) - return new_cid + ) + if case: + return '函数ID已存在' - def new_calculate_func(self, **kwargs): - """新建计算函数""" - data = kwargs['data'] func = FinIndexObj() - func.func_id = self.make_new_cid() - func.func_name = data['函数名称'] - func.describe = data['说明'] - func.method = data['方法'] + func.func_id = data['func_id'] + func.func_name = data['func_name'] + func.describe = data['describe'] + func.method = data['method'] func.param = list() - for params in data['参数']: + for params in data['params']: param = func.Param() - param.name = params['参数名'] - param.mark = params['备注'] + param.name = params['name'] + param.mark = params['mark'] func.param.append(param) - func.tags = data['标签'] + func.tags = data['tags'] func.edit_date = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) func.status = 'normal' @@ -150,18 +148,18 @@ class FinanceIndexImpl(object): @staticmethod def edit_calculate_func(**kwargs): data = kwargs['data'] - fid = data['函数ID'] + fid = data['func_id'] func = FinIndexObj() - func.func_name = data['函数名称'] - func.describe = data['说明'] - func.method = data['方法'] + func.func_name = data['func_name'] + func.describe = data['describe'] + func.method = data['method'] func.param = list() - for params in data['参数']: + for params in data['params']: param = func.Param() - param.name = params['参数名'] - param.mark = params['备注'] + param.name = params['name'] + param.mark = params['mark'] func.param.append(param) - func.tags = data['标签'] + func.tags = data['tags'] func.edit_date = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) update_data = func.fields_toggle() diff --git a/Modules/Functions/FinIndex/FinIndexRoutes.py b/Modules/Functions/FinIndex/FinIndexRoutes.py index 8b15316..647963c 100644 --- a/Modules/Functions/FinIndex/FinIndexRoutes.py +++ b/Modules/Functions/FinIndex/FinIndexRoutes.py @@ -1,18 +1,30 @@ from flask import Blueprint, request from Modules.Functions.FinIndex.FinIndexImpl import FinanceIndexImpl +from Modules.Functions.FinIndex.FinIndexUtils import FinanceIndexUtils from Utils.ErrorUtil import APIReturnError from Utils.RouteUtil import RouteParamsCheck finance_route = Blueprint('finance', __name__) +@finance_route.route('/calculate_func_id', methods=['GET']) +def calculate_func_id_route(): + """新建指标计算函数id""" + try: + impl = FinanceIndexUtils() + result = impl.make_new_cid() + return {"info": "新增计算函数ID", "函数ID": result}, 200 + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + @finance_route.route('/new_calculate_func', methods=['POST']) def new_calculate_func_route(): """新建指标计算函数""" try: RouteParamsCheck(req=request.json, params=[ - "函数名称", "说明", "方法", "参数", "标签" + "func_id", "func_name", "describe", "method", "params", "tags" ]).required() data = request.json impl = FinanceIndexImpl() @@ -72,7 +84,7 @@ def operate_calculate_func_route(): result = impl.view_calculate_func(fid=fid) return {"info": "查看指标计算函数", "result": result}, 200 if request.method == 'POST': - RouteParamsCheck(request.json, ["函数ID", "函数名称", "说明", "方法", "参数", "标签"]).required() + RouteParamsCheck(request.json, ["func_id", "func_name", "describe", "method", "params", "tags"]).required() data = request.json impl = FinanceIndexImpl() result = impl.edit_calculate_func(data=data) diff --git a/Modules/Functions/FinIndex/FinIndexUtils.py b/Modules/Functions/FinIndex/FinIndexUtils.py new file mode 100644 index 0000000..f892ef6 --- /dev/null +++ b/Modules/Functions/FinIndex/FinIndexUtils.py @@ -0,0 +1,18 @@ +from DBHelper.MongoHelperInstance import DB_TEST +from Utils.CommonUtil import CommonUtils + + +class FinanceIndexUtils(object): + + @staticmethod + def make_new_cid(): + new_cid = CommonUtils.random_code(8) + case = DB_TEST.find_single_column( + "模型数据", + "计算函数", + {"函数ID": new_cid}, + "函数ID" + ) is not None + while case: + new_cid = CommonUtils.random_code(8) + return new_cid diff --git a/Modules/Functions/FinIndex/__pycache__/FinIndexImpl.cpython-310.pyc b/Modules/Functions/FinIndex/__pycache__/FinIndexImpl.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2722be1b6a5c3b8996dd22afcc1595c02b0da97e GIT binary patch literal 1955 zcmZ`)-D@0G6u%QXf()gC+RngNW3URD-k@QV^HOFqwO^nPhfmduP@p z%Lc?0R%)w#X%#7Ux3pLV(@5)siu!-dtL!HE1Nxw#^_)8~Zjw5~z4N;t=bU@bIlnVe zxm+OdjGg{rwx1*9cN`2pItf98zhKL)7->a=hEc#C4j|qemE6!vHZ^Lf``k4j|PJ?(BhY&6Qn{psW72&%GnjN zMk_jCWd^VT*x;s`H+c@sS?M8A?uMRF2BvEDV2=d@l$y}qMhjP=Yr$nk$tq3A8d+s6 zurf+o%%OlZg>X(+NK5oJTr*(C7$p*tw=KANo_AmXL8>!CS z#C=kN#cZN?dZwMEeJ1} zS@OAXq?>@+ne!2E1R|a}2ZD(og@ATaaTj39jMrDv;ZQ6&o*Q_Lz)ggMrhpkFJ_((r znY5r@iVN5Gb8LSijvv&xCpXcn7BrQcuK@TrH{lCexyqVWLRz%N z))*!40@UjM~N?NtlgPvJ@Pb+;;j98Hnt z6bvH>l95CSL@6hQ7fBvNj1-rS&iNsC+#paia+dsL-tnSFm{g9d6(pB4yW%KCYBi2z zV(VFi$M7JS=cy@0+z68WksgVKE4_IKjQF0LL^4+VcnL%lKXeUwa8&UiLng!=U;PhO z1cv;r8_gFF#Q)h^FW9-%a+Dh#CoMQmO_3OI$#E_>+yKi8j^YGJ?qvl?9>+VJ!0r@w zSQQ33%vXuogmokyg3cnCoa_j+;t*A97i_cg+{D?pL{JxU{CpHvqYO`lUT(q=1prf$*z+uT8}F9RP|Ez z(1U_dd$1PTiwFHf<|^IRKfsHE_}*;0F4_tC_Ir~z^S$}rY&!@%hGYHQ&iqx2v2PR% z4;zCie9Q9)z`)2@ZbXJb+|10}iY$X&XJCQ-jDanTr&eTxGsnW(cU-|jLwR!@k=&ZU zCz1*y|4y8x5Le<#Rmp@>hDQy9DSXQeL9oaG7MWl~7D||4p@b!DlyF21#p>X!n2|fg z8$;aF+<_YAG&T2iegJiFp#dH=!C!Nt5eTr{5!IYdiyH-qM_6muNB#ZHcYB+!cbC8P zR=57EbYRSde<~F=n8E=IRcpxY1CF&q4eD!HFSw}JcsxF&H#r;2IR8P%-+l1}^^{%2 zx!5q3vyh4mlwB=#gtGHk-tRUBS-US+x_Zs~<=*y((3BKN>gY_^P%h`R3Fpe=Ja0oc zBkptlpc`igU+SDgJK^BO8(tLd0M;VdED7xa-8-i_&Ig$Vry2msiUojDF`m( zDlHaUH?>CDn(h`!m9`6H2bK;9dOO)!QjR{ai<^}r2rjb?A0N{)4ez%+hEs~kI{x69 zC@TumqO9T~5j;!FO1G!q7_?w-eM`Hr|7oZ9=DDW5SD$;^tJ1-x{rK(j-p8+@qZ$iX zo3=%{Aj(9h^Fq~fQQd8Wayrxn^g3QFXTnk0#O0E1f(!_#QfU%Uf!Z-SO6&x|NrF=Z zrxBD*b;>goj}Z*q>$3@(qdP<;mS+*jgE7+tJ8K3#aaqADZcmaR_ literal 0 HcmV?d00001 diff --git a/Modules/Functions/FinIndex/__pycache__/FinIndexRoutes.cpython-310.pyc b/Modules/Functions/FinIndex/__pycache__/FinIndexRoutes.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b667ac1563dbc5bb32a9e783380b70d19855984e GIT binary patch literal 1901 zcma)6&u`pB6rLG-ZSQ8YyG_!xKnYS0z+RFw6+%FiLJpLuDMDD0EaREocd>iU$+tZQ%z1kCQM$2AwC5|5ycT|V;8rHOR$=g$Y`6cseL0Vv@O@tz8TqV z$8|7bm=;)Zi?}6LYK>8g+D%NI9YTw=^a^76D2^E3L z;lZOSrD{13L%a{B^Nd6iw@4GJb{kW&Lw1clgmr8aNplNr;x29#x`-M(c#}}nCDi()N1McBxz+9;p zxw@1aU^25Mk~nh|P9bNMtD3nJ!Jw%56fGey5OQ;IoLcK1%czcI`dUWDJ_>Yw?TG8JWN%1kOV1TLRa;j_wU zSf@tSK?BQG4f#1`6je2Jxw!z-?8#9Fa|E7%b)mjPjA^L;L-n75h0eJ-!F(R9dSOh% zz?TUZxpo?yX z-@QEyLfv#7={LRDZ?mkZnvix~d(Ce$FHYQ|c0|}=8lY4OqIc@DTePXl?UWC;v^=ejVM83Gr2~2h4aG&cdcy^%R*#`<9 zII7L()T_QF!${2PHm_WrwcC$sq3fvXOPS;8ib9te@Av*Z(X5~~uSLxjv$#s`6jxQl i;hM0{i*4OsUcwO44Wfq1qzuiWL@GuJS1K^d75opRiUJ`3 literal 0 HcmV?d00001 diff --git a/Modules/Functions/FinIndex/__pycache__/__init__.cpython-310.pyc b/Modules/Functions/FinIndex/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8174b2bae0e087b9675d65cd09f3e0cad02403ac GIT binary patch literal 154 zcmd1j<>g`k0wdKeNg(<$h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6w()hZ^SC_gJT zxg@4MGbJ^?D6u3nFFnRLKczG$wK&GDG%vX%Gd~Z=%FOf3OG&MWiI30B%PfhH*DI*J T#bJ{RR%iz@wwMV>urL4swT~oO literal 0 HcmV?d00001 diff --git a/Modules/Functions/__pycache__/__init__.cpython-310.pyc b/Modules/Functions/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..35b24bb59e6f5016ab0f39a1984e44e904dc3f24 GIT binary patch literal 145 zcmd1j<>g`k0#*4fNg(<$h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6wn)hZ^SC_gJT zxg@4MGbJ^?D6u3nFFnRLKczG$wK&GDG%vX%Ge565CO$qhFS8^*Uaz3?7KcqPSl$j~ LS}_xlU||3NPmLhV literal 0 HcmV?d00001 diff --git a/Modules/Indicators/Tags/TagsImpl.py b/Modules/Indicators/Tags/TagsImpl.py index 07e726a..e18d065 100644 --- a/Modules/Indicators/Tags/TagsImpl.py +++ b/Modules/Indicators/Tags/TagsImpl.py @@ -23,6 +23,8 @@ class TagsImpl(object): @staticmethod def search_tags(**kwargs): """标签搜索""" + type + total = DB_TEST.find_all_data_with_count( '模型数据', @@ -81,19 +83,18 @@ class TagsImpl(object): @staticmethod def associate_func(**kwargs): """关联函数""" - tag_id = kwargs['tag_id'] - func_id = kwargs['func_id'] - func_name = kwargs['func_name'] + data = kwargs['data'] obj = TagObj.AssociateFunc() - obj.func_id = func_id - obj.func_name = func_name + obj.func_id = data['func_id'] + obj.func_name = data['func_name'] - DB_TEST.update_single_data_by_add( - '模型数据', - '标签数据', - {'标签ID': tag_id}, - {"关联函数": obj.fields_toggle()} - ) + for item in data['tags_id']: + DB_TEST.update_single_data_by_add( + '模型数据', + '标签数据', + {'标签ID': item}, + {"关联函数": obj.fields_toggle()} + ) return '关联成功' diff --git a/Modules/Indicators/Tags/TagsRoutes.py b/Modules/Indicators/Tags/TagsRoutes.py index 70c0539..bb4f501 100644 --- a/Modules/Indicators/Tags/TagsRoutes.py +++ b/Modules/Indicators/Tags/TagsRoutes.py @@ -11,12 +11,15 @@ tags_route = Blueprint('tags', __name__) def search_tags_route(): """查询标签""" try: - RouteParamsCheck(request.args, ["tag_name", "page_no", "page_size"]).required() + RouteParamsCheck(request.args, ["tag_type", "tag_name", "page_no", "page_size"]).required() + tag_type = request.args["tag_type"] 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) + result = impl.search_tags( + tag_type=tag_type, tag_name=tag_name, page_no=page_no, page_size=page_size + ) return {"info": "标签搜索", "result": result}, 200 except APIReturnError as e: @@ -52,17 +55,15 @@ def cancel_associate_func_route(): return {"info": e.__str__()}, e.status_code -@tags_route.route('/associate_func', methods=['GET']) +@tags_route.route('/associate_func', methods=['POST']) 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'] + RouteParamsCheck(request.json, ["tags_id", "func_id", "func_name"]).required() + data = request.json impl = TagsImpl() - result = impl.associate_func(tag_id=tag_id, func_id=func_id, func_name=func_name) + result = impl.associate_func(data=data) return {"info": "关联函数", "result": result}, 200 except APIReturnError as e: - return {"info": e.__str__()}, e.status_code \ No newline at end of file + return {"info": e.__str__()}, e.status_code diff --git a/Modules/Indicators/__pycache__/__init__.cpython-310.pyc b/Modules/Indicators/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e8a7b5783ee2bec747c419962bbf89ae671b09d7 GIT binary patch literal 146 zcmd1j<>g`kf*|=VNg(<$h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6w%)hZ^SC_gJT zxg@4MGbJ^?D6u3nFFnRLKczG$wK&EzFC{ZMu_V8!I3_+mGcU6wK3=b&@)n0pE?9vb M$hcxAAi=@_0E*EeQ2+n{ literal 0 HcmV?d00001 diff --git a/Modules/Models/SModels/__pycache__/SModelImpl.cpython-310.pyc b/Modules/Models/SModels/__pycache__/SModelImpl.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5722cb03ab204322ed34cc9a86a0ffe1d204d169 GIT binary patch literal 152 zcmd1j<>g`k0w(FLNg(<$h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6w-)hZ^SC_gJT zxg@4MGbJ^?D6u3nFFnRLKczG$wHQRF<`l;SqtKqY1vz>JmA5!-a>2^%K!z4G0SOic E06G{W5dZ)H literal 0 HcmV?d00001 diff --git a/Modules/Models/SModels/__pycache__/SModelRoutes.cpython-310.pyc b/Modules/Models/SModels/__pycache__/SModelRoutes.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d25592e82bd326645680f0e4b8b9d3728e3cc09d GIT binary patch literal 154 zcmd1j<>g`k0#4nnNg(<$h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6w()hZ^SC_gJT zxg@4MGbJ^?D6u3nFFnRLKczG$wHQRF<`l;SqtHS5r6sAwdIgoYIBask3hh9~7Bc|} G76t&EQzRS! literal 0 HcmV?d00001 diff --git a/Modules/Models/SModels/__pycache__/__init__.cpython-310.pyc b/Modules/Models/SModels/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2dc74135bd4f28edc37f5073eab9eaece65db85e GIT binary patch literal 150 zcmd1j<>g`k0weh?Ng(<$h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6w#)hZ^SC_gJT zxg@4MGbJ^?D6u3nFFnRLKczG$wHQRF<`l;SL+SYV%)HE!_;|g7%3B;ZxnMg`kg1ahPl0fuh5P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!Hat5r-uQGQlx za!E{iW=d*&QDRAEUV4mgeoARhYB7jT%_)wFkI&4@EQycTE2zB1VUr7%v;!Gc%mgG@ F7yv(gATa;{ literal 0 HcmV?d00001 diff --git a/__pycache__/app.cpython-310.pyc b/__pycache__/app.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fd4d15d5b1cb205fb2c2186c081629984be0909b GIT binary patch literal 760 zcmYjO&5qMB5Vq5_P17{pMQ{UDaVruna6~Hvs#NnqHJ*qcgcq4B23d> z`lV=oW4!I;`+-(QdrCFUa`M@nPi4vuQF3`vY)4fqH zqYNGbh|6P1+0`CQ&3?5q4+);^>Y-$_Yu($!ZDDmgU4}6uq^JPdz#dGdv!WIya>-Z4 zJ;hdBXH1b(k+W2BnHAOY8#mM|Dwnrg*q}z)^(Zd+zBcRC55aiI!Jg$|2h_!W#m7#? K#g6S^``>@MNy;Mt literal 0 HcmV?d00001