Пример #1
0
def update():
    request_data = form.check([
        "did", "code", "meaning", "reference_type", "is_open_data",
        "data_type", "default_value"
    ])
    old_code = request_data['code']
    code = request_data['code']
    data_type = request_data['data_type']
    if request_data.__contains__("old_code"):
        old_code = request_data['old_code']
    # update column to data data
    column_type = "VARCHAR(255)"
    if data_type == "file_string":
        column_type = "mediumtext"
    mymysql.execute(
        'ALTER TABLE designer_data_data_%(did)s change ' + old_code + ' ' +
        code + ' ' + column_type + ' DEFAULT NULL COMMENT %(meaning)s;',
        request_data)
    return json.dumps(
        mymysql.execute(
            """
                update designer_data_struct 
                set code = %(code)s 
                    ,meaning = %(meaning)s 
                    ,reference_type = %(reference_type)s 
                    ,is_open_data = %(is_open_data)s
                    ,data_type = %(data_type)s
                    ,default_value = %(default_value)s
                where id = %(id)s
    """, request_data))
Пример #2
0
def insert():
    request_data = form.check(["pid", "name"])
    pid = request_data["pid"]
    name = request_data["name"]

    insert_result = mymysql.execute(
        """
            insert into designer_data_directory(pid, name) values (%(pid)s, %(name)s)
        """, {
            "pid": pid,
            "name": name,
        })

    json.dumps(
        mymysql.execute(
            """
                CREATE TABLE designer_data_data_%(id)s (
                    id int(11) NOT NULL AUTO_INCREMENT,
                    update_datetime timestamp not null default current_timestamp on update current_timestamp,
                    create_datetime timestamp not null default current_timestamp,
                    PRIMARY KEY (id)
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
        """, {
                "id": insert_result,
            }))

    return json.dumps(insert_result)
Пример #3
0
def update_designer_data_logic_associate(logic_id, file):
    # clear old data
    logic_data = {'logic_id': logic_id}
    mymysql.execute(
        'delete from designer_data_logic_io where logic_id = %(logic_id)s',
        logic_data)
    mymysql.execute(
        'delete from designer_data_logic_trigger where logic_id = %(logic_id)s',
        logic_data)
    # parse data content
    start_data_define_str = '# start data_define'
    end_data_define_str = '# end data_define'
    data_logic_associate_obj = eval(
        file[file.find(start_data_define_str) +
             len(start_data_define_str):file.find(end_data_define_str)])

    def insert_data_logic_io(service_type, logic_id, values):
        if not values and len(values) < 1:
            return
        sql = 'insert into designer_data_logic_io(data_id, logic_id, type) values'
        sql_value = {
            'logic_id': logic_id,
            'type': service_type,
        }
        # loop every value
        for value in values:
            sql += '(%(data_id_' + value + ')s, %(logic_id)s, %(type)s), '
            sql_value['data_id_' + value] = value
        sql = sql[:len(sql) - 2]
        # execute sql
        mymysql.execute(sql, sql_value)

    insert_data_logic_io('get', logic_id, data_logic_associate_obj['get'])
    insert_data_logic_io('set', logic_id, data_logic_associate_obj['set'])

    # trigger
    def insert_data_logic_io_trigger(logic_id, trigger_value):
        if not trigger_value and trigger_value.keys() < 1:
            return
        sql = 'insert into designer_data_logic_trigger(data_id, logic_id, func_name, type) values'
        sql_value = {
            'logic_id': logic_id,
        }
        for data_key in trigger_value:
            data_level = trigger_value[data_key]
            for event_key in data_level:
                event_level = data_level[event_key]
                data_event = data_key + "_" + event_key
                sql += "(%(data_id_" + data_event + ")s, %(logic_id)s, %(func_name_" + data_event \
                       + ")s, %(type_" + data_event + ")s), "
                sql_value["data_id_" + data_event] = data_key
                sql_value["type_" + data_event] = event_key
                sql_value["func_name_" + data_event] = event_level
        sql = sql[:len(sql) - 2]
        mymysql.execute(sql, sql_value)

    insert_data_logic_io_trigger(logic_id, data_logic_associate_obj["trigger"])
Пример #4
0
 def delete_one_level(_id):
     # drop table designer_data_data_
     mymysql.execute("""
                 drop table designer_data_data_%(id)s
                 """, {"id": _id})
     return mymysql.execute("""
         delete
         from designer_data_directory
         where id = %(id)s
         """, {"id": _id})
