Files
vue-fastapi-admin/app/controllers/xingyun_sdk.py
T
2026-06-25 17:41:06 +08:00

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客户服务群@喜印说", "宇宙大女神")