Kaynağa Gözat

SIM查询增加原子智能

林轩 1 gün önce
ebeveyn
işleme
01a49bbae3
1 değiştirilmiş dosya ile 76 ekleme ve 6 silme
  1. 76 6
      utils/utils.py

+ 76 - 6
utils/utils.py

@@ -375,6 +375,74 @@ class GetSIMInfo(object):
         else:
             return {}
 
+    def yuanzi(self):
+        yn_userid = 145
+        yn_now = int(time.time())
+        yn_apikey = "a55fa93a940a399a78a18f1cb17f0af3"
+        yn_params = f"userId={yn_userid}&apikey={yn_apikey}&times={yn_now}"
+        md5 = hashlib.md5()
+        md5.update(yn_params.encode('utf-8'))
+        yn_sign = (md5.hexdigest()).upper()
+        url = f"http://www.yuanzizhineng.com:32040/api/v1/getChaxun?userId={yn_userid}&cardno={self.iccid}&times={yn_now}&sign={yn_sign}"
+        try:
+            yn_ret = requests.get(
+                url,
+                timeout=(10,30)
+            )
+            yn_response = json.loads(yn_ret.text)
+            yn_code = yn_response.get("code")
+        except Exception as e:
+            yn_code = 1
+        if yn_code == 0:
+            yn_st_dict = {
+                "0":"未知",
+                "00":"正常",
+                "01":"单向停机",
+                "02":"停机",
+                "03":"预销号",
+                "04":"销号/拆机",
+                "05":"过户",
+                "06":"休眠",
+                "07":"待激",
+                "08":"已停用",
+                "09":"库存",
+                "10":"已失效",
+                "11":"违章停机",
+                "12":"挂失",
+                "13":"用户报停",
+                "14":"测试",
+                "99":"不存在"                  
+            }
+            try:
+                yn_data = yn_response.get("data")
+                autoname = yn_data.get("autoname")
+                nub = None
+                nub = 0
+                if "M" in autoname:
+                    nubs = autoname.split("M")
+                    if nubs:
+                        nub = nubs[0]
+                        if nub and nub.isdigit():
+                            nub = int(nub)
+                if "G" in autoname:
+                    nubs = autoname.split("G")
+                    if nubs:
+                        nub = nubs[0]
+                        if nub and nub.isdigit():
+                            nub = int(nub) * 1024
+                return {
+                    "status": yn_st_dict.get(yn_data.get("state")),
+                    "total": nub,
+                    "used": int(yn_data.get("used")/1024) if yn_data.get("used") else 0,
+                    "expire": yn_data.get("expired_at"),
+                    "iccid": self.iccid,
+                    "package": autoname,
+                    "company": "元字智能",
+                    "code": False
+                }
+            except Exception as e:
+                return []
+
     def get_sim_info(self):
         hz_data = self.hz_sim_info()
         if hz_data["code"] == 0:  # 合宙
@@ -426,13 +494,14 @@ class GetSIMInfo(object):
                         data_balance = str(xj_data.get("total") - xj_data.get("used")) + "M" 
                         expiry_date = xj_data.get("expire")
                     else:
-                        sim_operators = 3
-                        account_status = "未知"
+                        yuanzi_data = self.yuanzi()
+                        sim_operators = 5 
+                        account_status = yuanzi_data.get("status")
                         active_date = "未知"
-                        data_plan = "未知"
-                        data_usage = "未知"
-                        data_balance = "未知"
-                        expiry_date = "未知"
+                        data_plan = yuanzi_data.get("total")
+                        data_usage = yuanzi_data.get("used")
+                        data_balance = str(yuanzi_data.get("total") - yuanzi_data.get("used")) + "M"
+                        expiry_date = yuanzi_data.get("expire")
                 except Exception as e:
                     sim_operators = 3
                     account_status = "未知"
@@ -441,6 +510,7 @@ class GetSIMInfo(object):
                     data_usage = "未知"
                     data_balance = "未知"
                     expiry_date = "未知"
+
         return sim_operators,account_status,active_date,data_plan,data_usage,data_balance,expiry_date