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/res/layout/qihe_line_iten_card.xml | 184 + qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java | 216 ++ qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoResult.java | 137 + baselibrary/src/main/java/com/dayu/baselibrary/utils/MornyUtil.java | 38 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/RechargeBean.java | 187 + qiheonlinelibrary/src/main/res/layout/activity_red_card_qhl.xml | 173 + qiheonlinelibrary/src/main/AndroidManifest.xml | 12 baselibrary/src/main/java/com/dayu/baselibrary/view/TipDialog.java | 3 baselibrary/src/main/res/layout/confirm_dialog.xml | 16 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java | 105 qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml | 378 ++- baselibrary/src/main/res/layout/edt_dialog.xml | 14 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/UserListResult.java | 118 + qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/RechargeDao.java | 8 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/BaseResponse.java | 17 baselibrary/src/main/java/com/dayu/baselibrary/business/BusinessProvider.java | 27 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/CardAdapter.java | 121 + qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/UserCardBean.java | 137 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java | 2 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java | 2 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoListResult.java | 165 + qiheonlinelibrary/src/main/res/layout/dialog_chose_type.xml | 105 + qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/RSAUtile.java | 55 qiheonlinelibrary/src/main/res/layout/activity_new_card_qhl.xml | 29 baselibrary/src/main/java/com/dayu/baselibrary/view/EdtDialog.java | 23 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivity.java | 131 + qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/RegionCard.java | 50 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java | 30 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/QHOnLineAppDatabase.java | 3 qiheonlinelibrary/src/main/res/layout/activity_user_search_qhl.xml | 37 app/src/main/res/layout/activity_login.xml | 4 baselibrary/src/main/res/layout/password_dialog.xml | 13 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java | 22 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/progress/NetLoadingDialog.java | 8 baselibrary/src/main/res/drawable/cursor_drawable.xml | 6 qiheonlinelibrary/src/main/res/layout/activity_card_search_qhl.xml | 37 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/RechargeResult.java | 71 baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java | 17 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java | 201 + qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/UserSearchAdapter.java | 111 + qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/PricePlanResult.java | 166 + baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java | 2 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ChooseReplacementDialog.java | 85 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java | 2 qiheonlinelibrary/src/main/res/layout/qihe_line_item_user.xml | 139 + baselibrary/src/main/java/com/dayu/baselibrary/business/StartLoginNavigotor.java | 14 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java | 89 qiheonlinelibrary/src/main/res/layout/dialog_replace_price.xml | 78 baselibrary/src/main/java/com/dayu/baselibrary/utils/DeviceUtils.java | 47 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/RechargeAdapter.java | 2 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/OpenCardResult.java | 31 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/LoginResult.java | 56 app/src/main/java/com/dayu/recharge/activity/LoginActivity.java | 99 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/MyIntercepterApplication.java | 13 qiheonlinelibrary/src/main/res/layout/activity_my_qhl.xml | 20 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ReplacementPriceDialog.java | 149 + qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml | 11 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivity.java | 16 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiManager.java | 37 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java | 141 + qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiService.java | 3 qiheonlinelibrary/src/main/res/layout/dialog_search_user.xml | 75 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/QHOnLineApplication.java | 115 + qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/QHOnlineBaseDaoSingleton.java | 2 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/NFCWreatUtils.java | 141 + henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HomeActivity.java | 36 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java | 441 ++-- app/src/main/java/com/dayu/recharge/MyApplication.java | 17 /dev/null | 38 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseActivity.java | 6 qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp | 2 baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java | 15 qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java | 3 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java | 249 + qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml | 35 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java | 101 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/BaseNFCHelper.java | 2 qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/ReplaceCardResult.java | 70 78 files changed, 4,493 insertions(+), 1,068 deletions(-) diff --git a/app/src/main/java/com/dayu/recharge/MyApplication.java b/app/src/main/java/com/dayu/recharge/MyApplication.java index f145459..61d0747 100644 --- a/app/src/main/java/com/dayu/recharge/MyApplication.java +++ b/app/src/main/java/com/dayu/recharge/MyApplication.java @@ -1,9 +1,14 @@ package com.dayu.recharge; +import android.app.Activity; import android.app.Application; +import android.content.Context; +import android.content.Intent; import android.text.TextUtils; import com.dayu.baselibrary.BaseApplication; +import com.dayu.baselibrary.business.BusinessProvider; +import com.dayu.baselibrary.business.StartLoginNavigotor; import com.dayu.baselibrary.dao.BaseDaoSingleton; import com.dayu.baselibrary.dbbean.LibraryBean; import com.dayu.baselibrary.utils.BaseCommon; @@ -12,11 +17,12 @@ import com.dayu.henanlibrary.dbBean.AdminDataBean; import com.dayu.qihealonelibrary.QHAloneApplication; import com.dayu.qiheonlinelibrary.QHOnLineApplication; +import com.dayu.recharge.activity.LoginActivity; import com.tencent.bugly.crashreport.CrashReport; import java.io.File; -public class MyApplication extends Application { +public class MyApplication extends Application implements StartLoginNavigotor { public static String TAG = "MyApplication"; //褰撳墠鍔犺浇鐨刲ibrary妯″潡 //0锛氭渤鍗楃増鏈紝1榻愭渤鍗曟満鐗� @@ -59,7 +65,8 @@ QHAloneApplication.getInstance().application = this; break; case BaseCommon.QHOnLineLibrary: - QHOnLineApplication.getInstance().application = this; + QHOnLineApplication.getInstance(this); + BusinessProvider.getInstance(this); } } } catch (Exception e) { @@ -77,4 +84,10 @@ } + @Override + public void navigateToLogin(Context context) { + Intent intent = new Intent(context, LoginActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + context.startActivity(intent); + } } diff --git a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java index 230959b..7b46a21 100644 --- a/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java +++ b/app/src/main/java/com/dayu/recharge/activity/LoginActivity.java @@ -6,7 +6,9 @@ import android.os.Bundle; import android.text.TextUtils; import android.util.Log; +import android.view.KeyEvent; import android.view.LayoutInflater; +import android.view.View; import android.widget.Toast; import androidx.annotation.NonNull; @@ -22,6 +24,9 @@ import com.dayu.henanlibrary.dao.HNBaseDaoSingleton; import com.dayu.qihealonelibrary.activity.HomeActivity; +import com.dayu.qiheonlinelibrary.QHOnLineApplication; +import com.dayu.qiheonlinelibrary.dao.QHOnLineAppDatabase; +import com.dayu.qiheonlinelibrary.dao.QHOnlineBaseDaoSingleton; import com.dayu.recharge.MyApplication; import com.dayu.recharge.databinding.ActivityLoginBinding; import com.hjq.permissions.OnPermissionCallback; @@ -42,7 +47,7 @@ ActivityLoginBinding binding; PassWordBean passWordBean; -// com.dayu.qihealonelibrary.dbBean.PassWordBean + // com.dayu.qihealonelibrary.dbBean.PassWordBean int clickNumber; @Override @@ -68,35 +73,44 @@ }); binding.loginBtn.setOnClickListener(v -> { String psStr = binding.loginPw.getText().toString(); + String nameStr = binding.loginName.getText().toString(); if (TextUtils.isEmpty(psStr)) { TipUtil.show("璇疯緭鍏ュ瘑鐮�"); return; } - if ((passWordBean == null && psStr.equals("123456")) + if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary && TextUtils.isEmpty(nameStr)) { + TipUtil.show("璇疯緭鍏ヨ处鍙�"); + return; + } + if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary) { + QHOnLineApplication.getInstance().getPublicKey(this, nameStr, psStr); + } else if ((passWordBean == null && psStr.equals("123456")) || passWordBean != null && passWordBean.getPassWord().equalsIgnoreCase(WSMD5.getMD5Str(psStr))) { - - startToHomeActivity(); - + startToHomeActivity(); } else { Toast.makeText(LoginActivity.this, "瀵嗙爜閿欒", Toast.LENGTH_SHORT).show(); } + + }); try { PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0); binding.versionName.setText("褰撳墠鐗堟湰锛歏" + packageInfo.versionName); - } catch (PackageManager.NameNotFoundException e) { + } catch ( + PackageManager.NameNotFoundException e) { throw new RuntimeException(e); } + } - - @Override protected void onResume() { super.onResume(); - Log.i("LoginActivity","onResume"); - + Log.i("LoginActivity", "onResume"); + if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary) { + binding.nameLL.setVisibility(View.VISIBLE); + } } /** @@ -108,7 +122,8 @@ if (type == BaseCommon.HeNanLibrary) { getHNPermission(); } else if (type == BaseCommon.QHOnLineLibrary) { - getHNPermission(); + getQHOnlinPermission(); + binding.nameLL.setVisibility(View.VISIBLE); } MyApplication.myApplication.initApplication(); }); @@ -120,7 +135,7 @@ startActivity(new Intent(LoginActivity.this, com.dayu.henanlibrary.activity.HomeActivity.class)); } else if (MyApplication.myApplication.libraryType == BaseCommon.QHAloneLibrary) { startActivity(new Intent(LoginActivity.this, HomeActivity.class)); - }else if (MyApplication.myApplication.libraryType==BaseCommon.QHOnLineLibrary){ + } else if (MyApplication.myApplication.libraryType == BaseCommon.QHOnLineLibrary) { startActivity(new Intent(LoginActivity.this, com.dayu.qiheonlinelibrary.activity.HomeActivity.class)); } LoginActivity.this.finish(); @@ -220,4 +235,64 @@ } + private void getQHOnlinPermission() { + try { + XXPermissions.with(this) + // 鐢宠鍗曚釜鏉冮檺 +// .permission(Permission.RECORD_AUDIO) + // 鐢宠澶氫釜鏉冮檺 + .permission(Permission.READ_PHONE_STATE, + Permission.READ_EXTERNAL_STORAGE, + Permission.WRITE_EXTERNAL_STORAGE) + // 璁剧疆鏉冮檺璇锋眰鎷︽埅鍣紙灞�閮ㄨ缃級 + //.interceptor(new PermissionInterceptor()) + // 璁剧疆涓嶈Е鍙戦敊璇娴嬫満鍒讹紙灞�閮ㄨ缃級 + //.unchecked() + .request(new OnPermissionCallback() { + + @Override + public void onGranted(@NonNull List<String> permissions, boolean allGranted) { + if (allGranted) { + if (allGranted) {//鎵�鏈夌敵璇风殑鏉冮檺閮藉凡閫氳繃 + try { + File file = new File(QHOnlineBaseDaoSingleton.SqlitePath); + if (!file.exists()) { + file.mkdirs(); + } + + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + @Override + public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) { + if (doNotAskAgain) { + // 濡傛灉鏄姘镐箙鎷掔粷灏辫烦杞埌搴旂敤鏉冮檺绯荤粺璁剧疆椤甸潰 + } else { +// toast("鑾峰彇褰曢煶鍜屾棩鍘嗘潈闄愬け璐�"); + } + } + }); + } catch (Throwable e) { + e.printStackTrace(); + } + } + + long mExitTime; + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + if ((System.currentTimeMillis() - mExitTime) > 2000) { + Toast.makeText(LoginActivity.this, "鍐嶆寜涓�娆¢��鍑虹▼搴�", Toast.LENGTH_SHORT).show(); + mExitTime = System.currentTimeMillis(); + } else { + LoginActivity.this.finish(); + } + return true; + } + return super.onKeyDown(keyCode, event); + } } diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 749d485..e0cbb16 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -43,7 +43,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="璇疯緭鍏ヨ处鍙�" - android:text="" /> + android:text="zuoxiao" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" @@ -64,7 +64,7 @@ android:layout_height="wrap_content" android:hint="鍒濆瀵嗙爜涓烘暟瀛�1-6" android:inputType="textPassword" - android:text="" /> + android:text="ZX@@123qwA" /> </LinearLayout> diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java b/baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java index 93ba6e0..52f74bd 100644 --- a/baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java +++ b/baselibrary/src/main/java/com/dayu/baselibrary/BaseApplication.java @@ -29,4 +29,6 @@ } + + } diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/business/BusinessProvider.java b/baselibrary/src/main/java/com/dayu/baselibrary/business/BusinessProvider.java new file mode 100644 index 0000000..a0f8169 --- /dev/null +++ b/baselibrary/src/main/java/com/dayu/baselibrary/business/BusinessProvider.java @@ -0,0 +1,27 @@ +package com.dayu.baselibrary.business; + +/** + * author: zuo + * Date: 2024-08-05 + * Time: 14:15 + * 澶囨敞锛� + */ +public class BusinessProvider { + public static BusinessProvider businessProvider; + public StartLoginNavigotor startLoginNavigotor; + + public static BusinessProvider getInstance(StartLoginNavigotor startLoginNavigotor) { + if (businessProvider == null) { + + businessProvider = new BusinessProvider(); + businessProvider.startLoginNavigotor = startLoginNavigotor; + } + return businessProvider; + } + + public static BusinessProvider getBusinessProvider() { + return businessProvider; + } + + +} diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/business/StartLoginNavigotor.java b/baselibrary/src/main/java/com/dayu/baselibrary/business/StartLoginNavigotor.java new file mode 100644 index 0000000..423d9f2 --- /dev/null +++ b/baselibrary/src/main/java/com/dayu/baselibrary/business/StartLoginNavigotor.java @@ -0,0 +1,14 @@ +package com.dayu.baselibrary.business; + +import android.content.Context; + +/** + * author: zuo + * Date: 2024-08-05 + * Time: 12:29 + * 澶囨敞锛� + */ +public interface StartLoginNavigotor { + + void navigateToLogin(Context context); +} diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java b/baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java index 10ec380..4e14906 100644 --- a/baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java +++ b/baselibrary/src/main/java/com/dayu/baselibrary/utils/BaseCommon.java @@ -15,13 +15,22 @@ public final static int HeNanLibrary = 0; public final static int QHAloneLibrary = 1; - public final static int QHOnLineLibrary=2; + public final static int QHOnLineLibrary = 2; /** * 褰撳墠鍗″瘑鐮侀敊璇紝涓嶆槸鏈叕鍙稿崱 */ - public final static String CARD_TYPE_ERROR2= "-2"; + public final static String CARD_TYPE_ERROR2 = "-2"; - public final static String CARD_TYPE_ERROR1="-1"; + public final static String CARD_TYPE_ERROR1 = "-1"; + + //鎸傚け鍗$墖 + public final static int LOSS_CARD = 1; + //瑙i櫎鎸傚け + public final static int REPORT_LOSS_CARD = 2; + //鏈叧娉佃ˉ鍗� + public final static int REPLACE_HAS_CARD = 3; + //宸插叧娉佃ˉ鍗� + public final static int REPLACE_NO_CARD = 4; } diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/utils/DeviceUtils.java b/baselibrary/src/main/java/com/dayu/baselibrary/utils/DeviceUtils.java new file mode 100644 index 0000000..9c88f19 --- /dev/null +++ b/baselibrary/src/main/java/com/dayu/baselibrary/utils/DeviceUtils.java @@ -0,0 +1,47 @@ +package com.dayu.baselibrary.utils; + +import android.annotation.SuppressLint; +import android.os.Build; + +import java.lang.reflect.Method; + +/** + * author: zuo + * Date: 2024-08-02 + * Time: 17:29 + * 澶囨敞锛� + */ +public class DeviceUtils { + @SuppressLint("MissingPermission") + public static String getSN() { + String serial = null; + try { + Class<?> c = Class.forName("android.os.SystemProperties"); + Method get = c.getMethod("get", String.class); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + try { + serial = (String) get.invoke(c, "ro.sunmi.serial"); + } catch (Exception e) { + e.printStackTrace(); + } + return serial; + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + serial = Build.getSerial(); + return serial; + } else { + //瀹夊崜8浠ヤ笅浣跨敤Build.SERIAL鐩稿悓鏂瑰紡 + //return Build.SERIAL; + try { + serial = (String) get.invoke(c, "ro.serialno"); + } catch (Exception e) { + e.printStackTrace(); + } + return serial; + } + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } + } +} diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/utils/MornyUtil.java b/baselibrary/src/main/java/com/dayu/baselibrary/utils/MornyUtil.java index 102e8b8..e2381cb 100644 --- a/baselibrary/src/main/java/com/dayu/baselibrary/utils/MornyUtil.java +++ b/baselibrary/src/main/java/com/dayu/baselibrary/utils/MornyUtil.java @@ -1,6 +1,9 @@ package com.dayu.baselibrary.utils; +import android.text.TextUtils; + import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.DecimalFormat; /** @@ -16,6 +19,9 @@ * @return */ public static int changeY2F(String amount) { + if (TextUtils.isEmpty(amount)){ + return 0; + } BigDecimal bigDecimal = new BigDecimal(amount).setScale(2); return bigDecimal.multiply(new BigDecimal(100)).intValue(); } @@ -43,7 +49,8 @@ /** - * 绮剧‘闄ゆ硶锛屼繚鐣欎袱浣嶅皬鏁� + * 绮剧‘闄ゆ硶锛屼繚鐣欎袱浣嶅皬鏁� + * * @param dividend * @param divisor * @return @@ -55,4 +62,33 @@ return df.format(result); } + + /** + * 绯绘暟鍜屾按浠风浉涔樿幏寰楃數浠蜂繚鐣欎笁浣嶅皬鏁� + * @param num1 + * @param num2 + * @return + */ + public static String multiplyPrice(float num1, float num2) { + BigDecimal bd1 = BigDecimal.valueOf(num1); + BigDecimal bd2 = BigDecimal.valueOf(num2); + BigDecimal result = bd1.multiply(bd2); + return result.setScale(3, RoundingMode.HALF_UP).toString(); + } + + + /** + * + * @param num1 + * @param num2 + * @return + */ + public static String sumPrice(float num1, float num2) { + BigDecimal bd1 = BigDecimal.valueOf(num1); + BigDecimal bd2 = BigDecimal.valueOf(num2); + BigDecimal result = bd1.add(bd2); + return result.setScale(2, RoundingMode.HALF_UP).toString(); + } + + } diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java b/baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java index 2495a6c..15a8f80 100644 --- a/baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java +++ b/baselibrary/src/main/java/com/dayu/baselibrary/view/ConfirmDialog.java @@ -26,6 +26,7 @@ Activity mContext; View.OnClickListener mListner; String mData; + String mTitle; public ConfirmDialog(@NonNull Activity context) { super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); @@ -49,10 +50,26 @@ initView(); } + public ConfirmDialog(@NonNull Activity context, String title, String data, View.OnClickListener listner) { + super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); + mContext = context; + mListner = listner; + mData = data; + mTitle = title; + initView(); + } + + private void initView() { getWindow().setGravity(Gravity.CENTER); setContentView(R.layout.confirm_dialog); setCanceledOnTouchOutside(false); + TextView title = (TextView) this.findViewById(R.id.title); + if (!TextUtils.isEmpty(mTitle)) { + title.setVisibility(View.VISIBLE); + title.setText(mTitle); + } + TextView data = (TextView) this.findViewById(R.id.confirm_data); if (!TextUtils.isEmpty(mData)) { data.setText(mData); diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/view/EdtDialog.java b/baselibrary/src/main/java/com/dayu/baselibrary/view/EdtDialog.java index c4e4bd2..bb9aeee 100644 --- a/baselibrary/src/main/java/com/dayu/baselibrary/view/EdtDialog.java +++ b/baselibrary/src/main/java/com/dayu/baselibrary/view/EdtDialog.java @@ -27,6 +27,7 @@ DialogBack mDialogBack; String mEdtHint; + String mTitle; public EdtDialog(Context context, Intent intent) { super(context, R.style.ws_pay_showSelfDialog); @@ -56,6 +57,21 @@ } + /** + * @param context + * @param edtHint 杈撳叆妗嗛粯璁ゆ樉绀虹殑鍐呭 + * @param dialogBack + */ + public EdtDialog(Context context, String title, String edtHint, DialogBack dialogBack) { + super(context, R.style.ws_pay_showSelfDialog); + mContext = context; + mDialogBack = dialogBack; + mEdtHint = edtHint; + mTitle = title; + initView(); + } + + private void initView() { getWindow().setGravity(Gravity.CENTER); setContentView(R.layout.edt_dialog); @@ -65,6 +81,13 @@ if (!TextUtils.isEmpty(mEdtHint)) { editText.setHint(mEdtHint); } + TextView title = this.findViewById(R.id.title); + if (!TextUtils.isEmpty(mTitle)) { + title.setVisibility(View.VISIBLE); + title.setText(mTitle); + } + + TextView cannel = (TextView) this.findViewById(R.id.pw_cannel); textView.setOnClickListener(new View.OnClickListener() { @Override diff --git a/baselibrary/src/main/java/com/dayu/baselibrary/view/TipDialog.java b/baselibrary/src/main/java/com/dayu/baselibrary/view/TipDialog.java index 770ceae..4d337b5 100644 --- a/baselibrary/src/main/java/com/dayu/baselibrary/view/TipDialog.java +++ b/baselibrary/src/main/java/com/dayu/baselibrary/view/TipDialog.java @@ -48,11 +48,13 @@ mDialogBack = dialogBack; initView(); } + @Override public void onBackPressed() { // 鎷︽埅杩斿洖閿簨浠讹紝涓嶆墽琛岄粯璁ょ殑鎿嶄綔 // 濡傛灉鎯宠瀵硅瘽妗嗘秷澶憋紝鍙互鍦ㄦ澶勮皟鐢� super.onBackPressed(); } + private void initView() { getWindow().setGravity(Gravity.CENTER); setContentView(R.layout.text_dialog); @@ -75,7 +77,6 @@ @Override public void show() { - super.show(); /** * 璁剧疆瀹藉害鍏ㄥ睆锛岃璁剧疆鍦╯how鐨勫悗闈� diff --git a/baselibrary/src/main/res/drawable/cursor_drawable.xml b/baselibrary/src/main/res/drawable/cursor_drawable.xml new file mode 100644 index 0000000..9e922a7 --- /dev/null +++ b/baselibrary/src/main/res/drawable/cursor_drawable.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle"> + <size android:width="2dp" /> + <solid android:color="#000000" /> +</shape> \ No newline at end of file diff --git a/baselibrary/src/main/res/layout/confirm_dialog.xml b/baselibrary/src/main/res/layout/confirm_dialog.xml index 58ae784..109888b 100644 --- a/baselibrary/src/main/res/layout/confirm_dialog.xml +++ b/baselibrary/src/main/res/layout/confirm_dialog.xml @@ -15,6 +15,22 @@ android:orientation="vertical"> <TextView + android:id="@+id/title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:layout_marginRight="20dp" + android:layout_marginBottom="5dp" + android:gravity="center" + android:text="" + android:textColor="@color/dialog_btn" + android:textSize="25sp" + android:textStyle="bold" + android:visibility="gone" /> + + + <TextView android:id="@+id/confirm_data" android:layout_width="match_parent" android:layout_height="wrap_content" diff --git a/baselibrary/src/main/res/layout/edt_dialog.xml b/baselibrary/src/main/res/layout/edt_dialog.xml index 163c32a..7f826c2 100644 --- a/baselibrary/src/main/res/layout/edt_dialog.xml +++ b/baselibrary/src/main/res/layout/edt_dialog.xml @@ -13,6 +13,20 @@ android:background="@drawable/base_bg_dialog_top_stroke" android:gravity="center" android:orientation="vertical"> + <TextView + android:id="@+id/title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:layout_marginRight="20dp" + android:layout_marginBottom="5dp" + android:gravity="center" + android:text="琛ュ崱" + android:textColor="@color/dialog_btn" + android:textSize="25sp" + android:textStyle="bold" + android:visibility="gone" /> <EditText diff --git a/baselibrary/src/main/res/layout/password_dialog.xml b/baselibrary/src/main/res/layout/password_dialog.xml index c58bef0..7b13e17 100644 --- a/baselibrary/src/main/res/layout/password_dialog.xml +++ b/baselibrary/src/main/res/layout/password_dialog.xml @@ -14,14 +14,25 @@ android:background="@drawable/base_bg_dialog_top_stroke" android:gravity="center" android:orientation="vertical"> + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:layout_marginRight="20dp" + android:gravity="center" + android:text="绠$悊瀵嗙爜" + android:textStyle="bold" + android:textColor="@color/dialog_btn" + android:textSize="25sp" /> <EditText android:id="@+id/pw_et" android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginLeft="20dp" - android:layout_marginTop="20dp" + android:layout_marginTop="30dp" android:layout_marginRight="20dp" android:background="@drawable/editbg" android:hint="璇疯緭鍏ョ鐞嗗瘑鐮�" diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HomeActivity.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HomeActivity.java index d079dc5..fe854ed 100644 --- a/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HomeActivity.java +++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/activity/HomeActivity.java @@ -9,6 +9,7 @@ import android.view.View; import android.widget.Toast; +import com.dayu.baselibrary.utils.DeviceUtils; import com.dayu.baselibrary.utils.TipUtil; import com.dayu.baselibrary.view.PassWordDialog; import com.dayu.henanlibrary.HeNanApplication; @@ -61,7 +62,7 @@ // 鐢熸垚 1 鍒� 12 涔嬮棿鐨勯殢鏈烘暟瀛� int randomNumber = random.nextInt(12) + 1; AdminDataBean adminDataBean = new AdminDataBean(); - adminDataBean.setSerial(randomNumber + generateUniqueNumber(getSN())); + adminDataBean.setSerial(randomNumber + generateUniqueNumber(DeviceUtils.getSN())); baseDao.adminDao().insert(adminDataBean); } @@ -146,36 +147,5 @@ } } - @SuppressLint("MissingPermission") - public static String getSN() { - String serial = null; - try { - Class<?> c = Class.forName("android.os.SystemProperties"); - Method get = c.getMethod("get", String.class); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - try { - serial = (String) get.invoke(c, "ro.sunmi.serial"); - } catch (Exception e) { - e.printStackTrace(); - } - return serial; - } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - serial = Build.getSerial(); - return serial; - } else { - //瀹夊崜8浠ヤ笅浣跨敤Build.SERIAL鐩稿悓鏂瑰紡 - //return Build.SERIAL; - try { - serial = (String) get.invoke(c, "ro.serialno"); - } catch (Exception e) { - e.printStackTrace(); - } - return serial; - } - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); - } - } + } diff --git a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java index b72f7a6..52e0d04 100644 --- a/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java +++ b/qihealonelibrary/src/main/java/com/dayu/qihealonelibrary/activity/NFCWreatActivity.java @@ -136,7 +136,6 @@ } if (this.getIntent().hasExtra("electricPriceCard")) { electricPriceCard = (ElectricPriceCard) this.getIntent().getSerializableExtra("electricPriceCard"); - binding.cardData.setText("鍒朵綔鐢ㄦ埛鐢甸噺鍗曚环鍗n褰撳墠鍗曚环锛�" + electricPriceCard.getElectricPrice().toString() + " 鍏�"); } if (this.getIntent().hasExtra("passWordCard")) { @@ -373,8 +372,6 @@ data.append("鍗� 鍙凤細" + rechargeBean.getCardNumber() + "\n"); data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + " 鍏�" + "\n"); data.append("鍗″唴浣欓锛�" + rechargeBean.getBalance() + " 鍏�" + "\n"); -// data.append("鍏呭�兼按閲忥細" + rechargeBean.getRechargeWater() + " 鍚�" + "\n"); -// data.append("鍓╀綑姘撮噺锛�" + rechargeBean.getSurplusWater() + " 鍚�" + "\n"); data.append("鏃� 鏈燂細" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2) + "\n\n"); data.append("*****************************"); } diff --git a/qiheonlinelibrary/src/main/AndroidManifest.xml b/qiheonlinelibrary/src/main/AndroidManifest.xml index 6e0f9f4..1cf9208 100644 --- a/qiheonlinelibrary/src/main/AndroidManifest.xml +++ b/qiheonlinelibrary/src/main/AndroidManifest.xml @@ -1,13 +1,13 @@ <?xml version="1.0" encoding="utf-8"?> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.dayu.qiheonlinelibrary"> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.dayu.qiheonlinelibrary"> <!--鍏佽璁块棶缃戠粶锛屽繀閫夋潈闄�--> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" - android:supportsRtl="true" - > + android:supportsRtl="true"> <activity android:name="com.dayu.qiheonlinelibrary.activity.AdminSetupActivity" android:exported="true"> @@ -87,6 +87,12 @@ <data android:mimeType="text/plain" /> </intent-filter> </activity> + <activity + android:name=".activity.UserSearchActivity" + android:launchMode="singleTop" /> + <activity + android:name=".activity.CardSearchActivity" + android:launchMode="singleTop" /> </application> </manifest> \ No newline at end of file diff --git a/qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp b/qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp index 352e938..2966de0 100644 --- a/qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp +++ b/qiheonlinelibrary/src/main/cpp/qiheonline-native-lib.cpp @@ -41,7 +41,7 @@ extern "C" JNIEXPORT jstring -Java_com_dayu_qihealonelibrary_tools_BaseNFCHelper_getSafeKey(JNIEnv *env, jobject instance,jobject contextObject) { +Java_com_dayu_qiheonlinelibrary_tools_BaseNFCHelper_getSafeKey(JNIEnv *env, jobject instance,jobject contextObject) { jmethodID getPackageManagerId = (env)->GetMethodID(contextClass, "getPackageManager","()Landroid/content/pm/PackageManager;"); jmethodID getPackageNameId = (env)->GetMethodID(contextClass, "getPackageName","()Ljava/lang/String;"); jmethodID signToStringId = (env)->GetMethodID(signatureClass, "toCharsString","()Ljava/lang/String;"); 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(); + } + } + }); + } } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseActivity.java index d9bca5a..7b1a2d4 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/BaseActivity.java @@ -9,7 +9,7 @@ import com.dayu.baselibrary.view.TitleBar; import com.dayu.qiheonlinelibrary.R; -import com.dayu.qiheonlinelibrary.dao.BaseDaoSingleton; +import com.dayu.qiheonlinelibrary.dao.QHOnlineBaseDaoSingleton; import com.dayu.qiheonlinelibrary.dao.QHOnLineAppDatabase; @@ -30,8 +30,8 @@ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - baseDao = BaseDaoSingleton.getInstance(this); - asynchBaseDao = BaseDaoSingleton.getAsynchInstance(this); + baseDao = QHOnlineBaseDaoSingleton.getInstance(this); + asynchBaseDao = QHOnlineBaseDaoSingleton.getAsynchInstance(this); Log.i(TAG, SIGN); if (!isMyApp()) { Log.i(TAG, "isMyApp"); diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java new file mode 100644 index 0000000..93e20e2 --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/CardSearchActivity.java @@ -0,0 +1,216 @@ +package com.dayu.qiheonlinelibrary.activity; + +import android.content.Intent; +import android.os.Bundle; +import android.view.LayoutInflater; + +import androidx.recyclerview.widget.LinearLayoutManager; + +import com.dayu.baselibrary.activity.BaseActivity; +import com.dayu.baselibrary.utils.BaseCommon; +import com.dayu.baselibrary.utils.DeviceUtils; +import com.dayu.baselibrary.utils.TipUtil; +import com.dayu.baselibrary.utils.ToastUtil; +import com.dayu.baselibrary.view.ConfirmDialog; +import com.dayu.qiheonlinelibrary.adapter.CardAdapter; +import com.dayu.qiheonlinelibrary.bean.CardInfoListResult; +import com.dayu.qiheonlinelibrary.bean.UserListResult; +import com.dayu.qiheonlinelibrary.databinding.ActivityCardSearchQhlBinding; +import com.dayu.qiheonlinelibrary.net.ApiManager; +import com.dayu.qiheonlinelibrary.net.BaseResponse; +import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener; +import com.scwang.smart.refresh.footer.ClassicsFooter; +import com.scwang.smart.refresh.header.ClassicsHeader; +import com.scwang.smart.refresh.layout.api.RefreshLayout; +import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener; +import com.scwang.smart.refresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * author: zuo + * Date: 2024-08-08 + * Time: 13:37 + * 澶囨敞锛氶�夋嫨鐢ㄦ埛鐨勫崱鐗� + */ +public class CardSearchActivity extends BaseActivity { + ActivityCardSearchQhlBinding binding; + RefreshLayout myRefreshLayout; + CardAdapter adapter; + + int page = 1; + int size = 10; + + String pearsontId; + List<CardInfoListResult.Records> records = new ArrayList<>(); + int type; + ConfirmDialog confirmDialog; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = ActivityCardSearchQhlBinding.inflate(LayoutInflater.from(this)); + setContentView(binding.getRoot()); + pearsontId = this.getIntent().getStringExtra("pearsontId"); + type = this.getIntent().getIntExtra("type", 0); + initView(); + selectUser(true); + } + + + private void initView() { + myRefreshLayout = (RefreshLayout) binding.refreshLayout; + myRefreshLayout.setRefreshFooter(new ClassicsFooter(this)); + myRefreshLayout.setRefreshHeader(new ClassicsHeader(this)); + myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(RefreshLayout refreshlayout) { + page = page + 1; + selectUser(false); + } + }); + adapter = new CardAdapter(this, records, new CardAdapter.OnItemClickListener() { + @Override + public void onItemClick(int position) { + String title; + if (type == BaseCommon.LOSS_CARD) { + title = "鎸傚け鍗$墖"; + } else if (type == BaseCommon.REPORT_LOSS_CARD) { + title = "瑙i櫎鎸傚け鍗$墖"; + } else { + title = "琛ュ崱"; + } + String data = "鍗″彿锛�" + records.get(position).getIccardNum(); + confirmDialog = new ConfirmDialog(CardSearchActivity.this, title, data, v -> { + + String iccardInfoId = records.get(position).getIccardInfoId(); + if (type == BaseCommon.LOSS_CARD) { + lossCard(iccardInfoId); + } else if (type == BaseCommon.REPORT_LOSS_CARD) { + reportLossCard(iccardInfoId); + } else if (type == BaseCommon.REPLACE_HAS_CARD) { + + } else if (type == BaseCommon.REPLACE_NO_CARD) { + //琛ュ崱鍓嶉渶瑕佸厛鎸傚け + if (records.get(position).getIccardStatus() == 0) { + lossCard(iccardInfoId); + } else if (records.get(position).getIccardStatus() == 2) { + startNFCActivit(iccardInfoId); + } else { + TipUtil.show("褰撳墠鍗$姸鎬佷笉鑳藉啀琛ュ崱"); + } + + + } + confirmDialog.dismiss(); + }); + confirmDialog.show(); + + + } + }); + LinearLayoutManager layoutManager = new LinearLayoutManager(this); + binding.recyclerView.setLayoutManager(layoutManager); + binding.recyclerView.setAdapter(adapter); + + myRefreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(RefreshLayout refreshlayout) { + selectUser(true); + } + }); + } + + + /** + * 鏌ヨ鍗� + */ + private void selectUser(boolean isRefresh) { + if (isRefresh) { + page = 1; + records.clear(); + } + Map<String, Object> data = new HashMap<>(); + data.put("peasantId", pearsontId); + data.put("current", page); + data.put("pageSize", size); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/info/getIccardPeasantVoList", CardInfoListResult.class, data, new SubscriberListener<BaseResponse<CardInfoListResult>>() { + @Override + public void onNext(BaseResponse<CardInfoListResult> t) { + if (t.isSuccess()) { + if (t.getData().getTotal() == records.size()) { + myRefreshLayout.finishLoadMoreWithNoMoreData(); + } else { + records.addAll(t.getData().getRecords()); + } + adapter.notifyDataSetChanged(); + myRefreshLayout.finishLoadMore(); + if (isRefresh) { + myRefreshLayout.finishRefresh(); + } + } + } + }); + } + + /** + * 鎸傚け鍗� + */ + private void lossCard(String iccardInfoId) { + + Map<String, Object> data = new HashMap<>(); + data.put("iccardInfoId", iccardInfoId); + data.put("equipCode", DeviceUtils.getSN()); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/reportLossCard", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() { + @Override + public void onNext(BaseResponse<UserListResult> t) { + if (t.isSuccess()) { + if (type == BaseCommon.LOSS_CARD) { + TipUtil.show(CardSearchActivity.this, "鎸傚け鎴愬姛", () -> { + CardSearchActivity.this.finish(); + }); + } else if (type == BaseCommon.REPLACE_NO_CARD) { + startNFCActivit(iccardInfoId); + } + + } else { + ToastUtil.show(t.getMsg()); + } + } + }); + } + + /** + * 瑙i櫎鎸傚け鍗� + */ + private void reportLossCard(String iccardInfoId) { + + Map<String, Object> data = new HashMap<>(); + data.put("iccardInfoId", iccardInfoId); + data.put("equipCode", DeviceUtils.getSN()); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/releaseLossCard", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() { + @Override + public void onNext(BaseResponse<UserListResult> t) { + if (t.isSuccess()) { + TipUtil.show(CardSearchActivity.this, "瑙i櫎鎸傚け鎴愬姛", () -> { + CardSearchActivity.this.finish(); + }); + } else { + ToastUtil.show(t.getMsg()); + } + } + }); + } + + private void startNFCActivit(String iccardInfoId) { + //鐩存帴琛ュ崱鐨勬柟寮� + Intent intent = new Intent(CardSearchActivity.this, NFCWreatActivity.class); + intent.putExtra("iccardInfoId", iccardInfoId); + intent.putExtra("replaceType", type); + startActivity(intent); + CardSearchActivity.this.finish(); + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java index 9cef0ff..7697c0a 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/HomeActivity.java @@ -2,15 +2,26 @@ import android.content.Intent; import android.os.Bundle; +import android.text.TextUtils; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.widget.Toast; +import com.dayu.baselibrary.utils.BaseCommon; import com.dayu.baselibrary.utils.TipUtil; import com.dayu.baselibrary.view.PassWordDialog; +import com.dayu.qiheonlinelibrary.QHOnLineApplication; +import com.dayu.qiheonlinelibrary.bean.PricePlanResult; import com.dayu.qiheonlinelibrary.databinding.ActivityHomeQhlBinding; import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean; +import com.dayu.qiheonlinelibrary.net.ApiManager; +import com.dayu.qiheonlinelibrary.net.BaseResponse; +import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener; +import com.dayu.qiheonlinelibrary.view.ChooseReplacementDialog; + +import java.util.HashMap; +import java.util.Map; /** @@ -23,6 +34,7 @@ public static HomeActivity homeActivity; ActivityHomeQhlBinding homeBinding; + ChooseReplacementDialog replacementDialog; @Override protected void onCreate(Bundle savedInstanceState) { @@ -34,64 +46,47 @@ } + @Override + protected void onResume() { + super.onResume(); + if (TextUtils.isEmpty(QHOnLineApplication.getInstance().planId)) { + QHOnLineApplication.getInstance().getPricePlanVo(this); + } + } private void initView() { - homeBinding.homeNewCard.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - AdminDataBean adminData = baseDao.adminDao().findFirst(); - if (adminData != null) { - startActivity(new Intent(HomeActivity.this, NewCardActivity.class)); - } else { - TipUtil.show(HomeActivity.this, "璇峰厛鍦ㄤ釜浜轰腑蹇冨唴璁剧疆鍖哄煙鍙�"); - } - - } - }); - homeBinding.homeRecharge.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - AdminDataBean adminData = baseDao.adminDao().findFirst(); - if (adminData != null) { -// if (adminData.getWaterPrice() != 0) { - startActivity(new Intent(HomeActivity.this, RechargeActivity.class)); -// } else { -// TipUtil.show(HomeActivity.this, "璇峰厛鍦ㄤ釜浜轰腑蹇冨唴璁剧疆姘翠环"); -// } - } else { - TipUtil.show("璇峰厛鍦ㄤ釜浜轰腑蹇冨唴璁剧疆鍖哄煙鍙�"); - } - - } - }); - homeBinding.homeRedCard.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class)); - } - }); + homeBinding.homeNewCard.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, NewCardActivity.class))); + homeBinding.homeRecharge.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, RechargeActivity.class))); + homeBinding.homeRedCard.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, ReadCardAcitivy.class))); //绠$悊绯荤粺鐣岄潰 - homeBinding.homeAdmin.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, SysActivity.class)); - passWordDialog.show(); - } + homeBinding.homeAdmin.setOnClickListener(v -> { + PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, SysActivity.class)); + passWordDialog.show(); }); //鍙傛暟璁剧疆 - homeBinding.homeParameter.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, ParameterActivity.class)); - passWordDialog.show(); - } + homeBinding.homeParameter.setOnClickListener(v -> { + PassWordDialog passWordDialog = new PassWordDialog(HomeActivity.this, new Intent(HomeActivity.this, ParameterActivity.class)); + passWordDialog.show(); }); - homeBinding.homeMy.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - startActivity(new Intent(HomeActivity.this, MyActivity.class)); - - } + homeBinding.homeMy.setOnClickListener(v -> startActivity(new Intent(HomeActivity.this, MyActivity.class))); + homeBinding.homeLoss.setOnClickListener(v -> { + Intent intent = new Intent(HomeActivity.this, UserSearchActivity.class); + intent.putExtra("type", BaseCommon.LOSS_CARD); + startActivity(intent); + }); + homeBinding.homeReportLoss.setOnClickListener(v -> { + Intent intent = new Intent(HomeActivity.this, UserSearchActivity.class); + intent.putExtra("type", BaseCommon.REPORT_LOSS_CARD); + startActivity(intent); + }); + homeBinding.homeReplacement.setOnClickListener(v -> { + replacementDialog = new ChooseReplacementDialog(this, type -> { + Intent intent = new Intent(HomeActivity.this, UserSearchActivity.class); + intent.putExtra("type", type); + startActivity(intent); + replacementDialog.dismiss(); + }); + replacementDialog.show(); }); } @@ -118,4 +113,6 @@ } return super.onKeyDown(keyCode, event); } + + } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java index 2574be7..15e946c 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/MyActivity.java @@ -8,7 +8,6 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; @@ -18,10 +17,10 @@ import com.dayu.baselibrary.view.PassWordDialog; import com.dayu.baselibrary.view.datepicker.CustomDatePicker; import com.dayu.baselibrary.view.datepicker.DateFormatUtils; +import com.dayu.qiheonlinelibrary.QHOnLineApplication; import com.dayu.qiheonlinelibrary.databinding.ActivityMyQhlBinding; import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean; import com.dayu.qiheonlinelibrary.dbBean.ElectricPriceBean; -import com.dayu.qiheonlinelibrary.utils.DeviceNumberUtils; import com.dayu.qiheonlinelibrary.utils.ExcelUtil; import java.io.File; @@ -206,31 +205,10 @@ private void setData() { AdminDataBean adminData; try { - adminData = baseDao.adminDao().findFirst(); - if (adminData != null) { - myBinding.myAdminName.setText(adminData.getAddressCode()); - myBinding.myVillageNum.setText(adminData.getSerial()); -// myBinding.myWaterPrice.setText(MornyUtil.changeF2Y(adminData.getWaterPrice())); - } else { - myBinding.myAdminName.setText("璇风偣鍑诲尯鍩熷彿杩涜璁剧疆"); - myBinding.myVillageNum.setText("璇风偣鍑诲尯鍩熷彿杩涜璁剧疆"); -// myBinding.myWaterPrice.setText("璇风偣鍑诲尯鍩熷彿杩涜璁剧疆"); - } - StringBuilder msgData = new StringBuilder(); + myBinding.myAdName.setText(QHOnLineApplication.getInstance().addressName); + myBinding.myAdminName.setText(QHOnLineApplication.getInstance().arerNumber); + myBinding.myWaterPrice.setText(QHOnLineApplication.getInstance().electriclePriceStr); - String initCode = DeviceNumberUtils.getDeviceNumber(); - if (TextUtils.isEmpty(initCode)) { - msgData.append("璁惧鏈敞鍐�"); - } else { - msgData.append("璁惧娉ㄥ唽鍙凤細" + initCode); - } - myBinding.myTestConnect.setText(msgData); - ElectricPriceBean priceBean = baseDao.electricPriceDao().findFirst(); - if (priceBean != null) { - myBinding.myWaterPrice.setText(priceBean.getPrice() + "鍏�"); - } else { - myBinding.myWaterPrice.setText("1.000鍏�"); - } } catch (Exception e) { e.printStackTrace(); } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java index e6c6868..33905c7 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NFCWreatActivity.java @@ -12,12 +12,15 @@ import com.dayu.baselibrary.utils.AidlUtil; import com.dayu.baselibrary.utils.BaseCommon; import com.dayu.baselibrary.utils.DateUtil; +import com.dayu.baselibrary.utils.DeviceUtils; import com.dayu.baselibrary.utils.MornyUtil; import com.dayu.baselibrary.utils.TipUtil; import com.dayu.baselibrary.view.ConfirmDialog; import com.dayu.baselibrary.view.TitleBar; - import com.dayu.qiheonlinelibrary.QHOnLineApplication; +import com.dayu.qiheonlinelibrary.bean.LoginResult; +import com.dayu.qiheonlinelibrary.bean.OpenCardResult; +import com.dayu.qiheonlinelibrary.bean.ReplaceCardResult; import com.dayu.qiheonlinelibrary.card.CleanCard; import com.dayu.qiheonlinelibrary.card.CleanUserCard; import com.dayu.qiheonlinelibrary.card.ConfigurationPowerCard; @@ -31,16 +34,21 @@ import com.dayu.qiheonlinelibrary.card.TestCard; import com.dayu.qiheonlinelibrary.card.UserCard; import com.dayu.qiheonlinelibrary.databinding.ActivityWriteTextQhlBinding; -import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean; import com.dayu.qiheonlinelibrary.dbBean.RechargeBean; import com.dayu.qiheonlinelibrary.dbBean.UserCardBean; -import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper; +import com.dayu.qiheonlinelibrary.net.ApiManager; +import com.dayu.qiheonlinelibrary.net.BaseResponse; +import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener; import com.dayu.qiheonlinelibrary.tools.NfcReadHelper; import com.dayu.qiheonlinelibrary.tools.WriteCardUtils; import com.dayu.qiheonlinelibrary.utils.CardCommon; +import com.dayu.qiheonlinelibrary.utils.NFCWreatUtils; +import com.dayu.qiheonlinelibrary.view.ReplacementPriceDialog; import com.tencent.bugly.crashreport.CrashReport; import java.util.Calendar; +import java.util.HashMap; +import java.util.Map; /** * Copyright (C), 2023, @@ -54,7 +62,6 @@ CleanUserCard cleanUserCard; ManageCard manageCard; DomainCard domainCard; - CleanCard cleanCard; ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad; TestCard testCard; @@ -70,7 +77,6 @@ boolean passwordFlag = false; boolean cleanFlag = false; boolean regionFlag = false; - boolean userFlag = false; boolean manageCardFlag = false; boolean registeredFlag = false; boolean administrativeCardFlag = false; @@ -78,23 +84,17 @@ boolean domainCrdFlag = false; - boolean testCardFlag = false; boolean configDeviceRegiestFlag = false; boolean configPowerFlag = false; UserCardBean userCardBean; - UserCard olduserCard; String morny; - String rechageWater;//鍏呭�肩殑姘撮噺 String userName; - AdminDataBean adminData; RechargeBean rechargeBean; Intent intent; - - //鎵撳嵃 QHOnLineApplication baseApp; @@ -112,6 +112,13 @@ //褰撳墠鍗$殑鐗╃悊鍗″彿 String cardNumber; ConfirmDialog confirmDialog; + //鏃х殑鍗d + String iccardInfoId; + //琛ュ崱绫诲瀷 + int replaceType; + //琛ュ崱宸ユ湰璐圭敤 + String rechargeCardMoney; + ReplacementPriceDialog replacementPriceDialog; @Override protected void onCreate(Bundle savedInstanceState) { @@ -120,9 +127,9 @@ binding = ActivityWriteTextQhlBinding.inflate(LayoutInflater.from(this)); setContentView(binding.getRoot()); nfcWreatActivity = this; - getData(); titleBack(); baseApp = QHOnLineApplication.getInstance(); + getData(); } catch (Exception e) { e.printStackTrace(); CrashReport.postCatchedException(e); @@ -196,18 +203,26 @@ isRecharge = true; morny = this.getIntent().getStringExtra("morny"); userName = this.getIntent().getStringExtra("userName"); - cardNumber = this.getIntent().getStringExtra("cardNumber"); - userCardBean = (UserCardBean) this.getIntent().getSerializableExtra("userCardBean"); + rechargeBean = (RechargeBean) this.getIntent().getSerializableExtra("rechargeBean"); + // rechageWater = this.getIntent().getStringExtra("rechageWater"); binding.cardData.setText("鍏呭�奸噾棰濓細" + morny + " 鍏�"); } - - try { - adminData = baseDao.adminDao().findFirst(); - } catch (Exception e) { - e.printStackTrace(); - CrashReport.postCatchedException(e); + if (this.getIntent().hasExtra("iccardInfoId")) { + iccardInfoId = this.getIntent().getStringExtra("iccardInfoId"); + replaceType = this.getIntent().getIntExtra("replaceType", 0); + replacementPriceDialog = new ReplacementPriceDialog(this, data -> { + if (TextUtils.isEmpty(data)) { + rechargeCardMoney = "0"; + } + rechargeCardMoney = data; + binding.cardData.setText("琛ュ崱宸ユ湰璐癸細" + rechargeCardMoney + "鍏�"); + replacementPriceDialog.dismiss(); + }); + replacementPriceDialog.show(); } + + } catch (Exception e) { e.printStackTrace(); CrashReport.postCatchedException(e); @@ -225,8 +240,6 @@ String[] cardTypes = cardType.split(","); if (cardTypes != null && cardTypes.length == 2) { cardNumber = cardType.split(",")[0]; - cardNumber = HexUtil.spaceHex(cardNumber); - cardNumber = HexUtil.HighLowHex(cardNumber); cardType = cardType.split(",")[1]; } Log.i("NFCWreatActivity", "cardType=" + cardType); @@ -241,10 +254,12 @@ } else if (cardType.equals(BaseCommon.CARD_TYPE_ERROR2)) { TipUtil.show(NFCWreatActivity.this, "鍗$墖鏈兘璇嗗埆锛岃妫�鏌ュ崱鐗囨槸鍚︽槸鏈叕鍙稿崱鐗�"); } else { + //璇诲崱鎴愬姛 Log.i("NFCWreatActivity", "olduserCard!=null saveData"); - userCardBean.setCardNumber(cardNumber); - baseDao.userCardDao().insert(userCardBean); - saveData(); +// + openCard(cardNumber, 1, userCardBean.getPersonId(), String.valueOf(userCardBean.getCardMorny())); + + } } catch (Exception e) { e.printStackTrace(); @@ -262,53 +277,40 @@ || domainCard != null || testCard != null || configureDeviceRegistrationCrad != null || configurationPowerCard != null || regionCard != null || passWordCard != null || electricPriceCard != null) { - if (userCard != null && TextUtils.isEmpty(morny)) { - userFlag = WriteCardUtils.setUser(intent, userCard, this); - } + if (electricPriceCard != null) { - setElectricPriceCard(intent, electricPriceCard); + electricPriceFlag = NFCWreatUtils.getInstance(this, baseDao).setElectricPriceCard(intent, electricPriceCard); } if (passWordCard != null) { - setPassWordCard(intent, passWordCard); + passwordFlag = NFCWreatUtils.getInstance(this, baseDao).setPassWordCard(intent, passWordCard); } if (regionCard != null) { - setRegionCard(intent, regionCard); + regionFlag = NFCWreatUtils.getInstance(this, baseDao).setRegionCard(intent, regionCard); } if (cleanCard != null) { - setClean(intent, cleanCard); + cleanFlag = NFCWreatUtils.getInstance(this, baseDao).setClean(intent, cleanCard); } if (manageCard != null) { - setmanageCard(intent, manageCard); -// if (manageCardFlag && userCardBeanByManager != null) { -// //淇敼鐢ㄦ埛琛ㄤ俊鎭慨鏀规垚鏂板崱鍗″彿 -// userCardBeanByManager.setCardNumber(cardNumber); -// baseDao.userCardDao().update(userCardBeanByManager); -// } + manageCardFlag = NFCWreatUtils.getInstance(this, baseDao).setmanageCard(intent, manageCard); } if (registeredCard != null) { - setRegisteredCard(intent, registeredCard); + registeredFlag = NFCWreatUtils.getInstance(this, baseDao).setRegisteredCard(intent, registeredCard); } if (cleanUserCard != null) { - setCleanUserCard(intent, cleanUserCard); + cleanUserCardFlag = NFCWreatUtils.getInstance(this, baseDao).setCleanUserCard(intent, cleanUserCard); } if (domainCard != null) { - setDomainCard(intent, domainCard); - } - if (testCard != null) { - setTestCard(intent, testCard); + domainCrdFlag = NFCWreatUtils.getInstance(this, baseDao).setDomainCard(intent, domainCard); } if (configureDeviceRegistrationCrad != null) { - setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad); + configDeviceRegiestFlag = NFCWreatUtils.getInstance(this, baseDao).setConfigDeviceRegiest(intent, configureDeviceRegistrationCrad); } if (configurationPowerCard != null) { - setConfigurationPower(intent, configurationPowerCard); + configPowerFlag = NFCWreatUtils.getInstance(this, baseDao).setConfigurationPower(intent, configurationPowerCard); } - if (electricPriceFlag || passwordFlag || regionFlag || configPowerFlag || configDeviceRegiestFlag || testCardFlag || domainCrdFlag || userFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag) { + if (electricPriceFlag || passwordFlag || regionFlag || configPowerFlag || configDeviceRegiestFlag || domainCrdFlag || cleanFlag || manageCardFlag || registeredFlag || administrativeCardFlag || cleanUserCardFlag) { try { - if (userFlag && userCardBean != null) { - //鐢ㄦ埛鍗� - startDetailActivity(userCardBean.getUserName(), "缁堢鍐欏崱"); - } else if (!TextUtils.isEmpty(morny)) { + if (!TextUtils.isEmpty(morny)) { TipUtil.show(NFCWreatActivity.this, "鍏呭�兼垚鍔�", () -> NFCWreatActivity.this.finish()); } else { TipUtil.show(NFCWreatActivity.this, "鍐欏崱鎴愬姛", () -> NFCWreatActivity.this.finish()); @@ -340,14 +342,15 @@ super.onNewIntent(intent); try { this.intent = intent; -// startAnim(); - Log.i("NFCWreatActivity", "isUser:" + isUser); if (isUser) { //鏂板崱娉ㄥ唽閫昏緫 checkHasUser(); } else if (isRecharge) { //鍏呭�奸�昏緫 rechargeWreatCard(); + } else if (!TextUtils.isEmpty(iccardInfoId)) { + //琛ュ崱閫昏緫 + replaceCard(); } else { //鍏朵粬绠$悊鍗¢�昏緫 saveData(); @@ -374,9 +377,7 @@ data.append("鍗� 鍙凤細" + rechargeBean.getCardNumber() + "\n"); data.append("鍏呭�奸噾棰濓細" + rechargeBean.getMorny() + " 鍏�" + "\n"); data.append("鍗″唴浣欓锛�" + rechargeBean.getBalance() + " 鍏�" + "\n"); -// data.append("鍏呭�兼按閲忥細" + rechargeBean.getRechargeWater() + " 鍚�" + "\n"); -// data.append("鍓╀綑姘撮噺锛�" + rechargeBean.getSurplusWater() + " 鍚�" + "\n"); - data.append("鏃� 鏈燂細" + DateUtil.dateToStamp(rechargeBean.getDate(), DateUtil.type2) + "\n\n"); + data.append("鏃� 鏈燂細" + DateUtil.dateToStamp(rechargeBean.getRechargeDate(), DateUtil.type2) + "\n\n"); data.append("*****************************"); } float size = 26; @@ -409,43 +410,11 @@ private void rechargeWreatCard() { try { String cardNumberThis = NfcReadHelper.getInstence(intent, this).getCardNumber(); - cardNumberThis = HexUtil.spaceHex(cardNumberThis); - cardNumberThis = HexUtil.HighLowHex(cardNumberThis); //鍒ゆ柇鏄惁鍏呭�肩殑鏄竴涓崱 - if (cardNumberThis.equalsIgnoreCase(cardNumber)) { - //浣欓 - int balance = userCard.getBalance() + MornyUtil.changeY2F(morny); - userCard.setBalance(balance); - //鍓╀綑姘撮噺 -// int surplusWater = userCard.getSurplusWater() + MornyUtil.changeY2F(rechageWater); -// userCard.setSurplusWater(surplusWater); - - int rechageTims = userCard.getRechargeTimes() + 1; - if (rechageTims == 256) { - rechageTims = 0; - } - userCard.setRechargeTimes((short) rechageTims); + if (cardNumberThis.equalsIgnoreCase(rechargeBean.getCardNumber())) { userCard.setRechargeDate(Calendar.getInstance()); - userFlag = WriteCardUtils.setUser(intent, userCard, this); - if (userFlag) { - rechargeBean = new RechargeBean(); - rechargeBean.setUserName(userName); - rechargeBean.setSerial(userCardBean.getSerial()); - rechargeBean.setUserId(userCardBean.getUserID()); - rechargeBean.setDate(System.currentTimeMillis()); - rechargeBean.setMorny(morny); - rechargeBean.setBalance(MornyUtil.changeF2Y(balance)); - rechargeBean.setCardNumber(cardNumber); - rechargeBean.setSurplusWater(MornyUtil.changeF2Y(0)); - rechargeBean.setRechargeWater(rechageWater); - try { - baseDao.rechargeDao().insert(rechargeBean); - } catch (Exception e) { - e.printStackTrace(); - } - // 鎵撳嵃鐩稿叧 - setPrinterData(rechargeBean); - startDetailActivity(userName, "缁堢鍐欏崱"); + if (WriteCardUtils.setUser(intent, userCard, this)) { + confromRecharge(rechargeBean.getOrderId(), 0); } else { TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶆柊鍐嶈瘯"); } @@ -457,112 +426,6 @@ } } - private void setmanageCard(Intent intent, final ManageCard manageCard) { - manageCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toByte(baseDao), 1, 0); - } - - /** - * 鍒朵綔娓呴浂鍗� - * - * @param intent - * @param clearOrInitCard - */ - private void setClean(Intent intent, CleanCard clearOrInitCard) { - cleanFlag = NFCWriteHelper.getInstence(intent, this).writeData(clearOrInitCard.toByte(baseDao), 1, 0); - } - - /** - * 淇濆瓨鍖哄煙琛ㄥ彿鍗� - * - * @param intent - * @param regionCard - */ - private void setRegionCard(Intent intent, RegionCard regionCard) { - regionFlag = NFCWriteHelper.getInstence(intent, this).writeData(regionCard.toByte(), 1, 0); - } - - /** - * 瀵嗙爜鍗� - * - * @param intent - * @param passWordCard - */ - private void setPassWordCard(Intent intent, PassWordCard passWordCard) { - passwordFlag = NFCWriteHelper.getInstence(intent, this).writeData(passWordCard.toByte(baseDao), 1, 0); - } - - /** - * 鐢ㄦ埛鐢甸噺鍗曚环 - * - * @param intent - * @param electricPriceCard - */ - private void setElectricPriceCard(Intent intent, ElectricPriceCard electricPriceCard) { - electricPriceFlag = NFCWriteHelper.getInstence(intent, this).writeData(electricPriceCard.toByte(baseDao), 1, 0); - } - - /** - * 閲嶆柊娉ㄥ唽璁惧鍗� - * - * @param intent - * @param registeredCard - */ - private void setRegisteredCard(Intent intent, RegisteredCard registeredCard) { - registeredFlag = NFCWriteHelper.getInstence(intent, this).writeData(registeredCard.toByte(baseDao), 1, 0); - } - - /** - * 鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗� - * - * @param intent - * @param cleanUserCard - */ - private void setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { - cleanUserCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(cleanUserCard.toByte(baseDao), 1, 0); - } - - /** - * 璁剧疆鍩熷悕鍗� - * - * @param intent - * @param domainCard - */ - private void setDomainCard(Intent intent, DomainCard domainCard) { - try { - domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getZeroByte(), 1, 0); - if (!domainCrdFlag) { - return; - } - domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getOneByte(), 1, 1); - if (!domainCrdFlag) { - return; - } - domainCrdFlag = NFCWriteHelper.getInstence(intent, this).writeData(domainCard.getTwoByte(), 1, 2); - } catch (Exception e) { - domainCrdFlag = false; - throw new RuntimeException(e); - } - } - - private void setTestCard(Intent intent, TestCard testCard) { - testCardFlag = NFCWriteHelper.getInstence(intent, this).writeData(testCard.toByte(baseDao), 1, 0); - } - - - private void setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) { - configDeviceRegiestFlag = NFCWriteHelper.getInstence(intent, this).writeData(configureDeviceRegistrationCrad.toByte(baseDao), 1, 0); - } - - private void setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { - try { - configPowerFlag = NFCWriteHelper.getInstence(intent, this).writeData(configurationPowerCard.toByte(baseDao), 1, 0); - } catch (Exception e) { - configPowerFlag = false; - throw new RuntimeException(e); - } - } - - private void startDetailActivity(String userName, String statu) { Intent detail = new Intent(this, RechargeDetailActivity.class); detail.putExtra("userName", userName); @@ -570,7 +433,7 @@ detail.putExtra("userCard", userCard); if (!TextUtils.isEmpty(morny)) { detail.putExtra("morny", morny); - detail.putExtra("rechageWater", rechageWater); + detail.putExtra("rechargeBean", rechargeBean); } if (!TextUtils.isEmpty(cardNumber)) { detail.putExtra("cardNumber", cardNumber); @@ -630,4 +493,186 @@ } }); } + + /** + * IC寮�鍗℃帴鍙� + * + * @param iccardNum 鐗╃悊鍗″彿 + * @param iccardType ic鍗$被鍨� 1 鐢ㄦ埛鍗� 2 绠$悊鍗� + * @param peasantId + * @param rechargeMoney + */ + private void openCard(String iccardNum, int iccardType, String peasantId, String rechargeMoney) { + Map<String, Object> data = new HashMap<>(); + data.put("iccardNum", iccardNum);//鐗╃悊鍗″彿 + data.put("iccardType", iccardType); + data.put("peasantId", peasantId); + //宸ユ湰璐� + data.put("rechargeCardMoney", rechargeMoney); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/openCard", OpenCardResult.class, data, new SubscriberListener<BaseResponse<OpenCardResult>>() { + @Override + public void onNext(BaseResponse<OpenCardResult> t) { + if (t.isSuccess()) { + String userCode = t.getData().getIccardCode(); + userCard.setUserCode(userCode.substring(0, 12)); + userCard.setUserCodeNumber(Integer.valueOf(userCode.substring(12, 16))); + userCardBean.setCardNumber(cardNumber); + userCardBean.setUserCode(userCode); + baseDao.userCardDao().insert(userCardBean); + if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this)) { + confromOpenCard(t.getData().getIccardRechargeRecordId(), 0); + } else { + confromOpenCard(t.getData().getIccardRechargeRecordId(), 2); + } + } else { + TipUtil.show(t.getMsg()); + } + } + }); + + } + + /** + * 纭寮�鍗″啓鍗� + * + * @param iccardRechargeRecordId + * @param writeCardStatus + */ + private void confromOpenCard(String iccardRechargeRecordId, int writeCardStatus) { + Map<String, Object> data = new HashMap<>(); + data.put("iccardRechargeRecordId", iccardRechargeRecordId); + //鍐欏崱鐘舵�� 0 鍐欏崱鎴愬姛 1 寰呭啓鍗� 2 鍐欏崱澶辫触 + data.put("writeCardStatus", writeCardStatus); + + + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/openCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() { + @Override + public void onNext(BaseResponse<LoginResult> t) { + if (t.isSuccess()) { + //{"code":"0","msg":"鎿嶄綔鎴愬姛","data":{"chargeMethod":"","iccardCancelTime":"","lastRechargeTime":"2024-08-05 17:04:15","thisSaleMoney":"","totalRechargeWaterAmount":0.00,"iccardBalanceAmonunt":0.00,"iccardInfoId":"1820385315354320898","iccardProtocolName":"","totalRechargeElectricAmount":0.00,"logicState":1,"username":"","state":1,"familySize":"","yearRechargeMoney":0.00,"thisSaleAmount":"","onlyRechargeMoney":"","identityCard":"","iccardBrand":"","iccardBalanceMoney":0.00,"openOperatorUsername":"","adName":"","rechargeWaterAmount":"","openOperatorUserId":"1816297106145103873","lastSwipeTime":"","address":"","yearCompensateMoney":0.00,"iccardProtocolOpenMoney":"","peasantId":"1820374742679953410","reissueTimes":0,"iccardProtocolReissueMoney":"","iccardProtocolId":"","yearRechargeWaterAmount":0.00,"iccardBalanceElectric":0.00,"iccardStatus":0,"phone":"","lastRechargeMoney":0.00,"iccardOpenTime":"","yearRechargeElectricAmount":0.00,"reissueRechargeRecordId":"","iccardPrice":1.50,"iccardNum":"3714251023011","accountType":0,"equipCode":"","rechargeWaterMoney":"","totalRechargeMoney":0.00,"executeWaterPrice":"","iccardType":1,"iccardCode":"BADA4044"}} + startDetailActivity(userCardBean.getUserName(), "缁堢鍐欏崱"); + } + } + }); + + } + + /** + * 纭鍏呭�煎洖璋� + * + * @param iccardRechargeRecordId + * @param writeCardStatus + */ + private void confromRecharge(String iccardRechargeRecordId, int writeCardStatus) { + Map<String, Object> data = new HashMap<>(); + data.put("iccardRechargeRecordId", iccardRechargeRecordId); + //鍐欏崱鐘舵�� 0 鍐欏崱鎴愬姛 1 寰呭啓鍗� 2 鍐欏崱澶辫触 + data.put("writeCardStatus", writeCardStatus); + data.put("writeCardStatus", writeCardStatus); + + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/rechargeCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() { + @Override + public void onNext(BaseResponse<LoginResult> t) { + if (t.isSuccess()) { + + try { + baseDao.rechargeDao().insert(rechargeBean); + } catch (Exception e) { + e.printStackTrace(); + } + // 鎵撳嵃鐩稿叧 + setPrinterData(rechargeBean); + startDetailActivity(rechargeBean.getUserName(), "缁堢鍐欏崱"); + } + } + }); + } + + + /** + * 琛ュ崱 + */ + private void replaceCardPost(String iccardBalanceMoney, String iccardBalanceElectric) { + Map<String, Object> data = new HashMap<>(); + data.put("equipCode", DeviceUtils.getSN()); + //鍏呭�煎崱璐� + data.put("rechargeCardMoney", rechargeCardMoney); + // 鏃у崱鐨刬d + data.put("iccardInfoId", iccardInfoId); + //鏂板崱鐨勭墿鐞嗗崱鍙� + data.put("iccardNum", cardNumber); + //鍗″唴鍓╀綑閲戦 + data.put("iccardBalanceMoney", iccardBalanceMoney); + //鍗″唴鍓╀綑鐢甸噺 + data.put("iccardBalanceElectric", iccardBalanceElectric); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/reissueOpenCard", ReplaceCardResult.class, data, new SubscriberListener<BaseResponse<ReplaceCardResult>>() { + @Override + public void onNext(BaseResponse<ReplaceCardResult> t) { + if (t.isSuccess()) { + ReplaceCardResult replaceCardResult = t.getData(); + userCard = new UserCard(); + userCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber)); + String userCode = t.getData().getIccardCode(); + userCard.setUserCode(userCode.substring(0, 12)); + userCard.setUserCodeNumber(Integer.valueOf(userCode.substring(12, 16))); + userCard.setCardWriteState(0); + userCard.setCardState(1); + userCard.setBalance(MornyUtil.changeY2F(replaceCardResult.getIccardBalanceMoney())); + userCard.setSurplusElecticity(MornyUtil.changeY2F(replaceCardResult.getIccardBalanceElectric())); + userCard.setTotalMorny(MornyUtil.changeY2F(replaceCardResult.getTotalRechargeMoney())); + userCard.setRechargeDate(Calendar.getInstance()); + userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr)); + if (WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this)) { + confromReplaceCard(replaceCardResult.getIccardRechargeRecordId(), 0); + } else { + TipUtil.show(NFCWreatActivity.this, "鍐欏崱澶辫触锛岃閲嶈瘯"); + } + // 鎵撳嵃鐩稿叧 +// setPrinterData(rechargeBean); +// startDetailActivity(rechargeBean.getUserName(), "缁堢鍐欏崱"); + } + } + }); + } + + /** + * 纭琛ュ崱鍐欏崱鎴愬姛 + * + * @param iccardRechargeRecordId + * @param writeCardStatus + */ + private void confromReplaceCard(String iccardRechargeRecordId, int writeCardStatus) { + Map<String, Object> data = new HashMap<>(); + data.put("equipCode", DeviceUtils.getSN()); +// data.put("iccardRechargeRecordId", iccardRechargeRecordId); + //鍐欏崱鐘舵�� 0 鍐欏崱鎴愬姛 1 寰呭啓鍗� 2 鍐欏崱澶辫触 + data.put("writeCardStatus", writeCardStatus); + + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/reissueOpenCardResult", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() { + @Override + public void onNext(BaseResponse<LoginResult> t) { + if (t.isSuccess()) { + + try { + baseDao.rechargeDao().insert(rechargeBean); + } catch (Exception e) { + e.printStackTrace(); + } + // 鎵撳嵃鐩稿叧 + setPrinterData(rechargeBean); + startDetailActivity(rechargeBean.getUserName(), "缁堢鍐欏崱"); + } + } + }); + } + + /** + * 琛ュ崱閫昏緫 + */ + private void replaceCard() { + cardNumber = NfcReadHelper.getInstence(intent, this).getCardNumber(); + if (replaceType == BaseCommon.REPLACE_NO_CARD) { + replaceCardPost("", ""); + } + } } \ No newline at end of file diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java index 7165c03..dd324a9 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/NewCardActivity.java @@ -11,21 +11,34 @@ import androidx.annotation.NonNull; import com.dayu.baselibrary.tools.Utils; +import com.dayu.baselibrary.utils.DeviceUtils; import com.dayu.baselibrary.utils.TipUtil; import com.dayu.baselibrary.utils.ToastUtil; +import com.dayu.qiheonlinelibrary.QHOnLineApplication; +import com.dayu.qiheonlinelibrary.bean.AddUserResult; +import com.dayu.qiheonlinelibrary.bean.PricePlanResult; +import com.dayu.qiheonlinelibrary.bean.UserListResult; import com.dayu.qiheonlinelibrary.card.UserCard; import com.dayu.qiheonlinelibrary.databinding.ActivityNewCardQhlBinding; import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean; import com.dayu.qiheonlinelibrary.dbBean.UserCardBean; +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 com.hjq.permissions.OnPermissionCallback; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; import com.kernal.passportreader.sdk.CardsCameraActivity; import com.kernal.passportreader.sdk.utils.DefaultPicSavePath; +import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -42,10 +55,8 @@ public class NewCardActivity extends BaseActivity { public static final int SCAN_IDCARD_REQUEST = 1; - UserCardBean userCardBean; ActivityNewCardQhlBinding newCardBinding; - AdminDataBean adminData; static NewCardActivity newCardActivity; private int defValueMainId = 2; @@ -76,10 +87,9 @@ newCardBinding.newCardRegistBtn.setOnClickListener(v -> { String userName = newCardBinding.newCardName.getText().toString(); - long date = System.currentTimeMillis(); String phone = newCardBinding.newCardPhone.getText().toString(); String userID = newCardBinding.newCardId.getText().toString().toUpperCase(); - + String morny = newCardBinding.newCardMorny.getText().toString(); if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(phone) && !TextUtils.isEmpty(userID) @@ -91,28 +101,7 @@ } else if (!Utils.check(userID)) { TipUtil.show(NewCardActivity.this, "璇疯緭鍏ユ纭韩浠借瘉鍙�"); } else { - userCardBean = new UserCardBean(); - userCardBean.setUserName(userName); - userCardBean.setDate(date); - userCardBean.setSerial(adminData.getSerial()); - userCardBean.setPhone(phone); - userCardBean.setUserID(userID); - - - UserCard userCard = new UserCard(); - userCard.setArerNumber(Integer.valueOf(adminData.getSerial())); - userCard.setDeviceNumberl(Integer.valueOf(adminData.getAddressCode())); - userCard.setRechargeTimes((byte) 0); - userCard.setTotalWater(0); - userCard.setTotalElectric(0); - userCard.setBalance(0); - userCard.setSurplusWater(0); - userCard.setRechargeDate(Calendar.getInstance()); - - Intent intent = new Intent(NewCardActivity.this, NFCWreatActivity.class); - intent.putExtra("userCard", userCard); - intent.putExtra("dbUserCard", userCardBean); - startActivity(intent); + selectUser(userID, phone, userName, morny); } } else { @@ -121,6 +110,7 @@ }); } + //鏍¢獙鎵嬫満鍙� private boolean isValidPhoneNumber(String phoneNumber) { // 瀹氫箟鎵嬫満鍙风殑姝e垯琛ㄨ揪寮忥紝纭繚鏁板瓧閮ㄥ垎娌℃湁杩炵画6浣嶇浉鍚岀殑鏁板瓧 String phoneRegex = "^1[0-9]{10}$"; @@ -248,8 +238,7 @@ private void setData() { try { - adminData = baseDao.adminDao().findFirst(); - newCardBinding.newCardVillageNum.setText(adminData.getSerial()); + newCardBinding.newCardArerNumber.setText(QHOnLineApplication.getInstance().arerNumber); } catch (Exception e) { e.printStackTrace(); } @@ -307,4 +296,100 @@ newCardActivity = null; } + + /** + * 鏌ヨ鐢ㄦ埛 + * + * @param peasantIdNumber + * @param peasantPhone + * @param peasantName + * @param morny 寮�鍗¢噾棰� + */ + private void selectUser(String peasantIdNumber, String peasantPhone, String peasantName, String morny) { + Map<String, Object> data = new HashMap<>(); + data.put("adcd", QHOnLineApplication.getInstance().adcd); + data.put("peasantIdNumber", peasantIdNumber); + data.put("current", 1); + data.put("pageSize", 10); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/base/peasant/pagePeasantVo", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() { + @Override + public void onNext(BaseResponse<UserListResult> t) { + if (t.isSuccess()) { + if (t.getData().getTotal() == 0) { + if (!TextUtils.isEmpty(QHOnLineApplication.getInstance().planId)) { + addUser(peasantIdNumber, peasantPhone, peasantName, QHOnLineApplication.getInstance().planId, morny); + } + } else { + startNFCWreatActivity(peasantIdNumber, peasantPhone, peasantName, t.getData().getRecords().get(0).getPeasantId(), morny); + } + }else { + ToastUtil.show(t.getMsg()); + } + } + }); + } + + private void startNFCWreatActivity(String peasantIdNumber, String peasantPhone, String peasantName, String peasanId, String morny) { + UserCard userCard = new UserCard(); + userCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber)); + userCard.setUserCode(QHOnLineApplication.getInstance().adcd); + userCard.setCardWriteState(0); + userCard.setCardState(1); + userCard.setBalance(0); + userCard.setSurplusElecticity(0); + userCard.setTotalMorny(0); + userCard.setRechargeDate(Calendar.getInstance()); + + UserCardBean userCardBean = new UserCardBean(); + + userCardBean.setUserName(peasantName); + userCardBean.setUserID(peasantIdNumber); + userCardBean.setPhone(peasantPhone); + userCardBean.setPersonId(peasanId); + if (!TextUtils.isEmpty(morny)) { + userCardBean.setCardMorny(Integer.valueOf(morny)); + } else { + userCardBean.setCardMorny(0); + } + userCardBean.setAddressCode(QHOnLineApplication.getInstance().adcd); + userCardBean.setAddressName(QHOnLineApplication.getInstance().addressName); + userCardBean.setArerNumber(QHOnLineApplication.getInstance().arerNumber); + userCardBean.setDate(System.currentTimeMillis()); + userCardBean.setSerial(DeviceUtils.getSN()); + + Intent intent = new Intent(NewCardActivity.this, NFCWreatActivity.class); + intent.putExtra("userCard", userCard); + intent.putExtra("dbUserCard", userCardBean); + startActivity(intent); + } + + /** + * 娣诲姞鐢ㄦ埛 + * + * @param peasantIdNumber + * @param peasantPhone + * @param peasantName + * @param planId 浠锋牸ID + */ + private void addUser(String peasantIdNumber, String peasantPhone, String peasantName, String planId, String morny) { + Map<String, Object> data = new HashMap<>(); + data.put("planId", planId); + data.put("adcd", QHOnLineApplication.getInstance().adcd); + data.put("peasantIdNumber", peasantIdNumber); + data.put("peasantCode", ""); + data.put("peasantName", peasantName); + data.put("peasantPhone", peasantPhone); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/base/peasant/savePeasant", AddUserResult.class, data, new SubscriberListener<BaseResponse<AddUserResult>>() { + @Override + public void onNext(BaseResponse<AddUserResult> t) { + if (t.isSuccess()) { + startNFCWreatActivity(peasantIdNumber, peasantPhone, peasantName, t.getData().getPeasantId(), morny); + }else { + ToastUtil.show(t.getMsg()); + } + } + }); + } + + } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java index 1bc1a04..cd85db7 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/ReadCardAcitivy.java @@ -11,6 +11,7 @@ import com.dayu.baselibrary.utils.MornyUtil; import com.dayu.baselibrary.utils.TipUtil; import com.dayu.baselibrary.view.ConfirmDialog; +import com.dayu.qiheonlinelibrary.bean.CardInfoResult; import com.dayu.qiheonlinelibrary.card.BlackCard; import com.dayu.qiheonlinelibrary.card.ConfigurationPowerCard; import com.dayu.qiheonlinelibrary.card.DomainCard; @@ -22,6 +23,9 @@ import com.dayu.qiheonlinelibrary.databinding.ActivityRedCardQhlBinding; import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean; import com.dayu.qiheonlinelibrary.dbBean.UserCardBean; +import com.dayu.qiheonlinelibrary.net.ApiManager; +import com.dayu.qiheonlinelibrary.net.BaseResponse; +import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener; import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper; import com.dayu.qiheonlinelibrary.tools.NfcReadHelper; import com.dayu.qiheonlinelibrary.utils.CardCommon; @@ -29,7 +33,9 @@ import java.util.Calendar; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * Copyright (C), 2023, @@ -48,35 +54,12 @@ AdminDataBean adminData; String cardNumber; String userCardStr; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); redCardBinding = ActivityRedCardQhlBinding.inflate(LayoutInflater.from(this)); setContentView(redCardBinding.getRoot()); - } - - - private void setUserData(String userName, String statu, String cardNumber) { - viweGone(true); - redCardBinding.redName.setText("鐢ㄦ埛濮撳悕锛�" + userName); - redCardBinding.redStatu.setText("鍗$姸鎬侊細" + statu); - if (userCard != null) { - Calendar calendar = userCard.getRechargeDate(); - if (calendar != null) { - int year = calendar.get(Calendar.YEAR); - int month = calendar.get(Calendar.MONTH); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1 - int day = calendar.get(Calendar.DAY_OF_MONTH); - redCardBinding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + "骞�" + month + "鏈�" + day + "鏃�"); - } else { - redCardBinding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細鏃�"); - } - redCardBinding.redInitCode.setText(cardNumber); - redCardBinding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + " 娆�"); -// redCardBinding.redTotalWater.setText("鎬荤敤姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 鍚�"); -// redCardBinding.redTotalPower.setText("鎬荤敤鐢甸噺锛�" + MornyUtil.changeF2Y(userCard.getTotalElectric()) + " 搴�"); - redCardBinding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(userCard.getBalance()) + " 鍏�"); -// redCardBinding.redRemainderWater.setText("鍓╀綑姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 鍚�"); - } } @@ -102,8 +85,6 @@ String[] cardTypes = cardType.split(","); if (cardTypes != null && cardTypes.length == 2) { cardNumber = cardType.split(",")[0]; - cardNumber = HexUtil.spaceHex(cardNumber); - cardNumber = HexUtil.HighLowHex(cardNumber); cardType = cardType.split(",")[1]; } List<byte[]> data = NfcReadHelper.getInstence(intent, this).getOnesectorData(); @@ -123,13 +104,7 @@ if (!data.isEmpty()) { if (!TextUtils.isEmpty(cardNumber)) { userCard = UserCard.getBean(data); - List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber); - if (userCardBeans != null && !userCardBeans.isEmpty()) { - UserCardBean userName = userCardBeans.get(0); - setUserData(userName.getUserName(), state, cardNumber); - } else { - setUserData("鏈煡璇㈠埌鐢ㄦ埛鍚�", state, cardNumber); - } + getUserInfoAndCardInfo(cardNumber); } else { } @@ -141,14 +116,12 @@ case CardCommon.MANAGE_CRAD://绠$悊鍗� ManageCard manageCard = ManageCard.getBean(data); viweGone(false); - userCardStr = manageCard.getUserCard().toUpperCase(); - userCardStr = HexUtil.spaceHex(userCardStr); - userCardStr = HexUtil.HighLowHex(userCardStr); + userCardStr = manageCard.getUserCard().toUpperCase(); redCardBinding.readCardTypeTV.setText("褰撳墠涓虹鐞嗗崱" + "\n\n" + "鍘熷鍗″彿锛�" + userCardStr); - if (manageCard.getType()==(byte) 1){ + if (manageCard.getType() == (byte) 1) { //褰�01鏃跺皢1鎵囧尯0鍧楀師绠$悊鍗′俊鎭敼鎴愮敤鎴峰崱鍐呭 - confirmDialog=new ConfirmDialog(this, "鏄惁纭琛ュ崱锛岃鍗″皢鎴愪负鏂扮敤鎴峰崱锛熷苟涓斾笉瑕佺Щ鍔ㄥ崱鐗�", new View.OnClickListener() { + confirmDialog = new ConfirmDialog(this, "鏄惁纭琛ュ崱锛岃鍗″皢鎴愪负鏂扮敤鎴峰崱锛熷苟涓斾笉瑕佺Щ鍔ㄥ崱鐗�", new View.OnClickListener() { @Override public void onClick(View v) { ProgressDialog.show(ReadCardAcitivy.this); @@ -162,21 +135,21 @@ baseDao.userCardDao().update(userName); } - NFCWriteHelper nfcWriteHelper= NFCWriteHelper.getInstence(intent,ReadCardAcitivy.this); + NFCWriteHelper nfcWriteHelper = NFCWriteHelper.getInstence(intent, ReadCardAcitivy.this); adminData = baseDao.adminDao().findFirst(); - ManagerToUserCard managerToUserCard=new ManagerToUserCard(); + ManagerToUserCard managerToUserCard = new ManagerToUserCard(); managerToUserCard.setArerNumber(Integer.valueOf(adminData.getSerial())); managerToUserCard.setDeviceNumberl(Integer.valueOf(adminData.getAddressCode())); managerToUserCard.setTotalElectric(manageCard.getTotalElectric()); - if (nfcWriteHelper.writeData(managerToUserCard.getZeroBytes(),1,0)){ + if (nfcWriteHelper.writeData(managerToUserCard.getZeroBytes(), 1, 0)) { TipUtil.show(ReadCardAcitivy.this, "琛ュ崱鎴愬姛", () -> ReadCardAcitivy.this.finish()); - }else { + } else { TipUtil.show(ReadCardAcitivy.this, "琛ュ崱澶辫触锛岃閲嶆柊鍒峰崱", () -> ReadCardAcitivy.this.finish()); } } catch (Exception e) { - e.printStackTrace(); + e.printStackTrace(); } stopAnim(); } @@ -237,8 +210,7 @@ if (!data.isEmpty()) { RegionCard regionCard = RegionCard.getBean(data); StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("鍖哄煙鍦板潃锛�").append(regionCard.getRegion()).append("\n"); - stringBuilder.append("鎺у埗鍣ㄧ紪鍙凤細").append(regionCard.getControllerCodel()).append("\n"); + stringBuilder.append("鍖哄煙鍙凤細").append(regionCard.getArerNumber()); redCardBinding.readCardDataTV.setText(stringBuilder.toString()); } else { TipUtil.show("鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒"); @@ -285,5 +257,48 @@ // or avi.smoothToHide(); } + /** + * 鑾峰彇鍗′俊鎭拰鐢ㄦ埛淇℃伅 + * + * @param iccardCode + */ + public void getUserInfoAndCardInfo(String iccardCode) { + Map<String, Object> data = new HashMap<>(); + //ic鍗′俊鎭痠d + data.put("iccardNum", iccardCode); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() { + @Override + public void onNext(BaseResponse<CardInfoResult> t) { + String state = ""; + if (t.isSuccess()) { + setUserData(t.getData()); + } + } + }); + } + + private void setUserData(CardInfoResult cardInfoResult) { + viweGone(true); + if (cardInfoResult != null) { + redCardBinding.redName.setText(cardInfoResult.getPeasantName()); + redCardBinding.redCardCode.setText(cardNumber); + redCardBinding.redUserCode.setText(cardInfoResult.getIccardCode()); + redCardBinding.redBlance.setText(MornyUtil.changeF2Y(userCard.getBalance())+"鍏�"); + redCardBinding.redElectric.setText(MornyUtil.changeF2Y(userCard.getSurplusElecticity())+"搴�"); + redCardBinding.redTotalMorny.setText(MornyUtil.changeF2Y(userCard.getTotalMorny())+"鍏�"); + redCardBinding.redPhone.setText(cardInfoResult.getPeasantPhone()); + redCardBinding.redCodeId.setText(cardInfoResult.getPeasantIdNumber()); + if (cardInfoResult.getIccardStatus() == 0) { + redCardBinding.redStatu.setText("姝e父"); + } else if (cardInfoResult.getIccardStatus() == 1) { + redCardBinding.redStatu.setText("宸叉敞閿�"); + } else { + redCardBinding.redStatu.setText("宸叉寕澶�"); + } + + } + + + } } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java index b95f18c..3dc5ce1 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeActivity.java @@ -1,6 +1,7 @@ package com.dayu.qiheonlinelibrary.activity; import android.annotation.SuppressLint; +import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.Editable; @@ -11,22 +12,37 @@ import android.widget.EditText; import com.dayu.baselibrary.tools.HexUtil; +import com.dayu.baselibrary.utils.DeviceUtils; import com.dayu.baselibrary.utils.MornyUtil; import com.dayu.baselibrary.utils.TipUtil; +import com.dayu.baselibrary.utils.ToastUtil; +import com.dayu.baselibrary.view.TipDialog; +import com.dayu.qiheonlinelibrary.QHOnLineApplication; import com.dayu.qiheonlinelibrary.R; +import com.dayu.qiheonlinelibrary.bean.CardInfoResult; +import com.dayu.qiheonlinelibrary.bean.RechargeResult; import com.dayu.qiheonlinelibrary.card.UserCard; import com.dayu.qiheonlinelibrary.databinding.ActivityRechargeQhlBinding; import com.dayu.qiheonlinelibrary.dbBean.AdminDataBean; import com.dayu.qiheonlinelibrary.dbBean.ElectricPriceBean; +import com.dayu.qiheonlinelibrary.dbBean.RechargeBean; import com.dayu.qiheonlinelibrary.dbBean.UserCardBean; +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 com.dayu.qiheonlinelibrary.tools.NfcReadHelper; import com.dayu.qiheonlinelibrary.utils.CardCommon; import com.tencent.bugly.crashreport.CrashReport; +import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** @@ -42,13 +58,15 @@ ActivityRechargeQhlBinding binding; public static RechargeActivity rechargeActivity; - AdminDataBean adminData; - String userName; - String cardNumber = null; - UserCardBean userCardBean; - int waterPrice; + + String cardNumber = null;//瀹炰綋鍗″彿 + RechargeBean rechargeBean; + String rechageWater;//鍏呭�肩殑姘撮噺 - ElectricPriceBean priceBean; + + String cardType;//鍗$姸鎬� + + CardInfoResult cardInfoResult; @Override protected void onCreate(Bundle savedInstanceState) { @@ -58,7 +76,6 @@ setContentView(binding.getRoot()); setPricePoint(binding.rechargeWater); rechargeActivity = this; - waterPrice = baseDao.adminDao().findFirst().getWaterPrice(); initView(); } catch (Exception e) { e.printStackTrace(); @@ -79,98 +96,50 @@ private void readAllData() { - String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber(); + cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber(); String[] cardTypes = cardType.split(","); if (cardTypes != null && cardTypes.length == 2) { cardNumber = cardType.split(",")[0]; - cardNumber = HexUtil.spaceHex(cardNumber); - cardNumber = HexUtil.HighLowHex(cardNumber); cardType = cardType.split(",")[1]; } - List<byte[]> data = NfcReadHelper.getInstence(intent, this).getOnesectorData(); + getUserInfoAndCardInfo(cardNumber); - if (!data.isEmpty()) { - if (!TextUtils.isEmpty(cardNumber)) { - setUserData(cardType, cardNumber, data); - if(priceBean!=null){ - binding.redRechargeElectric.setText("鐢甸噺鍗曚环锛�"+priceBean.getPrice()+"鍏�/搴�"); - } - } else { - TipUtil.show(this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱"); - } - } else { - TipUtil.show(this, "鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒"); - } } - @SuppressLint("ResourceAsColor") - private void setUserData(String cardType, String cardNumber, List<byte[]> data) { - - + private void setUserData(String cardNumber, String userName, String lastRechargeTime, float iccardBalanceMoney, List<byte[]> data) { String state = ""; if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_1)) { state = "缁堢鍐欏崱"; binding.rechargeLL.setVisibility(View.VISIBLE); binding.rechargeRegistBtn.setVisibility(View.VISIBLE); - binding.redStatu.setTextColor(R.color.black); + binding.redStatu.setTextColor(this.getResources().getColor(R.color.black)); } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_2)) { - state = "鏈埛鍗″叧娉�,褰撳墠涓嶅彲鍏呭��"; - binding.rechargeLL.setVisibility(View.GONE); - binding.rechargeRegistBtn.setVisibility(View.GONE); - binding.redStatu.setTextColor(com.dayu.baselibrary.R.color.red); + setCardState("鏈埛鍗″叧娉�,褰撳墠涓嶅彲鍏呭��"); } else if (cardType.equalsIgnoreCase(CardCommon.USER_CARD_TYPE_3)) { - state = "鍙犲姞鍏呭��"; - binding.rechargeLL.setVisibility(View.GONE); - binding.rechargeRegistBtn.setVisibility(View.GONE); + setCardState("鍙犲姞鍏呭��"); } else { TipUtil.show(this, "闈炵敤鎴峰崱锛屼笉鑳藉厖鍊�"); return; } - userCard = UserCard.getBean(data); - List<UserCardBean> userCardBeans = baseDao.userCardDao().findUserName(cardNumber); - AdminDataBean adminDataBean = baseDao.adminDao().findFirst(); + if (Integer.valueOf(QHOnLineApplication.getInstance().arerNumber) == userCard.getArerNumber()) { - if (Integer.valueOf(adminDataBean.getAddressCode()) == userCard.getArerNumber()) { - if (!userCardBeans.isEmpty()) { - userCardBean = userCardBeans.get(0); - this.userName = userCardBean.getUserName(); - } else { - userCardBean = new UserCardBean(); - userCardBean.setCardNumber(cardNumber); - userCardBean.setUserName("鏈煡鐢ㄦ埛"); - userCardBean.setPhone("鏈煡"); - userCardBean.setUserID("鏈煡"); - userCardBean.setAddressCode(String.valueOf(userCard.getArerNumber())); - userCardBean.setSerial(String.valueOf(userCard.getArerNumber())); - this.userName = "鏈煡鐢ㄦ埛"; - } binding.rechargeReadLL.setVisibility(View.GONE); binding.rechargeTextLL.setVisibility(View.VISIBLE); binding.userName.setText(userName); binding.redStatu.setText(state); + binding.redInitCode.setText(cardNumber); + binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細\n\n" + lastRechargeTime); if (userCard != null) { - Calendar calendar = userCard.getRechargeDate(); - if (calendar != null) { - int year = calendar.get(Calendar.YEAR); - int month = calendar.get(Calendar.MONTH); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1 - int day = calendar.get(Calendar.DAY_OF_MONTH); - binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細" + year + "骞�" + month + "鏈�" + day + "鏃�"); - } else { - binding.redRechargeDate.setText("鏈崱鏈�鍚庤喘姘存棩鏈燂細鏃�"); - } - binding.redInitCode.setText(cardNumber); -// binding.redRechargeNumber.setText("鏈崱鍏呭�兼鏁帮細" + userCard.getRechargeTimes() + " 娆�"); -// binding.redTotalWater.setText("鎬荤敤姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getTotalWater()) + " 鍚�"); -// binding.redTotalPower.setText("鎬荤敤鐢甸噺锛�" + MornyUtil.changeF2Y(userCard.getTotalElectric()) + " 搴�"); - binding.redRemainderBlance.setText(MornyUtil.changeF2Y(userCard.getBalance()) + " 鍏�"); - binding.redRemainderWater.setText("鍓╀綑姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 鍚�"); -// binding.redWaterPrice.setText("姣忕珛鏂圭背姘翠环鏍硷細" + MornyUtil.changeF2Y(adminData.getWaterPrice()) + " 鍏�"); + + binding.redRemainderBlance.setText(String.valueOf(iccardBalanceMoney) + " 鍏�"); } + + binding.redRechargeElectric.setText("鐢甸噺鍗曚环锛�" + QHOnLineApplication.getInstance().electriclePriceStr + "鍏�/搴�"); } else { TipUtil.show(this, "闈炴湰鍖哄煙鍗n涓嶈兘鍏呭�硷紒锛侊紒"); @@ -179,29 +148,13 @@ } - private void initView() { - try { - adminData = baseDao.adminDao().findFirst(); - priceBean = baseDao.electricPriceDao().findFirst(); - } catch (Exception e) { - e.printStackTrace(); - CrashReport.postCatchedException(e); - } binding.rechargeRegistBtn.setOnClickListener(v -> { String morny = binding.rechargeWater.getText().toString(); if (!TextUtils.isEmpty(morny)) { - Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class); - //褰撳墠閲戦鍗曚綅涓哄厓 - intent.putExtra("morny", morny); - intent.putExtra("userName", userName); - intent.putExtra("cardNumber", cardNumber); - intent.putExtra("userCard", userCard); - intent.putExtra("userCardBean", userCardBean); -// intent.putExtra("rechageWater", rechageWater); - startActivity(intent); + rechaege(morny); } else { - TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰濓紙鍏冿級"); + TipUtil.show(RechargeActivity.this, "璇疯緭鍏ュ厖鍊奸噾棰�"); } }); } @@ -236,7 +189,7 @@ } String morny = editText.getText().toString(); if (!TextUtils.isEmpty(morny)) { - rechageWater = MornyUtil.intDiv(MornyUtil.changeY2F(editText.getText().toString()), waterPrice); +// rechageWater = MornyUtil.intDiv(MornyUtil.changeY2F(editText.getText().toString()), waterPrice); // binding.redRechargeWater.setText("鍏呭�兼按閲忥細" + rechageWater + " 绔嬫柟绫�(鍚�)"); } @@ -264,4 +217,126 @@ super.onDestroy(); rechargeActivity = null; } + + + private void startNfcActivity(String morny, String balance, float rechargeElectric, float iccardBalanceElectric, float totalMorny, String iccardRechargeRecordId) { + + //娣诲姞鍏呭�间俊鎭� + rechargeBean = new RechargeBean(); + rechargeBean.setCardNumber(cardNumber); + rechargeBean.setUserCode(userCard.getUserCode()); + rechargeBean.setUserName(""); + rechargeBean.setPersonId(cardInfoResult.getPeasantId()); + rechargeBean.setSerial(DeviceUtils.getSN()); + rechargeBean.setArerNumber(QHOnLineApplication.getInstance().arerNumber); + rechargeBean.setMorny(morny); + rechargeBean.setBalance(balance); + rechargeBean.setRechargeElectric(String.valueOf(rechargeElectric)); + rechargeBean.setPrice(QHOnLineApplication.getInstance().electriclePriceStr); + rechargeBean.setSurplusElectic(String.valueOf(iccardBalanceElectric)); + long time = System.currentTimeMillis(); + rechargeBean.setRechargeDate(time); + rechargeBean.setUserId(""); + rechargeBean.setTotalMorny(String.valueOf(totalMorny)); + rechargeBean.setState(1); + rechargeBean.setOrderId(iccardRechargeRecordId); + + userCard.setCardWriteState(0); + userCard.setCardState(1); + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(time); + userCard.setBalance(MornyUtil.changeY2F(String.valueOf(balance))); + userCard.setSurplusElecticity(MornyUtil.changeY2F(String.valueOf(iccardBalanceElectric))); + String sumMorny = MornyUtil.sumPrice(Float.valueOf(MornyUtil.changeF2Y(userCard.getTotalMorny())), Float.valueOf(morny)); + userCard.setTotalMorny(MornyUtil.changeY2F(sumMorny)); + userCard.setRechargeDate(calendar); + + + Intent intent = new Intent(RechargeActivity.this, NFCWreatActivity.class); + intent.putExtra("morny", morny); + intent.putExtra("userCard", userCard); + intent.putExtra("rechargeBean", rechargeBean); + startActivity(intent); + } + + + /** + * IC鍗″厖鍊� + * + * @param morny + */ + public void rechaege(String morny) { + Map<String, Object> data = new HashMap<>(); + //缁堢璁惧鍙� + data.put("equipCode", DeviceUtils.getSN()); + //ic鍗′俊鎭痠d + data.put("iccardNum", cardNumber); + //浜ゆ槗姘磋垂閲戦锛堝厓锛� + data.put("rechargeWaterMoney", morny); + //鍗″唴鍓╀綑閲戦锛堝厓锛� + data.put("iccardBalanceMoney", MornyUtil.changeF2Y(userCard.getBalance())); + //鍗″唴鍓╀綑姘撮噺锛坢鲁锛� + data.put("iccardBalanceAmonunt", "0"); + //鍗″唴鍓╀綑鐢甸噺 + data.put("iccardBalanceElectric", MornyUtil.changeF2Y(userCard.getSurplusElecticity())); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/recharge/rechargeCard", RechargeResult.class, data, new SubscriberListener<BaseResponse<RechargeResult>>() { + @Override + public void onNext(BaseResponse<RechargeResult> t) { + if (t.isSuccess()) { + RechargeResult rechargeResult = t.getData(); + startNfcActivity(morny, rechargeResult.getIccardBalanceMoney(), rechargeResult.getRechargeElectricAmount(), rechargeResult.getIccardBalanceElectric(), rechargeResult.getTotalRechargeMoney(), rechargeResult.getIccardRechargeRecordId()); + } + } + }); + } + + + /** + * 鑾峰彇鍗′俊鎭拰鐢ㄦ埛淇℃伅 + * + * @param iccardCode + */ + public void getUserInfoAndCardInfo(String iccardCode) { + Map<String, Object> data = new HashMap<>(); + //ic鍗′俊鎭痠d + data.put("iccardNum", iccardCode); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/iccard/peasant/getIccardInfoVoByCardCode", CardInfoResult.class, data, new SubscriberListener<BaseResponse<CardInfoResult>>() { + @Override + public void onNext(BaseResponse<CardInfoResult> t) { + String state = ""; + if (t.isSuccess()) { + //ic鍗$姸鎬� 0 姝e父 1 宸叉敞閿� 2 宸叉寕澶� + if (t.getData().getIccardStatus() == 0) { + List<byte[]> data = NfcReadHelper.getInstence(intent, RechargeActivity.this).getOnesectorData(); + if (!data.isEmpty()) { + if (!TextUtils.isEmpty(cardNumber)) { + cardInfoResult = t.getData(); + setUserData(cardNumber, cardInfoResult.getPeasantName(), cardInfoResult.getLastRechargeTime(), cardInfoResult.getIccardBalanceMoney(), data); + } else { + TipUtil.show(RechargeActivity.this, "璇诲彇鍗$墖澶辫触锛岃閲嶆柊璐村崱"); + } + } else { + TipUtil.show(RechargeActivity.this, "鍗$墖璇嗗埆閿欒,璇烽噸璇曪紒"); + } + } else if (t.getData().getIccardStatus() == 1) { + TipUtil.show(RechargeActivity.this, "褰撳墠鍗″凡娉ㄩ攢"); + } else { + TipUtil.show(RechargeActivity.this, "褰撳墠鍗″凡鎸傚け"); + } + + + } + } + }); + } + + + private void setCardState(String state) { + binding.rechargeLL.setVisibility(View.GONE); + binding.rechargeRegistBtn.setVisibility(View.GONE); + binding.redStatu.setTextColor(RechargeActivity.this.getResources().getColor(com.dayu.baselibrary.R.color.red)); + binding.redStatu.setText(state); + } + + } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java index 9db5b53..b1eac98 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/RechargeDetailActivity.java @@ -69,7 +69,7 @@ } binding.redName.setText("鐢ㄦ埛濮撳悕锛�" + userName); // binding.redRemainderBlance.setText("鍓╀綑閲戦锛�" + MornyUtil.changeF2Y(balance) + " 鍏�"); - binding.redSurplusWater.setText("鍓╀綑姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 鍚�"); +// binding.redSurplusWater.setText("鍓╀綑姘撮噺锛�" + MornyUtil.changeF2Y(userCard.getSurplusWater()) + " 鍚�"); binding.redStatu.setText("鍗$姸鎬侊細" + statu); if (userCard != null) { binding.redInitCode.setText("褰撳墠鍗″彿锛�" + cardNumber); diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivity.java index 87f98e8..5e03ddf 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivity.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/SysActivity.java @@ -2,9 +2,11 @@ import android.content.Intent; import android.os.Bundle; +import android.text.TextUtils; import android.view.LayoutInflater; import com.dayu.baselibrary.utils.TipUtil; +import com.dayu.qiheonlinelibrary.QHOnLineApplication; import com.dayu.qiheonlinelibrary.card.CleanCard; import com.dayu.qiheonlinelibrary.card.ElectricPriceCard; import com.dayu.qiheonlinelibrary.card.PassWordCard; @@ -41,7 +43,7 @@ //鍒朵綔绠$悊鍗� adminBinding.adminAdmin.setOnClickListener(v -> { - AdminCardDialog dialog=new AdminCardDialog(this); + AdminCardDialog dialog = new AdminCardDialog(this); dialog.show(); }); @@ -71,23 +73,21 @@ Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); RegionCard regionCard = new RegionCard(); - AdminDataBean adminDataBean = baseDao.adminDao().findFirst(); - regionCard.setRegion(Integer.valueOf(adminDataBean.getAddressCode())); - regionCard.setControllerCodel(Integer.valueOf(adminDataBean.getAddressCode())); + regionCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber)); intent.putExtra("regionCard", regionCard); startActivity(intent); }); //鍒朵綔璁剧疆鐢ㄦ埛鐢甸噺鍗曚环鍗� adminBinding.adminElectricCard.setOnClickListener(v -> { Intent intent = new Intent(SysActivity.this, NFCWreatActivity.class); - ElectricPriceBean electricPriceBean = baseDao.electricPriceDao().findFirst(); - if (electricPriceBean != null) { + + if (!TextUtils.isEmpty(QHOnLineApplication.getInstance().electriclePriceStr)) { ElectricPriceCard electricPriceCard = new ElectricPriceCard(); - electricPriceCard.setElectricPrice(electricPriceBean.getPrice()); + electricPriceCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr)); intent.putExtra("electricPriceCard", electricPriceCard); startActivity(intent); } else { - TipUtil.show(this, "璇峰厛鍦ㄥ弬鏁拌缃唴璁剧疆鐢甸噺鍗曚环"); + TipUtil.show(this, "鏈幏鍙栧埌鐢典环"); } }); diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivity.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivity.java new file mode 100644 index 0000000..b45759d --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/activity/UserSearchActivity.java @@ -0,0 +1,131 @@ +package com.dayu.qiheonlinelibrary.activity; + +import static com.dayu.baselibrary.view.TitleBar.ClickType_RIGHT_TEXT; + +import android.content.Intent; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import androidx.recyclerview.widget.LinearLayoutManager; + +import com.dayu.qiheonlinelibrary.adapter.UserSearchAdapter; +import com.dayu.qiheonlinelibrary.bean.UserListResult; +import com.dayu.qiheonlinelibrary.databinding.ActivityUserSearchQhlBinding; +import com.dayu.qiheonlinelibrary.net.ApiManager; +import com.dayu.qiheonlinelibrary.net.BaseResponse; +import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener; +import com.dayu.qiheonlinelibrary.view.UserSearchDialog; +import com.scwang.smart.refresh.footer.ClassicsFooter; +import com.scwang.smart.refresh.layout.api.RefreshLayout; +import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * author: zuo + * Date: 2024-08-07 + * Time: 18:13 + * 澶囨敞锛氱敤鎴锋悳绱� + */ +public class UserSearchActivity extends BaseActivity { + ActivityUserSearchQhlBinding binding; + UserSearchDialog userSearchDialog; + RefreshLayout myRefreshLayout; + UserSearchAdapter adapter; + + int page = 1; + int size = 10; + String name; + String cardID; + List<UserListResult.Records> records = new ArrayList<>(); + + int type;//褰撳墠鎿嶄綔绫诲瀷 + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + binding = ActivityUserSearchQhlBinding.inflate(LayoutInflater.from(this)); + setContentView(binding.getRoot()); + type = this.getIntent().getIntExtra("type", 0); + initView(); + showDialog(); + } + + private void initView() { + myRefreshLayout = (RefreshLayout) binding.refreshLayout; + myRefreshLayout.setEnableRefresh(false); + myRefreshLayout.setRefreshFooter(new ClassicsFooter(this)); + myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(RefreshLayout refreshlayout) { + page = page + 1; + selectUser(cardID, name, false); + } + }); + adapter = new UserSearchAdapter(this, records, new UserSearchAdapter.OnItemClickListener() { + @Override + public void onItemClick(int position) { + Intent intent = new Intent(UserSearchActivity.this, CardSearchActivity.class); + intent.putExtra("pearsontId", records.get(position).getPeasantId()); + intent.putExtra("type", type); + UserSearchActivity.this.startActivity(intent); + UserSearchActivity.this.finish(); + } + }); + LinearLayoutManager layoutManager = new LinearLayoutManager(this); + binding.recyclerView.setLayoutManager(layoutManager); + binding.recyclerView.setAdapter(adapter); + titleBar.setOnItemclickListner(ClickType_RIGHT_TEXT, new View.OnClickListener() { + @Override + public void onClick(View v) { + showDialog(); + } + }); + + } + + private void showDialog() { + userSearchDialog = new UserSearchDialog(this, (name, cardId) -> { + UserSearchActivity.this.name = name; + UserSearchActivity.this.cardID = cardId; + + selectUser(cardId, name, true); + }); + userSearchDialog.show(); + } + + /** + * 鏌ヨ鐢ㄦ埛 + * + * @param peasantIdNumber + */ + private void selectUser(String peasantIdNumber, String name, boolean isRefresh) { + if (isRefresh) { + page = 1; + records.clear(); + } + Map<String, Object> data = new HashMap<>(); + data.put("peasantIdNumber", peasantIdNumber); + data.put("peasantName", name); + data.put("current", page); + data.put("pageSize", size); + ApiManager.getInstance().requestPostLoading(this, "api/sjgg/base/peasant/pagePeasantVo", UserListResult.class, data, new SubscriberListener<BaseResponse<UserListResult>>() { + @Override + public void onNext(BaseResponse<UserListResult> t) { + if (t.isSuccess()) { + if (t.getData().getTotal() == records.size()) { + myRefreshLayout.finishLoadMoreWithNoMoreData(); + } else { + records.addAll(t.getData().getRecords()); + } + adapter.notifyDataSetChanged(); + myRefreshLayout.finishLoadMore(); + } + } + }); + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/CardAdapter.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/CardAdapter.java new file mode 100644 index 0000000..6ecc6fa --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/CardAdapter.java @@ -0,0 +1,121 @@ +package com.dayu.qiheonlinelibrary.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.dayu.baselibrary.databinding.ItemNoMoreBinding; +import com.dayu.qiheonlinelibrary.R; +import com.dayu.qiheonlinelibrary.bean.CardInfoListResult; +import com.dayu.qiheonlinelibrary.bean.UserListResult; +import com.dayu.qiheonlinelibrary.databinding.QiheLineItemUserBinding; +import com.dayu.qiheonlinelibrary.databinding.QiheLineItenCardBinding; + +import java.util.List; + +/** + * author: zuo + * Date: 2024-08-08 + * Time: 17:26 + * 澶囨敞锛� + */ +public class CardAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> { + + List<CardInfoListResult.Records> records; + Context mContext; + OnItemClickListener onItemClickListener; + + public interface OnItemClickListener { + void onItemClick(int position); + } + + public CardAdapter(Context context, List<CardInfoListResult.Records> rechargeList, OnItemClickListener onItemClickListener) { + mContext = context; + this.onItemClickListener = onItemClickListener; + this.records = rechargeList; + } + + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + if (viewType == VIEW_TYPE_EMPTY) { + ItemNoMoreBinding emptyView = DataBindingUtil.inflate((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE), com.dayu.baselibrary.R.layout.item_no_more, parent, false); + return new ViewHolderEmpty(emptyView); + } else { + QiheLineItenCardBinding binding = DataBindingUtil.inflate((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE), R.layout.qihe_line_iten_card, parent, false); + + return new ViewHolder(binding); + } + + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + if (holder instanceof ViewHolder) { + if (records.size() > 0) { + try { + CardInfoListResult.Records record = records.get(position); + ((ViewHolder) holder).getBinding().cardId.setText(record.getIccardNum()); + ((ViewHolder) holder).getBinding().userCode.setText(record.getIccardCode()); + ((ViewHolder) holder).getBinding().balance.setText(record.getIccardBalanceMoney() + "鍏�"); + ((ViewHolder) holder).getBinding().totalMorny.setText(record.getTotalRechargeMoney() + "鍏�"); + ((ViewHolder) holder).getBinding().balanceElectic.setText(record.getIccardBalanceElectric()); + ((ViewHolder) holder).getBinding().lastRechargeTime.setText("鏈�鍚庡厖鍊兼椂闂达細" + record.getLastRechargeTime()); + if (record.getIccardStatus() == 0) { + ((ViewHolder) holder).getBinding().state.setText("姝e父"); + } else if (record.getIccardStatus() == 1) { + ((ViewHolder) holder).getBinding().state.setText("宸叉敞閿�"); + } else { + ((ViewHolder) holder).getBinding().state.setText("宸叉寕澶�"); + } + ((ViewHolder) holder).getBinding().item.setOnClickListener(v -> onItemClickListener.onItemClick(position)); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + @Override + public int getItemCount() { + //鍚屾椂杩欓噷涔熼渶瑕佹坊鍔犲垽鏂紝濡傛灉mData.size()涓�0鐨勮瘽锛屽彧寮曞叆涓�涓竷灞�锛屽氨鏄痚mptyView + // 閭d箞锛岃繖涓猺ecyclerView鐨刬temCount涓�1 + if (records.size() == 0) { + return 1; + } + return records.size(); + } + + @Override + public int getItemViewType(int position) { + if (records.size() == 0) { + return VIEW_TYPE_EMPTY; + } else { + return VIEW_TYPE_ITEM; + } + } + + + static class ViewHolder extends RecyclerView.ViewHolder { + QiheLineItenCardBinding mBinding; + + public QiheLineItenCardBinding getBinding() { + return mBinding; + } + + public void setBinding(QiheLineItenCardBinding binding) { + this.mBinding = binding; + } + + public ViewHolder(QiheLineItenCardBinding itemView) { + super(itemView.getRoot()); + this.mBinding = itemView; + + } + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/RechargeAdapter.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/RechargeAdapter.java index 070d9c7..99ac7e7 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/RechargeAdapter.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/RechargeAdapter.java @@ -55,7 +55,7 @@ // ((ViewHolder) holder).getBinding().rachagerWater.setText("鍏呭�兼按閲�:" + rechargeList.get(position).getRechargeWater() + " 鍚�"); ((ViewHolder) holder).getBinding().balance.setText("鍏呭�兼椂浣欓:" + rechargeList.get(position).getBalance() + " 鍏�"); // ((ViewHolder) holder).getBinding().surplusWater.setText("鍓╀綑姘撮噺:" + rechargeList.get(position).getSurplusWater() + " 鍚�"); - ((ViewHolder) holder).getBinding().date.setText("鏃ユ湡:" + DateUtil.dateToStamp(rechargeList.get(position).getDate(), DateUtil.type1)); + ((ViewHolder) holder).getBinding().date.setText("鏃ユ湡:" + DateUtil.dateToStamp(rechargeList.get(position).getRechargeDate(), DateUtil.type1)); } } } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/UserSearchAdapter.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/UserSearchAdapter.java new file mode 100644 index 0000000..bac6a4f --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/adapter/UserSearchAdapter.java @@ -0,0 +1,111 @@ +package com.dayu.qiheonlinelibrary.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + +import com.dayu.baselibrary.databinding.ItemNoMoreBinding; +import com.dayu.qiheonlinelibrary.R; +import com.dayu.qiheonlinelibrary.bean.UserListResult; +import com.dayu.qiheonlinelibrary.databinding.QiheLineItemUserBinding; + +import java.util.List; + +/** + * author: zuo + * Date: 2024-08-08 + * Time: 10:13 + * 澶囨敞锛� + */ +public class UserSearchAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> { + + List<UserListResult.Records> records; + Context mContext; + OnItemClickListener onItemClickListener; + + public interface OnItemClickListener { + void onItemClick(int position); + } + + public UserSearchAdapter(Context context, List<UserListResult.Records> rechargeList, OnItemClickListener onItemClickListener) { + mContext = context; + this.onItemClickListener = onItemClickListener; + this.records = rechargeList; + } + + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + if (viewType == VIEW_TYPE_EMPTY) { + ItemNoMoreBinding emptyView = DataBindingUtil.inflate((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE), com.dayu.baselibrary.R.layout.item_no_more, parent, false); + return new ViewHolderEmpty(emptyView); + } else { + QiheLineItemUserBinding binding = DataBindingUtil.inflate((LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE), R.layout.qihe_line_item_user, parent, false); + + return new ViewHolder(binding); + } + + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + if (holder instanceof ViewHolder) { + if (records.size() > 0) { + try { + ((ViewHolder) holder).getBinding().userName.setText(records.get(position).getPeasantName()); + ((ViewHolder) holder).getBinding().cardID.setText(records.get(position).getPeasantIdNumber()); + ((ViewHolder) holder).getBinding().phone.setText(records.get(position).getPeasantPhone()); + ((ViewHolder) holder).getBinding().address.setText(records.get(position).getAdcdName()); + ((ViewHolder) holder).getBinding().state.setText(records.get(position).getState() == 0 ? "鏈惎鐢�" : "鍚敤"); + ((ViewHolder) holder).getBinding().item.setOnClickListener(v -> onItemClickListener.onItemClick(position)); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + + @Override + public int getItemCount() { + //鍚屾椂杩欓噷涔熼渶瑕佹坊鍔犲垽鏂紝濡傛灉mData.size()涓�0鐨勮瘽锛屽彧寮曞叆涓�涓竷灞�锛屽氨鏄痚mptyView + // 閭d箞锛岃繖涓猺ecyclerView鐨刬temCount涓�1 + if (records.size() == 0) { + return 1; + } + return records.size(); + } + + @Override + public int getItemViewType(int position) { + if (records.size() == 0) { + return VIEW_TYPE_EMPTY; + } else { + return VIEW_TYPE_ITEM; + } + } + + + static class ViewHolder extends RecyclerView.ViewHolder { + QiheLineItemUserBinding mBinding; + + public QiheLineItemUserBinding getBinding() { + return mBinding; + } + + public void setBinding(QiheLineItemUserBinding binding) { + this.mBinding = binding; + } + + public ViewHolder(QiheLineItemUserBinding itemView) { + super(itemView.getRoot()); + this.mBinding = itemView; + + } + } +} + diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java new file mode 100644 index 0000000..4cc68fa --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/AddUserResult.java @@ -0,0 +1,22 @@ +package com.dayu.qiheonlinelibrary.bean; + +/** + * author: zuo + * Date: 2024-08-05 + * Time: 16:13 + * 澶囨敞锛� + */ +public class AddUserResult { +// {"state":1,"updatedTime":"2024-08-05 16:12:29","accountType":0,"planId":"","preRechargeMoney":0.00,"adcdName":"鐒﹀簷鏉戝浼�","iccardBalanceMoney":"","updatedBy":"1816297106145103873","peasantType":"","compensateMoney":0.00,"createdTime":"2024-08-05 16:12:29","refunds":0.00,"peasantId":"1820372286394867713","priceType":"","createdBy":"1816297106145103873","adcd":"371425102301","peasantIdNumber":"130107199210160023","peasantCode":"37142510230100013","peasantName":"娴嬭瘯","peasantPhone":"15802220723","contractedLandArea":"","address":"","planName":""} + + + public String peasantId; + + public String getPeasantId() { + return peasantId; + } + + public void setPeasantId(String peasantId) { + this.peasantId = peasantId; + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoListResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoListResult.java new file mode 100644 index 0000000..69d41a1 --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoListResult.java @@ -0,0 +1,165 @@ +package com.dayu.qiheonlinelibrary.bean; + +import java.util.List; + +/** + * author: zuo + * Date: 2024-08-08 + * Time: 14:43 + * 澶囨敞锛� + */ +public class CardInfoListResult { + + int total;//鎬绘暟 + + int pages; + + int size; + + List<Records> records; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public List<Records> getRecords() { + return records; + } + + public void setRecords(List<Records> records) { + this.records = records; + } + + public class Records { + String iccardInfoId;//ic鍗′俊鎭痠d + String iccardNum;//瀹炰綋鍗″彿 + + String totalRechargeMoney;//绱鍏呭�奸噾棰濓紙鍏冿級 + + int iccardStatus;//ic鍗$姸鎬� 0 姝e父 1 宸叉敞閿� 2 宸叉寕澶� + String peasantId;//鐢ㄦ埛id + + String yearRechargeMoney;// 鏈勾鍏呭�奸噾棰� + + String lastRechargeTime; + + + String iccardOpenTime;//鐢ㄦ埛寮�鍗d + + + String iccardBalanceMoney;//鍗″唴鍓╀綑閲戦锛堝厓锛� + + String iccardCode;//鐢ㄦ埛鍗″彿锛堝啓鍦ㄥ崱閲岀殑鐢ㄦ埛缂栧彿锛� + + String iccardBalanceElectric;// 鍗″唴鍓╀綑鐢甸噺 + + public String getIccardBalanceElectric() { + return iccardBalanceElectric; + } + + public void setIccardBalanceElectric(String iccardBalanceElectric) { + this.iccardBalanceElectric = iccardBalanceElectric; + } + + public String getIccardInfoId() { + return iccardInfoId; + } + + public void setIccardInfoId(String iccardInfoId) { + this.iccardInfoId = iccardInfoId; + } + + public String getIccardNum() { + return iccardNum; + } + + public void setIccardNum(String iccardNum) { + this.iccardNum = iccardNum; + } + + public String getTotalRechargeMoney() { + return totalRechargeMoney; + } + + public void setTotalRechargeMoney(String totalRechargeMoney) { + this.totalRechargeMoney = totalRechargeMoney; + } + + public int getIccardStatus() { + return iccardStatus; + } + + public void setIccardStatus(int iccardStatus) { + this.iccardStatus = iccardStatus; + } + + public String getPeasantId() { + return peasantId; + } + + public void setPeasantId(String peasantId) { + this.peasantId = peasantId; + } + + public String getYearRechargeMoney() { + return yearRechargeMoney; + } + + public void setYearRechargeMoney(String yearRechargeMoney) { + this.yearRechargeMoney = yearRechargeMoney; + } + + public String getLastRechargeTime() { + return lastRechargeTime; + } + + public void setLastRechargeTime(String lastRechargeTime) { + this.lastRechargeTime = lastRechargeTime; + } + + public String getIccardOpenTime() { + return iccardOpenTime; + } + + public void setIccardOpenTime(String iccardOpenTime) { + this.iccardOpenTime = iccardOpenTime; + } + + public String getIccardBalanceMoney() { + return iccardBalanceMoney; + } + + public void setIccardBalanceMoney(String iccardBalanceMoney) { + this.iccardBalanceMoney = iccardBalanceMoney; + } + + public String getIccardCode() { + return iccardCode; + } + + public void setIccardCode(String iccardCode) { + this.iccardCode = iccardCode; + } + } + +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoResult.java new file mode 100644 index 0000000..217d9c2 --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/CardInfoResult.java @@ -0,0 +1,137 @@ +package com.dayu.qiheonlinelibrary.bean; + +/** + * author: zuo + * Date: 2024-08-06 + * Time: 16:51 + * 澶囨敞锛氶�氳繃瀹炰綋鍗″彿鏌ヨ鍒扮殑淇℃伅 + */ +public class CardInfoResult { +//{"chargeMethod":"","iccardCancelTime":"","lastRechargeTime":"2024-08-06 15:21:59","thisSaleMoney":"","totalRechargeWaterAmount":0.00,"iccardBalanceAmonunt":0.00,"iccardInfoId":"1820721965431267330","iccardProtocolName":"","totalRechargeElectricAmount":0.00,"logicState":1,"username":"","state":1,"familySize":"","yearRechargeMoney":0.00,"thisSaleAmount":"","onlyRechargeMoney":"","identityCard":"","iccardBrand":"","iccardBalanceMoney":0.00,"openOperatorUsername":"","adName":"","rechargeWaterAmount":"","openOperatorUserId":"1816297106145103873","lastSwipeTime":"","address":"","yearCompensateMoney":0.00,"iccardProtocolOpenMoney":"","peasantId":"1820374742679953410","reissueTimes":0,"iccardProtocolReissueMoney":"","iccardProtocolId":"","yearRechargeWaterAmount":0.00,"iccardBalanceElectric":0.00,"iccardStatus":0,"phone":"","lastRechargeMoney":0.00,"iccardOpenTime":"2024-08-06 15:21:59","yearRechargeElectricAmount":0.00,"reissueRechargeRecordId":"","iccardPrice":1.50,"iccardNum":"3714251023011","accountType":0,"equipCode":"","rechargeWaterMoney":"","totalRechargeMoney":0.00,"executeWaterPrice":"","iccardType":1,"iccardCode":"4440DABA"} + + int iccardStatus;//ic鍗$姸鎬� 0 姝e父 1 宸叉敞閿� 2 宸叉寕澶� + String peasantId;//鐢ㄦ埛id + float totalRechargeMoney;// 绱鍏呭�奸噾棰� + float yearRechargeMoney;// 鏈勾鍏呭�奸噾棰� + + String lastRechargeTime; + + String iccardInfoId;//ic鍗″钩鍙癷d + + String iccardOpenTime;//鐢ㄦ埛寮�鍗d + + float iccardBalanceMoney;//鍗″唴鍓╀綑閲戦锛堝厓锛� + String iccardCode;//鐢ㄦ埛鍗″彿锛堝啓鍦ㄥ崱閲岀殑鐢ㄦ埛缂栧彿锛� + + String peasantName;//鐢ㄦ埛鍚嶇О + + String peasantIdNumber;//韬唤璇佸彿 + + String peasantPhone;//鎵嬫満鍙� + + String iccardBalanceElectric;// 鍗″唴鍓╀綑鐢甸噺 + + public String getIccardBalanceElectric() { + return iccardBalanceElectric; + } + + public void setIccardBalanceElectric(String iccardBalanceElectric) { + this.iccardBalanceElectric = iccardBalanceElectric; + } + + public String getPeasantName() { + return peasantName; + } + + public void setPeasantName(String peasantName) { + this.peasantName = peasantName; + } + + public String getPeasantIdNumber() { + return peasantIdNumber; + } + + public void setPeasantIdNumber(String peasantIdNumber) { + this.peasantIdNumber = peasantIdNumber; + } + + public String getPeasantPhone() { + return peasantPhone; + } + + public void setPeasantPhone(String peasantPhone) { + this.peasantPhone = peasantPhone; + } + + public String getIccardCode() { + return iccardCode; + } + + public void setIccardCode(String iccardCode) { + this.iccardCode = iccardCode; + } + + public float getIccardBalanceMoney() { + return iccardBalanceMoney; + } + + public void setIccardBalanceMoney(float iccardBalanceMoney) { + this.iccardBalanceMoney = iccardBalanceMoney; + } + + public int getIccardStatus() { + return iccardStatus; + } + + public void setIccardStatus(int iccardStatus) { + this.iccardStatus = iccardStatus; + } + + public String getPeasantId() { + return peasantId; + } + + public void setPeasantId(String peasantId) { + this.peasantId = peasantId; + } + + public float getTotalRechargeMoney() { + return totalRechargeMoney; + } + + public void setTotalRechargeMoney(float totalRechargeMoney) { + this.totalRechargeMoney = totalRechargeMoney; + } + + public float getYearRechargeMoney() { + return yearRechargeMoney; + } + + public void setYearRechargeMoney(float yearRechargeMoney) { + this.yearRechargeMoney = yearRechargeMoney; + } + + public String getLastRechargeTime() { + return lastRechargeTime; + } + + public void setLastRechargeTime(String lastRechargeTime) { + this.lastRechargeTime = lastRechargeTime; + } + + public String getIccardInfoId() { + return iccardInfoId; + } + + public void setIccardInfoId(String iccardInfoId) { + this.iccardInfoId = iccardInfoId; + } + + public String getIccardOpenTime() { + return iccardOpenTime; + } + + public void setIccardOpenTime(String iccardOpenTime) { + this.iccardOpenTime = iccardOpenTime; + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/LoginResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/LoginResult.java new file mode 100644 index 0000000..64cf5c4 --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/LoginResult.java @@ -0,0 +1,56 @@ +package com.dayu.qiheonlinelibrary.bean; + +import java.util.List; + +/** + * author: zuo + * Date: 2024-07-30 + * Time: 16:06 + * 澶囨敞锛� + */ +public class LoginResult { + //{"code":"0","msg":"鎿嶄綔鎴愬姛","data":{"chargeMethod":"","iccardCancelTime":"","lastRechargeTime":"2024-08-05 17:04:15","thisSaleMoney":"","totalRechargeWaterAmount":0.00,"iccardBalanceAmonunt":0.00,"iccardInfoId":"1820385315354320898","iccardProtocolName":"","totalRechargeElectricAmount":0.00,"logicState":1,"username":"","state":1,"familySize":"","yearRechargeMoney":0.00,"thisSaleAmount":"","onlyRechargeMoney":"","identityCard":"","iccardBrand":"","iccardBalanceMoney":0.00,"openOperatorUsername":"","adName":"","rechargeWaterAmount":"","openOperatorUserId":"1816297106145103873","lastSwipeTime":"","address":"","yearCompensateMoney":0.00,"iccardProtocolOpenMoney":"","peasantId":"1820374742679953410","reissueTimes":0,"iccardProtocolReissueMoney":"","iccardProtocolId":"","yearRechargeWaterAmount":0.00,"iccardBalanceElectric":0.00,"iccardStatus":0,"phone":"","lastRechargeMoney":0.00,"iccardOpenTime":"","yearRechargeElectricAmount":0.00,"reissueRechargeRecordId":"","iccardPrice":1.50,"iccardNum":"3714251023011","accountType":0,"equipCode":"","rechargeWaterMoney":"","totalRechargeMoney":0.00,"executeWaterPrice":"","iccardType":1,"iccardCode":"BADA4044"}} + + + OtherData otherData; + + public OtherData getOtherData() { + return otherData; + } + + public void setOtherData(OtherData otherData) { + this.otherData = otherData; + } + + public class OtherData { + List<String> adcdList;//璇ョ敤鎴风殑鍦板潃缂栫爜 + String tenantAdnm;//鍘垮悕绉� + List<String> adnmList;//鏉戝浼氬悕绉� + + public List<String> getAdcdList() { + return adcdList; + } + + public void setAdcdList(List<String> adcdList) { + this.adcdList = adcdList; + } + + public String getTenantAdnm() { + return tenantAdnm; + } + + public void setTenantAdnm(String tenantAdnm) { + this.tenantAdnm = tenantAdnm; + } + + public List<String> getAdnmList() { + return adnmList; + } + + public void setAdnmList(List<String> adnmList) { + this.adnmList = adnmList; + } + } + + +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/OpenCardResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/OpenCardResult.java new file mode 100644 index 0000000..9230906 --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/OpenCardResult.java @@ -0,0 +1,31 @@ +package com.dayu.qiheonlinelibrary.bean; + +/** + * author: zuo + * Date: 2024-08-05 + * Time: 16:23 + * 澶囨敞锛� + */ +public class OpenCardResult { +// {"code":"0","msg":"鎿嶄綔鎴愬姛","data":{"iccardBalanceMoney":0,"lastSwipeTime":"","rechargeOperatorUsername":"","rechargeType":0,"iccardCode":"3714251023010002","rechargeCallbackType":"","iccardNum":"","lastRechargeTime":"","iccardBalanceAmonunt":0,"thisSaleAmount":"","remark":"寰呭啓鍗★紝寮�鍗′氦鏄撲腑","username":"","rechargeRecordNum":"1821459146525384704","totalRechargeMoney":"","iccardType":"","reissueTimes":"","yearRechargeElectricAmount":"","rechargeWaterAmount":"","iccardRechargeRecordId":"1821459146567327745","rechargeOperatorUserId":"1816297106145103873","chargeMethod":"","yearRechargeMoney":"","rechargeElectricAmount":"","iccardProtocolName":"","equipCode":"","thisSaleMoney":"","iccardBalanceElectric":"","rechargeCardMoney":5,"peasantId":"1821458177314004994","totalRechargeElectricAmount":"","rechargeStatus":1,"writeCardStatus":1,"lastRechargeMoney":"","totalRechargeWaterAmount":"","executeWaterPrice":"","adName":"","yearCompensateMoney":"","iccardBrand":"","rechargeWaterMoney":"","yearRechargeWaterAmount":"","rechargeMoney":5,"iccardInfoId":"1821459146349223937","rechargeTime":"","iccardPrice":1.50016}} + + String iccardRechargeRecordId;//ic鍗′氦鏄撹褰昳d + + String iccardCode;//骞冲彴鐢熸垚鐨勫瓨鍦ㄥ崱鍐呯殑鐢ㄦ埛缂栧彿 + + public String getIccardCode() { + return iccardCode; + } + + public void setIccardCode(String iccardCode) { + this.iccardCode = iccardCode; + } + + public String getIccardRechargeRecordId() { + return iccardRechargeRecordId; + } + + public void setIccardRechargeRecordId(String iccardRechargeRecordId) { + this.iccardRechargeRecordId = iccardRechargeRecordId; + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/PricePlanResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/PricePlanResult.java new file mode 100644 index 0000000..6fbb818 --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/PricePlanResult.java @@ -0,0 +1,166 @@ +package com.dayu.qiheonlinelibrary.bean; + +import com.dayu.baselibrary.utils.MornyUtil; + +import java.util.List; + +/** + * author: zuo + * Date: 2024-08-05 + * Time: 16:00 + * 澶囨敞锛氭按浠风鐞嗗垪琛� + */ +public class PricePlanResult { + +// { +// "code": "0", +// "msg": "鎿嶄綔鎴愬姛", +// "data": { +// "records": [ +// { +// "priceMethod": 2, +// "priceTypeName": "鎸夋埛闃舵姘翠环", +// "cardManagementFee": 5, +// "itemList": [ +// { +// "ladder": 1, +// "planId": "1816390728315052033", +// "updatedTime": "2024-07-25 16:31:11", +// "ladderName": "绗竴闃舵", +// "logicState": 1, +// "price": 0, +// "planItemId": "1816390728386355201", +// "createdBy": "1761933307362938881", +// "tenantId": "1761933241344593922", +// "waterPrice": "", +// "endWaterVolume": 0, +// "createdTime": "2024-07-25 16:31:11", +// "updatedBy": "1761933307362938881", +// "initialWaterVolume": 0 +// }, +// { +// "ladder": 2, +// "planId": "1816390728315052033", +// "updatedTime": "2024-07-25 16:31:11", +// "ladderName": "绗簩闃舵", +// "logicState": 1, +// "price": 0, +// "planItemId": "1816390728407326722", +// "createdBy": "1761933307362938881", +// "tenantId": "1761933241344593922", +// "waterPrice": "", +// "endWaterVolume": "", +// "createdTime": "2024-07-25 16:31:11", +// "updatedBy": "1761933307362938881", +// "initialWaterVolume": 0 +// }, +// { +// "ladder": 3, +// "planId": "1816390728315052033", +// "updatedTime": "2024-07-25 16:31:11", +// "ladderName": "绗笁闃舵", +// "logicState": 1, +// "price": 0, +// "planItemId": "1816390728415715330", +// "createdBy": "1761933307362938881", +// "tenantId": "1761933241344593922", +// "waterPrice": "", +// "endWaterVolume": "", +// "createdTime": "2024-07-25 16:31:11", +// "updatedBy": "1761933307362938881", +// "initialWaterVolume": 0 +// } +// ], +// "weratio": 4.688, +// "cropTypeName": "", +// "unitPrice": 0.32, +// "planId": "1816390728315052033", +// "adnm": "榻愭渤鍘�", +// "cropType": "", +// "state": 1, +// "adId": "371425000000", +// "priceType": 2, +// "createdTime": "2024-07-25 16:31:11", +// "planName": "鍩虹姘翠环" +// } +// ], +// "total": "1", +// "size": "50", +// "current": "1", +// "orders": [ +// +// ], +// "optimizeCountSql": true, +// "searchCount": true, +// "countId": "", +// "maxLimit": "", +// "pages": "1" +// } +// } + + + int total; + int pages; + int size; + + + List<Records> records; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public List<Records> getRecords() { + return records; + } + + public void setRecords(List<Records> records) { + this.records = records; + } + + public class Records { + String planId; + + float weratio;//姘翠环 涔樹互绯绘暟寰楀嚭鐢典环 + float unitPrice;//绯绘暟 + + public String getElectricityPrice() { + try { + return MornyUtil.multiplyPrice(weratio, unitPrice); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + public String getPlanId() { + return planId; + } + + public void setPlanId(String planId) { + this.planId = planId; + } + } + + +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/RechargeResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/RechargeResult.java new file mode 100644 index 0000000..8d092bb --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/RechargeResult.java @@ -0,0 +1,71 @@ +package com.dayu.qiheonlinelibrary.bean; + +/** + * author: zuo + * Date: 2024-08-07 + * Time: 11:08 + * 澶囨敞锛� + */ +public class RechargeResult { + //{"iccardBalanceMoney":2,"lastSwipeTime":"","rechargeOperatorUsername":"","rechargeType":1,"iccardCode":"4440DABA","rechargeCallbackType":"","iccardNum":"","lastRechargeTime":"","iccardBalanceAmonunt":6.25,"thisSaleAmount":"","remark":"寰呭啓鍗★紝鍏呭�间氦鏄撲腑","username":"","rechargeRecordNum":"1821020394581663744","totalRechargeMoney":0.00,"iccardType":"","reissueTimes":"","yearRechargeElectricAmount":0.00,"rechargeWaterAmount":6.25,"iccardRechargeRecordId":"1821020394594246658","rechargeOperatorUserId":"1816297106145103873","chargeMethod":"","yearRechargeMoney":0.00,"rechargeElectricAmount":1.33,"iccardProtocolName":"","equipCode":"","thisSaleMoney":"","iccardBalanceElectric":1.33,"rechargeCardMoney":"","peasantId":"1820374742679953410","totalRechargeElectricAmount":0.00,"rechargeStatus":1,"writeCardStatus":1,"lastRechargeMoney":"","totalRechargeWaterAmount":0.00,"executeWaterPrice":"","adName":"","yearCompensateMoney":"","iccardBrand":"","rechargeWaterMoney":2,"yearRechargeWaterAmount":0.00,"rechargeMoney":2,"iccardInfoId":"","rechargeTime":"","iccardPrice":1.50} + + String iccardBalanceMoney;//鍗″唴鍓╀綑閲戦锛堝厓锛� + + float totalRechargeMoney;// 绱鍏呭�奸噾棰� + + float yearRechargeMoney;// 鏈勾鍏呭�奸噾棰� + + float rechargeElectricAmount;//浜ゆ槗鐢甸噺 + + float iccardBalanceElectric;//鍗″唴鍓╀綑鐢甸噺 + + String iccardRechargeRecordId;//璁㈠崟鍙� + + public String getIccardBalanceMoney() { + return iccardBalanceMoney; + } + + public void setIccardBalanceMoney(String iccardBalanceMoney) { + this.iccardBalanceMoney = iccardBalanceMoney; + } + + public float getTotalRechargeMoney() { + return totalRechargeMoney; + } + + public void setTotalRechargeMoney(float totalRechargeMoney) { + this.totalRechargeMoney = totalRechargeMoney; + } + + public float getYearRechargeMoney() { + return yearRechargeMoney; + } + + public void setYearRechargeMoney(float yearRechargeMoney) { + this.yearRechargeMoney = yearRechargeMoney; + } + + public float getRechargeElectricAmount() { + return rechargeElectricAmount; + } + + public void setRechargeElectricAmount(float rechargeElectricAmount) { + this.rechargeElectricAmount = rechargeElectricAmount; + } + + public float getIccardBalanceElectric() { + return iccardBalanceElectric; + } + + public void setIccardBalanceElectric(float iccardBalanceElectric) { + this.iccardBalanceElectric = iccardBalanceElectric; + } + + public String getIccardRechargeRecordId() { + return iccardRechargeRecordId; + } + + public void setIccardRechargeRecordId(String iccardRechargeRecordId) { + this.iccardRechargeRecordId = iccardRechargeRecordId; + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/ReplaceCardResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/ReplaceCardResult.java new file mode 100644 index 0000000..7164176 --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/ReplaceCardResult.java @@ -0,0 +1,70 @@ +package com.dayu.qiheonlinelibrary.bean; + +/** + * author: zuo + * Date: 2024-08-09 + * Time: 16:29 + * 澶囨敞锛氳ˉ鍗¤繑鍥炲弬鏁� + */ +public class ReplaceCardResult { + //{"code":"0","msg":"鎿嶄綔鎴愬姛","data":{"iccardBalanceMoney":5.00,"lastSwipeTime":"","rechargeOperatorUsername":"","rechargeType":0,"iccardCode":"3714251023010005","rechargeCallbackType":"","iccardNum":"","lastRechargeTime":"","iccardBalanceAmonunt":15.63,"thisSaleAmount":"","remark":"寰呭啓鍗★紝琛ュ崱寮�鍗′氦鏄撲腑","username":"","rechargeRecordNum":"1821825921016406016","totalRechargeMoney":"","iccardType":"","reissueTimes":"","yearRechargeElectricAmount":"","rechargeWaterAmount":"","iccardRechargeRecordId":"1821825921020600321","rechargeOperatorUserId":"1816297106145103873","chargeMethod":"","yearRechargeMoney":"","rechargeElectricAmount":"","iccardProtocolName":"","equipCode":"","thisSaleMoney":"","iccardBalanceElectric":3.33,"rechargeCardMoney":4,"peasantId":"1821458177314004994","totalRechargeElectricAmount":"","rechargeStatus":1,"writeCardStatus":1,"lastRechargeMoney":"","totalRechargeWaterAmount":"","executeWaterPrice":"","adName":"","yearCompensateMoney":"","iccardBrand":"","rechargeWaterMoney":"","yearRechargeWaterAmount":"","rechargeMoney":4,"iccardInfoId":"1821825920739581954","rechargeTime":"","iccardPrice":1.50}} + + + String iccardBalanceMoney;//鍗″唴鍓╀綑閲戦锛堝厓锛� + String iccardBalanceElectric;//鍗″唴鍓╀綑鐢甸噺 + + String iccardCode;//鐢ㄦ埛鍗″彿锛堝啓鍦ㄥ崱閲岀殑鐢ㄦ埛缂栧彿锛� + String totalRechargeMoney;//绱鍏呭�奸噾棰濓紙鍏冿級 + + String lastRechargeTime;//鏈�鍚庡厖鍊兼椂闂� + + String iccardRechargeRecordId;//ic鍗′氦鏄撹褰昳d + + public String getIccardRechargeRecordId() { + return iccardRechargeRecordId; + } + + public void setIccardRechargeRecordId(String iccardRechargeRecordId) { + this.iccardRechargeRecordId = iccardRechargeRecordId; + } + + public String getIccardBalanceMoney() { + return iccardBalanceMoney; + } + + public void setIccardBalanceMoney(String iccardBalanceMoney) { + this.iccardBalanceMoney = iccardBalanceMoney; + } + + public String getIccardBalanceElectric() { + return iccardBalanceElectric; + } + + public void setIccardBalanceElectric(String iccardBalanceElectric) { + this.iccardBalanceElectric = iccardBalanceElectric; + } + + public String getIccardCode() { + return iccardCode; + } + + public void setIccardCode(String iccardCode) { + this.iccardCode = iccardCode; + } + + public String getTotalRechargeMoney() { + return totalRechargeMoney; + } + + public void setTotalRechargeMoney(String totalRechargeMoney) { + this.totalRechargeMoney = totalRechargeMoney; + } + + public String getLastRechargeTime() { + return lastRechargeTime; + } + + public void setLastRechargeTime(String lastRechargeTime) { + this.lastRechargeTime = lastRechargeTime; + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/UserListResult.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/UserListResult.java new file mode 100644 index 0000000..c31efa2 --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/bean/UserListResult.java @@ -0,0 +1,118 @@ +package com.dayu.qiheonlinelibrary.bean; + +import java.util.List; + +/** + * author: zuo + * Date: 2024-07-31 + * Time: 15:28 + * 澶囨敞锛� + */ +public class UserListResult { + + int total;//鎬绘暟 + + int pages; + + int size; + + List<Records> records; + + public List<Records> getRecords() { + return records; + } + + public void setRecords(List<Records> records) { + this.records = records; + } + + public class Records { + String peasantId; + String peasantName;//鐢ㄦ埛鍚嶇О + String peasantIdNumber;//鐢ㄦ埛韬唤璇佸彿 + String peasantPhone;//鎵嬫満鍙� + String adcd;//鍦板潃鐮� + String adcdName;//鍦板潃锛氱劍搴欐潙濮斾細 + int state;//鐘舵�� 0 鏈惎鐢� 1 鍚敤 + + public String getPeasantName() { + return peasantName; + } + + public void setPeasantName(String peasantName) { + this.peasantName = peasantName; + } + + public String getPeasantIdNumber() { + return peasantIdNumber; + } + + public void setPeasantIdNumber(String peasantIdNumber) { + this.peasantIdNumber = peasantIdNumber; + } + + public String getPeasantPhone() { + return peasantPhone; + } + + public void setPeasantPhone(String peasantPhone) { + this.peasantPhone = peasantPhone; + } + + public String getAdcd() { + return adcd; + } + + public void setAdcd(String adcd) { + this.adcd = adcd; + } + + public String getAdcdName() { + return adcdName; + } + + public void setAdcdName(String adcdName) { + this.adcdName = adcdName; + } + + public int getState() { + return state; + } + + public void setState(int state) { + this.state = state; + } + + public String getPeasantId() { + return peasantId; + } + + public void setPeasantId(String peasantId) { + this.peasantId = peasantId; + } + } + + public int getPages() { + return pages; + } + + public void setPages(int pages) { + this.pages = pages; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/RegionCard.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/RegionCard.java index 3285855..339bca6 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/RegionCard.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/RegionCard.java @@ -17,25 +17,15 @@ public String cardType = CardCommon.REGION;//鍗″懡浠� - public int region;//鍖哄煙鍦板潃(浣庡墠楂樺悗) 鍙互璇嗗埆鏌愬幙闀囨潙 - - public int controllerCodel;// 鎺у埗鍣ㄧ紪鍙�(浣庡墠楂樺悗) 鏈尯鍩熷唴鎺у埗鍣ㄧ紪鍙� + public int arerNumber;//鍖哄煙鍙�(搴曚綅鍦ㄥ墠楂樹綅鍦ㄥ悗) - public int getRegion() { - return region; + public int getArerNumber() { + return arerNumber; } - public void setRegion(int region) { - this.region = region; - } - - public int getControllerCodel() { - return controllerCodel; - } - - public void setControllerCodel(int controllerCodel) { - this.controllerCodel = controllerCodel; + public void setArerNumber(int arerNumber) { + this.arerNumber = arerNumber; } public byte[] toByte() { @@ -49,14 +39,9 @@ byte[] zero = data.get(0); regionCard.cardType = HexUtil.byteToHex(zero[0]); - byte[] regionByte = new byte[2]; - System.arraycopy(zero, 1, regionByte, 0, regionByte.length); - regionCard.region = HexUtil.get16To10LowHightByBytes(regionByte); - - - byte[] controllerCodelByte = new byte[2]; - System.arraycopy(zero, 3, controllerCodelByte, 0, controllerCodelByte.length); - regionCard.controllerCodel = HexUtil.get16To10LowHightByBytes(controllerCodelByte); + byte[] arerNumberByte = new byte[4]; + System.arraycopy(zero, 1, arerNumberByte, 0, arerNumberByte.length); + regionCard.arerNumber = HexUtil.get16To10LowHightByBytes(arerNumberByte); return regionCard; @@ -70,20 +55,13 @@ public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); - byte[] regionBytes = new byte[2]; - byte[] regionDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(region)); - System.arraycopy(regionDatas, 0, regionBytes, 0, regionDatas.length); - if (regionBytes != null) { - System.arraycopy(regionBytes, 0, data, 1, regionBytes.length); + //鍖哄煙鍙� + byte[] arerNumberBytes = new byte[4]; + byte[] arerNumberDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(arerNumber)); + System.arraycopy(arerNumberDatas, 0, arerNumberBytes, 0, arerNumberDatas.length); + if (arerNumberBytes != null) { + System.arraycopy(arerNumberBytes, 0, data, 1, arerNumberBytes.length); } - byte[] controllerCodelBytes = new byte[2]; - byte[] controllerCodelDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(controllerCodel)); - System.arraycopy(controllerCodelDatas, 0, controllerCodelBytes, 0, controllerCodelDatas.length); - if (controllerCodelBytes != null) { - System.arraycopy(controllerCodelBytes, 0, data, 3, controllerCodelBytes.length); - } - - data[15] = getByteSum(data); return data; } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java index b26f931..e25d34a 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/card/UserCard.java @@ -1,5 +1,6 @@ package com.dayu.qiheonlinelibrary.card; +import com.dayu.baselibrary.tools.BcdUtil; import com.dayu.baselibrary.tools.HexUtil; import com.dayu.qiheonlinelibrary.utils.CardCommon; @@ -20,18 +21,23 @@ public int arerNumber;//鍖哄煙鍙�(搴曚綅鍦ㄥ墠楂樹綅鍦ㄥ悗) - public int deviceNumberl;//璁惧缂栧彿(搴曚綅鍦ㄥ墠楂樹綅鍦ㄥ悗) - public short rechargeTimes;//鍏呭�兼鏁� + public String userCode;//鐢ㄦ埛缂栧彿BCD鐪佸競鍘夸埂鏉� - public int totalWater;//鐢ㄦ埛鎬荤敤姘撮噺 搴曚綅鍦ㄥ墠锛岄珮浣嶅湪鍚�2浣嶅皬鏁扮偣 鍚袱涓皬鏁扮偣鐨勬暣鏁� + public int userCodeNumber;//鐢ㄦ埛缂栧彿(楂樹綅鍦ㄥ墠浣庝綅鍦ㄥ悗锛� - public int totalElectric;//鎬荤敤鐢甸噺浣� 搴曚綅鍦ㄥ墠锛岄珮浣嶅湪鍚� 1浣嶅皬鏁扮偣 鍚�1浣嶅皬鏁扮偣鐨勬暣鏁� + public int cardWriteState;//绠$悊鍗¤繑鍐欐満鍒� 00:涓績鍐�01:鎺у埗鍣ㄨ繑鍐� + + public int cardState;//鐜板満鍗$姸鎬� 00:鏃у崱 01:鏂板崱 public int balance;//鍓╀綑閲戦 搴曚綅鍦ㄥ墠 2浣嶅皬鏁扮偣锛屽崟浣嶅垎 - public int surplusWater;//鍓╀綑姘撮噺 搴曚綅鍦ㄥ墠 2浣嶅皬鏁扮偣銆�鍗曚綅绔嬫柟绫� (璺熶环鏍间竴鏍峰厛涔樹互100) + public int surplusElecticity;//鍓╀綑鐢甸噺 搴曚綅鍦ㄥ墠 2浣嶅皬鏁扮偣銆�鍗曚綅绔嬫柟绫� (璺熶环鏍间竴鏍峰厛涔樹互100) + + public int totalMorny;//绱鍏呭�奸噾棰� public Calendar rechargeDate;// 璐按鏃堕棿 BCD + + public Float electricPrice;//鐢靛崟浠凤紝淇濈暀涓変綅灏忔暟 /** @@ -47,24 +53,21 @@ userCard.cardType = HexUtil.byteToHex(zero[0]); - byte[] arerNumberByte = new byte[2]; + byte[] arerNumberByte = new byte[4]; System.arraycopy(zero, 1, arerNumberByte, 0, arerNumberByte.length); userCard.arerNumber = HexUtil.get16To10LowHightByBytes(arerNumberByte); - - byte[] deviceNumberlByte = new byte[2]; - System.arraycopy(zero, 3, deviceNumberlByte, 0, deviceNumberlByte.length); - userCard.deviceNumberl = HexUtil.get16To10LowHightByBytes(deviceNumberlByte); - - userCard.rechargeTimes = HexUtil.hexToByte(HexUtil.byteToHex(zero[5])); - - byte[] totalWaterByte = new byte[4]; - System.arraycopy(zero, 6, totalWaterByte, 0, totalWaterByte.length); - userCard.totalWater = HexUtil.get16To10LowHightByBytes(totalWaterByte); - - byte[] totalElectricByte = new byte[4]; - System.arraycopy(zero, 10, totalElectricByte, 0, totalElectricByte.length); - userCard.totalElectric = HexUtil.get16To10LowHightByBytes(totalElectricByte); - + byte[] userCodeByte = new byte[6]; + System.arraycopy(zero, 5, userCodeByte, 0, userCodeByte.length); + userCard.userCode= BcdUtil.bcdToStr(userCodeByte); + byte[] userCodeNumber = new byte[2]; + System.arraycopy(zero, 10, userCodeNumber, 0, userCodeNumber.length); + userCard.userCodeNumber=HexUtil.get16To10LowHightByBytes(userCodeNumber); + byte[] cardWriteState = new byte[1]; + System.arraycopy(zero, 13, cardWriteState, 0, cardWriteState.length); + userCard.cardWriteState=HexUtil.get16To10LowHightByBytes(cardWriteState); + byte[] cardState = new byte[1]; + System.arraycopy(zero, 14, cardState, 0, cardState.length); + userCard.cardState=HexUtil.get16To10LowHightByBytes(cardState); //绗�1鍧楄В鏋� byte[] one = data.get(1); byte[] balanceByte = new byte[4]; @@ -73,18 +76,25 @@ byte[] surplusWaterByte = new byte[4]; System.arraycopy(one, 4, surplusWaterByte, 0, surplusWaterByte.length); - userCard.surplusWater = HexUtil.get16To10LowHightByBytes(surplusWaterByte); + userCard.surplusElecticity = HexUtil.get16To10LowHightByBytes(surplusWaterByte); + + byte[] totalMorny = new byte[4]; + System.arraycopy(one, 8, totalMorny, 0, totalMorny.length); + userCard.totalMorny = HexUtil.get16To10LowHightByBytes(totalMorny); byte[] rechargeDateByte = new byte[3]; System.arraycopy(one, 12, rechargeDateByte, 0, rechargeDateByte.length); - int year = HexUtil.getBcdToInt(one[12]); int month = HexUtil.getBcdToInt(one[13]); int day = HexUtil.getBcdToInt(one[14]); - Calendar calendar = Calendar.getInstance(); calendar.set(2000 + year, month, day, 0, 0, 0); userCard.rechargeDate = calendar; + + byte[] two = data.get(2); + byte[] electricPriceByte = new byte[4]; + System.arraycopy(two, 8, electricPriceByte, 0, electricPriceByte.length); + userCard.electricPrice = HexUtil.hexToFloatLowHigh(electricPriceByte); return userCard; @@ -105,37 +115,45 @@ byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); //鍖哄煙鍙� - byte[] arerNumberBytes = new byte[2]; + byte[] arerNumberBytes = new byte[4]; byte[] arerNumberDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(arerNumber)); System.arraycopy(arerNumberDatas, 0, arerNumberBytes, 0, arerNumberDatas.length); if (arerNumberBytes != null) { System.arraycopy(arerNumberBytes, 0, data, 1, arerNumberBytes.length); } - //璁惧缂栧彿 - byte[] deviceNumberlBytes = new byte[2]; - byte[] deviceNumberlDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(deviceNumberl)); - System.arraycopy(deviceNumberlDatas, 0, deviceNumberlBytes, 0, deviceNumberlDatas.length); - if (deviceNumberlBytes != null) { - System.arraycopy(deviceNumberlBytes, 0, data, 3, deviceNumberlBytes.length); - } - //鍏呭�兼鏁� - byte rechargeTimesByte = HexUtil.hexToByte(HexUtil.get10to16(rechargeTimes)); - data[5] = rechargeTimesByte; - //鐢ㄦ埛鎬荤敤姘撮噺 - byte[] totalWaterBytes = new byte[4]; - byte[] totalWaterDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(totalWater)); - System.arraycopy(totalWaterDatas, 0, totalWaterBytes, 0, totalWaterDatas.length); - if (totalWaterBytes != null) { - System.arraycopy(totalWaterBytes, 0, data, 6, totalWaterBytes.length); + + //鐢ㄦ埛缂栧彿(鍦板潃) + byte[] userCodeBytes = new byte[6]; + byte[] userCodeDatas = BcdUtil.strToBcd(userCode); + System.arraycopy(userCodeDatas, 0, userCodeBytes, 0, userCodeDatas.length); + if (userCodeBytes != null) { + System.arraycopy(userCodeBytes, 0, data, 5, userCodeBytes.length); } - //鎬荤敤鐢甸噺浣� - byte[] totalElectricBytes = new byte[4]; - byte[] totalElectricDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(totalElectric)); - System.arraycopy(totalElectricDatas, 0, totalElectricBytes, 0, totalElectricDatas.length); - if (totalElectricBytes != null) { - System.arraycopy(totalElectricBytes, 0, data, 10, totalElectricBytes.length); + //鐢ㄦ埛缂栧彿(鑷) + byte[] userCodeNumberBytes = new byte[2]; + byte[] userCodeNumberDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(userCodeNumber)); + System.arraycopy(userCodeNumberDatas, 0, userCodeNumberBytes, 0, userCodeNumberDatas.length); + if (userCodeNumberBytes != null) { + System.arraycopy(userCodeNumberBytes, 0, data, 11, userCodeNumberBytes.length); } + //绠$悊鍗¤繑鍐欐満鍒� 00:涓績鍐�01:鎺у埗鍣ㄨ繑鍐� + byte[] cardWriteStateBytes = new byte[1]; + byte[] cardWriteStateDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(cardWriteState)); + System.arraycopy(cardWriteStateDatas, 0, cardWriteStateBytes, 0, cardWriteStateDatas.length); + if (cardWriteStateBytes != null) { + System.arraycopy(cardWriteStateBytes, 0, data, 13, cardWriteStateBytes.length); + } + + //绠$悊鍗¤繑鍐欐満鍒� 00:涓績鍐�01:鎺у埗鍣ㄨ繑鍐� + byte[] cardStateBytes = new byte[1]; + byte[] cardStateDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(cardState)); + System.arraycopy(cardStateDatas, 0, cardStateBytes, 0, cardStateDatas.length); + if (cardStateBytes != null) { + System.arraycopy(cardStateBytes, 0, data, 13, cardStateBytes.length); + } + + data[15] = getByteSum(data); return data; } catch (Exception e) { @@ -164,11 +182,17 @@ System.arraycopy(balanceBytes, 0, data, 0, balanceBytes.length); } - byte[] surplusWaterBytes = new byte[4]; - byte[] surplusWaterDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusWater)); - System.arraycopy(surplusWaterDatas, 0, surplusWaterBytes, 0, surplusWaterDatas.length); - if (surplusWaterBytes != null) { - System.arraycopy(surplusWaterBytes, 0, data, 4, surplusWaterBytes.length); + byte[] surplusElecticityBytes = new byte[4]; + byte[] surplusElecticityDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusElecticity)); + System.arraycopy(surplusElecticityDatas, 0, surplusElecticityBytes, 0, surplusElecticityDatas.length); + if (surplusElecticityBytes != null) { + System.arraycopy(surplusElecticityBytes, 0, data, 4, surplusElecticityBytes.length); + } + byte[] totalMornyBytes = new byte[4]; + byte[] totalMornyDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(totalMorny)); + System.arraycopy(totalMornyDatas, 0, totalMornyBytes, 0, totalMornyDatas.length); + if (totalMornyBytes != null) { + System.arraycopy(totalMornyBytes, 0, data, 8, totalMornyBytes.length); } if (rechargeDate != null) { @@ -202,6 +226,7 @@ public byte[] toBytes() { byte[] data = new byte[16]; + try { byte[] balanceBytes = new byte[4]; byte[] balanceDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(balance)); @@ -210,11 +235,18 @@ System.arraycopy(balanceBytes, 0, data, 0, balanceBytes.length); } - byte[] surplusWaterBytes = new byte[4]; - byte[] surplusWaterDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusWater)); - System.arraycopy(surplusWaterDatas, 0, surplusWaterBytes, 0, surplusWaterDatas.length); - if (surplusWaterBytes != null) { - System.arraycopy(surplusWaterBytes, 0, data, 4, surplusWaterBytes.length); + byte[] surplusElecticityBytes = new byte[4]; + byte[] surplusElecticityDatas = HexUtil.hexToByteArray(HexUtil.get10To16LowHigh(surplusElecticity)); + System.arraycopy(surplusElecticityDatas, 0, surplusElecticityBytes, 0, surplusElecticityDatas.length); + if (surplusElecticityBytes != null) { + System.arraycopy(surplusElecticityBytes, 0, data, 4, surplusElecticityBytes.length); + } + + byte[] electricPriceBytes = new byte[4]; + byte[] electricPriceDatas = HexUtil.hexToByteArray(HexUtil.floatToHexLowHigh(electricPrice)); + System.arraycopy(electricPriceDatas, 0, electricPriceBytes, 0, electricPriceDatas.length); + if (electricPriceBytes != null) { + System.arraycopy(electricPriceBytes, 0, data, 8, electricPriceBytes.length); } if (rechargeDate != null) { @@ -229,6 +261,7 @@ data[13] = bcdMonth; data[14] = bcdDay; } + data[15] = getByteSum(data); } catch (Exception e) { @@ -271,36 +304,36 @@ this.arerNumber = arerNumber; } - public int getDeviceNumberl() { - return deviceNumberl; + public String getUserCode() { + return userCode; } - public void setDeviceNumberl(int deviceNumberl) { - this.deviceNumberl = deviceNumberl; + public void setUserCode(String userCode) { + this.userCode = userCode; } - public short getRechargeTimes() { - return rechargeTimes; + public int getUserCodeNumber() { + return userCodeNumber; } - public void setRechargeTimes(short rechargeTimes) { - this.rechargeTimes = rechargeTimes; + public void setUserCodeNumber(int userCodeNumber) { + this.userCodeNumber = userCodeNumber; } - public int getTotalWater() { - return totalWater; + public int getCardWriteState() { + return cardWriteState; } - public void setTotalWater(int totalWater) { - this.totalWater = totalWater; + public void setCardWriteState(int cardWriteState) { + this.cardWriteState = cardWriteState; } - public int getTotalElectric() { - return totalElectric; + public int getCardState() { + return cardState; } - public void setTotalElectric(int totalElectric) { - this.totalElectric = totalElectric; + public void setCardState(int cardState) { + this.cardState = cardState; } public int getBalance() { @@ -311,12 +344,20 @@ this.balance = balance; } - public int getSurplusWater() { - return surplusWater; + public int getSurplusElecticity() { + return surplusElecticity; } - public void setSurplusWater(int surplusWater) { - this.surplusWater = surplusWater; + public void setSurplusElecticity(int surplusElecticity) { + this.surplusElecticity = surplusElecticity; + } + + public int getTotalMorny() { + return totalMorny; + } + + public void setTotalMorny(int totalMorny) { + this.totalMorny = totalMorny; } public Calendar getRechargeDate() { @@ -327,5 +368,11 @@ this.rechargeDate = rechargeDate; } + public Float getElectricPrice() { + return electricPrice; + } + public void setElectricPrice(Float electricPrice) { + this.electricPrice = electricPrice; + } } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/QHOnLineAppDatabase.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/QHOnLineAppDatabase.java index 76e7f9e..b257ea6 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/QHOnLineAppDatabase.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/QHOnLineAppDatabase.java @@ -23,12 +23,11 @@ * Date: 2023-11-05 16:23 * Description: */ -@Database(entities = {RegionBean.class, PassWordCardBean.class, CardData.class, DeviceNumber.class, IdentityBean.class, DomainBean.class, ElectricPriceBean.class, IpBean.class, AdminDataBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 1, exportSchema = false) +@Database(entities = {RegionBean.class, PassWordCardBean.class, CardData.class, DeviceNumber.class, IdentityBean.class, DomainBean.class, ElectricPriceBean.class, IpBean.class, AdminDataBean.class, UserCardBean.class, RechargeBean.class, PowerBean.class}, version = 1, exportSchema = false) public abstract class QHOnLineAppDatabase extends RoomDatabase { public abstract AdminDataDao adminDao(); - public abstract UserCardDao userCardDao(); diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/BaseDaoSingleton.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/QHOnlineBaseDaoSingleton.java similarity index 96% rename from qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/BaseDaoSingleton.java rename to qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/QHOnlineBaseDaoSingleton.java index 776fb80..6439e11 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/BaseDaoSingleton.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/QHOnlineBaseDaoSingleton.java @@ -13,7 +13,7 @@ * Date: 2023-11-06 16:58 * Description: 鍒涘缓鏁版嵁搴撳疄渚� */ -public class BaseDaoSingleton { +public class QHOnlineBaseDaoSingleton { public static QHOnLineAppDatabase baseDao; public static QHOnLineAppDatabase AsynchBaseDao; public static String SqlitePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + ".dayu" + File.separator + "data" + File.separator; diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/RechargeDao.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/RechargeDao.java index 483fae9..b057c8e 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/RechargeDao.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dao/RechargeDao.java @@ -31,15 +31,15 @@ @Delete void delete(RechargeBean passWord); - @Query("select * from RechargeBean order by date desc") + @Query("select * from RechargeBean order by rechargeDate desc") LiveData<List<RechargeBean>> findAll(); - @Query("select * from RechargeBean where date>=:beginTime and date<=:endTime") + @Query("select * from RechargeBean where rechargeDate>=:beginTime and rechargeDate<=:endTime") LiveData<List<RechargeBean>> findByTime(long beginTime, long endTime); - @Query("select * from RechargeBean where date>=:beginTime and date<=:endTime") + @Query("select * from RechargeBean where rechargeDate>=:beginTime and rechargeDate<=:endTime") List<RechargeBean> ansyFindByTime(long beginTime, long endTime); - @Query("select * from RechargeBean order by date desc LIMIT :limit OFFSET :offset") + @Query("select * from RechargeBean order by rechargeDate desc LIMIT :limit OFFSET :offset") List<RechargeBean> findAll(int offset,int limit); } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/RechargeBean.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/RechargeBean.java index a5740d1..1987c09 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/RechargeBean.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/RechargeBean.java @@ -3,6 +3,8 @@ import androidx.room.Entity; import androidx.room.PrimaryKey; +import java.io.Serializable; + /** * Copyright (C), 2023, * Author: zuo @@ -10,38 +12,55 @@ * Description: 鍏呭�煎疄浣撶被 */ @Entity -public class RechargeBean { +public class RechargeBean implements Serializable { @PrimaryKey(autoGenerate = true) public long id; + + public String cardNumber;//鍗″彿锛堝疄浣撳崱鍙凤級 + private String userCode;//鍏呭�兼満鐢熸垚鐨勭敤鎴风紪鍙� + private String userName; + private String personId;//鏈嶅姟鍣ㄨ繑鍥炵殑鐢ㄦ埛id private String serial;//璁惧搴忓垪鍙� - public String userName; - public String userId;//鐢ㄦ埛韬唤璇佸彿 - public long date; - public String morny;//鍏呭�奸噾棰� 鍗曚綅鍏� - public String rechargeWater;//鍏呭�兼按閲� - public String balance;//浣欓 鍗曚綅鍏� - public String total_morn;//鎬诲厖鍊奸噾棰� + private String arerNumber;//鍖哄煙鍙� + private String morny;//鍏呭�奸噾棰� 鍗曚綅鍏� + private String balance;//浣欓 鍗曚綅鍏� + private String rechargeElectric;//鍏呭�肩數閲� + + private String price;//鐢靛崟浠� + + private String surplusElectic;//鍓╀綑鐢甸噺 + private long rechargeDate;//鍏呭�兼椂闂� + + private String userId;//鐢ㄦ埛韬唤璇佸彿 + + private String rechargeWater;//鍏呭�兼按閲� + + private String totalMorny;//鎬诲厖鍊奸噾棰� //鐘舵�� 0鏈笂浼� 1鎴愬姛涓婁紶 - public int state = 0; + private int state = 0; - public String cardNumber;//鍗″彿 - public String surplusWater;//鍓╀綑姘撮噺 搴曚綅鍦ㄥ墠 2浣嶅皬鏁扮偣銆�鍗曚綅鍏�/绔嬫柟绫� () + private String surplusWater;//鍓╀綑姘撮噺 搴曚綅鍦ㄥ墠 2浣嶅皬鏁扮偣銆�鍗曚綅鍏�/绔嬫柟绫� () - public String getRechargeWater() { - return rechargeWater; + private String orderId;//鍏呭�艰鍗曞彿 + + private String deductionMorny;//琛ユ墸閽辨 鍏呭�艰ˉ鎵i噾棰�=鍏呭�奸噾棰�+鍏呭�煎墠璇诲彇鐨勫崱鍐呬綑棰�-鍏呭�煎洖璋冭繑鍥炲崱鍐呬綑棰� + + + public String getDeductionMorny() { + return deductionMorny; } - public void setRechargeWater(String rechargeWater) { - this.rechargeWater = rechargeWater; + public void setDeductionMorny(String deductionMorny) { + this.deductionMorny = deductionMorny; } - public String getSurplusWater() { - return surplusWater; + public String getOrderId() { + return orderId; } - public void setSurplusWater(String surplusWater) { - this.surplusWater = surplusWater; + public void setOrderId(String orderId) { + this.orderId = orderId; } public String getCardNumber() { @@ -52,36 +71,12 @@ this.cardNumber = cardNumber; } - public String getTotal_morn() { - return total_morn; + public String getUserCode() { + return userCode; } - public String getUserId() { - return userId; - } - - public void setUserId(String userId) { - this.userId = userId; - } - - public void setTotal_morn(String total_morn) { - this.total_morn = total_morn; - } - - public int getState() { - return state; - } - - public void setState(int state) { - this.state = state; - } - - public String getSerial() { - return serial; - } - - public void setSerial(String serial) { - this.serial = serial; + public void setUserCode(String userCode) { + this.userCode = userCode; } public String getUserName() { @@ -92,13 +87,28 @@ this.userName = userName; } - - public long getDate() { - return date; + public String getPersonId() { + return personId; } - public void setDate(long date) { - this.date = date; + public void setPersonId(String personId) { + this.personId = personId; + } + + public String getSerial() { + return serial; + } + + public void setSerial(String serial) { + this.serial = serial; + } + + public String getArerNumber() { + return arerNumber; + } + + public void setArerNumber(String arerNumber) { + this.arerNumber = arerNumber; } public String getMorny() { @@ -116,4 +126,77 @@ public void setBalance(String balance) { this.balance = balance; } + + public String getRechargeElectric() { + return rechargeElectric; + } + + public void setRechargeElectric(String rechargeElectric) { + this.rechargeElectric = rechargeElectric; + } + + public String getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } + + public String getSurplusElectic() { + return surplusElectic; + } + + public void setSurplusElectic(String surplusElectic) { + this.surplusElectic = surplusElectic; + } + + public long getRechargeDate() { + return rechargeDate; + } + + public void setRechargeDate(long rechargeDate) { + this.rechargeDate = rechargeDate; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getRechargeWater() { + return rechargeWater; + } + + public void setRechargeWater(String rechargeWater) { + this.rechargeWater = rechargeWater; + } + + + public String getTotalMorny() { + return totalMorny; + } + + public void setTotalMorny(String totalMorny) { + this.totalMorny = totalMorny; + } + + public int getState() { + return state; + } + + public void setState(int state) { + this.state = state; + } + + public String getSurplusWater() { + return surplusWater; + } + + public void setSurplusWater(String surplusWater) { + this.surplusWater = surplusWater; + } } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/UserCardBean.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/UserCardBean.java index c017d6b..73d980a 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/UserCardBean.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/dbBean/UserCardBean.java @@ -13,23 +13,19 @@ public class UserCardBean implements Serializable { @PrimaryKey(autoGenerate = true) public long id; - private String serial ;//璁惧搴忓垪鍙凤紙涔熸槸璁惧缂栧彿锛� - + private String cardNumber;//鍗″彿锛堝疄浣撳崱鍙凤級 + private String userCode;//鍏呭�兼満鐢熸垚鐨勭敤鎴风紪鍙� private String userName ;//鐢ㄦ埛鍚嶇О private String userID ;//韬唤璇佸彿 + private String phone;//鐢佃瘽 + private String personId;//鏈嶅姟鍣ㄨ繑鍥炵殑鐢ㄦ埛id + private int cardMorny;//寮�鍗¢噾棰� + private String addressCode;//鍦板潃缂栧彿 + private String addressName;//鍦板潃鍚嶇О + private String arerNumber;//鍖哄煙鍙� + private long date;//寮�鍗℃椂闂� + private String serial ;//璁惧搴忓垪鍙凤紙涔熸槸璁惧缂栧彿锛� - private String cardNumber;//鍗″彿 - - private long date; - private String phone; - //鐘舵�� 0绌洪棽 1浣跨敤 - private int St = 0; - //鏈嶅姟鍣ㄨ繑鍥炵殑鍐滄埛娉ㄥ唽缂栧彿 - private String initPeasantCode; - //鐘舵�� 0鏈笂浼� 1鎴愬姛涓婁紶 - private int state = 0; - - private String addressCode;//鍖哄煙鍙� public String getCardNumber() { return cardNumber; @@ -37,6 +33,54 @@ public void setCardNumber(String cardNumber) { this.cardNumber = cardNumber; + } + + public String getUserCode() { + return userCode; + } + + public void setUserCode(String userCode) { + this.userCode = userCode; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserID() { + return userID; + } + + public void setUserID(String userID) { + this.userID = userID; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPersonId() { + return personId; + } + + public void setPersonId(String personId) { + this.personId = personId; + } + + public int getCardMorny() { + return cardMorny; + } + + public void setCardMorny(int cardMorny) { + this.cardMorny = cardMorny; } public String getAddressCode() { @@ -47,60 +91,21 @@ this.addressCode = addressCode; } - public String getSerial() { - return serial; + public String getAddressName() { + return addressName; } - public void setSerial(String serial) { - this.serial = serial; + public void setAddressName(String addressName) { + this.addressName = addressName; } - public String getInitPeasantCode() { - return initPeasantCode; + public String getArerNumber() { + return arerNumber; } - public void setInitPeasantCode(String initPeasantCode) { - this.initPeasantCode = initPeasantCode; + public void setArerNumber(String arerNumber) { + this.arerNumber = arerNumber; } - - public int getSt() { - return St; - } - - public void setSt(int st) { - St = st; - } - - - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - - - public int getState() { - return state; - } - - public void setState(int state) { - this.state = state; - } - - - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - public long getDate() { return date; @@ -110,13 +115,11 @@ this.date = date; } - - - public String getUserID() { - return userID; + public String getSerial() { + return serial; } - public void setUserID(String userID) { - this.userID = userID; + public void setSerial(String serial) { + this.serial = serial; } } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiManager.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiManager.java index 846b7b0..6746ef3 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiManager.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiManager.java @@ -1,8 +1,10 @@ package com.dayu.qiheonlinelibrary.net; import android.content.Context; +import android.content.Intent; +import com.dayu.baselibrary.business.BusinessProvider; import com.dayu.qiheonlinelibrary.net.subscribers.BaseProgressSubscriber; import com.dayu.qiheonlinelibrary.net.subscribers.ProgressSubscriber; import com.dayu.qiheonlinelibrary.net.subscribers.SubscriberListener; @@ -99,7 +101,11 @@ observable = apiService.requestGet(path, params); } } else { - observable = apiService.requestPost(path, params); + if (params != null) { + observable = apiService.requestPost(path, params); + } else { + observable = apiService.requestPost(path); + } } mySubscriber = new ProgressSubscriber(context, hideLoading, listener); @@ -110,10 +116,18 @@ if (o instanceof BaseResponse) { BaseResponse tem = (BaseResponse) o; BaseResponse<T> response = new BaseResponse<>(); + //鏈櫥褰曟垨鐧诲綍瓒呮椂锛岃閲嶆柊鐧诲綍 + if (tem.getCode()==100401){ + if (BusinessProvider.getBusinessProvider()!=null){ + BusinessProvider.getBusinessProvider().startLoginNavigotor.navigateToLogin(context); + } + + } + response.setCode(tem.getCode()); response.setMsg(tem.getMsg()); - - if (tClass != null && tem.getData() instanceof Map) { + if (tClass!= null) { + if ( tem.getData() instanceof Map) { try { // response.setData(MyJsonParser.getBeanFromMap((Map<String, Object>) tem.getData(), tClass)); String jsonData = MyJsonParser.getJsontoMap((Map) tem.getData()); @@ -121,16 +135,18 @@ } catch (Exception e) { e.printStackTrace(); } - } else if (tClass != null && tem.getData() instanceof List) { + } else if ( tem.getData() instanceof List) { try { response.setData((T) MyJsonParser.getListByJson(MyJsonParser.getJsonbyList((List) tem.getData()), tClass)); } catch (Exception e) { e.printStackTrace(); } - } else if (tClass != null && tem.getData() instanceof Integer) { + } else if ( tem.getData() instanceof Integer) { + response.setData((T) tem.getData()); + } else if (tem.getData() instanceof Boolean){ response.setData((T) tem.getData()); } - if (tClass != null && tClass.getName() instanceof String && tem.getData() instanceof String) { + if ( tClass.getName() instanceof String && tem.getData() instanceof String) { try { response.setData((T) tem.getData()); } catch (Exception e) { @@ -138,9 +154,7 @@ } } return response; - - - } + }} return null; } @@ -150,11 +164,6 @@ .subscribe(mySubscriber); } - - - - - } \ No newline at end of file diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiService.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiService.java index 988dbc7..0e2b367 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiService.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/ApiService.java @@ -32,7 +32,8 @@ // @FormUrlEncoded @POST() Observable<BaseResponse> requestPost(@Url String url, @Body Map<String, Object> params); - + @POST() + Observable<BaseResponse> requestPost(@Url String url); @GET("{url}") Observable<BaseResponse> requestGet(@Path("url") String url, @QueryMap Map<String, Object> params); diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/BaseResponse.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/BaseResponse.java index 374110d..e000ea4 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/BaseResponse.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/BaseResponse.java @@ -1,18 +1,30 @@ package com.dayu.qiheonlinelibrary.net; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import okhttp3.Handshake; +import okhttp3.Headers; +import okhttp3.MediaType; +import okhttp3.Protocol; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.ResponseBody; +import okhttp3.internal.connection.Exchange; +import okio.BufferedSource; + /** * Copyright (C), 2023, * Author: zuo * Date: 2023-03-27 15:17 * Description: */ -public class BaseResponse<T> { +public class BaseResponse<T> { private int code; private String msg; private T data; private String stackErrorInfo;//鍫嗘爤閿欒鎻忚堪 - public int getCode() { return code; @@ -60,4 +72,5 @@ this.data = data; } + } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java index 40e742d..fe00c70 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/Constants.java @@ -7,7 +7,7 @@ * Description: */ public class Constants { - public static final String BASE_URL = "http://yzgb.yunguangai.cn/api/"; + public static final String BASE_URL = "http://120.46.45.35:20081/"; /** * 浠h〃璇锋眰鎴愬姛 diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/MyIntercepterApplication.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/MyIntercepterApplication.java index 717fea2..e8ae1a8 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/MyIntercepterApplication.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/MyIntercepterApplication.java @@ -1,5 +1,7 @@ package com.dayu.qiheonlinelibrary.net; +import android.text.TextUtils; + import com.dayu.qiheonlinelibrary.QHOnLineApplication; import com.dayu.qiheonlinelibrary.utils.SharedPreferencesHelper; import com.dayu.qiheonlinelibrary.utils.ToastUtil; @@ -52,16 +54,9 @@ if (request.method().equals("GET")) { builder.url(request.url().toString()); } else { - - RequestBody body = request.body(); - if (body instanceof FormBody) { - FormBody oldFormBody = (FormBody) body; - if (oldFormBody != null && oldFormBody.size() > 0) { - //澶勭悊body - } + if (!TextUtils.isEmpty(QHOnLineApplication.getInstance().tokenStr)) { + builder.addHeader("Token-Cloud", QHOnLineApplication.getInstance().tokenStr); } - builder.addHeader("os", "app"); - builder.addHeader("Authorization", SharedPreferencesHelper.getInstance(QHOnLineApplication.qhAloneApplication.application).get("token", "")); } return builder.build(); } catch (Exception e) { diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/RSAUtile.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/RSAUtile.java index c2f1654..4d98b06 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/RSAUtile.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/RSAUtile.java @@ -1,11 +1,22 @@ package com.dayu.qiheonlinelibrary.net; +import java.io.ByteArrayInputStream; +import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; +import java.security.InvalidKeyException; import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; import java.security.PublicKey; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; +import java.security.spec.InvalidKeySpecException; import java.security.spec.X509EncodedKeySpec; +import java.util.Base64; +import javax.crypto.BadPaddingException; import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; /** * author: zuo @@ -15,18 +26,42 @@ */ public class RSAUtile { - public static byte[] encryptByPublicKey(String data, String publicKey) throws Exception { - // 寰楀埌鍏挜 - X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicKey.getBytes(StandardCharsets.UTF_8)); - KeyFactory kf = KeyFactory.getInstance("RSA"); - PublicKey keyPublic = kf.generatePublic(keySpec); - // 鍔犲瘑鏁版嵁 - Cipher cp = Cipher.getInstance("RSA/ECB/PKCS1Padding"); - cp.init(Cipher.ENCRYPT_MODE, keyPublic); - return cp.doFinal(data.getBytes(StandardCharsets.UTF_8)); - } + public static String encryptByPublicKey(String data, String publicKeyPEM) { + try { + // 寰楀埌鍏挜 + publicKeyPEM = publicKeyPEM.replace("-----BEGIN PUBLIC KEY-----", "") + .replace("-----END PUBLIC KEY-----", "") + .replaceAll("\\s+", ""); + // 瑙g爜Base64缂栫爜鐨勫叕閽� + byte[] decoded = new byte[0]; + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + decoded = Base64.getDecoder().decode(publicKeyPEM); + } else { + decoded = android.util.Base64.decode(publicKeyPEM, android.util.Base64.DEFAULT); + } + // 鐢熸垚鍏挜 + X509EncodedKeySpec spec = new X509EncodedKeySpec(decoded); + KeyFactory keyFactory = KeyFactory.getInstance("RSA"); + PublicKey publicKey = keyFactory.generatePublic(spec); + // 鍔犲瘑鏁版嵁 + Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); + cipher.init(Cipher.ENCRYPT_MODE, publicKey); + byte[] encryptedBytes = cipher.doFinal(data.getBytes("UTF-8")); + String encryptedData = null; + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + encryptedData = Base64.getEncoder().encodeToString(encryptedBytes); + } else { + encryptedData = android.util.Base64.encodeToString(encryptedBytes, android.util.Base64.DEFAULT); + } + return encryptedData; + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + } diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/progress/NetLoadingDialog.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/progress/NetLoadingDialog.java index 9072ac8..1b138eb 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/progress/NetLoadingDialog.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/net/progress/NetLoadingDialog.java @@ -44,12 +44,6 @@ public void startAnim() { try { this.show(); -// mHandler.postDelayed(new Runnable() { -// @Override -// public void run() { -// mAnimationDrawable.start(); -// } -// }, 100); } catch (Exception e) { } @@ -57,7 +51,7 @@ public void stopAnim() { try { -// mAnimationDrawable.stop(); + this.dismiss(); } catch (Exception e) { diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/BaseNFCHelper.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/BaseNFCHelper.java index 318e271..ccafb6d 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/BaseNFCHelper.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/tools/BaseNFCHelper.java @@ -38,7 +38,7 @@ static { - System.loadLibrary("qihealone-native-lib"); + System.loadLibrary("qiheonline-native-lib"); } public native String getSafeKey(Object object); diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/DeviceNumberUtils.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/DeviceNumberUtils.java deleted file mode 100644 index ad6a362..0000000 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/DeviceNumberUtils.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.dayu.qiheonlinelibrary.utils; - - -import com.dayu.qiheonlinelibrary.QHOnLineApplication; -import com.dayu.qiheonlinelibrary.dao.BaseDaoSingleton; -import com.dayu.qiheonlinelibrary.dbBean.DeviceNumber; - -/** - * Created by Android Studio. - * author: zuo - * Date: 2023-11-20 - * Time: 16:33 - * 澶囨敞锛� 鑾峰彇鏈嶅姟鍣ㄨ繑鍥炵殑璁惧鍙风殑宸ュ叿绫� - */ -public class DeviceNumberUtils { - - // 鑾峰彇鍏呭�兼満璁惧搴忓垪鍙� - public static String getDeviceNumber() { - DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(QHOnLineApplication.getInstance().application).deviceNumberDao().findFirst(); - if (deviceNumber != null) { - return deviceNumber.getDeviceRegistrationNumber(); - } else { - return ""; - } - } - - // 璁剧疆鍏呭�兼満璁惧搴忓垪鍙� - public static void setDeviceNumber(String deviceRegistrationNumber) { - DeviceNumber deviceNumber = BaseDaoSingleton.getInstance(QHOnLineApplication.getInstance().application).deviceNumberDao().findFirst(); - if (deviceNumber != null) { - deviceNumber.setDeviceRegistrationNumber(deviceRegistrationNumber); - } else { - deviceNumber = new DeviceNumber(); - deviceNumber.setDeviceRegistrationNumber(deviceRegistrationNumber); - } - BaseDaoSingleton.getInstance(QHOnLineApplication.getInstance().application).deviceNumberDao().insert(deviceNumber); - } -} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java index f63a5f3..e5a691d 100644 --- a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/ExcelUtil.java @@ -133,7 +133,7 @@ list.add(projectBean.getSerial()); list.add(projectBean.getUserName()); list.add(projectBean.getCardNumber()); - list.add(DateUtil.dateToStamp(projectBean.getDate(), DateUtil.type2)); + list.add(DateUtil.dateToStamp(projectBean.getRechargeDate(), DateUtil.type2)); list.add(projectBean.getMorny()); list.add(projectBean.getBalance()); } else { diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/NFCWreatUtils.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/NFCWreatUtils.java new file mode 100644 index 0000000..a0e4e9d --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/utils/NFCWreatUtils.java @@ -0,0 +1,141 @@ +package com.dayu.qiheonlinelibrary.utils; + +import android.app.Activity; +import android.content.Intent; + +import com.dayu.qiheonlinelibrary.card.CleanCard; +import com.dayu.qiheonlinelibrary.card.CleanUserCard; +import com.dayu.qiheonlinelibrary.card.ConfigurationPowerCard; +import com.dayu.qiheonlinelibrary.card.ConfigureDeviceRegistrationCrad; +import com.dayu.qiheonlinelibrary.card.DomainCard; +import com.dayu.qiheonlinelibrary.card.ElectricPriceCard; +import com.dayu.qiheonlinelibrary.card.ManageCard; +import com.dayu.qiheonlinelibrary.card.PassWordCard; +import com.dayu.qiheonlinelibrary.card.RegionCard; +import com.dayu.qiheonlinelibrary.card.RegisteredCard; +import com.dayu.qiheonlinelibrary.dao.QHOnLineAppDatabase; +import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper; + +/** + * author: zuo + * Date: 2024-08-02 + * Time: 18:01 + * 澶囨敞锛� + */ +public class NFCWreatUtils { + Activity activity; + QHOnLineAppDatabase baseDao; + static NFCWreatUtils nfcWreatUtils; + + public static NFCWreatUtils getInstance(Activity activity, QHOnLineAppDatabase baseDao) { + if (nfcWreatUtils == null) { + nfcWreatUtils = new NFCWreatUtils(); + nfcWreatUtils.activity = activity; + nfcWreatUtils.baseDao = baseDao; + } + return nfcWreatUtils; + } + + + public boolean setmanageCard( Intent intent, final ManageCard manageCard) { + return NFCWriteHelper.getInstence(intent, activity).writeData(manageCard.toByte(baseDao), 1, 0); + } + + /** + * 鍒朵綔娓呴浂鍗� + * + * @param intent + * @param clearOrInitCard + */ + public boolean setClean( Intent intent, CleanCard clearOrInitCard) { + return NFCWriteHelper.getInstence(intent, activity).writeData(clearOrInitCard.toByte(baseDao), 1, 0); + } + + /** + * 淇濆瓨鍖哄煙琛ㄥ彿鍗� + * + * @param intent + * @param regionCard + */ + public boolean setRegionCard(Intent intent, RegionCard regionCard) { + return NFCWriteHelper.getInstence(intent, activity).writeData(regionCard.toByte(), 1, 0); + } + + /** + * 瀵嗙爜鍗� + * + * @param intent + * @param passWordCard + */ + public boolean setPassWordCard(Intent intent, PassWordCard passWordCard) { + return NFCWriteHelper.getInstence(intent, activity).writeData(passWordCard.toByte(baseDao), 1, 0); + } + + /** + * 鐢ㄦ埛鐢甸噺鍗曚环 + * + * @param intent + * @param electricPriceCard + */ + public boolean setElectricPriceCard(Intent intent, ElectricPriceCard electricPriceCard) { + return NFCWriteHelper.getInstence(intent, activity).writeData(electricPriceCard.toByte(baseDao), 1, 0); + } + + /** + * 閲嶆柊娉ㄥ唽璁惧鍗� + * + * @param intent + * @param registeredCard + */ + public boolean setRegisteredCard(Intent intent, RegisteredCard registeredCard) { + return NFCWriteHelper.getInstence(intent, activity).writeData(registeredCard.toByte(baseDao), 1, 0); + } + + /** + * 鍒犻櫎鍏ㄩ儴鐢ㄦ埛鍗� + * + * @param intent + * @param cleanUserCard + */ + public boolean setCleanUserCard(Intent intent, CleanUserCard cleanUserCard) { + return NFCWriteHelper.getInstence(intent, activity).writeData(cleanUserCard.toByte(baseDao), 1, 0); + } + + /** + * 璁剧疆鍩熷悕鍗� + * + * @param intent + * @param domainCard + */ + public boolean setDomainCard(Intent intent, DomainCard domainCard) { + boolean domainCrdFlag; + try { + domainCrdFlag = NFCWriteHelper.getInstence(intent, activity).writeData(domainCard.getZeroByte(), 1, 0); + if (!domainCrdFlag) { + return false; + } + domainCrdFlag = NFCWriteHelper.getInstence(intent, activity).writeData(domainCard.getOneByte(), 1, 1); + if (!domainCrdFlag) { + return false; + } + domainCrdFlag = NFCWriteHelper.getInstence(intent, activity).writeData(domainCard.getTwoByte(), 1, 2); + } catch (Exception e) { + domainCrdFlag = false; + throw new RuntimeException(e); + } + return false; + } + + + public boolean setConfigDeviceRegiest(Intent intent, ConfigureDeviceRegistrationCrad configureDeviceRegistrationCrad) { + return NFCWriteHelper.getInstence(intent, activity).writeData(configureDeviceRegistrationCrad.toByte(baseDao), 1, 0); + } + + public boolean setConfigurationPower(Intent intent, ConfigurationPowerCard configurationPowerCard) { + try { + return NFCWriteHelper.getInstence(intent, activity).writeData(configurationPowerCard.toByte(baseDao), 1, 0); + } catch (Exception e) { + return false; + } + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ChooseReplacementDialog.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ChooseReplacementDialog.java new file mode 100644 index 0000000..480f393 --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ChooseReplacementDialog.java @@ -0,0 +1,85 @@ +package com.dayu.qiheonlinelibrary.view; + +import static android.view.Gravity.CENTER; +import static com.dayu.baselibrary.utils.BaseCommon.REPLACE_HAS_CARD; +import static com.dayu.baselibrary.utils.BaseCommon.REPLACE_NO_CARD; + +import android.app.Activity; +import android.app.Dialog; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.RadioGroup; +import android.widget.TextView; + +import com.dayu.baselibrary.dao.BaseDaoSingleton; +import com.dayu.baselibrary.dao.LibraryDao; +import com.dayu.baselibrary.dbbean.LibraryBean; +import com.dayu.baselibrary.view.ConfirmDialog; +import com.dayu.qiheonlinelibrary.R; + +/** + * author: zuo + * Date: 2024-08-09 + * Time: 10:05 + * 澶囨敞锛氶�夋嫨琛ュ崱绫诲瀷 + */ +public class ChooseReplacementDialog extends Dialog { + + Activity mContext; + boolean ischose = false; + OnCallBack mOnCallBack; + int type; + + public ChooseReplacementDialog(Activity context, OnCallBack onCallBack) { + super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); + mContext = context; + mOnCallBack = onCallBack; + initView(); + } + + private void initView() { + getWindow().setGravity(CENTER); + setContentView(R.layout.dialog_chose_type); + setCanceledOnTouchOutside(false); + setCancelable(false); + RadioGroup radioGroup = findViewById(com.dayu.baselibrary.R.id.radioLibrary); + + + radioGroup.setOnCheckedChangeListener((group, checkedId) -> { + ischose = true; + // 褰撻�変腑鐨凴adioButton鍙戠敓鍙樺寲鏃惰皟鐢� + if (checkedId == R.id.hasCard) { + type = REPLACE_HAS_CARD; + + } else if (checkedId == R.id.noCard) { + type = REPLACE_NO_CARD; + } + }); + TextView okBtn = findViewById(com.dayu.baselibrary.R.id.ok); + okBtn.setOnClickListener(v -> { + if (ischose) { + mOnCallBack.listener(type); + } + }); + + } + + @Override + public void show() { + super.show(); + /** + * 璁剧疆瀹藉害鍏ㄥ睆锛岃璁剧疆鍦╯how鐨勫悗闈� + */ + WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); + layoutParams.gravity = CENTER; + layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; + layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT; + getWindow().getDecorView().setPadding(0, 0, 0, 0); + getWindow().setAttributes(layoutParams); + } + + + public interface OnCallBack { + void listener(int type); + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ReplacementPriceDialog.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ReplacementPriceDialog.java new file mode 100644 index 0000000..45f97aa --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/ReplacementPriceDialog.java @@ -0,0 +1,149 @@ +package com.dayu.qiheonlinelibrary.view; + +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.Gravity; +import android.view.KeyEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.EditText; +import android.widget.TextView; + +import com.dayu.baselibrary.utils.TipUtil; +import com.dayu.baselibrary.view.EdtDialog; +import com.dayu.qiheonlinelibrary.R; + +/** + * author: zuo + * Date: 2024-08-09 + * Time: 14:52 + * 澶囨敞锛氳ˉ鍗″伐鏈垂 + */ +public class ReplacementPriceDialog extends Dialog { + + Intent intent; + Context mContext; + DialogBack mDialogBack; + + String mTitle; + + + public ReplacementPriceDialog(Context context, DialogBack dialogBack) { + super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); + mContext = context; + mDialogBack = dialogBack; + initView(); + } + + + private void initView() { + getWindow().setGravity(Gravity.CENTER); + setContentView(R.layout.dialog_replace_price); + setCanceledOnTouchOutside(false); + TextView textView = (TextView) this.findViewById(com.dayu.baselibrary.R.id.pw_ok); + EditText editText = (EditText) this.findViewById(com.dayu.baselibrary.R.id.pw_et); + setPricePoint(editText); + TextView title = this.findViewById(com.dayu.baselibrary.R.id.title); + if (!TextUtils.isEmpty(mTitle)) { + title.setVisibility(View.VISIBLE); + title.setText(mTitle); + } + textView.setOnClickListener(v -> { + String data = editText.getText().toString(); + if (TextUtils.isEmpty(data)) { + TipUtil.show("璇疯緭鍏ュ伐鏈垂"); + } else { + if (mDialogBack != null) { + mDialogBack.onOk(data); + } + } + + }); + // 璁剧疆 OnKeyListener 鎷︽埅杩斿洖閿簨浠� + setOnKeyListener((dialog, keyCode, event) -> { + if (keyCode == KeyEvent.KEYCODE_BACK) { + // 鎷︽埅杩斿洖閿簨浠讹紝杩斿洖 true + return true; + } + return false; + }); + } + + @Override + public void show() { + + super.show(); + /** + * 璁剧疆瀹藉害鍏ㄥ睆锛岃璁剧疆鍦╯how鐨勫悗闈� + */ + WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); + layoutParams.gravity = Gravity.CENTER; + layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; + layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT; + getWindow().getDecorView().setPadding(0, 0, 0, 0); + getWindow().setAttributes(layoutParams); + } + + public interface DialogBack { + void onOk(String data); + } + + + //鏍¢獙閲戦 + public void setPricePoint(final EditText editText) { + editText.addTextChangedListener(new TextWatcher() { + @Override + public void onTextChanged(CharSequence s, int start, int before, + int count) { + if (s.toString().contains(".")) { + if (s.length() - 1 - s.toString().indexOf(".") > 2) { + s = s.toString().subSequence(0, + s.toString().indexOf(".") + 3); + editText.setText(s); + editText.setSelection(s.length()); + } + } + if (s.toString().trim().substring(0).equals(".")) { + s = "0" + s; + editText.setText(s); + editText.setSelection(2); + } + + if (s.toString().startsWith("0") + && s.toString().trim().length() > 1) { + if (!s.toString().substring(1, 2).equals(".")) { + editText.setText(s.subSequence(0, 1)); + editText.setSelection(1); + } + } + String morny = editText.getText().toString(); + if (!TextUtils.isEmpty(morny)) { +// rechageWater = MornyUtil.intDiv(MornyUtil.changeY2F(editText.getText().toString()), waterPrice); +// binding.redRechargeWater.setText("鍏呭�兼按閲忥細" + rechageWater + " 绔嬫柟绫�(鍚�)"); + } + + + } + + @Override + public void beforeTextChanged(CharSequence s, int start, int count, + int after) { + + } + + @Override + public void afterTextChanged(Editable s) { + // TODO Auto-generated method stub + + } + + }); + + } +} diff --git a/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java new file mode 100644 index 0000000..245828c --- /dev/null +++ b/qiheonlinelibrary/src/main/java/com/dayu/qiheonlinelibrary/view/UserSearchDialog.java @@ -0,0 +1,89 @@ +package com.dayu.qiheonlinelibrary.view; + +import static android.view.Gravity.CENTER; + +import android.app.Dialog; +import android.content.DialogInterface; +import android.text.TextUtils; +import android.view.KeyEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; +import android.widget.EditText; +import android.widget.TextView; + +import com.dayu.baselibrary.utils.ToastUtil; +import com.dayu.baselibrary.view.EdtDialog; +import com.dayu.qiheonlinelibrary.R; +import com.dayu.qiheonlinelibrary.activity.BaseActivity; + +/** + * author: zuo + * Date: 2024-08-07 + * Time: 18:27 + * 澶囨敞锛氭悳绱㈢敤鎴� + */ +public class UserSearchDialog extends Dialog { + BaseActivity mContext; + EditText etName, etCardId; + + public interface SearchCallBack { + void onBack(String name, String cardId); + } + + SearchCallBack searchCallBack; + + public UserSearchDialog(BaseActivity context, SearchCallBack searchCallBack) { + super(context, com.dayu.baselibrary.R.style.ws_pay_showSelfDialog); + mContext = context; + this.searchCallBack = searchCallBack; + initView(); + } + + private void initView() { + getWindow().setGravity(CENTER); + setContentView(R.layout.dialog_search_user); + setCanceledOnTouchOutside(false); + + etName = findViewById(R.id.etName); + etCardId = findViewById(R.id.etCardId); + TextView ok = findViewById(R.id.pw_ok); + ok.setOnClickListener(v -> { + String name = etName.getText().toString(); + String cardId = etCardId.getText().toString(); + if (!TextUtils.isEmpty(name) || !TextUtils.isEmpty(cardId)) { + if (searchCallBack != null) { + searchCallBack.onBack(name, cardId); + UserSearchDialog.this.dismiss(); + } + } else { + ToastUtil.show("璇疯緭鍏ュ鍚嶆垨韬唤璇佸彿"); + } + }); + // 璁剧疆 OnKeyListener 鎷︽埅杩斿洖閿簨浠� + setOnKeyListener(new DialogInterface.OnKeyListener() { + @Override + public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + // 鎷︽埅杩斿洖閿簨浠讹紝杩斿洖 true + return true; + } + return false; + } + }); + } + + public void show() { + + super.show(); + /** + * 璁剧疆瀹藉害鍏ㄥ睆锛岃璁剧疆鍦╯how鐨勫悗闈� + */ + WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); + layoutParams.gravity = CENTER; + layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; + layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT; + getWindow().getDecorView().setPadding(0, 0, 0, 0); + getWindow().setAttributes(layoutParams); + } +} diff --git a/qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml index 149320a..4b6e80c 100644 --- a/qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml +++ b/qiheonlinelibrary/src/main/res/layout/activity_admin_qhl.xml @@ -32,7 +32,8 @@ android:padding="5dp" android:text="鍒朵綔绠$悊鍗�" android:textColor="@color/text_selecter_color" - android:textSize="@dimen/text_size" /> + android:textSize="@dimen/text_size" + android:visibility="gone" /> <TextView android:id="@+id/admin_cleanZero" @@ -42,9 +43,9 @@ android:layout_marginTop="20dp" android:padding="5dp" android:text="鍒朵綔娓呴浂鍗�" - android:visibility="gone" android:textColor="@color/text_selecter_color" - android:textSize="@dimen/text_size" /> + android:textSize="@dimen/text_size" + android:visibility="gone" /> <TextView @@ -52,12 +53,12 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" - android:visibility="gone" android:layout_marginTop="20dp" android:padding="5dp" android:text="鍒朵綔瀵嗙爜鍗�" android:textColor="@color/text_selecter_color" - android:textSize="@dimen/text_size" /> + android:textSize="@dimen/text_size" + android:visibility="gone" /> <TextView diff --git a/qiheonlinelibrary/src/main/res/layout/activity_card_search_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_card_search_qhl.xml new file mode 100644 index 0000000..3e605f7 --- /dev/null +++ b/qiheonlinelibrary/src/main/res/layout/activity_card_search_qhl.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <com.dayu.baselibrary.view.TitleBar + android:id="@+id/titleBar" + android:layout_width="match_parent" + android:layout_height="@dimen/dimen_title_height" + android:background="@color/title_bar_bg" + app:centerText="閫夋嫨鍗�" + app:leftImage="@mipmap/icon_back" + /> + + + <com.scwang.smart.refresh.layout.SmartRefreshLayout + android:id="@+id/refreshLayout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_below="@+id/titleBar"> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recyclerView" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="#ffffff" + android:overScrollMode="never" + android:padding="10dp" /> + + <com.scwang.smart.refresh.footer.ClassicsFooter + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + </com.scwang.smart.refresh.layout.SmartRefreshLayout> + + +</RelativeLayout> \ No newline at end of file diff --git a/qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml index 7fadb46..9151b59 100644 --- a/qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml +++ b/qiheonlinelibrary/src/main/res/layout/activity_home_qhl.xml @@ -49,7 +49,40 @@ android:textColor="@color/text_selecter_color" android:textSize="@dimen/home_text_size" /> </LinearLayout> - + <LinearLayout + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_gravity="center" + android:layout_marginTop="30dp" + android:orientation="horizontal"> + <TextView + android:id="@+id/home_loss" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="鎸傚け" + android:textColor="@color/text_selecter_color" + android:textSize="@dimen/home_text_size" /> + <TextView + android:id="@+id/home_reportLoss" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="瑙i櫎鎸傚け" + android:textColor="@color/text_selecter_color" + android:textSize="@dimen/home_text_size" /> + <TextView + android:id="@+id/home_replacement" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_weight="1" + android:gravity="center" + android:text="琛ュ崱" + android:textColor="@color/text_selecter_color" + android:textSize="@dimen/home_text_size" /> + </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" diff --git a/qiheonlinelibrary/src/main/res/layout/activity_my_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_my_qhl.xml index f933594..2a8c7c8 100644 --- a/qiheonlinelibrary/src/main/res/layout/activity_my_qhl.xml +++ b/qiheonlinelibrary/src/main/res/layout/activity_my_qhl.xml @@ -46,7 +46,26 @@ </LinearLayout> +<LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍖哄煙鍚嶇О锛�" + android:textColor="@color/text_selecter_color" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/my_adName" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textColor="@color/text_selecter_color" + android:textSize="@dimen/text_size" /> + + +</LinearLayout> <LinearLayout android:id="@+id/my_admin" android:layout_width="match_parent" @@ -173,6 +192,7 @@ android:layout_height="wrap_content" android:layout_marginTop="15dp" android:text="鐧诲綍瀵嗙爜璁剧疆" + android:visibility="gone" android:textColor="@color/text_selecter_color" android:textSize="@dimen/text_size" /> diff --git a/qiheonlinelibrary/src/main/res/layout/activity_new_card_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_new_card_qhl.xml index 58933f4..e916674 100644 --- a/qiheonlinelibrary/src/main/res/layout/activity_new_card_qhl.xml +++ b/qiheonlinelibrary/src/main/res/layout/activity_new_card_qhl.xml @@ -35,7 +35,7 @@ android:textSize="@dimen/new_card_size" /> <TextView - android:id="@+id/newCard_villageNum" + android:id="@+id/newCard_arerNumber" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" @@ -53,7 +53,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="濮� 鍚嶏細" + android:text="濮� 鍚嶏細" android:textSize="@dimen/new_card_size" /> <EditText @@ -61,6 +61,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" + android:text="娴嬭瘯" android:textSize="@dimen/new_card_size" /> <ImageView @@ -90,6 +91,7 @@ android:digits="0123456789Xx" android:inputType="text" android:maxLength="18" + android:text="130107199210160024" android:textSize="@dimen/new_card_size" /> @@ -137,7 +139,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="鐢� 璇濓細" + android:text="鐢� 璇濓細" android:textSize="@dimen/new_card_size" /> <EditText @@ -146,9 +148,30 @@ android:layout_height="wrap_content" android:inputType="number" android:maxLength="11" + android:text="15802220723" android:textSize="@dimen/new_card_size" /> </LinearLayout> + <LinearLayout + style="@style/newCardLL" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="寮�鍗″伐鏈垂(鍏�)锛�" + android:textSize="@dimen/new_card_size" /> + + <EditText + android:id="@+id/newCard_morny" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:inputType="number" + android:text="5" + + android:textSize="@dimen/new_card_size" /> + </LinearLayout> </LinearLayout> diff --git a/qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml index 825e865..6b46f5f 100644 --- a/qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml +++ b/qiheonlinelibrary/src/main/res/layout/activity_recharge_qhl.xml @@ -38,206 +38,220 @@ </LinearLayout> - - <LinearLayout - android:id="@+id/recharge_text_LL" + <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_below="@+id/titleBar" - android:orientation="vertical" - android:padding="20dp" - android:visibility="gone"> + android:layout_above="@+id/recharge_registBtn" + android:layout_below="@+id/titleBar"> <LinearLayout android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:orientation="horizontal"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="鍗$姸鎬侊細" - android:textSize="@dimen/text_size" /> - - <TextView - android:id="@+id/red_statu" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:textColor="@color/red" - android:textSize="@dimen/new_card_size" /> - - </LinearLayout> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:orientation="horizontal"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="濮撳悕锛�" - android:textSize="@dimen/new_card_size" /> - - <TextView - android:id="@+id/userName" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:textSize="@dimen/new_card_size" /> - - </LinearLayout> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:orientation="horizontal"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="鍗″彿锛�" - android:textSize="@dimen/text_size" /> - - <TextView - android:id="@+id/red_initCode" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="" - android:textSize="@dimen/new_card_size" /> - - </LinearLayout> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:orientation="horizontal" - android:visibility="visible"> - - <TextView - - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="鍓╀綑閲戦锛�" - android:textSize="@dimen/text_size" /> - - <TextView - android:id="@+id/red_remainder_blance" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:textSize="@dimen/new_card_size" /> - - </LinearLayout> - - <TextView - android:id="@+id/red_remainder_water" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:text="鍓╀綑姘撮噺锛�" - android:visibility="gone" - android:textSize="@dimen/text_size" /> - - <TextView - android:id="@+id/red_rechargeDate" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:text="鏈�鍚庤喘姘存棩鏈燂細" - android:textSize="@dimen/text_size" - android:visibility="visible" /> - <TextView - android:id="@+id/red_rechargeElectric" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:text="鐢甸噺鍗曚环锛�" - android:textSize="@dimen/text_size" - android:visibility="visible" /> - <TextView - android:id="@+id/red_rechargeNumber" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:text="鍏呭�兼鏁帮細" - android:textSize="@dimen/text_size" - android:visibility="gone" /> - - <TextView - android:id="@+id/red_total_water" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:text="鎬荤敤姘撮噺锛�" - android:textSize="@dimen/text_size" - android:visibility="gone" /> - - <TextView - android:id="@+id/red_total_power" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:text="鎬荤敤鐢甸噺锛�" - android:textSize="@dimen/text_size" - android:visibility="gone" /> - - - <TextView - android:id="@+id/red_waterPrice" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:text="姣忕珛鏂圭背姘翠环鏍硷細" - android:textSize="@dimen/text_size" - android:visibility="gone" /> - - <LinearLayout - android:id="@+id/recharge_LL" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" + android:layout_height="match_parent" android:orientation="vertical"> - <TextView - android:id="@+id/red_recharge_water" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="15dp" - android:text="鍏呭�兼按閲忥細" - android:textSize="@dimen/text_size" - android:visibility="gone" /> <LinearLayout - android:layout_width="wrap_content" + android:id="@+id/recharge_text_LL" + android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="horizontal"> + android:layout_below="@+id/titleBar" + android:orientation="vertical" + android:padding="20dp" + android:visibility="gone"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍗$姸鎬侊細" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_statu" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textColor="@color/red" + android:textSize="@dimen/new_card_size" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="濮撳悕锛�" + android:textSize="@dimen/new_card_size" /> + + <TextView + android:id="@+id/userName" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textSize="@dimen/new_card_size" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍗″彿锛�" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_initCode" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="@dimen/new_card_size" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="horizontal" + android:visibility="visible"> + + <TextView + + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍓╀綑閲戦锛�" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_remainder_blance" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textSize="@dimen/new_card_size" /> + + </LinearLayout> + + <TextView + android:id="@+id/red_remainder_water" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:text="鍓╀綑姘撮噺锛�" + android:textSize="@dimen/text_size" + android:visibility="gone" /> + + <TextView + android:id="@+id/red_rechargeDate" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:text="鏈�鍚庤喘姘存棩鏈燂細" + android:textSize="@dimen/text_size" + android:visibility="visible" /> + + <TextView + android:id="@+id/red_rechargeElectric" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:text="鐢甸噺鍗曚环锛�" + android:textSize="@dimen/text_size" + android:visibility="visible" /> + + <TextView + android:id="@+id/red_rechargeNumber" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:text="鍏呭�兼鏁帮細" + android:textSize="@dimen/text_size" + android:visibility="gone" /> + + <TextView + android:id="@+id/red_total_water" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:text="鎬荤敤姘撮噺锛�" + android:textSize="@dimen/text_size" + android:visibility="gone" /> + + <TextView + android:id="@+id/red_total_power" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:text="鎬荤敤鐢甸噺锛�" + android:textSize="@dimen/text_size" + android:visibility="gone" /> <TextView - android:id="@+id/recharge_tx" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="閲戦锛堝厓锛夛細" - android:textColor="@color/red" - android:textSize="@dimen/new_card_size" /> - - <EditText - android:id="@+id/recharge_water" + android:id="@+id/red_waterPrice" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="璇疯緭鍏ュ厖鍊肩殑閲戦" - android:inputType="numberDecimal" - android:textSize="@dimen/new_card_size" /> + android:layout_marginTop="15dp" + android:text="姣忕珛鏂圭背姘翠环鏍硷細" + android:textSize="@dimen/text_size" + android:visibility="gone" /> + <LinearLayout + android:id="@+id/recharge_LL" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:orientation="vertical"> + + <TextView + android:id="@+id/red_recharge_water" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="15dp" + android:text="鍏呭�兼按閲忥細" + android:textSize="@dimen/text_size" + android:visibility="gone" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:orientation="horizontal"> + + + <TextView + android:id="@+id/recharge_tx" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="閲戦锛堝厓锛夛細" + android:textColor="@color/red" + android:textSize="@dimen/new_card_size" /> + + <EditText + android:id="@+id/recharge_water" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:hint="璇疯緭鍏ュ厖鍊肩殑閲戦" + android:inputType="numberDecimal" + android:textSize="@dimen/new_card_size" /> + + </LinearLayout> + + + </LinearLayout> </LinearLayout> - - </LinearLayout> - </LinearLayout> - + </ScrollView> <TextView android:id="@+id/recharge_registBtn" diff --git a/qiheonlinelibrary/src/main/res/layout/activity_red_card_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_red_card_qhl.xml index b6094af..1115795 100644 --- a/qiheonlinelibrary/src/main/res/layout/activity_red_card_qhl.xml +++ b/qiheonlinelibrary/src/main/res/layout/activity_red_card_qhl.xml @@ -26,13 +26,26 @@ android:layout_margin="20dp" android:orientation="vertical"> - <TextView - android:id="@+id/red_name" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" - android:text="濮撳悕锛�" - android:textSize="@dimen/text_size" /> + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="濮撳悕锛�" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + + android:text="" + android:textSize="@dimen/text_size" /> + </LinearLayout> <LinearLayout android:layout_width="match_parent" @@ -47,75 +60,155 @@ android:textSize="@dimen/text_size" /> <TextView - android:id="@+id/red_initCode" + android:id="@+id/red_cardCode" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="" android:textSize="@dimen/text_size" /> </LinearLayout> - - <TextView - android:id="@+id/red_remainder_blance" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" - android:text="鍓╀綑閲戦锛�" - android:textSize="@dimen/text_size" - android:visibility="visible" /> + android:orientation="horizontal"> - <TextView - android:id="@+id/red_remainder_water" + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鐢ㄦ埛缂栧彿锛�" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_userCode" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="@dimen/text_size" /> + </LinearLayout> + + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" - android:text="鍓╀綑姘撮噺锛�" - android:textSize="@dimen/text_size" - android:visibility="gone"/> + android:orientation="horizontal"> - <TextView - android:id="@+id/red_rechargeDate" + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍓╀綑閲戦锛�" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_blance" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="@dimen/text_size" + android:visibility="visible" /> + </LinearLayout> + + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" - android:text="鏈�鍚庤喘姘存棩鏈燂細" - android:textSize="@dimen/text_size" - android:visibility="visible" /> + android:orientation="horizontal"> - <TextView - android:id="@+id/red_rechargeNumber" + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍓╀綑鐢甸噺锛�" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_electric" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="@dimen/text_size" + android:visibility="visible" /> + </LinearLayout> + + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" - android:text="鍏呭�兼鏁帮細" - android:textSize="@dimen/text_size" - android:visibility="gone" /> + android:orientation="horizontal"> - <TextView - android:id="@+id/red_total_water" + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鎬诲厖鍊奸噾棰濓細" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_totalMorny" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="@dimen/text_size" + android:visibility="visible" /> + </LinearLayout> + + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" - android:text="鎬荤敤姘撮噺锛�" - android:textSize="@dimen/text_size" - android:visibility="gone" /> + android:orientation="horizontal"> - <TextView - android:id="@+id/red_total_power" + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鎵嬫満鍙凤細" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_phone" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="@dimen/text_size" /> + </LinearLayout> + + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" - android:text="鎬荤敤鐢甸噺锛�" - android:textSize="@dimen/text_size" - android:visibility="gone" /> + android:orientation="horizontal"> - <TextView - android:id="@+id/red_statu" + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="韬唤璇佸彿锛�" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_codeId" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="@dimen/text_size" /> + </LinearLayout> + + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" - android:text="鍗$姸鎬侊細" - android:textSize="@dimen/text_size" /> + android:orientation="horizontal"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鍗$姸鎬侊細" + android:textSize="@dimen/text_size" /> + + <TextView + android:id="@+id/red_statu" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="@dimen/text_size" /> + </LinearLayout> </LinearLayout> diff --git a/qiheonlinelibrary/src/main/res/layout/activity_user_search_qhl.xml b/qiheonlinelibrary/src/main/res/layout/activity_user_search_qhl.xml new file mode 100644 index 0000000..b05f66a --- /dev/null +++ b/qiheonlinelibrary/src/main/res/layout/activity_user_search_qhl.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <com.dayu.baselibrary.view.TitleBar + android:id="@+id/titleBar" + android:layout_width="match_parent" + android:layout_height="@dimen/dimen_title_height" + android:background="@color/title_bar_bg" + app:centerText="閫夋嫨鐢ㄦ埛" + app:leftImage="@mipmap/icon_back" + app:rightText="鎼滅储" /> + + + <com.scwang.smart.refresh.layout.SmartRefreshLayout + android:id="@+id/refreshLayout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_below="@+id/titleBar"> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recyclerView" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="#ffffff" + android:overScrollMode="never" + android:padding="10dp" /> + + <com.scwang.smart.refresh.footer.ClassicsFooter + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + </com.scwang.smart.refresh.layout.SmartRefreshLayout> + + +</RelativeLayout> \ No newline at end of file diff --git a/qiheonlinelibrary/src/main/res/layout/dialog_chose_type.xml b/qiheonlinelibrary/src/main/res/layout/dialog_chose_type.xml new file mode 100644 index 0000000..0c7bff0 --- /dev/null +++ b/qiheonlinelibrary/src/main/res/layout/dialog_chose_type.xml @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="#40000000" + android:gravity="center" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/dialog_bg_margin" + android:background="@drawable/base_bg_dialog_top_stroke" + android:gravity="center" + android:orientation="vertical"> + + <TextView + android:layout_width="300dp" + android:layout_height="wrap_content" + android:layout_marginTop="20dp" + android:gravity="center" + android:text="閫夋嫨琛ュ崱绫诲瀷" + android:textColor="@color/dialog_btn" + android:textSize="23sp" + android:textStyle="bold" /> + + <View + android:layout_width="match_parent" + android:layout_height="2px" + android:layout_marginTop="20dp" + android:background="@color/line_bg" /> + + <RadioGroup + android:id="@+id/radioLibrary" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + + <RadioButton + android:id="@+id/hasCard" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="50dp" + android:layout_marginTop="25dp" + android:layout_marginRight="50dp" + android:background="@drawable/radio_select" + android:button="@null" + android:gravity="center" + android:padding="6dp" + android:text="娉垫湭鍏宠ˉ鍗�" + android:textColor="@drawable/radio_text_select" + android:textSize="20sp" /> + <RadioButton + android:id="@+id/noCard" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="50dp" + android:layout_marginTop="25dp" + android:layout_marginRight="50dp" + android:background="@drawable/radio_select" + android:button="@null" + android:gravity="center" + android:padding="6dp" + android:text="娉靛凡鍏宠ˉ鍗�" + android:textColor="@drawable/radio_text_select" + android:textSize="20sp" /> + + + </RadioGroup> + + <View + android:layout_width="match_parent" + android:layout_height="2px" + android:layout_marginTop="35dp" + android:background="@color/line_bg" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:padding="5dp" + android:orientation="horizontal"> + + <TextView + android:id="@+id/ok" + android:layout_width="match_parent" + android:layout_height="@dimen/dialog_btn_height" + android:background="@drawable/textview_select_bg" + android:gravity="center" + android:paddingLeft="15dp" + android:paddingTop="5dp" + android:paddingRight="15dp" + android:paddingBottom="5dp" + android:text="纭� 璁�" + android:textColor="@color/dialog_btn" + android:textSize="20sp" /> + + + </LinearLayout> + + + </LinearLayout> + +</LinearLayout> + diff --git a/qiheonlinelibrary/src/main/res/layout/dialog_replace_price.xml b/qiheonlinelibrary/src/main/res/layout/dialog_replace_price.xml new file mode 100644 index 0000000..e1184e8 --- /dev/null +++ b/qiheonlinelibrary/src/main/res/layout/dialog_replace_price.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="#00ffffff" + android:gravity="center" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/dialog_bg_margin" + android:background="@drawable/base_bg_dialog_top_stroke" + android:gravity="center" + android:orientation="vertical"> + + <TextView + android:id="@+id/title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:layout_marginRight="20dp" + android:layout_marginBottom="5dp" + android:gravity="center" + android:text="琛ュ崱宸ユ湰璐�" + android:textColor="@color/dialog_btn" + android:textSize="25sp" + android:textStyle="bold" /> + + + <EditText + android:id="@+id/pw_et" + android:layout_width="match_parent" + android:layout_height="@dimen/edt_height" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:layout_marginRight="20dp" + android:background="@drawable/editbg" + android:hint="璇疯緭鍏ヨˉ鍗″伐鏈垂锛堝厓锛�" + android:paddingLeft="10dp" + android:textColor="#000000" /> + + <View + android:layout_width="match_parent" + android:layout_height="2px" + android:layout_marginTop="20dp" + android:background="@color/line_bg" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:orientation="horizontal" + android:padding="5dp"> + + + + + <TextView + android:id="@+id/pw_ok" + android:layout_width="0dp" + android:layout_height="@dimen/dialog_btn_height" + android:layout_weight="1" + android:background="@drawable/textview_select_bg" + android:gravity="center" + android:text="纭� 璁�" + android:textColor="@color/dialog_btn" + android:textSize="20sp" /> + + + </LinearLayout> + + + </LinearLayout> + +</LinearLayout> + diff --git a/qiheonlinelibrary/src/main/res/layout/dialog_search_user.xml b/qiheonlinelibrary/src/main/res/layout/dialog_search_user.xml new file mode 100644 index 0000000..afdc1c2 --- /dev/null +++ b/qiheonlinelibrary/src/main/res/layout/dialog_search_user.xml @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="#40000000" + android:gravity="center" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_margin="@dimen/dialog_bg_margin" + android:background="@drawable/base_bg_dialog_top_stroke" + android:gravity="center" + android:orientation="vertical" + android:padding="5dp"> + + <TextView + + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:layout_marginRight="20dp" + android:gravity="center" + android:text="鎼滅储鐢ㄦ埛" + android:textColor="@color/text_color" + android:textSize="20sp" + android:textStyle="bold" /> + + <EditText + android:id="@+id/etName" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:layout_marginRight="20dp" + android:background="@drawable/editbg" + android:hint="璇疯緭鍏ョ敤鎴峰悕" + android:paddingLeft="15dp" + android:textColor="#000000" + android:textCursorDrawable="@drawable/cursor_drawable" /> + + <EditText + android:id="@+id/etCardId" + android:layout_width="match_parent" + android:layout_height="50dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="20dp" + android:layout_marginRight="20dp" + android:background="@drawable/editbg" + android:hint="璇疯緭鍏ヨ韩浠借瘉鍙�" + android:paddingLeft="15dp" + android:textColor="#000000" + android:textCursorDrawable="@drawable/cursor_drawable" /> + + <View + android:layout_width="match_parent" + android:layout_height="2px" + android:layout_marginTop="20dp" + android:background="@color/line_bg" /> + + <TextView + android:id="@+id/pw_ok" + android:layout_width="match_parent" + android:layout_height="@dimen/dialog_btn_height" + android:gravity="center" + android:text="纭� 璁�" + android:textColor="@color/dialog_btn" + android:textSize="@dimen/text_size" /> + + </LinearLayout> + +</LinearLayout> + diff --git a/qiheonlinelibrary/src/main/res/layout/qihe_line_item_user.xml b/qiheonlinelibrary/src/main/res/layout/qihe_line_item_user.xml new file mode 100644 index 0000000..78ee506 --- /dev/null +++ b/qiheonlinelibrary/src/main/res/layout/qihe_line_item_user.xml @@ -0,0 +1,139 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <LinearLayout + android:id="@+id/item" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="13dp" + android:layout_marginTop="10dp" + android:layout_marginRight="13dp" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="濮撳悕锛�" + android:textSize="18sp" /> + + <TextView + android:id="@+id/userName" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="韬唤璇佸彿锛�" + android:textSize="18sp" /> + + <TextView + android:id="@+id/cardID" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="鎵嬫満鍙凤細" + android:textSize="18sp" /> + + <TextView + android:id="@+id/phone" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="鍦板潃锛�" + android:textSize="18sp" /> + + <TextView + android:id="@+id/address" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="鐘舵�侊細" + android:textSize="18sp" /> + + <TextView + android:id="@+id/state" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + </LinearLayout> + + + <View + android:layout_width="match_parent" + android:layout_height="1px" + android:layout_marginTop="13dp" + android:background="#000000" /> + + </LinearLayout> +</layout> + diff --git a/qiheonlinelibrary/src/main/res/layout/qihe_line_iten_card.xml b/qiheonlinelibrary/src/main/res/layout/qihe_line_iten_card.xml new file mode 100644 index 0000000..ceab31c --- /dev/null +++ b/qiheonlinelibrary/src/main/res/layout/qihe_line_iten_card.xml @@ -0,0 +1,184 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout xmlns:android="http://schemas.android.com/apk/res/android"> + + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <LinearLayout + android:id="@+id/item" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="13dp" + android:layout_marginTop="10dp" + android:layout_marginRight="13dp" + android:orientation="vertical"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="鍗″彿锛�" + android:textSize="18sp" /> + + <TextView + android:id="@+id/cardId" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="鐢ㄦ埛缂栧彿锛�" + android:textSize="18sp" /> + + <TextView + android:id="@+id/userCode" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="鍗″唴浣欓锛�" + android:textSize="18sp" /> + + <TextView + android:id="@+id/balance" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="鍓╀綑鐢甸噺锛�" + android:textSize="18sp" /> + + <TextView + android:id="@+id/balanceElectic" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="绱鍏呭�硷細" + android:textSize="18sp" /> + + <TextView + android:id="@+id/totalMorny" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:orientation="horizontal"> + + <TextView + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:text="鍗$姸鎬侊細" + android:textSize="18sp" /> + + <TextView + android:id="@+id/state" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="2" + android:text="" + android:textSize="18sp" /> + </LinearLayout> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="3dp" + android:gravity="center" + android:orientation="horizontal"> + +<!-- <TextView--> +<!-- android:layout_width="0dp"--> +<!-- android:layout_height="wrap_content"--> +<!-- android:layout_weight="1"--> +<!-- android:text="鏈�鍚庡厖鍊兼椂闂达細"--> +<!-- android:textSize="18sp" />--> + + <TextView + android:id="@+id/lastRechargeTime" + android:layout_width="match_parent" + android:layout_height="wrap_content" + + android:text="" + android:textSize="18sp" /> + </LinearLayout> + + + </LinearLayout> + + + <View + android:layout_width="match_parent" + android:layout_height="1px" + android:layout_marginTop="13dp" + android:background="#000000" /> + + </LinearLayout> +</layout> + -- Gitblit v1.8.0