From 9450bcb197c2de53982368d5c2059b31abed3b87 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 09 八月 2024 17:40:29 +0800
Subject: [PATCH] 齐河联网版程序除补卡相关逻辑

---
 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java |  115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 112 insertions(+), 3 deletions(-)

diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java
index ed69735..201e430 100644
--- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java
+++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java
@@ -1,10 +1,24 @@
 package com.dayu.qiheonlinelibrary;
 
+import android.app.Activity;
 import android.app.Application;
+import android.content.Context;
+import android.content.Intent;
 
+import com.dayu.baselibrary.utils.ToastUtil;
+import com.dayu.qiheonlinelibrary.bean.LoginResult;
+import com.dayu.qiheonlinelibrary.bean.PricePlanResult;
 import com.dayu.qiheonlinelibrary.net.ApiManager;
 import com.dayu.qiheonlinelibrary.net.BaseResponse;
+import com.dayu.qiheonlinelibrary.net.RSAUtile;
 import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener;
+
+import java.security.AllPermission;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * author: zuo
@@ -16,6 +30,25 @@
     public static QHOnLineApplication qhAloneApplication;
     public Application application;
 
+    public String tokenStr;
+    public String adcd;//鐢ㄦ埛鍦板潃鐮�
+    public String addressName;//鐢ㄦ埛鍦板潃鍚嶇О
+
+    public String arerNumber;//鍖哄煙鍙�
+
+    public String planId;//浠锋牸ID
+
+    public String electriclePriceStr;//鐢典环
+
+    public static QHOnLineApplication getInstance(Application context) {
+        if (qhAloneApplication == null) {
+            qhAloneApplication = new QHOnLineApplication();
+        }
+        qhAloneApplication.application = context;
+        ApiManager.init();
+        return qhAloneApplication;
+    }
+
     public static QHOnLineApplication getInstance() {
         if (qhAloneApplication == null) {
             qhAloneApplication = new QHOnLineApplication();
@@ -24,14 +57,90 @@
     }
 
 
-    private void getPublicKey(){
-        ApiManager.getInstance().requestPost(application, "/login/getPubKey", String.class, null, new SubscriberListener<BaseResponse<String>>() {
+    public void getPublicKey(Context context, String name, String pw) {
+        Map<String, Object> data = new HashMap<>();
+        data.put("loginType", "account");
+
+        ApiManager.getInstance().requestPostLoading(context, "api/login/getPubKey", String.class, null, new SubscriberListener<BaseResponse<String>>() {
             @Override
             public void onNext(BaseResponse<String> t) {
-
+                if (t.isSuccess()) {
+                    getToken(context, name, pw, t.getData());
+                }
             }
         });
     }
 
 
+    public void getToken(Context context, String name, String pw, String pubKey) {
+        Map<String, Object> data = new HashMap<>();
+        data.put("loginType", "account");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String dateString = sdf.format(new Date());
+        data.put("password", RSAUtile.encryptByPublicKey(pw + "@TIME@" + dateString, pubKey));
+        data.put("username", name);
+        ApiManager.getInstance().requestPostLoading(application, "api/login/login/getToken", String.class, data, new SubscriberListener<BaseResponse<String>>() {
+            @Override
+            public void onNext(BaseResponse<String> t) {
+                if (t.isSuccess()) {
+                    tokenStr = t.getData();
+                    login(context, name, pw, pubKey);
+                } else {
+                    ToastUtil.show(t.getMsg());
+                }
+            }
+        });
+    }
+
+
+    public void login(Context context, String name, String pw, String pubKey) {
+        Map<String, Object> data = new HashMap<>();
+        data.put("loginType", "account");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String dateString = sdf.format(new Date());
+        data.put("password", RSAUtile.encryptByPublicKey(pw + "@TIME@" + dateString, pubKey));
+        data.put("username", name);
+        ApiManager.getInstance().requestPostLoading(application, "api/login/login", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
+            @Override
+            public void onNext(BaseResponse<LoginResult> t) {
+                if (t.isSuccess()) {
+                    if (t.getData() != null && t.getData().getOtherData() != null) {
+                        LoginResult.OtherData otherData = t.getData().getOtherData();
+                        String tenantAdnm = otherData.getTenantAdnm();
+                        List<String> adnmList = otherData.getAdnmList();
+                        if (tenantAdnm != null && adnmList != null && !adnmList.isEmpty()) {
+                            addressName = tenantAdnm + adnmList.get(0);
+                        }
+                        List<String> adcdList = otherData.getAdnmList();
+                        if (adcdList != null && !adcdList.isEmpty()) {
+                            adcd = t.getData().getOtherData().getAdcdList().get(0);
+                            arerNumber = t.getData().getOtherData().getAdcdList().get(0).substring(4);
+                        }
+                    }
+                    context.startActivity(new Intent(context, com.dayu.qiheonlinelibrary.activity.HomeActivity.class));
+                    ((Activity) context).finish();
+                } else {
+                    ToastUtil.show(t.getMsg());
+                }
+            }
+        });
+    }
+
+    /**
+     * 鑾峰彇浠锋牸淇℃伅
+     */
+    public void getPricePlanVo(Context context) {
+        Map<String, Object> data = new HashMap<>();
+        data.put("priceMethod", 2);
+
+        ApiManager.getInstance().requestPost(context, "api/sjgg/water/waterPricePlan/pageWaterPricePlanVo", PricePlanResult.class, data, new SubscriberListener<BaseResponse<PricePlanResult>>() {
+            @Override
+            public void onNext(BaseResponse<PricePlanResult> t) {
+                if (t.isSuccess()) {
+                    planId = t.getData().getRecords().get(0).getPlanId();
+                    electriclePriceStr = t.getData().getRecords().get(0).getElectricityPrice();
+                }
+            }
+        });
+    }
 }

--
Gitblit v1.8.0