67 lines
2.8 KiB
Python
67 lines
2.8 KiB
Python
from some_sdk.xingyun_sdk.session import get_logged_in_client
|
|
from some_sdk.xingyun_sdk.biz.by_user import get_user_order
|
|
from .wechat_sdk import get_external_group_chat_info
|
|
from app.models.weixin import WeixinUser
|
|
|
|
# 首次调用:登录并创建 client
|
|
client = get_logged_in_client()
|
|
|
|
def get_user_order_list(group_name: str="", keyword: str="", regrex: str=None, userIds: list = None):
|
|
result = get_user_order(client, keyword=keyword, group_name=group_name, regrex=regrex, userIds=userIds)
|
|
if not result:
|
|
return {}
|
|
|
|
order_list = result.pop("order_list", [])
|
|
print(f'在群聊 {result["group_name"]} 中的客户 {result["name"]}({result["keyword"]}) 有订单数: {len(order_list)}')
|
|
|
|
subTradeNo_list = []
|
|
for order in order_list:
|
|
result_order = dict(tradeNo='', tradeTime=order.get("tradeTime", ''), payTime=order.get("payTime", ''))
|
|
orderList = order.get("orderList", [])
|
|
|
|
for item in orderList:
|
|
result_order['shopName'] = order.get("shopName", "")
|
|
result_order['goodsName'] = item.get("goodsName", "")
|
|
result_order['actuPayment'] = order.get("actuPayment", "")
|
|
result_order['goodsCount'] = order.get("goodsCount", "")
|
|
result_order['tradeNo'] = item.get("subTradeNo", "")
|
|
result_order['pic'] = item.get("pic", "")
|
|
result_order['other_status'] = order.get("orderStatus", 0)
|
|
result_order['other_status_name'] = order.get("status_name", "")
|
|
subTradeNo_list.append(result_order.copy())
|
|
|
|
import json; print(json.dumps(subTradeNo_list, indent=4, ensure_ascii=False))
|
|
result['order_list'] = subTradeNo_list
|
|
return result
|
|
|
|
async def get_user_order_list_by_chatid(chat_id: str):
|
|
group_chat_info = await get_external_group_chat_info(chat_id)
|
|
external_member_list = group_chat_info.get('external_member_list', [])
|
|
|
|
trade_list = []
|
|
group_chat_info['trade_list'] = trade_list
|
|
|
|
invitor = group_chat_info.get('owner')
|
|
qiwei_kefu = await WeixinUser.filter(userid=invitor).first()
|
|
print(f'邀请人:{invitor} {qiwei_kefu.username} {qiwei_kefu.crmid}')
|
|
|
|
group_name = group_chat_info.get('name')
|
|
# if not group_name:
|
|
# group_name = '未知群聊'
|
|
|
|
print(f'群聊名称{group_name},有{len(external_member_list)}位客户', flush=True)
|
|
for user in external_member_list:
|
|
print(f'正在处理客户:{user.get("name")}', flush=True)
|
|
result = get_user_order_list(group_name=group_name, keyword=user.get('name'), userIds=[qiwei_kefu.crmid] if qiwei_kefu.crmid else None)
|
|
if not result:
|
|
continue
|
|
|
|
trade_list.append(result)
|
|
|
|
return group_chat_info
|
|
|
|
if __name__ == "__main__":
|
|
get_user_order("fuyixuan0628-印刷vip客户服务群", "去看海吗")
|
|
get_user_order("小旋honey-印刷vip客户服务群@喜印说", "宇宙大女神")
|
|
|