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(): 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 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 delete(): request_data = form.check(["id"]) def get_children(_id): return mymysql.execute( """ select id from designer_logic_directory where pid = %(id)s """, {"id": _id}) 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 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 consume_business(): result = [] request_data = form.check(["business_type_list"]) business_type_list = request_data["business_type_list"] consume_business_lock.acquire() def check(business_type): if business_type not in business_pool: return False if len(business_pool[business_type]) < 1: return False return True if business_type_list and len(business_type_list) > 0: for business_type in business_type_list: if not check(business_type): continue # 删除业务记录 business_id = business_pool[business_type].pop() # 取出业务数据 business_data = business_data_pool[business_type].pop(business_id) # 修改业务执行状态为已消费 if business_type not in business_execute_status_pool: business_execute_status_pool[business_type] = {} business_execute_status_pool[business_type][business_id] = "CONSUMED" result.append({ "business_type": business_type, "business_data": business_data }) consume_business_lock.release() return json.dumps({"business_type_list": result})
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 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, file from designer_logic_data where did = %(did)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() 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 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 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_business(): request_data = form.check(["business_type", "business_data"]) business_type = request_data["business_type"] business_data = request_data["business_data"] business_id = int(time.time_ns()) # 将业务插入业务池中 if business_type not in business_pool: business_pool[business_type] = [] business_pool[business_type].append(business_id) # 将业务数据插入业务数据池中 if business_type not in business_data_pool: business_data_pool[business_type] = {} business_data_pool[business_type][business_id] = business_data return json.dumps({"status": "SUCCESS"})
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 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 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(): 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, })
def select(): request_data = form.check(['search']) 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) # return json.dumps({ 'page_total': page_total, 'data': data, 'page_current': page_current, 'page_size': page_size, 'search': search, 'order': order, })