Пример #5
0
def delete():
    request_data = form.check(["id"])
    code = request_data['code']
    # delete column to data data
    mymysql.execute('ALTER TABLE designer_data_data_%(did)s drop ' + code,
                    request_data)

    return json.dumps(
        mymysql.execute(
            """
                delete from designer_data_struct
                where id = %(id)s
    """, request_data))
Пример #6
0
    def delete_one_level(_id):
        # delete logic data
        mymysql.execute(
            """
                    delete from designer_logic_data where did = %(did)s
                    """, {"did": _id})

        return mymysql.execute(
            """
            delete
            from designer_logic_directory
            where id = %(id)s
            """, {"id": _id})
Пример #7
0
def update():
    request_data = form.check(["did", "code", "meaning", "reference_type"])
    code = request_data['code']
    # update column to data data
    mymysql.execute(
        'ALTER TABLE designer_data_data_%(did)s change ' + code + ' ' + code +
        ' VARCHAR(255) DEFAULT NULL COMMENT %(meaning)s;', request_data)
    return json.dumps(
        mymysql.execute(
            """
                update designer_data_struct 
                set code = %(code)s ,meaning = %(meaning)s
                where id = %(id)s
    """, request_data))
Пример #8
0
def insert():
    request_data = form.check(["did", "code", "meaning", "reference_type"])
    code = request_data['code']
    # insert column to data data
    mymysql.execute(
        'ALTER TABLE designer_data_data_%(did)s ADD COLUMN ' + code +
        ' VARCHAR(255) DEFAULT NULL COMMENT %(meaning)s;', request_data)

    return json.dumps(
        mymysql.execute(
            """
                insert into designer_data_struct(did, code, meaning, reference_type ) 
                values (%(did)s, %(code)s, %(meaning)s, %(reference_type)s)
    """, request_data))
Пример #9
0
 def insert_data_logic_io(service_type, logic_id, values):
     if not values and len(values) < 1:
         return
     sql = 'insert into designer_data_logic_io(data_id, logic_id, type) values'
     sql_value = {
         'logic_id': logic_id,
         'type': service_type,
     }
     # loop every value
     for value in values:
         sql += '(%(data_id_' + value + ')s, %(logic_id)s, %(type)s), '
         sql_value['data_id_' + value] = value
     sql = sql[:len(sql) - 2]
     # execute sql
     mymysql.execute(sql, sql_value)
Пример #10
0
def select():
    return json.dumps(
        mymysql.execute(
            """
        select id, pid, name, description
        from designer_logic_directory
    """, {}))
Пример #11
0
def select():
    request_data = form.check()
    select_sql_keys = "id, pid, name"
    select_sql_keys += """
    ,(select group_concat(reference_type)
        from designer_data_struct dds
        where ddd.id = dds.did
          and dds.reference_type
          and dds.reference_type != '') reference_types
    """
    select_sql_where = ''
    params = {}
    if request_data.__contains__('id'):
        select_sql_keys += ', description'
        select_sql_where = " and id = %(id)s "
        params['id'] = request_data["id"]
    # 是否查询关联数据模型

    # 是否开放数据
    is_open_data = False
    if request_data.__contains__('is_open_data'):
        is_open_data = request_data["is_open_data"]
    if is_open_data:
        select_sql_where += "  and exists(select 1 from designer_data_struct dds where dds.did = ddd.id and dds.is_open_data = 1)"

    select_sql = 'select ' + select_sql_keys + ' from designer_data_directory ddd where 1 = 1 ' + select_sql_where
    return json.dumps(mymysql.execute(select_sql, params))
Пример #12
0
def update():
    request_data = form.check(["id"])

    params = {}
    update_set_sql_str = ""

    params["id"] = request_data["id"]

    if request_data.__contains__("name"):
        params["name"] = request_data["name"]
        update_set_sql_str = "name=%(name)s, "

    if request_data.__contains__("pid"):
        params["pid"] = request_data["pid"]
        update_set_sql_str = "pid=%(pid)s, "

    if request_data.__contains__("description"):
        params["description"] = request_data["description"]
        update_set_sql_str = "description=%(description)s, "

    if "" == update_set_sql_str:
        raise MyServiceException("no content for update set")

    update_set_sql_str = update_set_sql_str[:len(update_set_sql_str) - 2]

    return json.dumps(
        mymysql.execute("update designer_data_directory set " + update_set_sql_str + " where id = %(id)s", params))
