Search in sources :

Example 11 with IdentityCard

use of com.itrus.portal.db.IdentityCard in project portal by ixinportal.

the class BaiWangTask method submitOrder.

// 1.订单资料推送
@Scheduled(cron = "0 0/7 * * * ?")
public void submitOrder() {
    /**
     *		 <REQUEST>
     *<HEAD>
     *<client_id>企业的 client_id</client_id>
     *<access_token>二.1 接口获取到</access_token>
     *<openID>二.2 接口获取到</openID>
     *</HEAD>
     *<BODY>
     *<SQM>代办 CA 授权码</SQM>
     *<TAXPAYER_NAME>企业名称</TAXPAYER_NAME>
     *<SHORT_NAME>企业简称</SHORT_NAME>
     *<IS_SZHY>企业证件类型</IS_SZHY>
     *<TAX_REGISTER_NO>企业税号</TAX_REGISTER_NO>
     *<ENT_PROVINCE>省份</ENT_PROVINCE>
     *<ENT_CITY>城市</ENT_CITY>
     *<LEGAL_PERSON>企业法人</LEGAL_PERSON>
     *<ADDRESS>企业联系地址</ADDRESS>
     *<ENT_EMAIL>企业邮箱</ENT_EMAIL>
     *<A_NAME>企业联系人姓名</A_NAME>
     *<A_MOBILE>企业联系电话</A_MOBILE>
     *<A_ID_NO>企业联系人身份证号码</A_ID_NO>
     *<A_EINVOICE_DEL>CA 申请表</A_EINVOICE_DEL>
     *<A_BIZ_LIC>三证合一/营业执照</A_BIZ_LIC>
     *<A_ID_FRONT>企业联系人身份证(正面)</A_ID_FRONT>
     *<A_ID_BACK>企业联系人身份证(反面)</A_ID_BACK>
     *<TAXPAYER_ID>申请 CA 企业对应唯一编号/当 type=1 时必传</TAXPAYER_ID>
     *</BODY>
     *</REQUEST>
     *"<REQUEST><HEAD>"
     */
    synchronized (BaiWangTaskLock) {
        // start------------处理双机互斥----------
        if (null == taskFlag) {
            taskFlag = systemConfigService.isTimedTaskHost();
        }
        if (taskFlag.equals(false)) {
            return;
        }
        // end------------处理双机互斥----------
        if (!isConnection() || !isBaiWangDanJiConnection()) {
            initBaiWang();
        }
        List<ExtraProduct> products = new ArrayList<>();
        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
        TransactionStatus status = null;
        try {
            // 1.先判断有没有该接口类型的产品,没有则返回
            products = extraProductService.getExtraProductBySIN(ComNames.SERVICE_INTERFACE_NAME_BWFPTPT);
            if (null == products || products.isEmpty()) {
                return;
            }
            for (ExtraProduct product : products) {
                // 筛选是该产品,并且订单状态是3:已支付,待服务商审核,5:服务商审核拒绝 :这两种状态的订单
                Map<String, Object> paramMap = new HashMap<String, Object>();
                paramMap.put("productId", product.getId());
                paramMap.put("issubmit", 1);
                paramMap.put("desc", 1);
                // 2.查找是该产品的订单,并且订单状态是已支付,待服务商审核的订单.然后遍历订单信息
                List<Map<String, Object>> Extrabills = sqlSession.selectList("com.itrus.portal.db.ExtraBillMapper.selectByCondition_BAIWANG", paramMap);
                if (null == Extrabills || Extrabills.isEmpty()) {
                    continue;
                }
                Integer count = 0;
                Integer count_danji = 0;
                Map<String, String> resultMap = new HashMap<>();
                for (Map<String, Object> bill : Extrabills) {
                    Long id = (Long) bill.get("id");
                    Boolean is_sendfpt = (Boolean) bill.get("is_sendfpt");
                    Boolean is_passfpt = (Boolean) bill.get("is_passfpt");
                    Boolean is_senddj = (Boolean) bill.get("is_senddj");
                    Boolean is_passdj = (Boolean) bill.get("is_passdj");
                    Long userinfoId = (Long) bill.get("unique_id");
                    // 企业信息
                    Enterprise enterprise = enterpriseService.getEnterpriseById((Long) bill.get("enterprise"));
                    // 其他附加信息
                    // 营业执照
                    BusinessLicense businessLicense = businessService.getBusinessByExtraBillId(id, null);
                    // 税务登记
                    TaxRegisterCert taxRegisterCert = taxCertService.getTaxRegisterCertByExtraBillId(id, null);
                    // 组织机构代码
                    // OrgCode orgCode = orgCodeService.getOrgCodeByExtraBillId(id, null);
                    // 代理人
                    // Agent agent = agentService.getAgentByExtraBillId(id, null);
                    // 用户
                    UserInfo userInfo = userInfoService.getUserInfoById(userinfoId);
                    // 开户行信息
                    OpenBankInfo openBankInfo = openBankInfoService.getOpenBankInfoByExtraBillId(id, null);
                    // 法人信息
                    IdentityCard identityCard = identityCardService.getIdentityCardByExtraBillId(id, null);
                    Integer type = 0;
                    Boolean isRefuse = (Boolean) bill.get("is_refuse");
                    if (null != isRefuse && isRefuse.equals(true)) {
                        type = 1;
                    }
                    // 0:税号 1:信用代码号
                    Integer credentialsType = null;
                    if (null != businessLicense && businessLicense.getBusinessType().equals(1)) {
                        credentialsType = 1;
                    } else if (null != taxRegisterCert) {
                        credentialsType = 0;
                    }
                    String TAX_REGISTER_NO = credentialsType == 1 ? businessLicense.getLicenseNo() : taxRegisterCert.getCertNo();
                    // 省份,当省份是几个直辖的或者特区的时候,省和市是一样的
                    // 北京市110000,天津市120000,上海市310000,重庆市500000,
                    // 香港,澳门,台湾先不做处理
                    String province = enterprise.getProvince();
                    boolean iscity = false;
                    if (province.equals("110000") || province.equals("120000") || province.equals("310000") || province.equals("500000")) {
                        iscity = true;
                    }
                    province = sysRegionService.getProvince(province);
                    // 城市
                    String city = "";
                    if (iscity) {
                        city = province;
                    } else {
                        city = sysRegionService.getCity(enterprise.getCity());
                    }
                    String param2 = "";
                    // 当没发送过到百旺发票通的时候,则进行发送
                    if (null == is_sendfpt || is_sendfpt.equals(false)) {
                        File file = new File(systemConfigService.getTrustDir().getPath() + File.separator + enterprise.getEnterpriseSn());
                        if (!file.exists()) {
                            file.mkdir();
                        }
                        File imgFile = new File(file, businessLicense.getImgFile());
                        FileInputStream fis = null;
                        fis = new FileInputStream(imgFile);
                        // 三证合一/营业执照
                        String A_BIZ_LIC = ImageToBase64Utils.GetFileBase64(fis);
                        // CompressImageUtils.getThumbPicture(A_BIZ_LIC, width, height);
                        if (A_BIZ_LIC.length() > BAI_WANG_MAX_IMG) {
                            A_BIZ_LIC = compressImage(A_BIZ_LIC);
                        }
                        fis.close();
                        // +"<A_ID_FRONT>"+"企业联系人身份证(正面)"+"</A_ID_FRONT>"
                        imgFile = new File(file, identityCard.getFrontImg());
                        fis = new FileInputStream(imgFile);
                        String A_ID_FRONT = ImageToBase64Utils.GetFileBase64(fis);
                        if (A_ID_FRONT.length() > BAI_WANG_MAX_IMG) {
                            A_ID_FRONT = compressImage(A_ID_FRONT);
                        }
                        fis.close();
                        // 若法人是合并上传的,则传递两张一样的照片过去
                        String A_ID_BACK = "";
                        if (StringUtils.isBlank(identityCard.getBackImg())) {
                            A_ID_BACK = A_ID_FRONT;
                        } else {
                            // +"<A_ID_BACK>"+"企业联系人身份证(反面)"+"</A_ID_BACK>"
                            imgFile = new File(file, identityCard.getBackImg());
                            fis = new FileInputStream(imgFile);
                            A_ID_BACK = ImageToBase64Utils.GetFileBase64(fis);
                            if (A_ID_BACK.length() > BAI_WANG_MAX_IMG) {
                                A_ID_BACK = compressImage(A_ID_BACK);
                            }
                            fis.close();
                        }
                        // +"<TAXPAYER_ID>"+"申请 CA 企业对应唯一编号/当 type=1 时必传"+"</TAXPAYER_ID>"
                        String TAXPAYER_ID = "";
                        if (type == 1) {
                            TAXPAYER_ID = bill.get("taxpayer_id").toString();
                        }
                        // 2.根据产品信息,去筛选企业信息.
                        // HTTPS 请求方式 POST 请求
                        // 1:type 0:代表 CA 新申请, 1: 新申请被驳回, 而再次推送修改过后的资料操作
                        // 服务商是否曾经拒绝过该订单,如果拒绝过.则为true;再次提交给服务商的时候,先判断这个值,如果为true,则进行特殊处理,发送之后,修改该值为false
                        // field boolean --fieldName isRefuse
                        // https://ip:port/Entoauth/thirdInvoiceService?sign=caApply&type=&xml=
                        param2 = "<REQUEST><HEAD>" + "<client_id>" + client_id + "</client_id>" + "<access_token>" + access_token + "</access_token>" + "<openID>" + openID + "</openID>" + "</HEAD>" + "<BODY>" + "<SQM>" + SQM + "</SQM>" + "<TAXPAYER_NAME>" + enterprise.getEnterpriseName() + "</TAXPAYER_NAME>" + "<SHORT_NAME>" + enterprise.getShortName() + "</SHORT_NAME>" + // 0:税号 1:信用代码号
                        "<IS_SZHY>" + credentialsType + "</IS_SZHY>" + // 企业税号或者企业三证合一之后的社会信用代码
                        "<TAX_REGISTER_NO>" + TAX_REGISTER_NO + "</TAX_REGISTER_NO>" + "<ENT_PROVINCE>" + province + "</ENT_PROVINCE>" + "<ENT_CITY>" + city + "</ENT_CITY>" + "<LEGAL_PERSON>" + identityCard.getName() + "</LEGAL_PERSON>" + "<ADDRESS>" + businessLicense.getBusinessPlace() + "</ADDRESS>" + "<ENT_EMAIL>" + bill.get("email").toString() + "</ENT_EMAIL>" + "<A_NAME>" + userInfo.getRealName() + "</A_NAME>" + "<A_MOBILE>" + bill.get("m_phone").toString() + "</A_MOBILE>" + "<A_ID_NO>" + identityCard.getIdCode() + "</A_ID_NO>" + "<A_EINVOICE_DEL></A_EINVOICE_DEL>" + "<A_BIZ_LIC>" + A_BIZ_LIC + "</A_BIZ_LIC>" + "<A_ID_FRONT>" + A_ID_FRONT + "</A_ID_FRONT>" + "<A_ID_BACK>" + A_ID_BACK + "</A_ID_BACK>" + "<TAXPAYER_ID>" + TAXPAYER_ID + "</TAXPAYER_ID>" + "</BODY>" + "</REQUEST>";
                        String param = URLEncoder.encode(new String(Base64.encode(param2.getBytes())), "UTF-8");
                        LinkedMultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();
                        // https://ip:port/Entoauth/thirdInvoiceService?sign=caApply&type=&xml=
                        // String urlAccessToken = baseUrl + "thirdInvoiceService?sign=caApply"
                        // + "&type=" + type + "&xml=" + param;
                        String urlAccessToken = baseUrl + "thirdInvoiceService";
                        URI uri;
                        uri = new URI(urlAccessToken);
                        map.add("sign", "caApply");
                        map.add("type", type);
                        map.add("xml", param);
                        String xml = restTemplate.postForObject(uri, map, String.class);
                        resultMap = parseXml(xml);
                        String recode = resultMap.get("REPLYCODE");
                        if (StringUtils.isNotBlank(recode) && recode.equals("0000")) {
                            ExtraBill extraBill = extraBillService.selectByPrimaryKey(id);
                            extraBill.setIsSendfpt(true);
                            // 两个平台都成功送审之后,订单状态改为服务商审核中
                            if (null != extraBill.getIsSenddj() && extraBill.getIsSenddj().equals(true)) {
                                extraBill.setBillStatus(ComNames.EXTRA_BILL_STATUS_4);
                            }
                            extraBill.setTaxpayerId(resultMap.get("TAXPAYER_ID").toString());
                            if (type == 1) {
                                // 曾经拒绝过的订单,再次推送成功
                                extraBill.setIsRefuse(false);
                            }
                            status = transactionManager.getTransaction(def);
                            extraBillService.updateByPrimaryKeySelective(extraBill);
                            transactionManager.commit(status);
                            count++;
                        } else {
                            log.error("推送订单失败_百旺发票通", "订单号:" + bill.get("bill_id").toString() + "错误码:" + resultMap.get("REPLYCODE") + "错误信息:" + resultMap.get("REPLYMSG") + ", 参数:" + param2);
                            LogUtil.syslog(sqlSession, "推送订单失败_百旺发票通", "订单号:" + bill.get("bill_id").toString() + "错误码:" + resultMap.get("REPLYCODE") + "错误信息:" + resultMap.get("REPLYMSG"));
                        }
                    }
                    // 当没发送到百旺单机的时候,重新发送
                    if (null == is_senddj || is_senddj.equals(false)) {
                        StringBuffer stringBuffer = new StringBuffer();
                        /**
                         *						<?xml version="1.0" encoding="utf-8"?>
                         *						<business comment="注册申请" id="ZCSQ">
                         *						<body>
                         *						    <login_name><![CDATA[itruschina]]></login_name>
                         *						    <passwd><![CDATA[12345678]]></passwd>
                         *						    <skpbh><![CDATA[ceshi2017071311222333]]></skpbh>
                         *						    <nsrsbh><![CDATA[911101088020176222333]]></nsrsbh>
                         *						    <nsrmc><![CDATA[北京天威诚信电子商务服务有限公司测试070333]]></nsrmc>
                         *						    <city><![CDATA[北京市]]></city>
                         *						    <kh_usr_name><![CDATA[张三]]></kh_usr_name>
                         *						    <kh_lxdh><![CDATA[18878996333]]></kh_lxdh>
                         *						    <sfsy><![CDATA[1]]></sfsy>
                         *						    <bz><![CDATA[123]]></bz>
                         *						    <sqr_usr_name><![CDATA[何冠宏]]></sqr_usr_name>
                         *						    <sqr_lxdh><![CDATA[18878991333]]></sqr_lxdh>
                         *						    <sqr_ssgs><![CDATA[北京天威诚信电子商务服务有限公司]]></sqr_ssgs>
                         *						    <sfsf><![CDATA[1]]></sfsf>
                         *						    <sfje><![CDATA[0]]></sfje>
                         *						</body>
                         *						</business>
                         */
                        stringBuffer.append("<?xml version='1.0' encoding='utf-8'?>");
                        stringBuffer.append("<business comment='注册申请' id='ZCSQ'>");
                        stringBuffer.append("<body>");
                        stringBuffer.append("<login_name><![CDATA[" + dan_ji_userName + "]]></login_name>");
                        stringBuffer.append("<passwd><![CDATA[" + dan_ji_passWord + "]]></passwd>");
                        stringBuffer.append("<skpbh><![CDATA[" + openBankInfo.getTaxNumber() + "]]></skpbh>");
                        stringBuffer.append("<nsrsbh><![CDATA[" + enterprise.getNsrsbh() + "]]></nsrsbh>");
                        stringBuffer.append("<nsrmc><![CDATA[" + enterprise.getEnterpriseName() + "]]></nsrmc>");
                        stringBuffer.append("<city><![CDATA[" + city + "]]></city>");
                        stringBuffer.append("<kh_usr_name><![CDATA[" + userInfo.getRealName() + "]]></kh_usr_name>");
                        stringBuffer.append("<kh_lxdh><![CDATA[" + bill.get("m_phone").toString() + "]]></kh_lxdh>");
                        // 试用就是1 ,正式就用0.这个是针对客户端是否试用的
                        stringBuffer.append("<sfsy><![CDATA[0]]></sfsy>");
                        stringBuffer.append("<bz><![CDATA[" + bill.get("bill_id").toString() + "]]></bz>");
                        stringBuffer.append("<sqr_usr_name><![CDATA[" + "王晓雪" + "]]></sqr_usr_name>");
                        stringBuffer.append("<sqr_lxdh><![CDATA[" + "13120460901" + "]]></sqr_lxdh>");
                        stringBuffer.append("<sqr_ssgs><![CDATA[" + "北京天威诚信电子商务服务有限公司" + "]]></sqr_ssgs>");
                        stringBuffer.append("<sfsf><![CDATA[1]]></sfsf>");
                        stringBuffer.append("<sfje><![CDATA[0]]></sfje>");
                        stringBuffer.append("</body>");
                        stringBuffer.append("</business>");
                        try {
                            HttpClient client = new HttpClient();
                            client.getHostConfiguration().setHost(dan_ji_url, dan_ji_port, dan_ji_protocol);
                            HttpMethod method = null;
                            PostMethod post = new PostMethod("/fpfw/api/kpbusiness");
                            NameValuePair bw = new NameValuePair("bw", stringBuffer.toString());
                            NameValuePair[] nameValuePairs = { bw };
                            post.setRequestBody(nameValuePairs);
                            method = post;
                            client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
                            method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
                            client.executeMethod(method);
                            String xml = new String(method.getResponseBodyAsString().getBytes("UTF-8"));
                            resultMap = parseXml(xml);
                            String returncode = resultMap.get("returncode");
                            if (StringUtils.isNotBlank(returncode) && returncode.equals("0")) {
                                ExtraBill extraBill = extraBillService.selectByPrimaryKey(id);
                                extraBill.setIsSenddj(true);
                                // 两个平台都成功送审之后,订单状态改为服务商审核中
                                if (null != extraBill.getIsSendfpt() && extraBill.getIsSendfpt().equals(true)) {
                                    extraBill.setBillStatus(ComNames.EXTRA_BILL_STATUS_4);
                                }
                                status = transactionManager.getTransaction(def);
                                extraBillService.updateByPrimaryKeySelective(extraBill);
                                transactionManager.commit(status);
                                count_danji++;
                            } else {
                                /**
                                 * 现在是<?xml version='1.0' encoding='utf-8'?><business version='1.0'><head></head><body><returncode>3</returncode><returnmsg>xml解析错误</returnmsg></body></business>
                                 */
                                log.error("推送订单失败_百旺单机", "订单号:" + bill.get("bill_id").toString() + "错误码:" + resultMap.get("returncode") + ", 错误信息:" + resultMap.get("returnmsg") + ", 参数:" + stringBuffer.toString());
                                LogUtil.syslog(sqlSession, "推送订单失败_百旺单机", "订单号:" + bill.get("bill_id").toString() + "错误码:" + resultMap.get("returncode") + ", 错误信息:" + resultMap.get("returnmsg"));
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                            log.error("推送订单失败_百旺单机", "订单号:" + bill.get("bill_id").toString() + "错误信息:" + e.getMessage() + ", 参数:" + stringBuffer.toString());
                            LogUtil.syslog(sqlSession, "推送订单失败_百旺单机", "订单号:" + bill.get("bill_id").toString() + "错误信息:" + e.getMessage());
                            continue;
                        }
                    }
                }
                LogUtil.syslog(sqlSession, "推送订单_百旺", "总共:" + Extrabills.size() + "条,发票通成功:" + count + "条, 单机成功:" + count_danji + "条");
            }
        } catch (Exception e) {
            LogUtil.syslog(sqlSession, "推送订单失败_百旺", "错误信息:" + e.getMessage());
            e.printStackTrace();
        } finally {
            if (status != null && !status.isCompleted()) {
                transactionManager.rollback(status);
            }
        }
    }
}
Also used : DefaultTransactionDefinition(org.springframework.transaction.support.DefaultTransactionDefinition) HashMap(java.util.HashMap) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) PostMethod(org.apache.commons.httpclient.methods.PostMethod) ExtraBill(com.itrus.portal.db.ExtraBill) ArrayList(java.util.ArrayList) TransactionStatus(org.springframework.transaction.TransactionStatus) UserInfo(com.itrus.portal.db.UserInfo) URI(java.net.URI) OpenBankInfo(com.itrus.portal.db.OpenBankInfo) IdentityCard(com.itrus.portal.db.IdentityCard) NameValuePair(org.apache.commons.httpclient.NameValuePair) FileInputStream(java.io.FileInputStream) ExtraProduct(com.itrus.portal.db.ExtraProduct) BusinessLicense(com.itrus.portal.db.BusinessLicense) HttpClient(org.apache.commons.httpclient.HttpClient) Enterprise(com.itrus.portal.db.Enterprise) Map(java.util.Map) HashMap(java.util.HashMap) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) File(java.io.File) TaxRegisterCert(com.itrus.portal.db.TaxRegisterCert) HttpMethod(org.apache.commons.httpclient.HttpMethod) Scheduled(org.springframework.scheduling.annotation.Scheduled)

