class get_ticket: canzhanshang_session = Login().send_login_request(name=13690769964, password=123456) zhubanfang_session = Login().send_login_request(name=18165702795, password=123456) def get_ticket(self, exhibition_id): #获取展会门票 ticket_lxml_url = 'http://exh.zhankoo-uat.com//exhibition/partial/_DetailActivityRegister?organizorID=12880853&eID=%s' % exhibition_id get_ticket_url = 'http://exh.zhankoo-uat.com/Exhibition/Home/ActivityRegisterSave' web_request_ticket = requests.get(url=ticket_lxml_url) soup = BeautifulSoup(web_request_ticket.text, 'lxml') ticket_active_id = soup.select('input')[0].get('value') ticket_name = soup.select('input')[0].get('title') from_on = soup.select('input')[0].get('data-from') to_on = soup.select('input')[0].get('data-to') data = { 'ExhibitionID': exhibition_id, 'TicketActiveID': ticket_active_id, 'TicketName': ticket_name, 'FromOn': from_on, 'ToOn': to_on, 'OrganizorID': '12880853', 'RealName': '测试', 'EnterpriseName': '深圳展酷网络有限公司', 'Title': 'test', 'X-Requested-With': 'XMLHttpRequest' } web_request = self.canzhanshang_session.post(url=get_ticket_url, data=data) assert json.loads(web_request.text)['success'] def update_ticket_pass(self): #主办方审核通过展会门票 organizer_ticket_page_url = 'http://exh.zhankoo-uat.com/Exhibition/Partial/_OrganizerTicketPage' organizer_ticket_page_data = { 'pageIndex': 1, 'pageSize': 20, 'State': '所有状态' } web_request_organizer_ticket_page = self.zhubanfang_session.post( url=organizer_ticket_page_url, data=organizer_ticket_page_data) ticket_id = str( BeautifulSoup(web_request_organizer_ticket_page.text, 'lxml')('a')[0])[51:56] update_ticket_pass_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/UpdateTicketPass' data = {'ticketID': ticket_id, 'checkOpinion': ''} web_request = self.zhubanfang_session.post(url=update_ticket_pass_url, data=data) assert json.loads(web_request.text)['success']
def setUp(self): global lg, data, token, groupId, csm, planId, phoneId, auto_test, sip, sip_id, group_number data = GetValue() #登录 lg = Login(data.getvalue('product_address')) res = lg.login(data.getvalue('account'), data.getvalue('product_password')) token = res['data']['token'] self.assertEqual(res['data']['userName'], data.getvalue('account')) self.assertEqual(res['data']['accountType'], 1) #创建客户组手动上传号码 csm = CustomerManage(data.getvalue('product_address')) res2 = csm.addPhoneNumber(token, data.getvalue('userid'), ['17200001999'], 1, 'autoTest') self.assertEqual(res2['status'], 1000) self.assertEqual(res2['msg'], '操作成功') #查询mongodb获取groupId product = Mongodb('outbound_product', 'phone_number', '172.20.10.20', 27017) table = product.connect_mongodb() res3 = product.mongodb_find(table, { 'userId': 21, 'groupName': 'autoTest' }) for item in res3: groupId = item['groupId'] #添加SIP sip = sipManage(data.getvalue('product_address')) res = sip.add_sip(token) self.assertEqual(res['status'], 1000) self.assertEqual(res['msg'], '操作成功') #查询mysql获取线路id、group_number product_m = Mysql('172.20.10.14', 3306, 'root', 'kalamodo', 'outbound_product') con = product_m.connect_mysql() res = product_m.mysql_select( con[0], 'SELECT id,group_number FROM ko_sipmanager where privately=21') for row in res: sip_id = row[0] group_number = row[1] #创建外呼计划 auto_test = OutPlan(data.getvalue('product_address')) res = auto_test.creat_outplan(token, data.getvalue('userid'), '3706', 'autoTest', '尚德销售纵线白名单', sip_id, groupId) planId = res['data']['planId'] self.assertEqual(res['status'], 1000) self.assertEqual(res['msg'], '操作成功') #获取phoneid res = auto_test.get_CallDetail(token, planId) phoneId = res['data']['list'][0]['id']
def setUp(self): global lg,token lg = Login(product_address) res = lg.login(account,product_password) token=res['data']['token'] self.assertEqual(res['data']['userName'],account) self.assertEqual(res['data']['accountType'], 1)
class Get_Var_Fun: zhubanfang_session = Login().send_login_request(name=18165702795, password=123456) back_session = Login().send_back_login_request() def zhubanfang_zhanhui_liebiao_var(self): #主办方展会列表 url = 'http://exh.zhankoo-uat.com/Exhibition/Partial/_ListPage' data = { 'pageIndex': 1, 'pageSize': 10, 'FromOn': '', 'ToOn': '', 'Name': '' } web_request = self.zhubanfang_session.post(url=url, data=data) soup = BeautifulSoup(web_request.text, 'lxml') exhibition_name = re.findall( r'"_blank">(.+?.)</a>', str(soup.select('td.txtleft a')[0]))[0] #主办方列表展会名称 exhibition_id = re.findall( r'(\d.*).html"', str(soup.select('td.txtleft a')[0]))[0] #主办方列表展会ID return exhibition_name, exhibition_id def back_dajianshang_guangli_var(self): designer_find_paged_url = 'http://back.zhankoo-uat.com/AMemeber/User/DesignerFindPaged' data = { 'UserID': '', 'page': 1, 'rows': 20, 'sort': 'Order', 'order': 'ASC' } web_request = self.back_session.post(url=designer_find_paged_url, data=data) designer_rows = json.loads(web_request.text)['rows'] designer_list = [] #后台设计师ID列表 for designer_rows_for in designer_rows: designer_list.append(designer_rows_for['ID']) return designer_list
def setUp(self): global lg,data,token data = GetValue() lg = Login(data.getvalue('uat_address')) res = lg.login(data.getvalue('account'), data.getvalue('uat_password')) token=res['data']['token'] self.assertEqual(res['data']['userName'], data.getvalue('account')) self.assertEqual(res['data']['accountType'], 1)
def setUp(self): global lg, token, groupId, csm, planId, phoneId, auto_test, sip, sip_id, group_number #登录 lg = Login(product_address) res = lg.login(account, product_password) token = res['data']['token'] self.assertEqual(res['data']['userName'], account) self.assertEqual(res['data']['accountType'], 1) #创建客户组手动上传号码 csm = CustomerManage(product_address) res2 = csm.addPhoneNumber(token, userid, phonum_list, 1, auto_name) self.assertEqual(res2['status'], code_1000) self.assertEqual(res2['msg'], import_suc) #查询mongodb获取groupId product = Mongodb(dbname, table_phonum, db_ip, db_port) table = product.connect_mongodb() res3 = product.mongodb_find(table, { 'userId': privately, 'groupName': auto_name }) for item in res3: groupId = item['groupId'] #添加SIP sip = sipManage(product_address) res = sip.add_sip(token, username, password, ip, port, comment, lineType, groupSize) self.assertEqual(res['status'], code_1000) self.assertEqual(res['msg'], success) #查询mysql获取线路id、group_number product_m = Mysql(myq_ip, myq_port, myq_user, myq_pswd, dbname) con = product_m.connect_mysql() res = product_m.mysql_select( con[0], 'SELECT id,group_number FROM ko_sipmanager where privately=21') for row in res: sip_id = row[0] group_number = row[1] #创建外呼计划 auto_test = OutPlan(product_address) res = auto_test.creat_outplan(token, userid, '3706', auto_name, '尚德销售纵线白名单', sip_id, groupId) planId = res['data']['planId'] self.assertEqual(res['status'], code_1000) self.assertEqual(res['msg'], success) #获取phoneid res = auto_test.get_CallDetail(token, planId) phoneId = res['data']['list'][0]['id']
def setUp(self): global lg,data data = GetValue() lg = Login(data.getvalue('dev_address')) res = lg.login(data.getvalue('account'), data.getvalue('dev_password')) try: self.assertEqual(res['data']['username'], data.getvalue('account')) self.assertEqual(res['data']['accountType'], 1) except Exception as e: print(e)
def __init__(self, config=None): self.logger = logging.getLogger('main.' + self.__class__.__name__) p = cherrypy.process.plugins.PIDFile(cherrypy.engine, config.get('main', 'pid_file')) p.subscribe() # Create the configuration for cherrypy cherrypy.tree.mount( Login(), '/login', {'/': {'request.dispatch': cherrypy.dispatch.MethodDispatcher()} } ) cherrypy_conf = { 'server.socket_host' : '0.0.0.0', 'server.socket_port' : 80, 'server.thread_pool' : 10, # 'log.screen' : False, # 'log.error_file' : '/opt/app_api/logs/cherrypy_error.log', # 'log.access_file' : '/opt/app_api/logs/cherrypy.log' } cherrypy.config.update(cherrypy_conf)
def setUp(self): global lg lg = Login(product_address)
class Dajianshang_Business_Info_Edit: #编辑搭建商商家资料 dajianshang_session = Login().send_login_request(name=18019237332, password=123456) back_session = Login().send_back_login_request() def upload_picture(self, filename, data): #上传图片 ''' data==1为logo图片 data==2为banner图片 data==3为公司形象图片或案例图片 data==4为公司资质图片 data==5为设计师图片 ''' picture_save_url = 'http://exh.zhankoo-uat.com/Home/PictureSave' if data == 1: data = { 'Width': 130, 'Height': 130, 'Prefix': 'EnterpriseLogo', 'CallBack': 'parent.OnEnterpriseLogoComplete' } elif data == 2: data = { 'Width': 130, 'Height': 130, 'Prefix': 'EnterpriseBanner', 'CallBack': 'parent.OnEnterpriseBannerComplete' } elif data == 3: data = { 'Index': '', 'Width': 460, 'Height': 280, 'Prefix': 'EnterpriseStyle', 'CallBack': 'parent.OnComplete' } elif data == 4: data = { 'Width': 220, 'Height': 150, 'Prefix': 'Qualification', 'CallBack': 'parent.OnQualificationComplete' } elif data == 5: data = { 'Width': 120, 'Height': 120, 'Prefix': 'Designer', 'CallBack': 'parent.OnDesignerComplete' } current = os.getcwd() base = current.split('\\test_case')[0] target = base + '\\data_file\\' + filename open_file = {'file': open(target, 'rb')} web_request_picture_save = self.dajianshang_session.post( url=picture_save_url, data=data, files=open_file) soup = BeautifulSoup(web_request_picture_save.text, 'lxml') picture_url = re.findall(r'"pictureUrl":"(.+?)"\,"pictureSizeUrl"', str(soup))[0] return picture_url def basic_info_save(self, param): #编辑基本信息 basic_info_save_url = 'http://exh.zhankoo-uat.com/Decorate/Decorator/BasicSave' data = { 'EnterpriseName': param['enterprise_name'], 'EnterpriseIntroduce': param['enterprise_introduce'], 'EnterpriseLogo': param['enterprise_logo'], 'EnterpriseBanner': param['enterprise_banner'], 'EnterpriseStyleImageUrl': param['enterprise_style_image_url'], 'X-Requested-With': 'XMLHttpRequest' } web_reuquest = self.dajianshang_session.post(url=basic_info_save_url, data=data) assert json.loads(web_reuquest.text)['success'] def service_scope_save(self, param): #编辑服务范围 service_scope_save_url = 'http://exh.zhankoo-uat.com/Decorate/Decorator/ServiceScopeSave' service_item_json = [{ "Name": param['item_name_1'], "ID": param['item_id_1'] }] service_area_json = [{ "Name": param['area_name_1'], "Code": param['code_1'], "ParentCode": param['parent_code_1'] }] data = { 'CountryName': param['country_name'], 'ProvinceName': param['province_name'], 'CityName': param['city_name'], 'CountyName': '', 'ServiceItemJson': service_item_json, 'ServiceAreaJson': service_area_json, 'MinTakePrice': param['min_take_price'], 'MinTakeArea': param['min_take_area'], 'InternatType': param['internat_type'], 'CountryCode': param['country_code'], 'ProvinceCode': param['province_code'], 'CityCode': param['city_code'], 'CountyCode': '', 'X-Requested-With': 'XMLHttpRequest' } web_reuqest = self.dajianshang_session.post(url=service_scope_save_url, data=data) print(json.loads(web_reuqest.text)) def qualification_save(self, param): #添加公司资质 qualification_save_url = 'http://exh.zhankoo-uat.com/Decorate/Decorator/QualificationSave' data = { 'ID': 0, 'Name': param['name'], 'ImageUrl': param['image_url'], 'Order': '', 'X-Requested-With': 'XMLHttpRequest' } web_request = self.dajianshang_session.post(url=qualification_save_url, data=data) assert json.loads(web_request.text)['success'] def designer_save(self, param): #添加设计师 designer_save_url = 'http://exh.zhankoo-uat.com/Decorate/Decorator/DesignerSave' data = { 'ID': 0, 'Name': param['name'], 'Title': param['title'], 'Introduce': param['introduce'], 'ImageUrl': param['image_url'], 'State': param['state'], 'Order': '', 'X-Requested-With': 'XMLHttpRequest' } web_request = self.dajianshang_session.post(url=designer_save_url, data=data) assert json.loads(web_request.text)['success'] def decorate_case_save(self, param): #添加公司案例 decorate_case_save_url = 'http://exh.zhankoo-uat.com/Decorate/Decorator/DecorateCaseSave' data = { 'ID': 0, 'Title': param['title'], 'Description': param['description'], 'IndustryName': param['industry_name'], 'IndustryID': param['industry_id'], 'Area': param['area'], 'BoothStandardType': param['booth_standard_type'], 'Material': param['material'], 'Style': param['style'], 'DesignerID': param['designer'], 'Price': param['price'], 'Order': '', 'colorAddId': param['color_add_id'], 'Color': param['color'], 'DecorateCaseImage': param['docorate_case_image'], 'X-Requested-With': 'XMLHttpRequest' } web_request = self.dajianshang_session.post(url=decorate_case_save_url, data=data) assert json.loads(web_request.text)['success']
class zhanhui_order: canzhanshang_session = Login().send_login_request(name=13690769964, password=123456) zhubanfang_session = Login().send_login_request(name=18165702795, password=123456) def online_booth_order(self, exhibition_id): #在线预订展位确认订单 online_booth_book_url = 'http://exh.zhankoo-uat.com/Exhibition/Partial/_BoothBookPaged' online_booth_book_data = { 'pageIndex': 1, 'pageSize': 10, 'exhibitionID': exhibition_id, 'state': '1', 'isSell': 'null', 'type': '', 'standardType': '', 'minArea': '', 'maxArea': '', 'minTotalPrice': '', 'maxTotalPrice': '', 'orderType': 'null' } web_request_online_booth_book = self.canzhanshang_session.post( url=online_booth_book_url, data=online_booth_book_data) online_booth_book_soup = BeautifulSoup( web_request_online_booth_book.text, 'lxml') result = online_booth_book_soup.select('tr') booth_id_list = [] for for_result in result: booth_id_list.append(for_result.get('data-id')) booth_id_list.pop() return random.choice(booth_id_list) def booth_book_sure_order_save(self, exhibition_id, booth_id): #预定展位提交订单 sure_order_url = 'http://exh.zhankoo-uat.com/exhibition/home/sureorder' sure_order_save_url = 'http://exh.zhankoo-uat.com/Exhibition/Home/SureOrderSave' sure_order_data = {'exhibitionid': exhibition_id, 'boothids': booth_id} web_request_sure_order = self.canzhanshang_session.get( url=sure_order_url, data=sure_order_data) sure_order_soup = BeautifulSoup(web_request_sure_order.text, 'lxml') original_price = sure_order_soup.select('input')[3]['value'] total_price = sure_order_soup.select('input')[4]['value'] sure_order_save_data = { 'ExhibitionID': exhibition_id, 'ContactID': 134851, 'ExhibitorEnterpriseID': 519, 'OriginalPrice': original_price, 'TotalPrice': total_price, 'CountryName': '中国', 'BoothIDs': booth_id, 'InternatType': 86, 'CountryCode': 86, 'X-Requested-With': 'XMLHttpRequest' } web_request_sure_order_save = self.canzhanshang_session.post( url=sure_order_save_url, data=sure_order_save_data) order_id = json.loads(web_request_sure_order_save.text)['orderID'] return order_id def canzhanshang_zhanhui_order_list(self): #展位订单列表 canzhanshang_order_page = 'http://so.zhankoo-uat.com/Exhibition/Partial/_ExhibitorOrderPage' data = { 'pageIndex': 1, 'pageSize': 5, 'exhibitionName': '', 'createOnFrom': '', 'state': 0 } web_request = self.canzhanshang_session.post( url=canzhanshang_order_page, data=data) print(BeautifulSoup(web_request.text, 'lxml')) def organizer_comfirm_order(self, order_id): #主办方确认订单 organizer_comfirm_order_url = 'http://so.zhankoo-uat.com/Exhibition/Organizer/OrderConfirm' data = {'stageCount': 1, 'orderID': order_id, 'stageParam': '[]'} web_request = self.zhubanfang_session.post( url=organizer_comfirm_order_url, data=data) assert json.loads(web_request.text)['success']
def setUp(self): global lg, data, path data = GetValue() lg = Login(data.getvalue('product_address'))
def setUp(self): Login().send_login_request(name=18165702795, password=123456) all_str_data()
def AbrirLogin(self): self.Login = Login(self) self.Login.setWindowModality(QtCore.Qt.WindowModal) self.Login.exec_()
class zhanzhuang_order: submit_zhanzhuang_demand_url = 'http://exh.zhankoo-uat.com/Decorate/Exhibitor/DecorateBookSave' zhanzhuang_demand_list_url = 'http://exh.zhankoo-uat.com/Decorate/Partial/_DecorateBookFindPage' zhanzhuang_demand_confirm_url = 'http://back.zhankoo-uat.com/Exhibition/Decorate/DecorateBookConfirmation' matching_company_url = 'http://back.zhankoo-uat.com/Exhibition/Decorate/MatchingCompany' demand_contract_and_price_url = 'http://back.zhankoo-uat.com/Exhibition/Decorate/DecoratePriceInsert' financ_zhanzhuang_demand_price_url = 'http://back.zhankoo-uat.com/Exhibition/Decorate/ConfirmPrice' zhanzhuang_demand_place_order_url = 'http://exh.zhankoo-uat.com/Decorate/Exhibitor/SureOrderSave' canzhanshang_session = Login().send_login_request(name=13690769964, password=123456) back_session = Login().send_back_login_request() def submit_zhanzhuang_demand(self, exhibition_id, exhibition_name, booth_id, booth_name, param): #个人中心提交展装需求 data = { 'FromSite': 10, 'FromSiteLocation': 'http://exh.zhankoo-uat.com/_Decorate_Exhibitor_DecorateBookCreate_Index', 'Subject': param['the_exhibition_title'], 'ExhibitorEnterpriseID': 519, 'ExhibitorEnterpriseName': '深圳展酷网络有限公司', 'ContactIDs': 134851, 'ProvinceName': '广东省', 'CityName': '深圳市', 'ExhibitionID': exhibition_id, 'ExhibitionName': exhibition_name, 'BoothID': booth_id, 'BoothName': booth_name, 'ServiceItem': param['service_item'], 'ProvinceCode': 440000, 'CityCode': 440300, 'FinishOn': param['finish_on'], 'DesignerDemand': param['designer_demand'], 'DecorateDemand': param['the_exhibition_demand'], 'X-Requested-With': 'XMLHttpRequest' } web_request = self.canzhanshang_session.post( url=self.submit_zhanzhuang_demand_url, data=data) assert json.loads(web_request.text)['success'] def get_zhanzhuang_demand_list_id(self): #个人中心展装需求列表获取最新需求id web_request = self.canzhanshang_session.get( url=self.zhanzhuang_demand_list_url) soup = BeautifulSoup(web_request.text, 'lxml') zhanzhuang_demand_id = soup.select('a')[0].get_text() return zhanzhuang_demand_id def back_zhanzhuang_demand_confirm(self, zhanzhuang_demand_id, budget): #后台展装需求确认 web_request_get_param = self.back_session.get( url= 'http://back.zhankoo-uat.com/Exhibition/Decorate/DecorateBookDetailView/%s' % zhanzhuang_demand_id) soup = BeautifulSoup(web_request_get_param.text, 'lxml') sbuject = soup.select('input')[1]['value'] exhibitor_enterprise_name = soup.select('input')[2]['value'] exhibition_name = soup.select('input')[4]['value'] exhibition_from_on = soup.select('input')[5]['value'] exhibition_to_on = soup.select('input')[6]['value'] exhibition_address = soup.select('input')[7]['value'] exhibition_industry = soup.select('input')[8]['value'] exhibition_area = soup.select('input')[9]['value'] booth_area = soup.select('input')[10]['value'] booth_width = soup.select('input')[11]['value'] booth_length = soup.select('input')[12]['value'] booth_name = soup.select('input')[13]['value'] booth_pavilion_no = soup.select('input')[14]['value'] service_item_str = str(soup.select('input')[15]['data-options']) service_item = re.findall(r'\'(.+?)\'', service_item_str)[-2] province_name = soup.select('input')[16]['value'] city_name = soup.select('input')[17]['value'] designer_demand = soup.select('input')[18]['value'] finish_on = soup.select('input')[19]['value'] decorate_demand_str = str(soup.select('td')[66]) decorate_demand = re.findall(r'\"(.+?)\"', decorate_demand_str)[-1] booth_description_str = str(soup.select('td')[60]) booth_description = re.findall(r'\=(.+?)\<', booth_description_str)[-1][-2:] data = { 'ID': zhanzhuang_demand_id, 'Subject': sbuject, 'ExhibitorEnterpriseName': exhibitor_enterprise_name, 'Budget': budget, 'ExhibitionName': exhibition_name, 'ExhibitionFromOn': exhibition_from_on, 'ExhibitionToOn': exhibition_to_on, 'ExhibitionAddress': exhibition_address, 'ExhibitionIndustry': exhibition_industry, 'ExhibitionArea': exhibition_area, 'BoothArea': booth_area, 'BoothWidth': booth_width, 'BoothLength': booth_length, 'BoothType': 'Standard', 'BoothName': booth_name, 'BoothPavilionNO': booth_pavilion_no, 'BoothStandardType': 'SingleDoor', 'BoothDescription': booth_description, 'ServiceItem': service_item, 'ProvinceCode': 440000, 'CityCode': 440300, 'ProvinceName': province_name, 'CityName': city_name, 'DesignerDemand': designer_demand, 'FinishOn': finish_on, 'DecorateDemand': decorate_demand } web_request = self.back_session.post( url=self.zhanzhuang_demand_confirm_url, data=data) assert json.loads(web_request.text)['success'] def back_matching_company(self, zhanzhuang_demand_id): #后台匹配展装公司 data = {'bookId': zhanzhuang_demand_id, 'DecoratorIdList[]': 6532350} web_request = self.back_session.post(url=self.matching_company_url, data=data) assert json.loads(web_request.text)['success'] def back_demand_contract_and_price(self, zhanzhuang_demand_id, price): #后台展装需求签合同及定价 get_matching_company_data = { 'bookId': zhanzhuang_demand_id, 'page': 1, 'rows': 20, 'sort': 'CreateOn', 'order': 'DESC' } web_request_get_zhanzhuang_company_num_id = self.back_session.get( url= 'http://back.zhankoo-uat.com/Exhibition/Decorate/DecorateBookDistributesFindPaged', data=get_matching_company_data) distributes_id = json.loads( web_request_get_zhanzhuang_company_num_id.text)['rows'][0]['ID'] data = { 'bookId': zhanzhuang_demand_id, 'distributesId': distributes_id, 'price': price, 'isOffline': 'false' } web_request = self.back_session.post( url=self.demand_contract_and_price_url, data=data) assert json.loads(web_request.text)['success'] def back_finance_zhanzhuang_demand_price(self, zhanzhuang_demand_id): #后台财务提交展装需求定价 data = { 'bookId': zhanzhuang_demand_id, # 'page':1, # 'rows':20, # 'sort':'Order', # 'order':'ASC' } web_request = self.back_session.post( url=self.financ_zhanzhuang_demand_price_url, data=data) assert json.loads(web_request.text)['success'] def zhanzhuang_demand_place_order(self, zhanzhuang_demand_id): #展装需求下订单 data = { 'DecorateBookID': zhanzhuang_demand_id, 'InternatType': 86, 'CountryName': '中国', 'CountryCode': 86, 'X-Requested-With': 'XMLHttpRequest' } web_request = self.canzhanshang_session.post( url=self.zhanzhuang_demand_place_order_url, data=data) assert json.loads(web_request.text)['success']
# Load the required variables from .env file. load_dotenv() env_token = os.getenv('DISCORD_TOKEN') db_username = os.getenv("MONGO_USR") db_password = os.getenv("MONGO_PWD") db_hostname = os.getenv("MONGO_HOSTNAME") db_port = os.getenv("MONGO_PORT") # Connect to DB. if db_username: client = pymongo.MongoClient( f"mongodb://{db_username}:{db_password}@{db_hostname}:{db_port}") else: client = pymongo.MongoClient(f"mongodb://127.0.0.1:27017") # Create maimaiDX database. db = client["maimaiDX"] # Add cogs to the bot. bot.add_cog(System(bot, db)) bot.add_cog(Login(bot, db)) bot.add_cog(DXNet(bot, db)) bot.add_cog(DXNetHistory(bot, db)) bot.add_cog(DXNetRecords(bot, db)) bot.add_cog(DXNetPlaylist(bot, db)) # Run the bot. atexit.register(shutdown) bot.run(env_token)
class Back: #运营后台数据 zhanzhuang_xuqiu_url = 'http://back.zhankoo-uat.com/Exhibition/Decorate/DecorateBookFindPaged' zhanzhuang_dingdan_url = 'http://back.zhankoo-uat.com/SOrder/DecorateOrder/DecorateOrderFindPaged' zhanhui_xuqiu_url = 'http://back.zhankoo-uat.com/Exhibition/Booth/BoothBookFindPaged' zhanwei_dingdan_url = 'http://back.zhankoo-uat.com/SOrder/BoothOrder/BoothOrderFindPaged' zhanzhuang_gongchang_dingdan_url = 'http://back.zhankoo-uat.com/SOrder/DecFactoryOrder/DecFactoryOrderFindPaged' zhanhui_guangli_url = 'http://back.zhankoo-uat.com/Exhibition/Exhibition/ExhibitionFindPaged' del_zhanzhuang_xuqiu_url = 'http://back.zhankoo-uat.com/Exhibition/Decorate/DecorateBookDelete' del_zhanzhuang_dingdan_url = 'http://back.zhankoo-uat.com/SOrder/DecorateOrder/DecorateOrderDelete' del_zhanhui_xuqiu_url = 'http://back.zhankoo-uat.com/Exhibition/Booth/BoothBookDelete' del_zhanwei_dingdan_url = 'http://back.zhankoo-uat.com/SOrder/BoothOrder/BoothOrderDelete' del_zhanzhuang_gongchang_dingdan_url = 'http://back.zhankoo-uat.com/SOrder/DecFactoryOrder/DecFactoryOrderDelete' session = Login().send_back_login_request() ''' 1.展装需求 2.展装订单 3.展会需求 4.展位订单 5.展装工厂订单 6.展会管理 ''' def back_management_list(self,code): #获取订单管理的id data = { 'page':1, 'rows':1, 'sort':'CreateOn', 'order':'DESC' } if code == 1: url = self.zhanzhuang_xuqiu_url elif code == 2: url = self.zhanzhuang_dingdan_url elif code == 3: url = self.zhanhui_xuqiu_url elif code == 4: url = self.zhanwei_dingdan_url elif code == 5: url = self.zhanzhuang_gongchang_dingdan_url elif code ==6: url = self.zhanhui_guangli_url web_request = self.session.post(url,data=data) id = json.loads(web_request.text)['rows'][0]['ID'] return id def back_del_management_list_data(self,id,code): #删除订单管理数据 data = { 'id':id } if code == 1: url = self.del_zhanzhuang_xuqiu_url elif code == 2: url = self.del_zhanzhuang_dingdan_url elif code == 3: url = self.del_zhanhui_xuqiu_url elif code == 4: url = self.del_zhanwei_dingdan_url elif code == 5: url = self.del_zhanzhuang_gongchang_dingdan_url elif code == 6: url = self.zhanhui_guangli_url web_request = self.session.post(url,data=data) res = json.loads(web_request.text)['success'] return res == True def back_booth_order_detials(self,order_id): #后台展位订单详情 booth_basics_info_url = 'http://back.zhankoo-uat.com/SOrder/BoothOrder/BoothOrderDetailView/%s'% order_id web_request_booth_basics_info = self.session.get(url=booth_basics_info_url) soup1 = BeautifulSoup(web_request_booth_basics_info.text, 'lxml') exhibition_name = str(soup1.select('td')[15])[4:-5] booth_info_url = 'http://back.zhankoo-uat.com/SOrder/BoothOrder/BoothSnapshotFindPaged' data = { 'BoothOrderID':681, 'page':1, 'rows':20, 'sort':'CreateOn', 'order':'DESC' } web_request_booth_info = self.session.get(url=booth_info_url,data=data) booth_id = json.loads(web_request_booth_info.text)['rows'][0]['ID'] booth_name = json.loads(web_request_booth_info.text)['rows'][0]['Name'] # print(booth_name) return exhibition_name,booth_id,booth_name
class New_Exhibition: '''新增展会信息''' basic_info_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/BasicSave' exhibition_introduction_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/IntroductionSave' organization_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/InstitutionSave' basic_booth_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/BasicBoothSave' exhibition_picture_upload_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/ExPictureSave' exhibition_picture_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/PictureSave' meeting_picture_upload_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/MeetingPictureSave' meeting_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/MeetingSave' contact_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/ContactSave' exhibition_data_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/DataSave' exhibitor_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/ExhibitorSave' back_edit_exhibition_url = 'http://back.zhankoo-uat.com/Exhibition/Exhibition/ExhibitionSave' add_zhanwei_url = 'http://exh.zhankoo-uat.com/exhibition/organizer/onlineboothinsert' zhanwei_peizhi_xinxi_url = 'http://exh.zhankoo-uat.com/exhibition/organizer/onlineboothstandardboothconfigsave' zhanwei_picture_upload_url = 'http://exh.zhankoo-uat.com/Exhibition/Organizer/OnlineBoothPictureFrom' zhanwei_picture_url = 'http://exh.zhankoo-uat.com/exhibition/organizer/onlineboothpicturesave' update_exhibition_index_url = 'http://back.zhankoo-uat.com/CompositePlat/SearchEngine/UpdateAllExhibition' back_update_zhanhui_index_url = 'http://back.zhankoo-uat.com/CompositePlat/SearchEngine/UpdateAllExhibition' zhubanfang_session = Login().send_login_request(name=18165702795,password=123456) back_session = Login().send_back_login_request() def new_basic_info(self,param): '''新增基本信息''' data = { 'ID':0, 'Name':param['name'], 'ShortName':'测试', 'IndustryName':param['industry_name'], 'IndustryID':param['industry_id'], 'ExhibitCategory':'[{"ID":3,"Name":"包装机械/塑料机械"},{"ID":62,"Name":"门窗"}]', 'HoldFrequencyWithYear':1, 'HoldFrequency':1, 'FromOn':param['from_on'], 'ToOn':param['to_on'], 'PavilionID':3118, 'PavilionName':'深圳会展中心', 'Address':'中国广东深圳市福田区', 'Site':'www.zhankoo.com', 'X-Requested-With':'XMLHttpRequest' } web_request = self.zhubanfang_session.post(url=self.basic_info_url,data=data) soup = BeautifulSoup(web_request.text,'lxml') result = soup.select('html > body > p')[0].get_text() return json.loads(result) def new_zhanhui_introduction(self,exhibition_id,description,scope,label): '''新增展会介绍''' data = { 'ID':exhibition_id, 'Description':description, 'Scope':scope, 'ExhibitorManualUrl':'', 'Tag':label, 'X-Requested-With':'XMLHttpRequest' } web_request = self.zhubanfang_session.post(url=self.exhibition_introduction_url,data=data) assert json.loads(web_request.text)['success'] def new_organization(self,exhibition_id,organizer,contractor): '''新增举办机构''' data = { 'ID':exhibition_id, 'Organizer':organizer, 'Contractor':contractor, 'X-Requested-With':'XMLHttpRequest' } web_request = self.zhubanfang_session.post(url=self.organization_url,data=data) assert json.loads(web_request.text)['success'] def new_booth_info(self,exhibition_id,param): '''新增展位基本信息''' orderjson_data = [ {'Type':1, 'Price':param['biaozhan_price'], 'Area':param['biaozhan_area'], 'Description':param['biaozhan_description']}, {'Type':2, 'Price': param['guangdi_price'], 'Area': param['guangdi_area'], 'Description': param['guangdi_description']}] data = { 'ID':exhibition_id, 'MinOrderJson':str(orderjson_data), 'StandardBoothMoney':param['biaozhan_price'], 'StandardBoothArea':param['biaozhan_area'], 'StandardBoothRemark':param['biaozhan_description'], 'BareSpaceBoothMoney':param['guangdi_price'], 'BareSpaceBoothArea':param['guangdi_area'], 'BareSpaceBoothRemark':param['guangdi_description'], 'X-Requested-With': 'XMLHttpRequest' } web_request = self.zhubanfang_session.post(url=self.basic_booth_url,data=data) assert json.loads(web_request.text)['success'] def picture_upload(self, index, filename): #index == 1 为上传展会图片,index == 2 为上传同期会议图片 current = os.getcwd() base = current.split('\\test_case')[0] target = base + '\\data_file\\' + filename open_file = {'file': open(target, 'rb')} url = '' if index == 1: url = self.exhibition_picture_upload_url elif index == 2: url = self.meeting_picture_upload_url elif index ==3: url = self.zhanwei_picture_upload_url web_response = self.zhubanfang_session.post(url=url, files=open_file) result = '' if index == 1: result = json.loads(web_response.text.split('OnCompleteUpload')[1].split('catch(e)')[0][2:-4]) elif index == 2: result = json.loads(web_response.text.split('MeetingComplete')[1].split('catch(e)')[0][2:-4]) elif index == 3: result = json.loads(web_response.text.split('OnCompleteUpload')[1].split('catch(e)')[0][2:-4]) assert result['success'] == True return result['pictureUrl'] def save_exhibition_picture(self,exhibition_id,imges): #保存展会图片 data = { 'ID': exhibition_id, 'ImgStr': imges } web_request = self.zhubanfang_session.post(url=self.exhibition_picture_url, data=data) assert json.loads(web_request.text)['success'] def new_meeting(self,exhibition_id,param): #新增同期会议 data = { 'ID':'', 'ExhibitionID':exhibition_id, 'Name':param['meeting_title'], 'MeetingFromOn':param['meeting_from_on'], 'MeetingToOn':param['meeting_to_on'], 'Address':param['address'], 'Organizer':param['organizer'], 'MaxPeople':param['max_people'], 'ImageUrl':param['image-url'], 'Description':param['descrition'], 'X-Requested-With':'XMLHttpRequest' } web_request = self.zhubanfang_session.post(url=self.meeting_url, data=data) assert json.loads(web_request.text)['success'] def contact_info(self,exhibition_id,param): #新增联系方式 data = { 'ID':exhibition_id, 'Contact':param['contact'], 'Telephone':param['telephone'], 'Mobile':param['mobile'], 'Fax':param['fax'], 'QQ':param['qq'], 'Email':param['email'], 'X-Requested-With':'XMLHttpRequest' } web_request = self.zhubanfang_session.post(url=self.contact_url, data=data) assert json.loads(web_request.text)['success'] def new_exhibition_data(self,exhibition_id,param): #新增展会数据 audiences_data = [{"Id": "0", "Statue": "new", "Type": param['textfield_type_1'], "Percent": param["textfield_percent_1"]}, {"Id": "0", "Statue": "new", "Type": param['textfield_type_2'],"Percent":param["textfield_percent_2"]}] exhibitors_data = [{"Id": "0", "Statue": "new", "Type": param['textfield_type_3'], "Percent": param["textfield_percent_3"]}, {"Id": "0", "Statue": "new","Type":param['textfield_type_4'],"Percent":param["textfield_percent_4"]}] data = { 'ExhibitionID':exhibition_id, 'Area':param['area'], 'NetArea':param['net_area'], 'HistoryNum':param['history_num'], 'ViewerQuantity':param['viewer_quantity'], 'id':0, 'statue':'new', 'textfield3':param['textfield_type_1'], 'textfield6':param['textfield_percent_1'], 'AudiencesData':str(audiences_data), 'id':0, 'statue':'new', 'textfield3':param['textfield_type_2'], 'textfield6':param['textfield_percent_2'], 'ExhibitorQuantity':param['exhibition_quantity'], 'id':0, 'statue':'new', 'textfield3':param['textfield_type_3'], 'textfield6':param["textfield_percent_3"], 'id':0, 'statue':'new', 'textfield3':param['textfield_type_4'], 'textfield6':param['textfield_percent_4'], 'ExhibitorsData':str(exhibitors_data), 'ViewerSatisfy':param['viewer_satisfy'], 'ExhibitorSatisfy':param['exhibitor_satisfy'], 'X-Requested-With':'XMLHttpRequest' } web_request = self.zhubanfang_session.post(url=self.exhibition_data_url, data=data) assert json.loads(web_request.text)['success'] def new_exhibitor(self,exhibition_id,exhibitor_list): #新增展商名录 data = { 'ID':exhibition_id, 'ExhibitorList':exhibitor_list, 'X-Requested-With':'XMLHttpRequest' } web_request = self.zhubanfang_session.post(url=self.exhibitor_url, data=data) assert json.loads(web_request.text)['success'] def back_edit_zhanhui(self,exhibition_id): # 后台编辑审核、签约展会信息 request_back_get_edit_zhanhui_data = self.back_session.post(url='http://back.zhankoo-uat.com/Exhibition/Exhibition/ExhibitionDetailView/%s'% exhibition_id) soup = BeautifulSoup(request_back_get_edit_zhanhui_data.text,'lxml') exhibition_id = soup.select('td')[1]('input')[0].get('value') name = soup.select('td')[1]('input')[1].get('value') short_name = soup.select('td')[3]('input')[0].get('value') pavilion_name = soup.select('td')[15]('input')[0].get('value') pavilion_id = soup.select('td')[15]('input')[1].get('value') organizer = re.findall(r'">(.+?.)</textarea>',str(soup.select('td')[17]))[0] contractor = re.findall(r'">(.+?.)</textarea>',str(soup.select('td')[19]))[0] scope = re.findall(r'">(.+?.)</textarea>',str(soup.select('td')[21]))[0] description = re.findall(r'">(.+?.)</textarea>',str(soup.select('td')[23]))[0] from_on = re.findall(r'value:\'(.+?.)\'',str(soup.select('td')[25]('input')[0]))[0] to_on = re.findall(r'value:\'(.+?.)\'',str(soup.select('td')[25]('input')[1]))[0] ticket_end_on = re.findall(r'value:\'(.+?.)\'',str(soup.select('td')[27]))[0] book_end_on = re.findall(r'value:\'(.+?.)\'',str(soup.select('td')[29]))[0] site = soup.select('td')[35]('input')[0].get('value') industry_id = re.findall(r'value:\'(\d*)\'',str(soup.select('td')[43]('input')[0]))[0] industry_name= soup.select('td')[43]('input')[1].get('value') exhibit_category = soup.select('td')[45]('input')[0].get('value') tag = soup.select('td')[47]('input')[0].get('value') contact = soup.select('td')[49]('input')[0].get('value') internat_type = soup.select('td')[51]('input')[0].get('value') country_code = soup.select('td')[51]('input')[0].get('value') country_name = soup.select('td')[51]('input')[0].get('value') province_name = soup.select('td')[51]('input')[1].get('value') city_name = soup.select('td')[51]('input')[2].get('value') county_name = soup.select('td')[51]('input')[3].get('value') telephone = soup.select('td')[53]('input')[0].get('value') mobile = soup.select('td')[55]('input')[0].get('value') qq = soup.select('td')[57]('input')[0].get('value') fax = soup.select('td')[59]('input')[0].get('value') address = soup.select('td')[61]('input')[0].get('value') postalcode = soup.select('td')[63]('input')[0].get('value') email = soup.select('td')[65]('input')[0].get('value') min_order_json = soup.select('td')[73]('input')[0].get('value') booth_discount = soup.select('td')[75]('input')[0].get('value') standard_booth_config = str(soup.select('td')[81])[128:-16] area = soup.select('td')[83]('input')[0].get('value') net_area = soup.select('td')[85]('input')[0].get('value') hold_frequency = eval(soup.select('td')[87]('input')[0].get('value')) hold_year = hold_frequency['year'] hold_boundary = hold_frequency['number'] viewer_quantity = soup.select('td')[91]('input')[0].get('value') exhibitor_quantity = soup.select('td')[95]('input')[0].get('value') viewer_satisfy = soup.select('td')[99]('input')[0].get('value') exhibitor_satisfy = soup.select('td')[101]('input')[0].get('value') history_num = soup.select('td')[105]('input')[0].get('value') exhibitor_list = re.findall(r'">(.+?.)</textarea>',str(soup.select('td')[107]))[0] virtual_synthesize_goal = soup.select('td')[117]('input')[0].get('value') data = { 'ID':exhibition_id, 'Name':name, 'ShortName':short_name, 'PavilionName':pavilion_name, 'PavilionID':pavilion_id, 'Organizer':organizer, 'Contractor':contractor, 'Scope':scope, 'Description':description, 'FromOn':from_on, 'ToOn':to_on, 'TicketEndOn':ticket_end_on, 'BookEndOn':book_end_on, 'Site':site, 'IsSign':'True', 'IndustryID':industry_id, 'IndustryName':industry_name, 'ExhibitCategory':exhibit_category, 'Tag':tag, 'Contact':contact, 'InternatType':internat_type, 'CountryCode':country_code, 'CountryName':country_name, 'ProvinceName':province_name, 'CityName':city_name, 'CountyName':county_name, 'Telephone':telephone, 'Mobile':mobile, 'QQ':qq, 'Fax':fax, 'Address':address, 'Postalcode':postalcode, 'Email':email, 'State':1, 'MinOrderJson':min_order_json, 'BoothDiscount':booth_discount, 'StandardBoothConfig':standard_booth_config, 'Area':area, 'NetArea':net_area, 'HoldFrequency':hold_frequency, 'HoldYear': hold_year, 'HoldBoundary': hold_boundary, 'ViewerQuantity':viewer_quantity, 'ExhibitorQuantity':exhibitor_quantity, 'ViewerSatisfy':viewer_satisfy, 'ExhibitorSatisfy':exhibitor_satisfy, 'HistoryNum':history_num, 'ExhibitorList':exhibitor_list, 'VirtualSynthesizeGoal':virtual_synthesize_goal } web_request = self.back_session.post(url=self.back_edit_exhibition_url,data=data) assert json.loads(web_request.text)['message'] == '操作成功!' def add_zhanwei(self,exhibition_id,param): #新增展位 data = { 'ExhibitionID':exhibition_id, 'Name':param['zhanwei_num'], 'PavilionNO':param['zhanguang_num'], 'Type':param['zhanwei_xingshi'], 'StandardType':param['kaikou_leixing'], 'Price':param['price'], 'Area':param['area'], 'Length':param['length'], 'Width':param['width'], 'Discount':param['discount'], 'IsSell':param['is_sell'], 'Description':param['description'] } web_request = self.zhubanfang_session.post(url=self.add_zhanwei_url,data=data) assert json.loads(web_request.text)['success'] def zhanwei_peizhi_xinxi(self,exhibition_id,standard_booth_config): #新增展位配置信息 data = { 'StandardBoothConfig':standard_booth_config, 'ID':exhibition_id } web_request = self.zhubanfang_session.post(url=self.zhanwei_peizhi_xinxi_url, data=data) assert json.loads(web_request.text)['success'] def save_zhanwei_picture(self,exhibition_id,zhanwei_picture): #上传展位图片 data = { 'BoothImageUrl':zhanwei_picture, 'ID':exhibition_id } web_request = self.zhubanfang_session.post(url=self.zhanwei_picture_url, data=data) assert json.loads(web_request.text)['success'] def back_update_zhanhui_index(self): #后台更新展会索引 web_request = self.back_session.post(url=self.back_update_zhanhui_index_url) assert json.loads(web_request.text)['success']