tianyun 2 rokov pred
rodič
commit
32736aac20

+ 58 - 0
ExecCode.py

@@ -0,0 +1,58 @@
+class ExecUtil:
+    tmpMap = {}
+
+    @classmethod
+    def exec_code(cls, function_str, call_str, param_dict):
+        """
+        动态执行函数,必须按照示例的函数传入,设计到提取函数方法和参数
+        :param function_str: 函数代码
+        :param call_str:
+        :param param_dict: 入参
+        :return:
+        """
+        result = {}
+        tmp_key = "tmp_result_625d7c4c3daa411f9cf8b14441e65539"
+        function_str += f"\n{tmp_key}['res']={call_str}"
+        if function_str in cls.tmpMap:
+            cmp_code = cls.tmpMap[function_str]
+        else:
+            cmp_code = compile(function_str, '', 'exec')
+            cls.tmpMap[function_str] = cmp_code
+        exec(cmp_code, {}, {**param_dict, tmp_key: result})
+        return result['res']
+
+
+# cmd_str = """
+# def factorial(num):
+#     fact=1
+#     for i in range(1,num+1):
+#         fact = fact*i
+#     return fact
+# """
+#
+# start = time.time()
+# for x in range(10000):
+#     ExecUtil.exec_code(cmd_str, 'factorial(num)', {"num": 3})
+# print(time.time() - start)
+
+
+class User:
+    def __init__(self):
+        self.dic = {}
+        self.a = 0
+
+    def test1(self, b):
+        print(ExecUtil.exec_code("""
+
+def test2(self, b):
+    import time
+    print(time.time())
+    self.dic['c'] = b+1
+    self.a = b
+    return b+2
+    """, "test2(self, b)", {"self": self, "b": b}))
+
+
+user = User()
+user.test1(3)
+print(user.dic)

+ 9 - 0
project-test/bigtree-aircp/bcard.py

@@ -30,3 +30,12 @@ class MyTest(unittest.TestCase):
 
         req(self.host + "/riskAi/overduePredictionModel/getShapleyBillOverdue", json_data)
         req(self.host + "/riskAi/overduePredictionModel/getShapleyFinTaxOverdue", json_data)
+    def test_bcard123(self):
+        data = {
+            "creditcode": "9132059268586250XD",
+            "custCode": "140621198002054910",
+            "bussCode": "EDBH608140254985360710",
+            "telNum": "13935101575",
+            "channelCode": "HZJG3822434947192730559615279481"
+        }
+        res_json = req(self.host + "/riskAi/overduePredictionModel/getOverduePredictionModelScore", data)

+ 215 - 0
project-test/bigtree-aircp/datasource.py

