# -*- coding:utf-8 -*- """ 产品管理业务关键字层 """ import allure from dulizhan.library.Dlizhan_interface import DlzhanInterface from base_framework.public_tools import log obj_log = log.get_logger() class ProductManage(DlzhanInterface): """产品管理业务关键字类""" def __init__(self): super().__init__() @allure.step("创建产品") def kw_joyhub_product_create_post(self, product_name, product_cate_id, shipping_template_id, route, intro, brand_id, product_attrs, product_skus, id=0, product_type=1, status=1, rank_num=None, seo_title=None, seo_keyword=None, seo_description=None, single_user_exchange_limit=None, single_product_exchange_limit=None, product_details=None): """ 创建产品业务关键字 :param id: 主键,新增为0 :param product_type: 产品类型(普通产品=1,积分产品=2) :param product_name: 产品名称 :param product_cate_id: 产品分类 :param shipping_template_id: 运费模板ID :param route: 跳转路由 :param intro: 产品简介 :param brand_id: 品牌id :param status: 状态(1上架,2下架) :param rank_num: 序号(可选) :param seo_title: SEO标题(可选) :param seo_keyword: SEO关键词(可选) :param seo_description: SEO描述(可选) :param single_user_exchange_limit: 单用户兑换次数限制(可选) :param single_product_exchange_limit: 单次兑换数量限制(可选) :param product_attrs: 产品规格类型关联列表 :param product_skus: 产品规格列表 :param product_details: 产品详情列表(可选) :return: 响应结果 """ obj_log.info(f"创建产品 - product_name: {product_name}, product_type: {product_type}") params = { "id": id, "productType": product_type, "productName": product_name, "productCateId": product_cate_id, "shippingTemplateId": shipping_template_id, "route": route, "intro": intro, "brandId": brand_id, "status": status, "productAttrs": product_attrs, "productSkus": product_skus } if rank_num is not None: params["rankNum"] = rank_num if seo_title is not None: params["seoTitle"] = seo_title if seo_keyword is not None: params["seoKeyword"] = seo_keyword if seo_description is not None: params["seoDescription"] = seo_description if single_user_exchange_limit is not None: params["singleUserExchangeLimit"] = single_user_exchange_limit if single_product_exchange_limit is not None: params["singleProductExchangeLimit"] = single_product_exchange_limit if product_details is not None: params["productDetails"] = product_details resp = self.kw_in_joyhub_product_create_post(**params) obj_log.info(f"创建产品响应: {resp}") return resp @allure.step("删除产品") def kw_joyhub_product_delete_delete(self, product_id): """ 删除产品业务关键字 :param product_id: 产品ID :return: 响应结果 """ obj_log.info(f"删除产品 - product_id: {product_id}") resp = self.kw_in_joyhub_product_delete_delete(product_id) obj_log.info(f"删除产品响应: {resp}") return resp @allure.step("批量删除产品") def kw_joyhub_product_delete_list_delete(self, ids): """ 批量删除产品业务关键字 :param ids: 产品ID列表 :return: 响应结果 """ obj_log.info(f"批量删除产品 - ids: {ids}") resp = self.kw_in_joyhub_product_delete_list_delete(ids) obj_log.info(f"批量删除产品响应: {resp}") return resp @allure.step("获得产品详情") def kw_joyhub_product_get_get(self, product_id): """ 获得产品详情业务关键字 :param product_id: 产品ID :return: 响应结果 """ obj_log.info(f"获得产品详情 - product_id: {product_id}") resp = self.kw_in_joyhub_product_get_get(product_id) obj_log.info(f"获得产品详情响应: {resp}") return resp @allure.step("获得产品分页") def kw_joyhub_product_page_get(self, page_no=1, page_size=10, **kwargs): """ 获得产品分页业务关键字 :param page_no: 页码 :param page_size: 每页大小 :param kwargs: 其他查询条件 :return: 响应结果 """ obj_log.info(f"获得产品分页 - page_no: {page_no}, page_size: {page_size}") params = { "pageNo": page_no, "pageSize": page_size } params.update(kwargs) resp = self.kw_in_joyhub_product_page_get(**params) obj_log.info(f"获得产品分页响应: {resp}") return resp @allure.step("获得产品规格类型关联列表") def kw_joyhub_product_product_attr_list_by_product_id_get(self, product_id): """ 获得产品规格类型关联列表业务关键字 :param product_id: 产品ID :return: 响应结果 """ obj_log.info(f"获得产品规格类型关联列表 - product_id: {product_id}") resp = self.kw_in_joyhub_product_product_attr_list_by_product_id_get(product_id) obj_log.info(f"获得产品规格类型关联列表响应: {resp}") return resp @allure.step("获得产品详情列表") def kw_joyhub_product_product_detail_list_by_product_id_get(self, product_id): """ 获得产品详情列表业务关键字 :param product_id: 产品ID :return: 响应结果 """ obj_log.info(f"获得产品详情列表 - product_id: {product_id}") resp = self.kw_in_joyhub_product_product_detail_list_by_product_id_get(product_id) obj_log.info(f"获得产品详情列表响应: {resp}") return resp @allure.step("获得产品规格列表") def kw_joyhub_product_product_sku_list_by_product_id_get(self, product_id): """ 获得产品规格列表业务关键字 :param product_id: 产品ID :return: 响应结果 """ obj_log.info(f"获得产品规格列表 - product_id: {product_id}") resp = self.kw_in_joyhub_product_product_sku_list_by_product_id_get(product_id) obj_log.info(f"获得产品规格列表响应: {resp}") return resp @allure.step("获得产品及规格列表-优惠券中使用") def kw_joyhub_product_product_sku_list_get(self, **kwargs): """ 获得产品及规格列表-优惠券中使用业务关键字 :param kwargs: 查询条件 :return: 响应结果 """ obj_log.info(f"获得产品及规格列表 - params: {kwargs}") resp = self.kw_in_joyhub_product_product_sku_list_get(**kwargs) obj_log.info(f"获得产品及规格列表响应: {resp}") return resp @allure.step("更新产品") def kw_joyhub_product_update_put(self, product_id, product_name, product_cate_id, shipping_template_id, route, intro, brand_id, product_attrs, product_skus, product_type=1, status=1, rank_num=None, seo_title=None, seo_keyword=None, seo_description=None, single_user_exchange_limit=None, single_product_exchange_limit=None, product_details=None): """ 更新产品业务关键字 :param product_id: 产品ID :param product_type: 产品类型(普通产品=1,积分产品=2) :param product_name: 产品名称 :param product_cate_id: 产品分类 :param shipping_template_id: 运费模板ID :param route: 跳转路由 :param intro: 产品简介 :param brand_id: 品牌id :param status: 状态(1上架,2下架) :param rank_num: 序号(可选) :param seo_title: SEO标题(可选) :param seo_keyword: SEO关键词(可选) :param seo_description: SEO描述(可选) :param single_user_exchange_limit: 单用户兑换次数限制(可选) :param single_product_exchange_limit: 单次兑换数量限制(可选) :param product_attrs: 产品规格类型关联列表 :param product_skus: 产品规格列表 :param product_details: 产品详情列表(可选) :return: 响应结果 """ obj_log.info(f"更新产品 - product_id: {product_id}, product_name: {product_name}") params = { "id": product_id, "productType": product_type, "productName": product_name, "productCateId": product_cate_id, "shippingTemplateId": shipping_template_id, "route": route, "intro": intro, "brandId": brand_id, "status": status, "productAttrs": product_attrs, "productSkus": product_skus } if rank_num is not None: params["rankNum"] = rank_num if seo_title is not None: params["seoTitle"] = seo_title if seo_keyword is not None: params["seoKeyword"] = seo_keyword if seo_description is not None: params["seoDescription"] = seo_description if single_user_exchange_limit is not None: params["singleUserExchangeLimit"] = single_user_exchange_limit if single_product_exchange_limit is not None: params["singleProductExchangeLimit"] = single_product_exchange_limit if product_details is not None: params["productDetails"] = product_details resp = self.kw_in_joyhub_product_update_put(**params) obj_log.info(f"更新产品响应: {resp}") return resp @allure.step("批量上下架产品") def kw_joyhub_product_change_status_put(self, ids, status): """ 批量上下架产品业务关键字 :param ids: 产品ID列表 :param status: 状态(1上架,2下架) :return: 响应结果 """ obj_log.info(f"批量上下架产品 - ids: {ids}, status: {status}") params = { "ids": ids, "status": status } resp = self.kw_in_joyhub_product_change_status_put(**params) obj_log.info(f"批量上下架产品响应: {resp}") return resp