Пример #13
0
def insert():
    """
    执行业务, 向执行队列中添加一个执行任务
    :return:
    """
    request_data = form.check(['business_id', "data_id", "data_data_id"])  # 校验是否传入 业务id, 数据模型数据id
    business_id = request_data["business_id"]
    data_id = request_data["data_id"]
    data_data_id = request_data["data_data_id"]
    data_data_data = context.select_data_by_data_id__data_data_id(data_id, data_data_id)[0]
    # 持久化到数据库中
    business_name = business_id_2_name[business_id]
    # 执行器数据id, 后续包含: 执行日志、执行状态 等等
    executor_data_id = mymysql.execute("""
            insert into executor_data(business_id, business_name, data_id,
             data_data_id,data_data_data,create_by) 
             values (%(business_id)s, %(business_name)s, %(data_id)s,%(data_data_id)s,%(data_data_data)s,%(create_by)s )
        """, {
        "business_id": business_id,
        "business_name": business_name,
        "data_id": data_id,
        "data_data_id": data_data_id,
        "data_data_data": dumps(data_data_data),
        "create_by": 'tristan',
    })
    context.log(
        "执行器启动中: data_id: %s data_data_id: %s data_data_data: %s" % (data_id, data_data_id, str(data_data_data)),
        executor_data_id)
    threading.Thread(target=business_hardcode_pool[business_id],
                     args=(executor_data_id, data_data_data,)).start()
    context.log("执行器已启动", executor_data_id)
    return json.dumps({
        "executor_data_id": executor_data_id
    })
Пример #14
0
 def get_children(_id):
     return mymysql.execute(
         """
         select id
         from designer_logic_directory
         where pid = %(id)s
         """, {"id": _id})
Пример #15
0
def delete():
    request_data = form.check(['did', 'id'])
    did = request_data['did']
    designer_data_data_table_name = 'designer_data_data_' + str(did)

    return json.dumps(mymysql.execute(
        'delete from ' + designer_data_data_table_name + ' where id = %(id)s ',
        request_data))
Пример #16
0
def select():
    request_data = form.check(["did"])
    return json.dumps(
        mymysql.execute(
            """
                select id, code, meaning, reference_type
                from designer_data_struct
                where did = %(did)s
    """, request_data))
Пример #17
0
def select():
    request_data = form.check(["did"])
    return json.dumps(
        mymysql.execute(
            """
        select id, file
        from designer_logic_data
        where did = %(did)s
    """, request_data))
Пример #18
0
def select_by_data_id__data_data_id(data_id, data_data_id):
    """
    查询指定表的指定数据
    :param data_id: 表id
    :param data_data_id: 数据id
    :return:
    """
    return json.loads(
        dumps(mymysql.execute("select * from designer_data_data_%s where id=%s" % (data_id, data_data_id))))
Пример #19
0
 def insert_data_logic_io_trigger(logic_id, trigger_value):
     if not trigger_value and trigger_value.keys() < 1:
         return
     sql = 'insert into designer_data_logic_trigger(data_id, logic_id, func_name, type) values'
     sql_value = {
         'logic_id': logic_id,
     }
     for data_key in trigger_value:
         data_level = trigger_value[data_key]
         for event_key in data_level:
             event_level = data_level[event_key]
             data_event = data_key + "_" + event_key
             sql += "(%(data_id_" + data_event + ")s, %(logic_id)s, %(func_name_" + data_event \
                    + ")s, %(type_" + data_event + ")s), "
             sql_value["data_id_" + data_event] = data_key
             sql_value["type_" + data_event] = event_key
             sql_value["func_name_" + data_event] = event_level
     sql = sql[:len(sql) - 2]
     mymysql.execute(sql, sql_value)
Пример #20
0
def select():
    request_data = form.check()
    select_sql_keys = "id, pid, name"
    select_sql_where = ''
    params = {}
    if request_data.__contains__('id'):
        select_sql_keys += ', description'
        select_sql_where = " and id = %(id)s "
        params['id'] = request_data["id"]
    select_sql = 'select ' + select_sql_keys + ' from designer_data_directory where 1 = 1 ' + select_sql_where
    return json.dumps(mymysql.execute(select_sql, params))
