Search in sources :

Example 11 with OnPayInfo

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

the class ClientPayWebController method generatePayInfo.

private void generatePayInfo(Long userId, String orderNo, String payid, String money) throws Exception {
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    TransactionStatus s = transactionManager.getTransaction(def);
    try {
        BillExample be = new BillExample();
        BillExample.Criteria bc = be.createCriteria();
        bc.andBillIdEqualTo(orderNo);
        Bill bill = sqlSession.selectOne("com.itrus.portal.db.BillMapper.selectByExample", be);
        OnPayInfo payInfo;
        if (bill.getOnPayInfo() == null) {
            payInfo = new OnPayInfo();
            payInfo.setOnlinePay(Long.parseLong(payid));
            payInfo.setPaySum(Double.parseDouble(money));
            payInfo.setPayStatus(0);
            payInfo.setDyTime(new Date());
            payInfo.setName(String.valueOf(userId));
            sqlSession.insert("com.itrus.portal.db.OnPayInfoMapper.insert", payInfo);
            sqlSession.flushStatements();
            if (payInfo.getId() == null) {
                throw new Exception(orderNo + "生成支付记录报错。");
            }
            bill.setOnPayInfo(payInfo.getId());
            sqlSession.update("com.itrus.portal.db.BillMapper.updateByPrimaryKeySelective", bill);
        } else {
            payInfo = sqlSession.selectOne("com.itrus.portal.db.OnPayInfoMapper.selectByPrimaryKey", bill.getOnPayInfo());
            payInfo.setOnlinePay(Long.parseLong(payid));
            payInfo.setPaySum(Double.parseDouble(money));
            payInfo.setDyTime(new Date());
            payInfo.setName(String.valueOf(userId));
            sqlSession.update("com.itrus.portal.db.OnPayInfoMapper.updateByPrimaryKeySelective", payInfo);
        }
        transactionManager.commit(s);
    } catch (Exception e) {
        LogUtil.syslog(sqlSession, "在线支付", orderNo + "在线支付生成支付记录错误:" + e.toString());
        throw new Exception(orderNo + "在线支付生成支付记录错误:" + e.toString());
    } finally {
        if (!s.isCompleted()) {
            transactionManager.rollback(s);
        }
    }
}
Also used : DefaultTransactionDefinition(org.springframework.transaction.support.DefaultTransactionDefinition) BillExample(com.itrus.portal.db.BillExample) OnPayInfo(com.itrus.portal.db.OnPayInfo) Bill(com.itrus.portal.db.Bill) TransactionStatus(org.springframework.transaction.TransactionStatus) Date(java.util.Date)

Example 12 with OnPayInfo

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

the class ClientPayWebController method updatePayInfo.

private void updatePayInfo(String billId, Long payConfigId, String transactionId, String payType, String payTime) throws Exception {
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    TransactionStatus s = null;
    try {
        s = transactionManager.getTransaction(def);
        BillExample be = new BillExample();
        BillExample.Criteria bc = be.createCriteria();
        bc.andBillIdEqualTo(billId);
        bc.andBillStatusIn(Arrays.asList(new Integer[] { 1, 11 }));
        Bill bill = sqlSession.selectOne("com.itrus.portal.db.BillMapper.selectByExample", be);
        if (null == bill) {
            return;
        }
        bill.setBillStatus(3);
        bill.setPayTime(new Date(Long.parseLong(payTime)));
        // 产品
        Product product = sqlSession.selectOne("com.itrus.portal.db.ProductMapper.selectByPrimaryKey", bill.getProduct());
        // pfx流程判断begin
        DigitalCert digitalCert = null;
        if (null != product.getCert()) {
            digitalCert = digitalCertService.getDigitalCert(product.getCert());
            if (null != digitalCert && null != digitalCert.getCertType() && digitalCert.getCertType().equals(ComNames.DIGITALCERT_CERTTYPE_PFX)) {
                // 这个用户,这个企业,这个项目,有通过了实名认证的订单,则直接进入待下载,
                List<Bill> bills = billService.hasAuthticationLevel(bill.getUniqueId(), bill.getEnterprise(), product.getProject());
                if (null != bills && bills.size() > 0 && digitalCert.getInitBuy().equals(ComNames.DIGITALCERT_INITBUYS_2)) {
                    bill.setBillStatus(ComNames.BILL_STATUS_13);
                    // 新增审核通过的记录
                    reviewService.agreeBillReview(bill);
                }
            }
        }
        // 解锁产品流程判断gegin
        if (null != product.getKeyUnlockType()) {
            bill = unLockKeyBillService.updateBillStatusWhileHasPay(bill, product);
        }
        // 解锁产品流程判断end
        sqlSession.update("com.itrus.portal.db.BillMapper.updateByPrimaryKeySelective", bill);
        OnPayInfo payInfo = sqlSession.selectOne("com.itrus.portal.db.OnPayInfoMapper.selectByPrimaryKey", bill.getOnPayInfo());
        payInfo.setPayStatus(1);
        payInfo.setWcTime(bill.getPayTime());
        payInfo.setPayNo(transactionId);
        OnlinePayExample ope = new OnlinePayExample();
        OnlinePayExample.Criteria opc = ope.createCriteria();
        opc.andPayConfigEqualTo(payConfigId);
        // 1支付宝 2微信
        opc.andWayEqualTo((Integer.parseInt(payType) == 0 ? 1 : 2));
        OnlinePay onlinePay = sqlSession.selectOne("com.itrus.portal.db.OnlinePayMapper.selectByExample", ope);
        payInfo.setOnlinePay(onlinePay.getId());
        // payInfo.setComment(m.get("return_msg"));
        sqlSession.update("com.itrus.portal.db.OnPayInfoMapper.updateByPrimaryKeySelective", payInfo);
        transactionManager.commit(s);
    } catch (Exception e) {
        LogUtil.syslog(sqlSession, "在线支付", billId + "回调更新数据库错误:" + e.toString());
        throw new Exception(billId + "回调更新数据库错误:" + e.toString());
    } finally {
        if (null != s && !s.isCompleted()) {
            transactionManager.rollback(s);
        }
    }
}
Also used : DefaultTransactionDefinition(org.springframework.transaction.support.DefaultTransactionDefinition) OnlinePayExample(com.itrus.portal.db.OnlinePayExample) TransactionStatus(org.springframework.transaction.TransactionStatus) Product(com.itrus.portal.db.Product) Date(java.util.Date) DigitalCert(com.itrus.portal.db.DigitalCert) BillExample(com.itrus.portal.db.BillExample) OnPayInfo(com.itrus.portal.db.OnPayInfo) Bill(com.itrus.portal.db.Bill) OnlinePay(com.itrus.portal.db.OnlinePay)

Example 13 with OnPayInfo

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

the class DownLoadCertWebController method toPages.

/**
 * 跳转到下载成功或失败页面 2016年11月3日 下午4:52:36
 *
 * @param id
 *            订单id
 * @param ret
 *            参数 1 成功, 0失败
 * @return 逻辑视图
 */
