gaoluyang
20 小时以前 e71d71bf43c2307c89d3592adf08c1b32fcd0907
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys,json
from pathlib import Path
P=Path(__file__).parent
sys.path.insert(0,str(P.parent/'iqc-import-20261012/deps'))
import pymysql
r=json.loads((P/'import-result.json').read_text(encoding='utf8'))
c=pymysql.connect(host='36.213.150.237',port=10000,user='root',password=sys.stdin.readline().strip(),database='mom-hm',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor,autocommit=False)
repair=[]
try:
 with c.cursor() as q:
  q.execute('SELECT NOW() now');now=q.fetchone()['now']
  for cid in sorted({g['customer_id'] for g in r['groups']}):
   q.execute('SELECT id,name,owner_user_id FROM crm_customer WHERE id=%s AND deleted=0 FOR UPDATE',(cid,));customer=q.fetchone();assert customer['owner_user_id']==291
   q.execute('SELECT * FROM crm_permission WHERE biz_type=2 AND biz_id=%s AND user_id=291 AND deleted=0 FOR UPDATE',(cid,));existing=q.fetchall()
   if any(x['level']==1 for x in existing):continue
   repair.append({'customer':customer,'existing_permissions':existing})
  (P/'customer-permission-repair-before.json').write_text(json.dumps(repair,ensure_ascii=False,default=str,indent=2),encoding='utf8')
  for x in repair:
   q.execute('INSERT INTO crm_permission (biz_type,biz_id,user_id,level,creator,updater,create_time,update_time,deleted) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)',(2,x['customer']['id'],291,1,'291','291',now,now,0));x['new_permission_id']=q.lastrowid
 c.commit()
 (P/'customer-permission-repair-result.json').write_text(json.dumps(repair,ensure_ascii=False,default=str,indent=2),encoding='utf8')
 print(json.dumps({'repaired':len(repair),'customers':[x['customer'] for x in repair]},ensure_ascii=False))
except Exception:c.rollback();raise
finally:c.close()