''' @Description: 简单数据操作类 @Author: guohb65 @Email: guohb65@chinaunicom.cn @Date: 2019-01-24 18:39:08 @LastEditTime: 2019-07-10 17:16:54 @LastEditors: Please set LastEditors ''' import json from .my_datahandle.const import ConstGen from .my_datahandle.datahandle_utility import DatahandleUtility class SimpleSqlOpt(object): def __init__(self): pass def simple_add(self, table_name, request=None, data_params=None, uid=None): """ 单条数据新增 :param request: :return: """ datahandle_utility = DatahandleUtility() if data_params is None: data_params = json.loads(datahandle_utility.request_param2dict( request).get(ConstGen.DATA_STR)) unique_data = data_params[ConstGen.UNIQUE_STR] others_data = data_params[ConstGen.OTHERS_STR] if datahandle_utility.data_is_exist(unique_data, table_name): ret = {ConstGen.RETCODE: "2", ConstGen.RETVAL: "名称重复"} print(ret) return json.dumps(ret, ensure_ascii=False) else: insert_data = dict(unique_data, **others_data) insert_sql = datahandle_utility.gen_insert_sql( dict_data=insert_data, table_name=table_name, uid=uid) trans_data = datahandle_utility.package_sql( ConstGen.TRANSSQL_STR, insert_sql) return datahandle_utility.request_trans_service( ConstGen.TRANSSQL_URL, trans_data) def batch_add(self, table_name, request=None, data_params=None): """ 批量新增 :param request: :return: """ datahandle_utility = DatahandleUtility() if data_params is None: data_params = json.loads(datahandle_utility.request_param2dict( request).get(ConstGen.DATA_STR)) trans_sql_list = [] for json_obj in data_params: if ConstGen.UNIQUE_STR in json_obj: unique_data = data_params[ConstGen.UNIQUE_STR] if ConstGen.OTHERS_STR in json_obj: others_data = data_params[ConstGen.OTHERS_STR] if datahandle_utility.data_is_exist(unique_data, table_name): ret = {ConstGen.RETCODE: "2", ConstGen.RETVAL: "名称重复"} print(ret) return json.dumps(ret, ensure_ascii=False) else: insert_data = dict(unique_data, **others_data) insert_sql = datahandle_utility.gen_insert_sql( insert_data, table_name) trans_sql = datahandle_utility.trans_sql(insert_sql) trans_sql_list.append(trans_sql) trans_data = datahandle_utility.package_trans_list(trans_sql_list) return datahandle_utility.request_trans_service( ConstGen.TRANSSQL_URL, trans_data) def simple_alter(self, table_name, request=None, data_params=None): """ 修改/删除 :param request: :return: """ datahandle_utility = DatahandleUtility() if data_params is None: data_params = datahandle_utility.request_param2dict(request) if ConstGen.OPT_UPDATE in data_params.keys(): update_all_data = json.loads(data_params.get(ConstGen.OPT_UPDATE)) update_condition = update_all_data[ConstGen.CONDITION_STR] update_data = update_all_data[ConstGen.DATA_STR] unique_data = update_data[ConstGen.UNIQUE_STR] if datahandle_utility.data_is_exist(unique_data, table_name, update_condition): ret = {ConstGen.RETCODE: "2", ConstGen.RETVAL: "名称重复"} print(ret) return json.dumps(ret, ensure_ascii=False) else: update_sql = datahandle_utility.gen_update_sql( update_data, update_condition, table_name) trans_data = datahandle_utility.package_sql( ConstGen.TRANSSQL_STR, update_sql) if trans_data is None: ret = {ConstGen.RETCODE: "2", ConstGen.RETVAL: "更新参数传输异常"} return json.dumps(ret, ensure_ascii=False) else: return datahandle_utility.request_trans_service( ConstGen.TRANSSQL_URL, trans_data) if ConstGen.OPT_DELETE in data_params.keys(): delete_condition = json.loads(data_params.get(ConstGen.OPT_DELETE)) delete_sql = datahandle_utility.gen_delete_sql( delete_condition, table_name) trans_data = datahandle_utility.package_sql( ConstGen.TRANSSQL_STR, delete_sql) if trans_data is None: ret = {ConstGen.RETCODE: "2", ConstGen.RETVAL: "删除数据参数传输异常"} return json.dumps(ret, ensure_ascii=False) else: return datahandle_utility.request_trans_service( ConstGen.TRANSSQL_URL, trans_data) def simple_query(self, table_name, request=None, data_params=None): """ 信息查询 :param request: :return: """ datahandle_utility = DatahandleUtility() if data_params is None: data_params = datahandle_utility.request_param2dict(request) print(data_params) print(ConstGen.STANDERSQL_URL) trans_data = datahandle_utility.gen_select_all_sql( data_params, table_name) print(trans_data) if trans_data is None: ret = {ConstGen.RETCODE: "2", ConstGen.RETVAL: "查询条件不存在"} return json.dumps(ret, ensure_ascii=False) else: ret_data = datahandle_utility.request_trans_service( ConstGen.STANDERSQL_URL, trans_data) if ConstGen.CONDITION_STR in data_params.keys(): condition = json.loads( data_params.get(ConstGen.CONDITION_STR)) page_num = None page_size = None if ConstGen.PAGE_STR in condition: page_info = condition.get(ConstGen.PAGE_STR) if ConstGen.PAGE_NUM_STR in page_info: page_num = page_info[ConstGen.PAGE_NUM_STR] if ConstGen.PAGE_SIZE_STR in page_info: page_size = page_info[ConstGen.PAGE_SIZE_STR] if page_num is not None and page_size is not None: ret_data = json.loads(ret_data) start_index = (int(page_num) - 1) * int(page_size) if int(ret_data[ConstGen.ROWCOUNT_STR]) < start_index: ret_data.pop(ConstGen.DATAROWS_STR) ret_data[ConstGen.PAGECOUNT_STR] = "0" else: if ConstGen.DATAROWS_STR in ret_data: all_datarows = ret_data[ConstGen.DATAROWS_STR] print(all_datarows) datarows = all_datarows[start_index: start_index + int(page_size)] ret_data[ConstGen.DATAROWS_STR] = datarows ret_data[ConstGen.PAGECOUNT_STR] = len(datarows) else: ret_data[ConstGen.PAGECOUNT_STR] = '0' return json.dumps(ret_data) return ret_data