Пример #21
0
def update():
    request_data = form.check(["id", "file"])
    update_designer_data_logic_associate(request_data['id'],
                                         request_data['file'])
    return json.dumps(
        mymysql.execute(
            """
        update designer_logic_data
        set file = %(file)s
        where id = %(id)s
    """, request_data))
Пример #22
0
def insert():
    request_data = form.check(
        ["did", "code", "meaning", "reference_type", "data_type"])
    code = request_data['code']
    data_type = request_data['data_type']
    # insert column to data data
    column_type = "VARCHAR(255)"
    if data_type == "file_string":
        column_type = "mediumtext"
    mymysql.execute(
        'ALTER TABLE designer_data_data_%(did)s ADD COLUMN ' + code + ' ' +
        column_type + ' DEFAULT NULL COMMENT %(meaning)s;', request_data)

    return json.dumps(
        mymysql.execute(
            """
                insert into designer_data_struct(did, code, meaning, reference_type
                , is_open_data, data_type, default_value) 
                values (%(did)s, %(code)s, %(meaning)s, %(reference_type)s
                , %(is_open_data)s, %(data_type)s, %(default_value)s)
    """, request_data))
Пример #23
0
def data():
    try:
        request_data = json.loads(request.get_data())
        if not request_data.__contains__("execute"):
            raise MyServiceException("missing param: execute")
        execute = request_data["execute"]
        execute_result = mymysql.execute(execute)
        return dumps(execute_result)
    except MyServiceException as e:
        custom_res = make_response(e.msg)
        custom_res.status = "500"
        return custom_res
Пример #24
0
def delete():
    request_data = form.check(["id"])
    # 删除该数据模型的模型结构字段
    mymysql.execute(
        """
            delete from designer_data_struct
            where did = %(id)s
            """, request_data)

    def get_children(_id):
        return mymysql.execute(
            """
            select id
            from designer_data_directory
            where pid = %(id)s
            """, {"id": _id})

    def delete_one_level(_id):
        # drop table designer_data_data_
        mymysql.execute(
            """
                    drop table designer_data_data_%(id)s
                    """, {"id": _id})
        return mymysql.execute(
            """
            delete
            from designer_data_directory
            where id = %(id)s
            """, {"id": _id})

    def do_delete(_id):
        children = get_children(_id)
        if len(children) > 0:
            for item in children:
                do_delete(item["id"])
        delete_one_level(_id)

    do_delete(request_data["id"])

    return ""
Пример #25
0
def insert():
    request_data = form.check(["pid", "name"])
    pid = request_data["pid"]
    name = request_data["name"]

    insert_result = mymysql.execute(
        """
        insert into designer_logic_directory(pid, name) values (%(pid)s, %(name)s)
    """, {
            "pid": pid,
            "name": name,
        })

    # insert logic_data
    mymysql.execute(
        """
            insert into designer_logic_data(did, file) values (%(did)s, %(file)s)
        """, {
            "did": insert_result,
            "file": '',
        })

    return json.dumps(insert_result)
Пример #26
0
def select():
    """
    查询流程模板
    :return:
    """
    data = mymysql.execute("""
    select service_type, workflow
    from workflow_struct ws
    where ws.id in (select max(id)
                    from workflow_struct
                    group by service_type)
    """)
    return json.dumps({
        'data': data,
    })
Пример #27
0
def update():
    request_data = form.check(['did', 'id'])
    did = request_data['did']
    designer_data_data_table_name = 'designer_data_data_' + str(did)
    update_sql = ''
    # got the data table' column
    data_struct_list = json.loads(struct.select())
    for item in data_struct_list:
        data_data_table_column = item['code']
        if 'id' == data_data_table_column:
            continue
        if request_data.__contains__(data_data_table_column):
            update_sql += data_data_table_column + ' = ' + '%(' + data_data_table_column + ')s, '
    update_sql = update_sql[:len(update_sql) - 2]

    return json.dumps(mymysql.execute(
        'update ' + designer_data_data_table_name + ' set ' + update_sql + ' where id = %(id)s ',
        request_data))
