JTA的事务管理由UserTransaction管理.

来源:互联网 发布:kali linux ddos 编辑:程序博客网 时间:2024/06/05 16:14
// 回滚处理开始InitialContext context = new InitialContext();// JTA的事务管理由UserTransaction管理.UserTransaction utx = (UserTransaction) context.lookup("UserTransaction");try {// 开启事物utx.begin();if (null != ids && idList.size() > 0) {for (String id : idList) {// 根据出借产品 id查询 委托出借信息underLineApprove = underLineApproveLocalBean.getListById(appBean.getClientCode(), id);// 根据出借产品 loan_id查询【募集成功结束时间】if (StringUtils.isBlank(underLineApprove.getTimesettled())) {updIds.add(id);tenderList.add(underLineApprove);}}// 更新委托出借表里的审批状态boolean up = underLineApproveLocalBean.markApprovalStatus(CreditManagerConstant.APPROVAL_STATUS_REFUSE, updIds);if (!up) {utx.rollback();return apiresult.addError("委托出借审批驳回失败!");}// 插入投资信息表if (null != tenderList && tenderList.size() > 0) {for (UnderLineApprove ua : tenderList) {boolean f = userFundService.release(appBean.getClientCode(), ua.getUnderLineUserId(),new BigDecimal(ua.getLoanAmount()));if (!f) {utx.rollback();return apiresult.addError("委托出借审批驳回更新用户资金失败!");}/*String mchnt_txn_ssn = getNumber(); // 流水号String cust_no = null;// 付款账户(出借人手机号)String amt = null;// 金额String rem = null;// 通过userid获取用户信息User u = userBridge.getUserById(ua.getUnderLineUserId());if (null != u) {cust_no = u.getMobile();// 付款账户(出借人手机号)} else {apiresult.addError("委托出借审批驳回转账:付款账户不存在");}if (StringUtils.isNotBlank(ua.getLoanAmount())) {amt = ua.getLoanAmount();// 金额} else {apiresult.addError("委托出借审批驳回转账:金额不存在");}try {logger.info("委托出借审批批驳回账户解冻: 流水号《" + mchnt_txn_ssn + "》");// 驳回的时候调解冻接口。UnFreezeRspData uf = fuiouService.unFreeze(mchnt_txn_ssn, cust_no, amt, rem);if (uf != null) {if (!uf.getResp_code().equals("0000")) {utx.rollback();return apiresult.addError(uf.getResp_desc());} }logger.info("委托出借审批驳回账户解冻: 解冻账户 《" + cust_no + " 》 响应消息: " + uf.getResp_desc());} catch (Exception e) {logger.error("委托出借审批驳回账户解冻失败: " + e.getMessage());return apiresult.addError("委托出借审批驳回账户解冻失败,请和银行联系。");}*/}}} else {return apiresult.addError("委托出借驳回无驳回记录");}utx.commit();} catch (Exception e) {utx.rollback();return apiresult.addError("委托出借驳回无驳回失败");}