Bläddra i källkod

未成年记录-接口未完成

Shangyp 8 månader sedan
förälder
incheckning
903032ef0a

+ 120 - 80
app/src/main/java/com/telpo/facenormal/activity/MainActivity.java

@@ -709,6 +709,7 @@ import static com.telpo.facenormal.utile.Config.CheckList;
             public void onClick(View v) {
                 Main_ClickFace_gifImage.setVisibility(View.VISIBLE);
                 Main_ClickFace.setVisibility(View.GONE);
+                CardOrCode = "face";
                 invokeScanFace(Config.mSessionId);
                 new Handler().postDelayed(new Runnable() {
                     @Override
@@ -1018,63 +1019,80 @@ import static com.telpo.facenormal.utile.Config.CheckList;
         }
     }
 
+    //身份证及记录上报
+     private boolean AddRecords(SetFederatedPlatformsBean setFederatedPlatformsBean,String type, String name, String Cardid, String Photo, String idCardInfo, String phone){
+         /**
+          * 当未成年模式开启后,CardOrCode.equals("QrCard")时,直接返回错误页,提示
+          * 二维码链路无效
+          * 非CardOrCode.equals("QrCard")时
+          * 根据身份证算出年龄,比较是否在区间内,符合则显示错误结果页,默认显示
+          * 未满十八周岁,禁止进入并且不往后执行
+          * 若未在区间内,则继续执行原有逻辑
+          *
+          * 系统配置上方新增功能配置
+          * 1 是否开启年龄限制
+          * 2 限制区间 默认0-18
+          * 3 禁止进入文本
+          */
+         boolean isExecution = true;
+         boolean start = true;
+         int reasonType = 0;
+         if (Config.getAuthenticationBean().getData().get(0).isOpenAgeLimit()) {//是否开启年龄限制
+             if (CardOrCode.equals("QrCard")) {
+                 isExecution = false;
+                 //ErroeWindowManager(activity,"二维码链路无效");
+                 getFederatedPlatformsBean = new GetFederatedPlatformsBean();
+                 GetFederatedPlatformsBean.DataDTO dataDTO = new GetFederatedPlatformsBean.DataDTO();
+                 dataDTO.setEnd(true + "");
+                 dataDTO.setStatus("LocalError");
+                 dataDTO.setIsOpen(-1);
+                 getFederatedPlatformsBean.setData(dataDTO);
+                 getFederatedPlatformsBean.setMsg("二维码链路无效");
+                 addIsvResultView(activity, getFederatedPlatformsBean.getMsg());
+                 setEventRecords(type, name, Cardid, Photo, idCardInfo, phone,start,reasonType);
+                 return isExecution;
+             }
+             //判断年龄是否在限定区间内
+             int age=Config.getPersonAgeFromIdCard(setFederatedPlatformsBean.getData().get(0).getCardid());
+             if (age == -1) {
+                 isExecution = false;
+                 getFederatedPlatformsBean = new GetFederatedPlatformsBean();
+                 GetFederatedPlatformsBean.DataDTO dataDTO = new GetFederatedPlatformsBean.DataDTO();
+                 dataDTO.setEnd(true + "");
+                 dataDTO.setStatus("LocalError");
+                 dataDTO.setIsOpen(-1);
+                 getFederatedPlatformsBean.setData(dataDTO);
+                 getFederatedPlatformsBean.setMsg("未获取有效身份证号码");
+                 addIsvResultView(activity, getFederatedPlatformsBean.getMsg());
+                 setEventRecords(type, name, Cardid, Photo, idCardInfo, phone,start,reasonType);
+                 return isExecution;
+             }
+             if (age >= Config.getAuthenticationBean().getData().get(0).getLimitSectionStart() &&
+                     age < Config.getAuthenticationBean().getData().get(0).getLimitSectionEnd()) {
+                 isExecution = false;
+                 start = false;
+                 reasonType = 1;
+                 if (Config.IsStringNull(Config.getAuthenticationBean().getData().get(0).getAgeForbidText() + "")) {
+                     Config.getAuthenticationBean().getData().get(0).setAgeForbidText("未满十八周岁,禁止进入");
+                 }
+                 getFederatedPlatformsBean = new GetFederatedPlatformsBean();
+                 GetFederatedPlatformsBean.DataDTO dataDTO = new GetFederatedPlatformsBean.DataDTO();
+                 dataDTO.setEnd(true + "");
+                 dataDTO.setStatus("LocalError");
+                 dataDTO.setIsOpen(-1);
+                 getFederatedPlatformsBean.setData(dataDTO);
+                 getFederatedPlatformsBean.setMsg(Config.getAuthenticationBean().getData().get(0).getAgeForbidText());
+                 addIsvResultView(activity, getFederatedPlatformsBean.getMsg());
+                 setEventRecords(type, name, Cardid, Photo, idCardInfo, phone,start,reasonType);
+                 return isExecution;
+             }
+         }
+         //推送刷脸刷卡记录
+         setEventRecords(type, name, Cardid, Photo, idCardInfo, phone,start,reasonType);
+         return isExecution;
+     }
     private void setMyFederatedPlatforms(SetFederatedPlatformsBean setFederatedPlatformsBean,
                                          String name, String CertNo, String Mobile) {
-        /**
-         * 当未成年模式开启后,CardOrCode.equals("QrCard")时,直接返回错误页,提示
-         * 二维码链路无效
-         * 非CardOrCode.equals("QrCard")时
-         * 根据身份证算出年龄,比较是否在区间内,符合则显示错误结果页,默认显示
-         * 未满十八周岁,禁止进入并且不往后执行
-         * 若未在区间内,则继续执行原有逻辑
-         *
-         * 系统配置上方新增功能配置
-         * 1 是否开启年龄限制
-         * 2 限制区间 默认0-18
-         * 3 禁止进入文本
-         */
-        if (Config.getAuthenticationBean().getData().get(0).isOpenAgeLimit()) {//是否开启年龄限制
-            if (CardOrCode.equals("QrCard")) {
-                //ErroeWindowManager(activity,"二维码链路无效");
-                getFederatedPlatformsBean = new GetFederatedPlatformsBean();
-                GetFederatedPlatformsBean.DataDTO dataDTO = new GetFederatedPlatformsBean.DataDTO();
-                dataDTO.setEnd(true + "");
-                dataDTO.setStatus("LocalError");
-                dataDTO.setIsOpen(-1);
-                getFederatedPlatformsBean.setData(dataDTO);
-                getFederatedPlatformsBean.setMsg("二维码链路无效");
-                addIsvResultView(activity, getFederatedPlatformsBean.getMsg());
-                return;
-            }
-            //判断年龄是否在限定区间内
-            int age=Config.getPersonAgeFromIdCard(setFederatedPlatformsBean.getData().get(0).getCardid());
-            if (age == -1) {
-                getFederatedPlatformsBean = new GetFederatedPlatformsBean();
-                GetFederatedPlatformsBean.DataDTO dataDTO = new GetFederatedPlatformsBean.DataDTO();
-                dataDTO.setEnd(true + "");
-                dataDTO.setStatus("LocalError");
-                dataDTO.setIsOpen(-1);
-                getFederatedPlatformsBean.setData(dataDTO);
-                getFederatedPlatformsBean.setMsg("未获取有效身份证号码");
-                addIsvResultView(activity, getFederatedPlatformsBean.getMsg());
-                return;
-            }
-            if (age >= Config.getAuthenticationBean().getData().get(0).getLimitSectionStart() &&
-                    age < Config.getAuthenticationBean().getData().get(0).getLimitSectionEnd()) {
-                if (Config.IsStringNull(Config.getAuthenticationBean().getData().get(0).getAgeForbidText() + "")) {
-                    Config.getAuthenticationBean().getData().get(0).setAgeForbidText("未满十八周岁,禁止进入");
-                }
-                getFederatedPlatformsBean = new GetFederatedPlatformsBean();
-                GetFederatedPlatformsBean.DataDTO dataDTO = new GetFederatedPlatformsBean.DataDTO();
-                dataDTO.setEnd(true + "");
-                dataDTO.setStatus("LocalError");
-                dataDTO.setIsOpen(-1);
-                getFederatedPlatformsBean.setData(dataDTO);
-                getFederatedPlatformsBean.setMsg(Config.getAuthenticationBean().getData().get(0).getAgeForbidText());
-                addIsvResultView(activity, getFederatedPlatformsBean.getMsg());
-                return;
-            }
-        }
         if (Config.getAuthenticationBean().getData().get(0).isUseLinkage()) {//联动平台开启
             if (!Config.IsStringNull(Config.getAuthenticationBean().getData().get(0).getLinkageAds())) {
                 TimeoutString = "联动平台请求超时";
@@ -1142,7 +1160,6 @@ import static com.telpo.facenormal.utile.Config.CheckList;
         } else if (type.equals("QrCard")) {//刷码
             dataDTO.setVerifytype(3);
         }
-
         dataDTO.setOuttype(0);//0 通⽤ 1进⻔ 2出⻔
         dataDTO.setRightno(0);//身份类型
         dataDTO.setExtend4("1,5");
@@ -1192,17 +1209,20 @@ import static com.telpo.facenormal.utile.Config.CheckList;
         Type = "FederatedPlatforms";
         getFederatedPlatformsBean = new Gson().fromJson(o, GetFederatedPlatformsBean.class);
         if (getFederatedPlatformsBean.getCode() != 200) {
-            if (getFederatedPlatformsBean.getMsg().isEmpty()) {
-                getFederatedPlatformsBean.setMsg("联动平台请求出错");
+            String msg = "联动平台请求出错";
+            if (!Config.IsStringNull(getFederatedPlatformsBean.getMsg())) {
+                msg = getFederatedPlatformsBean.getMsg();
+            } else if (!Config.IsStringNull(getFederatedPlatformsBean.getErrmsg())) {
+                msg = getFederatedPlatformsBean.getErrmsg();
             }
             //     ErroeWindowManager(activity, getFederatedPlatformsBean.getMsg());
             GetFederatedPlatformsBean.DataDTO dataDTO = new GetFederatedPlatformsBean.DataDTO();
             dataDTO.setEnd(true + "");
             dataDTO.setStatus("LocalError");
-            getFederatedPlatformsBean.setMsg(getFederatedPlatformsBean.getMsg());
+            getFederatedPlatformsBean.setMsg(msg);
             dataDTO.setIsOpen(-1);
             getFederatedPlatformsBean.setData(dataDTO);
-            addIsvResultView(activity, getFederatedPlatformsBean.getMsg());
+            addIsvResultView(activity, msg);
         } else {
             optime = getFederatedPlatformsBean.getData().getOpenTimes();
             if (Config.IsStringNull(getFederatedPlatformsBean.getData().isEnd() + "")) {
@@ -1353,9 +1373,12 @@ import static com.telpo.facenormal.utile.Config.CheckList;
                                     Config.SN, 1, 3, Config.QrData,
                                     "", "","");
                             // data.replace("\\r","");
-                            invokeQrCode(Config.mSessionId, data);//刷码服务
+                            CardOrCode = "QrCard";
                             //推送刷脸刷卡记录
-                            setEventRecords("QrCard", "", "", "", "", "");
+                            boolean isExecution = AddRecords(Config.getSetFederatedPlatformsBean(),"QrCard", "", "", "", "", "");
+                            if (isExecution){
+                                invokeQrCode(Config.mSessionId, data);//刷码服务
+                            }
                         }
                     }
                     break;
@@ -1529,10 +1552,20 @@ import static com.telpo.facenormal.utile.Config.CheckList;
                                     TimeoutString = "商户平台请求超时";
                                     TimeoutHandler.postDelayed(TimeoutBeatRunnable, Timeout * 1000);
                                     JSONObject jsonObject = JSONObject.parseObject(s1);
+                                    String avatarBase64 = "";
+                                    try {
+                                        if (jsonObject.containsKey("avatarBase64")) {
+                                            //端上透出的⼈脸图,可⽤于展示。
+                                            avatarBase64 = jsonObject.getString("avatarBase64");
+                                        }
+                                    } catch (Exception e) {
+                                        e.printStackTrace();
+                                    }
                                     Map jsonToMap = JSONObject.parseObject(jsonObject.toJSONString());
                                     jsonToMap.put("sn", Config.SN);
                                     final String[] value = {""};
                                     AppLogUtils.i(true, "BPaaSApi.startBpaasService()_刷脸map转换前数据  ", new Gson().toJson(jsonToMap));
+                                    String finalAvatarBase6 = avatarBase64;
                                     pAuthentication.PThirdPartyPlatforms(jsonToMap, new MyPresenter.MyPCallBreak() {
                                         @Override
                                         public void sressco(Object o) {
@@ -1560,25 +1593,30 @@ import static com.telpo.facenormal.utile.Config.CheckList;
                                                 if (!Config.IsStringNull(alipayUserInfoBean.getData().getMobile())){
                                                     Mobile=alipayUserInfoBean.getData().getMobile()+"";
                                                 }
+                                                if (!Config.IsStringNull(finalAvatarBase6)){
+                                                    PhotoBase64 = finalAvatarBase6;
+                                                }
                                                 setOpenReaderSignal(CertNo,UserName,PhotoBase64,Mobile);
                                                 return;
                                             }
                                             if (alipayUserInfoBean.getErrcode().equals("0")) {
+                                                if (!Config.IsStringNull(finalAvatarBase6)){
+                                                    alipayUserInfoBean.getData().setPhotoBase64(finalAvatarBase6);
+                                                }
                                                 Config.setFederatedPlatformsBeans(
                                                         Config.SN, 1, 2, alipayUserInfoBean.getData().getCertNo(),
                                                         alipayUserInfoBean.getData().getUserName(), alipayUserInfoBean.getData().getMobile(),
                                                         alipayUserInfoBean.getData().getPhotoBase64());
-
-                                                //推送刷脸刷卡记录
-                                                setEventRecords("face", alipayUserInfoBean.getData().getUserName(),
+                                                boolean isExecution = AddRecords(Config.getSetFederatedPlatformsBean(),"face", alipayUserInfoBean.getData().getUserName(),
                                                         alipayUserInfoBean.getData().getCertNo(),
                                                         alipayUserInfoBean.getData().getPhotoBase64(), "",
                                                         alipayUserInfoBean.getData().getMobile());
-                                                //联动平台请求
-                                                setMyFederatedPlatforms(Config.getSetFederatedPlatformsBean(),
-                                                        Config.getSetFederatedPlatformsBean().getData().get(0).getName(),
-                                                        Config.getSetFederatedPlatformsBean().getData().get(0).getCardid(),
-                                                        Config.getSetFederatedPlatformsBean().getData().get(0).getPhone());
+                                                if (isExecution){
+                                                    //联动平台请求
+                                                    setMyFederatedPlatforms(Config.getSetFederatedPlatformsBean(),
+                                                            Config.getSetFederatedPlatformsBean().getData().get(0).getName(),
+                                                            Config.getSetFederatedPlatformsBean().getData().get(0).getCardid(),
+                                                            Config.getSetFederatedPlatformsBean().getData().get(0).getPhone());                                                }
                                             } else {
                                                 if (alipayUserInfoBean.getErrmsg().isEmpty()) {
                                                     alipayUserInfoBean.setErrmsg("商户平台请求失败");
@@ -1742,7 +1780,6 @@ import static com.telpo.facenormal.utile.Config.CheckList;
 
     // 调用刷脸服务
     public void invokeScanFace(String mSessionId) {
-        CardOrCode = "face";
         if (Config.taskStatus.equals("doing") || Config.taskStatus.equals("wait")) {
             Config.setFaceScenicUtile(Config.getAuthenticationBean().getData().get(0).getLightMode(),
                     faceScenicUtile, true,activity);
@@ -1754,7 +1791,6 @@ import static com.telpo.facenormal.utile.Config.CheckList;
 
     // 调用刷证服务
     public void invokeCard(String mSessionId, String no, String name) {
-        CardOrCode = "Card";
         if (Config.taskStatus.equals("wait")) {
             ThreadLocalWindowManager();
             Config.taskStatus = "doing";
@@ -1770,7 +1806,6 @@ import static com.telpo.facenormal.utile.Config.CheckList;
 
     // 调用刷码服务
     public void invokeQrCode(String mSessionId, String data) {
-        CardOrCode = "QrCard";
         if (Config.taskStatus.equals("wait")) {
             ThreadLocalWindowManager();
             Config.taskStatus = "doing";
@@ -1786,7 +1821,6 @@ import static com.telpo.facenormal.utile.Config.CheckList;
 
     //调用 1: 1人证服务
     public void invokePersonCard(String name, String no, String photo, String mSessionId) {
-        CardOrCode = "personCard";
         if (Config.taskStatus.equals("wait")) {
             Config.taskStatus = "doing";
             Config.setFaceScenicUtile(Config.getAuthenticationBean().getData().get(0).getLightMode(),
@@ -3742,17 +3776,20 @@ import static com.telpo.facenormal.utile.Config.CheckList;
     //身份证阅读器结果得到后执行
     public void setIDCard(String name, String Cardid, String bmpPhotos, String identityMsg) {
         String type = "";
+        //推送刷脸刷卡记录
+        boolean isExecution = AddRecords(Config.getSetFederatedPlatformsBean(),type, name, Cardid, bmpPhotos, identityMsg, "");
+        if (!isExecution){
+            return;
+        }
         if (Config.getAuthenticationBean().getData().get(0).isUsePersonCard()) {
-            type = "personCard";
+            CardOrCode = "personCard";
             AppLogUtils.i(true, "setIDCard 身份证数据返回 ","调用 PersonCard ");
             invokePersonCard(name, Cardid, bmpPhotos, Config.mSessionId);
         } else {
-            type = "Card";
+            CardOrCode = "Card";
             AppLogUtils.i(true, "setIDCard 身份证数据返回 ","调用Card  ");
             invokeCard(Config.mSessionId, Cardid, name);
         }
-        //推送刷脸刷卡记录
-        setEventRecords(type, name, Cardid, bmpPhotos, identityMsg, "");
     }
 
     SerialControl ComA;//4个串口
@@ -3823,9 +3860,12 @@ import static com.telpo.facenormal.utile.Config.CheckList;
                         Config.SN, 1, 3, Config.QrData,
                         "", "","");
                 //    data.replace("/r","");
-                invokeQrCode(Config.mSessionId, Config.QrData);//刷码服务
                 //推送刷脸刷卡记录
-                setEventRecords("QrCard", "", "", "", "", "");
+                boolean isExecution = AddRecords(Config.getSetFederatedPlatformsBean(),"QrCard", "", "", "", "", "");
+                if (!isExecution){
+                    return;
+                }
+                invokeQrCode(Config.mSessionId, Config.QrData);//刷码服务
             }
             data = "";
         }

+ 20 - 0
app/src/main/java/com/telpo/facenormal/bean/GetFederatedPlatformsBean.java

@@ -13,9 +13,29 @@ public class GetFederatedPlatformsBean {
     private int code;
     @SerializedName("msg")
     private String msg;
+    @SerializedName("errcode")
+    private String errcode;
+    @SerializedName("errmsg")
+    private String errmsg;
     @SerializedName("data")
     private DataDTO data;
 
+    public String getErrcode() {
+        return errcode;
+    }
+
+    public void setErrcode(String errcode) {
+        this.errcode = errcode;
+    }
+
+    public String getErrmsg() {
+        return errmsg;
+    }
+
+    public void setErrmsg(String errmsg) {
+        this.errmsg = errmsg;
+    }
+
     public int getCode() {
         return code;
     }

+ 0 - 14
app/src/main/java/com/telpo/facenormal/bean/RecordsRetentionBean.java

@@ -1,14 +0,0 @@
-package com.telpo.facenormal.bean;
-
-public class RecordsRetentionBean {
-    private String type;
-    private String name;
-    private String Cardid;
-    private String Photo;
-    private String idCardInfo;
-    private String phone;
-    private boolean Status;
-    private int ReasonType;
-
-
-}