Пример #28
0
def insert():
    request_data = form.check(['did'])
    did = request_data['did']
    designer_data_data_table_name = 'designer_data_data_' + str(did)
    insert_sql_keys = ''
    insert_sql_values = ''
    # got the data table' column
    data_struct_list = json.loads(struct.select())
    for item in data_struct_list:
        data_data_table_column = item['code']
        if request_data.__contains__(data_data_table_column):
            insert_sql_keys += data_data_table_column + ', '
            insert_sql_values += '%(' + data_data_table_column + ')s, '
    insert_sql_keys = insert_sql_keys[:len(insert_sql_keys) - 2]
    insert_sql_values = insert_sql_values[:len(insert_sql_values) - 2]

    return json.dumps(mymysql.execute(
        'insert into ' + designer_data_data_table_name + '(' + insert_sql_keys + ') values(' + insert_sql_values + ')',
        json.loads(json.dumps(request_data))))
Пример #29
0
def select():
    request_data = form.check(['search'])
    is_open_data = False
    if request_data.__contains__('is_open_data'):
        is_open_data = request_data["is_open_data"]
    search = request_data['search']
    did = search['did']
    if request_data.__contains__('page_current'):
        page_current = request_data['page_current']
        if page_current < 1:
            page_current = 1
    else:
        page_current = 1
    if request_data.__contains__('page_size'):
        page_size = request_data['page_size']
    else:
        page_size = 10
    if request_data.__contains__('search'):
        search = request_data['search']
    else:
        search = {}
    if request_data.__contains__('order'):
        order = request_data['order']
    else:
        order = []

    designer_data_data_table_name = 'designer_data_data_' + str(did)
    select_value = {}
    # where
    select_sql_where = ''
    for item in search:
        select_value[item] = search[item]
        if 'did' == item:
            continue
        r"/"
        select_sql_where += ' and ' + item + ' like %(' + item + ')s'
        select_value[item] = '%' + str(search[item]) + '%'

    # page
    page_total = mymysql.execute(
        'select count(1) as page_total from ' + designer_data_data_table_name + ' where 1 = 1 ' + select_sql_where,
        select_value)
    page_total = page_total[0]['page_total']
    select_sql_page = " LIMIT " + str(((page_current - 1) * page_size)) + ", " + str(page_size)

    select_sql_keys = 'id, '
    # got the data table' column
    data_struct_list = mymysql.execute('select code from designer_data_struct where did = %(did)s', {'did': did})
    for item in data_struct_list:
        data_data_table_column = item['code']
        select_sql_keys += data_data_table_column + ', '
    select_sql_keys = select_sql_keys[:len(select_sql_keys) - 2]

    # data
    select_sql = 'select ' + select_sql_keys + ' from ' + designer_data_data_table_name + ' where 1 = 1 ' \
                 + select_sql_where + select_sql_page
    data = mymysql.execute(select_sql, select_value)

    # 查寻开放数据列
    if is_open_data:
        open_data_codes = mymysql.execute("""
            select id, code, is_open_data from designer_data_struct where did = %s
            """ % did)
        allow_code_list = []
        open_data_code_obj = {}
        for item in open_data_codes:
            open_data_code_obj[item["code"]] = item
            if item["is_open_data"] == 1:
                allow_code_list.append(item["code"])
        # 替换列表中开放数据列为引用key
        for data_item in data:
            for data_item_key in data_item:
                if data_item_key in allow_code_list or data_item_key == "id":
                    continue
                data_item[data_item_key] = "SOA数据引用key: %s__%s__%s" % (
                    did, data_item["id"], (open_data_code_obj[data_item_key])["id"])
    return json.dumps({
        'page_total': page_total,
        'data': data,
        'page_current': page_current,
        'page_size': page_size,
        'search': search,
        'order': order,
    })
Пример #30
0
from component.mymysql import execute

mymysql.init({
    'host': "192.168.121.133",
    'port': 3306,
    'database': 'laashub',
    'user': '******',
    'password': '******',
    'charset': 'utf8mb4',
})

if __name__ == '__main__':
    target_id = 38
    # 查询多条
    print(execute("""
    select * from designer_data_directory
    """))
    # 查询一条
    print(execute("""
    select * from designer_data_directory where id = %(id)s
    """, {
        "id": target_id
    }))
    # 新增
    print(execute("""
        insert into designer_data_directory(pid, name) values (%(pid)s,%(name)s)
        """, {
        "pid": target_id,
        "name": "test2"
    }))
    # 修改