@RequestMapping(value = "/toPages/{id}", produces = "text/html")
public String toPages(@PathVariable("id") Long id, @RequestParam(value = "ret", required = false) int ret, HttpServletRequest request, Model uiModel) {
    HttpSession session = request.getSession();
    UserInfo userInfo = (UserInfo) session.getAttribute("webuserInfo");
    Enterprise enterprise = (Enterprise) session.getAttribute("webenterprise");
    if (null == userInfo || null == enterprise) {
        return "redirect:/userInfoWeb/denglu.html";
    }
    Map<String, Object> param = new HashMap<String, Object>();
    // 设置查询条件,选择属于当前用户,当前企业的订单
    param.put("id", id);
    List<Map<String, Object>> billAll = sqlSession.selectList("com.itrus.portal.db.BillMapper.selectProductBillCertById", param);
    if (0 == billAll.size()) {
        return "redirect:/userInfoWeb/denglu.html";
    }
    // 审核记录
    ReviewLog reviewLog = reviewLogService.getReviewLog(id);
    if (reviewLog != null) {
        uiModel.addAttribute("reviewLog", reviewLog);
    }
    uiModel.addAttribute("bills", billAll.get(0));
    // 获取订单在线支付方式
    if (billAll.get(0).get("on_pay_info") != null) {
        OnPayInfo onPayInfo = sqlSession.selectOne("com.itrus.portal.db.OnPayInfoMapper.selectByPrimaryKey", billAll.get(0).get("on_pay_info"));
        uiModel.addAttribute("onPayInfo", onPayInfo);
    } else if (billAll.get(0).get("pay_info") != null) {
        PayInfo payInfo = sqlSession.selectOne("com.itrus.portal.db.PayInfoMapper.selectByPrimaryKey", billAll.get(0).get("pay_info"));
        uiModel.addAttribute("payInfo", payInfo);
    }
    UserCertExample uce = new UserCertExample();
    UserCertExample.Criteria ucec = uce.or();
    ucec.andBillEqualTo(id);
    List<String> certStatus = new ArrayList<String>();
    List<UserCert> certs = userCertService.getUserCertByBill(id, certStatus);
    certStatus.add(ComNames.CERT_STATUS_1);
    certStatus.add(ComNames.CERT_STATUS_2);
    if (ret == 1) {
        // 下载成功页面
        if (certs != null && certs.size() > 0) {
            UserCert userCert = certs.get(0);
            uiModel.addAttribute("doneTime", userCert.getCertStartTime());
        }
        return "ixinweb/dingdanxiangqing_xiazaichenggong";
    } else {
        // 下载失败页面
        return "ixinweb/dingdanxiangqing_xiazaishibai";
    }
}
Also used : HashMap(java.util.HashMap) HttpSession(javax.servlet.http.HttpSession) UserCertExample(com.itrus.portal.db.UserCertExample) ArrayList(java.util.ArrayList) UserInfo(com.itrus.portal.db.UserInfo) OnPayInfo(com.itrus.portal.db.OnPayInfo) PayInfo(com.itrus.portal.db.PayInfo) OnPayInfo(com.itrus.portal.db.OnPayInfo) Enterprise(com.itrus.portal.db.Enterprise) ReviewLog(com.itrus.portal.db.ReviewLog) JSONObject(com.alibaba.fastjson.JSONObject) Map(java.util.Map) HashMap(java.util.HashMap) UserCert(com.itrus.portal.db.UserCert) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 14 with OnPayInfo

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

the class ExtraBillWebController method refuse.

