charging-cabinet/tools/update_iccid.py
12451 06765f99db feat: H5 用户端 Taro 重写 + 前后端接口对齐修复
- 使用 Taro + React 重写 H5 用户端(替换旧的 React+Vite+H5 实现)
- 6 个页面:登录、首页、设备列表、设备详情、仓体详情、个人中心
- Zustand 状态管理 + API 层封装 11 个接口
- 后端 H5 路由:新增仪表盘/项目/设备/充电控制接口,组织数据隔离
- 扫码入口:/h5/{abstract_id} → 免认证查设备 + 登录后跳转
- 管理端:新增绑定码管理、二维码展示下载、设备绑定/替换 IMEI
- 产品落地页更新(hero-bg + logo 替换)
- 接口对齐修复:修正 action 路径/请求体,DashboardData 和 CabinetItem 字段匹配后端
- 布局兼容性:grid → flex,提升移动浏览器兼容性
- 移除旧 H5 项目 software/h5/
2026-07-03 02:45:00 +08:00

65 lines
1.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pymysql
import random
conn = pymysql.connect(host='10.8.0.252', user='root', password='Hbhyg731024@', database='pms')
cur = conn.cursor()
# ICCID规则
# 中国移动898600、898602、898604、898607
# 中国联通898601
# 中国电信898603
# 获取所有柜子
cur.execute("SELECT id FROM cabinets ORDER BY id")
cabinet_ids = [row[0] for row in cur.fetchall()]
# 运营商前缀
carriers = [
("898600", "移动"), # 中国移动
("898601", "联通"), # 中国联通
("898603", "电信"), # 中国电信
("898602", "移动"), # 中国移动
("898604", "移动"), # 中国移动
]
carrier_count = {"移动": 0, "联通": 0, "电信": 0}
for i, cab_id in enumerate(cabinet_ids):
# 随机选择运营商
prefix, carrier = random.choice(carriers)
# 生成ICCID: 20位数字
# 前6位(运营商) + 2位(年份) + 2位(省份) + 8位(流水) + 1位(校验)
year = random.randint(20, 25)
province = random.randint(10, 31)
serial = random.randint(10000000, 99999999)
check = random.randint(0, 9)
iccid = f"{prefix}{year:02d}{province:02d}{serial:08d}{check}"
cur.execute(f"UPDATE cabinets SET iccid='{iccid}' WHERE id={cab_id}")
carrier_count[carrier] += 1
conn.commit()
print("✓ ICCID更新完成")
print(f"\n运营商分布:")
for carrier, count in carrier_count.items():
print(f" {carrier}: {count}")
# 验证
cur.execute("SELECT name, iccid FROM cabinets LIMIT 5")
print(f"\n示例数据:")
for row in cur.fetchall():
iccid = row[1]
prefix = iccid[:6] if iccid else ""
if prefix.startswith("898600") or prefix.startswith("898602") or prefix.startswith("898604"):
carrier = "移动"
elif prefix.startswith("898601"):
carrier = "联通"
elif prefix.startswith("898603"):
carrier = "电信"
else:
carrier = "未知"
print(f" {row[0]}: {iccid} ({carrier})")
conn.close()