@@ -0,0 +1,215 @@
+import unittest
+
+import requests
+
+from util import req, reqGet
+
+
+class MyTest(unittest.TestCase):
+    def setUp(self) -> None:
+        self.host = "http://127.0.0.1:8080"  # local
+        # self.host = "https://gateway.rxdpdev.k5.bigtree.tech/rxdp-xdata-web"  # dev
+        # self.host = "http://172.18.232.249:8080"  # test
+        # self.host = "http://172.18.150.210:8080"  # 仿真环境
+
+    def test_queryAllDataSource(self):
+        """查询所有数据源"""
+        reqGet(self.host + "/dataSource/queryAllDataSource", {})
+
+    def test3(self):
+        """测试mysql驱动是否连接"""
+        req(self.host + "/dataSource/testConnection", {
+            "id": 2,
+            "createBy": "admin",
+            "createByView": None,
+            "createTime": "2022-08-17 16:45:41",
+            "updateBy": "admin",
+            "updateByView": None,
+            "updateTime": "2022-08-17 16:45:41",
+            "version": 1,
+            "sourceCode": "test",
+            "sourceName": "test",
+            "sourceDesc": "",
+            "sourceType": "jdbc",
+            "sourceConfig": "{\"driverName\":\"com.mysql.cj.jdbc.Driver\",\"jdbcUrl\":\"jdbc:mysql://127.0.0.1:3306/aj_report?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8\",\"username\":\"root\",\"password\":\"root\"}",
+            "enableFlag": 1,
+            "deleteFlag": 0,
+            "jdbcUrl": None,
+            "username": None,
+            "password": None,
+            "driverName": None,
+            "sql": None,
+            "apiUrl": None,
+            "method": None,
+            "header": None,
+            "body": None,
+            "dynSentence": None,
+            "contextData": None,
+            "accessKey": "1aec8e5d33aee82c021ba8df4c6b09e9"
+        })
+
+    def testTransform(self):
+        """mysql测试"""
+        req(self.host + "/dataSet/testTransform", {"dataSetTransformDtoList": [],
+                                                   "dynSentence": "{\"apiUrl\":\"https://api.tianyunperfect.cn/test/test\",\"body\":\"\",\"method\":\"GET\",\"header\":\"{ \\\"Content-Type\\\": \\\"application/json;charset=UTF-8\\\" }\"}",
+                                                   "setType": "http", "dataSetParamDtoList": []})
+
+    def testTransform1(self):
+        """mysql- clickhouse测试"""
+        req(self.host + "/dataSet/testTransform", {
+            "sourceCode": "clickhouse1",
+            "dynSentence": "SELECT version()",
+            "dataSetParamDtoList": [],
+            "dataSetTransformDtoList": [],
+            "setType": "sql"
+        })
+
+    # mysql-测试
+    def testTrans2(self):
+        req(self.host + "/dataSet/testTransform", {"dataSetTransformDtoList": [
+            {"createTime": "2022-09-08 11:01:15", "setCode": "3", "orderNum": 1, "editTime": "2022-09-08 11:01:15",
+             "transformScript": "{\"3\":{\"3\":\"3\"},\"5\":{\"5\":\"5\"}}", "id": 24, "transformType": "dict",
+             "enableFlag": "1", "useStatus": "0"}],
+            "dynSentence": "{\"apiUrl\":\"https://api.tianyunperfect.cn/test/test\",\"method\":\"GET\",\"header\":\"{\\\"Content-Type\\\":\\\"application/json;charset=UTF-8\\\"}\",\"body\":\"3\"}",
+            "dataSetParamDtoList": [
+                {"setCode": "3", "editId": "USR840299609749222294",
+                 "editTime": "2022-09-08 11:01:16", "paramName": "2",
+                 "requiredFlag": 1, "editName": "liudehua", "useStatus": "0",
+                 "paramType": "2", "paramDesc": "2",
+                 "createTime": "2022-09-08 11:01:16",
+                 "createId": "USR840299609749222294", "id": 44, "enableFlag": 1,
+                 "createName": "liudehua", "sampleItem": "2"}]})
+
+    def testQuerySet(self):
+        """数据集 query 接口测试"""
+        req(self.host + "/dataSet/query", {
+            "setCode": "gjhgh",
+            "map": {
+                "id": 2,
+            }
+        })
+
+    def testQuerySet(self):
+        """test"""
+        req(self.host + "/dataSet/testTransform", {
+            "sourceCode": "hu_hawq_test2234",
+            "dynSentence": "SELECT org_no AS orgNo, 23 AS tagValue FROM company_business_information WHERE taxpayer_level = 'A'",
+            "dataSetParamDtoList": [],
+            "dataSetTransformDtoList": [
+                {
+                    "createBy": "admin",
+                    "createByView": None,
+                    "createTime": "2022-09-01 14:18:09",
+                    "updateBy": "admin",
+                    "updateByView": None,
+                    "updateTime": "2022-09-01 14:18:09",
+                    "version": 1,
+                    "setCode": "hawq_12341321",
+                    "transformType": "dict",
+                    "transformScript": "{\"tagvalue\":{\"23\":\"26\"}}",
+                    "orderNum": 1,
+                    "enableFlag": 1,
+                    "deleteFlag": 0,
+                    "accessKey": "7a4620a55d8924ff4a02b9fd68e65d22"
+                },
+                {
+                    "createBy": "admin",
+                    "createByView": None,
+                    "createTime": "2022-09-01 14:18:09",
+                    "updateBy": "admin",
+                    "updateByView": None,
+                    "updateTime": "2022-09-01 14:18:09",
+                    "version": 1,
+                    "setCode": "hawq_12341321",
+                    "transformType": "javaBean",
+                    "transformScript": "package com.bigtreefinance.rxdp.xdata.groovy;\n\nimport com.alibaba.fastjson.JSONObject;\nimport com.bigtreefinance.rxdp.xdata.service.transform.IGroovyHandler;\n\nimport java.util.List;\n\n/**\n * 建议在idea写好复制整个类到此处,位置report-core/src/test/java/com/DemoGroovyHandler.java\n */\npublic class DemoGroovyHandler implements IGroovyHandler {\n\n    @Override\n    public List<JSONObject> transform(List<JSONObject> data) {\n\n        for(JSONObject json : data){\n            json.put(\"value\",json.get(\"tagvalue\"));\n            json.remove(\"task_no\");\n        }\n        return data;\n    }\n}",
+                    "orderNum": 2,
+                    "enableFlag": 1,
+                    "deleteFlag": 0,
+                    "accessKey": "8713ec121c219011fa2ff7b4f973da96"
+                }
+            ],
+            "setType": "sql"
+        })
+
+    def testDataSourcePage(self):
+        """数据源分页查询"""
+        reqGet(self.host + "/dataSource/pageList?page=1&limit=10", {})
+
+    def testDataSetPage(self):
+        """数据源分页查询"""
+        reqGet(self.host + "/dataSet/pageList?page=1&limit=10", {})
+
+    def testDataSetDelete(self):
+        """数据源分页查询"""
+        # reqGet(self.host + "/dataSet/73", {})
+        requests.delete(self.host + "/dataSet/73")
+
+    def testDict(self):
+        reqGet(self.host + "/rxdp-data-dict-item/TRANSFORM_TYPE", {})
+
+    # ========= 数据源 =========
+    # 批量删除
+    def testBachDelete(self):
+        req(self.host + "/dataSource/delete/batch", [7, 8])
+
+    # 添加、更新
+    def testAdd(self):
+        req(self.host + "/dataSource",
+            {"sourceType": "mysql", "sourceCode": "1", "sourceName": "1", "sourceDesc": "1", "driverName": "1",
+             "jdbcUrl": "1", "username": "1", "password": "1",
+             "sourceConfig": "{\"driverName\":\"1\",\"jdbcUrl\":\"1\",\"username\":\"1\",\"password\":\"1\"}"})
+
+    def testDataSourceType(self):
+        reqGet(self.host + "/rxdp-data-dict-item/SOURCE_TYPE", {})
+
+    def testTransform3(self):
+        req(self.host + "/dataSet/testTransform", {"dataSetTransformDtoList": [
+            {"createTime": "2022-08-30 10:40:01", "setCode": "hu233333321", "orderNum": 1,
+             "editTime": "2022-09-05 16:20:24",
+             "transformScript": "package com; import com.alibaba.fastjson.JSONObject; import com.anjiplus.template.gaea.business.modules.datasettransform.service.IGroovyHandler; import java.util.List; /** * 建议在idea写好复制整个类到此处,位置report-core/src/test/java/com/DemoGroovyHandler.java */ public class DemoGroovyHandler implements IGroovyHandler { @Override public List&lt;JSONObject&gt; transform(List&lt;JSONObject&gt; data) { for(JSONObject json : data){ json.put(\"taskNo\",json.get(\"task_no\")); json.remove(\"task_no\"); } return data; } }",
+             "id": 123, "transformType": "javaBean", "enableFlag": "1", "version": 1, "useStatus": "0"},
+            {"createTime": "2022-09-14 18:28:48", "setCode": "hu233333321", "orderNum": 2,
+             "editTime": "2022-09-14 18:28:48", "transformScript": "", "id": 124, "transformType": "js",
+             "enableFlag": "1", "useStatus": "0"},
+            {"createTime": "2022-09-14 18:28:48", "setCode": "hu233333321", "orderNum": 3,
+             "editTime": "2022-09-14 18:28:48", "transformScript": "", "id": 125, "transformType": "",
+             "enableFlag": "1", "useStatus": "0"}],
+                                                   "dynSentence": "SELECT task_no,task_name,task_type,job_id,entity_no FROM rxdp_tag_task WHERE task_type = ${taskType} and task_status = ${taskStatus}",
+                                                   "setType": "sql", "dataSetParamDtoList": [
+                {"setCode": "hu233333321", "editId": "USR840299609749222148", "orderNum": 1,
+                 "editTime": "2022-09-05 16:20:24", "paramName": "taskType", "version": 1, "requiredFlag": 1,
+                 "editName": "yanfa", "useStatus": "0", "createTime": "2022-08-30 10:40:01",
+                 "createId": "USR840299609749222148", "id": 101, "enableFlag": 1, "createName": "yanfa",
+                 "sampleItem": "taskType"},
+                {"setCode": "hu233333321", "editId": "USR840299609749222148", "editTime": "2022-09-15 20:37:58",
+                 "paramName": "task_status", "requiredFlag": 1, "editName": "yanfa", "useStatus": "0",
+                 "createTime": "2022-09-15 20:37:58", "createId": "USR840299609749222148", "id": 102, "enableFlag": 1,
+                 "createName": "yanfa", "sampleItem": "task_status"}], "sourceCode": "hu123123"})
+
+    # ========= 数据集 =========
+    def testDataSetUpdate(self):
+        req(self.host + "/dataSet/update", {"setName": "3", "setCode": "3",
+                                            "caseResult": "[{\"code\":1,\"data\":[{\"json_str\":\"hello1\",\"name\":\"hi2\",\"id\":19},{\"json_str\":\"hello\",\"name\":\"hi2\",\"id\":20},{\"json_str\":\"hello\",\"name\":\"hi1\",\"id\":21},{\"json_str\":\"hello3\",\"name\":\"hi2\",\"id\":22},{\"json_str\":\"hello\",\"name\":\"hi2\",\"id\":23},{\"json_str\":\"hello1\",\"name\":\"hi2\",\"id\":24},{\"json_str\":\"hello\",\"name\":\"hi0\",\"id\":25},{\"json_str\":\"hello\",\"name\":\"hi2\",\"id\":26},{\"json_str\":\"hello\",\"name\":\"hi2\",\"id\":27},{\"json_str\":\"hhh\",\"name\":\"testtest2\",\"id\":28}],\"message\":\"success\",\"timestamp\":1662604491373,\"executeTime\":3}]",
+                                            "editTime": "2022-09-08 11:01:15", "setType": "http",
+                                            "dynSentence": "{\"apiUrl\":\"https://api.tianyunperfect.cn/test/test\",\"method\":\"GET\",\"header\":\"{\\\"Content-Type\\\":\\\"application/json;charset=UTF-8\\\"}\",\"body\":\"3\"}",
+                                            "enableFlagString": "已启动", "dataSetParamDtoList": [
+                {"setCode": "3", "editId": "USR840299609749222294", "editTime": "2022-09-08 11:01:16", "paramName": "2",
+                 "requiredFlag": 1, "editName": "liudehua", "useStatus": "0", "paramType": "2", "paramDesc": "2",
+                 "createTime": "2022-09-08 11:01:16", "createId": "USR840299609749222294", "id": 33, "enableFlag": 1,
+                 "createName": "liudehua", "sampleItem": "2"}], "setDesc": "3", "dataSetTransformDtoList": [
+                {"createTime": "2022-09-08 11:01:15", "setCode": "3", "orderNum": 1, "editTime": "2022-09-08 11:01:15",
+                 "transformScript": "{\"3\":{\"3\":\"3\"},\"5\":{\"5\":\"5\"}}", "id": 16, "transformType": "dict",
+                 "enableFlag": "1", "useStatus": "0"}], "id": 85, "enableFlag": 1,
+                                            "setParamList": ["code", "data", "message", "timestamp", "executeTime"]})
+
+    def testDetailBysetId(self):
+        reqGet(self.host + "/dataSet/detailBysetId/90", {})
+
+    def testUpdateDataSet(self):
+        req(self.host + "/dataSet/update",
+            {"setCode": "rr", "setDesc": "r", "setName": "r", "dynSentence": "rrr", "setType": "sql",
+             "dataSetParamDtoList": [], "dataSetTransformDtoList": [
+                {"createTime": "2022-09-13 17:43:27", "setCode": "rr", "orderNum": 1, "editTime": "2022-09-13 17:43:27",
+                 "transformScript": "", "id": 36, "transformType": "js", "enableFlag": "1", "useStatus": "0"}],
+             "caseResult": "{}", "sourceCode": "33"})

