| | |
| | | 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; |
| | | |
| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | private void initView() { |
| | | newCardBinding.newCardName.setFilters(new InputFilter[]{new ChineseInputFilter()}); |
| | | // newCardBinding.newCardName.setFilters(new InputFilter[]{new ChineseInputFilter()}); |
| | | newCardBinding.newCardId.setFilters(new InputFilter[]{new AlphaNumericXFilter(), new InputFilter.LengthFilter(18)}); |
| | | //身份证识别 |
| | | newCardBinding.newCardScanBtn.setOnClickListener(new View.OnClickListener() { |
| | |
| | | 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) |
| | | ) { |
| | | if (userName.length() <= 1 || !validateName(userName)) { |
| | | if (userName.length() <= 1) { |
| | | TipUtil.show(NewCardActivity.this, "请输入正确姓名"); |
| | | } else if (phone.length() < 11 || !isValidPhoneNumber(phone)) { |
| | | TipUtil.show(NewCardActivity.this, "请输入正确手机号"); |
| | | } 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 { |
| | |
| | | }); |
| | | } |
| | | |
| | | //校验手机号 |
| | | private boolean isValidPhoneNumber(String phoneNumber) { |
| | | // 定义手机号的正则表达式,确保数字部分没有连续6位相同的数字 |
| | | String phoneRegex = "^1[0-9]{10}$"; |
| | |
| | | private void setData() { |
| | | |
| | | try { |
| | | adminData = baseDao.adminDao().findFirst(); |
| | | newCardBinding.newCardVillageNum.setText(adminData.getSerial()); |
| | | newCardBinding.newCardArerNumber.setText(QHOnLineApplication.getInstance().arerNumber); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | 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, t.getData().getRecords().get(0).getPeasantPhone(), t.getData().getRecords().get(0).getPeasantName(), 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()); |
| | | userCard.setElectricPrice(Float.valueOf(QHOnLineApplication.getInstance().electriclePriceStr)); |
| | | 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, t.getData().getPeasantPhone(), t.getData().getPeasantName(), t.getData().getPeasantId(), morny); |
| | | } else { |
| | | ToastUtil.show(t.getMsg()); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | } |