1
0
Quellcode durchsuchen

Merge branch 'cabinet_req_2023_05_04' of zyh/ich-android into cabinet_req_2023_05_04

王超群 vor 1 Jahr
Ursprung
Commit
adb6357d22

+ 4 - 1
app/src/main/java/com/emato/ich/MainActivity.java

@@ -199,7 +199,10 @@ public class MainActivity extends AppCompatActivity  {
                         List<String> cabImgList = objectMapper.readValue(cabImgListStr, new TypeReference<List<String>>() {});
                         banner = findViewById(R.id.banner);
                         // 加入 banner
-                        banner.initBanner(cabImgList);
+                        if (!cabImgList.isEmpty()){
+                            Log.i(TAG, "onResponse: =====================>获取图片轮播图系统配置成功! ");
+                            banner.initBanner(cabImgList);
+                        }
 
                         Log.i(TAG, "onResponse: =====================>获取系统配置成功! ");
                     } else {

+ 6 - 1
app/src/main/java/com/emato/ich/api/ICSPApi.java

@@ -14,7 +14,7 @@ public class ICSPApi {
     /**
      * 用户投递码 确认下单
      */
-    public static final String DELIVERY_CODE_CONFIRM = ICSPConstant.ICSP_SERVICE + "order/user/confirm";
+    public static final String DELIVERY_CODE_CONFIRM = ICSPConstant.ICSP_SERVICE + "/order/user/confirm";
     /**
      * 寄送订单运单号/取货码取货接口
      */
@@ -30,6 +30,11 @@ public class ICSPApi {
      */
     public static final String MICRO_PAY = ICSPConstant.ICSP_SERVICE + "/api/pay/microPay";
 
+    /**
+     * icsp支付接口地址
+     */
+    public static final String DELIVERER_PAY = ICSPConstant.ICSP_SERVICE + "/deliverer/delivererPay";
+
 
     /**
      * 投递员登录接口

+ 25 - 0
app/src/main/java/com/emato/ich/api/ICSPClient.java

@@ -302,6 +302,31 @@ public class ICSPClient {
     }
 
 
+    /**
+     * 投递员付款
+     * @param token         凭证
+     * @param authCode      支付码
+     * @param callback      回调
+     */
+    public static void delivererPay(String token, String authCode, Callback callback) {
+
+        MediaType mediaType = MediaType.parse(MEDIA_TYPE_JSON);
+        RequestBody requestBody = null;
+
+        try {
+            requestBody = RequestBody.create("{\"authCode\": \"" + authCode + "\"}", mediaType);
+        } catch (RuntimeException e) {
+            Log.e(TAG, "delivererPay: 投递员付款异常! ", e);
+            LoggingUtils.sendErrorLog("业务异常: 投递员付款异常! ", e);
+        }
+
+        Request request = postRequest(ICSPApi.DELIVERER_PAY, requestBody, token);
+
+        client.newCall(request).enqueue(callback);
+
+    }
+
+
     public static String isSuccessfulAndParseResponse(Response response) {
 
         if (null != response && response.isSuccessful()) {

+ 22 - 0
app/src/main/java/com/emato/ich/entity/vo/ResponseTokenVo.java

@@ -9,6 +9,20 @@ public class ResponseTokenVo {
 
     private String token;
 
+    /** 投递员分类,10:商户,20:快递公司,30:供应链,40:供应商,90:其它 */
+    private String delType;
+
+    //是否需要付款:0:需要,1:不需要
+    private String isPay;
+
+    public String getIsPay() {
+        return isPay;
+    }
+
+    public void setIsPay(String isPay) {
+        this.isPay = isPay;
+    }
+
     public String getToken() {
         return token;
     }
@@ -17,6 +31,14 @@ public class ResponseTokenVo {
         this.token = token;
     }
 
+    public String getDelType() {
+        return delType;
+    }
+
+    public void setDelType(String delType) {
+        this.delType = delType;
+    }
+
     @NotNull
     @Override
     public String toString() {

+ 17 - 2
app/src/main/java/com/emato/ich/fragment/ChooseCabinetFragment.java

@@ -50,6 +50,7 @@ import org.jetbrains.annotations.NotNull;
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Objects;
 
 import okhttp3.Call;
 import okhttp3.Callback;
@@ -204,6 +205,14 @@ public class ChooseCabinetFragment extends Fragment {
             }
             MainActivity activity = (MainActivity) getActivity();
             activity.getBundleMap().put(ChooseCabinetFragment.class.getName(), bundle);
+
+            Bundle MainFragmentBundle = activity.getBundleMap().get(MainFragment.class.getName());
+            if (Objects.nonNull(MainFragmentBundle)){
+                //  我要寄快递页面跳转
+                if("expressDelivery".equals(MainFragmentBundle.getString("pageType"))){
+                    NavUtils.navigate(this, R.id.action_chooseCabinetFragment_to_mainFragment);
+                }
+            }
             Bundle exceptionBundle = activity.getBundleMap().get(ExceptionFragment.class.getName());
             if (null != timer) {
                 timer.cancel();
@@ -313,12 +322,18 @@ public class ChooseCabinetFragment extends Fragment {
                 if (null != timer) {
                     timer.cancel();
                 }
-                activity.getBundleMap().put(ChooseCabinetFragment.class.getName(), bundle);
+
                 String pageType = activity.getBundleMap().get(MainFragment.class.getName()).getString("pageType");
+                activity.getBundleMap().put(ChooseCabinetFragment.class.getName(), bundle);
                 if(!StringUtils.isNullOrEmpty(pageType) && "expressDelivery".equals(pageType)){
                     NavUtils.navigate(this, R.id.action_chooseCabinetFragment_to_expressDeliveryFragment, bundle);
                 }else {
-                    NavUtils.navigate(this, R.id.action_chooseCabinetFragment_to_InputInfoKeyBoardFragment, bundle);
+                    String isPay = activity.getBundleMap().get(SendKeyBoardFragment.class.getName()).getString("isPay");
+                    if ("0".equals(isPay)){
+                        NavUtils.navigate(this, R.id.action_chooseCabinetFragment_to_paymentFragment);
+                    }else {
+                        NavUtils.navigate(this, R.id.action_chooseCabinetFragment_to_InputInfoKeyBoardFragment, bundle);
+                    }
                 }
 
             }

+ 0 - 50
app/src/main/java/com/emato/ich/fragment/CollectMaterialsFragment.java

@@ -92,8 +92,6 @@ public class CollectMaterialsFragment extends Fragment {
         String sectionType = null;
         try {
             MainActivity activity = (MainActivity) getActivity();
-            arguments = activity.getBundleMap().get(ChooseCabinetFragment.class.getName());
-            sectionType = arguments.getString("section_type");
             binding.mailNo.setInputType(InputType.TYPE_NULL);   
             // 扫描枪监听 扫描运单号
             activity.scanGunKeyEventHelper = new ScanGunKeyEventHelper(s -> {
@@ -116,52 +114,6 @@ public class CollectMaterialsFragment extends Fragment {
                     text.clear();
                     binding.mailNo.setText(s);
                     mailNoLock.incrementAndGet();
-                    // TODO 预定义,实际参数可能不一致 oms获取用户手机号 自动填充
-                    ICSPClient.getUserPhoneNumber(LocalStorage.getInstance().getSession().getToken(), BaseUtils.getClientId(), s, new Callback() {
-                        @Override
-                        public void onFailure(@NotNull Call call, @NotNull IOException e) {
-                            // 请求失败
-                            Log.e(TAG, "onFailure: 请求oms获取手机号失败! 网络异常! ", e);
-                            LoggingUtils.sendErrorLog("业务异常: 请求oms获取手机号失败! 网络异常! ", e);
-                            ToastUtils.make(getContext(), "服务器异常! 请手动输入!");
-                            mailNoLock.set(1);
-                        }
-
-                        @Override
-                        public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
-
-                            getActivity().runOnUiThread(() -> {
-                                String parseResponse = ICSPClient.isSuccessfulAndParseResponse(response);
-                                if (!StringUtils.isNullOrEmpty(parseResponse)) {
-                                    try {
-                                        ResponseData<PreparedOrderResponseVo> responseData = new ObjectMapper().readValue(parseResponse, new TypeReference<ResponseData<PreparedOrderResponseVo>>() {
-                                        });
-
-                                        PreparedOrderResponseVo data = responseData.getData();
-                                        if (null != responseData && ICSPConstant.OK.equals(responseData.getCode())) {
-                                            String collectorPhone = data.getCollectorPhone();
-//                                            binding.delivererPhoneConfirm.setText(collectorPhone);
-                                        } else {
-                                            ToastUtils.make(getContext(), responseData.getMsg());
-                                        }
-
-                                    } catch (JsonProcessingException e) {
-                                        Log.e(TAG, "onResponse: 服务器响应错误! 自动获取用户手机号失败! ", 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(), "服务器异常!请稍后重试!");
-                                }
-                                mailNoLock.set(1);
-                            });
-
-                        }
-                    });
                 }
             });
 
@@ -172,8 +124,6 @@ public class CollectMaterialsFragment extends Fragment {
 
         // TODO 离线逻辑, 暂时不做
 
-        // 下单逻辑
-        String finalSectionType = sectionType;
         if (submitLock.get() == 1) {
             submitLock.incrementAndGet();
             binding.keyBoard.inputButtonConfirm.setOnClickListener(view1 -> {

+ 108 - 109
app/src/main/java/com/emato/ich/fragment/ExpressDeliveryFragment.java

@@ -76,6 +76,7 @@ public class ExpressDeliveryFragment extends Fragment {
             Log.e(TAG, "onViewCreated: 倒计时出现异常! ", e);
             LoggingUtils.sendErrorLog("业务异常: 取件页面倒计时出现异常! ", e);
         }
+
         Bundle arguments = null;
         String sectionType = null;
         MainActivity activity = (MainActivity) getActivity();
@@ -165,6 +166,7 @@ public class ExpressDeliveryFragment extends Fragment {
                                         bundle.putString("preparedOrderResponse", objectMapper.writeValueAsString(data));
                                         bundle.putString("editTextDeliveryCode", binding.editTextDeliveryCode.getText().toString());
                                         bundle.putString("sectionType", finalSectionType);
+                                        bundle.putString("takeNo", binding.editTextDeliveryCode.getText().toString());
 
                                         // 跳转到确认投递
                                         try {
@@ -177,7 +179,7 @@ public class ExpressDeliveryFragment extends Fragment {
                                         if (null != timer) {
                                             timer.cancel();
                                         }
-                                        NavUtils.navigate(ExpressDeliveryFragment.this, R.id.action_collectMaterialsFragment_to_sendInfoConfirmFragment);
+                                        NavUtils.navigate(ExpressDeliveryFragment.this, R.id.action_expressDeliveryFragment_to_sendInfoConfirmFragment);
                                     }
                                     Log.i(TAG, "onResponse: ICSP返回码: " + responseData.getCode() + ", 返回信息: " + responseData.getMsg());
                                     ToastUtils.make(getContext(), responseData.getMsg());
@@ -200,115 +202,112 @@ public class ExpressDeliveryFragment extends Fragment {
 
         });
         // 输入投递码
-        binding.editTextDeliveryCode.setOnFocusChangeListener((view1, hasFocus) -> {
-            if (hasFocus) {
-                binding.keyBoard.inputButton0.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "0");
-                });
-                binding.keyBoard.inputButton1.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "1");
-                });
-                binding.keyBoard.inputButton2.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "2");
-                });
-                binding.keyBoard.inputButton3.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "3");
-                });
-                binding.keyBoard.inputButton4.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "4");
-                });
-                binding.keyBoard.inputButton5.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "5");
-                });
-                binding.keyBoard.inputButton6.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "6");
-                });
-                binding.keyBoard.inputButton7.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "7");
-                });
-                binding.keyBoard.inputButton8.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "8");
-                });
-                binding.keyBoard.inputButton9.setOnClickListener(v -> {
-                    int length = binding.editTextDeliveryCode.getText().length();
-                    if (length >= 6) {
-                        ToastUtils.make(getContext(), "投递码不能超过6位! ");
-                        return;
-                    }
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    binding.editTextDeliveryCode.getText().insert(start, "9");
-                });
-                binding.keyBoard.inputButtonCancel.setOnClickListener(v -> {
-                    Editable text = binding.editTextDeliveryCode.getText();
-                    int start = binding.editTextDeliveryCode.getSelectionStart();
-                    if (text.length() > 0) {
-                        if (start > 0) {
-                            text.delete(start - 1, start);
-                        }
-                        binding.editTextDeliveryCode.setText(text, TextView.BufferType.EDITABLE);
-                        binding.editTextDeliveryCode.setSelection(start - 1 < 0 ? text.length() : start - 1);
-                    }
-                });
-                // 长按删除
-                binding.keyBoard.inputButtonCancel.setOnLongClickListener(v -> {
-                    binding.editTextDeliveryCode.getText().clear();
-                    return false;
-                });
+        binding.editTextDeliveryCode.requestFocus();
+        binding.keyBoard.inputButton0.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
+            }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "0");
+        });
+        binding.keyBoard.inputButton1.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
             }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "1");
+        });
+        binding.keyBoard.inputButton2.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
+            }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "2");
+        });
+        binding.keyBoard.inputButton3.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
+            }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "3");
+        });
+        binding.keyBoard.inputButton4.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
+            }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "4");
+        });
+        binding.keyBoard.inputButton5.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
+            }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "5");
+        });
+        binding.keyBoard.inputButton6.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
+            }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "6");
+        });
+        binding.keyBoard.inputButton7.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
+            }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "7");
+        });
+        binding.keyBoard.inputButton8.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
+            }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "8");
+        });
+        binding.keyBoard.inputButton9.setOnClickListener(v -> {
+            int length = binding.editTextDeliveryCode.getText().length();
+            if (length >= 6) {
+                ToastUtils.make(getContext(), "投递码不能超过6位! ");
+                return;
+            }
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            binding.editTextDeliveryCode.getText().insert(start, "9");
+        });
+        binding.keyBoard.inputButtonCancel.setOnClickListener(v -> {
+            Editable text = binding.editTextDeliveryCode.getText();
+            int start = binding.editTextDeliveryCode.getSelectionStart();
+            if (text.length() > 0) {
+                if (start > 0) {
+                    text.delete(start - 1, start);
+                }
+                binding.editTextDeliveryCode.setText(text, TextView.BufferType.EDITABLE);
+                binding.editTextDeliveryCode.setSelection(start - 1 < 0 ? text.length() : start - 1);
+            }
+        });
+        // 长按删除
+        binding.keyBoard.inputButtonCancel.setOnLongClickListener(v -> {
+            binding.editTextDeliveryCode.getText().clear();
+            return false;
         });
     }
 

