128 lines
4.3 KiB
Python
128 lines
4.3 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
北京试点财务表 4m6Ejm 全表复核修正
|
|
列映射: N=GMV, O=退款金额, P=GSV, X=订单号, Y=有效订单, Z=渠道归属
|
|
"""
|
|
import json, time, requests, os
|
|
|
|
CRED_DIR = "/root/.openclaw/credentials/xiaoxi"
|
|
SPREADSHEET_TOKEN = "NoZqsFi47hIOHEt9j8WcfRtbnug"
|
|
SHEET_ID = "4m6Ejm"
|
|
|
|
def get_token():
|
|
with open(os.path.join(CRED_DIR, "config.json")) as f:
|
|
cfg = json.load(f)
|
|
resp = requests.post(
|
|
"https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",
|
|
json={"app_id": cfg["apps"][0]["appId"], "app_secret": cfg["apps"][0]["appSecret"]},
|
|
timeout=15
|
|
)
|
|
return resp.json()["tenant_access_token"]
|
|
|
|
def put_values(token, sheet_id, range_str, values):
|
|
url = f"https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{SPREADSHEET_TOKEN}/values"
|
|
body = {"valueRange": {"range": f"{sheet_id}!{range_str}", "values": values}}
|
|
for attempt in range(3):
|
|
r = requests.put(url, headers={
|
|
"Authorization": f"Bearer {token}",
|
|
"Content-Type": "application/json"
|
|
}, json=body, timeout=30)
|
|
result = r.json()
|
|
if result.get("code") == 0:
|
|
return True
|
|
print(f" Retry {attempt+1}: {result.get('msg','')}")
|
|
time.sleep(1)
|
|
print(f" FAILED {range_str}")
|
|
return False
|
|
|
|
def main():
|
|
token = get_token()
|
|
fixes = []
|
|
|
|
# === 已退费: Y=0, P→0 (GSV=0) ===
|
|
# r3 陈kelly: status=4, refund=1999
|
|
fixes.append((3, "P", [[0]]))
|
|
# r9 xhx: status=4, refund=1999
|
|
fixes.append((9, "P", [[0]]))
|
|
# r10 跳跳糖: status=4, refund=1999
|
|
fixes.append((10, "P", [[0]]))
|
|
# r25 琪-建筑: status=4, refund=599
|
|
fixes.append((25, "P", [[0]]))
|
|
|
|
# === 有效订单: Y=0→1, O→0, P→GSV, 补Z ===
|
|
# r11 Cathy: status=3, 1999, 直购
|
|
fixes.append((11, "N", [["1999"]]))
|
|
fixes.append((11, "O", [[0]]))
|
|
fixes.append((11, "P", [["1999"]]))
|
|
fixes.append((11, "Y", [[1]]))
|
|
fixes.append((11, "Z", [["直购"]]))
|
|
|
|
# r12 tingting: status=3, 599, 端内
|
|
fixes.append((12, "N", [["599"]]))
|
|
fixes.append((12, "O", [[0]]))
|
|
fixes.append((12, "P", [["599"]]))
|
|
fixes.append((12, "Y", [[1]]))
|
|
fixes.append((12, "Z", [["端内"]]))
|
|
|
|
# r17 MIYU: status=3, 1999, 直购
|
|
fixes.append((17, "N", [["1999"]]))
|
|
fixes.append((17, "O", [[0]]))
|
|
fixes.append((17, "P", [["1999"]]))
|
|
fixes.append((17, "Y", [[1]]))
|
|
fixes.append((17, "Z", [["直购"]]))
|
|
|
|
# r18 💋👩👧💋: status=3, 1999, 端内 (已确认)
|
|
fixes.append((18, "O", [[0]]))
|
|
fixes.append((18, "Y", [[1]]))
|
|
|
|
# r19 心安就好: status=3, 1999, 直购 (已确认)
|
|
fixes.append((19, "O", [[0]]))
|
|
fixes.append((19, "Y", [[1]]))
|
|
|
|
# r20 木木: status=3, 1999, 直购
|
|
fixes.append((20, "N", [["1999"]]))
|
|
fixes.append((20, "O", [[0]]))
|
|
fixes.append((20, "P", [["1999"]]))
|
|
fixes.append((20, "Y", [[1]]))
|
|
fixes.append((20, "Z", [["直购"]]))
|
|
|
|
# r21 柏文: 2026010422001499951430352915, status=3, 1999, 端内
|
|
fixes.append((21, "N", [["1999"]]))
|
|
fixes.append((21, "O", [[0]]))
|
|
fixes.append((21, "P", [["1999"]]))
|
|
fixes.append((21, "X", [["2026010422001499951430352915"]]))
|
|
fixes.append((21, "Y", [[1]]))
|
|
fixes.append((21, "Z", [["端内"]]))
|
|
|
|
# r22 琉璃仙: status=3, 1999, 直购
|
|
fixes.append((22, "O", [[0]]))
|
|
fixes.append((22, "Y", [[1]]))
|
|
|
|
# r24 悦宝爱阳光: status=3, 1999, 直购
|
|
fixes.append((24, "O", [[0]]))
|
|
fixes.append((24, "Y", [[1]]))
|
|
|
|
# r27 coco: status=3, 599, 端内
|
|
fixes.append((27, "N", [["599"]]))
|
|
fixes.append((27, "O", [[0]]))
|
|
fixes.append((27, "P", [["599"]]))
|
|
fixes.append((27, "Y", [[1]]))
|
|
fixes.append((27, "Z", [["端内"]]))
|
|
|
|
print(f"共 {len(fixes)} 处修正")
|
|
for row, col, vals in fixes:
|
|
rng = f"{col}{row}:{col}{row}"
|
|
if put_values(token, SHEET_ID, rng, vals):
|
|
print(f" ✓ {rng} = {vals[0]}")
|
|
else:
|
|
print(f" ✗ {rng} FAILED")
|
|
time.sleep(0.15)
|
|
|
|
print("\n=== 修正完成 ===")
|
|
print("\n⚠️ r13 笑看风云(UID 11824): 表内 trade_no=4200002979202510051839311872 DB不存在")
|
|
print(" 该账号实际: 4200002979202512297931190703(599, 12/29) + 4200003119202604279087832566(1499, 4/27)")
|
|
print(" 请确认正确订单号后手动修正")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|