main #2
@ -2646,11 +2646,182 @@ def sync_domain_info_from_west(**data):
|
||||
|
||||
real_data = real_info_response.get("data", {}) if real_info_response.get("result") == 200 else {}
|
||||
|
||||
# 获取当前域名记录的团队信息
|
||||
domain_pg = jingrow.get_pg("Jsite Domain", {"domain": domain})
|
||||
if not domain_pg:
|
||||
return {"status": "error", "message": "本地未找到该域名记录"}
|
||||
|
||||
# 从域名记录获取团队信息
|
||||
team_name = domain_pg.team
|
||||
if not team_name:
|
||||
return {"status": "error", "message": "域名记录中未找到团队信息"}
|
||||
|
||||
team = jingrow.get_pg("Team", team_name)
|
||||
if not team:
|
||||
return {"status": "error", "message": "未找到团队信息"}
|
||||
|
||||
# 同步Domain Owner信息
|
||||
domain_owner_name = None
|
||||
if real_data:
|
||||
# 从实名信息中提取c_sysid和所有者信息
|
||||
c_sysid = real_data.get("c_sysid")
|
||||
owner_info = real_data.get("owner", {})
|
||||
|
||||
# 添加调试日志
|
||||
jingrow.log_error(f"Domain Owner同步调试", f"域名: {domain}, c_sysid: {c_sysid}, owner_info: {owner_info}")
|
||||
jingrow.log_error(f"real_data完整信息", f"real_data: {real_data}")
|
||||
|
||||
if c_sysid:
|
||||
# 如果owner_info为空,使用real_data中的所有者字段
|
||||
if not owner_info:
|
||||
owner_info = real_data
|
||||
|
||||
if owner_info:
|
||||
# 根据c_sysid查找是否已存在Domain Owner - 只按c_sysid查找,不限制团队
|
||||
existing_owners = jingrow.get_all(
|
||||
"Domain Owner",
|
||||
{"c_sysid": c_sysid},
|
||||
["name", "team"]
|
||||
)
|
||||
|
||||
# 添加调试日志
|
||||
jingrow.log_error(f"Domain Owner查找结果", f"c_sysid: {c_sysid}, 域名团队: {team.name}, 找到记录数: {len(existing_owners)}")
|
||||
if existing_owners:
|
||||
jingrow.log_error(f"找到的Domain Owner", f"名称: {existing_owners[0].name}, 原团队: {existing_owners[0].team or '空'}")
|
||||
else:
|
||||
jingrow.log_error(f"未找到Domain Owner", f"将创建新的")
|
||||
|
||||
if existing_owners:
|
||||
# 更新已存在的Domain Owner
|
||||
domain_owner_name = existing_owners[0].name
|
||||
existing_team = existing_owners[0].team
|
||||
jingrow.log_error(f"Domain Owner更新逻辑", f"找到现有记录: {domain_owner_name}, 原团队: {existing_team}, 当前团队: {team.name}")
|
||||
try:
|
||||
domain_owner_pg = jingrow.get_pg("Domain Owner", domain_owner_name)
|
||||
if domain_owner_pg:
|
||||
# 更新团队信息(如果不同或为空)
|
||||
if not domain_owner_pg.team or domain_owner_pg.team != team.name:
|
||||
old_team = domain_owner_pg.team or "空"
|
||||
jingrow.log_error(f"Domain Owner团队更新", f"从 {old_team} 更新为 {team.name}")
|
||||
domain_owner_pg.team = team.name
|
||||
|
||||
# 更新所有者信息
|
||||
owner_name = owner_info.get("dom_org_m") or owner_info.get("dom_ln_m", "") + owner_info.get("dom_fn_m", "")
|
||||
domain_owner_pg.fullname = owner_name
|
||||
domain_owner_pg.r_status = 1 # 已实名认证
|
||||
|
||||
# 根据类型更新不同字段
|
||||
c_regtype = "E" if owner_info.get("dom_org_m") else "I"
|
||||
domain_owner_pg.c_regtype = c_regtype
|
||||
|
||||
if c_regtype == "E": # 企业
|
||||
domain_owner_pg.c_org_m = owner_info.get("dom_org_m", "")
|
||||
domain_owner_pg.c_org = owner_info.get("dom_org", "")
|
||||
domain_owner_pg.c_ln_m = owner_info.get("dom_ln_m", "")
|
||||
domain_owner_pg.c_fn_m = owner_info.get("dom_fn_m", "")
|
||||
domain_owner_pg.c_ln = owner_info.get("dom_ln", "")
|
||||
domain_owner_pg.c_fn = owner_info.get("dom_fn", "")
|
||||
domain_owner_pg.title = owner_info.get("dom_org_m", "")
|
||||
else: # 个人
|
||||
domain_owner_pg.c_ln_m = owner_info.get("dom_ln_m", "")
|
||||
domain_owner_pg.c_fn_m = owner_info.get("dom_fn_m", "")
|
||||
domain_owner_pg.c_ln = owner_info.get("dom_ln", "")
|
||||
domain_owner_pg.c_fn = owner_info.get("dom_fn", "")
|
||||
domain_owner_pg.title = owner_info.get("dom_ln_m", "") + owner_info.get("dom_fn_m", "")
|
||||
|
||||
# 更新地址信息
|
||||
domain_owner_pg.c_st_m = owner_info.get("dom_st_m", "")
|
||||
domain_owner_pg.c_ct_m = owner_info.get("dom_ct_m", "")
|
||||
domain_owner_pg.c_adr_m = owner_info.get("dom_adr_m", "")
|
||||
domain_owner_pg.c_pc = owner_info.get("dom_pc", "")
|
||||
domain_owner_pg.c_st = owner_info.get("dom_st", "")
|
||||
domain_owner_pg.c_ct = owner_info.get("dom_ct", "")
|
||||
domain_owner_pg.c_adr = owner_info.get("dom_adr", "")
|
||||
domain_owner_pg.c_em = owner_info.get("dom_em", "")
|
||||
domain_owner_pg.c_ph = owner_info.get("dom_ph", "")
|
||||
domain_owner_pg.c_ph_type = "0" # 默认为手机
|
||||
|
||||
domain_owner_pg.save(ignore_permissions=True)
|
||||
jingrow.log_error(f"Domain Owner更新成功", f"名称: {domain_owner_name}")
|
||||
except Exception as e:
|
||||
jingrow.log_error(f"更新Domain Owner失败", f"域名: {domain}, c_sysid: {c_sysid}, 错误: {str(e)}")
|
||||
else:
|
||||
# 创建新的Domain Owner
|
||||
jingrow.log_error(f"Domain Owner创建逻辑", f"未找到现有记录,将创建新记录,c_sysid: {c_sysid}, 域名团队: {team.name}")
|
||||
try:
|
||||
# 判断所有者类型(个人或企业)
|
||||
c_regtype = "E" if owner_info.get("dom_org_m") else "I"
|
||||
|
||||
# 生成所有者名称
|
||||
owner_name = owner_info.get("dom_org_m") or owner_info.get("dom_ln_m", "") + owner_info.get("dom_fn_m", "")
|
||||
|
||||
# 构建Domain Owner数据
|
||||
owner_data = {
|
||||
"pagetype": "Domain Owner",
|
||||
"team": team.name, # 使用当前团队
|
||||
"c_sysid": c_sysid,
|
||||
"c_regtype": c_regtype,
|
||||
"fullname": owner_name,
|
||||
"c_co": "CN",
|
||||
"cocode": "+86",
|
||||
"reg_contact_type": "cg",
|
||||
"r_status": 1, # 已实名认证
|
||||
"title": owner_name
|
||||
}
|
||||
|
||||
# 根据类型设置不同字段
|
||||
if c_regtype == "E": # 企业
|
||||
owner_data.update({
|
||||
"c_org_m": owner_info.get("dom_org_m", ""),
|
||||
"c_org": owner_info.get("dom_org", ""),
|
||||
"c_ln_m": owner_info.get("dom_ln_m", ""),
|
||||
"c_fn_m": owner_info.get("dom_fn_m", ""),
|
||||
"c_ln": owner_info.get("dom_ln", ""),
|
||||
"c_fn": owner_info.get("dom_fn", ""),
|
||||
"title": owner_info.get("dom_org_m", "")
|
||||
})
|
||||
else: # 个人
|
||||
owner_data.update({
|
||||
"c_ln_m": owner_info.get("dom_ln_m", ""),
|
||||
"c_fn_m": owner_info.get("dom_fn_m", ""),
|
||||
"c_ln": owner_info.get("dom_ln", ""),
|
||||
"c_fn": owner_info.get("dom_fn", ""),
|
||||
"title": owner_info.get("dom_ln_m", "") + owner_info.get("dom_fn_m", "")
|
||||
})
|
||||
|
||||
# 设置地址信息
|
||||
owner_data.update({
|
||||
"c_st_m": owner_info.get("dom_st_m", ""),
|
||||
"c_ct_m": owner_info.get("dom_ct_m", ""),
|
||||
"c_adr_m": owner_info.get("dom_adr_m", ""),
|
||||
"c_pc": owner_info.get("dom_pc", ""),
|
||||
"c_st": owner_info.get("dom_st", ""),
|
||||
"c_ct": owner_info.get("dom_ct", ""),
|
||||
"c_adr": owner_info.get("dom_adr", ""),
|
||||
"c_em": owner_info.get("dom_em", ""),
|
||||
"c_ph": owner_info.get("dom_ph", ""),
|
||||
"c_ph_type": "0" # 默认为手机
|
||||
})
|
||||
|
||||
# 设置证件信息(如果有)
|
||||
if owner_info.get("dom_idtype"):
|
||||
owner_data["c_idtype_gswl"] = owner_info.get("dom_idtype")
|
||||
if owner_info.get("dom_idnum"):
|
||||
owner_data["c_idnum_gswl"] = owner_info.get("dom_idnum")
|
||||
|
||||
# 创建Domain Owner记录
|
||||
domain_owner_pg = jingrow.get_pg(owner_data)
|
||||
domain_owner_pg.insert(ignore_permissions=True)
|
||||
domain_owner_name = domain_owner_pg.name
|
||||
jingrow.log_error(f"Domain Owner创建成功", f"名称: {domain_owner_name}, c_sysid: {c_sysid}")
|
||||
|
||||
except Exception as e:
|
||||
jingrow.log_error(f"创建Domain Owner失败", f"域名: {domain}, c_sysid: {c_sysid}, 错误: {str(e)}")
|
||||
domain_owner_name = None
|
||||
|
||||
# 更新本地域名记录
|
||||
try:
|
||||
domain_pg = jingrow.get_pg("Jsite Domain", {"domain": domain})
|
||||
if not domain_pg:
|
||||
return {"status": "error", "message": "本地未找到该域名记录"}
|
||||
# domain_pg 已经在前面获取过了,直接使用
|
||||
|
||||
# 更新基本信息 - 从实名信息中获取
|
||||
if real_data:
|
||||
@ -2665,6 +2836,10 @@ def sync_domain_info_from_west(**data):
|
||||
domain_pg.dns_host4 = real_data.get("dns_host4", "")
|
||||
domain_pg.dns_host5 = real_data.get("dns_host5", "")
|
||||
domain_pg.dns_host6 = real_data.get("dns_host6", "")
|
||||
|
||||
# 更新Domain Owner
|
||||
if domain_owner_name:
|
||||
domain_pg.domain_owner = domain_owner_name
|
||||
|
||||
# 更新DNS解析记录
|
||||
if dns_data and "items" in dns_data:
|
||||
@ -2699,7 +2874,8 @@ def sync_domain_info_from_west(**data):
|
||||
"message": "域名信息同步成功",
|
||||
"data": {
|
||||
"dns_records": dns_data,
|
||||
"real_info": real_data
|
||||
"real_info": real_data,
|
||||
"domain_owner": domain_owner_name
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user