def __init__(self, real_name, mobile, email, region, *roles): self.log = Log('User') self.log.logger.debug(type(roles)) self.tool = Tool() self.request = Request() self.mobile = mobile self.user_info = self.tool.query_user_info_by_mobile(self.mobile) self.role_list = self.tool.get_role_code(*roles) self.real_name = real_name self.email = email self.region = region data_uc = Config('uc').data employee_data = data_uc['http://dev.uc.worldfarm.com'][ '/admin/emp/add'] employee_data["mobile"] = self.mobile employee_data["realName"] = self.real_name employee_data["email"] = self.email employee_data["mobileRegion"] = self.region employee_data["roles"] = self.role_list admin = EmployeeSession('007', '123456') employee_data["_tk_"] = admin.token employee_data["_deviceId_"] = admin.deviceId add_employee = self.request.post( url="http://dev.uc.worldfarm.com/admin/emp/add", data=employee_data) self.log.logger.debug(add_employee)
def __init__(self, account, password, Etype=1): self.log = Log('Employee') self.tool = Tool() self.request = Request() emp = EmployeeSession(account, password) self.password = emp.password self.token, self.deviceId = emp.token, emp.deviceId if Etype == 1: self.employee_info = self.tool.miaoshu_query_user_info_by_mobile( account, 2) # self.log.logger.debug("员工信息:%s" % self.employee_info) elif Etype == 2: self.employee_info = self.tool.miaoshu_query_user_info_by_email( account, 2) else: return if self.employee_info != (): self.employee_info = self.employee_info[0] self.employee_id = self.employee_info["id"] self.employee_real_name = self.employee_info["real_name"] self.employee_nickname = self.employee_info["nickname"] self.employee_sex = self.employee_info["sex"] self.employee_mobile = self.employee_info["mobile"] self.employee_email = self.employee_info["email"] self.employee_account_status = self.employee_info["account_status"] self.employee_account_type = self.employee_info["account_type"] self.employee_head_img = self.employee_info["head_img"] self.employee_register_time = self.employee_info["create_time"] self.employee_edit_time = self.employee_info["edit_time"] self.employee_channel_shop_id = None
def __init__(self, mobile): self.log = Log('User') self.tool = Tool() self.request = Request() # self.user_info = self.tool.miaoshu_query_user_info_by_mobile(mobile, 1) # if self.user_info != (): # self.user_info = self.user_info[0] # if self.user_info['channel_status'] is not None: # self.tool.ms_delete_user_by_mobile(mobile) us = UserSession(mobile) self.encryptedPwd = us.encrypted_password self.token, self.device_id = us.token, us.deviceId self.user_info = self.tool.miaoshu_query_user_info_by_mobile(mobile, 1) if self.user_info != (): self.user_info = self.user_info[0] self.user_id = self.user_info["id"] self.real_name = self.user_info["real_name"] self.nickname = self.user_info["nickname"] self.sex = self.user_info["sex"] self.mobile = self.user_info["mobile"] self.email = self.user_info["email"] self.account_status = self.user_info["account_status"] self.account_type = self.user_info["account_type"] self.head_img = self.user_info["head_img"] self.register_time = self.user_info["create_time"] self.edit_time = self.user_info["edit_time"] self.channel_shop_id = None self.supplier_shop_id = None
def __init__(self, supplier): self.log = Log('SupplierAction') self.supplier = supplier self.request = Request() self.tool = Tool() self.redis = Redis() self.db = DataBaseOperate() self.ps = 10
def __init__(self, translator): self.log = Log('TranslatorAction') self.translator = translator self.data_sso = Config('sso').data self.data_trade = Config('trade').data self.data_sms = Config('sms').data self.data_base = DataBaseOperate() self.request = Request() self.tool = Tool()
def __init__(self, promoter): self.log = Log('PromoterAction') self.promoter = promoter self.data_sso = Config('sso').data self.data_trade = Config('trade').data self.data_sms = Config('sms').data self.request = Request() self.tool = Tool() self.ps = 10
def __init__(self, seller_agent): self.log = Log('sellerAgent') self.sellerAgent = seller_agent self.data_sso = Config('sso').data self.data_trade = Config('trade').data self.data_sms = Config('sms').data self.request = Request() self.tool = Tool() self.ps = 10
def __init__(self, buyer): """ 初始化方法的一个常用数据 :param buyer: 传的是一个用户对象 """ self.log = Log('buyer') self.buyer = buyer self.data_sso = Config('sso').data self.data_trade = Config('trade').data self.data_sms = Config('sms').data self.request = Request() self.tool = Tool() self.ps = 10
class Employee(object): hosts = Config('config').data['hosts'][Config('config').data['run']] def __init__(self, account, password, Etype=1): self.log = Log('Employee') self.tool = Tool() self.request = Request() emp = EmployeeSession(account, password) self.password = emp.password self.token, self.deviceId = emp.token, emp.deviceId if Etype == 1: self.employee_info = self.tool.miaoshu_query_user_info_by_mobile( account, 2) # self.log.logger.debug("员工信息:%s" % self.employee_info) elif Etype == 2: self.employee_info = self.tool.miaoshu_query_user_info_by_email( account, 2) else: return if self.employee_info != (): self.employee_info = self.employee_info[0] self.employee_id = self.employee_info["id"] self.employee_real_name = self.employee_info["real_name"] self.employee_nickname = self.employee_info["nickname"] self.employee_sex = self.employee_info["sex"] self.employee_mobile = self.employee_info["mobile"] self.employee_email = self.employee_info["email"] self.employee_account_status = self.employee_info["account_status"] self.employee_account_type = self.employee_info["account_type"] self.employee_head_img = self.employee_info["head_img"] self.employee_register_time = self.employee_info["create_time"] self.employee_edit_time = self.employee_info["edit_time"] self.employee_channel_shop_id = None def employee_logout(self): """ 员工退出登录 :return: """ data = {"token": self.token} response = Request().post(url=self.hosts['MS_PASSPORT'] + "/admin/service/logout", data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR")
def __init__(self, account, password): gender = {'1': '男', '2': '女'} self.log = Log('Employee') self.tool = Tool() employee_info = self.tool.query_employee_info_by_account(account)[0] self.real_name = employee_info['real_name'] self.log.logger.debug("工号 %s 的 姓名 为 %s" % (str(account), self.real_name)) self.mobile = employee_info['mobile'] self.log.logger.debug("工号 %s 的 手机号 为 %s" % (str(account), self.mobile)) self.mobile_region = employee_info['mobile_region'] self.log.logger.debug("工号 %s 的 手机国际区号 为 %s" % (str(account), self.mobile_region)) self.account_status = employee_info['account_status'] self.log.logger.debug("工号 %s 的 账户状态 为 %s" % (str(account), self.account_status)) self.account_type = employee_info['account_type'] self.log.logger.debug("工号 %s 的 账户类型 为 %s" % (str(account), self.account_type)) self.email = employee_info['email'] self.log.logger.debug("工号 %s 的 邮箱 为 %s" % (str(account), self.email)) self.email_state = employee_info['email_state'] self.log.logger.debug("工号 %s 的 邮箱状态 为 %s" % (str(account), self.email_state)) self.user_id = employee_info['id'] self.log.logger.debug("工号 %s 的 用户id 为 %s" % (str(account), self.user_id)) self.register_time = employee_info['register_time'] self.log.logger.debug("工号 %s 的 注册时间 为 %s" % (str(account), self.register_time)) self.account = str(account) self.log.logger.debug("工号 %s 的 工号 为 %s" % (str(account), str(account))) self.birthday = employee_info['birthday'] self.log.logger.debug("工号 %s 的 生日 为 %s" % (str(account), self.birthday)) self.head_img = employee_info['head_img'] self.log.logger.debug("工号 %s 的 头像 为 %s" % (str(account), self.head_img)) # self.sex = employee_info['sex'] # self.log.logger.debug("工号 %s 的 性别 为 %s" % (str(account), gender[str(self.sex)])) self.request = Request() session = EmployeeSession(account, password) self.token = session.token self.log.logger.debug("工号 %s 的 token 为 %s" % (str(account), session.token)) self.device_id = session.deviceId self.log.logger.debug("工号 %s 的 deviceId 为 %s" % (str(account), session.deviceId))
class SupplierAction(object): hosts = Config('config').data['hosts'][Config('config').data['run']] def __init__(self, supplier): self.log = Log('SupplierAction') self.supplier = supplier self.request = Request() self.tool = Tool() self.redis = Redis() self.db = DataBaseOperate() self.ps = 10 def supp_upload(self, address, name): """ 上传供应商身份证照片 :return: """ response = self.request.post_file( url=self.hosts['MS_USER'] + '/mobile/supplier/upload', file_path=address, data_dict={ "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "identityFile": name }, file_key="identityFile") json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def supp_update(self, positive_img, negative_img): """ 提交供应商身份证认证资料 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "userId": self.supplier.user_id, "positive": positive_img, "negative": negative_img } rul = self.hosts['MS_USER'] + "/mobile/supplier/update" data = bind_data response = self.request.post(rul, data) json_response = json.loads(response) query_re = self.tool.ms_query_supplier_supp_update_by_user_id( self.supplier.user_id) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['positive'] == positive_img assert query_re['negative'] == negative_img elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def supp_get_fail(self): """ 获取未通过的供应商身份认证资料 断言需优化 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "userId": self.supplier.user_id } rul = self.hosts['MS_USER'] + "/mobile/supplier/get-fail" data = bind_data response = self.request.post(rul, data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def shop_get(self): """ 通过当前用户,获取店铺信息 断言需优化 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id } response = self.request.post(url=self.hosts['MS_SHOP'] + '/mobile/shop/get', data=bind_data) json_response = json.loads(response) query_re = self.tool.ms_query_supplier_shop_get_by_user_id( self.supplier.user_id) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['id'] == json_response["content"]["shopId"] elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def upload_avatar(self, address, name): """ 上传店铺头像 :return: """ response = self.request.post_file( url=self.hosts['MS_SHOP'] + '/mobile/shop/upload-avatar', file_path=address, data_dict={ "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "avatar": name }, file_key='avatar') json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def shop_send_verify_code(self, shop_mobile): """ 发送修改店铺联系电话验证码 断言需优化 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "mobile": shop_mobile } response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/shop/send-verify-code", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def shop_update_mobile(self, shop_mobile): """ 提交修改店铺联系电话验证码 断言需优化 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "mobile": shop_mobile, "verifyCode": int( self.redis.get('ShopManagerImpl:modify_shop_mobile:%s_%s' % (str(self.supplier.user_id), str(shop_mobile)))) } response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/shop/update-mobile", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def update_shop_info(self, shop): """ 更新店铺信息 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "sellerId": self.supplier.user_id, "name": shop.name, "shopId": self.supplier.supplier_shop_id, # "mobile": shop.mobile, "contact": shop.contact, "avatar": shop.avatar } response = self.request.post(url=self.hosts['MS_SHOP'] + '/mobile/shop/update-shop-info', data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response def update_address(self, province, city, area, address): """ 更新供应商店铺地址 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "sellerId": self.supplier.user_id, "province": province, "city": city, "area": area, "address": address } response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/supplier/update-address", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_update_address_by_shop_id( self.shop_get()["shopId"]) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['province'] == province assert query_re['city'] == city assert query_re['area'] == area assert query_re['address'] == address elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def switch_status(self, switch_status): """ 更新店铺营业状态(10 营业中 20 休息) :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "status": switch_status, "check": "true" } response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/shop/switch-status", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_switch_status_by_shop_id( self.shop_get()["shopId"]) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['status'] == switch_status elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def category_list(self, category_id): """ 查询分类 :return: """ bind_data = {"categoryId": category_id} response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/category/list", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_category_list_by_category_id( category_id) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['count(*)'] == len(json_response['content']) elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def category_list_all(self): """ 查询所有分类 :return: """ response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/category/list", data={}) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_category_list_all_by_status( 10) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['count(*)'] == len(json_response['content']) elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def store_unit_list(self): """ 查询库存单位列表 :return: """ response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/store-unit/list", data={}) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_store_unit_list_by_is_delete( 0) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['count(*)'] == len(json_response['content']) elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"][0]["id"] def freight_template_all(self): """ 获取运费模板 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id } response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/freightTemplate/all", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_freight_template_all_by_shop_id( self.shop_get()["shopId"]) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['count(*)'] == len(json_response['content']) elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def freight_template_add(self, title, freigh_per_km, free_price, free_distance, free_price_status, free_distance_status): """ 新建运费模板 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "title": title, "freighPerKm": freigh_per_km, "freePrice": free_price, "freeDistance": free_distance, "freePriceStatus": free_price_status, "freeDistanceStatus": free_distance_status } response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/freightTemplate/add", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_freight_template_add_by_freight_id( json_response["content"]) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": # assert query_re['shop_id'] == self.shop_get()["shopId"] # assert query_re['title'] == title # assert query_re['freigh_per_km'] == freigh_per_km # assert query_re['free_price'] == free_price # assert query_re['free_distance'] == free_distance # assert query_re['free_price_status'] == free_price_status # assert query_re['free_distance_status'] == free_distance_status pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def freight_template_delete(self, freight_id): """ 删除运费模板 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "id": freight_id } response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/freightTemplate/delete", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_freight_template_delete_by_freight_id( freight_id) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['shop_id'] == self.shop_get()["shopId"] assert query_re['id'] == freight_id assert query_re['is_delete'] == 1 elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def freight_template_edit(self, freight_id, title=None, freigh_per_km=None, free_price=None, free_distance=None, free_price_status=None, free_distance_status=None): """ 修改运费模板 :return: """ query_re = self.tool.ms_query_supplier_freight_template_edit_by_freight_id( freight_id)[0] bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "id": freight_id } if title is None: bind_data['title'] = query_re['title'] else: bind_data['title'] = title if freigh_per_km is None: bind_data['freighPerKm'] = query_re['freigh_per_km'] else: bind_data['freighPerKm'] = freigh_per_km if free_price is None: bind_data['freePrice'] = query_re['free_price'] else: bind_data['freePrice'] = free_price if free_price is None: bind_data['freeDistance'] = query_re['free_distance'] else: bind_data['freeDistance'] = free_distance if free_price is None: bind_data['freePriceStatus'] = query_re['free_price_status'] else: bind_data['freePriceStatus'] = free_price_status if free_price is None: bind_data['freeDistanceStatus'] = query_re['free_distance_status'] else: bind_data['freeDistanceStatus'] = free_price response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/freightTemplate/edit", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_freight_template_edit_by_freight_id( freight_id) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": if bind_data['title'] != query_re['title']: assert query_re['title'] == title if bind_data['freighPerKm'] != query_re['freigh_per_km']: assert query_re['freigh_per_km'] == freigh_per_km if bind_data['freePrice'] != query_re['free_price']: assert query_re['free_price'] == free_price if bind_data['freeDistance'] != query_re['free_distance']: assert query_re['free_distance'] == free_distance if bind_data['freePriceStatus'] != query_re[ 'free_price_status']: assert query_re['free_price_status'] == free_price_status if bind_data['freeDistanceStatus'] != query_re[ 'free_distance_status']: assert query_re[ 'free_distance_status'] == free_distance_status elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def freight_template_get(self, freight_id): """ 获取单个运费模板 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "id": freight_id } url = self.hosts['MS_SHOP'] + "/mobile/freightTemplate/get/%s" % str( freight_id) response = self.request.post(url=url, data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_freight_template_get_by_freight_id( freight_id) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['title'] == json_response["content"]["title"] assert query_re['freigh_per_km'] == json_response["content"][ "freighPerKm"] assert query_re['free_price'] == json_response["content"][ "freePrice"] assert query_re['free_distance'] == json_response["content"][ "freeDistance"] assert query_re['free_price_status'] == json_response[ "content"]["freePriceStatus"] assert query_re['free_distance_status'] == json_response[ "content"]["freeDistanceStatus"] elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def upload_img(self, img_address, img_name): """ 上传图片 :return: """ response = self.request.post_file( url=self.hosts['MS_PRODUCT'] + '/common/product/upload-img', file_path=img_address, data_dict={ "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "file": img_name }, file_key="file") json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def status_list(self): """ 查询商品状态 :return: """ response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/product/status-list", data={}) json_response = json.loads(response) if json_response["status"] == "OK": assert json_response["content"][0]["id"] == 0 assert json_response["content"][1]["id"] == 10 assert json_response["content"][2]["id"] == 20 elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def product_list(self, parent_id=None, category_id=None, status=None, sort=None, search=None): """ 供应商商品列表 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "shopId": self.shop_get()["shopId"], "parentId": parent_id, "categoryId": category_id, "status": status, "sort": sort, "search": search } response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/product/list", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_product_list_by_shop_id( self.shop_get()["shopId"]) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['count(*)'] == json_response["content"]["tc"] elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"]["datas"] def product_find(self, product_pcode): """ 供应商商品详情 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "pcode": product_pcode } response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/product/find", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def status_update(self, product_pcode, product_operation): """ 商品上架/下架/删除 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "pcode": product_pcode, "operation": product_operation } response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/product/status-update", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_status_update_by_product_pcode( product_pcode) if query_re is not None: query_re = query_re[0] if product_operation == 30: assert query_re['is_delete'] == 1 else: assert query_re['status'] == product_operation elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def product_update(self, pn, parent_id=None, category_id=None, product_name=None, store_unit_id=None, product_content=None, price=None, store=None, freight_id=None, status=None, img=None): """ 更新商品信息 :return: """ query_re = self.tool.ms_query_supplier_product_update_by_pcode( self.product_list()[pn]["pcode"])[0] bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "shopId": self.shop_get()["shopId"], "pcode": self.product_list()[pn]["pcode"], "parentId": parent_id, "categoryId": category_id, "name": product_name, "storeUnitId": store_unit_id, "content": product_content, "price": price, "store": store, "freightId": freight_id, "status": status, "serviceType": 30, "imgs": img } response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/product/update", data=bind_data) if parent_id is None: bind_data['parentId'] = query_re['parent'] else: bind_data['parentId'] = parent_id if category_id is None: bind_data['categoryId'] = query_re['category_id'] else: bind_data['categoryId'] = category_id if product_name is None: bind_data['name'] = query_re['name'] else: bind_data['name'] = product_name if store_unit_id is None: bind_data['storeUnitId'] = query_re['store_unit_id'] else: bind_data['storeUnitId'] = store_unit_id if product_content is None: bind_data['content'] = query_re['content'] else: bind_data['content'] = product_content if price is None: bind_data['price'] = query_re['price'] else: bind_data['price'] = price if store is None: bind_data['store'] = query_re['store'] else: bind_data['store'] = store if freight_id is None: bind_data['freightId'] = query_re['freight_id'] else: bind_data['freightId'] = freight_id if status is None: bind_data['status'] = query_re['STATUS'] else: bind_data['status'] = status if img is None: bind_data['imgs'] = query_re['url'] else: bind_data['imgs'] = img response = self.request.post( url="http://192.168.62.253:31005/mobile/product/update", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_product_update_by_pcode( self.product_list()[pn]["pcode"])[0] if bind_data['parentId'] != query_re['parent']: assert query_re['parent'] == parent_id if bind_data['categoryId'] != query_re['category_id']: assert query_re['category_id'] == category_id if bind_data['name'] != query_re['name']: assert query_re['name'] == product_name if bind_data['storeUnitId'] != query_re['store_unit_id']: assert query_re['store_unit_id'] == store_unit_id if bind_data['content'] != query_re['content']: assert query_re['content'] == product_content if bind_data['price'] != query_re['price']: assert query_re['price'] == price if bind_data['store'] != query_re['store']: assert query_re['store'] == store if bind_data['freightId'] != query_re['freight_id']: assert query_re['freight_id'] == freight_id if bind_data['status'] != query_re['STATUS']: assert query_re['STATUS'] == status if bind_data['imgs'] != query_re['url']: assert query_re['url'] == img elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def store_list(self): """ 库存列表 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "shopId": self.shop_get()["shopId"], "pn": 1, "ps": 20 } response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/product/store-list", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_store_list_by_shop_id( self.shop_get()["shopId"]) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['count(*)'] == json_response["content"]["tc"] elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"]["datas"] def store_update(self, stores): """ 库存更新 断言需优化 :return: """ response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/product/store-update", bind_data={ "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "shopId": self.shop_get()["shopId"], "stores": stores }) pcode_list = [] for i in list(stores): pcode_list.append(i['pcode']) store_list = [] for j in list(stores): store_list.append(j['store']) json_response = json.loads(response) if json_response["status"] == "OK": query_re = self.tool.ms_query_supplier_store_update_by_pcode( pcode_list) if query_re is not None: query_re = query_re[0] if json_response["status"] == "OK": assert query_re['store'] == store_list elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def supp_order_list(self): """ 供应商订单列表 断言需优化 :return: """ bind_data = {"shopId": self.shop_get()["shopId"]} response = self.request.post(url=self.hosts['MS_ORDER'] + "/mobile/supply/order/list", data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def _mobile_supply_channel_order_list(self, orderStatus, pn, ps): ''' baiying:基地查看商品列表 :param orderStatus: :param pn: :param ps: :return: ''' data = { '_tk_': self.supplier.token, '_deviceId_': self.supplier.device_id, 'orderStatus': orderStatus, 'pn': pn, 'ps': ps } response = self.request.post( url='http://dev.ms.order.sjnc.com/mobile/supply/channel/order/list', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") return json_response def _mobile_supply_channel_order_detail(self, orderNo): ''' baiying:基地查看订单详情 :param orderNo: :return: ''' data = { '_tk_': self.supplier.token, '_deviceId_': self.supplier.device_id, 'orderNo': orderNo } response = self.request.post( url= 'http://dev.ms.order.sjnc.com/mobile/supply/channel/order/detail', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") return json_response def _mobile_supply_channel_order_refuse(self, orderNo): ''' baiying:基地拒绝苗叔的取消订单申请 :param orderNo: :return: ''' data = { '_tk_': self.supplier.token, '_deviceId_': self.supplier.device_id, 'orderNo': orderNo } response = self.request.post( url= 'http://dev.ms.order.sjnc.com/mobile/supply/channel/order/refuse', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") return json_response def _mobile_supply_channel_order_agree(self, orderNo): ''' baiying:基地同意苗叔的取消订单申请 :param orderNo: :return: ''' data = { '_tk_': self.supplier.token, '_deviceId_': self.supplier.device_id, 'orderNo': orderNo } response = self.request.post( url= 'http://dev.ms.order.sjnc.com/mobile/supply/channel/order/agree', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") return json_response def _mobile_supply_channel_order_finish_send(self, orderNo): ''' baiying:基地完成配送订单 :param orderNo: :return: ''' data = { '_tk_': self.supplier.token, '_deviceId_': self.supplier.device_id, 'orderNo': orderNo } response = self.request.post( url= 'http://dev.ms.order.sjnc.com/mobile/supply/channel/order/finish-send', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") def _mobile_supply_channel_order_pending_count(self, shopId): data = { '_tk_': self.supplier.token, '_deviceId_': self.supplier.device_id, 'shopId': shopId } response = self.request.post( url= 'http://dev.ms.order.sjnc.com/mobile/supply/channel/order/pending-count', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") return json_response def get_shop_id_by_type(self, seller_id, type=30): """ 张鹏飞:根据user_id获取店铺信息 :param seller_id: user_id :param type: 店铺类型,20是苗叔,30是基地 :return: 返回店铺的基本信息 """ data = { '_tk_': self.supplier.token, '_deviceId_': self.supplier.device_id, 'sellerId': seller_id, 'type': type } response = self.request.post(url=self.hosts['MS_SHOP'] + '/mobile/shop/get-by-type', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response # def update_shop_info(self, shop): # """ # 张鹏飞:更新店铺信息 # :return: # """ # bind_data = {"_tk_": self.supplier.token, # "_deviceId_": self.supplier.device_id, # "sellerId": self.supplier.user_id, # "name": shop.name, # "shopId": self.supplier.channel_shop_id, # # "mobile": shop.mobile, # "contact": shop.contact, # "avatar": shop.avatar} # response = self.request.post(url=self.hosts['MS_SHOP'] + '/mobile/shop/update-shop-info', # data=bind_data) # json_response = json.loads(response) # update_shop_info = self.tool.ms_query_update_shop_info_by_seller_id(self.supplier.user_id)[0] # if json_response["status"] == "OK": # assert update_shop_info["name"] == bind_data['name'] # # assert update_shop_info["mobile"] == bind_data['mobile'] # assert update_shop_info["contact"] == bind_data['contact'] # elif json_response["status"] == "ERROR": # raise Exception("status返回ERROR") # else: # raise Exception("status未返回OK或ERROR") # return json_response["content"] def product_save(self, product): """ 上架新商品 :param product: 传入商品对象,Product.py :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "parentId": product.parent_category_id, "categoryId": product.category_id, "name": product.name, "shopId": product.supplier_shop_id, "price": product.price, "storeUnitId": product.unit_id, "content": product.content, "store": product.store, "freightId": product.freight_id, "status": product.status, "serviceType": product.product_serviceType, "imgs": product.image } response = self.request.post(url=self.hosts['MS_PRODUCT'] + "/mobile/product/save", data=bind_data) product_info = self.tool.ms_query_channel_product_info_by_shop_id( self.get_shop_id_by_type( self.supplier.user_id).get('content').get('shopId')) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") return json_response def add_address(self, shop): """ 新增地址 :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "_language_": 'zh', "addressId": shop.addressId, "shopId": shop.shopId, "lng": shop.lng, "lat": shop.lat, "province": shop.province, "city": shop.city, "area": shop.area, "address": shop.address } response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/address/add", data=bind_data) add_address_info = self.tool.ms_query_latest_address_info_by_shop_id( self.get_shop_id_by_type( self.supplier.user_id).get('content').get('shopId'))[0] json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") return json_response def switch_status(self, shop_id, status=10, check="true"): """ 更新店铺营业状态(10 营业中 20 休息) :return: """ bind_data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "shopId": shop_id, "status": status, "check": check } response = self.request.post(url=self.hosts['MS_SHOP'] + "/mobile/shop/switch-status", data=bind_data) json_response = json.loads(response) update_shop_info = self.tool.ms_query_update_shop_info_by_seller_id( self.supplier.user_id)[0] if json_response["status"] == "OK": assert update_shop_info["status"] == status elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") return json_response["content"] def _mobile_address_add(self, receiver, contact_number, province, city, address, door_number, lng, lat, is_default): """ 陈秀娟:添加收货地址 :param receiver: :param contact_number: :param province: :param city: :param address: :param door_number: :param lng: :param lat: :param is_default: :return: """ data = { '_tk_': self.supplier.token, '_deviceId_': self.supplier.device_id, 'receiver': receiver, 'contactNumber': contact_number, 'province': province, 'city': city, 'address': address, 'doorNumber': door_number, 'lng': lng, 'lat': lat, 'isDefault': is_default } response = self.request.post(url=self.hosts['MS_USER'] + '/mobile/address/add', data=data) print(response) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") return json_response def history_address(self, shop_id): """ 获取历史地址列表 :return: """ data = { "_tk_": self.supplier.token, "_deviceId_": self.supplier.device_id, "shopId": shop_id } response = self.request.post( url='http://dev.ms.shop.sjnc.com/mobile/address/history', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR") return json_response
class Main(unittest.TestCase): op_account = Config('config').data['User'][Config( 'config').data['run']]['op'] product_name = Config('productname').data['product_name'] L = Log('Main') toot = Tool() # 登录 buyer = User('18380581406') # 切换角色 pa = PurchaserAction(buyer) at = AndroidTool() distributor = User('18380581416') di = DistributorAction(distributor) supplier = User('18380581426') su = SupplierAction(supplier) operator = Employee(op_account['account'], op_account['password'], 1) op = OperatorAction(operator) def tearDown(self): pass def setUp(self): url = 'http://203.6.234.220:9660/download/attachments/1016059/user-avatar' resp = self.di._mobile_apply_channel_status() if resp.get('content') in (1, 2, 3): if resp.get('content') in (1, 3): self.di._mobile_apply_channel() resp = self.op._admin_audit_list(1, 10, 2, self.distributor.mobile, 2).get('content').get('datas')[0] self.op._admin_audit_pass(id=resp.get('id'), user_id=resp.get('userId'), positive=url, negative=url, name='Draven', gender=1, birthday='2018-11-11', id_num='513902199309091011', province=41, city=4140, district=1101104, address='领馆科技') resp = self.di._mobile_apply_channel_status() if resp.get('content') == 4: self.di._mobile_shop_server_server(10, 10) self.di._mobile_shop_server_server(20, 10) shop_info = self.di.get_shop_id_by_type(self.distributor.user_id) shop_id = shop_info.get('content').get('shopId') self.distributor.channel_shop_id = shop_id self.L.logger.debug('客户端查询地址列表') address_list = self.pa._mobile_address_list() if len(address_list['content']) == 0: self.L.logger.debug('用户添加收货地址') self.pa._mobile_address_add('xiu', self.buyer.mobile, '41', '4101', '天府五街', 'E3-9', 104.069, 30.539, 1) def test0033(self): try: apk_path = '/Users/hengxin/Downloads/苗叔-20181130\(v1.0.24\).apk' self.at.launch_app_by_apk(apk_path) self.at.login_miaoshu("18602832572", "888888") self.at.enter_shop("自动化刷单勿删") self.at.pay_product() self.at.tear_down_miaoshu() Mail().send_html_email() self.L.logger.info("测试完成, 邮件发送成功") except Exception as e: self.at.get_screen_shot() self.L.logger.debug("错误信息: %s" % e) self.at.tear_down_miaoshu() def test0034(self): """ 服务订单的完整流程 :return: """ shopinfo = self.di.get_shop_id_by_type(self.distributor.user_id) shop_id = shopinfo.get('content').get('shopId') self.distributor.channel_shop_id = shop_id shop = Shop(self.distributor) self.L.logger.debug('渠道商新增商品') for i in range(3): p = Product(user=self.distributor, product_name=str(i)) self.di.product_save(p) self.L.logger.debug('添加接单点') self.di.add_address(shop) self.L.logger.debug('开始接单') self.di.switch_status(shop_id=shop_id) order_no = self.di._mobile_channel_service_order_submit( buyerId=self.buyer.user_id, shopId=shop_id, serviceType=20, doorTime='2019-12-16 08:00', content='养猪', earnestMoneyPrice=1, doorAddress='ce', lng=103, lat=40) self.di._mobile_channel_service_order_detail(order_no['content']) order_info = self.pa._mobile_customer_service_order_detail( order_no['content']) caindex = self.pa.cashier_index( order_info['content']['earnestMoneyTradeNo']) self.pa.weipay_pay(order_info['content']['earnestMoneyTradeNo'], caindex['content']['channelList'][0]['id'], order_info['content']['earnestMoneyPrice']) self.pa.pay_callback(order_info['content']['earnestMoneyTradeNo'], order_info['content']['earnestMoneyPrice']) time.sleep(15) self.pa._mobile_customer_service_order_detail(order_no['content']) self.di._mobile_channel_service_order_detail(order_no['content']) self.di._mobile_channel_service_order_finish_door( order_no['content'], 10) order_info = self.pa._mobile_customer_service_order_detail( order_no['content']) caindex = self.pa.cashier_index( order_info['content']['tailMoneyTradeNo']) self.pa.weipay_pay(order_info['content']['tailMoneyTradeNo'], caindex['content']['channelList'][0]['id'], order_info['content']['tailMoneyPrice']) self.pa.pay_callback(order_info['content']['tailMoneyTradeNo'], order_info['content']['tailMoneyPrice']) time.sleep(15) self.pa._mobile_customer_service_order_detail(order_no['content']) self.di._mobile_channel_service_order_detail(order_no['content']) def test0035(self): """ 服务订单的取消流程 :return: """ shopinfo = self.di.get_shop_id_by_type(self.distributor.user_id) shop_id = shopinfo.get('content').get('shopId') self.distributor.channel_shop_id = shop_id shop = Shop(self.distributor) self.L.logger.debug('渠道商新增商品') for i in range(3): p = Product(user=self.distributor, product_name=str(i)) self.di.product_save(p) self.L.logger.debug('添加接单点') self.di.add_address(shop) self.L.logger.debug('开始接单') self.di.switch_status(shop_id=shop_id) order_no = self.di._mobile_channel_service_order_submit( buyerId=self.buyer.user_id, shopId=shop_id, serviceType=10, doorTime='2019-12-16 08:00', content='养猪', earnestMoneyPrice=1, doorAddress='ce', lng=103, lat=40) self.di._mobile_channel_service_order_detail(order_no['content']) self.pa._mobile_customer_service_order_detail(order_no['content']) self.pa._mobile_customer_service_order_cancel(order_no['content']) self.pa._mobile_customer_service_order_detail(order_no['content']) self.di._mobile_channel_service_order_detail(order_no['content']) def test0036(self): """ 张鹏飞:服务订单列表 订单状态,10:待下单, 20:待上门, 30:已结款, 40:已完成, 50: 已取消 :return: """ self.L.logger.debug("卖家服务订单列表") self.di._mobile_channel_service_order_list(10) self.di._mobile_channel_service_order_list(20) self.di._mobile_channel_service_order_list(30) self.di._mobile_channel_service_order_list(40) self.di._mobile_channel_service_order_list(50) self.L.logger.debug("买家服务订单列表") self.pa._mobile_customer_service_order_list(10) self.pa._mobile_customer_service_order_list(20) self.pa._mobile_customer_service_order_list(30) self.pa._mobile_customer_service_order_list(40) self.pa._mobile_customer_service_order_list(50) def test0037(self): """ 张鹏飞:商品订单正向流程 :return: """ shop_info = self.di.get_shop_id_by_type(self.distributor.user_id) shop_id = shop_info.get('content').get('shopId') self.distributor.channel_shop_id = shop_id self.L.logger.debug('苗叔查询运费模板列表') freight_list = self.di.all_freight() if len(freight_list['content']) <= 1: self.L.logger.debug('苗叔添加运费模板') self.di.freight_save_or_update(shop_id, '测试模板66', 500, 10000, 2000) self.L.logger.debug('更新店铺信息') shop = Shop(self.distributor) self.di.update_shop_info(shop) self.L.logger.debug('渠道商新增商品') for i in range(3): p = Product(user=self.distributor, product_name=random.choice(self.product_name)) self.di.product_save(p) if i == 0: self.L.logger.debug('苗叔筛选查看库存商品列表') store_list = self.di.store_list_product(p) pro_code = store_list.get('content').get('datas')[0]['pcode'] self.L.logger.debug('苗叔更新商品库存') self.di.store_update_product(pro_code) self.L.logger.debug('苗叔筛选查看商品列表') pro_list = self.di.list_product(p) pro_code = pro_list.get('content').get('datas')[0]['pcode'] self.L.logger.debug('苗叔上架商品') self.di.status_update_product(pro_code) self.L.logger.debug('苗叔下架商品') self.di.status_update_product(pro_code, 20) self.L.logger.debug('苗叔删除商品') self.di.status_update_product(pro_code, 30) self.L.logger.debug('添加接单点') self.di.add_address(shop) self.L.logger.debug('开始接单') self.di.switch_status(shop_id=shop_id) self.L.logger.debug('客户端查询地址列表') address_list = self.pa._mobile_address_list() address = address_list['content'][0] add_id = address['id'] self.L.logger.debug('客户端查询店铺信息') self.pa.get_shop_info_by_id(shop_id) self.L.logger.debug('店铺内商品列表') product_list = self.pa.get_shop_products_by_shop_id(shop_id) p_code = self.pa.tool.get_pro_code_by_pro_list(product_list['content']) self.L.logger.debug('添加购物车') self.pa.cart_add(p_code) self.L.logger.debug('购物车列表') cart_list = self.pa.get_cart_list() self.L.logger.debug('购物车结算') sure_order = self.pa.cart_balance( self.pa.tool.get_cart_ids_by_cart_list(cart_list, shop_id), add_id) self.L.logger.debug('确认提交订单') order = self.pa.submit_order( self.pa.tool.order_info_change(sure_order)) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('收银台') order_pay_info = self.pa.cashier_index(order['content']['tradeNo']) self.L.logger.debug('支付') self.pa.weipay_pay(order['content']['tradeNo'], order_pay_info['content']['channelList'][0]['id'], order_pay_info['content']['amount']) self.L.logger.debug('付款') self.pa.pay_callback(order['content']['tradeNo'], order_pay_info['content']['amount']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('买家未完成配送前取消订单') self.pa._mobile_customer_order_apply_refund( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('苗叔拒绝取消订单') self.di._mobile_channel_order_refuse(order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('渠道商完成配送') self.di.finish_send_order(order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('买家完成配送后取消订单') self.pa._mobile_customer_order_apply_refund( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('苗叔拒绝取消订单') self.di._mobile_channel_order_refuse(order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('用户确认收货') self.pa.confirm_receive(order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) def test0038(self): """ 张鹏飞:待付款订单取消 :return: """ shop_info = self.di.get_shop_id_by_type(self.distributor.user_id) shop_id = shop_info.get('content').get('shopId') self.distributor.channel_shop_id = shop_id self.L.logger.debug('更新店铺信息') shop = Shop(self.distributor) self.di.update_shop_info(shop) self.L.logger.debug('渠道商新增商品') for i in range(3): p = Product(user=self.distributor, product_name=str(i)) self.di.product_save(p) self.L.logger.debug('添加接单点') self.di.add_address(shop) self.L.logger.debug('开始接单') self.di.switch_status(shop_id=shop_id) self.L.logger.debug('客户端查询地址列表') address_list = self.pa._mobile_address_list() address = address_list['content'][0] add_id = address['id'] self.L.logger.debug('客户端查询店铺信息') self.pa.get_shop_info_by_id(shop_id) self.L.logger.debug('店铺内商品列表') product_list = self.pa.get_shop_products_by_shop_id(shop_id) p_code = self.pa.tool.get_pro_code_by_pro_list(product_list['content']) self.L.logger.debug('添加购物车') self.pa.cart_add(p_code) self.L.logger.debug('购物车列表') cart_list = self.pa.get_cart_list() self.L.logger.debug('购物车结算') sure_order = self.pa.cart_balance( self.pa.tool.get_cart_ids_by_cart_list(cart_list, shop_id), add_id) self.L.logger.debug('确认提交订单') order = self.pa.submit_order( self.pa.tool.order_info_change(sure_order)) self.L.logger.debug('关闭订单') self.pa.order_close(order['content']['orderNo']) def test0039(self): """ 张鹏飞:待配送订单取消成功 :return: """ shop_info = self.di.get_shop_id_by_type(self.distributor.user_id) shop_id = shop_info.get('content').get('shopId') self.distributor.channel_shop_id = shop_id self.L.logger.debug('更新店铺信息') shop = Shop(self.distributor) self.di.update_shop_info(shop) self.L.logger.debug('渠道商新增商品') for i in range(3): p = Product(user=self.distributor, product_name=str(i)) self.di.product_save(p) self.L.logger.debug('添加接单点') self.di.add_address(shop) self.L.logger.debug('开始接单') self.di.switch_status(shop_id=shop_id) # self.L.logger.debug('用户添加收货地址') # self.pa._mobile_address_add('xiu', 19982917912, '41', '4101', '天府五街', 'E3-9', 104.069, 30.539, 1) self.L.logger.debug('客户端查询地址列表') address_list = self.pa._mobile_address_list() address = address_list['content'][0] add_id = address['id'] self.L.logger.debug('客户端查询店铺信息') self.pa.get_shop_info_by_id(shop_id) self.L.logger.debug('店铺内商品列表') product_list = self.pa.get_shop_products_by_shop_id(shop_id) p_code = self.pa.tool.get_pro_code_by_pro_list(product_list['content']) self.L.logger.debug('添加购物车') self.pa.cart_add(p_code) self.L.logger.debug('购物车列表') cart_list = self.pa.get_cart_list() self.L.logger.debug('购物车结算') sure_order = self.pa.cart_balance( self.pa.tool.get_cart_ids_by_cart_list(cart_list, shop_id), add_id) self.L.logger.debug('确认提交订单') order = self.pa.submit_order( self.pa.tool.order_info_change(sure_order)) self.L.logger.debug('订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('收银台') order_pay_info = self.pa.cashier_index(order['content']['tradeNo']) self.L.logger.debug('支付') self.pa.weipay_pay(order['content']['tradeNo'], order_pay_info['content']['channelList'][0]['id'], order_pay_info['content']['amount']) self.L.logger.debug('付款') self.pa.pay_callback(order['content']['tradeNo'], order_pay_info['content']['amount']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('买家未完成配送前取消订单') self.pa._mobile_customer_order_apply_refund( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('苗叔拒绝取消订单') self.di._mobile_channel_order_refuse(order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('买家未完成配送前取消订单') self.pa._mobile_customer_order_apply_refund( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('苗叔同意取消订单') self.di._mobile_channel_order_agree(order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) def test0040(self): """ 张鹏飞:已配送完成的订单,买家取消订单,卖家同意 :return: """ shop_info = self.di.get_shop_id_by_type(self.distributor.user_id) shop_id = shop_info.get('content').get('shopId') self.distributor.channel_shop_id = shop_id self.L.logger.debug('更新店铺信息') shop = Shop(self.distributor) self.di.update_shop_info(shop) self.L.logger.debug('渠道商新增商品') for i in range(3): p = Product(user=self.distributor, product_name=str(i)) self.di.product_save(p) self.L.logger.debug('添加接单点') self.di.add_address(shop) self.L.logger.debug('开始接单') self.di.switch_status(shop_id=shop_id) # self.L.logger.debug('用户添加收货地址') # self.pa._mobile_address_add('xiu', 19982917912, '41', '4101', '天府五街', 'E3-9', 104.069, 30.539, 1) self.L.logger.debug('客户端查询地址列表') address_list = self.pa._mobile_address_list() address = address_list['content'][0] add_id = address['id'] self.L.logger.debug('客户端查询店铺信息') self.pa.get_shop_info_by_id(shop_id) self.L.logger.debug('店铺内商品列表') product_list = self.pa.get_shop_products_by_shop_id(shop_id) p_code = self.pa.tool.get_pro_code_by_pro_list(product_list['content']) self.L.logger.debug('添加购物车') self.pa.cart_add(p_code) self.L.logger.debug('购物车列表') cart_list = self.pa.get_cart_list() self.L.logger.debug('购物车结算') sure_order = self.pa.cart_balance( self.pa.tool.get_cart_ids_by_cart_list(cart_list, shop_id), add_id) self.L.logger.debug('确认提交订单') order = self.pa.submit_order( self.pa.tool.order_info_change(sure_order)) self.L.logger.debug('订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('收银台') order_pay_info = self.pa.cashier_index(order['content']['tradeNo']) self.L.logger.debug('支付') self.pa.weipay_pay(order['content']['tradeNo'], order_pay_info['content']['channelList'][0]['id'], order_pay_info['content']['amount']) self.L.logger.debug('付款') self.pa.pay_callback(order['content']['tradeNo'], order_pay_info['content']['amount']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('买家未完成配送前取消订单') self.pa._mobile_customer_order_apply_refund( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('苗叔拒绝取消订单') self.di._mobile_channel_order_refuse(order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('渠道商完成配送') self.di.finish_send_order(order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('买家完成配送后取消订单') self.pa._mobile_customer_order_apply_refund( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) self.L.logger.debug('苗叔同意取消订单') self.di._mobile_channel_order_agree(order['content']['orderNo']) time.sleep(10) self.L.logger.debug('买家订单详情') self.pa.order_detail(order['content']['orderNo']) self.L.logger.debug('卖家订单详情') self.di.shopping_order_detail(order['content']['orderNo']) def test0041(self): """ 张鹏飞:商品订单列表 订单状态,10:待下单, 20:待上门, 30:已结款, 40:已完成, 50: 已取消 :return: """ self.L.logger.debug("卖家商品订单待处理列表") self.di.list_order(20) self.L.logger.debug("卖家商品订单待买家收货列表") self.di.list_order(30) self.L.logger.debug("卖家商品订单已完成列表") self.di.list_order(40) self.L.logger.debug("卖家商品订单已退款已取消列表") self.di.list_order(70) self.L.logger.debug("买家商品订单列表") self.pa.order_list(10) self.pa.order_list(20) self.pa.order_list(30) self.pa.order_list(40) self.pa.order_list((50, 70)) def test0042(self): """ baiying:苗叔向基地购买商品正向流程 :return: """ shop_info = self.su.get_shop_id_by_type(self.supplier.user_id) shop_id = shop_info.get('content').get('shopId') self.supplier.supplier_shop_id = shop_id self.L.logger.debug('更新店铺信息') shop = Shop(self.supplier) self.su.update_shop_info(shop) self.L.logger.debug('基地新增商品') for i in range(3): p = Product(user=self.supplier, product_name=str(i)) self.su.product_save(p) self.L.logger.debug('基地地址') address_list = self.su.history_address(shop_id) if len(address_list['content']) == 0: self.L.logger.debug('基地添加店铺地址') self.su._mobile_address_add('xiu', self.buyer.mobile, '41', '4101', '天府五街', 'E3-9', 104.069, 30.539, 1) self.L.logger.debug('开始接单') self.su.switch_status(shop_id=shop_id) self.L.logger.debug('客户端查询地址列表') address_list = self.di._mobile_address_list() address = address_list['content'][0] add_id = address['id'] self.L.logger.debug('客户端查询店铺信息') self.di.get_shop_info_by_id(shop_id) self.L.logger.debug('店铺内商品列表') product_list = self.pa.get_shop_products_by_shop_id(shop_id) p_code = self.pa.tool.get_pro_code_by_pro_list(product_list['content']) self.L.logger.debug('添加购物车') self.di.cart_add(p_code) self.L.logger.debug('购物车列表') cart_list = self.di.get_cart_list() self.L.logger.debug('购物车结算') sure_order = self.di.cart_balance( self.pa.tool.get_cart_ids_by_cart_list(cart_list, shop_id), add_id) self.L.logger.debug('确认提交订单') order = self.di.submit_order( self.pa.tool.order_info_change(sure_order)) self.L.logger.debug('苗叔订单详情') self.di._mobile_supply_customer_order_detail( order['content']['orderNo']) self.L.logger.debug('收银台') order_pay_info = self.di.cashier_index(order['content']['tradeNo']) self.L.logger.debug('支付') self.di.weipay_pay(order['content']['tradeNo'], order_pay_info['content']['channelList'][0]['id'], order_pay_info['content']['amount']) self.L.logger.debug('付款') self.di.pay_callback(order['content']['tradeNo'], order_pay_info['content']['amount']) time.sleep(10) self.L.logger.debug('苗叔订单详情') self.di._mobile_supply_customer_order_detail( order['content']['orderNo']) self.L.logger.debug('基地订单详情') self.su._mobile_supply_channel_order_detail( order['content']['orderNo']) self.L.logger.debug('苗叔未完成配送前取消订单') self.di._mobile_supply_customer_order_apply_refund( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('苗叔订单详情') self.di._mobile_supply_customer_order_detail( order['content']['orderNo']) self.L.logger.debug('基地订单详情') self.su._mobile_supply_channel_order_detail( order['content']['orderNo']) self.L.logger.debug('苗叔未完成配送前取消订单') self.L.logger.debug('基地拒绝取消订单') self.su._mobile_supply_channel_order_refuse( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('苗叔订单详情') self.di._mobile_supply_customer_order_detail( order['content']['orderNo']) self.L.logger.debug('基地订单详情') self.su._mobile_supply_channel_order_detail( order['content']['orderNo']) self.L.logger.debug('基地完成配送') self.su._mobile_supply_channel_order_finish_send( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('苗叔订单详情') self.di._mobile_supply_customer_order_detail( order['content']['orderNo']) self.L.logger.debug('基地订单详情') self.su._mobile_supply_channel_order_detail( order['content']['orderNo']) self.L.logger.debug('苗叔完成配送后取消订单') self.di._mobile_supply_customer_order_apply_refund( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('苗叔订单详情') self.di._mobile_supply_customer_order_detail( order['content']['orderNo']) self.L.logger.debug('基地订单详情') self.su._mobile_supply_channel_order_detail( order['content']['orderNo']) self.L.logger.debug('基地拒绝取消订单') self.su._mobile_supply_channel_order_refuse( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('苗叔订单详情') self.di._mobile_supply_customer_order_detail( order['content']['orderNo']) self.L.logger.debug('基地订单详情') self.su._mobile_supply_channel_order_detail( order['content']['orderNo']) self.L.logger.debug('苗叔确认收货') self.di._mobile_supply_customer_order_confirm_receive( order['content']['orderNo']) time.sleep(10) self.L.logger.debug('苗叔订单详情') self.di._mobile_supply_customer_order_detail( order['content']['orderNo']) self.L.logger.debug('基地订单详情') self.su._mobile_supply_channel_order_detail( order['content']['orderNo']) def test0043(self): """ 张鹏飞:运营后台订单数据 :return: """ self.op._admin_report_order_pie_sta('2018-12-1', '2018-12-20') self.op._admin_report_order_summary_sta('2018-12-1', '2018-12-20') self.op._admin_report_service_order_service_data_card( '2018-12-1', '2018-12-20') self.op._admin_report_service_order_service_data_trend( '2018-12-1', '2018-12-20') self.op._admin_report_service_order_service_type_distribution( '2018-12-1', '2018-12-20')
def __init__(self, mobile, password, register=False, login_type=1, mobile_region=86): self.log = Log('User') self.tool = Tool() self.request = Request() self.user_info = self.tool.query_user_info_by_mobile(mobile) if self.user_info != (): self.user_info = self.user_info[0] if register: if self.user_info: self.tool.delete_user_by_mobile(mobile) else: pass self.dataSSO = Config('sso').data validate_code_data = \ self.dataSSO['http://dev.sso.worldfarm.com']['/mobile/sso/register/validate-verify-code'] validate_code_data["mobileRegion"] = mobile_region validate_code_data["mobile"] = mobile validate_code = self.request.post( url= "http://dev.sso.worldfarm.com/mobile/sso/register/validate-verify-code", data=validate_code_data) business_token = json.loads(validate_code)["content"] register_data = self.dataSSO['http://dev.sso.worldfarm.com'][ '/mobile/sso/register'] register_data["mobileRegion"] = mobile_region register_data["mobile"] = mobile register_data["newPassword"] = password register_data["businessToken"] = business_token self.request.post( url="http://dev.sso.worldfarm.com/mobile/sso/register", data=register_data) user_info = self.tool.query_user_info_by_mobile(mobile)[0] self.user_id = user_info["id"] self.real_name = user_info["real_name"] self.user_name = user_info["username"] self.sex = user_info["sex"] self.mobile_region = user_info["mobile_region"] self.mobile = user_info["mobile"] self.email = user_info["email"] self.email_state = user_info["email_state"] self.account_status = user_info["account_status"] self.account_type = user_info["account_type"] self.head_img = user_info["head_img"] self.company_name = user_info["company_name"] self.register_time = user_info["register_time"] self.nation_id = user_info["nation_id"] self.province_id = user_info["province_id"] self.city_id = user_info["city_id"] self.address = user_info["address"] self.birthday = user_info["birthday"] self.edit_time = user_info["edit_time"] self.log.logger.debug("手机号为 %s 的用户注册成功, id为%s" % (str(self.mobile), str(self.user_id))) us = UserSession(mobile, password, login_type) self.password = password self.token, self.device_id = us.token, us.deviceId self.language = 'zh' else: if self.user_info: self.user_id = self.user_info["id"] self.real_name = self.user_info["real_name"] self.user_name = self.user_info["username"] self.sex = self.user_info["sex"] self.mobile_region = self.user_info["mobile_region"] self.mobile = self.user_info["mobile"] self.email = self.user_info["email"] self.email_state = self.user_info["email_state"] self.account_status = self.user_info["account_status"] self.account_type = self.user_info["account_type"] self.head_img = self.user_info["head_img"] self.company_name = self.user_info["company_name"] self.register_time = self.user_info["register_time"] self.nation_id = self.user_info["nation_id"] self.province_id = self.user_info["province_id"] self.city_id = self.user_info["city_id"] self.address = self.user_info["address"] self.birthday = self.user_info["birthday"] self.edit_time = self.user_info["edit_time"] us = UserSession(mobile, password, login_type) self.password = password self.token, self.device_id = us.token, us.deviceId self.language = 'zh' else: raise Exception( '手机号 %s 无对应用户: 1. 若需老账号请修改手机号; 2. 若需新注册添加, register=True' % str(mobile))
class User(object): hosts = Config('config').data['hosts'][Config('config').data['run']] def __init__(self, mobile): self.log = Log('User') self.tool = Tool() self.request = Request() # self.user_info = self.tool.miaoshu_query_user_info_by_mobile(mobile, 1) # if self.user_info != (): # self.user_info = self.user_info[0] # if self.user_info['channel_status'] is not None: # self.tool.ms_delete_user_by_mobile(mobile) us = UserSession(mobile) self.encryptedPwd = us.encrypted_password self.token, self.device_id = us.token, us.deviceId self.user_info = self.tool.miaoshu_query_user_info_by_mobile(mobile, 1) if self.user_info != (): self.user_info = self.user_info[0] self.user_id = self.user_info["id"] self.real_name = self.user_info["real_name"] self.nickname = self.user_info["nickname"] self.sex = self.user_info["sex"] self.mobile = self.user_info["mobile"] self.email = self.user_info["email"] self.account_status = self.user_info["account_status"] self.account_type = self.user_info["account_type"] self.head_img = self.user_info["head_img"] self.register_time = self.user_info["create_time"] self.edit_time = self.user_info["edit_time"] self.channel_shop_id = None self.supplier_shop_id = None def automatic_login(self): """ 自动登录 :return: """ data = { 'token': self.token, 'deviceId': self.device_id, 'encryptedPwd': self.encryptedPwd } response = Request().post(url=self.hosts['MS_PASSPORT'] + "/mobile/sso/automatic-login", data=data) json_response = json.loads(response) if json_response["status"] == "OK": self.token = json_response['content']['token'] elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def user_logout(self): """ 用户退出登录 :return: """ data = {"token": self.token} response = Request().post(url=self.hosts['MS_PASSPORT'] + "/mobile/sso/logout", data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def check_token(self): """ 验证用户token :return: """ data = {'token': self.token, 'deviceId': self.device_id} response = Request().post(url=self.hosts['MS_PASSPORT'] + "/api/sso/check-token", data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def clear_token(self, app_id='MS_APP'): """ 清除用户token :return: """ data = {'userId': self.user_id, 'appId': app_id} response = Request().post(url=self.hosts['MS_PASSPORT'] + "/api/sso/clear-token", data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": raise Exception("status返回ERROR") else: raise Exception("status未返回OK或ERROR") def _mobile_user_update_nickname(self, nickname): """ 张鹏飞: 新用户登录后,添加昵称调用 :param nickname: 昵称 :return: """ data = { '_tk_': self.token, '_deviceId_': self.device_id, 'nickname': nickname } response = self.request.post(url=self.hosts['MS_USER'] + '/mobile/user/update-nickname', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": pass else: raise Exception("status未返回OK或ERROR")
class Main(unittest.TestCase): L = Log('Main') tool = Tool() user = User("18602832572", "123456a", register=False) appbuyeraction = AppBuyerAction(user) webbuyeraction = WebBuyerAction(user) pa = PromoterAction(Employee('100028', '123456')) # user = User("13658082213", "123456a", register=False) # buyeraction = BuyerAction(user) # employee = Employee(buyeraction.get_customer_account(), '123456') emp = Employee("100005", "123456") dataTRADE = Config('trade').data service = ServiceAction(emp) seller_agent = SellerAgent(user) def tearDown(self): pass def setUp(self): pass def test2000(self): """ mobile卖家中介模糊搜索农场 :return: """ selleragency = SellerAgent(self.user) selleragency.mobile_seller_agent_search_farm("漫花庄园", language='zh') def test2001(self): """ mobile卖家中介新增农场备注 :return: """ selleragency = SellerAgent(self.user) selleragency.mobile_seller_agency_add_remark(415, "lalal", language='zh') def test2002(self): """ mobile卖家中介关闭农场 :return: """ selleragency = SellerAgent(self.user) selleragency.mobile_seller_agency_close_farm(522, 30, language='zh') def test2003(self): """ mobile卖家中介关闭农场列表 :return: """ selleragency = SellerAgent(self.user) selleragency.mobile_seller_agency_close_farm_list(419, language='zh') def test2004(self): """ mobile卖家中介农场详情 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_farm_detail(140.7842627, 37.8301386, 523, language='zh') def test2005(self): """ mobile卖家中介已发布农场列表 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_farm_list(2, language='zh') def test2006(self): """ mobile卖家中介已发布农场地图页 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_map_list(140.7842627, 37.8301386, language='zh') def test2007(self): """ mobile卖家中介农场详情 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_update_farm(516, {"area": 12}, language='zh') def test2008(self): """ mobile卖家中介农场主 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_farmer_detail(528, language='zh') def test2009(self): """ mobile卖家中介更新农场主 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_farmer_update( 528, '王二麻子', 1, "2018-01-01", 18602883456, "https://zyp-farm-2.oss-ap-southeast-1.aliyuncs.com/data/farm/head/1535092943322.jpg", '嘿嘿嘿', 11, language='zh') def test2010(self): """ mobile卖家中介增加资质 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_use_add( '王二麻子', "叽里呱啦大公司", '[{"type": "2",' '"url": "https://zyp-farm-2.oss-ap-southeast-1.aliyuncs.com/data/farm/head/1535093109545.jpg"},' '{"type": "3",' '"url": "https://zyp-farm-2.oss-ap-southeast-1.aliyuncs.com/data/farm/head/1535092873551.jpg"},' '{"type": "4",' '"url": "https://zyp-farm-2.oss-ap-southeast-1.aliyuncs.com/data/farm/head/1535092943322.jpg"}]', language='zh') def test2011(self): """ mobile卖家中介资质状态 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_use_status(language='zh') def test2012(self): """ mobile卖家中介农场意向买家列表 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_farm_buyer_list(414, 3, 1, language='zh') def test2013(self): """ mobile卖家中介消息意向买家列表 :return: """ seleragency = SellerAgent(self.user) seleragency.mobile_seller_agency_message_buyer_list(language='zh') def test2014(self): """ mobile卖家中介IM发送农场 :return: """ selleragency = SellerAgent(self.user) selleragency.mobile_seller_agency_im_send_farm_list("庄园", language='zh') def test2015(self): """ web卖家中介新增备注 :return: """ selleragency = SellerAgent(self.user) selleragency.web_seller_agency_add_remark(415, "web自动化测试备注", language='zh') def test2016(self): """ web卖家中介新增农场 :return: """ selleragency = SellerAgent(self.user) selleragency.web_seller_agent_add_farm("web测试大娃二娃农场名", "种植", "南澳大利亚", "2000万-3500万", "5000亩-10000亩", language='zh') def test2017(self): """ web卖家中介关闭农场 :return: """ selleragency = SellerAgent(self.user) selleragency.web_seller_agency_close_farm(522, 30, language='zh') def test2018(self): """ web卖家中介关闭农场列表 :return: """ selleragency = SellerAgent(self.user) selleragency.web_seller_agency_close_farm_list(419, language='zh') def test2019(self): """ web卖家中介农场详情 :return: """ seleragency = SellerAgent(self.user) seleragency.web_seller_agency_farm_detail(140.7842627, 37.8301386, 523, language='zh') def test2020(self): """ web卖家中介已发布农场列表 :return: """ seleragency = SellerAgent(self.user) seleragency.web_seller_agency_farm_list(2, language='zh') def test2021(self): """ web卖家中介更新农场 :return: """ seleragency = SellerAgent(self.user) seleragency.web_seller_agency_update_farm(516, {"area": 12}, language='zh') def test2022(self): """ web卖家中介农场主 :return: """ seleragency = SellerAgent(self.user) seleragency.web_seller_agency_farmer_detail(528, language='zh') def test2023(self): """ web卖家中介更新农场主 :return: """ seleragency = SellerAgent(self.user) seleragency.web_seller_agency_farmer_update(528, {'realName': ' web测试'}, language='zh') def test2024(self): """ web卖家中介增加资质 :return: """ seleragency = SellerAgent(self.user) seleragency.web_seller_agency_use_add( '王二麻子', "叽里呱啦大公司", '[{"type": "2",' '"url": "https://zyp-farm-2.oss-ap-southeast-1.aliyuncs.com/data/farm/head/1535093109545.jpg"},' '{"type": "3",' '"url": "https://zyp-farm-2.oss-ap-southeast-1.aliyuncs.com/data/farm/head/1535092873551.jpg"},' '{"type": "4",' '"url": "https://zyp-farm-2.oss-ap-southeast-1.aliyuncs.com/data/farm/head/1535092943322.jpg"}]', language='zh') def test2025(self): """ web卖家中介资质状态 :return: """ seleragency = SellerAgent(self.user) seleragency.web_seller_agency_use_status(language='zh') def test2026(self): """ web卖家中介农场意向买家列表 :return: """ seleragency = SellerAgent(self.user) seleragency.web_seller_agency_farm_buyer_list(414, 3, 1, language='zh') def test2027(self): """ web卖家中介消息意向买家列表 :return: """ seleragency = SellerAgent(self.user) seleragency.web_seller_agency_message_buyer_list(language='zh') def test2028(self): """ mobile卖家中介新增农场 :return: """ selleragency = SellerAgent(self.user) selleragency.mobile_seller_agent_add_farm("web测试大娃二娃农场名", "种植", "南澳大利亚", "2000万-3500万", "5000亩-10000亩", language='zh') def test0001(self): """ app买家绑定销售ID :return: """ re = self.appbuyeraction.app_buyer_sale_bind(487) print(re) re = self.appbuyeraction.app_buyer_query_sale(487) print(re) def test0002(self): """ app查询用户个人信息 :return: """ user_info = self.appbuyeraction.app_buyer_user_detail() print(user_info) def test0003(self): """ app感兴趣 :return: """ print( self.appbuyeraction.app_get_order_no( self.appbuyeraction.app_get_farm_list_first_id())) def test0004(self): """ app用户修改个人信息 :return: """ self.appbuyeraction.app_buyer_update_user( "星买家", "男", "成都大农科技有限公司", "前端工程师", "http://zyp-farm-2.oss-ap-southeast-1.aliyuncs.com/data/farm/head/1530012058085.png" ) def test0005(self): """ app上传购买资质 :return: """ farm_id = self.appbuyeraction.app_get_farm_list_first_id() is_add = self.appbuyeraction.app_buyer_resource_is_add( self.appbuyeraction.app_get_order_no(farm_id)) r = self.appbuyeraction.app_buyer_resource_add( farm_id, self.appbuyeraction.app_get_order_no(farm_id)) print(is_add) print(r) def test0006(self): """ app查看购买资质详情 :return: """ farm_id = self.appbuyeraction.app_get_farm_list_first_id() r = self.appbuyeraction.app_buyer_resource_detail( self.appbuyeraction.app_get_order_no(farm_id)) print(r) def test0008(self): """ app卖家中介上传及认证 :return: """ self.seller_agent.mobile_approve_seller_agent("张鹏飞", "大农科技") self.tool.operator_approve_seller_agent("18380581401", True) def test0009(self): """ app卖家中介绑定客服,地推 :return: """ self.pa.promoter_bind_seller_agent(self.user.user_id) def test0007(self): """ app卖家发布场--买家感兴趣--客服邀请上传资质--买家上传资质--客服审核资质 :return: """ farm_id = self.seller_agent.mobile_seller_agent_add_farm( "调试农场名", "种植", "南澳大利亚", "2000万-3500万", "5000亩-10000亩", language='zh') # farm_id = self.buyeraction.app_get_farm_id() order_no = self.appbuyeraction.app_get_order_no(farm_id) order_id = self.tool.query_order_id_by_order_no(order_no) self.service.service_send_auth_url(order_id) self.appbuyeraction.app_buyer_resource_is_add(order_no) self.appbuyeraction.app_buyer_resource_add(farm_id, order_no) response_resource_list = self.service.service_buyer_resource_list( order_no, self.user.real_name) response_resource_list = json.loads(response_resource_list) resource_list = response_resource_list.get('content').get('datas') resource_id = None for resource in resource_list: resource_order_no = resource.get('orderNo') if resource_order_no == order_no: resource_id = resource.get('id') self.service.service_buyer_resource_audit(resource_id, 2, "接口测试不通过") def test0010(self): """ app农场列表 :return: """ print(self.appbuyeraction.app_get_farm_list()) def test0011(self): """ app农场详情 :return: """ self.appbuyeraction.app_get_farm_detail( self.appbuyeraction.app_get_farm_list_first_id()) def test0012(self): """ web端 卖家发布场--买家感兴趣--客服邀请上传资质--买家上传资质--客服审核资质 :return: """ farm_id = self.seller_agent.web_seller_agent_add_farm("调试农场名", "种植", "南澳大利亚", "2000万-3500万", "5000亩-10000亩", language='zh') order_no = self.webbuyeraction.web_get_order_no(farm_id) order_id = self.tool.query_order_id_by_order_no(order_no) self.service.service_send_auth_url(order_id) self.webbuyeraction.web_buyer_resource_is_add(order_no) self.webbuyeraction.web_buyer_resource_add(farm_id, order_no) response_resource_list = self.service.service_buyer_resource_list( order_no, self.user.real_name) response_resource_list = json.loads(response_resource_list) resource_list = response_resource_list.get('content').get('datas') resource_id = None for resource in resource_list: resource_order_no = resource.get('orderNo') if resource_order_no == order_no: resource_id = resource.get('id') self.service.service_buyer_resource_audit(resource_id, 2, "接口测试不通过") def test0013(self): """ app查询是都显示认证提示 :return: """ self.appbuyeraction.app_buyer_update_show_auth() def test0014(self): """ 添加订阅规则 :return: """ self.appbuyeraction.app_buyer_subscribe_add() def test0015(self): """ 订阅规则详情 :return: """ self.appbuyeraction.app_buyer_subscribe_detail() def test0016(self): """ 修改订阅规则 :return: """ self.appbuyeraction.app_buyer_subscribe_update()
class PromoterAction(object): def __init__(self, promoter): self.log = Log('PromoterAction') self.promoter = promoter self.data_sso = Config('sso').data self.data_trade = Config('trade').data self.data_sms = Config('sms').data self.request = Request() self.tool = Tool() self.ps = 10 def promoter_bind_seller_agent(self, seller_agent_id): bind_data = {'sellerAgencyId': str(seller_agent_id), "_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id} response = self.request.post(url='http://dev.trade.worldfarm.com/mobile/intermediary/bind', data=bind_data) json_response = json.loads(response) if json_response["status"] == "OK": pass elif json_response["status"] == "ERROR": json_response["errorMsg"] == "卖家中介已被其他用户绑定" else: raise Exception("status未返回OK或ERROR") def promoter_get_agent_detail(self, seller_agent_id): agent_data = {'sellerAgencyId': str(seller_agent_id), "_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id} self.request.post(url='http://dev.trade.worldfarm.com/mobile/intermediary/detail', data=agent_data) def promoter_get_own_detail(self): agent_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id} detail = self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/user/detail', data=agent_data) json_detail = json.loads(detail) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] birthday = json_detail["content"]["birthday"]/1000 birthday_string = time.strftime("%Y-%m-%d", time.localtime(birthday)) assert employee_info["birthday"] == birthday_string assert employee_info["head_img"] == json_detail["content"]["headImg"] assert employee_info["mobile"] == json_detail["content"]["mobile"] assert employee_info["mobile_region"] == json_detail["content"]["mobileRegion"] assert employee_info["real_name"] == json_detail["content"]["realName"] def promoter_update_birthday(self, birthday): birthday_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "birthday": birthday} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/user/update-birthday', data=birthday_data) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] assert employee_info['birthday'] == birthday def promoter_update_head_img(self, head_img='http://zyp-farm-2.oss-ap-southeast-1.aliyuncs.com' '/data/farm/head/1530012246905.png'): img_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "headImg": head_img} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/user/update-head-img', data=img_data) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] assert employee_info['head_img'] == head_img def promoter_update_mobile(self, mobile, mobile_region=86): mobile_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "mobileRegion": str(mobile_region), "mobile": str(mobile)} response = self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/user/update-mobile', data=mobile_data) json_response = json.loads(response) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] if json_response["status"] == "OK": assert employee_info['mobile_region'] == str(mobile_region) assert employee_info['mobile'] == str(mobile) elif json_response["status"] == "ERROR": assert json_response["errorMsg"] == "该手机号已存在" else: raise Exception("status未返回OK或ERROR") def promoter_update_real_name(self, real_name): real_name_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "realName": real_name} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/user/update-real-name', data=real_name_data) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] assert employee_info['real_name'] == str(real_name) def promoter_update_sex(self, sex): gender = {"男": 1, "女": 2} real_name_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "sex": gender[sex]} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/user/update-sex', data=real_name_data) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] assert employee_info['sex'] == gender[sex] def promoter_update_signature(self, signature='这家伙很懒什么都没留下'): signature_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "signature": signature} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/user/update-signature', data=signature_data) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] assert employee_info['signature'] == signature def promoter_add_visa(self, visa_time, expiry_time, visa_img_url): visa_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "visaTime": visa_time, "expiryTime": expiry_time, "visaImgUrl": visa_img_url} response = self.request.post(url='http://dev.trade.worldfarm.com/mobile/visa/add', data=visa_data) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] json_response = json.loads(response) if json_response["status"] == "OK": assert employee_info['visa_time'] == visa_time assert employee_info['expiry_time'] == expiry_time assert employee_info['url'] == visa_img_url elif json_response["status"] == "ERROR": assert json_response['errorMsg'] == "用户已添加签证信息,不能重复添加" else: raise Exception("status未返回OK或ERROR") def promoter_visa_detail(self): visa_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id} visa_detail = self.request.post(url='http://dev.trade.worldfarm.com/mobile/visa/detail', data=visa_data) json_detail = json.loads(visa_detail) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] visa_time_unix = json_detail['content']['visaTime'] / 1000 expiry_time_unix = json_detail['content']['expiryTime'] / 1000 visa_time = time.strftime("%Y-%m-%d", time.localtime(visa_time_unix)) expiry_time = time.strftime("%Y-%m-%d", time.localtime(expiry_time_unix)) assert employee_info['visa_time'] == visa_time assert employee_info['expiry_time'] == expiry_time assert employee_info['url'] == json_detail['content']['visaImgUrl'] def promoter_update_visa(self, visa_time, expiry_time, visa_img_url): visa_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "visaTime": visa_time, "expiryTime": expiry_time, "visaImgUrl": visa_img_url} self.request.post(url='http://dev.trade.worldfarm.com/mobile/visa/update', data=visa_data) employee_info = self.tool.query_employee_info_by_account(self.promoter.account)[0] assert employee_info['visa_time'] == visa_time assert employee_info['expiry_time'] == expiry_time assert employee_info['url'] == visa_img_url def promoter_query_agent_farm(self, seller_agent_id, name_like=''): query_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "sellerAgencyId": str(seller_agent_id), "nameLike": name_like} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/im/send-farm/list', data=query_data) def promoter_add_potential_agent_remark(self, seller_agent_id, remark): remark_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "sellerId": str(seller_agent_id), "remark": remark} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/potential-agency/add-remark', data=remark_data) def promoter_bind_potential_agent(self, potential_agent_id): potential_agent_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "agencyId": str(potential_agent_id)} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/potential-agency/bind', data=potential_agent_data) def promoter_query_potential_agent_detail(self, potential_agent_id): potential_agent_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "sellerId": str(potential_agent_id)} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/potential-agency/detail', data=potential_agent_data) def promoter_query_potential_agent_list(self, sort_code=2, sort_type='desc', lng='', lat='', pn=1, ps=20): query_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "sortCode": sort_code, "sortType": sort_type, "lat": lat, "lng": lng, "pn": pn, "ps": ps} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/potential-agency/list', data=query_data) def promoter_query_farm_dynamic_list(self, lng=133.8713537, lat=-23.6993532, pn=1, ps=20): query_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "lat": lat, "lng": lng, "pn": pn, "ps": ps} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/dynamic/list', data=query_data) def promoter_bind_agent_list(self, sort_code=1): sort_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "sortCode": sort_code} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/bind/list', data=sort_data) def promoter_bind_agent_detail(self, seller_agent_id, lng=133.8713537, lat=-23.6993532): query_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "lat": lat, "lng": lng, "sellerAgencyId": seller_agent_id} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/bind/detail', data=query_data) def promoter_bind_agent_update_remark(self, seller_agent_id, remark): remark_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "remark": remark, "sellAgencyId": seller_agent_id} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/bind/update-remark', data=remark_data) def promoter_query_farm_detail(self, farm_id, pn=1, ps=20): farm_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "farmId": farm_id, "pn": pn, "ps": ps} self.request.post(url='http://dev.trade.worldfarm.com/mobile/promoter/farm/detail', data=farm_data) def promoter_query_buyer_list(self, farm_id, seller_agent_id, pn=1, ps=20): farm_data = {"_tk_": self.promoter.token, "_deviceId_": self.promoter.device_id, "farmId": farm_id, "sellerAgencyId": seller_agent_id, "pn": pn, "ps": ps} self.request.post(url='http://dev.trade.worldfarm.com/mobile/order/promotion/buyer-list', data=farm_data)
class TranslatorAction(object): def __init__(self, translator): self.log = Log('TranslatorAction') self.translator = translator self.data_sso = Config('sso').data self.data_trade = Config('trade').data self.data_sms = Config('sms').data self.data_base = DataBaseOperate() self.request = Request() self.tool = Tool() def translator_query_translate_list(self, farm_type=None, key_word=None): """ 已发布农场-待翻译农场列表 :param farm_type: 详见farm_types字典 :param key_word: 农场名称或农场地址 :return: 返回与关键字匹配的已发布待翻译农场里列表 """ farm_types = { '休闲': 1, '畜牧': 2, '养殖': 2, '酒庄': 3, '葡萄园': 3, '林木': 4, '狩猎': 4, '综合': 5, '种植': 6 } search_data = { "search": key_word, "_tk_": self.translator.token, "_deviceId_": self.translator.device_id } if farm_type: search_data["type"] = farm_types[farm_type] else: search_data["type"] = "" response = self.request.post( url='http://dev.trade.worldfarm.com/admin/farm/translate-list', data=search_data) json_response = json.loads(response) if json_response["status"] == "OK": to_translate_list = json_response["content"]["datas"] farm_id_set = set([farm["id"] for farm in to_translate_list]) translate_list_data = self.data_base.operate( '39.104.28.40', 'farm-trade', 'SELECT id FROM t_farm WHERE language_type != 3') data_base_id = [farm["id"] for farm in translate_list_data] assert farm_id_set.issubset(data_base_id) return to_translate_list else: raise Exception("Error: %s" % json_response["errorMsg"]) def translator_query_translate_farm_detail(self, farm_id): """ 已发布农场-待翻译农场详情 :param farm_id: 已发布待翻译农场id :return: 返回对应id农场详情 """ response = self.request.get( url='http://dev.trade.worldfarm.com' '/admin/farm/translate-detail/%s?_tk_=%s&_deviceId_=%s' % (str(farm_id), self.translator.token, self.translator.device_id)) json_response = json.loads(response) if json_response["status"] == "OK": farm_json = json_response["content"] farm_data_base = self.tool.query_farm_detail_by_farm_id(farm_id)[0] assert farm_json["address"] == farm_data_base["address"] assert farm_json["addressEn"] == farm_data_base["address_en"] assert farm_json["area"] == farm_data_base["area"] assert farm_json["areaCode"] == farm_data_base["area_code"] assert farm_json["farmName"] == farm_data_base["farm_name"] assert farm_json["farmNameEn"] == farm_data_base["farm_name_en"] assert farm_json["id"] == farm_data_base["id"] assert farm_json["languageType"] == farm_data_base["language_type"] assert farm_json["lat"] == farm_data_base["lat"] assert farm_json["lng"] == farm_data_base["lng"] assert farm_json["totalPrice"] == farm_data_base["total_price"] assert farm_json["type"] == farm_data_base["type"] assert farm_json["unitCode"] == farm_data_base["unit_code"] assert farm_json["content"].replace( '\\', '') == farm_data_base["content"].replace('\\', '') return farm_json else: raise Exception("Error: %s" % json_response["errorMsg"]) def translator_query_published_farm_detail(self): """ :return: """ data = { "_tk_": self.translator.token, "_deviceId_": self.translator.device_id } response = self.request.post( url='http://dev.trade.worldfarm.com/admin/farm/published-detail', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass else: raise Exception("Error: %s" % json_response["errorMsg"]) def translator_query_published_farm_list(self): """ :return: """ data = { "_tk_": self.translator.token, "_deviceId_": self.translator.device_id } response = self.request.post( url='http://dev.trade.worldfarm.com/admin/farm/published-detail', data=data) json_response = json.loads(response) if json_response["status"] == "OK": pass else: raise Exception("Error: %s" % json_response["errorMsg"])
def __init__(self, farm_name="自动化默认农场名", state_name="北部地区", farm_type="综合", area_range="500亩以下", price_range="500万以下"): farm_type_dict = { "休闲": 1, "畜牧": 2, "养殖": 2, "种植": 6, "酒庄": 3, "葡萄园": 3, "林木": 4, "狩猎": 4, "综合": 5 } farm_area_dict = { "500亩以下": self.fake.random_int(1, 82), "500亩-5000亩": self.fake.random_int(83, 823), "5000亩-10000亩": self.fake.random_int(824, 1647), "10000亩-50000亩": self.fake.random_int(1648, 8236), "50000亩以上": self.fake.random_int(8237, 16473) } total_price_dict = { "500万以下": self.fake.random_int(1, 980392), "500万-2000万": self.fake.random_int(1020408, 3921568), "2000万-3500万": self.fake.random_int(4081632, 6862745), "3500万-5000万": self.fake.random_int(7142857, 9803921), "5000万以上": self.fake.random_int(10204081, 19607843) } city = Tool().query_random_city(state_name) self.farm_name = farm_name self.farm_name_en = self.fake_en.name() + " Farm" self.L.logger.debug("中文农场名 为 %s" % self.farm_name) self.L.logger.debug("英文农场名 为 %s" % self.farm_name_en) self.farm_type = farm_type_dict[farm_type] self.L.logger.debug("农场类型 为 %s %s" % (self.farm_type, farm_type)) city_name = city[0] self.L.logger.debug("农场的州-市 为 %s %s" % (state_name, city_name)) self.farm_address = city[1]["address"] self.L.logger.debug("中文农场地址 为 %s" % self.farm_address) self.farm_address_en = city[1]["address"] self.L.logger.debug("英文农场地址 为 %s" % self.farm_address_en) self.lat = city[1]["lat"] self.L.logger.debug("农场维度lat 为 %s" % self.lat) self.lng = city[1]["lng"] self.L.logger.debug("农场经度lng 为 %s" % self.lng) self.nation_id = 25 self.L.logger.debug("农场的nationId 为 %d" % self.nation_id) self.province_id = city[1]["state"] self.L.logger.debug("农场的provinceId 为 %d" % self.province_id) self.city_id = city[1]["city"] self.L.logger.debug("农场的cityId 为 %d" % self.city_id) self.area = farm_area_dict[area_range] self.L.logger.debug("农场的面积 为 %s 英亩" % str(self.area)) self.total_price = total_price_dict[price_range] self.L.logger.debug("农场的总价 为 %s 澳元" % str(self.total_price)) self.unitCode = "AUD" self.L.logger.debug("农场的货币单位 为 %s" % self.unitCode) self.unit_price = self.total_price / self.area self.L.logger.debug("农场的单价 为 %s 澳元" % str(self.unit_price)) self.water_rights = "中文水权描述:" + self.fake.text().replace('\n', ' ') self.L.logger.debug(self.water_rights) self.water_rights_en = "英文水权描述:" + self.fake_en.text().replace( '\n', ' ') self.L.logger.debug(self.water_rights_en) self.regulations = "中文土地使用规定:" + self.fake.text().replace('\n', ' ') self.L.logger.debug(self.regulations) self.regulations_en = "英文土地使用规定:" + self.fake_en.text().replace( '\n', ' ') self.L.logger.debug(self.regulations_en) self.rainfall = self.fake.random_int(20, 1000) self.L.logger.debug("降雨量 %s毫升/年" % self.rainfall) self.disadvantage = "中文杂草和虫害:" + self.fake.text().replace('\n', ' ') self.L.logger.debug(self.disadvantage) self.disadvantage_en = "英文杂草和虫害:" + self.fake_en.text().replace( '\n', ' ') self.L.logger.debug(self.disadvantage_en) self.area_code = 'mu' self.L.logger.debug("中文面积单位: %s" % self.area_code) self.area_code_en = 'acre' self.L.logger.debug("英文面积单位: %s" % self.area_code_en) self.soil_ph = 3 #float(self.fake.random_int(-10, 150)/10) self.L.logger.debug("土壤PH值: %s" % self.soil_ph) self.soil_type = self.fake.random_int(1, 3) redis = Redis() self.images = '[{"type":"1", ' \ '"url":"' + redis.get("image%s" % str(self.fake.random_int(1, 75))) + '"},' \ '{"type":"2", ' \ '"url":"' + redis.get("image%s" % str(self.fake.random_int(1, 75))) + '"},' \ '{"type":"3", ' \ '"url":"' + redis.get("image%s" % str(self.fake.random_int(1, 75))) + '"},' \ '{"type":"4", ' \ '"url":"' + redis.get("image%s" % str(self.fake.random_int(1, 75))) + '"}]' self.L.logger.debug("农场Banner 为 %s " % str(self.images)) self.content = '[{"type":"1", ' \ '"value":"' + redis.get("image%s" % str(self.fake.random_int(1, 75))) + '"},'\ '{"type":"2", ' \ '"value":"' + self.fake.text().replace("\n", " ") + '"},' \ '{"type":"1", ' \ '"value":"' + redis.get("image%s" % str(self.fake.random_int(1, 75))) + '"},' \ '{"type":"2", ' \ '"value":"' + self.fake.text().replace("\n", " ") + '"}]' self.L.logger.debug("中文农场介绍 为 %s " % str(self.content)) self.content_en = '[{"type":"1", ' \ '"value":"' + redis.get("image%s" % str(self.fake.random_int(1, 75))) + '"},'\ '{"type":"2", ' \ '"value":"' + self.fake_en.text().replace("\n", " ") + '"},' \ '{"type":"1", ' \ '"value":"' + redis.get("image%s" % str(self.fake.random_int(1, 75))) + '"},' \ '{"type":"2", ' \ '"value":"' + self.fake_en.text().replace("\n", " ") + '"}]' self.L.logger.debug("英文农场介绍 为 %s " % str(self.content_en))
class WebBuyerAction(object): def __init__(self, buyer): """ 初始化方法的一个常用数据 :param buyer: 传的是一个用户对象 """ self.log = Log('buyer') self.buyer = buyer self.data_sso = Config('sso').data self.data_trade = Config('trade').data self.data_sms = Config('sms').data self.request = Request() self.tool = Tool() self.ps = 10 def web_buyer_update_user(self, real_name, sex, company_name, company_post, head_img=None): """ 修改个人信息 :param real_name: 名字 :param sex:性别, 男或女 :param company_name: 公司名称 :param company_post: 公司职位 :param head_img: 头像 :return: """ gender = {'男': 1, '女': 2} update_data = self.data_trade['http://dev.trade.worldfarm.com']['/web/buyer/user/update'] update_data["head_img"] = head_img update_data["realName"] = real_name update_data["sex"] = gender[sex] update_data["companyName"] = company_name update_data["companyPosition"] = company_post update_data["_tk_"] = self.buyer.token update_data["_deviceId_"] = self.buyer.device_id self.request.post(url="http://dev.trade.worldfarm.com/web/buyer/user/update", data=update_data) user_info = self.tool.query_user_info_by_mobile(self.buyer.mobile)[0] assert user_info["real_name"] == real_name assert user_info["sex"] == gender[sex] assert user_info["company_name"] == company_name assert user_info["company_position"] == company_post assert user_info["head_img"] == head_img self.log.logger.debug("姓名 更新为 %s" % real_name) self.log.logger.debug("性别 更新为 %s" % sex) self.log.logger.debug("公司 更新为 %s" % company_name) self.log.logger.debug("职位 更新为 %s" % company_post) self.log.logger.debug("头像 更新为 %s" % head_img) def web_change_password(self, newpwd): """ 修改密码 :param newpwd: 新密码,6-15位数字和字母的组合 :return: """ data = self.data_sso.get('http://dev.sso.worldfarm.com').get('/web/sso/update-pwd') data['mobile'] = self.buyer.mobile data['password'] = self.buyer.password data['newPassword'] = newpwd data['token'] = self.buyer.token data["_deviceId_"] = self.buyer.device_id r = self.request.post(url='http://dev.sso.worldfarm.com/web/sso/update-pwd', data=data).decode('utf-8') print(r) self.log.logger.debug("修改密码为: %s" % newpwd) def web_get_farm_list(self, city_id=None, farm_type=None, min_price=None, max_price=None, min_area=None, max_area=None, sort_code=2): """ 获取农场列表 :return: """ data = self.data_trade['http://dev.trade.worldfarm.com']['/web/buyer/farm/list'] data['ps'] = self.ps data['provinceId'] = city_id data['farmTypeList'] = farm_type data['minPrice'] = min_price data['maxPrice'] = max_price data['minArea'] = min_area data['maxArea'] = max_area data['sortCode'] = sort_code data['_language_'] = self.buyer.language farm_list = Request().post(url="http://dev.trade.worldfarm.com/web/buyer/farm/list", data=data) farm_list_json = json.loads(farm_list).get('content').get('datas') query_farm_list = self.tool.query_farm_list() for i in range(len(farm_list_json)): assert farm_list_json[i].get('id') == query_farm_list[i].get('farm_id') assert farm_list_json[i].get('type') == query_farm_list[i].get('type') assert farm_list_json[i].get('lng') == query_farm_list[i].get('lng') assert farm_list_json[i].get('lat') == query_farm_list[i].get('lat') # assert farm_list_json[i].get('imgLisst') == "[" + query_farm_list[i].get('url') + "]" return farm_list_json def web_get_farm_detail(self, farm_id): """ 获取农场详情 :param farm_id: 农场ID :return: """ data = self.data_trade['http://dev.trade.worldfarm.com']['/web/buyer/farm/detail'] data['farmId'] = farm_id data['_language_'] = self.buyer.language farm_detail = Request().post(url="http://dev.trade.worldfarm.com/web/buyer/farm/detail", data=data) farm_detail_json = json.loads(farm_detail) query_farm_detail = self.tool.query_farm_detail_by_farm_id(farm_id) assert farm_detail_json.get('content').get('id') == query_farm_detail[0].get('id') return farm_detail def web_get_farm_list_first_id(self): """ 获取农场的ID :return: """ farm_detail = self.web_get_farm_detail(self.web_get_farm_list()[0]['id']) farm_id = json.loads(farm_detail)['content']['id'] return farm_id def web_get_customer_id_by_farm(self, farm_id): """ 获取农场对应的客服ID :param farm_id: 农场ID :return: """ farm_detail = self.web_get_farm_detail(farm_id) farm_detail_json = json.loads(farm_detail) customer_service_id = farm_detail_json['content']['customerServiceId'] return customer_service_id def web_get_order_no(self, farm_id): """ 生成订单,并返回订单号 :param farm_id: 农场ID :return: 订单No """ data = self.data_trade['http://dev.trade.worldfarm.com']['/web/order/submit-order'] data['farmId'] = farm_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language order_no = Request().post(url="http://dev.trade.worldfarm.com/web/order/submit-order", data=data) order_no_json = json.loads(order_no) return order_no_json['content']['orderNo'] def web_get_customer_account(self, farm_id): """ 获取客服IM返回客服的登录账户 :param farm_id: 农场ID :return: """ data = self.data_sms['http://dev.sms.worldfarm.com']['/web/im-auth/buyer/get/service-accid'] data['userId'] = self.web_get_customer_id_by_farm(farm_id) data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language service_id = Request().post(url="http://dev.sms.worldfarm.com" "/web/im-auth/buyer/get/service-accid", data=data) service_id = str(json.loads(service_id)['content']).split('@')[0] account = self.tool.query_employee_user_no_by_user_id(service_id) return account def web_buyer_sale_bind(self, sale_id): """ 绑定销售ID :param sale_id: 销售ID :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/buyer/user/sale-bind') data['saleId'] = sale_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language re = Request().post(url="http://dev.trade.worldfarm.com/web/buyer/user/sale-bind", data=data) query_sale_id = self.tool.query_sale_id_by_user_id(self.buyer.user_id)[0].get('salesman_id') assert sale_id == query_sale_id return re def web_buyer_query_sale(self, sale_id): """ 查询销售 :param sale_id: 销售ID :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/buyer/user/query-sale') data['saleId'] = sale_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language re = Request().post(url="http://dev.trade.worldfarm.com/web/buyer/user/query-sale", data=data) query_sale_id = self.tool.query_sale_id_by_user_id(self.buyer.user_id)[0].get('salesman_id') assert sale_id == query_sale_id return re def web_buyer_sale_bind_update(self, sale_id): """ 更新销售ID :param sale_id: 销售ID :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/buyer/user/sale-bind-update') data['saleId'] = sale_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language re = Request().post(url="http://dev.trade.worldfarm.com/web/buyer/user/sale-bind-update", data=data) query_sale_id = self.tool.query_sale_id_by_user_id(self.buyer.user_id)[0].get('salesman_id') assert sale_id == query_sale_id return re def web_buyer_user_detail(self): """ 查询用户的detail :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/buyer/user/detail') if data is None: data = {} data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language user_detail = Request().post(url="http://dev.trade.worldfarm.com/web/buyer/user/detail", data=data) user_detail_content = eval(user_detail).get('content') query_user_detail = self.tool.query_user_detail_by_user_id(self.buyer.user_id)[0] assert user_detail_content.get('realName') == query_user_detail.get('real_name') return user_detail def web_buyer_resource_add(self, farm_id, order_no): """ 上传购买资质 :param farm_id: 农场ID :param order_no: 订单的NO :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/buyer-resource/add') data['farmId'] = farm_id data['orderNo'] = order_no data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post(url="http://dev.trade.worldfarm.com/web/buyer-resource/add", data=data) return r def web_buyer_resource_detail(self, order_no): """ 订单的购买资质详情 :param order_no: 订单号 :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/buyer-resource/detail') data['orderNo'] = order_no data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post(url="http://dev.trade.worldfarm.com/web/buyer-resource/detail", data=data) return r def web_buyer_resource_is_add(self, order_no): """ 判断订单是否可以上传购买资质 :param order_no: 订单号 :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/buyer-resource/is-add') data['orderNo'] = order_no data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post(url="http://dev.trade.worldfarm.com/web/buyer-resource/is-add", data=data) return r def web_buyer_resource_list(self, order_no, status, buyer_name): """ 购买资质列表 :param order_no: 订单号 :param status: 资质状态 :param buyer_name: 买家姓名 :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/buyer-resource/resource-list') data['orderNo'] = order_no data['status'] = status data['buyerName'] = buyer_name data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post(url="http://dev.trade.worldfarm.com/web/buyer-resource/resource-list", data=data) return r def web_buyer_farm_recommend_list(self, farm_id): """ 农场相关推荐 :param farm_id: 农场ID :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/buyer/farm/recommend-list') data['farmId'] = farm_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post(url="http://dev.trade.worldfarm.com/web/buyer/farm/recommend-list", data=data) return r def web_buyer_order_del(self, order_no_list=None): """ 买家删除订单 :param order_no_list: 使用,分割,eg:1,2,3 :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/order/del') data['orderNoList'] = order_no_list data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post(url="http://dev.trade.worldfarm.com/web/order/del", data=data) return r def web_buyer_order_list(self, type_no=0): """ 感兴趣列表 :param type_no: 0,1;默认填0,1表示查询的list是可以删除的order :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get('/web/order/list') data['type'] = type_no data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post(url="http://dev.trade.worldfarm.com/web/order/list", data=data) return r
class SellerAgent(object): def __init__(self, seller_agent): self.log = Log('sellerAgent') self.sellerAgent = seller_agent self.data_sso = Config('sso').data self.data_trade = Config('trade').data self.data_sms = Config('sms').data self.request = Request() self.tool = Tool() self.ps = 10 def mobile_approve_seller_agent(self, real_name, company_name): approve_info = self.tool.query_approve_status(self.sellerAgent.mobile) if approve_info: if approve_info[0]['status'] == 2: approve_data = self.data_trade[ 'http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/user/add'] approve_data["realName"] = real_name approve_data["companyName"] = company_name # approve_data["resource"] = resource approve_data["_tk_"] = self.sellerAgent.token approve_data["_deviceId_"] = self.sellerAgent.device_id self.request.post( url= "http://dev.trade.worldfarm.com/mobile/seller-agency/user/add", data=approve_data) self.log.logger.debug("中介姓名 更新为 %s" % real_name) self.log.logger.debug("中介公司 更新为 %s" % company_name) # self.log.logger.debug("中介资料 更新为 %s" % resource) else: raise Exception('手机号 %s 的用户, 认证状态为 %s, 1为待审核, 3为审核通过' % (str( self.sellerAgent.mobile), str(approve_info[0]['status']))) else: approve_data = self.data_trade['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/user/add'] approve_data["realName"] = real_name approve_data["companyName"] = company_name # approve_data["resource"] = resource approve_data["_tk_"] = self.sellerAgent.token approve_data["_deviceId_"] = self.sellerAgent.device_id self.request.post( url= "http://dev.trade.worldfarm.com/mobile/seller-agency/user/add", data=approve_data) self.log.logger.debug("中介姓名 更新为 %s" % real_name) self.log.logger.debug("中介公司 更新为 %s" % company_name) # self.log.logger.debug("中介资料 更新为 %s" % resource) def mobile_seller_agent_add_farm(self, farm_name, farm_type, farm_state, price_range, are_range, language): data = self.data_trade['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farm/add-farm'] fm = Farm(farm_name=farm_name, farm_type=farm_type, state_name=farm_state, price_range=price_range, area_range=are_range) fmr = Farmer() data['farmName'] = fm.farm_name data['provinceId'] = fm.province_id data['cityId'] = fm.city_id data['area'] = fm.area data['totalPrice'] = fm.total_price data['images'] = fm.images data['type'] = fm.farm_type data['address'] = fm.farm_address data['lat'] = fm.lat data['lng'] = fm.lng data['content'] = fm.content data['headImg'] = fmr.head_img data['realName'] = fmr.real_name data['birthday'] = fmr.birthday data['mobile'] = fmr.mobile data['farmerAddress'] = fmr.farmer_address data['sex'] = fmr.sex data['ownedFarmerNum'] = fmr.owned_farmer_num data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['_language_'] = language user_id = self.tool.query_user_id_by_mobile(self.sellerAgent.mobile) farmId = Request().post( url= "http://dev.trade.worldfarm.com/mobile/seller-agency/farm/add-farm", data=data) add_farm = json.loads(farmId)['content'] farm_info = self.tool.query_latest_farm_info(user_id) # self.assertEqual(farm_info["address_en"], data['address']) # self.assertEqual(farm_info["area"], data['area']) # self.assertEqual(farm_info["farm_name_en"], data['farmName']) # self.assertEqual(farm_info["lat"], data['lat']) # self.assertEqual(farm_info["lng"], data['lng']) # self.assertEqual(farm_info["status"], 20) # self.assertEqual(farm_info["total_price"], data['totalPrice']) # self.assertEqual(farm_info["type"], data['type']) return add_farm def mobile_seller_agent_search_farm(self, keyWords, language): # 模糊搜索农场列表 data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/farm/search'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['keyWords'] = keyWords r = Request().post( url='http://dev.trade.worldfarm.com/mobile/farm/search', data=data) r_content = json.loads(r)['content'] query_search_farm_list = self.tool.query_farm_list_by_keywords( keyWords)[0] assert r_content[0] == query_search_farm_list def mobile_seller_agency_add_remark(self, farmId, remark, language): # 卖家中介新增备注 data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farm/add-remark'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['farmId'] = farmId data['remark'] = remark add = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farm/add-remark', data=data) add_remark = json.loads(add) # query_add_remark = self.tool.query_remark_by_farm_id(farmId) assert add_remark['status'] == 'OK' def mobile_seller_agency_close_farm(self, farmId, type, language): # 卖家中介关闭农场 data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farm/close'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['farmId'] = farmId data['type'] = type #30已售出50暂不销售 r = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farm/close', data=data) r_close = json.loads(r) query_close_farm = self.tool.query_close_farm_by_farm_id( self.sellerAgent.user_id) if r_close == { 'errorCode': '00030003', 'errorMsg': '农场已售出或者已关闭', 'status': 'ERROR' }: assert r_close['errorMsg'] == str('农场已售出或者已关闭') assert r_close['status'] == 'ERROR' else: assert r_close.get['farm_id'] == query_close_farm['id'] assert r_close['status'] == query_close_farm['status'] def mobile_seller_agency_close_farm_list(self, pn, language): # 卖家中介关闭农场列表 data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farm/closed-list'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['pn'] = pn r = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farm/closed-list', data=data) r_close = json.loads(r).get('content').get('datas') query_close_list = self.tool.query_close_list_by_seller_agency_id( self.sellerAgent.user_id) for i in range(len(r_close)): assert r_close[i].get('id') == query_close_list[i].get('id') assert r_close[i].get('imgUrl') == query_close_list[i].get( 'img_url') assert r_close[i].get('askNum') == query_close_list[i].get( 'ask_num') def mobile_seller_agency_farm_detail(self, lng, lat, farmId, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farm/detail'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['lng'] = lng data['lat'] = lat data['farmId'] = farmId r_detail = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farm/detail', data=data) query_farm_detail = self.tool.query_farm_detail_by_farm_id(farmId)[0] json_detail = json.loads(r_detail) assert json_detail['content']['id'] == query_farm_detail['id'] assert json_detail['content']['farmName'] == query_farm_detail[ 'farm_name'] assert json_detail['content']['address'] == query_farm_detail[ 'address'] assert json_detail['content']['nationId'] == query_farm_detail[ 'nation_id'] # assert json_detail['content']['passBuyerCount'] == query_farm_detail[''] assert json_detail['content']['soilPh'] == query_farm_detail['soil_ph'] def mobile_seller_agency_im_send_farm_list(self, nameLike, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farm/im/send-farm/list'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['nameLike'] = nameLike r = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farm/im/send-farm/list', data=data) r_farm_list = json.loads(r).get('content').get('datas') query_farm_list = self.tool.query_farm_list_by_seller_agency_id_or_name( nameLike, self.sellerAgent.user_id) for i in range(len(r_farm_list)): assert r_farm_list[i].get('type') == query_farm_list[i].get('type') # assert r_farm_list[i].get('totalPrice') == query_farm_list[i].get('total_price') def mobile_seller_agency_farm_list(self, sortCode, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farm/list'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['sortCode'] = sortCode r = Request().post( url='http://dev.trade.worldfarm.com/mobile/seller-agency/farm/list', data=data) r_farm_list = json.loads(r).get('content').get('datas') query_farm_list = self.tool.query_farm_list_by_seller_agency_id( self.sellerAgent.user_id) for i in range(len(r_farm_list)): assert r_farm_list[i].get('id') == query_farm_list[i].get('id') # assert r_farm_list[i].get('farmName') == query_farm_list[i].get('farm_name') assert r_farm_list[i].get('askNum') == query_farm_list[i].get( 'ask_num') def mobile_seller_agency_map_list(self, lng, lat, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farm/map-list'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['lng'] = lng data['lat'] = lat r = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farm/map-list', data=data) r_farm_list = json.loads(r).get('content').get('datas') query_farm_list = self.tool.query_map_list_by_seller_agency_id( self.sellerAgent.user_id) for i in range(len(r_farm_list)): assert r_farm_list[i].get('id') == query_farm_list[i].get('id') # assert r_farm_list[i].get('farmName') == query_farm_list[i].get('farm_name') assert r_farm_list[i].get('askNum') == query_farm_list[i].get( 'ask_num') # def seller_agency_update_farm(self, nationId, provinceId, cityId, farmName, type, area, totalPrice, # lng, lat, address, images, content, farmId, language): # data = Config('trade').data['http://dev.trade.worldfarm.com']['/mobile/seller-agency/farm/update-farm'] # data['language'] = language # data['_tk_'] = self.sellerAgent.token # data['_deviceId_'] = self.sellerAgent.device_id # data['nationId'] = nationId # data['provinceId'] = provinceId # data['cityId'] = cityId # data['farmName'] = farmName # data['totalPrice'] = totalPrice # data['address'] = address # data['content'] = content # data['area'] = area # data['farmId'] = farmId # data['type'] = type # data['lng'] = lng # data['lat'] = lat # data['images'] = images # r = Request().post(url='http://dev.trade.worldfarm.com/mobile/seller-agency/farm/update-farm', data=data) # r_update_farm = json.loads(r) # assert r_update_farm['status'] == 'OK' def mobile_seller_agency_update_farm(self, farm_id, update_data, language): data = { "_tk_": self.sellerAgent.token, "_deviceId_": self.sellerAgent.device_id, "farmId": farm_id } r = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farm/detail', data=data) r_farm_detail = json.loads(r).get('content') for k, v in update_data.items(): r_farm_detail[k] = v r_farm_detail['_tk_'] = self.sellerAgent.token r_farm_detail['_deviceId_'] = self.sellerAgent.device_id r_farm_detail['language'] = language r_farm_detail['farmId'] = farm_id R = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farm/update-farm', data=r_farm_detail) r_update_farm = json.loads(R) assert r_update_farm['status'] == 'OK' def mobile_seller_agency_farmer_detail(self, farmId, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farmer/detail'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['farmId'] = farmId r_detail = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farmer/detail', data=data) query_farm_detail = self.tool.query_farmer_detail_by_farm_id(farmId)[0] json_detail = json.loads(r_detail) assert json_detail['content']['realName'] == query_farm_detail[ 'real_name'] # assert json_detail['content']['farmId'] == query_farm_detail['farm_id'] # assert json_detail['content']['address'] == query_farm_detail['address'] # assert json_detail['content']['nationId'] == query_farm_detail['nation_id'] # # assert json_detail['content']['passBuyerCount'] == query_farm_detail[''] # assert json_detail['content']['soilPh'] == query_farm_detail['soil_ph'] def mobile_seller_agency_farmer_update(self, farmId, realName, sex, birthday, mobile, headImg, farmerAddress, ownedFarmerNum, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/farmer/update'] data['language'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['realName'] = realName data['sex'] = sex data['birthday'] = birthday data['mobile'] = mobile data['headImg'] = headImg data['farmerAddress'] = farmerAddress data['ownedFarmerNum'] = ownedFarmerNum data['farmId'] = farmId r = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/farmer/update', data=data) r_update_farm = json.loads(r) assert r_update_farm['status'] == 'OK' def mobile_seller_agency_use_add(self, realName, companyName, resource, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/user/add'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['realName'] = realName data['companyName'] = companyName data['resource'] = resource r_detail = Request().post( url='http://dev.trade.worldfarm.com/mobile/seller-agency/user/add', data=data) json_detail = json.loads(r_detail) assert json_detail['status'] == 'OK' print(r_detail) def mobile_seller_agency_use_status(self, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/seller-agency/user/status'] if data is None: data = {} data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id r_detail = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/seller-agency/user/status', data=data) query_seller_agent_detail = self.tool.query_user_status_by_seller_agency_id( self.sellerAgent.user_id)[0] json_detail = json.loads(r_detail) assert json_detail['status'] == 'OK' assert json_detail['content'] == query_seller_agent_detail['status'] def mobile_seller_agency_farm_buyer_list(self, farmId, type, pn, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/order/seller-agency/farm/buyer-list'] # if data is None: # data = {} data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['farmId'] = farmId data['type'] = type data['pn'] = pn r_detail = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/order/seller-agency/farm/buyer-list', data=data) r_buyer_list = json.loads(r_detail).get('content').get('datas') query_user_list = self.tool.query_buyer_list_by_farm_id(farmId) for i in range(len(query_user_list)): assert r_buyer_list[i].get('buyerId') == query_user_list[i].get( 'buyer_id') def mobile_seller_agency_message_buyer_list(self, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/mobile/order/seller-agency/message/buyer-list'] # if data is None: # data = {} data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id r_detail = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/order/seller-agency/message/buyer-list', data=data) r_message_buyer_list = json.loads(r_detail).get('content').get('datas') query_user_list = self.tool.query_message_buyer_list_by_farm_id( self.sellerAgent.user_id) for i in range(len(r_message_buyer_list)): assert r_message_buyer_list[i].get( 'farmId') == query_user_list[i].get('farm_id') def web_seller_agent_add_farm(self, farm_name, farm_type, farm_state, price_range, are_range, language): data = self.data_trade['http://dev.trade.worldfarm.com'][ '/web/seller-agency/farm/add-farm'] fm = Farm(farm_name=farm_name, farm_type=farm_type, state_name=farm_state, price_range=price_range, area_range=are_range) fmr = Farmer() data['farmName'] = fm.farm_name data['provinceId'] = fm.province_id data['cityId'] = fm.city_id data['area'] = fm.area data['totalPrice'] = fm.total_price data['images'] = fm.images data['type'] = fm.farm_type data['address'] = fm.farm_address data['lat'] = fm.lat data['lng'] = fm.lng data['content'] = fm.content data['headImg'] = fmr.head_img data['realName'] = fmr.real_name data['birthday'] = fmr.birthday data['mobile'] = fmr.mobile data['farmerAddress'] = fmr.farmer_address data['sex'] = fmr.sex data['ownedFarmerNum'] = fmr.owned_farmer_num data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['_language_'] = language user_id = self.tool.query_user_id_by_mobile(self.sellerAgent.mobile) farmId = Request().post( url= "http://dev.trade.worldfarm.com/web/seller-agency/farm/add-farm", data=data) add_farm = json.loads(farmId)['content'] farm_info = self.tool.query_latest_farm_info(user_id) # self.assertEqual(farm_info["address_en"], data['address']) # self.assertEqual(farm_info["area"], data['area']) # self.assertEqual(farm_info["farm_name_en"], data['farmName']) # self.assertEqual(farm_info["lat"], data['lat']) # self.assertEqual(farm_info["lng"], data['lng']) # self.assertEqual(farm_info["status"], 20) # self.assertEqual(farm_info["total_price"], data['totalPrice']) # self.assertEqual(farm_info["type"], data['type']) return add_farm def web_seller_agency_add_remark(self, farmId, remark, language): # 卖家中介新增备注 data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/seller-agency/farm/add-remark'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['farmId'] = farmId data['remark'] = remark add = Request().post( url= 'http://dev.trade.worldfarm.com/web/seller-agency/farm/add-remark', data=data) add_remark = json.loads(add) query_add_remark = self.tool.query_remark_by_farm_id(farmId) assert add_remark['status'] == 'OK' # assert add_remark['farm_id'] == query_add_remark['id'] # assert add_remark['remark'] == query_add_remark['remark'] def web_seller_agency_close_farm(self, farmId, type, language): # 卖家中介关闭农场 data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/seller-agency/farm/close'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['farmId'] = farmId data['type'] = type # 30已售出50暂不销售 r = Request().post( url='http://dev.trade.worldfarm.com/web/seller-agency/farm/close', data=data) r_close = json.loads(r) query_close_farm = self.tool.query_close_farm_by_farm_id( self.sellerAgent.user_id) if r_close == { 'errorCode': '00030003', 'errorMsg': '农场已售出或者已关闭', 'status': 'ERROR' }: assert r_close['errorMsg'] == str('农场已售出或者已关闭') assert r_close['status'] == 'ERROR' else: assert r_close.get['farm_id'] == query_close_farm['id'] assert r_close['status'] == query_close_farm['status'] def web_seller_agency_close_farm_list(self, pn, language): # 卖家中介关闭农场列表 data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/seller-agency/farm/closed-list'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['pn'] = pn r = Request().post( url= 'http://dev.trade.worldfarm.com/web/seller-agency/farm/closed-list', data=data) r_close = json.loads(r).get('content').get('datas') query_close_list = self.tool.query_close_list_by_seller_agency_id( self.sellerAgent.user_id) for i in range(len(r_close)): assert r_close[i].get('id') == query_close_list[i].get('id') assert r_close[i].get('imgUrl') == query_close_list[i].get( 'img_url') assert r_close[i].get('askNum') == query_close_list[i].get( 'ask_num') def web_seller_agency_farm_detail(self, lng, lat, farmId, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/seller-agency/farm/detail'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['lng'] = lng data['lat'] = lat data['farmId'] = farmId r_detail = Request().post( url='http://dev.trade.worldfarm.com/web/seller-agency/farm/detail', data=data) query_farm_detail = self.tool.query_farm_detail_by_farm_id(farmId)[0] json_detail = json.loads(r_detail) assert json_detail['content']['id'] == query_farm_detail['id'] assert json_detail['content']['farmName'] == query_farm_detail[ 'farm_name'] assert json_detail['content']['address'] == query_farm_detail[ 'address'] assert json_detail['content']['nationId'] == query_farm_detail[ 'nation_id'] # assert json_detail['content']['passBuyerCount'] == query_farm_detail[''] assert json_detail['content']['soilPh'] == query_farm_detail['soil_ph'] def web_seller_agency_im_send_farm_list(self, nameLike, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/seller-agency/farm/im/send-farm/list'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['nameLike'] = nameLike r = Request().post( url= 'http://dev.trade.worldfarm.com/web/seller-agency/farm/im/send-farm/list', data=data) r_farm_list = json.loads(r).get('content').get('datas') query_farm_list = self.tool.query_farm_list_by_seller_agency_id_or_name( nameLike, self.sellerAgent.user_id) for i in range(len(r_farm_list)): assert r_farm_list[i].get('type') == query_farm_list[i].get('type') def web_seller_agency_farm_list(self, sortCode, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/seller-agency/farm/list'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['sortCode'] = sortCode r = Request().post( url='http://dev.trade.worldfarm.com/web/seller-agency/farm/list', data=data) r_farm_list = json.loads(r).get('content').get('datas') query_farm_list = self.tool.query_farm_list_by_seller_agency_id( self.sellerAgent.user_id) for i in range(len(r_farm_list)): assert r_farm_list[i].get('id') == query_farm_list[i].get('id') # assert r_farm_list[i].get('farmName') == query_farm_list[i].get('farm_name') assert r_farm_list[i].get('askNum') == query_farm_list[i].get( 'ask_num') def web_seller_agency_update_farm(self, farm_id, update_data, language): data = { "_tk_": self.sellerAgent.token, "_deviceId_": self.sellerAgent.device_id, "farmId": farm_id } r = Request().post( url='http://dev.trade.worldfarm.com/web/seller-agency/farm/detail', data=data) r_farm_detail = json.loads(r).get('content') for k, v in update_data.items(): r_farm_detail[k] = v r_farm_detail['_tk_'] = self.sellerAgent.token r_farm_detail['_deviceId_'] = self.sellerAgent.device_id r_farm_detail['language'] = language R = Request().post( url= 'http://dev.trade.worldfarm.com/web/seller-agency/farm/update-farm', data=r_farm_detail) r_update_farm = json.loads(R) assert r_update_farm['status'] == 'OK' def web_seller_agency_farmer_detail(self, farmId, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/seller-agency/farmer/detail'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['farmId'] = farmId r_detail = Request().post( url= 'http://dev.trade.worldfarm.com/web/seller-agency/farmer/detail', data=data) query_farm_detail = self.tool.query_farmer_detail_by_farm_id(farmId)[0] json_detail = json.loads(r_detail) assert json_detail['content']['realName'] == query_farm_detail[ 'real_name'] # assert json_detail['content']['farmId'] == query_farm_detail['farm_id'] # assert json_detail['content']['address'] == query_farm_detail['address'] # assert json_detail['content']['nationId'] == query_farm_detail['nation_id'] # # assert json_detail['content']['passBuyerCount'] == query_farm_detail[''] # assert json_detail['content']['soilPh'] == query_farm_detail['soil_ph'] def web_seller_agency_farmer_update(self, farmId, update_data, language): data = { "_tk_": self.sellerAgent.token, "_deviceId_": self.sellerAgent.device_id, "farmId": farmId } r = Request().post( url= 'http://dev.trade.worldfarm.com/web/seller-agency/farmer/detail', data=data) r_farmer_detail = json.loads(r).get('content') for k, v in update_data.items(): r_farmer_detail[k] = v r_farmer_detail['_tk_'] = self.sellerAgent.token r_farmer_detail['_deviceId_'] = self.sellerAgent.device_id r_farmer_detail['language'] = language R = Request().post( url= 'http://dev.trade.worldfarm.com/web/seller-agency/farmer/update', data=r_farmer_detail) r_update_farm = json.loads(R) assert r_update_farm['status'] == 'OK' def web_seller_agency_use_add(self, realName, companyName, resource, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/seller-agency/user/add'] data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['realName'] = realName data['companyName'] = companyName data['resource'] = resource r_detail = Request().post( url='http://dev.trade.worldfarm.com/web/seller-agency/user/add', data=data) json_detail = json.loads(r_detail) assert json_detail['status'] == 'OK' print(r_detail) def web_seller_agency_use_status(self, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/seller-agency/user/status'] if data is None: data = {} data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id r_detail = Request().post( url='http://dev.trade.worldfarm.com/web/seller-agency/user/status', data=data) query_seller_agent_detail = self.tool.query_user_status_by_seller_agency_id( self.sellerAgent.user_id)[0] json_detail = json.loads(r_detail) assert json_detail['status'] == 'OK' assert json_detail['content'] == query_seller_agent_detail['status'] def web_seller_agency_farm_buyer_list(self, farmId, type, pn, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/order/seller-agency/farm/buyer-list'] # if data is None: # data = {} data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id data['farmId'] = farmId data['type'] = type data['pn'] = pn r_detail = Request().post( url= 'http://dev.trade.worldfarm.com/mobile/order/seller-agency/farm/buyer-list', data=data) r_buyer_list = json.loads(r_detail).get('content').get('datas') query_user_list = self.tool.query_buyer_list_by_farm_id(farmId) for i in range(len(query_user_list)): assert r_buyer_list[i].get('buyerId') == query_user_list[i].get( 'buyer_id') def web_seller_agency_message_buyer_list(self, language): data = Config('trade').data['http://dev.trade.worldfarm.com'][ '/web/order/seller-agency/message/buyer-list'] # if data is None: # data = {} data['_language_'] = language data['_tk_'] = self.sellerAgent.token data['_deviceId_'] = self.sellerAgent.device_id r_detail = Request().post( url= 'http://dev.trade.worldfarm.com/web/order/seller-agency/message/buyer-list', data=data) r_message_buyer_list = json.loads(r_detail).get('content').get('datas') query_user_list = self.tool.query_message_buyer_list_by_farm_id( self.sellerAgent.user_id) for i in range(len(r_message_buyer_list)): assert r_message_buyer_list[i].get( 'farmId') == query_user_list[i].get('farm_id')
class AppBuyerAction(object): def __init__(self, buyer): """ 初始化方法的一个常用数据 :param buyer: 传的是一个用户对象 """ self.log = Log('buyer') self.buyer = buyer self.data_sso = Config('sso').data self.data_trade = Config('trade').data self.data_sms = Config('sms').data self.request = Request() self.tool = Tool() self.ps = 10 def app_buyer_interest_or_not(self, farm_id): """ 买家加星或者取消加星 :param farm_id: 农场ID :return: 返回成功或者失败或者未返回则是抛异常 """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/interest/interest-or-not') data['farmId'] = farm_id data["_tk_"] = self.buyer.token data["_deviceId_"] = self.buyer.device_id data['_language_'] = self.buyer.language response = self.request.post( url= "http://dev.trade.worldfarm.com/mobile/buyer/interest/interest-or-not", data=data) json_response = json.loads(response) if json_response["status"] == "OK": return True elif json_response["status"] == "ERROR": json_response["errorMsg"] = "加星失败!" return False else: raise Exception("status未返回OK或ERROR") def app_buyer_batch_cancel_interest(self, farm_id_list): """ 批量取消加星 :param farm_id_list: 农场ID列表 :return: 返回成功或者失败或者未返回则是抛异常 """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/interest/batch-cancel-interest') data['farmIds'] = farm_id_list data["_tk_"] = self.buyer.token data["_deviceId_"] = self.buyer.device_id data['_language_'] = self.buyer.language response = self.request.post( url= "http://dev.trade.worldfarm.com/mobile/buyer/interest/batch-cancel-interest", data=data) json_response = json.loads(response) if json_response["status"] == "OK": return True elif json_response["status"] == "ERROR": json_response["errorMsg"] = "加星失败!" return False else: raise Exception("status未返回OK或ERROR") def app_buyer_interest_farm_list(self): """ 加星的列表,即感兴趣列表 :return: 正确返回农场列表,失败返回False """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/interest/interest-farm-list') data['ps'] = self.ps data['pn'] = 1 data["_tk_"] = self.buyer.token data["_deviceId_"] = self.buyer.device_id data['_language_'] = self.buyer.language response = self.request.post( url= "http://dev.trade.worldfarm.com/mobile/buyer/interest/interest-farm-list", data=data) json_response = json.loads(response) if json_response["status"] == "OK": return json_response elif json_response["status"] == "ERROR": json_response["errorMsg"] = "加载失败!" return False else: raise Exception("status未返回OK或ERROR") def app_buyer_get_banner_by_type(self, banner_type): """ 根据类型获取banner :param banner_type: banner的类型 :return: 返回banner """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/banner/get-by-type') data['type'] = banner_type data['ps'] = self.ps data['pn'] = 1 data['_language_'] = self.buyer.language response = self.request.post( url="http://dev.trade.worldfarm.com/mobile/banner/get-by-type", data=data) json_response = json.loads(response) if json_response["status"] == "OK": return json_response elif json_response["status"] == "ERROR": json_response["errorMsg"] = "加载失败!" return False else: raise Exception("status未返回OK或ERROR") def app_buyer_intent_livestock_order(self, name, mobile, contact_information): """ 创建畜牧的意向订单 :param name: 姓名 :param mobile: 手机号 :param contact_information: 邮箱 :return: 成功返回订单号 """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/intent-order/add-livestock') data['name'] = name data['mobile'] = mobile data['contactInformation'] = contact_information data['_language_'] = self.buyer.language response = self.request.post( url= "http://dev.trade.worldfarm.com/mobile/intent-order/add-livestock", data=data) json_response = json.loads(response) if json_response["status"] == "OK": return json_response elif json_response["status"] == "ERROR": json_response["errorMsg"] = "创建畜牧服务的意向订单失败!" return False else: raise Exception("status未返回OK或ERROR") def app_buyer_intent_translation_order(self, farm_id): """ 创建翻译服务的意向订单 :param farm_id: 农场的ID :return: 成功返回创建的订单编号 """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/intent-order/add-translation') data['farmId'] = farm_id data['_language_'] = self.buyer.language response = self.request.post( url= "http://dev.trade.worldfarm.com/mobile/intent-order/add-translation", data=data) json_response = json.loads(response) if json_response["status"] == "OK": return json_response elif json_response["status"] == "ERROR": json_response["errorMsg"] = "创建翻译服务的意向订单失败!" return False else: raise Exception("status未返回OK或ERROR") def app_buyer_update_user(self, real_name, sex, company_name, company_post, head_img=None): """ 修改个人信息 :param real_name: 姓名 :param sex: 性别,男或女 :param company_name: 公司名称 :param company_post: 公司职位 :param head_img: 头像url :return: """ gender = {'男': 1, '女': 2} update_data = self.data_trade['http://dev.trade.worldfarm.com'][ '/mobile/buyer/user/update'] update_data["head_img"] = head_img update_data["realName"] = real_name update_data["sex"] = gender[sex] update_data["companyName"] = company_name update_data["companyPosition"] = company_post update_data["_tk_"] = self.buyer.token update_data["_deviceId_"] = self.buyer.device_id update_data['_language_'] = self.buyer.language self.request.post( url="http://dev.trade.worldfarm.com/mobile/buyer/user/update", data=update_data) user_info = self.tool.query_user_info_by_mobile(self.buyer.mobile)[0] assert user_info["real_name"] == real_name assert user_info["sex"] == gender[sex] assert user_info["company_name"] == company_name assert user_info["company_position"] == company_post assert user_info["head_img"] == head_img self.log.logger.debug("姓名 更新为 %s" % real_name) self.log.logger.debug("性别 更新为 %s" % sex) self.log.logger.debug("公司 更新为 %s" % company_name) self.log.logger.debug("职位 更新为 %s" % company_post) self.log.logger.debug("头像 更新为 %s" % head_img) def app_change_password(self, newpwd): """ 修改密码 :param newpwd: 新密码 :return: """ data = self.data_sso.get('http://dev.sso.worldfarm.com').get( '/mobile/sso/update-pwd') data['mobile'] = self.buyer.mobile data['password'] = self.buyer.password data['newPassword'] = newpwd data['token'] = self.buyer.token data["_deviceId_"] = self.buyer.device_id r = self.request.post( url='http://dev.sso.worldfarm.com/mobile/sso/update-pwd', data=data).decode('utf-8') print(r) self.log.logger.debug("修改密码为: %s" % newpwd) def app_get_farm_list(self, city_id=None, farm_type=None, min_price=None, max_price=None, min_area=None, max_area=None, sort_code=2): """ 获取农场列表 :return: """ data = self.data_trade['http://dev.trade.worldfarm.com'][ '/mobile/buyer/farm/list'] data['ps'] = self.ps data['provinceId'] = city_id data['farmTypeList'] = farm_type data['minPrice'] = min_price data['maxPrice'] = max_price data['minArea'] = min_area data['maxArea'] = max_area data['sortCode'] = sort_code data['_language_'] = self.buyer.language farm_list = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer/farm/list", data=data) farm_list_json = json.loads(farm_list).get('content').get('datas') # query_farm_list = self.tool.query_farm_list() # for i in range(len(farm_list_json)): # assert farm_list_json[i].get('id') == query_farm_list[i].get('farm_id') # assert farm_list_json[i].get('type') == query_farm_list[i].get('type') # assert farm_list_json[i].get('lng') == query_farm_list[i].get('lng') # assert farm_list_json[i].get('lat') == query_farm_list[i].get('lat') # assert farm_list_json[i].get('imgLisst') == "[" + query_farm_list[i].get('url') + "]" return farm_list_json def app_buyer_get_map_list(self, left_top_lng, left_top_lat, right_bottom_lng, right_bottom_lat, zoom_level, province_id, sort_code=1, nation_id=25, trigger=None, farm_type_list=None, min_price=None, max_price=None, min_area=None, max_area=None): """ 地图农场列表 :param left_top_lng: 左上角的经度 :param left_top_lat: 左上角的未读 :param right_bottom_lng: 右下角的经度 :param right_bottom_lat: 右下角的未读 :param zoom_level: 聚合等级 :param province_id: 城市ID :param sort_code: 排序的code :param nation_id: 国家的ID :param trigger: :param farm_type_list: 农场类型集合 :param min_price: 最小的价格 :param max_price: 最大的价格 :param min_area: 最小的面积 :param max_area: 最大的面积 :return: """ data = self.data_trade['http://dev.trade.worldfarm.com'][ '/mobile/buyer/farm/map-list'] data['leftTopLng'] = left_top_lng data['leftTopLat'] = left_top_lat data['rightBottomLng'] = right_bottom_lng data['rightBottomLat'] = right_bottom_lat data['zoomLevel'] = zoom_level data['nationId'] = nation_id data['provinceId'] = province_id data['trigger'] = trigger data['farmTypeList'] = farm_type_list data['trigger'] = trigger data['minPrice'] = min_price data['maxPrice'] = max_price data['minArea'] = min_area data['maxArea'] = max_area data['sortCode'] = sort_code data['ps'] = self.ps data['_language_'] = self.buyer.language farm_list = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer/farm/map-list", data=data) farm_list_json = json.loads(farm_list) return farm_list_json.get('content').get('datas') def app_get_farm_detail(self, farm_id): """ 获取农场详情 :return: """ data = self.data_trade['http://dev.trade.worldfarm.com'][ '/mobile/buyer/farm/detail'] data['farmId'] = farm_id data['_language_'] = self.buyer.language farm_detail = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer/farm/detail", data=data) json_response = json.loads(farm_detail) if json_response["status"] == "OK": farm_json = json_response["content"] farm_data_base = self.tool.query_farm_detail_by_farm_id(farm_id)[0] assert farm_json["address"] == farm_data_base["address"] assert farm_json["addressEn"] == farm_data_base["address_en"] assert farm_json["area"] == farm_data_base["area"] assert farm_json["areaCode"] == farm_data_base["area_code"] assert farm_json["farmName"] == farm_data_base["farm_name"] assert farm_json["farmNameEn"] == farm_data_base["farm_name_en"] assert farm_json["id"] == farm_data_base["id"] assert farm_json["languageType"] == farm_data_base["language_type"] assert farm_json["lat"] == farm_data_base["lat"] assert farm_json["lng"] == farm_data_base["lng"] assert farm_json["totalPrice"] == farm_data_base["total_price"] assert farm_json["type"] == farm_data_base["type"] assert farm_json["unitCode"] == farm_data_base["unit_code"] return farm_json else: raise Exception("Error: %s" % json_response["errorMsg"]) def app_get_farm_list_first_id(self): """ 获取列表第一个农场的ID :return: """ farm_detail = self.app_get_farm_detail( self.app_get_farm_list()[0]['id']) farm_id = json.loads(farm_detail)['content']['id'] return farm_id def app_get_customer_id_by_farm(self, farm_id): """ 获取农场对应的客服ID :return: """ farm_detail = self.app_get_farm_detail(farm_id) farm_detail_json = json.loads(farm_detail) customer_service_id = farm_detail_json['content']['customerServiceId'] return customer_service_id def app_get_order_no(self, farm_id): """ 生成订单,并返回订单号 :param farm_id: 农场ID :return: 订单No """ data = self.data_trade['http://dev.trade.worldfarm.com'][ '/mobile/order/submit-order'] data['farmId'] = farm_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language order_no = Request().post( url="http://dev.trade.worldfarm.com/mobile/order/submit-order", data=data) order_no_json = json.loads(order_no) return order_no_json['content']['orderNo'] def app_get_customer_account(self, farm_id): """ 获取客服IM返回客服的登录账户 :return: """ data = self.data_sms['http://dev.sms.worldfarm.com'][ '/mobile/im-auth/buyer/get/service-accid'] data['userId'] = self.app_get_customer_id_by_farm(farm_id) data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language service_id = Request().post(url="http://dev.sms.worldfarm.com" "/mobile/im-auth/buyer/get/service-accid", data=data) service_id = str(json.loads(service_id)['content']).split('@')[0] account = self.tool.query_employee_user_no_by_user_id(service_id) return account def app_buyer_sale_bind(self, sale_id): """ 绑定销售ID :param sale_id: :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/user/sale-bind') data['saleId'] = sale_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language re = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer/user/sale-bind", data=data) query_sale_id = self.tool.query_sale_id_by_user_id( self.buyer.user_id)[0].get('salesman_id') assert sale_id == query_sale_id return re def app_buyer_query_sale(self, sale_id): """ 查询销售 :param sale_id: :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/user/query-sale') data['saleId'] = sale_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language re = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer/user/query-sale", data=data) query_sale_id = self.tool.query_sale_id_by_user_id( self.buyer.user_id)[0].get('salesman_id') assert sale_id == query_sale_id return re def app_buyer_sale_bind_update(self, sale_id): """ 更新销售ID :param sale_id: :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/user/sale-bind-update') data['saleId'] = sale_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language re = Request().post( url= "http://dev.trade.worldfarm.com/mobile/buyer/user/sale-bind-update", data=data) query_sale_id = self.tool.query_sale_id_by_user_id( self.buyer.user_id)[0].get('salesman_id') assert sale_id == query_sale_id return re def app_buyer_user_detail(self): """ 查询用户的detail :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/user/detail') if data is None: data = {} data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language user_detail = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer/user/detail", data=data) user_detail_content = eval(user_detail).get('content') query_user_detail = self.tool.query_user_detail_by_user_id( self.buyer.user_id)[0] assert user_detail_content.get('realName') == query_user_detail.get( 'real_name') return user_detail def app_buyer_resource_add(self, farm_id, order_no): """ 上传购买资质 :param farm_id: :param order_no: :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer-resource/add') data['farmId'] = farm_id data['orderNo'] = order_no data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer-resource/add", data=data) return r def app_buyer_resource_detail(self, order_no): """ 订单的购买资质详情 :param order_no: :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer-resource/detail') data['orderNo'] = order_no data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer-resource/detail", data=data) return r def app_buyer_resource_is_add(self, order_no): """ 判断订单是否可以上传购买资质 :param order_no: :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer-resource/is-add') data['orderNo'] = order_no data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer-resource/is-add", data=data) return r def app_buyer_resource_list(self, order_no, status, buyer_name): """ 购买资质列表 :param order_no: :param status: :param buyer_name: :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer-resource/resource-list') data['orderNo'] = order_no data['status'] = status data['buyerName'] = buyer_name data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post( url= "http://dev.trade.worldfarm.com/mobile/buyer-resource/resource-list", data=data) return r def app_buyer_farm_recommend_list(self, farm_id): """ 农场相关推荐 :param farm_id: :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/farm/recommend-list') data['farmId'] = farm_id data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post( url= "http://dev.trade.worldfarm.com/mobile/buyer/farm/recommend-list", data=data) return r def app_buyer_subscribe_add(self, city_ids=None, farm_type=None, min_price=None, max_price=None, min_area=None, max_area=None): """ 添加订阅规则 :param city_ids: :param farm_type: :param min_price: :param max_price: :param min_area: :param max_area: :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/subscribe/add') data['cityIds'] = city_ids data['farmType'] = farm_type data['minPrice'] = min_price data['maxPrice'] = max_price data['minArea'] = min_area data['maxArea'] = max_area data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language response = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer/subscribe/add", data=data) response = json.loads(response) query_subscribe_role = self.tool.query_subscribe_role_by_user_id( self.buyer.user_id) if response.get('status') == 'OK': if query_subscribe_role == (): raise Exception("Error: 添加订阅规则失败") else: assert query_subscribe_role[0].get('city_ids') == city_ids assert query_subscribe_role[0].get('farm_type') == farm_type assert query_subscribe_role[0].get('min_price') == min_price assert query_subscribe_role[0].get('max_price') == max_price assert query_subscribe_role[0].get('min_area') == min_area assert query_subscribe_role[0].get('max_area') == max_area return response elif response.get('status') != 'ERROR': assert response.get('errorMsg') == "该用户已经添加过订阅规则" else: raise Exception("Error: %s" % response["errorMsg"]) def app_buyer_subscribe_detail(self): """ 查看订阅规则 :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/subscribe/detail') if data is None: data = {} data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language response = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer/subscribe/detail", data=data) response_json = json.loads(response) if response_json.get('status') == 'OK': response_json_content = response_json.get('content') query_subscribe_role = self.tool.query_subscribe_role_by_user_id( self.buyer.user_id) assert query_subscribe_role[0].get( 'city_ids') == response_json_content.get('city_ids') assert query_subscribe_role[0].get( 'farm_type') == response_json_content.get('farm_type') assert query_subscribe_role[0].get( 'min_price') == response_json_content.get('min_price') assert query_subscribe_role[0].get( 'max_price') == response_json_content.get('max_price') assert query_subscribe_role[0].get( 'min_area') == response_json_content.get('min_area') assert query_subscribe_role[0].get( 'max_area') == response_json_content.get('max_area') return response_json_content else: raise Exception("Error: %s" % response_json.get("errorMsg")) def app_buyer_subscribe_update(self, city_ids=None, farm_type=None, min_price=None, max_price=None, min_area=None, max_area=None): """ 修改订阅规则 :param city_ids: 城市的ID的集合,egg:1,2,3 :param farm_type: 集合:1,2,3 :param min_price: 最小的价格 :param max_price: 最大的价格 :param min_area: 最小的面积 :param max_area: 最大的面积 :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/subscribe/update') data['cityIds'] = city_ids data['farmType'] = farm_type data['minPrice'] = min_price data['maxPrice'] = max_price data['minArea'] = min_area data['maxArea'] = max_area data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language response = Request().post( url="http://dev.trade.worldfarm.com/mobile/buyer/subscribe/update", data=data) response_json = json.loads(response) query_subscribe_role = self.tool.query_subscribe_role_by_user_id( self.buyer.user_id) if response_json.get('status') == 'OK': if query_subscribe_role == (): raise Exception("Error: 更新订阅规则失败") else: assert query_subscribe_role[0].get('city_ids') == city_ids assert query_subscribe_role[0].get('farm_type') == farm_type assert query_subscribe_role[0].get('min_price') == min_price assert query_subscribe_role[0].get('max_price') == max_price assert query_subscribe_role[0].get('min_area') == min_area assert query_subscribe_role[0].get('max_area') == max_area return response_json else: raise Exception("Error: %s" % response_json["errorMsg"]) def app_buyer_subscribe_farm_list(self): """ 农场订阅列表 :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/subscribe/farm-list') data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post( url= "http://dev.trade.worldfarm.com/mobile/buyer/subscribe/farm-list", data=data) return r def app_buyer_order_del(self, order_no_list=None): """ 买家删除订单 :param order_no_list: 使用,分割,eg:1,2,3 :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/order/del') data['orderNoList'] = order_no_list data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post( url="http://dev.trade.worldfarm.com/mobile/order/del", data=data) return r def app_buyer_order_list(self, type_no=0): """ 感兴趣列表 :param type_no: 0,1;默认填0,1表示查询的list是可以删除的order :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/order/list') data['type'] = type_no data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post( url="http://dev.trade.worldfarm.com/mobile/order/list", data=data) return r def app_buyer_update_show_auth(self): """ 查询是否显示提示认证信息 :return: """ data = self.data_trade.get('http://dev.trade.worldfarm.com').get( '/mobile/buyer/user/update-show-auth') if data is None: data = {} data['_tk_'] = self.buyer.token data['_deviceId_'] = self.buyer.device_id data['_language_'] = self.buyer.language r = Request().post( url= "http://dev.trade.worldfarm.com/mobile/buyer/user/update-show-auth", data=data) return r