Commit 7ad7afbb authored by 杨林's avatar 杨林

增加类目判断

parent 11c25c4d
...@@ -11,6 +11,7 @@ class ESTools: ...@@ -11,6 +11,7 @@ class ESTools:
_host = [{"host": '172.18.45.18', "port": 9200}, {"host": '172.18.45.17', "port": 9200}, _host = [{"host": '172.18.45.18', "port": 9200}, {"host": '172.18.45.17', "port": 9200},
{"host": '172.18.45.16', "port": 9200}, {"host": '172.18.69.190', "port": 9200}, {"host": '172.18.45.16', "port": 9200}, {"host": '172.18.69.190', "port": 9200},
{"host": '172.18.69.192', "port": 9200}] {"host": '172.18.69.192', "port": 9200}]
# _host = 'localhost:9200'
_TB_RATE = 0.7 _TB_RATE = 0.7
_JD_RATE = 0.55 _JD_RATE = 0.55
...@@ -18,9 +19,10 @@ class ESTools: ...@@ -18,9 +19,10 @@ class ESTools:
def __init__(self): def __init__(self):
self.es = Elasticsearch(self._host) self.es = Elasticsearch(self._host)
def search_tools(self, price=0, title="", size=20): def search_tools(self, price=0, title="", category="", size=20):
""" """
搜索es方法 搜索es方法
:param category: 商品类目
:param price: 券后价 :param price: 券后价
:param title: 商品名称 :param title: 商品名称
:param size: 商品数量 :param size: 商品数量
...@@ -58,64 +60,70 @@ class ESTools: ...@@ -58,64 +60,70 @@ class ESTools:
else: else:
return None return None
def data_format(self, price=0, title="", size=20): def data_format(self, price=0, title="", category="", size=20):
""" """
格式化数据方法 格式化数据方法
:param category: 商品类目
:param price: 券后价 :param price: 券后价
:param title: 商品标题 :param title: 商品标题
:param size: 商品数量 :param size: 商品数量
:return: 格式化后的数据 :return: 格式化后的数据
""" """
res, sco = self.search_tools(price=price, title=title, size=size) res, sco = self.search_tools(price=price, title=title, category=category, size=size)
if res: if res:
temp = [] temp = []
# 匹配分数平均数 # 匹配分数平均数
score_avg = sum(sco) / len(sco) score_avg = sum(sco) / len(sco)
# 匹配分数中位数 # 匹配分数中位数
score_median = sco[int(len(sco) / 2)] score_median = sco[int(len(sco) / 2)]
for i in res: score_max = max(sco)
# 对每条数据进行处理 if score_max < 50:
# 分数大于中位数 return None
if i["_score"] > score_median: else:
# 分数大于平均数 for i in res:
if i["_score"] > score_avg: # 对每条数据进行处理
# 源数据 # 分数大于中位数
source = i['_source'] if i["_score"] > score_median:
# 平台 # 分数大于平均数
platform = source["platform"] if i["_score"] > score_avg:
# 券后佣金 # 源数据
coupon_commission = source["coupon_commission"] source = i['_source']
# 给用户的佣金比例 # 平台
rate = self._JD_RATE if platform == 2 else self._TB_RATE platform = source["platform"]
# 券金额 # 券后佣金
coupon_amount = source["coupon_amount"] coupon_commission = source["coupon_commission"]
# 优惠文案 # 给用户的佣金比例
discount_text = f'¥{coupon_amount}券' if coupon_amount > 0 else '' rate = self._JD_RATE if platform == 2 else self._TB_RATE
# 用户佣金 # 券金额
user_commission = "{:.2f}".format(coupon_commission * rate) coupon_amount = source["coupon_amount"]
# 券后价 # 优惠文案
end_price = source["coupon_price"] discount_text = f'¥{coupon_amount}券' if coupon_amount > 0 else ''
# 最终优惠金额 # 用户佣金
final_price = round(price - end_price, 2) user_commission = "{:.2f}".format(coupon_commission * rate)
result = { # 券后价
"item_id": source["item_id"], end_price = source["coupon_price"]
"item_pic": source["item_pic_url"].split(',')[0], # 最终优惠金额
"item_title": source["item_name"], final_price = round(price - end_price, 2)
"discount_type": "1", result = {
"discount_amount": str(source["coupon_amount"]), "item_id": source["item_id"],
"platform": str(platform), "item_pic": source["item_pic_url"].split(',')[0],
"shop_title": source["shop_name"], "item_title": source["item_name"],
"user_commission": user_commission, "discount_type": "1",
"price": str(source["price"]), "discount_amount": str(source["coupon_amount"]),
"end_price": str(end_price), "platform": str(platform),
"volume_text": f'已抢{source["item_volume"]}件', "shop_title": source["shop_name"],
"discount_text": discount_text, "user_commission": user_commission,
"discount_tips": f'比查券商品便宜{final_price}元', "price": str(source["price"]),
"user_commission_text": f'返现{user_commission}' "end_price": str(end_price),
} "volume_text": f'已抢{source["item_volume"]}件',
temp.append(result) "discount_text": discount_text,
# 按价格排序 "discount_tips": f'比查券商品便宜{final_price}元',
results = sorted(temp, key=lambda x: x["end_price"]) "user_commission_text": f'返现{user_commission}'
return results }
temp.append(result)
# 按价格排序
results = sorted(temp, key=lambda x: x["end_price"])
return results
else: else:
return None return None
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment