瀏覽代碼

1.美化快递员登录界面

zyh 1 年之前
父節點
當前提交
26c920f378

+ 125 - 0
app/src/main/java/com/emato/ich/fragment/SendKeyBoardFragment.java

@@ -346,7 +346,131 @@ public class SendKeyBoardFragment extends Fragment {
                 ToastUtils.make(getContext(), "密码格式错误!请输入8-16位的数字!");
             }
         });
+        binding.buttonConfirm.setOnClickListener(view1 -> {
+            if (ButtonUtils.isFastClick()) {
+                return;
+            }
+            // 登录逻辑  editTextTextPersonName4 手机 editTextTextPersonName5 密码
+            String sendPhone = "";
+            if ("courier".equals(finalLoginType) || "collect".equals(finalLoginType)){
+                sendPhone = binding.editTextTextPersonName4.getText().toString();
+            }else {
+                sendPhone = !StringUtils.isNullOrEmpty(finalLoginPhone) ? finalLoginPhone : binding.editTextTextPersonName4.getText().toString();
+            }
+            String password = binding.editTextTextPersonName5.getText().toString();
+
+            Pattern phonePattern = Pattern.compile("^((13[0-9])|(14[0,1,4-9])|(15[0-3,5-9])|(16[2,5,6,7])|(17[0-8])|(18[0-9])|(19[0-3,5-9]))\\d{8}$");
+            Pattern pwdPattern = Pattern.compile("^[0-9]{8,16}$");
+
+            if (phonePattern.matcher(sendPhone).matches() && pwdPattern.matcher(password).matches()) {
+                String finalSendPhone = sendPhone;
+                ICSPClient.login(sendPhone, password, new Callback() {
+                    @Override
+                    public void onFailure(@NotNull Call call, @NotNull IOException e) {
+                        // TODO 登录失败处理
+                        ToastUtils.make(getContext(), "登录失败!网络异常!");
+                        Log.e(TAG, "onFailure: 登录失败! call: " + call.timeout().toString(), e);
+                        LoggingUtils.sendErrorLog("业务异常: 登录失败!网络异常! ", e);
+                    }
+
+                    @Override
+                    public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
+                        ((MainActivity) getActivity()).runOnUiThread(() -> {
+                            String responseStr = ICSPClient.isSuccessfulAndParseResponse(response);
+                            if (!StringUtils.isNullOrEmpty(responseStr)) {
+                                try {
+                                    ResponseData<ResponseTokenVo> responseData = JacksonUtils.objectmapper.readValue(responseStr, new TypeReference<ResponseData<ResponseTokenVo>>() {
+                                    });
+                                    ResponseTokenVo data = responseData.getData();
+
+                                    if (responseData.getCode().equals(ICSPConstant.OK)) {
+                                        LocalStorage.Session session = new LocalStorage.Session();
+                                        session.setPhone(finalSendPhone);
+                                        session.setTime(System.currentTimeMillis());
+                                        session.setToken(data.getToken());
+                                        MainActivity activity = (MainActivity) getActivity();
+                                        String pageType = activity.getBundleMap().get(MainFragment.class.getName()).getString("pageType");
+                                        String loginType = activity.getBundleMap().get(CourierFragment.class.getName()).getString("loginType");
+                                        LocalStorage.getInstance().cleanSession(activity,false);
+                                        LocalStorage.getInstance().setSession(session);
+
+                                        Bundle pageTypeBundle = new Bundle();
+                                        pageTypeBundle.putString("pageType",pageType);
+                                        activity.getBundleMap().put(MainFragment.class.getName(), pageTypeBundle);
+                                        Bundle loginTypeBundle = new Bundle();
+                                        loginTypeBundle.putString("loginType",loginType);
+                                        activity.getBundleMap().put(CourierFragment.class.getName(), loginTypeBundle);
+
+                                        // 登录成功
+                                        ToastUtils.make(getContext(), "登录成功!");
+                                        if (null != timer) {
+                                            timer.cancel();
+                                        }
+                                        if ("store".equals(finalLoginType) || "courier".equals(finalLoginType)){
+                                            Bundle isPayBundle = new Bundle();
+                                            isPayBundle.putString("isPay",data.getIsPay());
+                                            activity.getBundleMap().put(SendKeyBoardFragment.class.getName(), isPayBundle);
+                                            // "30"为供应链账号,定为管理员账号
+                                            if("store".equals(finalLoginType) ){
+                                                if("10".equals(data.getDelType()) || "30".equals(data.getDelType())){
+                                                    NavUtils.navigate(SendKeyBoardFragment.this, R.id.action_sendFragment_to_sendMainFragment);
+                                                } else {
+                                                    ToastUtils.make(getContext(), "请用门店账号登录!");
+                                                    return;
+                                                }
+                                            }else {
+                                                if("20".equals(data.getDelType()) || "30".equals(data.getDelType())){
+                                                    NavUtils.navigate(SendKeyBoardFragment.this, R.id.action_sendFragment_to_sendMainFragment);
+                                                } else {
+                                                    ToastUtils.make(getContext(), "请用快递员账号登录!");
+                                                    return;
+                                                }
+                                            }
+
+//                                            if ("0".equals(data.getIsPay())){
+//                                                NavUtils.navigate(SendKeyBoardFragment.this, R.id.action_sendFragment_to_paymentFragment);
+//                                            }else {
+//                                                NavUtils.navigate(SendKeyBoardFragment.this, R.id.action_sendFragment_to_sendMainFragment);
+//                                            }
+                                        }else{
+                                            if(!"20".equals(data.getDelType())){
+                                                ToastUtils.make(getContext(), "请用快递员账号登录!");
+                                                return;
+                                            }
+                                            NavUtils.navigate(SendKeyBoardFragment.this, R.id.action_sendFragment_to_collectMaterialsFragment);
+                                        }
+
+                                    } else {
+                                        ToastUtils.make(getContext(), responseData.getMsg());
+                                        Log.w(TAG, "onResponse: " + responseData.getMsg());
+                                    }
 
+                                } catch (JsonProcessingException e) {
+                                    Log.e(TAG, "onViewCreated: 解析登录响应信息错误! response body: " + responseStr, e);
+                                    ToastUtils.make(getContext(), "登录失败!");
+                                    LoggingUtils.sendErrorLog("业务异常: 登录失败!", e);
+                                } catch (ClassCastException e) {
+                                    Log.e(TAG, "onResponse: 解析登录响应信息类型转换错误! response body: " + responseStr, e);
+                                    ToastUtils.make(getContext(), "登录失败!");
+                                    LoggingUtils.sendErrorLog("业务异常: 登录失败!", e);
+                                } catch (RuntimeException e) {
+                                    Log.e(TAG, "onResponse: 登录失败! ", e);
+                                    ToastUtils.make(getContext(), "登录失败!");
+                                    LoggingUtils.sendErrorLog("业务异常: 登录失败!未知错误! ", e);
+                                }
+                            } else {
+                                // 登录失败
+                                ToastUtils.make(getContext(), "服务异常!请稍后重试!");
+                            }
+                        });
+                    }
+                });
+            } else if (!phonePattern.matcher(sendPhone).matches()) {
+                ToastUtils.make(getContext(), "输入正确的手机号!");
+            } else if (!pwdPattern.matcher(password).matches()) {
+                ToastUtils.make(getContext(), "密码格式错误!请输入8-16位的数字!");
+            }
+        });
         // 密码
         binding.editTextTextPersonName5.setOnFocusChangeListener((view1, hasFocus) -> {
             AtomicBoolean caseSmallFlag = new AtomicBoolean(true);
@@ -975,6 +1099,7 @@ public class SendKeyBoardFragment extends Fragment {
         });
 
 
+
         // 默认选中密码输入
         if (!StringUtils.isNullOrEmpty(binding.editTextTextPersonName4.getText().toString())) {
             binding.editTextTextPersonName5.requestFocus();

二進制
app/src/main/res/drawable/courier_register_title.png


+ 62 - 26
app/src/main/res/layout/fragment_send_key_board.xml

@@ -9,59 +9,95 @@
     <include
         android:id="@+id/key_board"
         layout="@layout/fragment_my_key_board" />
+    <!-- 倒计时 -->
+    <TextView
+        android:id="@+id/timeout"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="271dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:textStyle="bold" />
+
+    <TextView
+        android:id="@+id/take_text_title"
+        android:layout_width="120dp"
+        android:layout_height="40dp"
+        android:layout_x="122dp"
+        android:layout_y="40dp"
+        android:gravity="center"
+        android:text="@string/courier_title"
+        android:textColor="@color/black"
+        android:textSize="16dp" />
 
     <TextView
         android:id="@+id/return_btn"
         android:layout_width="80dp"
-        android:layout_height="29dp"
-        android:layout_x="29dp"
-        android:layout_y="529dp"
-        android:background="@drawable/return1" />
-
-    <!-- 倒计时 -->
+        android:layout_height="30dp"
+        android:layout_x="10dp"
+        android:layout_y="44dp"
+        android:background="@drawable/back_btn" />
+    <TextView
+        android:id="@+id/sendingTitleImage"
+        android:layout_width="100dp"
+        android:layout_height="30dp"
+        android:layout_x="30dp"
+        android:layout_y="159dp"
+        android:background="@drawable/courier_register_title" />
 
     <TextView
         android:id="@+id/qrCodeImage"
-        android:layout_width="60dp"
-        android:layout_height="60dp"
-        android:layout_x="276dp"
-        android:layout_y="286dp"
+        android:layout_width="100dp"
+        android:layout_height="100dp"
+        android:layout_x="40dp"
+        android:layout_y="203dp"
         android:background="@drawable/courier_register" />
-
     <TextView
-        android:id="@+id/timeout"
-        android:layout_width="50dp"
-        android:layout_height="50dp"
-        android:layout_x="286dp"
-        android:layout_y="518dp"
-        android:gravity="center"
-        android:textSize="30dp"
-        android:textStyle="bold" />
+        android:id="@+id/delivery_code"
+        android:layout_width="120dp"
+        android:layout_height="25dp"
+        android:layout_x="185dp"
+        android:layout_y="165dp"
+        android:gravity="left"
+        android:text="@string/courier_login_title"
+        android:textColor="@color/black"
+        android:textSize="12dp" />
     <!--  投递员手机号  -->
     <EditText
         android:id="@+id/editTextTextPersonName4"
         android:layout_width="120dp"
-        android:layout_height="50dp"
-        android:layout_x="25dp"
-        android:layout_y="290dp"
+        android:layout_height="40dp"
+        android:layout_x="185dp"
+        android:layout_y="190dp"
         android:ems="15"
         android:hint="@string/input_send_phone"
         android:inputType="number"
         android:longClickable="false"
         android:textSize="10dp" />
     <!--  投递员密码  -->
-
     <EditText
         android:id="@+id/editTextTextPersonName5"
         android:layout_width="120dp"
-        android:layout_height="50dp"
-        android:layout_x="155dp"
-        android:layout_y="291dp"
+        android:layout_height="40dp"
+        android:layout_x="185dp"
+        android:layout_y="240dp"
         android:ems="15"
         android:hint="@string/input_send_password"
         android:inputType="textPassword"
         android:longClickable="false"
         android:textSize="10dp" />
+    <!--  确认按钮  -->
+    <Button
+        android:id="@+id/button_confirm"
+        android:layout_width="120dp"
+        android:layout_height="40dp"
+        android:layout_x="185dp"
+        android:layout_y="285dp"
+        android:enabled="true"
+        android:text="@string/determine_btn"
+        android:textSize="12dp"
+        android:theme="@style/Theme.ButtonStyle.BLUE" />
 
 
 </AbsoluteLayout>

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -73,6 +73,8 @@
     <string name="android_take">取件码取件</string>
     <string name="select_cabinet">选择柜子</string>
     <string name="express_delivery_title">寄快递</string>
+    <string name="courier_login_title">快递员登录</string>
+    <string name="courier_title">投递</string>
     <string name="delivery_packages_title">投递包裹信息</string>
     <string name="delivery_packages_prompt">请填写包裹信息</string>
     <string name="fragment_courier_title">派件员</string>