左晓为主开发手持机充值管理机
zuoxiao
2024-03-22 e8232424de65da0254ce9637e19af9a4a6527964
密码修改成保存MD5类型的
6个文件已修改
157 ■■■■■ 已修改文件
app/src/main/java/com/dayu/recharge/activity/LoginActivity.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/card/UserCard.java 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/view/ProgressDialog.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
easysocket/src/main/java/com/easysocket/connection/iowork/EasyReader.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/dayu/recharge/activity/LoginActivity.java
@@ -16,6 +16,7 @@
import com.dayu.recharge.databinding.ActivityLoginBinding;
import com.dayu.recharge.dbBean.PassWordBean;
import com.dayu.recharge.utils.TipUtil;
import com.dayu.recharge.utils.WSMD5;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.Permission;
import com.hjq.permissions.XXPermissions;
@@ -54,7 +55,7 @@
                    return;
                }
                if ((passWordBean == null && psStr.equals("123456"))
                        || passWordBean != null && passWordBean.getPassWord().equals(psStr)) {
                        || passWordBean != null && passWordBean.getPassWord().equalsIgnoreCase(WSMD5.getMD5Str(psStr))) {
                    startActivity(new Intent(LoginActivity.this, HomeActivity.class));
                    LoginActivity.this.finish();
                } else {
app/src/main/java/com/dayu/recharge/activity/NFCWreatActivity.java
@@ -6,6 +6,7 @@
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Toast;
import com.dayu.recharge.MyApplication;
@@ -41,6 +42,7 @@
import com.dayu.recharge.utils.MyCommon;
import com.dayu.recharge.utils.SocketUtil;
import com.dayu.recharge.utils.TipUtil;
import com.dayu.recharge.view.ProgressDialog;
import com.tencent.bugly.crashreport.CrashReport;
import java.util.Arrays;
@@ -53,7 +55,7 @@
 * Description: nfc写卡界面
 */
public class NFCWreatActivity extends BaseNfcActivity {
    public static String TAG = "NFCWreatActivity";
    boolean cleanFlag = false;
    boolean userFlag = false;
@@ -334,6 +336,7 @@
    }
    void startAnim() {
        binding.avi.setVisibility(View.VISIBLE);
        binding.avi.show();
        // or avi.smoothToShow();
    }
@@ -551,8 +554,9 @@
     * @param initPeasantCode 农户注册编号
     */
    private void selectBalance(String initPeasantCode) {
        Log.i(TAG, "补卡查询余额:农户注册编号 " + initPeasantCode);
        try {
            startAnim();
            BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean();
            requestBean.setAFN("94");
            requestBean.setControl("01");
@@ -631,17 +635,22 @@
                        //校验CRC错误
                        TipUtil.show(NFCWreatActivity.this, "开卡报文校验CRC错误");
                    }
                    stopAnim();
                }
                @Override
                public void onSocketError(int code, String msg) {
                    stopAnim();
                    TipUtil.show(NFCWreatActivity.this, msg);
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
            CrashReport.postCatchedException(e);
            stopAnim();
            ProgressDialog.dismiss();
        }
    }