+ 0 - 6
sh-demo/tmp.sh

@@ -1,6 +0,0 @@
-redis_config=''
-if [ -e "/redisconfig/redis.conf" ]; then
-  redis_config="/redisconfig/redis.conf"
-else
-
-fi

+ 14 - 0
sh/jdk8.sh

@@ -0,0 +1,14 @@
+wget http://tianyunperfect.oss-cn-hongkong.aliyuncs.com/file/jdk/8/jdk-8u261-linux-x64.tar.gz
+sudo tar -zxvf jdk-8u261-linux-x64.tar.gz -C /usr/local/
+rm -f ./jdk-8u261-linux-x64.tar.gz
+
+echo 正在配置环境变量
+sudo bash -c 'cat >> /etc/profile << \EOF
+# JAVA
+JAVA_HOME=/usr/local/jdk1.8.0_261
+PATH=$JAVA_HOME/bin:$PATH
+export JAVA_HOME PATH
+EOF'
+
+# 环境变量
+source /etc/profile && echo "JAVA_HOME: "$JAVA_HOME && java -version

+ 0 - 0
sh-demo/raw.sh → sh/raw.sh


+ 0 - 0
sh-demo/rc/baserc.sh → sh/rc/baserc.sh


+ 0 - 0
sh-demo/rc/insertrc.sh → sh/rc/insertrc.sh