// 审核拒绝重新提交页面
@RequestMapping(value = "/resubmit/{id}", produces = "text/html")
public String refuse(@PathVariable("id") Long id, Model uiModel, HttpServletRequest request) {
    HttpSession session = request.getSession();
    Enterprise webenterprise = (Enterprise) session.getAttribute("webenterprise");
    UserInfo webuserInfo = (UserInfo) session.getAttribute("webuserInfo");
    if (null == webenterprise || null == webuserInfo) {
        uiModel.addAttribute("errorMsg", "登录失效");
        return "client/errorpage";
    }
    ExtraBill bill = extraBillService.selectByPrimaryKey(id);
    if (null == bill) {
        uiModel.addAttribute("errorMsg", "未找到该订单");
        return "client/errorpage";
    }
    if (!bill.getUniqueId().equals(webuserInfo.getId())) {
        uiModel.addAttribute("errorMsg", "您无权操作该订单");
        return "client/errorpage";
    }
    // 获取订单在线支付方式
    if (null != bill.getOnPayInfo()) {
        // 第三方在线支付记录信息
        Map<Long, OnPayInfo> opiMap = sqlSession.selectMap("com.itrus.portal.db.OnPayInfoMapper.selectByExample", "id");
        uiModel.addAttribute("opiMap", opiMap);
        // 在线支付方式配置,目前有微信和支付宝两种
        Map<Long, OnlinePay> opMap = sqlSession.selectMap("com.itrus.portal.db.OnlinePayMapper.selectByExample", "id");
        uiModel.addAttribute("opMap", opMap);
    }
    // 订单
    uiModel.addAttribute("bill", bill);
    // 产品
    ExtraProduct product = sqlSession.selectOne("com.itrus.portal.db.ExtraProductMapper.selectByPrimaryKey", bill.getExtraProduct());
    uiModel.addAttribute("product", product);
    // 用户
    UserInfo userInfo = sqlSession.selectOne("com.itrus.portal.db.UserInfoMapper.selectByPrimaryKey", bill.getUniqueId());
    uiModel.addAttribute("userInfo", userInfo);
    // 企业
    Enterprise enterprise = sqlSession.selectOne("com.itrus.portal.db.EnterpriseMapper.selectByPrimaryKey", bill.getEnterprise());
    uiModel.addAttribute("enterprise", enterprise);
    FileInputStream fis = null;
    try {
        if (null != product.getExtraMessage()) {
            ExtraMessage extraMessage = extraMessageService.selectByPrimaryKey(product.getExtraMessage());
            // 用附加信息项的有无来判断是否需要用户填写附加信息,如果需要,则取附加信息项进行分割处理
            uiModel.addAttribute("extraMessage", extraMessage);
            File file = new File(systemConfigService.getTrustDir().getPath() + File.separator + enterprise.getEnterpriseSn());
            if (!file.exists()) {
                file.mkdir();
            }
            // //企业信息 认证项(1.企业名称,2.统一社会信用代码/营业执照,3.组织机构代码,4.税务登记号)
            if (StringUtils.isNotBlank(extraMessage.getEnterpriseItems())) {
                if (extraMessage.getEnterpriseItems().contains("2")) {
                    // 营业执照
                    BusinessLicense businessLicense = businessService.getBusinessByExtraBillId(id, null);
                    if (null != businessLicense) {
                        File imgFile = new File(file, businessLicense.getImgFile());
                        fis = new FileInputStream(imgFile);
                        businessLicense.setImgFile(ImageToBase64Utils.GetFileBase64(fis));
                        fis.close();
                        uiModel.addAttribute("businessLicense", businessLicense);
                    }
                }
                if (extraMessage.getEnterpriseItems().contains("3")) {
                    // 组织机构代码
                    OrgCode orgCode = orgCodeService.getOrgCodeByExtraBillId(id, null);
                    if (null != orgCode) {
                        File imgFile = new File(file, orgCode.getImgFile());
                        fis = new FileInputStream(imgFile);
                        orgCode.setImgFile(ImageToBase64Utils.GetFileBase64(fis));
                        fis.close();
                        uiModel.addAttribute("orgCode", orgCode);
                    }
                }
                if (extraMessage.getEnterpriseItems().contains("4")) {
                    // 税务登记
                    TaxRegisterCert taxRegisterCert = taxCertService.getTaxRegisterCertByExtraBillId(id, null);
                    if (null != taxRegisterCert) {
                        File imgFile = new File(file, taxRegisterCert.getImgFile());
                        fis = new FileInputStream(imgFile);
                        taxRegisterCert.setImgFile(ImageToBase64Utils.GetFileBase64(fis));
                        fis.close();
                        uiModel.addAttribute("taxRegisterCert", taxRegisterCert);
                    }
                }
            }
            // field string --fieldName agentItems
            if (StringUtils.isNotBlank(extraMessage.getAgentItems())) {
                Agent agent = agentService.getAgentByExtraBillId(id, null);
                if (null != agent) {
                    File imgFile = new File(file, agent.getFrontImg());
                    fis = new FileInputStream(imgFile);
                    agent.setFrontImg(ImageToBase64Utils.GetFileBase64(fis));
                    if (StringUtils.isNotBlank(agent.getBackImg())) {
                        File backImgFile = new File(file, agent.getBackImg());
                        fis = new FileInputStream(backImgFile);
                        agent.setBackImg(ImageToBase64Utils.GetFileBase64(fis));
                        fis.close();
                    }
                    uiModel.addAttribute("agent", agent);
                }
            }
            // field string --fieldName bankItems
            if (StringUtils.isNotBlank(extraMessage.getBankItems())) {
                OpenBankInfo openBankInfo = openBankInfoService.getOpenBankInfoByExtraBillId(id, null);
                if (null != openBankInfo) {
                    uiModel.addAttribute("openBankInfo", openBankInfo);
                }
            }
            // 法人认证项
            if (StringUtils.isNotBlank(extraMessage.getIdentityCardItems())) {
                IdentityCard identityCard = identityCardService.getIdentityCardByExtraBillId(id, null);
                if (null != identityCard) {
                    File imgFile = new File(file, identityCard.getFrontImg());
                    fis = new FileInputStream(imgFile);
                    identityCard.setFrontImg(ImageToBase64Utils.GetFileBase64(fis));
                    if (StringUtils.isNotBlank(identityCard.getBackImg())) {
                        File backImgFile = new File(file, identityCard.getBackImg());
                        fis = new FileInputStream(backImgFile);
                        identityCard.setBackImg(ImageToBase64Utils.GetFileBase64(fis));
                        fis.close();
                    }
                    uiModel.addAttribute("identityCard", identityCard);
                }
            }
        }
    } catch (Exception e) {
        // TODO: handle exception
        UserLog userlog = new UserLog();
        userlog.setProject(bill.getProject());
        userlog.setType("审核拒绝重新提交");
        userlog.setInfo("url:resubmit,详细错误:" + e.getMessage());
        userlog.setHostId("未知");
        userlog.setSn(null == webuserInfo.getUniqueId() ? null : webuserInfo.getUniqueId());
        LogUtil.userlog(sqlSession, userlog);
    } finally {
        if (null != fis) {
            try {
                fis.close();
            } catch (Exception e2) {
            // TODO: handle exception
            }
        }
    }
    return "client/shenhejujue_chongxintijiao";
}
Also used : Agent(com.itrus.portal.db.Agent) HttpSession(javax.servlet.http.HttpSession) ExtraBill(com.itrus.portal.db.ExtraBill) UserInfo(com.itrus.portal.db.UserInfo) UserLog(com.itrus.portal.db.UserLog) FileInputStream(java.io.FileInputStream) ExtraProduct(com.itrus.portal.db.ExtraProduct) OrgCode(com.itrus.portal.db.OrgCode) BusinessLicense(com.itrus.portal.db.BusinessLicense) OnPayInfo(com.itrus.portal.db.OnPayInfo) OpenBankInfo(com.itrus.portal.db.OpenBankInfo) Enterprise(com.itrus.portal.db.Enterprise) ExtraMessage(com.itrus.portal.db.ExtraMessage) File(java.io.File) TaxRegisterCert(com.itrus.portal.db.TaxRegisterCert) OnlinePay(com.itrus.portal.db.OnlinePay) IdentityCard(com.itrus.portal.db.IdentityCard) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 15 with OnPayInfo

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