app/src/main/java/com/dayu/recharge/activity/PassWordActivity.java
@@ -35,14 +35,15 @@
                    if (!TextUtils.isEmpty(pswBinding.pswNew.getText().toString()) && !TextUtils.isEmpty(pswBinding.pswOld.getText().toString()) && !TextUtils.isEmpty(pswBinding.pswNewAgin.getText().toString())) {
                        if ((passWordBean != null
                                && (passWordBean.getPassWord().equals(pswBinding.pswOld.getText().toString())
                                && (passWordBean.getPassWord().equalsIgnoreCase(WSMD5.getMD5Str(pswBinding.pswOld.getText().toString()))
                                || WSMD5.getMD5Str(pswBinding.pswOld.getText().toString()).equals("8af357996269a1b52b182a839150097d")))
                                || passWordBean == null) {
                            if (passWordBean == null) {
                                passWordBean = new PassWordBean();
                            }
                            if (pswBinding.pswNew.getText().toString().equals(pswBinding.pswNewAgin.getText().toString())) {
                                passWordBean.setPassWord(pswBinding.pswNewAgin.getText().toString());
                                String passWord = WSMD5.getMD5Str(pswBinding.pswNewAgin.getText().toString());
                                passWordBean.setPassWord(passWord);
                                baseDao.loginPsDao().insert(passWordBean);
                                TipUtil.show(PassWordActivity.this, "密码修改完成", () -> {
                                    PassWordActivity.this.finish();
app/src/main/java/com/dayu/recharge/card/UserCard.java
@@ -56,67 +56,72 @@
     */
    public static UserCard getBean(List<byte[]> data) {
        try {
            UserCard userCard = new UserCard();
            if (data != null) {
                byte[] zero = data.get(0);
                byte[] one = data.get(1);
                byte[] two = data.get(2);
                userCard.cardType = HexUtil.byteToHex(zero[0]);
                userCard.rechargeTimes = HexUtil.get16to10(HexUtil.byteToHex(zero[1]));
                byte[] swipeNumberBytes = new byte[2];
                System.arraycopy(zero,2,swipeNumberBytes,0,swipeNumberBytes.length);
                String swipeNumberHex = HexUtil.bytesToHex(swipeNumberBytes);
                userCard.swipeNumber = (short) HexUtil.get16to10(swipeNumberHex);
                byte[] electricityPriceBytes = new byte[4];
                System.arraycopy(zero,4,electricityPriceBytes,0,electricityPriceBytes.length);
                if (zero != null && zero.length == 16) {
                    UserCard userCard = new UserCard();
                    userCard.cardType = HexUtil.byteToHex(zero[0]);
                    userCard.rechargeTimes = HexUtil.get16to10(HexUtil.byteToHex(zero[1]));
                    byte[] swipeNumberBytes = new byte[2];
                    System.arraycopy(zero, 2, swipeNumberBytes, 0, swipeNumberBytes.length);
                    String swipeNumberHex = HexUtil.bytesToHex(swipeNumberBytes);
                    userCard.swipeNumber = (short) HexUtil.get16to10(swipeNumberHex);
                    byte[] electricityPriceBytes = new byte[4];
                    System.arraycopy(zero, 4, electricityPriceBytes, 0, electricityPriceBytes.length);
                userCard.electricityPrice = HexUtil.hexToFloat(HexUtil.bytesToHex(electricityPriceBytes));
                userCard.state = BcdUtil.bcdToStr(zero[8]);
                byte[] balanceBytes = new byte[4];
                System.arraycopy(zero,9,balanceBytes,0,balanceBytes.length);
                    userCard.electricityPrice = HexUtil.hexToFloat(HexUtil.bytesToHex(electricityPriceBytes));
                    userCard.state = BcdUtil.bcdToStr(zero[8]);
                    byte[] balanceBytes = new byte[4];
                    System.arraycopy(zero, 9, balanceBytes, 0, balanceBytes.length);
                userCard.balance = HexUtil.get16to10LowHigh(HexUtil.bytesToHex(balanceBytes));
                byte[] addressCodeBytes = new byte[6];
                System.arraycopy(zero,13,addressCodeBytes,0,2);
                System.arraycopy(two,11,addressCodeBytes,2,4);
                userCard.addressCode = BcdUtil.bcdToStr(addressCodeBytes);
                    userCard.balance = HexUtil.get16to10LowHigh(HexUtil.bytesToHex(balanceBytes));
                    byte[] addressCodeBytes = new byte[6];
                    System.arraycopy(zero, 13, addressCodeBytes, 0, 2);
                    System.arraycopy(two, 11, addressCodeBytes, 2, 4);
                    userCard.addressCode = BcdUtil.bcdToStr(addressCodeBytes);
                int year = 0;
                int month = 0;
                int day = 0;
                int hour = 0;
                int minute = 0;
                int second = 0;
                for (int i = 0; i < 6; i++) {
                    byte byteData = one[i + 4];
                    switch (i) {
                        case 0:
                            year = getBcdToInt(byteData);
                            break;
                        case 1:
                            month = getBcdToInt(byteData);
                            break;
                        case 2:
                            day = getBcdToInt(byteData);
                            break;
                        case 3:
                            hour = getBcdToInt(byteData);
                            break;
                        case 4:
                            minute = getBcdToInt(byteData);
                            break;
                        case 5:
                            second = getBcdToInt(byteData);
                            break;
                    int year = 0;
                    int month = 0;
                    int day = 0;
                    int hour = 0;
                    int minute = 0;
                    int second = 0;
                    for (int i = 0; i < 6; i++) {
                        byte byteData = one[i + 4];
                        switch (i) {
                            case 0:
                                year = getBcdToInt(byteData);
                                break;
                            case 1:
                                month = getBcdToInt(byteData);
                                break;
                            case 2:
                                day = getBcdToInt(byteData);
                                break;
                            case 3:
                                hour = getBcdToInt(byteData);
                                break;
                            case 4:
                                minute = getBcdToInt(byteData);
                                break;
                            case 5:
                                second = getBcdToInt(byteData);
                                break;
                        }
                    }
                    Calendar calendar = Calendar.getInstance();
                    calendar.set(2000 + year, month, day, hour, minute, second);
                    byte[] initPeasantCodeBytes = new byte[16];
                    System.arraycopy(one, 10, initPeasantCodeBytes, 0, 5);
                    System.arraycopy(two, 0, initPeasantCodeBytes, 5, 11);
                    userCard.initPeasantCode = HexUtil.bytesToHex(initPeasantCodeBytes);
                    return userCard;
                }
                Calendar calendar = Calendar.getInstance();
                calendar.set(2000 + year, month, day, hour, minute, second);
                byte[] initPeasantCodeBytes = new byte[16];
                System.arraycopy(one,10,initPeasantCodeBytes,0,5);
                System.arraycopy(two,0,initPeasantCodeBytes,5,11);
                userCard.initPeasantCode = HexUtil.bytesToHex(initPeasantCodeBytes);
                return userCard;
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
@@ -134,7 +139,7 @@
    /**
     * 用户卡0块
     */
    public class Zero  {
    public class Zero {
        public byte[] toByte() {
            byte[] data = new byte[16];
            data[0] = HexUtil.hexToByte(cardType);
@@ -169,7 +174,7 @@
    /**
     * 用户卡1块
     */
    public class One  {
    public class One {
        public byte[] toBytes() {
            byte[] data = new byte[16];
@@ -213,7 +218,7 @@
    /**
     * 用户卡2块
     */
    public class Two  {
    public class Two {
        public byte[] toBytes() {
            byte[] data = new byte[16];
            byte[] initPeasantCodes = HexUtil.hexToByteArray(initPeasantCode);
app/src/main/java/com/dayu/recharge/view/ProgressDialog.java
@@ -5,6 +5,7 @@
import android.content.Context;
import com.dayu.recharge.activity.NewCardActivity;
import com.tencent.bugly.crashreport.CrashReport;
/**
 * Created by Android Studio.
@@ -17,13 +18,23 @@
    static Dialog dialog;
    public static void show(Activity activity) {
        dialog = android.app.ProgressDialog.show(activity, "", "正在通信请稍后", true, true);
        try {
            dialog = android.app.ProgressDialog.show(activity, "", "正在通信请稍后", true, true);
        } catch (Exception e) {
            e.printStackTrace();
            CrashReport.postCatchedException(e);
        }
    }
    public static void dismiss() {
        if (dialog != null) {
            dialog.dismiss();
            dialog = null;
        try {
            if (dialog != null && dialog.isShowing()) {
                dialog.dismiss();
                dialog = null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            CrashReport.postCatchedException(e);
        }
    }
}
easysocket/src/main/java/com/easysocket/connection/iowork/EasyReader.java
@@ -196,6 +196,7 @@
                // 停止线程
                stopThread = true;
                release();
                LogUtil.i("reader停止线程");
                CrashReport.postCatchedException(unrecoverableException);
            } catch (ReadRecoverableExeption readRecoverableExeption) {
                readRecoverableExeption.printStackTrace();
@@ -289,6 +290,7 @@
    // 释放资源
    private void release() {
        LogUtil.i("reader线程释放资源");
        if (originBuf != null) {
            originBuf = null;
        }