+ 9 - 0
sh/tmp.sh

@@ -0,0 +1,9 @@
+getNamespace() {
+  read "namespace?aircpdev aircptest aircpsl
+rxdpdev rxdptest rxdpsl: "
+  if [ "${namespace}" ]; then
+    echo "${namespace}"
+  else
+    echo "rxdpdev"
+  fi
+}

+ 5 - 12
tmp.py

@@ -1,12 +1,5 @@
-import subprocess
-import sys
-
-
-def run_shell(shell):
-    cmd = subprocess.Popen(shell, stdin=subprocess.PIPE, stderr=sys.stderr, close_fds=True,
-                           stdout=sys.stdout, universal_newlines=True, shell=True, bufsize=1)
-    cmd.communicate()
-    return cmd.returncode
-
-
-run_shell("tail -f C:/Users/root/IdeaProjects/python-base/index.html")
+dic_test = {}
+dic_test['*' * 1000] = "1"
+dic_test['*' * 5000] = "2"
+print(dic_test)
+print(len(dic_test))

+ 18 - 0
tmp/rocketmq/consumer.py

@@ -0,0 +1,18 @@
+from rocketmq.client import PushConsumer
+import time
+
+namesrv = "172.19.193.178:9876"
+topic_name = 'topic_name'
+
+
+def callback(msg):
+    print(msg)
+
+
+consumer = PushConsumer('PID-0012', message_model=0)
+consumer.set_namesrv_addr(namesrv)
+consumer.subscribe(topic_name, callback)
+consumer.start()
+while True:
+    time.sleep(30)
+consumer.shutdown()

+ 16 - 0
tmp/rocketmq/produce.py

@@ -0,0 +1,16 @@
+from rocketmq.client import Producer, Message
+
+namesrv = "172.19.193.178:9876"
+topic_name = 'topic_name'
+
+producer = Producer('PID-001')  # 随便
+producer.set_namesrv_addr(namesrv)  # ip和端口
+producer.start()
+
+msg = Message(topic_name)  # topic
+msg.set_keys('2020-12-15')
+msg.set_tags('explain')
+msg.set_body('{"key":"value"}')
+ret = producer.send_sync(msg)
+print(ret.status, ret.msg_id, ret.offset)
+producer.shutdown()