左晓为主开发手持机充值管理机
zuoxiao
2024-08-13 3673328730251736f9614793d9a75630c17b28f6
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();
                }
            }
        });
    }
}