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))
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)
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"])
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 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))
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})
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))
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))
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)
def select(): return json.dumps( mymysql.execute( """ select id, pid, name, description from designer_logic_directory """, {}))
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))
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))
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 })
def get_children(_id): return mymysql.execute( """ select id from designer_logic_directory where pid = %(id)s """, {"id": _id})
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))
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))
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))
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))))
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)
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))
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))
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))
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
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 ""
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)
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, })
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))
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))))
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, })
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" })) # 修改