def sub_module_list(self, api_id, module, main_module): if main_module is None or module is None: return sub_module_temp() query_list = query_menu() query_list['main_module'] = main_module query_list['module'] = module query_list['state'] = 1 sub_module_list = MySQLEngine("q_boss_menu").where( 'group_by', **query_list).group_by('sub_module') name_list = [] data_list = [] for sub_module in sub_module_list: sub_module_name = sub_module.get('sub_module', '') name_list.append(sub_module_name) for val in name_list: val_list = [val, val] key_list = ['code', 'name'] key_val_list = dict(zip(key_list, val_list)) data_list.append(key_val_list) if api_id is None: rslt = sub_module_temp() rslt['data'] = data_list return rslt else: menu_id = MySQLEngine('pro_api').where(api_id=api_id, state=1)[0]['menu_id'] selected = MySQLEngine('q_boss_menu').where( menu_id=menu_id, state=1)[0]['sub_module'] rslt = sub_module_temp() rslt['data'] = data_list rslt['sub_module'] = selected return rslt
def get_module(request): user_name = request.COOKIES.get('user_name') if user_name: if request.method == 'GET': data = {} if request.GET.get('type') == '1': sql = "select distinct main_module from q_boss_menu where state=1 and sys_name='产品系统'" res = MySQLEngine('q_boss_menu').defined('query', sql) for each in res: data[each['main_module']] = each['main_module'] elif request.GET.get('type') == '2': sql = "select distinct module from q_boss_menu where state=1 and sys_name='产品系统' and main_module='" + request.GET.get( 'main_module') + "'" res = MySQLEngine('q_boss_menu').defined('query', sql) for each in res: data[each['module']] = each['module'] elif request.GET.get('type') == '3': sql = "select menu_id, sub_module from q_boss_menu where state=1 and sys_name='产品系统' and module='" + request.GET.get( 'module') + "'" res = MySQLEngine('q_boss_menu').defined('query', sql) for each in res: data[each['menu_id']] = each['sub_module'] return JsonResponse(data) else: return HttpResponseRedirect('/')
def module_list(self, api_id, main_module): if main_module is None: return module_temp() module_list = MySQLEngine("q_boss_menu").where( 'group_by', main_module=main_module, state=1).group_by('module') name_list = [] data_list = [] for module in module_list: module_name = module.get('module', '') name_list.append(module_name) for val in name_list: val_list = [val, val] key_list = ['code', 'name'] key_val_list = dict(zip(key_list, val_list)) data_list.append(key_val_list) if api_id is None: rslt = module_temp() rslt['data'] = data_list return rslt else: menu_id = MySQLEngine('pro_api').where(api_id=api_id, state=1)[0]['menu_id'] clicked = MySQLEngine('q_boss_menu').where(menu_id=menu_id, state=1)[0]['sys_name'] selected = MySQLEngine('q_boss_menu').where(menu_id=menu_id, state=1)[0]['module'] rslt = module_temp() rslt['sys_name'] = clicked rslt['data'] = data_list rslt['module'] = selected return rslt
def add(self, user_name, realName, password, create_by, user_role, phone): try: num = 0 if user_name is None or user_name is '': num += 1 if password is None or password is '': num += 1 if create_by is None or create_by is '': num += 1 if user_role is None or user_role is '': num += 1 password = Encryption( Encryption(password).make_password()).md5_salt() phone = [phone, ''][phone is None or phone is ''] diff_name = MySQLEngine('sys_user').where(user_name=user_name) if len(diff_name) > 0: rslt = 2 else: if 0 < num <= 4: rslt = 0 else: me = MySQLEngine('sys_user') rslt = me.insert_into(user_name=user_name, realName=realName, password=password, create_by=create_by, user_role=user_role, phone=phone) return rslt except BaseException as e: print(e)
def case_query(request): user_name = request.COOKIES.get('user_name') if user_name: if request.method == 'GET': page = request.GET.get('page') limit = request.GET.get('limit') main_module = request.GET.get('main_module') module = request.GET.get('module') sub_module = request.GET.get('sub_module') level = request.GET.get('level') query_str = request.GET.get('query_str') sql = "SELECT * FROM pro_case WHERE state=1 " if level is not None and level != '': sql += "AND level = '{level}'".format(level=level) if query_str is not None and strClean(query_str) != '': query_str = strClean(query_str) sql += " AND (case_id like'{query_str}' or case_name LIKE'%{query_str}%' or api_id like'{query_str}')".format( query_str=query_str) if sub_module is not None and sub_module != '': sql += "AND menu_id in (select menu_id from q_boss_menu where state=1 and sys_name='产品系统' and main_module='{main_module}' and module = '{module}' and sub_module ='{sub_module}')".format( main_module=main_module, module=module, sub_module=sub_module) elif module is not None and module != '': sql += "AND menu_id in (select menu_id from q_boss_menu where state=1 and sys_name='产品系统' and main_module='{main_module}' and module = '{module}')".format( main_module=main_module, module=module) elif main_module is not None and main_module != '': sql += "AND menu_id in (select menu_id from q_boss_menu where state=1 and sys_name='产品系统' and main_module='{main_module}')".format( main_module=main_module) contact_list = MySQLEngine('pro_case').defined(type='query', sql=sql) paginator = Paginator(contact_list, limit) # Show 25 contacts per page try: contacts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. contacts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. contacts = paginator.page(paginator.num_pages) for each in contacts.object_list: r = MySQLEngine('q_boss_menu').where(menu_id=each['menu_id']) each['main_module'] = r[0]['main_module'] each['module'] = r[0]['module'] each['sub_module'] = r[0]['sub_module'] data = contacts.object_list, len(contact_list) return JsonResponse({ 'code': 0, 'msg': 'ok', 'count': data[1], 'data': data[0] }) else: return HttpResponseRedirect('/')
def delete(self, id, delete_by): """ 软删除,使用update修改状态,不用delete :param id: :param delete_by: :return: """ me = MySQLEngine('sys_user') # rslt = me.delete(id=id) update_dict = {'update_by': delete_by, 'state': 0} rslt = me.update_set(update_dict, id=id) return rslt
def api_list(self, page, limit): base_pro_api_list = MySQLEngine('pro_api').where( 'limit', state=1).limit(page=page, limit=limit) qboss_menu_list = MySQLEngine('q_boss_menu').where(state=1) api_list = ProApiMapper('menu_id').mapping( list=base_pro_api_list, relation_list=qboss_menu_list) paginator = Paginator(api_list, limit) # Show 25 contacts per page try: contacts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. contacts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. contacts = paginator.page(paginator.num_pages) return contacts.object_list, len(api_list)
def params_list(self, api_id): rslt = {} if api_id is None: return rslt base_pro_api_list = MySQLEngine('pro_api').where(api_id=api_id, state=1) rslt = ProReqSingleParamsMapper().mapping(list=base_pro_api_list) return rslt
def edit_sub_module(self, api_id): if api_id is None: sub_module = None else: api_info = MySQLEngine('pro_api').where(id=api_id) sub_module = api_info[0].get('sub_module') return sub_module
def task_query(request): user_name = request.COOKIES.get('user_name') if user_name: if request.method == 'GET': page = request.GET.get('page') limit = request.GET.get('limit') query_str = request.GET.get('query_str') sql = "SELECT * FROM pro_task WHERE state=1 " if query_str is not None and strClean(query_str) != '': query_str = strClean(query_str) sql += " AND (task_id like'{query_str}' or task_name LIKE'%{query_str}%')".format( query_str=query_str) contact_list = MySQLEngine('pro_task').defined(type='query', sql=sql) paginator = Paginator(contact_list, limit) # Show 25 contacts per page try: contacts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. contacts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. contacts = paginator.page(paginator.num_pages) data = contacts.object_list, len(contact_list) print(data[0]) return JsonResponse({ 'code': 0, 'msg': 'ok', 'count': data[1], 'data': data[0] }) else: return HttpResponseRedirect('/')
def add(self, QueryDict, create_by): try: key_list = [] val_list = [] for k in QueryDict: if k[:-2] == 'key': key_list.append(str(QueryDict[k])) elif k[:-2] == 'val': val_list.append(str(QueryDict[k])) params_dict = dict(zip(key_list, val_list)) rslt = MySQLEngine('pro_api').insert_into( module=QueryDict.get('module', None), sub_module=QueryDict.get('sub_module', None), api_name=QueryDict.get('api_name', None), api_type=QueryDict.get('api_type', None), method=QueryDict.get('method', None), path=QueryDict.get('path', None), headers=QueryDict.get('headers', None), uri_params=QueryDict.get('uri_params', None), req_params=str(params_dict), req_body=QueryDict.get('req_body', None), create_by=create_by, remark=QueryDict.get('remark', None), state=QueryDict.get('state', None), ) return rslt except BaseException as e: print(e)
def api_delete(self, api_id, update_by): update_dict = {'updated_by': update_by, 'state': 0} rslt = MySQLEngine('pro_api').update_set(update_dict, api_id=api_id, state=1) if rslt is str: rslt = 0 return rslt
def api_query(request): user_name = request.COOKIES.get('user_name') if user_name: if request.method == 'GET': res = MySQLEngine('pro_api').where( api_id=request.GET.get('api_id')) return JsonResponse(res[0]) else: return HttpResponseRedirect('/')
def case_delete(request): user_name = request.COOKIES.get('user_name') if user_name: if request.method == 'GET': data = {'updated_by': user_name, 'state': 0} res = MySQLEngine('pro_case').update_set( data, case_id=request.GET.get('case_id')) return HttpResponse(res) else: return HttpResponseRedirect('/')
def pub_api_query(request): user_name = request.COOKIES.get('user_name') if user_name: if request.method == 'GET': res = MySQLEngine('pub_api').where( api_id=request.GET.get('api_id'), state=1) if len(res) == 0: return HttpResponse('API不存在') return JsonResponse(res[0]) else: return HttpResponseRedirect('/')
def api_list(self, page, limit): contact_list = MySQLEngine('pro_api').where(state=1) paginator = Paginator(contact_list, limit) # Show 25 contacts per page try: contacts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. contacts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. contacts = paginator.page(paginator.num_pages) return contacts.object_list, len(contact_list)
def edit(self, QueryDict, update_by): try: req_key_list = [] k_list = [] req_val_list = [] v_list = [] id = QueryDict.get('id', None) QueryList = [] for key in QueryDict: if key == 'id': pass elif key == 'data[csrfmiddlewaretoken]': pass elif key[5:-1][:-2] == 'key': req_key_list.append(key[5:-1]) elif key[5:-1][:-2] == 'val': req_val_list.append(key[5:-1]) else: QueryList.append("" + key[5:-1] + "") for req_key in req_key_list: key_v = QueryDict.get('data[%s]' % req_key, None) k_list.append(key_v) for req_val in req_val_list: val_v = QueryDict.get('data[%s]' % req_val, None) v_list.append(val_v) params_dict = dict(zip(k_list, v_list)) QueryList.sort() # 封装Page类 update_dict = { 'api_name': None, 'api_type': None, 'req_body': None, 'uri_params': None, 'req_params': None, 'headers': None, 'method': None, 'module': None, 'remark': None, 'state': None, 'path': None, 'sub_module': None, 'update_by': None } update_dict['id'] = id update_dict['update_by'] = update_by update_dict['req_params'] = str(params_dict) for i in QueryList: update_dict[i] = QueryDict.get('data[' + i + ']', None) rslt = MySQLEngine('pro_api').update_set(update_dict, id=id) return rslt except BaseException as e: print(e)
def api_add(self, QueryDict, create_by): try: key_list = [] val_list = [] module_val = None for key in QueryDict: if key[:-2] == 'key': key_list.append(str(QueryDict[key])) elif key[:-2] == 'val': val_list.append(str(QueryDict[key])) params_dict = dict(zip(key_list, val_list)) query = add_query_menu() query['sys_name'] = QueryDict['sys_name'] query['main_module'] = QueryDict['main_module'] query['module'] = module_val query['sub_module'] = QueryDict['sub_module'] query['state'] = 1 menu_id_list = MySQLEngine('q_boss_menu').where(**query) if len(menu_id_list) is 0: menu_id = 0 else: menu_id = menu_id_list[0]['menu_id'] insert_dict = api_add_info() insert_dict['menu_id'] = menu_id, insert_dict['api_name'] = QueryDict.get('api_name', None), insert_dict['api_type'] = QueryDict.get('api_type', None), insert_dict['method'] = QueryDict.get('method', None), insert_dict['path'] = QueryDict.get('path', None), insert_dict['headers'] = QueryDict.get('headers', None), insert_dict['uri_params'] = QueryDict.get('uri_params', None), insert_dict['req_params'] = strClean(str(params_dict)), insert_dict['req_body'] = QueryDict.get('req_body', None), insert_dict['created_by'] = create_by, insert_dict['remark'] = QueryDict.get('remark', None), insert_dict['state'] = QueryDict.get('state', None), rslt = MySQLEngine('pro_api').insert_into(**insert_dict) return rslt except BaseException as e: print(e)
def sub_module_list(self, module): sub_module_list = MySQLEngine('q_boss_sys_menu').where(module=module) list = [] rslt_list = [] for sub_module in sub_module_list: sub_module_name = sub_module.get('sub_module', '') list.append(sub_module_name) for val in list: val_list = [val, val] key_list = ['code', 'name'] rslt = dict(zip(key_list, val_list)) rslt_list.append(rslt) return rslt_list
def authenticate(self, user_name, password): """ 需要添加判重 :param user_name: :param password: :return: """ user_list = MySQLEngine('sys_user').where(user_name=user_name, password=password, state=1) if len(user_list) == 0 or len(user_list) > 1: user_name = '账号异常!!' elif len(user_list) == 1: user_name = user_list[0].get('user_name', '') return user_name
def pub_case_add(request): user_name = request.COOKIES.get('user_name') if user_name: if request.method == 'POST': data = {} for key in request.POST: if strClean(request.POST.get(key)) != '': data[key] = strClean(request.POST.get(key)) elif key in [ 'case_name', 'level', 'expected_result', 'api_id' ]: return HttpResponse(key) data['created_by'] = user_name res = MySQLEngine('pub_case').insert_into(**data) return HttpResponse(res) else: return HttpResponseRedirect('/')
def case_update(request): user_name = request.COOKIES.get('user_name') if user_name: if request.method == 'POST': data = {} for key in request.POST: if strClean(request.POST.get(key)) != '': data[key] = strClean(request.POST.get(key)) elif key in [ 'case_name', 'module', 'sub_module', 'level', 'expected_result' ]: return HttpResponse(key) data['updated_by'] = user_name res = MySQLEngine('pro_case').update_set(data, id=request.POST.get('id')) return HttpResponse(res) else: return HttpResponseRedirect('/')
def pub_case_query(request): user_name = request.COOKIES.get('user_name') if user_name: if request.method == 'GET': page = request.GET.get('page') limit = request.GET.get('limit') level = request.GET.get('level') query_str = request.GET.get('query_str') sql = "select case_id,b.api_id,case_name,level,path,uri_params_value,req_body_value,req_params_value,expected_result, a.remark as remark " \ "from pub_case as a left join pub_api b on a.api_id = b.api_id " \ "where a.state=1 " if level is not None and level != '': sql += "AND level = '{level}'".format(level=level) if query_str is not None and strClean(query_str) != '': query_str = strClean(query_str) sql += " AND (case_id like'{query_str}' or case_name LIKE'%{query_str}%' or api_id like'{query_str}')".format( query_str=query_str) contact_list = MySQLEngine('pub_case').defined(type='query', sql=sql) paginator = Paginator(contact_list, limit) # Show 25 contacts per page try: contacts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. contacts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. contacts = paginator.page(paginator.num_pages) data = contacts.object_list, len(contact_list) return JsonResponse({ 'code': 0, 'msg': 'ok', 'count': data[1], 'data': data[0] }) else: return HttpResponseRedirect('/')
def delete(self, id, update_by): me = MySQLEngine('pro_api') update_dict = {'update_by': update_by, 'state': 0} rslt = me.update_set(update_dict, id=id) if rslt is str: rslt = 0 return rslt
def api_edit(self, QueryDict, update_by): try: print(QueryDict) req_key_list = [] k_list = [] req_val_list = [] v_list = [] module_val = None sys_name_val = None main_module_val = None sub_module_val = None api_id = QueryDict.get('api_id', None) if api_id is None: return None else: QueryList = [] for key in QueryDict: if key == 'api_id': pass elif key == 'data[csrfmiddlewaretoken]': pass elif key[5:-1][:-2] == 'key': req_key_list.append(key[5:-1]) elif key[5:-1][:-2] == 'val': req_val_list.append(key[5:-1]) elif key == 'sys_name': sys_name_val = QueryDict['sys_name'] elif key == 'main_module': main_module_val = QueryDict['main_module'] elif key == 'module': module_val = QueryDict['module'] elif key == 'sub_module_val': sub_module_val = QueryDict['sub_module_val'] elif key == 'api_name': api_name = QueryDict['api_name'] total = MySQLEngine("pro_api").where_like( api_name=api_name, state=1) if len(total) > 0: pass else: QueryList.append("%s" % (key[5:-1])) for req_key in req_key_list: key_v = QueryDict.get('data[%s]' % req_key, None) k_list.append(key_v) for req_val in req_val_list: val_v = QueryDict.get('data[%s]' % req_val, None) v_list.append(val_v) params_dict = dict(zip(k_list, v_list)) query = edit_query_menu() query['sys_name'] = sys_name_val query['main_module'] = main_module_val query['module'] = module_val query['sub_module'] = sub_module_val query['state'] = 1 menu_id_list = MySQLEngine('q_boss_menu').where(**query) QueryList.sort() if len(menu_id_list) is 0: menu_id = 0 else: menu_id = menu_id_list[0]['menu_id'] # 封装Template模版 update_dict = update() update_dict['menu_id'] = menu_id update_dict['updated_by'] = update_by update_dict['req_params'] = str(params_dict) for i in QueryList: if i in update_dict: update_dict[i] = QueryDict.get('data[' + i + ']', None) rslt = MySQLEngine('pro_api').update_set(update_dict, api_id=api_id, state=1) return rslt except BaseException as e: print(e)
def query(self, user_name, id): user_list = MySQLEngine('sys_user').where_or(user_name=user_name, id=id) return user_list[0].get('user_name', '')