+ 2 - 1
app/src/main/java/com/emato/ich/fragment/InputInfoKeyBoardFragment.java

@@ -101,6 +101,7 @@ public class InputInfoKeyBoardFragment extends Fragment {
                 // 扫码成功回调
                 Log.d(TAG, "onScanSuccess: " + s);
                 String loginType = activity.getBundleMap().get(CourierFragment.class.getName()).getString("loginType");
+                Log.d(TAG, "onScanSuccess: " + loginType);
                 if (!StringUtils.isNullOrEmpty(s)) {
                     for (String pattern : ScanGunConstant.getPatterns()) {
                         Matcher matcher = Pattern.compile(pattern).matcher(s);
@@ -148,7 +149,7 @@ public class InputInfoKeyBoardFragment extends Fragment {
                                                 }
                                                 binding.delivererPhoneConfirm.setText(collectorPhone);
                                             } else {
-                                                ToastUtils.make(getContext(), responseData.getMsg());
+                                                ToastUtils.make(getContext(), "查询手机号失败,返回信息:" + responseData.getMsg());
                                             }
 
                                         } catch (JsonProcessingException e) {

+ 13 - 93
app/src/main/java/com/emato/ich/fragment/PaymentFragment.java

@@ -38,6 +38,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 import org.jetbrains.annotations.NotNull;
+import org.json.JSONObject;
 
 import java.io.IOException;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -91,10 +92,8 @@ public class PaymentFragment extends Fragment {
         String sectionType = null;
         try {
             MainActivity activity = (MainActivity) getActivity();
-            arguments = activity.getBundleMap().get(ChooseCabinetFragment.class.getName());
-            sectionType = arguments.getString("section_type");
-            binding.paymentNo.setInputType(InputType.TYPE_NULL);   
-            // 扫描枪监听 扫描运单号
+            binding.paymentNo.setInputType(InputType.TYPE_NULL);
+            // 扫描枪监听 扫描付款码
             activity.scanGunKeyEventHelper = new ScanGunKeyEventHelper(s -> {
                 // 扫码成功回调
                 Log.d(TAG, "onScanSuccess: " + s);
@@ -116,13 +115,13 @@ public class PaymentFragment extends Fragment {
                     binding.paymentNo.setText(s);
                     paymentNoLock.incrementAndGet();
                     // TODO 预定义,实际参数可能不一致 oms获取用户手机号 自动填充
-                    ICSPClient.getUserPhoneNumber(LocalStorage.getInstance().getSession().getToken(), BaseUtils.getClientId(), s, new Callback() {
+                    ICSPClient.delivererPay(LocalStorage.getInstance().getSession().getToken(), s, new Callback() {
                         @Override
                         public void onFailure(@NotNull Call call, @NotNull IOException e) {
                             // 请求失败
-                            Log.e(TAG, "onFailure: 请求oms获取手机号失败! 网络异常! ", e);
-                            LoggingUtils.sendErrorLog("业务异常: 请求oms获取手机号失败! 网络异常! ", e);
-                            ToastUtils.make(getContext(), "服务器异常! 请手动输入!");
+                            Log.e(TAG, "onFailure: 投递员付款! 网络异常! ", e);
+                            LoggingUtils.sendErrorLog("业务异常: 投递员付款! 网络异常! ", e);
+                            ToastUtils.make(getContext(), "服务器异常! 请联系管理员!");
                             paymentNoLock.set(1);
                         }
 
@@ -133,13 +132,9 @@ public class PaymentFragment extends Fragment {
                                 String parseResponse = ICSPClient.isSuccessfulAndParseResponse(response);
                                 if (!StringUtils.isNullOrEmpty(parseResponse)) {
                                     try {
-                                        ResponseData<PreparedOrderResponseVo> responseData = new ObjectMapper().readValue(parseResponse, new TypeReference<ResponseData<PreparedOrderResponseVo>>() {
-                                        });
-
-                                        PreparedOrderResponseVo data = responseData.getData();
+                                        ResponseData responseData = JacksonUtils.objectmapper.readValue(parseResponse, ResponseData.class);
                                         if (null != responseData && ICSPConstant.OK.equals(responseData.getCode())) {
-                                            String collectorPhone = data.getCollectorPhone();
-//                                            binding.delivererPhoneConfirm.setText(collectorPhone);
+                                            NavUtils.navigate(PaymentFragment.this, R.id.action_paymentFragment_to_InputInfoKeyBoardFragment);
                                         } else {
                                             ToastUtils.make(getContext(), responseData.getMsg());
                                         }
@@ -152,6 +147,10 @@ public class PaymentFragment extends Fragment {
                                         Log.e(TAG, "onResponse: 获取用户手机号未知错误! ", e);
                                         ToastUtils.make(getContext(), "未查询到手机号! 请手动输入! ");
                                         LoggingUtils.sendErrorLog("业务异常: 获取用户手机号未知错误! ", e);
+                                    } catch (Exception e) {
+                                        Log.e(TAG, "onResponse: 获取用户手机号未知错误! ", e);
+                                        ToastUtils.make(getContext(), "未查询到手机号! 请手动输入! ");
+                                        LoggingUtils.sendErrorLog("业务异常: 获取用户手机号未知错误! ", e);
                                     }
                                 } else {
                                     ToastUtils.make(getContext(), "服务器异常!请稍后重试!");
@@ -170,85 +169,6 @@ public class PaymentFragment extends Fragment {
         }
 
         // TODO 离线逻辑, 暂时不做
-
-        // 下单逻辑
-        String finalSectionType = sectionType;
-        if (submitLock.get() == 1) {
-            submitLock.incrementAndGet();
-            binding.keyBoard.inputButtonConfirm.setOnClickListener(view1 -> {
-                Bundle bundle = new Bundle();
-                String paymentNo = binding.paymentNo.getText().toString();
-//            String phone = binding.delivererPhone.getText().toString();
-
-               if (StringUtils.isNullOrEmpty(paymentNo)) {
-                    ToastUtils.make(getContext(), "运单号不能为空!请扫描运单号!");
-                } else {
-                    // todo: 将支付码传到后端进行支付
-                   //  todo:支付成功后调用预下单接口进行开门
-                    PreparedOrderVo preparedOrderVo = new PreparedOrderVo();
-                    preparedOrderVo.setClientId(BaseUtils.getClientId());
-
-                    preparedOrderVo.setLockerType(finalSectionType);
-                    preparedOrderVo.setDelivererPhone(LocalStorage.getInstance().getSession().getPhone());
-
-                    // 预下单
-                    ICSPClient.preparedOrder(LocalStorage.getInstance().getSession().getToken(), preparedOrderVo, 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("业务异常: 预下单失败! call: " + call.timeout().toString(), e);
-                        }
-
-                        @Override
-                        public void onResponse(@NotNull Call call, @NotNull Response response) {
-                            ((MainActivity) getActivity()).runOnUiThread(() -> {
-                                try {
-                                    String responseStr = ICSPClient.isSuccessfulAndParseResponse(response);
-                                    if (!StringUtils.isNullOrEmpty(responseStr)) {
-                                        ObjectMapper objectMapper = JacksonUtils.objectmapper;
-                                        ResponseData<PreparedOrderResponseVo> responseData = objectMapper.readValue(responseStr, new TypeReference<ResponseData<PreparedOrderResponseVo>>() {
-                                        });
-                                        data = responseData.getData();
-                                        // 响应信息
-                                        if (responseData.getCode().equals(ICSPConstant.OK)) {
-                                            bundle.putString("preparedOrderResponse", objectMapper.writeValueAsString(data));
-                                            bundle.putString("takeNo", paymentNo);
-                                            bundle.putString("sectionType", finalSectionType);
-
-                                            // 跳转到确认投递
-                                            try {
-                                                MainActivity activity = (MainActivity) getActivity();
-                                                activity.getBundleMap().put(PaymentFragment.class.getName(), bundle);
-                                            } catch (RuntimeException e) {
-                                                Log.e(TAG, "onResponse: InputInfoFragment页面获取SendInfoConfirmFragment传值错误! ", e);
-                                                LoggingUtils.sendErrorLog("业务异常: InputInfoFragment页面获取SendInfoConfirmFragment传值错误! ", e);
-                                            }
-                                            if (null != timer) {
-                                                timer.cancel();
-                                            }
-                                            NavUtils.navigate(PaymentFragment.this, R.id.action_InputInfoKeyBoardFragment_to_sendInfoConfirmFragment);
-                                        }
-                                        Log.i(TAG, "onResponse: ICSP返回码: " + responseData.getCode() + ", 返回信息: " + responseData.getMsg());
-                                        ToastUtils.make(getContext(), responseData.getMsg());
-                                    } else {
-                                        ToastUtils.make(getContext(), "服务器异常!请稍后重试!");
-                                    }
-                                } catch (JsonProcessingException e) {
-                                    Log.e(TAG, "onResponse: 预下单转换成JSON出错! ", e);
-                                    LoggingUtils.sendErrorLog("业务异常: 预下单转换成JSON出错! ", e);
-                                } catch (RuntimeException e) {
-                                    Log.e(TAG, "onResponse: 预下单失败! ", e);
-                                    LoggingUtils.sendErrorLog("业务异常: 预下单失败! ", e);
-                                }
-                            });
-                        }
-                    });
-                }
-            });
-        }
-
         // 数字输入 5 手机号   4 面单号
         binding.paymentNo.setOnFocusChangeListener((view1, hasFocus) -> {
             AtomicBoolean caseSmallFlag = new AtomicBoolean(true);

+ 27 - 8
app/src/main/java/com/emato/ich/fragment/SendInfoConfirmFragment.java

@@ -37,6 +37,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import org.jetbrains.annotations.NotNull;
 
 import java.io.IOException;
+import java.util.Objects;
 
 import okhttp3.Call;
 import okhttp3.Callback;
@@ -65,7 +66,8 @@ public class SendInfoConfirmFragment extends Fragment {
     public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
         long end = System.currentTimeMillis();
         Log.i(TAG, TAG + "页面渲染速度为" + (end - start) + "ms。");
-
+        // 是否为快递员登录
+        boolean isCourierLogin = true;
         try {
             MainActivity activity = (MainActivity) getActivity();
             timer = TimeOutUtils.timeout(activity, SendInfoConfirmFragment.this, binding.timeout, 150);
@@ -79,7 +81,16 @@ public class SendInfoConfirmFragment extends Fragment {
         MainActivity activity = null;
         try {
             activity = (MainActivity) getActivity();
-            arguments = activity.getBundleMap().get(InputInfoKeyBoardFragment.class.getName());
+            Bundle mainBundle = activity.getBundleMap().get(MainFragment.class.getName());
+            String pageType = mainBundle.getString("pageType");
+            // 用户寄送跳转不需要进行登录
+            if ("expressDelivery".equals(pageType)){
+                arguments = activity.getBundleMap().get(ExpressDeliveryFragment.class.getName());
+                isCourierLogin =false;
+            }else if ("collectMaterials".equals(pageType)){
+                // 快递员跳转需要进行登录
+                arguments = activity.getBundleMap().get(InputInfoKeyBoardFragment.class.getName());
+            }
         } catch (RuntimeException e) {
             Log.e(TAG, "onResponse: SendInfoConfirmFragment页面获取InputInfoKeyBoardFragment传值错误! ", e);
             LoggingUtils.sendErrorLog("业务异常: SendInfoConfirmFragment页面获取InputInfoKeyBoardFragment传值错误! ", e);
@@ -110,6 +121,7 @@ public class SendInfoConfirmFragment extends Fragment {
 
         // 投递完成确认
         String finalOrderSn = orderSn;
+        boolean finalIsCourierLogin = isCourierLogin;
         binding.alreadySend.setOnClickListener(view1 -> {
             if (ButtonUtils.isFastClick()) {
                 return;
@@ -121,10 +133,7 @@ public class SendInfoConfirmFragment extends Fragment {
             confirmOrderVo.setClientId(clientId);
             confirmOrderVo.setOrderSn(finalOrderSn);
             confirmOrderVo.setDecision(DecisionConstant.CONFIRM_00);
-
-
-
-            ICSPClient.confirmOrder(LocalStorage.getInstance().getSession().getToken(), confirmOrderVo, new Callback() {
+            Callback callback = new Callback() {
                 @Override
                 public void onFailure(@NotNull Call call, @NotNull IOException e) {
                     // TODO 确认失败
@@ -151,7 +160,11 @@ public class SendInfoConfirmFragment extends Fragment {
                                     if (null != timer) {
                                         timer.cancel();
                                     }
-                                    NavUtils.navigate(SendInfoConfirmFragment.this, R.id.action_sendInfoConfirmFragment_to_sendSuccessFragment);
+                                    if (finalIsCourierLogin){
+                                        NavUtils.navigate(SendInfoConfirmFragment.this, R.id.action_sendInfoConfirmFragment_to_sendSuccessFragment);
+                                    }else {
+                                        NavUtils.navigate(SendInfoConfirmFragment.this, R.id.action_sendInfoConfirmFragment_to_mainFragment);
+                                    }
                                 } else {
                                     // TODO 确认投递失败逻辑处理
                                     ToastUtils.make(getContext(), responseData.getMsg());
@@ -169,7 +182,13 @@ public class SendInfoConfirmFragment extends Fragment {
                         }
                     });
                 }
-            });
+            };
+
+            if (finalIsCourierLogin){
+                ICSPClient.confirmOrder(LocalStorage.getInstance().getSession().getToken(), confirmOrderVo, callback);
+            }else {
+                ICSPClient.confirmOrder( confirmOrderVo, callback);
+            }
             // 投递完成后已经是另外一单, 可以继续异常处理
             LocalStorage.getInstance().getSession().setException(true);
         });

+ 25 - 2
app/src/main/java/com/emato/ich/fragment/SendKeyBoardFragment.java

@@ -226,13 +226,19 @@ public class SendKeyBoardFragment extends Fragment {
                 return;
             }
             // 登录逻辑  editTextTextPersonName4 手机 editTextTextPersonName5 密码
-            String sendPhone = !StringUtils.isNullOrEmpty(finalLoginPhone) ? finalLoginPhone : binding.editTextTextPersonName4.getText().toString();
+            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) {
@@ -254,20 +260,37 @@ public class SendKeyBoardFragment extends Fragment {
 
                                     if (responseData.getCode().equals(ICSPConstant.OK)) {
                                         LocalStorage.Session session = new LocalStorage.Session();
-                                        session.setPhone(sendPhone);
+                                        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);
                                             NavUtils.navigate(SendKeyBoardFragment.this, R.id.action_sendFragment_to_sendMainFragment);
+//                                            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{
                                             NavUtils.navigate(SendKeyBoardFragment.this, R.id.action_sendFragment_to_collectMaterialsFragment);
                                         }

BIN
app/src/main/res/drawable/courier_register.png


BIN
app/src/main/res/drawable/send_order_qrcode.jpg


+ 1 - 1
app/src/main/res/layout/fragment_express_delivery.xml

@@ -31,7 +31,7 @@
         android:layout_height="60dp"
         android:layout_x="232dp"
         android:layout_y="287dp"
-        android:background="@drawable/e_mp_qrcode_8x8_backup"
+        android:background="@drawable/send_order_qrcode"
         />
 
     <include

+ 1 - 1
app/src/main/res/layout/fragment_send_key_board.xml

@@ -26,7 +26,7 @@
         android:layout_height="60dp"
         android:layout_x="276dp"
         android:layout_y="286dp"
-        android:background="@drawable/e_mp_qrcode_8x8_backup" />
+        android:background="@drawable/courier_register" />
 
     <TextView
         android:id="@+id/timeout"

+ 22 - 0
app/src/main/res/navigation/nav_graph.xml

@@ -41,6 +41,11 @@
         <action
             android:id="@+id/action_sendFragment_to_sendMainFragment"
             app:destination="@id/SendMainFragment" />
+
+<!--        <action-->
+<!--            android:id="@+id/action_sendFragment_to_paymentFragment"-->
+<!--            app:destination="@id/PaymentFragment" />-->
+
         <action
             android:id="@+id/action_sendFragment_to_collectMaterialsFragment"
             app:destination="@id/CollectMaterialsFragment" />
@@ -83,6 +88,10 @@
         <action
             android:id="@+id/action_expressDeliveryFragment_to_mainFragment"
             app:destination="@id/MainFragment" />
+
+        <action
+            android:id="@+id/action_expressDeliveryFragment_to_sendInfoConfirmFragment"
+            app:destination="@id/SendInfoConfirmFragment"/>
     </fragment>
 
 
@@ -175,6 +184,14 @@
         <action
             android:id="@+id/action_paymentFragment_to_mainFragment"
             app:destination="@id/MainFragment"/>
+
+        <action
+            android:id="@+id/action_paymentFragment_to_sendMainFragment"
+            app:destination="@id/SendMainFragment"/>
+
+        <action
+            android:id="@+id/action_paymentFragment_to_InputInfoKeyBoardFragment"
+            app:destination="@id/InputInfoKeyBoardFragment"/>
     </fragment>
     <!--  选择投递还是异常处理  -->
     <fragment
@@ -207,6 +224,11 @@
         <action
             android:id="@+id/action_chooseCabinetFragment_to_InputInfoKeyBoardFragment"
             app:destination="@id/InputInfoKeyBoardFragment"/>
+
+        <action
+            android:id="@+id/action_chooseCabinetFragment_to_paymentFragment"
+            app:destination="@id/PaymentFragment"/>
+
         <action
             android:id="@+id/action_chooseCabinetFragment_to_sendInfoConfirmFragment"
             app:destination="@id/SendInfoConfirmFragment"/>