the class ExtraBillWebController method refusePage.

// 审核拒绝页面
@RequestMapping(value = "/refusebill/{id}.html", produces = "text/html")
public String refusePage(@PathVariable("id") Long id, @RequestParam(value = "processProgress", required = false) Long processProgress, Model uiModel, HttpServletRequest request) {
    HttpSession session = request.getSession();
    Enterprise enterprise = (Enterprise) session.getAttribute("webenterprise");
    UserInfo userInfo = (UserInfo) session.getAttribute("webuserInfo");
    if (null == enterprise || null == userInfo) {
        uiModel.addAttribute("errorMsg", "登录失效");
        return "client/errorpage";
    }
    ExtraBill bill = extraBillService.selectByPrimaryKey(id);
    if (null == bill) {
        uiModel.addAttribute("errorMsg", "订单不存在");
        return "client/errorpage";
    }
    uiModel.addAttribute("bill", bill);
    if (!bill.getUniqueId().equals(userInfo.getId())) {
        uiModel.addAttribute("errorMsg", "您无权操作该订单");
        return "client/errorpage";
    }
    // 订单对应的产品信息
    ExtraProduct product = extraProductService.selectByPrimaryKey(bill.getExtraProduct());
    uiModel.addAttribute("product", product);
    // 订单对应的规格信息
    ExtraProductSpec productSpec = extraProductSpecService.selectByPrimaryKey(bill.getExtraProductSpec());
    uiModel.addAttribute("productSpec", productSpec);
    // 银行卡支付记录信息
    PayInfoExample payInfoex = new PayInfoExample();
    Map<Long, PayInfo> payinfoMap = sqlSession.selectMap("com.itrus.portal.db.PayInfoMapper.selectByExample", payInfoex, "id");
    uiModel.addAttribute("payinfomap", payinfoMap);
    // 获取订单在线支付方式
    if (null != bill.getOnPayInfo()) {
        // 第三方在线支付记录信息
        Map<Long, OnPayInfo> opiMap = sqlSession.selectMap("com.itrus.portal.db.OnPayInfoMapper.selectByExample", "id");
        uiModel.addAttribute("opiMap", opiMap);
        // 在线支付方式配置,目前有微信和支付宝两种
        Map<Long, OnlinePay> opMap = sqlSession.selectMap("com.itrus.portal.db.OnlinePayMapper.selectByExample", "id");
        uiModel.addAttribute("opMap", opMap);
    }
    // 电子发票信息
    if (null != bill.geteInvoice()) {
        Einvoice einvoice = sqlSession.selectOne("com.itrus.portal.db.EinvoiceMapper.selectByPrimaryKey", bill.geteInvoice());
        uiModel.addAttribute("einvoice", einvoice);
    }
    // 纸票模版
    Map<Long, Receipt> receiptmap = sqlSession.selectMap("com.itrus.portal.db.ReceiptMapper.selectByExample", null, "id");
    uiModel.addAttribute("receiptmap", receiptmap);
    // 电票开票模版
    Map<Long, Ereceipt> ereceiptmap = sqlSession.selectMap("com.itrus.portal.db.EreceiptMapper.selectByExample", null, "id");
    uiModel.addAttribute("ereceiptmap", ereceiptmap);
    return "client/shenhejujue";
}
Also used : Ereceipt(com.itrus.portal.db.Ereceipt) PayInfoExample(com.itrus.portal.db.PayInfoExample) Receipt(com.itrus.portal.db.Receipt) HttpSession(javax.servlet.http.HttpSession) ExtraBill(com.itrus.portal.db.ExtraBill) ExtraProductSpec(com.itrus.portal.db.ExtraProductSpec) UserInfo(com.itrus.portal.db.UserInfo) Einvoice(com.itrus.portal.db.Einvoice) ExtraProduct(com.itrus.portal.db.ExtraProduct) OnPayInfo(com.itrus.portal.db.OnPayInfo) PayInfo(com.itrus.portal.db.PayInfo) OnPayInfo(com.itrus.portal.db.OnPayInfo) Enterprise(com.itrus.portal.db.Enterprise) OnlinePay(com.itrus.portal.db.OnlinePay) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

OnPayInfo (com.itrus.portal.db.OnPayInfo)22 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)18 UserInfo (com.itrus.portal.db.UserInfo)16 Enterprise (com.itrus.portal.db.Enterprise)14 OnlinePay (com.itrus.portal.db.OnlinePay)12 ExtraBill (com.itrus.portal.db.ExtraBill)9 PayInfo (com.itrus.portal.db.PayInfo)9 HttpSession (javax.servlet.http.HttpSession)9 Bill (com.itrus.portal.db.Bill)8 Map (java.util.Map)8 ExtraProduct (com.itrus.portal.db.ExtraProduct)7 Product (com.itrus.portal.db.Product)7 HashMap (java.util.HashMap)7 DigitalCert (com.itrus.portal.db.DigitalCert)6 Einvoice (com.itrus.portal.db.Einvoice)6 ExtraProductSpec (com.itrus.portal.db.ExtraProductSpec)6 OpenBankInfo (com.itrus.portal.db.OpenBankInfo)6 PayInfoExample (com.itrus.portal.db.PayInfoExample)6 ReviewLog (com.itrus.portal.db.ReviewLog)6 Date (java.util.Date)6