| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- import requests as req
- from PyQt6.QtWidgets import QMessageBox, QTextEdit
- class BUFFXP():
- def __init__(self, parent=None, title="buff选品", initial_data=None):
- super().__init__(parent)
- @staticmethod
- def get_goods_param_list(self):
- non_empty_lists = {
- 'category': self.selected_categories,
- 'rarity': self.selected_qualities,
- 'quality': self.selected_types,
- 'exterior': self.selected_appearances,
- 'itemset': self.selected_collectibles
- }
- # 只保留非空的列表
- filtered_lists = {k: v for k, v in non_empty_lists.items() if v}
- # 如果所有列表都为空,返回空列表
- if not filtered_lists:
- print('品类、品质、类别、外观、收藏品的筛选条件都为空')
- self.search_goods_param_list = [{}]
- else:
- # 生成所有可能的组合
- # 使用itertools.product来生成所有可能的组合
- from itertools import product
- # 获取所有非空列表的值
- values = list(filtered_lists.values())
- # 获取所有非空列表的键
- keys = list(filtered_lists.keys())
- for combination in product(*values):
- combination_dict = {keys[i]: combination[i] for i in range(len(keys))}
- self.search_goods_param_list.append(combination_dict)
- for i in range(len(self.search_goods_param_list)):
- self.search_goods_param_list[i]['category_group'] = self.search_goods_param_list[i]['category']
- # 遍历search_goods_param_list
- for i in range(len(self.search_goods_param_list)):
- self.search_goods_param_list[i].update({'game': 'csgo'})
- # 判断min_price是否为空
- if self.min_price:
- self.search_goods_param_list[i]['min_price'] = self.min_price
- # 判断max_price是否为空
- if self.max_price:
- self.search_goods_param_list[i]['max_price'] = self.max_price
- # 判断sort_mode是否为空
- if self.sort_mode:
- if self.sort_mode == '默认':
- pass
- elif self.sort_mode == '价格升序':
- self.search_goods_param_list[i]['sort_by'] = 'price.asc'
- elif self.sort_mode == '价格降序':
- self.search_goods_param_list[i]['sort_by'] = 'price.desc'
- elif self.sort_mode == '在售数量升序':
- self.search_goods_param_list[i]['sort_by'] = 'sell_num.desc'
- # 判断选品接口每页请求数量是否为空
- if self.page_size:
- self.search_goods_param_list[i]['page_size'] = self.page_size
- # 选品接口每次的page_num 默认100
- if self.max_page:
- self.search_goods_param_list[i]['page_num'] = self.max_page
- print(f"请求网易BUFF商品的接口的入参为:{self.search_goods_param_list}")
- @staticmethod
- def checkBuffXPParams(self):
- # 必填条件,没有则跳出
- self.phone_number = self.phone_edit_map["选品"].text()
- QMessageBox.information(self, "选品手机号码", f"选品手机号码: {self.phone_number}")
- # 判断phone_number是否为空,为空则跳出方法
- if not self.phone_number:
- QMessageBox.information(self, "选品手机号码", "选品手机号码不能为空")
- return False
- # 判断选品cookie是否为空,为空则退出方法
- self.cookie_text = self.phone_edit_map["选品"].parent().findChild(QTextEdit).toPlainText()
- QMessageBox.information(self, "选品Cookie", f"选品Cookie: {self.cookie_text}")
- if not self.cookie_text:
- QMessageBox.information(self, "选品Cookie", "选品Cookie不能为空")
- return False
- # 获取勾选中的品类编码信息
- self.selected_categories = []
- # 获取勾选中的品类信息
- self.selected_categories_items = []
- for i in range(self.tree_widget.topLevelItemCount()):
- item = self.tree_widget.topLevelItem(i)
- checkbox = self.tree_widget.itemWidget(item, 0)
- if checkbox.isChecked():
- category_code = item.text(2)
- category_name = item.text(1)
- self.selected_categories.append(category_code)
- self.selected_categories_items.append(f"{category_code}({category_name})")
- if self.selected_categories:
- QMessageBox.information(self, "勾选的品类信息",
- f"勾选的品类信息: {', '.join(self.selected_categories_items)}")
- else:
- QMessageBox.information(self, "勾选的品类信息", "没有勾选任何品类信息")
- # 获取勾选中的品质编码信息
- self.selected_qualities = []
- # 获取勾选中的品质信息
- self.selected_qualities_items = []
- for i in range(self.quality_tree_widget.topLevelItemCount()):
- item = self.quality_tree_widget.topLevelItem(i)
- checkbox = self.quality_tree_widget.itemWidget(item, 0)
- if checkbox.isChecked():
- quality_code = item.text(1)
- quality_name = item.text(2)
- self.selected_qualities.append(quality_code)
- self.selected_qualities_items.append(f"{quality_code}({quality_name})")
- if self.selected_qualities:
- QMessageBox.information(self, "勾选的品质信息",
- f"勾选的品质信息: {', '.join(self.selected_qualities_items)}")
- else:
- QMessageBox.information(self, "勾选的品质信息", "没有勾选任何品质信息")
- # 获取勾选中的type编码信息
- self.selected_types = []
- # 获取勾选中的type信息
- self.selected_types_items = []
- for i in range(self.type_tree_widget.topLevelItemCount()):
- item = self.type_tree_widget.topLevelItem(i)
- checkbox = self.type_tree_widget.itemWidget(item, 0)
- if checkbox.isChecked():
- type_code = item.text(1)
- type_name = item.text(2)
- self.selected_types.append(type_code)
- self.selected_types_items.append(f"{type_code}({type_name})")
- if self.selected_types:
- QMessageBox.information(self, "勾选的类别信息", f"勾选的类别信息: {', '.join(self.selected_types_items)}")
- else:
- QMessageBox.information(self, "勾选的类别信息", "没有勾选任何类别信息")
- # 获取勾选中的外观编码信息
- self.selected_appearances = []
- # 获取勾选中的外观信息
- self.selected_appearances_items = []
- for i in range(self.appearance_tree_widget.topLevelItemCount()):
- item = self.appearance_tree_widget.topLevelItem(i)
- checkbox = self.appearance_tree_widget.itemWidget(item, 0)
- if checkbox.isChecked():
- appearance_code = item.text(1)
- appearance_name = item.text(2)
- self.selected_appearances.append(appearance_code)
- self.selected_appearances_items.append(f"{appearance_code}({appearance_name})")
- if self.selected_appearances:
- QMessageBox.information(self, "勾选的外观信息",
- f"勾选的外观信息: {', '.join(self.selected_appearances_items)}")
- else:
- QMessageBox.information(self, "勾选的外观信息", "没有勾选任何外观信息")
- # 获取勾选中的收藏品编码信息
- self.selected_collectibles = []
- # 获取勾选中的收藏品信息
- self.selected_collectibles_items = []
- for i in range(self.collectible_tree_widget.topLevelItemCount()):
- item = self.collectible_tree_widget.topLevelItem(i)
- checkbox = self.collectible_tree_widget.itemWidget(item, 0)
- if checkbox.isChecked():
- collectible_code = item.text(1)
- collectible_name = item.text(2)
- self.selected_collectibles.append(collectible_code)
- self.selected_collectibles_items.append(f"{collectible_code}({collectible_name})")
- if self.selected_collectibles:
- QMessageBox.information(self, "勾选的收藏品信息",
- f"勾选的收藏品信息: {', '.join(self.selected_collectibles_items)}")
- else:
- QMessageBox.information(self, "勾选的收藏品信息", "没有勾选任何收藏品信息")
- # 获取选品配置信息
- self.min_price = self.min_price_edit.text()
- self.max_price = self.max_price_edit.text()
- self.sort_mode = self.sort_mode_combo.currentText()
- self.stop_condition = self.stop_condition_combo.currentText()
- self.success_count = self.success_count_edit.text()
- self.scan_count = self.scan_count_edit.text()
- self.page_size = self.page_size_edit.text()
- self.pause_time = self.pause_time_edit.text()
- # 获取选品配置信息选品接口最大请求多少页
- self.max_page = self.max_pages_edit.text()
- # 获取选品商品参考价调整系数
- self.ref_price_adjust = int(self.ref_price_adjust_edit.text())
- # 获取选品商品扫货价调整系数
- self.sweep_price_adjust = int(self.sweep_price_adjust_edit.text())
- QMessageBox.information(self, "选品配置信息",
- f"选品最低价: {self.min_price}\n"
- f"选品最高价: {self.max_price}\n"
- f"选品排序模式: {self.sort_mode}\n"
- f"选品停止条件: {self.stop_condition}\n"
- f"选品成功数量配置: {self.success_count}\n"
- f"选品扫描商品数量: {self.scan_count}\n"
- f"选品接口每页请求数量: {self.page_size}\n"
- f"选品接口暂停时间(秒): {self.pause_time}\n"
- f"选品接口最大请求多少页: {self.max_page}\n"
- f"选品商品参考价调整系数%: {self.ref_price_adjust}\n"
- f"选品商品扫货价调整系数%: {self.sweep_price_adjust}\n")
- return True
|