Example 12 with IdentityCard

use of com.itrus.portal.db.IdentityCard in project portal by ixinportal.

the class BaiWangServiceImpl method submitOrder.

/**
 * 1.订单资料推送到第三方平台
 * @param extraBill
 * @return
 */
public boolean submitOrder(ExtraBill extraBill) {
    synchronized (baiWangTask.BaiWangTaskLock) {
        if (!baiWangTask.isConnection() || !baiWangTask.isBaiWangDanJiConnection()) {
            baiWangTask.initBaiWang();
        }
        boolean fpt_flag = false;
        boolean danji_flag = false;
        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
        TransactionStatus status = null;
        try {
            // 筛选是该产品,并且订单状态是3:已支付,待服务商审核,5:服务商审核拒绝 :这两种状态的订单
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("productId", extraBill.getExtraProduct());
            paramMap.put("issubmit", 1);
            paramMap.put("id", extraBill.getId());
            paramMap.put("desc", 1);
            // 2.查找是该产品的订单,并且订单状态是已支付,待服务商审核的订单.然后遍历订单信息
            List<Map<String, Object>> Extrabills = sqlSession.selectList("com.itrus.portal.db.ExtraBillMapper.selectByCondition_BAIWANG", paramMap);
            if (null == Extrabills || Extrabills.isEmpty()) {
                return false;
            }
            Integer count = 0;
            for (Map<String, Object> bill : Extrabills) {
                Long id = (Long) bill.get("id");
                Boolean is_sendfpt = (Boolean) bill.get("is_sendfpt");
                Boolean is_passfpt = (Boolean) bill.get("is_passfpt");
                Boolean is_senddj = (Boolean) bill.get("is_senddj");
                Boolean is_passdj = (Boolean) bill.get("is_passdj");
                Long userinfoId = (Long) bill.get("unique_id");
                // 企业信息
                Enterprise enterprise = enterpriseService.getEnterpriseById((Long) bill.get("enterprise"));
                // 其他附加信息
                // 营业执照
                BusinessLicense businessLicense = businessService.getBusinessByExtraBillId(id, null);
                // 税务登记
                TaxRegisterCert taxRegisterCert = taxCertService.getTaxRegisterCertByExtraBillId(id, null);
                // 组织机构代码
                // OrgCode orgCode = orgCodeService.getOrgCodeByExtraBillId(id, null);
                // 代理人
                // Agent agent = agentService.getAgentByExtraBillId(id, null);
                UserInfo userInfo = userInfoService.getUserInfoById(userinfoId);
                // 开户行信息
                OpenBankInfo openBankInfo = openBankInfoService.getOpenBankInfoByExtraBillId(id, null);
                // 法人信息
                IdentityCard identityCard = identityCardService.getIdentityCardByExtraBillId(id, null);
                Integer type = 0;
                Boolean isRefuse = (Boolean) bill.get("is_refuse");
                if (null != isRefuse && isRefuse.equals(true)) {
                    type = 1;
                }
                // 0:税号 1:信用代码号
                Integer credentialsType = null;
                if (null != businessLicense && businessLicense.getBusinessType().equals(1)) {
                    credentialsType = 1;
                } else if (null != taxRegisterCert) {
                    credentialsType = 0;
                }
                String TAX_REGISTER_NO = credentialsType == 1 ? businessLicense.getLicenseNo() : taxRegisterCert.getCertNo();
                // 省份,当省份是几个直辖的或者特区的时候,省和市是一样的
                // 北京市110000,天津市120000,上海市310000,重庆市500000,
                // 香港,澳门,台湾先不做处理
                String province = enterprise.getProvince();
                boolean iscity = false;
                if (province.equals("110000") || province.equals("120000") || province.equals("310000") || province.equals("500000")) {
                    iscity = true;
                }
                province = sysRegionService.getProvince(province);
                // 城市
                String city = "";
                if (iscity) {
                    city = province;
                } else {
                    city = sysRegionService.getCity(enterprise.getCity());
                }
                String param2 = "";
                try {
                    // 当没发送过到百旺发票通的时候,则进行发送
                    if (null == is_sendfpt || is_sendfpt.equals(false)) {
                        File file = new File(systemConfigService.getTrustDir().getPath() + File.separator + enterprise.getEnterpriseSn());
                        if (!file.exists()) {
                            file.mkdir();
                        }
                        File imgFile = new File(file, businessLicense.getImgFile());
                        FileInputStream fis = null;
                        fis = new FileInputStream(imgFile);
                        // 三证合一/营业执照
                        String A_BIZ_LIC = ImageToBase64Utils.GetFileBase64(fis);
                        if (A_BIZ_LIC.length() > baiWangTask.BAI_WANG_MAX_IMG) {
                            A_BIZ_LIC = baiWangTask.compressImage(A_BIZ_LIC);
                        }
                        fis.close();
                        // +"<A_ID_FRONT>"+"企业联系人身份证(正面)"+"</A_ID_FRONT>"
                        imgFile = new File(file, identityCard.getFrontImg());
                        fis = new FileInputStream(imgFile);
                        String A_ID_FRONT = ImageToBase64Utils.GetFileBase64(fis);
                        if (A_ID_FRONT.length() > baiWangTask.BAI_WANG_MAX_IMG) {
                            A_ID_FRONT = baiWangTask.compressImage(A_ID_FRONT);
                        }
                        fis.close();
                        // 若法人是合并上传的,则传递两张一样的照片过去
                        String A_ID_BACK = "";
                        if (StringUtils.isBlank(identityCard.getBackImg())) {
                            A_ID_BACK = A_ID_FRONT;
                        } else {
                            // +"<A_ID_BACK>"+"企业联系人身份证(反面)"+"</A_ID_BACK>"
                            imgFile = new File(file, identityCard.getBackImg());
                            fis = new FileInputStream(imgFile);
                            A_ID_BACK = ImageToBase64Utils.GetFileBase64(fis);
                            if (A_ID_BACK.length() > baiWangTask.BAI_WANG_MAX_IMG) {
                                A_ID_BACK = baiWangTask.compressImage(A_ID_BACK);
                            }
                            fis.close();
                        }
                        fis.close();
                        // +"<TAXPAYER_ID>"+"申请 CA 企业对应唯一编号/当 type=1 时必传"+"</TAXPAYER_ID>"
                        String TAXPAYER_ID = "";
                        if (type == 1) {
                            TAXPAYER_ID = bill.get("taxpayer_id").toString();
                        }
                        param2 = "<REQUEST><HEAD>" + "<client_id>" + BaiWangTask.client_id + "</client_id>" + "<access_token>" + BaiWangTask.access_token + "</access_token>" + "<openID>" + BaiWangTask.openID + "</openID>" + "</HEAD>" + "<BODY>" + "<SQM>" + BaiWangTask.SQM + "</SQM>" + "<TAXPAYER_NAME>" + enterprise.getEnterpriseName() + "</TAXPAYER_NAME>" + "<SHORT_NAME>" + enterprise.getShortName() + "</SHORT_NAME>" + // 0:税号 1:信用代码号
                        "<IS_SZHY>" + credentialsType + "</IS_SZHY>" + // 企业税号或者企业三证合一之后的社会信用代码
                        "<TAX_REGISTER_NO>" + TAX_REGISTER_NO + "</TAX_REGISTER_NO>" + "<ENT_PROVINCE>" + province + "</ENT_PROVINCE>" + "<ENT_CITY>" + city + "</ENT_CITY>" + "<LEGAL_PERSON>" + identityCard.getName() + "</LEGAL_PERSON>" + "<ADDRESS>" + businessLicense.getBusinessPlace() + "</ADDRESS>" + "<ENT_EMAIL>" + bill.get("email").toString() + "</ENT_EMAIL>" + "<A_NAME>" + userInfo.getRealName() + "</A_NAME>" + "<A_MOBILE>" + bill.get("m_phone").toString() + "</A_MOBILE>" + "<A_ID_NO>" + identityCard.getIdCode() + "</A_ID_NO>" + "<A_EINVOICE_DEL></A_EINVOICE_DEL>" + "<A_BIZ_LIC>" + A_BIZ_LIC + "</A_BIZ_LIC>" + "<A_ID_FRONT>" + A_ID_FRONT + "</A_ID_FRONT>" + "<A_ID_BACK>" + A_ID_BACK + "</A_ID_BACK>" + "<TAXPAYER_ID>" + TAXPAYER_ID + "</TAXPAYER_ID>" + "</BODY>" + "</REQUEST>";
                        String param = URLEncoder.encode(new String(Base64.encode(param2.getBytes())), "UTF-8");
                        LinkedMultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();
                        String urlAccessToken = BaiWangTask.baseUrl + "thirdInvoiceService";
                        URI uri;
                        uri = new URI(urlAccessToken);
                        map.add("sign", "caApply");
                        map.add("type", type);
                        map.add("xml", param);
                        Map<String, String> resultMap = new HashMap<>();
                        String xml = restTemplate.postForObject(uri, map, String.class);
                        resultMap = BaiWangTask.parseXml(xml);
                        String recode = resultMap.get("REPLYCODE");
                        if (StringUtils.isNotBlank(recode) && recode.equals("0000")) {
                            extraBill.setIsSendfpt(true);
                            // 两个平台都成功送审之后,订单状态改为服务商审核中
                            if (null != extraBill.getIsSenddj() && extraBill.getIsSenddj().equals(true)) {
                                extraBill.setBillStatus(ComNames.EXTRA_BILL_STATUS_4);
                            }
                            extraBill.setTaxpayerId(resultMap.get("TAXPAYER_ID").toString());
                            if (type == 1) {
                                // 曾经拒绝过的订单,再次推送成功
                                extraBill.setIsRefuse(false);
                            }
                            status = transactionManager.getTransaction(def);
                            extraBillService.updateByPrimaryKeySelective(extraBill);
                            transactionManager.commit(status);
                            LogUtil.adminlog(sqlSession, "推送订单_百旺发票通", "手动推送,总共:" + Extrabills.size() + "条,成功:" + count + "条");
                            fpt_flag = true;
                        } else {
                            log.error("推送订单失败_百旺发票通", "订单号:" + bill.get("bill_id").toString() + "错误码:" + resultMap.get("REPLYCODE") + "错误信息:" + resultMap.get("REPLYMSG") + ", 参数:" + param2);
                            LogUtil.adminlog(sqlSession, "推送订单失败_百旺发票通", "订单号:" + bill.get("bill_id").toString() + "错误码:" + resultMap.get("REPLYCODE") + "错误信息:" + resultMap.get("REPLYMSG"));
                        }
                    }
                } catch (Exception e) {
                    log.error("推送订单异常_百旺发票通", "订单号:" + bill.get("bill_id").toString() + "异常信息:" + e.getMessage() + ", 参数:" + param2);
                    LogUtil.adminlog(sqlSession, "推送订单异常_百旺发票通", "订单号:" + bill.get("bill_id").toString() + "异常信息:" + e.getMessage());
                }
                // 当没发送到百旺单机的时候,重新发送
                try {
                    if (null == is_senddj || is_senddj.equals(false)) {
                        StringBuffer stringBuffer = new StringBuffer();
                        /**
                         *								<?xml version="1.0" encoding="utf-8"?>
                         *								<business comment="注册申请" id="ZCSQ">
                         *								<body>
                         *								    <login_name><![CDATA[itruschina]]></login_name>
                         *								    <passwd><![CDATA[12345678]]></passwd>
                         *								    <skpbh><![CDATA[ceshi2017071311222333]]></skpbh>
                         *								    <nsrsbh><![CDATA[911101088020176222333]]></nsrsbh>
                         *								    <nsrmc><![CDATA[北京天威诚信电子商务服务有限公司测试070333]]></nsrmc>
                         *								    <city><![CDATA[北京市]]></city>
                         *								    <kh_usr_name><![CDATA[张三]]></kh_usr_name>
                         *								    <kh_lxdh><![CDATA[18878996333]]></kh_lxdh>
                         *								    <sfsy><![CDATA[1]]></sfsy>
                         *								    <bz><![CDATA[123]]></bz>
                         *								    <sqr_usr_name><![CDATA[何冠宏]]></sqr_usr_name>
                         *								    <sqr_lxdh><![CDATA[18878991333]]></sqr_lxdh>
                         *								    <sqr_ssgs><![CDATA[北京天威诚信电子商务服务有限公司]]></sqr_ssgs>
                         *								    <sfsf><![CDATA[1]]></sfsf>
                         *								    <sfje><![CDATA[0]]></sfje>
                         *								</body>
                         *								</business>
                         */
                        stringBuffer.append("<?xml version='1.0' encoding='utf-8'?>");
                        stringBuffer.append("<business comment='注册申请' id='ZCSQ'>");
                        stringBuffer.append("<body>");
                        stringBuffer.append("<login_name><![CDATA[" + baiWangTask.dan_ji_userName + "]]></login_name>");
                        stringBuffer.append("<passwd><![CDATA[" + baiWangTask.dan_ji_passWord + "]]></passwd>");
                        stringBuffer.append("<skpbh><![CDATA[" + openBankInfo.getTaxNumber() + "]]></skpbh>");
                        stringBuffer.append("<nsrsbh><![CDATA[" + enterprise.getNsrsbh() + "]]></nsrsbh>");
                        stringBuffer.append("<nsrmc><![CDATA[" + enterprise.getEnterpriseName() + "]]></nsrmc>");
                        stringBuffer.append("<city><![CDATA[" + city + "]]></city>");
                        stringBuffer.append("<kh_usr_name><![CDATA[" + userInfo.getRealName() + "]]></kh_usr_name>");
                        stringBuffer.append("<kh_lxdh><![CDATA[" + bill.get("m_phone").toString() + "]]></kh_lxdh>");
                        // 试用就是1 ,正式就用0.这个是针对客户端是否试用的
                        stringBuffer.append("<sfsy><![CDATA[0]]></sfsy>");
                        stringBuffer.append("<bz><![CDATA[" + bill.get("bill_id").toString() + "]]></bz>");
                        stringBuffer.append("<sqr_usr_name><![CDATA[" + "王晓雪" + "]]></sqr_usr_name>");
                        stringBuffer.append("<sqr_lxdh><![CDATA[" + "13120460901" + "]]></sqr_lxdh>");
                        stringBuffer.append("<sqr_ssgs><![CDATA[" + "北京天威诚信电子商务服务有限公司" + "]]></sqr_ssgs>");
                        stringBuffer.append("<sfsf><![CDATA[1]]></sfsf>");
                        stringBuffer.append("<sfje><![CDATA[0]]></sfje>");
                        stringBuffer.append("</body>");
                        stringBuffer.append("</business>");
                        HttpClient client = new HttpClient();
                        client.getHostConfiguration().setHost(baiWangTask.dan_ji_url, baiWangTask.dan_ji_port, baiWangTask.dan_ji_protocol);
                        HttpMethod method = null;
                        PostMethod post = new PostMethod("/fpfw/api/kpbusiness");
                        NameValuePair bw = new NameValuePair("bw", stringBuffer.toString());
                        NameValuePair[] nameValuePairs = { bw };
                        post.setRequestBody(nameValuePairs);
                        method = post;
                        client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
                        method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
                        client.executeMethod(method);
                        String xml = new String(method.getResponseBodyAsString().getBytes("UTF-8"));
                        Map<String, String> resultMap = new HashMap<>();
                        resultMap = baiWangTask.parseXml(xml);
                        String returncode = resultMap.get("returncode");
                        if (StringUtils.isNotBlank(returncode) && returncode.equals("0")) {
                            extraBill = extraBillService.selectByPrimaryKey(id);
                            extraBill.setIsSenddj(true);
                            // 两个平台都成功送审之后,订单状态改为服务商审核中
                            if (null != extraBill.getIsSendfpt() && extraBill.getIsSendfpt().equals(true)) {
                                extraBill.setBillStatus(ComNames.EXTRA_BILL_STATUS_4);
                            }
                            status = transactionManager.getTransaction(def);
                            extraBillService.updateByPrimaryKeySelective(extraBill);
                            transactionManager.commit(status);
                            danji_flag = true;
                        } else {
                            /**
                             * 现在是<?xml version='1.0' encoding='utf-8'?><business version='1.0'><head></head><body><returncode>3</returncode><returnmsg>xml解析错误</returnmsg></body></business>
                             */
                            log.error("推送订单失败_百旺单机", "订单号:" + bill.get("bill_id").toString() + ", 错误码:" + resultMap.get("returncode") + ", 错误信息:" + resultMap.get("returnmsg") + ",参数:" + stringBuffer.toString());
                            LogUtil.adminlog(sqlSession, "推送订单失败_百旺单机", "订单号:" + bill.get("bill_id").toString() + ", 错误码:" + resultMap.get("returncode") + ", 错误信息:" + resultMap.get("returnmsg"));
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                    log.error("推送订单失败_百旺单机", "订单号:" + bill.get("bill_id").toString() + "错误信息:" + e.getMessage());
                    LogUtil.adminlog(sqlSession, "推送订单失败_百旺单机", "订单号:" + bill.get("bill_id").toString() + "错误信息:" + e.getMessage());
                    continue;
                }
            }
        } catch (Exception e) {
            LogUtil.syslog(sqlSession, "推送订单失败_百旺", "错误信息:" + e.getMessage());
            e.printStackTrace();
            return false;
        } finally {
            if (status != null && !status.isCompleted()) {
                transactionManager.rollback(status);
            }
        }
        return (danji_flag && fpt_flag);
    }
}
Also used : DefaultTransactionDefinition(org.springframework.transaction.support.DefaultTransactionDefinition) HashMap(java.util.HashMap) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) PostMethod(org.apache.commons.httpclient.methods.PostMethod) TransactionStatus(org.springframework.transaction.TransactionStatus) UserInfo(com.itrus.portal.db.UserInfo) URI(java.net.URI) OpenBankInfo(com.itrus.portal.db.OpenBankInfo) IdentityCard(com.itrus.portal.db.IdentityCard) NameValuePair(org.apache.commons.httpclient.NameValuePair) FileInputStream(java.io.FileInputStream) BusinessLicense(com.itrus.portal.db.BusinessLicense) HttpClient(org.apache.commons.httpclient.HttpClient) Enterprise(com.itrus.portal.db.Enterprise) HashMap(java.util.HashMap) Map(java.util.Map) LinkedMultiValueMap(org.springframework.util.LinkedMultiValueMap) File(java.io.File) TaxRegisterCert(com.itrus.portal.db.TaxRegisterCert) HttpMethod(org.apache.commons.httpclient.HttpMethod)

Example 13 with IdentityCard

use of com.itrus.portal.db.IdentityCard in project portal by ixinportal.

the class IdentityCardServiceImpl method saveIdentityCardExtraBill.

/**
 * 增值订单保存法人信息
 * @param enterpriseId
 * @param enterpriseSn
 * @param billId
 * @param userInfoId
 * @param identityCard
 * @param itemStatus
 * @param old
 * @return
 * @throws Exception
 */
public IdentityCard saveIdentityCardExtraBill(Long enterpriseId, String enterpriseSn, Long billId, Long userInfoId, IdentityCard identityCard, Integer itemStatus, IdentityCard old) throws Exception {
    File imgDir = filePathUtils.getEnterpriseFile(enterpriseSn);
    // 判断法人信息图片是否重新上传了,没有重新上传,则会提交法人信息的id,重新上传,还是按照下面的方法处理
    if (null != identityCard.getId()) {
        IdentityCard newIde = new IdentityCard();
        IdentityCard oldIde = sqlSession.selectOne("com.itrus.portal.db.IdentityCardMapper.selectByPrimaryKey", identityCard.getId());
        newIde.setEnterpriseName(identityCard.getEnterpriseName());
        newIde.setName(identityCard.getName());
        newIde.setCardType(identityCard.getCardType());
        newIde.setIdCode(identityCard.getIdCode());
        newIde.setCreateTime(new Date());
        newIde.setLastModify(new Date());
        // 审核状态:1未审核,2已审核,3已拒绝
        newIde.setItemStatus(oldIde.getItemStatus());
        newIde.setEnterprise(enterpriseId);
        newIde.setExtraBill(billId);
        newIde.setUserInfo(userInfoId);
        // 正面(或者合成)图片
        if (StringUtils.isNotBlank(identityCard.getFrontImg())) {
            File frontImg = filePathUtils.saveImg(imgDir, null, identityCard.getFrontImg(), IMG_DEFAULT_TYPE, IMG_NAME_ID_FRONT);
            if (frontImg != null && frontImg.isFile()) {
                newIde.setFrontImg(frontImg.getName());
                newIde.setFrontImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
            }
        } else {
            newIde.setFrontImg(oldIde.getFrontImg());
            newIde.setFrontImgHash(oldIde.getFrontImgHash());
        }
        if (StringUtils.isNotBlank(identityCard.getBackImg())) {
            File backImg = filePathUtils.saveImg(imgDir, null, identityCard.getBackImg(), IMG_DEFAULT_TYPE, IMG_NAME_ID_BACK);
            if (backImg != null && backImg.isFile()) {
                newIde.setBackImg(backImg.getName());
                newIde.setBackImgHash(HMACSHA1.genSha1HashOfFile(backImg));
            }
        } else {
            newIde.setBackImg(oldIde.getBackImg());
            newIde.setBackImgHash(oldIde.getBackImgHash());
        }
        sqlSession.insert("com.itrus.portal.db.IdentityCardMapper.insert", newIde);
        sqlSession.flushStatements();
        return newIde;
    }
    if (null == identityCard || StringUtils.isBlank(identityCard.getEnterpriseName()) || StringUtils.isBlank(identityCard.getName()) || StringUtils.isBlank(identityCard.getIdCode()) || StringUtils.isBlank(identityCard.getFrontImg())) {
        throw new UserInfoServiceException("请提交完整的法人信息");
    }
    identityCard.setCreateTime(new Date());
    identityCard.setLastModify(new Date());
    // 审核状态:1未审核,2已审核,3已拒绝
    identityCard.setItemStatus(itemStatus);
    identityCard.setEnterprise(enterpriseId);
    identityCard.setExtraBill(billId);
    identityCard.setUserInfo(userInfoId);
    // 正面(或者合成)图片
    if (StringUtils.isNotBlank(identityCard.getFrontImg()) && !identityCard.getFrontImg().equals(ComNames.USE_OLD_IMG)) {
        File frontImg = filePathUtils.saveImg(imgDir, null, identityCard.getFrontImg(), IMG_DEFAULT_TYPE, IMG_NAME_ID_FRONT);
        if (frontImg != null && frontImg.isFile()) {
            identityCard.setFrontImg(frontImg.getName());
            identityCard.setFrontImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
        }
    }
    // 反面图片
    if (StringUtils.isNotBlank(identityCard.getBackImg()) && !identityCard.getBackImg().equals(ComNames.USE_OLD_IMG)) {
        File backImg = filePathUtils.saveImg(imgDir, null, identityCard.getBackImg(), IMG_DEFAULT_TYPE, IMG_NAME_ID_BACK);
        if (backImg != null && backImg.isFile()) {
            identityCard.setBackImg(backImg.getName());
            identityCard.setBackImgHash(HMACSHA1.genSha1HashOfFile(backImg));
        }
    }
    if (old == null) {
        sqlSession.insert("com.itrus.portal.db.IdentityCardMapper.insert", identityCard);
    } else {
        identityCard.setId(old.getId());
        sqlSession.update("com.itrus.portal.db.IdentityCardMapper.updateByPrimaryKeySelective", identityCard);
    }
    sqlSession.flushStatements();
    return identityCard;
}
Also used : File(java.io.File) Date(java.util.Date) UserInfoServiceException(com.itrus.portal.exception.UserInfoServiceException) IdentityCard(com.itrus.portal.db.IdentityCard)

Example 14 with IdentityCard

use of com.itrus.portal.db.IdentityCard in project portal by ixinportal.

the class IdentityCardServiceImpl method saveIdentityCard1.

public IdentityCard saveIdentityCard1(Long enterpriseId, String enterpriseSn, Long billId, Long userInfoId, IdentityCard identityCard, Integer itemStatus, IdentityCard old) throws Exception {
    File imgDir = filePathUtils.getEnterpriseFile(enterpriseSn);
    // 判断法人信息图片是否重新上传了,没有重新上传,则会提交法人信息的id,重新上传,还是按照下面的方法处理
    if (null != identityCard.getId()) {
        IdentityCard newIde = new IdentityCard();
        IdentityCard oldIde = sqlSession.selectOne("com.itrus.portal.db.IdentityCardMapper.selectByPrimaryKey", identityCard.getId());
        newIde.setEnterpriseName(identityCard.getEnterpriseName());
        newIde.setName(identityCard.getName());
        newIde.setCardType(identityCard.getCardType());
        newIde.setIdCode(identityCard.getIdCode());
        newIde.setCreateTime(new Date());
        newIde.setLastModify(new Date());
        // 审核状态:1未审核,2已审核,3已拒绝
        newIde.setItemStatus(oldIde.getItemStatus());
        newIde.setEnterprise(enterpriseId);
        newIde.setBill(billId);
        newIde.setUserInfo(userInfoId);
        // 正面(或者合成)图片
        if (StringUtils.isNotBlank(identityCard.getFrontImg())) {
            File frontImg = filePathUtils.saveImg(imgDir, null, identityCard.getFrontImg(), IMG_DEFAULT_TYPE, IMG_NAME_ID_FRONT);
            if (frontImg != null && frontImg.isFile()) {
                newIde.setFrontImg(frontImg.getName());
                newIde.setFrontImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
            }
        } else {
            newIde.setFrontImg(oldIde.getFrontImg());
            newIde.setFrontImgHash(oldIde.getFrontImgHash());
        }
        // 反面图片
        if (StringUtils.isNotBlank(identityCard.getBackImg())) {
            File backImg = filePathUtils.saveImg(imgDir, null, identityCard.getBackImg(), IMG_DEFAULT_TYPE, IMG_NAME_ID_BACK);
            if (backImg != null && backImg.isFile()) {
                newIde.setBackImg(backImg.getName());
                newIde.setBackImgHash(HMACSHA1.genSha1HashOfFile(backImg));
            }
        } else {
            newIde.setBackImg(oldIde.getBackImg());
            newIde.setBackImgHash(oldIde.getBackImgHash());
        }
        sqlSession.insert("com.itrus.portal.db.IdentityCardMapper.insert", newIde);
        sqlSession.flushStatements();
        return newIde;
    }
    if (null == identityCard || StringUtils.isBlank(identityCard.getEnterpriseName()) || StringUtils.isBlank(identityCard.getName()) || StringUtils.isBlank(identityCard.getIdCode()) || StringUtils.isBlank(identityCard.getFrontImg())) {
        throw new UserInfoServiceException("请提交完整的法人信息");
    }
    identityCard.setCreateTime(new Date());
    identityCard.setLastModify(new Date());
    // 审核状态:1未审核,2已审核,3已拒绝
    identityCard.setItemStatus(itemStatus);
    identityCard.setEnterprise(enterpriseId);
    identityCard.setBill(billId);
    identityCard.setUserInfo(userInfoId);
    // 正面(或者合成)图片
    if (StringUtils.isNotBlank(identityCard.getFrontImg()) && !identityCard.getFrontImg().equals(ComNames.USE_OLD_IMG)) {
        File frontImg = filePathUtils.saveImg(imgDir, null, identityCard.getFrontImg(), IMG_DEFAULT_TYPE, IMG_NAME_ID_FRONT);
        if (frontImg != null && frontImg.isFile()) {
            identityCard.setFrontImg(frontImg.getName());
            identityCard.setFrontImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
        }
    }
    // 反面图片
    if (StringUtils.isNotBlank(identityCard.getBackImg()) && !identityCard.getBackImg().equals(ComNames.USE_OLD_IMG)) {
        File backImg = filePathUtils.saveImg(imgDir, null, identityCard.getBackImg(), IMG_DEFAULT_TYPE, IMG_NAME_ID_BACK);
        if (backImg != null && backImg.isFile()) {
            identityCard.setBackImg(backImg.getName());
            identityCard.setBackImgHash(HMACSHA1.genSha1HashOfFile(backImg));
        }
    }
    if (old == null) {
        sqlSession.insert("com.itrus.portal.db.IdentityCardMapper.insert", identityCard);
    } else {
        identityCard.setId(old.getId());
        sqlSession.update("com.itrus.portal.db.IdentityCardMapper.updateByPrimaryKey", identityCard);
    }
    sqlSession.flushStatements();
    return identityCard;
}
Also used : File(java.io.File) Date(java.util.Date) UserInfoServiceException(com.itrus.portal.exception.UserInfoServiceException) IdentityCard(com.itrus.portal.db.IdentityCard)

Example 15 with IdentityCard

use of com.itrus.portal.db.IdentityCard in project portal by ixinportal.

the class BillWebController method loadImg.

/**
 * 得到图片
 *
 * @param type
 * @param id
 * @param num
 * @param response
 * @return
 */
@RequestMapping(value = "/img/{type}/{id}/{num}/{eid}")
public String loadImg(@PathVariable("type") int type, @PathVariable("id") Long id, @PathVariable("num") Long num, @PathVariable("eid") Long eid, HttpServletResponse response, HttpServletRequest request) {
    HttpSession session = request.getSession();
    Boolean verifyCodeStatus = (Boolean) session.getAttribute("webverifyCodeStatus");
    UserInfo webuserInfo = (UserInfo) session.getAttribute("webuserInfo");
    Enterprise enterprise = (Enterprise) session.getAttribute("webenterprise");
    if (null == verifyCodeStatus || !verifyCodeStatus || null == webuserInfo || !eid.equals(enterprise.getId())) {
        // 登录状态失效,跳转到登录页面
        return "redirect:/userInfoWeb/denglu.html";
    }
    String img = null;
    Long trueInfo = null;
    Long userid = null;
    UserInfo userInfo = null;
    OutputStream os = null;
    FileInputStream fis = null;
    try {
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires", 0);
        if (type == 1) {
            BusinessLicenseExample bl = new BusinessLicenseExample();
            BusinessLicenseExample.Criteria criteria = bl.createCriteria();
            criteria.andIdEqualTo(id);
            BusinessLicense license = sqlSession.selectOne("com.itrus.portal.db.BusinessLicenseMapper.selectByExample", bl);
            if (license == null) {
                return "status403";
            }
            img = license.getImgFile();
            trueInfo = license.getEnterprise();
        } else if (type == 2) {
            OrgCodeExample bl = new OrgCodeExample();
            OrgCodeExample.Criteria criteria = bl.createCriteria();
            criteria.andIdEqualTo(id);
            OrgCode code = sqlSession.selectOne("com.itrus.portal.db.OrgCodeMapper.selectByExample", bl);
            if (code == null) {
                return "status403";
            }
            img = code.getImgFile();
            trueInfo = code.getEnterprise();
        } else if (type == 3) {
            TaxRegisterCertExample bl = new TaxRegisterCertExample();
            TaxRegisterCertExample.Criteria criteria = bl.createCriteria();
            criteria.andIdEqualTo(id);
            TaxRegisterCert cert = sqlSession.selectOne("com.itrus.portal.db.TaxRegisterCertMapper.selectByExample", bl);
            if (cert == null) {
                return "status403";
            }
            img = cert.getImgFile();
            trueInfo = cert.getEnterprise();
        } else if (type == 4) {
            IdentityCardExample bl = new IdentityCardExample();
            IdentityCardExample.Criteria criteria = bl.createCriteria();
            criteria.andIdEqualTo(id);
            IdentityCard card = sqlSession.selectOne("com.itrus.portal.db.IdentityCardMapper.selectByExample", bl);
            if (card == null) {
                return "status403";
            }
            if (num == 0) {
                img = card.getFrontImg();
            } else {
                img = card.getBackImg();
            }
            trueInfo = card.getEnterprise();
        } else if (type == 7) {
            AgentExample bl = new AgentExample();
            AgentExample.Criteria criteria = bl.createCriteria();
            criteria.andIdEqualTo(id);
            Agent at = sqlSession.selectOne("com.itrus.portal.db.AgentMapper.selectByExample", bl);
            if (at == null) {
                return "status403";
            }
            if (num == 0) {
                img = at.getFrontImg();
            } else {
                img = at.getBackImg();
            }
            trueInfo = at.getEnterprise();
        } else if (type == 5) {
            ProxyExample pe = new ProxyExample();
            ProxyExample.Criteria criteria = pe.createCriteria();
            criteria.andIdEqualTo(id);
            Proxy proxy = sqlSession.selectOne("com.itrus.portal.db.ProxyMapper.selectByExample", pe);
            if (proxy == null) {
                return "status403";
            }
            img = proxy.getImgFile();
            userInfo = sqlSession.selectOne("com.itrus.portal.db.UserInfoMapper.selectByPrimaryKey", proxy.getUserInfo());
            trueInfo = proxy.getEnterprise();
        }
        if (img == null || trueInfo == null) {
            return "status403";
        }
        Enterprise info = sqlSession.selectOne("com.itrus.portal.db.EnterpriseMapper.selectByPrimaryKey", trueInfo);
        File file = new File(systemConfigService.getTrustDir().getPath() + File.separator + (type == 5 ? userInfo.getUniqueId() : info.getEnterpriseSn()));
        if (!file.exists()) {
            file.mkdir();
        }
        File imgFile = new File(file, img);
        fis = new FileInputStream(imgFile);
        byte[] bb = IOUtils.toByteArray(fis);
        os = response.getOutputStream();
        os.write(bb);
        os.flush();
    } catch (IOException e) {
        // 未找到
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        // 关闭流!
        try {
            if (null != fis) {
                fis.close();
            }
            if (null != os) {
                os.close();
            }
        } catch (IOException e) {
        }
    }
    return null;
}
Also used : IdentityCardExample(com.itrus.portal.db.IdentityCardExample) OutputStream(java.io.OutputStream) UserInfo(com.itrus.portal.db.UserInfo) Proxy(com.itrus.portal.db.Proxy) IdentityCard(com.itrus.portal.db.IdentityCard) Agent(com.itrus.portal.db.Agent) AgentExample(com.itrus.portal.db.AgentExample) HttpSession(javax.servlet.http.HttpSession) TaxRegisterCertExample(com.itrus.portal.db.TaxRegisterCertExample) IOException(java.io.IOException) FileInputStream(java.io.FileInputStream) IOException(java.io.IOException) JsonGenerationException(org.codehaus.jackson.JsonGenerationException) EncDecException(com.itrus.portal.exception.EncDecException) JsonMappingException(org.codehaus.jackson.map.JsonMappingException) UserInfoServiceException(com.itrus.portal.exception.UserInfoServiceException) BusinessLicenseExample(com.itrus.portal.db.BusinessLicenseExample) ProxyExample(com.itrus.portal.db.ProxyExample) OrgCode(com.itrus.portal.db.OrgCode) BusinessLicense(com.itrus.portal.db.BusinessLicense) Enterprise(com.itrus.portal.db.Enterprise) CopyFile(com.itrus.portal.utils.CopyFile) File(java.io.File) TaxRegisterCert(com.itrus.portal.db.TaxRegisterCert) OrgCodeExample(com.itrus.portal.db.OrgCodeExample) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

IdentityCard (com.itrus.portal.db.IdentityCard)33 BusinessLicense (com.itrus.portal.db.BusinessLicense)24 TaxRegisterCert (com.itrus.portal.db.TaxRegisterCert)24 Enterprise (com.itrus.portal.db.Enterprise)22 OrgCode (com.itrus.portal.db.OrgCode)22 UserInfo (com.itrus.portal.db.UserInfo)19 Agent (com.itrus.portal.db.Agent)18 UserInfoServiceException (com.itrus.portal.exception.UserInfoServiceException)17 ExtraProduct (com.itrus.portal.db.ExtraProduct)11 OpenBankInfo (com.itrus.portal.db.OpenBankInfo)11 Proxy (com.itrus.portal.db.Proxy)11 File (java.io.File)11 HashMap (java.util.HashMap)11 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)11 ExtraBill (com.itrus.portal.db.ExtraBill)9 Project (com.itrus.portal.db.Project)8 Date (java.util.Date)8 ExtraProductSpec (com.itrus.portal.db.ExtraProductSpec)7 Product (com.itrus.portal.db.Product)7 UserinfoEnterprise (com.itrus.portal.db.UserinfoEnterprise)7