package com.sp2p.action.admin; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.sql.SQLException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.shove.Convert; import com.shove.config.ChinaPnrConfig; import com.shove.data.DataException; import com.shove.util.JSONUtils; import com.shove.util.ServletUtils; import com.shove.util.SqlInfusion; import com.shove.web.action.BasePageAction; import com.shove.web.util.ExcelUtils; import com.sp2p.action.front.FrontMyFinanceAction; import com.sp2p.action.front.FrontMyPaymentAction; import com.sp2p.constants.IConstants; import com.sp2p.entity.Admin; import com.sp2p.service.FrontMyPaymentService; import com.sp2p.service.MyHomeService; import com.sp2p.service.OperationLogService; import com.sp2p.service.SelectedService; import com.sp2p.service.SendMessageService; import com.sp2p.service.UserService; import com.sp2p.service.admin.AdminService; import com.sp2p.service.admin.FundManagementService; import com.sp2p.util.ChinaPnRInterface; import com.sp2p.util.DateUtil; /** * 后台财务管理 * * @author Administrator * */ @SuppressWarnings({ "serial", "unchecked", "rawtypes" }) public class FIManageAction extends BasePageAction { public static Log log = LogFactory.getLog(FrontMyFinanceAction.class); private UserService userService; private AdminService adminService; private SelectedService selectedService; private SendMessageService sendMessageService; private FundManagementService fundManagementService; private FrontMyPaymentService frontpayService; private MyHomeService myHomeSerivce; public FundManagementService getFundManagementService() { return fundManagementService; } public void setFundManagementService(FundManagementService fundManagementService) { this.fundManagementService = fundManagementService; } /** * 充值扣费 */ private long userId; /** * 财务管理 充值提现审核 全部提现状态 */ private List<Map<String, Object>> operateType; private List<Map<String, Object>> status; private List<Map<String, Object>> results; /** * 财务管理 充值记录管理 */ private List<Map<String, Object>> rechargeTypes; public String queryRechargeRecordInit() { return SUCCESS; } /** * 还款管理 还款报表初始化 * * @return */ public String queryRepaymentReportInit() { String id = request().getParameter("borrowId"); request().setAttribute("borrowId", id); return SUCCESS; } /** * 还款管理 还款报表 */ public String queryRepaymentReport() throws Exception { Long borrowId = Convert.strToLong(paramMap.get("borrowId"), -100); try { // 查询还款记录 fundManagementService.queryRepaymentReport(pageBean, null, borrowId); int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); request().setAttribute("pageNum", pageNum); request().setAttribute("totalNum", pageBean.getTotalNum()); } catch (DataException e) { log.error(e); e.printStackTrace(); } catch (SQLException e) { log.error(e); e.printStackTrace(); } return SUCCESS; } /** * 还款管理 还款报表--初始化 */ public String queryRepaymentInvestIndex() { String borrowId = request("investId"); request().setAttribute("borrowId", borrowId); return SUCCESS; } /** * 还款管理 投资人报表 */ public String queryRepaymentInvest() throws Exception { String borrowId = Convert.strToStr(paramMap.get("borrowId"), "-1"); String userName = Convert.strToStr(paramMap.get("userName"), ""); try { // 查询还款记录 fundManagementService.queryRechargeInversList(pageBean, userName, borrowId); int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); request().setAttribute("pageNum", pageNum); request().setAttribute("totalNum", pageBean.getTotalNum()); } catch (Exception e) { log.error(e); e.printStackTrace(); } return SUCCESS; } /** * 处理 还款 */ public String updateRepayment() throws Exception { JSONObject json = new JSONObject(); long repaymentId = Convert.strToLong(paramMap.get("repaymentId"), -1L); double stillAmount = Convert.strToDouble(paramMap.get("stillAmount"), 0);// 本期应还总额 String usrCustId = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("usrCustId")), ""); // 汇付客户号 long userId = Convert.strToLong(paramMap.get("userId"), -1L); String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("userName")), ""); if (repaymentId <= 0 || stillAmount <= 0 || userId <= 0 || StringUtils.isBlank(userName) || StringUtils.isBlank(usrCustId)) { json.put("msg", "非法操作"); JSONUtils.printObject(json); return null; } doNormalRepay(repaymentId, usrCustId, userId, userName, "", stillAmount); return null; // long borrowId = Convert.strToLong(paramMap.get("borrowId"), -1L); // String deadline = Convert.strToStr(paramMap.get("deadline"), "0"); // // 提前还款期限 // Admin admin = (Admin) // session().getAttribute(IConstants.SESSION_ADMIN); // SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); // 获取当前月的天数 // Calendar a = Calendar.getInstance(); // a.set(Calendar.DATE, 1);// 把日期设置为当月第一天 // a.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天 // obj = doNormalRepay(repaymentId, usrCustId, userId, userName, // repayDate, stillAmount); // Date repayDate = sf.parse(Convert.strToStr(paramMap.get("repayDate"), // UtilDate.getDate())); } /** * 普通还款 */ private void doNormalRepay(long payId, String outCustId, long userId, String username, String pwd, double needSum) throws Exception { String Fee = "0.00"; String divDetails = ""; String transAmt = ""; String inAcctId = ""; String outAcctId = ""; List<Map<String, Object>> list = frontpayService.queryAllInvestInfo(payId);// 查询所有投资人的投资信息 JSONObject obj = new JSONObject(); double consultFee = Convert.strToDouble(list.get(0).get("consultFee") + "", 0);// 咨询费,查询时已将本期还款咨询费统计在第一个记录中 double fee = Convert.strToDouble(list.get(0).get("repayFee") + "", 0);// 手续费,同咨询费 for (int i = 0, size = list.size(); i < size; i++) { Map<String, Object> map = list.get(i); if (i == size - 1 && (fee + consultFee) > 0) { // 在最后一次还款时加上手续费和咨询费 String feeStr = new DecimalFormat("0.00").format((fee + consultFee)); Fee = feeStr; JSONObject json1 = new JSONObject(); json1.put("DivAcctId", ChinaPnrConfig.chinapnr_zxf); json1.put("DivAmt", new DecimalFormat("0.00").format(consultFee)); divDetails = "[" + json1.toString(); if (fee > 0) { feeStr = fee + "000"; json1 = new JSONObject(); json1.put("DivAcctId", ChinaPnrConfig.chinapnr_cfb); json1.put("DivAmt", new DecimalFormat("0.00").format(fee)); divDetails += "," + json1.toString(); } divDetails += "]"; } String ordId = map.get("ordId") + ""; String inCustId = map.get("inCustId") + ""; String subOrdId = map.get("subOrdId") + ""; String subOrdDate = DateUtil.dateToYMD(DateUtil.strToDate(map.get("subOrdDate") + "")); transAmt = map.get("inSum") + ""; if (Convert.strToInt(map.get("isWebRepay") + "", -1) == 2) {// 如果已代偿,收款人为担保公司,inCustId为商户子账户 inCustId = ChinaPnrConfig.chinapnr_dc; transAmt = map.get("compensatorySum")+""; } JSONObject jsonObject=JSONObject.fromObject(ChinaPnRInterface.repayment("10", ordId, outCustId, outAcctId, transAmt, inCustId, inAcctId, subOrdId, subOrdDate, Fee, divDetails)); System.out.println("ChinaPnRInterface repayment result:"+jsonObject); } Map<String, String> map = frontpayService.submitPay(payId, userId, pwd, getBasePath(), username, needSum, fee, consultFee); int ret = Convert.strToInt(map.get("ret"), -1); if (ret > 0) { obj.put("msg", "ok"); } else { obj.put("msg", Convert.strToStr(map.get("ret_desc"), "还款失败")); } JSONUtils.printObject(obj); } /** * 财务管理 充值记录查询 */ public String queryRechargeRecordList() throws DataException, SQLException { String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("userName")), null); String reStartTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("rechargeTime")), null); int rechargeType = Convert.strToInt(paramMap.get("rechargeType"), -100); String reEndTime = FrontMyPaymentAction.changeEndTime(Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("rechargeTime")), null)); Integer result = paramMap.get("status") == null ? -100 : Convert.strToInt(paramMap.get("status"), -100); try { fundManagementService.queryRechargeRecordList(pageBean, userName, reStartTime, reEndTime, rechargeType, result); int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); request().setAttribute("pageNum", pageNum); request().setAttribute("totalNum", pageBean.getTotalNum()); } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } return SUCCESS; } /** * 导出充值记录查询 */ public String exportRechargeRecord() { pageBean.pageNum = 1; pageBean.setPageSize(100000); try { String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(request().getParameter("userName")), ""); userName = URLDecoder.decode(userName, "UTF-8"); String rechargeTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(request().getParameter("rechargeTime")), null); String reEndTime = null; if (StringUtils.isNotBlank(rechargeTime)) { reEndTime = FrontMyPaymentAction.changeEndTime(rechargeTime); } int rechargeType = Convert.strToInt(paramMap.get("rechargeType"), -100); int statss = Convert.strToInt(request().getParameter("statss"), -1); // 待还款详情 fundManagementService.queryRechargeRecordList(pageBean, userName, rechargeTime, reEndTime, rechargeType, statss); if (pageBean.getPage() == null) { getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>"); return null; } if (pageBean.getPage().size() > IConstants.EXCEL_MAX) { getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>"); return null; } fundManagementService.changeFigure(pageBean); HSSFWorkbook wb = ExcelUtils.exportExcel("充值记录", pageBean.getPage(), new String[] { "用户名", "充值类型", "充值金额", "费率", "到账金额", "充值时间", "状态" }, new String[] { "username", "rechargeType", "rechargeMoney", "cost", "realMoney", "rechargeTime", "result" }); this.export(wb, new Date().getTime() + ".xls"); Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); operationLogService.addOperationLog("v_t_user_rechargedetails_list", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出充值记录列表", 2); } catch (SQLException e) { e.printStackTrace(); } catch (DataException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 财务管理 充值记录 第一次充值查询 * * @return * @throws DataException * @throws SQLException */ public String queryRechargeFirstList() throws DataException, SQLException { String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("userName")), null); String reStartTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("reStartTime")), null); int rechargeType = Convert.strToInt(SqlInfusion.FilteSqlInfusion(paramMap.get("rechargeType")), -100); String reEndTime = FrontMyPaymentAction.changeEndTime(Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("reEndTime")), null)); try { fundManagementService.queryRechargeFirstList(pageBean, userName, reStartTime, reEndTime, rechargeType); int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); request().setAttribute("pageNum", pageNum); } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } return SUCCESS; } /** * 导出充值记录 第一次充值查询 * * @return */ public String exportRechargeFirst() { pageBean.pageNum = 1; pageBean.setPageSize(100000); try { String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(request().getParameter("userName")), null); if (StringUtils.isNotBlank(userName)) { userName = URLDecoder.decode(userName, "UTF-8"); } String reStartTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(request().getParameter("reStartTime")), null); int rechargeType = Convert.strToInt(paramMap.get("rechargeType"), -100); String reEndTime = FrontMyPaymentAction.changeEndTime(Convert.strToStr(SqlInfusion.FilteSqlInfusion(request().getParameter("reEndTime")), null)); // 待还款详情 fundManagementService.queryRechargeFirstList(pageBean, userName, reStartTime, reEndTime, rechargeType); if (pageBean.getPage() == null) { getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>"); return null; } if (pageBean.getPage().size() > IConstants.EXCEL_MAX) { getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>"); return null; } fundManagementService.changeFigure(pageBean); HSSFWorkbook wb = ExcelUtils.exportExcel("充值记录", pageBean.getPage(), new String[] { "用户名", "充值类型", "充值金额", "费率", "到账金额", "充值时间", "状态" }, new String[] { "username", "rechargeType", "rechargeMoney", "cost", "realMoney", "rechargeTime", "result" }); this.export(wb, new Date().getTime() + ".xls"); Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); operationLogService.addOperationLog("v_t_user_rechargefirst_lists", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出充值记录第一次充值查询", 2); } catch (SQLException e) { e.printStackTrace(); } catch (DataException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 查看第一次充值数据 * * @throws DataException * @throws SQLException */ public String queryOneFirstChargeDetails() throws SQLException, DataException { Long rechargeId = request("rechargeId") == null ? -100 : Convert.strToLong(request("rechargeId"), -100); try { paramMap = fundManagementService.queryOneFirstChargeDetails(rechargeId, true); if (paramMap != null) { String resultId = paramMap.get("result").toString(); if (resultId.equals(0 + "")) {// 失败 paramMap.put("realMoney", "0.00"); } } } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } return SUCCESS; } /** * 财务管理 充值提现审核 全部提现 * * @return * @throws Exception */ public String queryAllWithdrawList() throws Exception { String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("userName")), null); String startTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("startTime")), null); String endTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("endTime")), null); endTime = FrontMyPaymentAction.changeEndTime(endTime); Integer status = paramMap.get("status") == null ? -100 : Convert.strToInt(paramMap.get("status"), -100); try { fundManagementService.queryAllWithdrawList(pageBean, userName, startTime, endTime, status); // List<Map<String, Object>> list = pageBean.getPage(); // long id = 0; // String AvlBal = "0.00"; // String FrzBal = "0.00"; // 后台查询余额 接口 // for (int i = 0; i < list.size(); i++) { // Map<String, Object> map = list.get(i); // id = Convert.strToLong(map.get("id") + "", -1); // String usrCustId = map.get("usrCustId") + ""; // if (Convert.strToLong(usrCustId, -1) <= 0) { // continue; // } // String usableSumStr = map.get("usableSum") + ""; // String freezeSum = map.get("freezeSum") + ""; // 系统中用户冻结金额 // String jsonStr = ChinaPnRInterface.queryBalanceBg(usrCustId); // JSONObject json = JSONObject.fromObject(jsonStr); // int RespCode = json.getInt("RespCode"); // if (RespCode != 0) { // continue; // } // AvlBal = json.getString("AvlBal"); // 用户在汇付可用余额 // FrzBal = json.getString("FrzBal"); // 用户在汇付冻结金额 // AvlBal = AvlBal.replaceAll(",", ""); // FrzBal = FrzBal.replaceAll(",", ""); // if ((AvlBal.equals(usableSumStr)) || FrzBal.equals(freezeSum)) { // myHomeSerivce.usableAmountUpdate(id, Double.valueOf(AvlBal), Double.valueOf(FrzBal)); // } // } // } else { // fundManagementService.queryAllUserFundRecordList(pageBean, // userName); // } int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); request().setAttribute("pageNum", pageNum); request().setAttribute("totalNum", pageBean.getTotalNum()); } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } return SUCCESS; } /** * 提现 --- 导出 */ public String exportAllWithdraw() { pageBean.pageNum = 1; pageBean.setPageSize(100000); Integer status = Convert.strToInt(request().getParameter("statss"), -1); String exporName = ""; try { Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); String userName = SqlInfusion.FilteSqlInfusion(request().getParameter("userName") == null ? "" : request().getParameter("userName")); String startTime = SqlInfusion.FilteSqlInfusion(request().getParameter("startTime") == null ? "" : request().getParameter("startTime")); String endTime = SqlInfusion.FilteSqlInfusion(request().getParameter("endTime") == null ? "" : request().getParameter("endTime")); userName = URLDecoder.decode(userName, "UTF-8");// 中文乱码转换 startTime = URLDecoder.decode(startTime, "UTF-8"); endTime = URLDecoder.decode(endTime, "UTF-8"); if (StringUtils.isNotBlank(endTime)) { endTime = FrontMyPaymentAction.changeEndTime(endTime); } // 提现详情 fundManagementService.queryAllWithdrawList(pageBean, userName, startTime, endTime, status); if (pageBean.getPage() == null) { getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>"); return null; } if (pageBean.getPage().size() > IConstants.EXCEL_MAX) { getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>"); return null; } if (status == 0) { exporName = "全部提现列表"; } else if (status == 1) { exporName = "待审核提现列表"; } else if (status == 4) { exporName = "转账中的提现列表"; } else if (status == 2) { exporName = "成功的提现列表"; } else if (status == 5) { exporName = "失败的提现列表"; } HSSFWorkbook wb = ExcelUtils.exportExcel(exporName, pageBean.getPage(), new String[] { "用户名", "真实姓名", "提现账号", "提现银行", "支行", "提现总额", "到账金额(¥)", "手续费", "提现时间", "状态" }, new String[] { "name", "realName", "acount", "bankName", "branchBankName", "sum", "realMoney", "poundage", "applyTime", "status", }); this.export(wb, new Date().getTime() + ".xls"); // 系统操作日志 operationLogService.addOperationLog("v_t_user_withdraw_lists", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出" + exporName, 2); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 导出 -平台提现 */ public String exportProxyWithdraw() { pageBean.pageNum = 1; pageBean.setPageSize(100000); Integer status = Convert.strToInt(request().getParameter("statss"), -1);// 1成功 // 0 // 失败 String userName = SqlInfusion.FilteSqlInfusion(request("userName") == null ? "" : request("userName")); String startTime = SqlInfusion.FilteSqlInfusion(request("startTime") == null ? "" : request("startTime")); String endTime = SqlInfusion.FilteSqlInfusion(request("endTime") == null ? "" : request("endTime")); String exporName = ""; try { Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); if (StringUtils.isNotBlank(endTime)) { endTime = FrontMyPaymentAction.changeEndTime(endTime); } // 提现详情 fundManagementService.queryProxyWithList(pageBean, userName, startTime, endTime, status); if (pageBean.getPage() == null) { getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>"); return null; } if (pageBean.getPage().size() > IConstants.EXCEL_MAX) { getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>"); return null; } if (status == 0) { exporName = "失败的平台提现列表"; } else if (status == 1) { exporName = "成功的平台提现列表"; } else { exporName = "全部平台提现列表"; } HSSFWorkbook wb = ExcelUtils.exportExcel(exporName, pageBean.getPage(), new String[] { "用户名", "真实姓名", "提现账号", "提现银行", "支行", "提现总额", "到账金额(¥)", "手续费", "提现时间", "状态" }, new String[] { "username", "realName", "cardNo", "bankName", "branchBankName", "sum", "realSum", "poundage", "applyTime", "status", }); this.export(wb, new Date().getTime() + ".xls"); // 系统操作日志 operationLogService.addOperationLog("v_t_mer_cash_hhn", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出" + exporName, 2); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 财务管理 充值记录 * * @return * @throws DataException * @throws SQLException */ public String queryUserCashList() throws DataException, SQLException { String userName = SqlInfusion.FilteSqlInfusion(paramMap.get("userName") == null ? null : Convert.strToStr(paramMap.get("userName"), null)); try { fundManagementService.queryUserCashList(pageBean, userName); int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); request().setAttribute("pageNum", pageNum); } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } return SUCCESS; } /** * 财务管理 充值管理 充值/扣费 * * @return * @throws UnsupportedEncodingException */ public String queryBackCashInit() { String userId = request("userId"); paramMap.put("userId", userId); return SUCCESS; } public String queryBackCashList() throws Exception { String checkUser = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("checkUser")), null); String startTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("startTime")), null); String endTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("endTime")), null); if (StringUtils.isNotBlank(endTime)) { endTime = FrontMyPaymentAction.changeEndTime(endTime); } Integer type = Convert.strToInt(paramMap.get("type"), -100); String uname = Convert.strToStr(paramMap.get("uname"), null); try { fundManagementService.queryBackCashList(pageBean, -1L, checkUser, startTime, endTime, type, uname); int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); request().setAttribute("pageNum", pageNum); request().setAttribute("totalNum", pageBean.getTotalNum()); } catch (Exception e) { log.error(e); e.printStackTrace(); } return SUCCESS; } /** * 导出充值明细 * * @return */ public String exportBackCash() { pageBean.pageNum = 1; pageBean.setPageSize(100000); String userId = request("userId"); Long uid = -100L; if (userId != null) { uid = Convert.strToLong(userId, -100); } try { Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); String checkUser = SqlInfusion.FilteSqlInfusion(request().getParameter("checkUser") == null ? "" : request().getParameter("checkUser")); String startTime = SqlInfusion.FilteSqlInfusion(request().getParameter("startTime") == null ? "" : request().getParameter("startTime")); String endTime = SqlInfusion.FilteSqlInfusion(request().getParameter("endTime") == null ? "" : request().getParameter("endTime")); if (StringUtils.isNotBlank(endTime)) { endTime = FrontMyPaymentAction.changeEndTime(endTime); } Integer type = Convert.strToInt(SqlInfusion.FilteSqlInfusion(request().getParameter("type")), -100); String uname = SqlInfusion.FilteSqlInfusion(request().getParameter("userName") == null ? "" : request().getParameter("userName")); // 中文乱码转换 checkUser = URLDecoder.decode(checkUser, "UTF-8"); uname = URLDecoder.decode(uname, "UTF-8"); // 待还款详情 fundManagementService.queryBackCashList(pageBean, uid, checkUser, startTime, endTime, type, uname); if (pageBean.getPage() == null) { getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>"); return null; } if (pageBean.getPage().size() > IConstants.EXCEL_MAX) { getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>"); return null; } fundManagementService.changeFigure2(pageBean); HSSFWorkbook wb = ExcelUtils.exportExcel("充值明细", pageBean.getPage(), new String[] { "用户名", "真实姓名", "类型", "操作金额", "手续费", "操作人员", "充值结果", "操作时间", "备注" }, new String[] { "uname", "realName", "type", "dealMoney", "cost", "userName", "result", "checkTime", "remark" }); this.export(wb, new Date().getTime() + ".xls"); // 添加系统操作日志 operationLogService.addOperationLog("v_t_user_backrw_lists", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出充值明细", 2); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 导出充值明细 * * @return */ public String exportBackCashSimple() { pageBean.pageNum = 1; pageBean.setPageSize(100000); try { Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); long userId = Convert.strToLong(request("userId"), -100); fundManagementService.queryBackCashList(pageBean, userId, null, null, null, -100, null); if (pageBean.getPage() == null) { getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>"); return null; } if (pageBean.getPage().size() > IConstants.EXCEL_MAX) { getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>"); return null; } fundManagementService.changeFigure2(pageBean); HSSFWorkbook wb = ExcelUtils.exportExcel("充值明细", pageBean.getPage(), new String[] { "用户名", "真实姓名", "类型", "操作金额", "备注", "操作人员", "操作时间" }, new String[] { "uname", "realName", "type", "dealMoney", "remark", "userName", "checkTime" }); this.export(wb, new Date().getTime() + ".xls"); // 添加系统操作日志 operationLogService.addOperationLog("v_t_user_backrw_lists", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出充值明细", 2); } catch (Exception e) { e.printStackTrace(); } return null; } public String queryR_WShow() throws DataException, SQLException { Long rwId = request("rwId") == null ? -100 : Convert.strToLong(request("rwId"), -100); try { paramMap = fundManagementService.queryR_WInfo(rwId); } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } return SUCCESS; } public String addBackRechargeInit() { String userId = SqlInfusion.FilteSqlInfusion(request("userId")); try { Map<String, String> map = userService.queryUserBankById(Convert.strToLong(userId, -100)); if (map == null || map.size() == 0) { JSONUtils.printStr2("<script>alert('未找到该用户信息');window.parent.jBox.close();</script>"); return null; } if (Convert.strToLong(map.get("usrCustId"), -1) < 0) { JSONUtils.printStr2("<script>alert('该用户还不是汇付天下会员');window.parent.jBox.close();</script>"); return null; } request().setAttribute("map", map); } catch (Exception e) { log.error(e); e.printStackTrace(); } return SUCCESS; } public String addBackUserRechargeInit() { String userId = SqlInfusion.FilteSqlInfusion(request("userId")); try { Map<String, String> map = userService.queryUserBankById(Convert.strToLong(userId, -100)); if (map == null || map.size() == 0) { JSONUtils.printStr2("<script>alert('未找到该用户信息');window.parent.jBox.close();</script>"); return null; } if (Convert.strToLong(map.get("usrCustId"), -1) < 0) { JSONUtils.printStr2("<script>alert('该用户还不是汇付天下会员');window.parent.jBox.close();</script>"); return null; } request().setAttribute("map", map); } catch (Exception e) { log.error(e); e.printStackTrace(); } return SUCCESS; } public String addBackWithdrawInit() { String userId = SqlInfusion.FilteSqlInfusion(request("userId")); try { if (userId != null) { Map<String, String> map = userService.queryUserById(Convert.strToLong(userId, -100)); if (map != null) { paramMap.put("userName", map.get("username")); paramMap.put("userId", userId); request().setAttribute("usrCustId", map.get("usrCustId")); } } } catch (Exception e) { log.error(e); e.printStackTrace(); } return SUCCESS; } /** * 添加扣费 */ public String addBackWithdraw() throws Exception { String dealMoneyParam = SqlInfusion.FilteSqlInfusion(paramMap.get("dealMoney")); double dealMoney = Convert.strToDouble(dealMoneyParam, 0); String _code = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("code")), null); String pageId = SqlInfusion.FilteSqlInfusion(paramMap.get("pageId")); // 验证码 String code = (String) session().getAttribute(pageId + "_checkCode"); if (code == null || !code.equals(_code)) { this.addFieldError("paramMap['code']", "验证码错误"); return "input"; } Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); Long adminId = admin.getId(); String userIdParam = SqlInfusion.FilteSqlInfusion(paramMap.get("userId")); long userId = Convert.strToLong(userIdParam, -1); String remark = SqlInfusion.FilteSqlInfusion(paramMap.get("remark")); try { Map<String, String> userMap = userService.queryUserById(userId); String addIP = ServletUtils.getRemortIp(); long result = fundManagementService.addBackW(userId, adminId, IConstants.WITHDRAW, dealMoney, remark, new Date(), IConstants.FUNDMODE_WITHDRAW_HANDLE, addIP, userMap.get("username"), "手动扣费,备注:" + remark); if (result == -99) { JSONUtils.printStr("-99"); return null; } this.setUserId(userId); operationLogService.addOperationLog("t_recharge_withdraw_info", admin.getUserName(), IConstants.INSERT, admin.getLastIP(), 0, " 进行充值扣费信息添加处理", 2); JSONUtils.printStr("1"); } catch (Exception e) { JSONUtils.printStr("0"); log.error(e); e.printStackTrace(); } return null; } /** * 添加会员奖励 */ public String addBackRecharge() throws Exception { String moneyStr = SqlInfusion.FilteSqlInfusion(paramMap.get("dealMoney")); double dealMoney = Convert.strToDouble(moneyStr, 0); if (dealMoney <= 0) { JSONUtils.printStr2("会员奖励金额错误"); return null; } String _code = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("code")), null); String pageId = SqlInfusion.FilteSqlInfusion(paramMap.get("pageId")); // 验证码 String code = (String) session().getAttribute(pageId + "_checkCode"); if (code == null || !code.equals(_code)) { JSONUtils.printStr2("验证码错误"); return null; } Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); String userIdParam = SqlInfusion.FilteSqlInfusion(paramMap.get("userId")); long userId = Convert.strToLong(userIdParam, -1); String remark = SqlInfusion.FilteSqlInfusion(paramMap.get("remark")); // String username = // SqlInfusion.FilteSqlInfusion(paramMap.get("username")); // String addIP = ServletUtils.getRemortIp(); Date now = new Date(); String usrCustId = SqlInfusion.FilteSqlInfusion(paramMap.get("usrCustId")); try { long ordId = fundManagementService.addBankRecharge(userId, admin.getId(), dealMoney, remark, now, usrCustId); if (ordId <= 0) { JSONUtils.printStr2("会员奖励失败"); return null; } // fundManagementService.addBackW(userId, admin.getId(), // IConstants.RECHARAGE, dealMoney, remark, new Date(), // IConstants.FUNDMODE_RECHARGE_HANDLE, addIP, username, "会员奖励,备注:" // + remark); this.setUserId(userId); operationLogService.addOperationLog("t_recharge_withdraw_info", admin.getUserName(), IConstants.INSERT, admin.getLastIP(), 0, " 进行充值扣费信息添加处理", 2); JSONUtils.printStr2("奖励成功"); } catch (Exception e) { JSONUtils.printStr2("奖励失败"); log.error(e); e.printStackTrace(); } return null; } /** * 商户无卡代扣 */ public String addBackUserRecharge() throws Exception { String moneyStr = SqlInfusion.FilteSqlInfusion(paramMap.get("dealMoney")); double dealMoney = Convert.strToDouble(moneyStr, 0); if (dealMoney <= 0) { JSONUtils.printStr2("充值金额错误"); return null; } String _code = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("code")), null); String pageId = SqlInfusion.FilteSqlInfusion(paramMap.get("pageId")); // 验证码 String code = (String) session().getAttribute(pageId + "_checkCode"); if (code == null || !code.equals(_code)) { JSONUtils.printStr2("验证码错误"); return null; } Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); String userIdParam = SqlInfusion.FilteSqlInfusion(paramMap.get("userId")); long userId = Convert.strToLong(userIdParam, -1); String remark = SqlInfusion.FilteSqlInfusion(paramMap.get("remark")); Date now = new Date(); String usrCustId = SqlInfusion.FilteSqlInfusion(paramMap.get("usrCustId")); try { long ordId = fundManagementService.addBankUserRecharge(userId, admin.getId(), dealMoney, remark, now, usrCustId); if (ordId <= 0) { JSONUtils.printStr2("商户代扣充值失败"); return null; } this.setUserId(userId); operationLogService.addOperationLog("t_recharge_withdraw_info", admin.getUserName(), IConstants.INSERT, admin.getLastIP(), 0, " 进行充值扣费信息添加处理", 2); JSONUtils.printStr2("商户代扣充值成功"); } catch (Exception e) { JSONUtils.printStr2("商户代扣充值失败"); log.error(e); e.printStackTrace(); } return null; } @SuppressWarnings("unused") public String updateWithdraws() throws SQLException, DataException, UnsupportedEncodingException { String wids = SqlInfusion.FilteSqlInfusion(request("wids")); Long adminId = Convert.strToLong(request("adminId"), -100); Integer oldStatus = request("oldStatus") == null ? -1 : Convert.strToInt(request("oldStatus"), -1); String[] allIds = wids.split(",");// 进行全选删除的时候获得多个id值 if (allIds.length <= 0) { return INPUT; } String[] strs = null; double mm, sum; float poundage; Long wid = 0L, userId = -100L; long result = -1L; for (int i = 0, n = allIds.length; i < n; i++) { result = -1L; strs = allIds[i].split(";"); wid = Convert.strToLong(strs[0], -1); mm = sum = Convert.strToDouble(strs[1], 0); poundage = Convert.strToFloat(strs[2], 0); userId = Convert.strToLong(strs[3], -1); if (poundage > 0) {// 有手续费的时候,操作金额为减掉手续费的值 mm = sum - poundage; } } return SUCCESS; } public List<Map<String, Object>> getRechargeTypes() { if (rechargeTypes == null) { rechargeTypes = new ArrayList<Map<String, Object>>(); Map<String, Object> mp = null; mp = new HashMap<String, Object>(); mp.put("typeId", 1); mp.put("typeValue", "支付宝支付"); rechargeTypes.add(mp); mp = new HashMap<String, Object>(); mp.put("typeId", 2); mp.put("typeValue", "环迅支付"); rechargeTypes.add(mp); mp = new HashMap<String, Object>(); mp.put("typeId", 3); mp.put("typeValue", "国付宝"); rechargeTypes.add(mp); mp = new HashMap<String, Object>(); mp.put("typeId", 4); mp.put("typeValue", "线下充值"); rechargeTypes.add(mp); mp = new HashMap<String, Object>(); mp.put("typeId", 5); mp.put("typeValue", "手工充值"); rechargeTypes.add(mp); mp = new HashMap<String, Object>(); mp.put("typeId", 6); mp.put("typeValue", "虚拟充值"); rechargeTypes.add(mp); mp = new HashMap<String, Object>(); mp.put("typeId", 7); mp.put("typeValue", "奖励充值"); rechargeTypes.add(mp); } return rechargeTypes; } public void setRechargeTypes(List<Map<String, Object>> rechargeTypes) { this.rechargeTypes = rechargeTypes; } public MyHomeService getMyHomeSerivce() { return myHomeSerivce; } public void setMyHomeSerivce(MyHomeService myHomeSerivce) { this.myHomeSerivce = myHomeSerivce; } public FrontMyPaymentService getFrontpayService() { return frontpayService; } public List<Map<String, Object>> getResults() { if (results == null) { results = new ArrayList<Map<String, Object>>(); Map<String, Object> mp = null; mp = new HashMap<String, Object>(); mp.put("resultId", -100); mp.put("resultValue", "全部"); results.add(mp); mp = new HashMap<String, Object>(); mp.put("resultId", 1); mp.put("resultValue", "成功"); results.add(mp); mp = new HashMap<String, Object>(); mp.put("resultId", 0); mp.put("resultValue", "失败"); results.add(mp); mp = new HashMap<String, Object>(); mp.put("resultId", 2); mp.put("resultValue", "审核中"); results.add(mp); } return results; } public void setResults(List<Map<String, Object>> results) { this.results = results; } public List<Map<String, Object>> getStatus() { if (status == null) { status = new ArrayList<Map<String, Object>>(); Map<String, Object> mp = null; mp = new HashMap<String, Object>(); mp.put("statusId", 0); mp.put("statusValue", "全部"); status.add(mp); mp = new HashMap<String, Object>(); mp.put("statusId", 1); mp.put("statusValue", "审核中"); status.add(mp); mp = new HashMap<String, Object>(); mp.put("statusId", 2); mp.put("statusValue", "成功"); status.add(mp); mp = new HashMap<String, Object>(); mp.put("statusId", 3); mp.put("statusValue", "取消"); status.add(mp); mp = new HashMap<String, Object>(); mp.put("statusId", 4); mp.put("statusValue", "转账中"); status.add(mp); mp = new HashMap<String, Object>(); mp.put("statusId", 5); mp.put("statusValue", "失败"); status.add(mp); } return status; } public void setStatus(List<Map<String, Object>> status) { this.status = status; } public List<Map<String, Object>> getOperateType() { if (operateType == null) { operateType = new ArrayList<Map<String, Object>>(); Map<String, Object> mp = null; mp = new HashMap<String, Object>(); mp.put("typeId", 1); mp.put("tvalue", "手动充值"); operateType.add(mp); mp = new HashMap<String, Object>(); mp.put("typeId", 2); mp.put("tvalue", "手动扣费"); operateType.add(mp); } return operateType; } public void setOperateType(List<Map<String, Object>> operateType) { this.operateType = operateType; } public String queryWithdrawInfo() throws SQLException, DataException { Long wid = request("wid") == null ? -100 : Convert.strToLong(request("wid"), -100); try { getWithdrawInfo(wid, true); } catch (Exception e) { log.error(e); e.printStackTrace(); } return SUCCESS; } public String queryWithdrawTransInfo() throws SQLException, DataException { Long wid = request("wid") == null ? -100 : Convert.strToLong(request("wid"), -100); try { getWithdrawInfo(wid, false); } catch (Exception e) { log.error(e); e.printStackTrace(); } return SUCCESS; } private void getWithdrawInfo(Long wid, boolean check) throws Exception { Map<String, String> b_map = fundManagementService.queryOneWithdraw(wid); request().setAttribute("wid", wid); String checkId = "", checkTime = "", remark = ""; if (b_map != null) { request().setAttribute("realName", b_map.get("realName")); request().setAttribute("branchBankName", b_map.get("bankName") + " " + b_map.get("branchBankName")); request().setAttribute("cardNo", b_map.get("acount")); request().setAttribute("sum", b_map.get("sum")); request().setAttribute("realMoney", b_map.get("realMoney")); request().setAttribute("poundage", b_map.get("poundage")); request().setAttribute("applyTime", b_map.get("applyTime")); request().setAttribute("ipAddress", b_map.get("ipAddress")); request().setAttribute("userId", b_map.get("userId")); request().setAttribute("username", b_map.get("name")); request().setAttribute("trxId", b_map.get("trxId")); String status = b_map.get("status"); if (status.equals(IConstants.WITHDRAW_CHECK + "")) { request().setAttribute("status", IConstants.WITHDRAW_CHECK_STR); } else if (status.equals(IConstants.WITHDRAW_SUCCESS + "")) { request().setAttribute("status", IConstants.WITHDRAW_SUCCESS_STR); } else if (status.equals(IConstants.WITHDRAW_TRANS + "")) { request().setAttribute("status", IConstants.WITHDRAW_TRANS_STR); } else if (status.equals(IConstants.WITHDRAW_FAIL + "")) { request().setAttribute("status", IConstants.WITHDRAW_FAIL_STR); } userId = Convert.strToLong(b_map.get("userId"), -100); checkId = b_map.get("checkId"); checkTime = b_map.get("checkTime"); remark = b_map.get("remark"); } String defaultValue = "0.00"; Map<String, String> rw_map = fundManagementService.queryUserRWInfo(userId, IConstants.RECHARGE_SUCCESS, IConstants.WITHDRAW_SUCCESS); if (rw_map != null) { if (rw_map.get("r_total").equals("")) request().setAttribute("r_total", defaultValue);// 充值成功总额 else request().setAttribute("r_total", rw_map.get("r_total"));// 充值成功总额 if (rw_map.get("w_total").equals("")) request().setAttribute("w_total", defaultValue);// 提现成功总额 else request().setAttribute("w_total", rw_map.get("w_total"));// 提现成功总额 if (rw_map.get("real_Amount").equals("")) request().setAttribute("real_Amount", defaultValue);// 投标成功总额 else request().setAttribute("real_Amount", rw_map.get("real_Amount"));// 投标成功总额 if (rw_map.get("retSum").equals("")) request().setAttribute("real_Amount", defaultValue); else request().setAttribute("retSum", rw_map.get("retSum")); request().setAttribute("withdraw_max", IConstants.WITHDRAW_MAX); } Map<String, String> u_map = userService.queryUserById(userId); if (u_map != null) { request().setAttribute("username", u_map.get("username")); request().setAttribute("usableSum", u_map.get("usableSum")); request().setAttribute("usrCustId", u_map.get("usrCustId")); } if (!check) {// 查看跟审核的时候,还要查询审核信息 Map<String, String> ms = adminService.queryAdminById(Convert.strToLong(checkId, -100)); String rk = "审核人:" + ms.get("userName") + ", 审核时间:" + checkTime + ", 审核备注:" + remark; request().setAttribute("rk", rk); } } /** * 合和年 后台复核--转账中的提现 * * @return * @throws IOException * @throws SQLException */ public String updateWithdrawTransfer() throws Exception { String ordId = SqlInfusion.FilteSqlInfusion(paramMap.get("wid")); String transAmt = SqlInfusion.FilteSqlInfusion(paramMap.get("sum")); String usrCustId = SqlInfusion.FilteSqlInfusion(paramMap.get("usrCustId")); String status = SqlInfusion.FilteSqlInfusion(paramMap.get("status")); String trxId = SqlInfusion.FilteSqlInfusion(paramMap.get("trxId")); Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); String auditFlag = ""; if (status.equals("2")) { auditFlag = "S"; } else if (status.equals("5")) { auditFlag = "R"; } else { JSONUtils.printStr2("转账状态错误"); return null; } String result = fundManagementService.updateWithdrawTransfer(Convert.strToLong(ordId, -1), Convert.strToInt(status, -1), admin.getId(), ServletUtils.getRemortIp(), trxId, transAmt, usrCustId, auditFlag); JSONUtils.printStr2(result); return null; } /** * 转账中的提现--后台管理员审核 */ public String updateWithdrawCheck() throws Exception { Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); JSONObject obj = new JSONObject(); Integer status = paramMap.get("status") == null ? -1 : Convert.strToInt(paramMap.get("status"), -1); Double money = paramMap.get("money") == null ? 0 : Convert.strToDouble(paramMap.get("money"), 0); float poundage = paramMap.get("poundage") == null ? 0 : Convert.strToFloat(paramMap.get("poundage"), 0); String remark = SqlInfusion.FilteSqlInfusion(paramMap.get("remark") == null ? "" : paramMap.get("remark")); Long wid = paramMap.get("wid") == null ? -1 : Convert.strToLong(paramMap.get("wid"), -1); Long adminId = admin.getId(); Long userId = paramMap.get("userId") == null ? -1 : Convert.strToLong(paramMap.get("userId"), -1); String ipAddress = ServletUtils.getRemortIp(); String trxId = Convert.strToStr(paramMap.get("trxId"), ""); if (money <= 0) { obj.put("msg", "到账金额格式错误"); JSONUtils.printObject(obj); return null; } if (poundage < 0) { obj.put("msg", "手续费格式错误"); JSONUtils.printObject(obj); return null; } Map<String, String> retMap = fundManagementService.updateWithdraw(wid, money, poundage, status, remark, adminId, userId, ipAddress, trxId); long retVal = -1; retVal = Convert.strToLong(retMap.get("ret") + "", -1); session().removeAttribute("randomCode"); if (retVal <= 0) { obj.put("msg", retMap.get("ret_desc")); JSONUtils.printObject(obj); return null; } else { // 添加操作日志 operationLogService.addOperationLog("t_withdraw", admin.getUserName(), IConstants.UPDATE, admin.getLastIP(), 0, "提现审核", 2); obj.put("msg", "审核成功"); JSONUtils.printObject(obj); return null; } } /** * 根据用户通知,发送站内信、邮件、手机短信提醒 * * @throws DataException * @throws SQLException * @throws UnsupportedEncodingException * flag 标志是否有余额可扣 */ protected void sendMessage(String title, String content, Long userId, String mode, boolean flag) throws SQLException, DataException, UnsupportedEncodingException { try { // String title = "资金变动提醒"; // 查找通知类型的通知状态 List<Map<String, Object>> lists = selectedService.queryNoticeMode(userId, mode); if (lists != null && lists.size() > 0) { // [通知方式(1 邮件 2 站内信 3 短信] if (lists.get(0).get("flag").toString().equals(String.valueOf(IConstants.NOTICE_ON))) { sendMessageService.emailSendTemplate(title, content, userId); } if (lists.get(1).get("flag").toString().equals(String.valueOf(IConstants.NOTICE_ON))) { sendMessageService.mailSend(title, content, userId); } if (lists.get(2).get("flag").toString().equals(String.valueOf(IConstants.NOTICE_ON))) { if (flag) {// 有余额可扣的清空下,才进行短信的发送 String dateStr = DateUtil.dateToString(new Date()); Map<String, String> u_map = userService.queryUserById(userId); String userName = ""; if (u_map != null && u_map.size() > 0) { userName = u_map.get("username"); } String newContent = "尊敬的" + userName + ":[" + dateStr + "]" + content; @SuppressWarnings("unused") Long result = sendMessageService.noteSend(newContent, userId); } } } } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } } public String queryBackCashDetailsInit() { return SUCCESS; } public long getUserId() { return userId; } public void setUserId(long userId) { this.userId = userId; } public UserService getUserService() { return userService; } public void setUserService(UserService userService) { this.userService = userService; } public AdminService getAdminService() { return adminService; } public void setAdminService(AdminService adminService) { this.adminService = adminService; } public SelectedService getSelectedService() { return selectedService; } public void setSelectedService(SelectedService selectedService) { this.selectedService = selectedService; } public SendMessageService getSendMessageService() { return sendMessageService; } public void setSendMessageService(SendMessageService sendMessageService) { this.sendMessageService = sendMessageService; } public OperationLogService getOperationLogService() { return operationLogService; } public void setOperationLogService(OperationLogService operationLogService) { this.operationLogService = operationLogService; } /** * 打开或关闭 自动还款 * * @return * @throws Exception */ public String openOrCloseAutoRepay() throws Exception { FileOutputStream fos = null; try { String filepath = this.getClass().getClassLoader().getResource("config.properties").toURI().getPath(); InputStream input = new FileInputStream(filepath); Properties pro = new Properties(); pro.load(input); input.close(); String auto = pro.getProperty("com.shove.autoRepay"); fos = new FileOutputStream(filepath); if (auto != null && "yes".equals(auto.trim())) pro.setProperty("com.shove.autoRepay", "no"); else pro.setProperty("com.shove.autoRepay", "yes"); pro.store(fos, ""); } catch (Exception e) { e.printStackTrace(); throw e; } finally { if (fos != null) fos.close(); } return SUCCESS; } /** * 查询 充值扣费 详情初始化 * * @return */ public String queryRechargeAndFeeInit() { request().setAttribute("userId", request("userId")); return SUCCESS; } /** * 查询 充值扣费 详情 * * @return * @throws Exception */ public String queryRechargeAndFeeList() throws Exception { String userName = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("userName")), null); try { fundManagementService.queryRechargeAndFeeList(pageBean, userName); int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); request().setAttribute("pageNum", pageNum); request().setAttribute("totalNum", pageBean.getTotalNum()); } catch (Exception e) { log.error(e); e.printStackTrace(); throw e; } return SUCCESS; } /** * 导出充值扣费明细 * * @return */ public String exportRechargeAndFee() { pageBean.pageNum = 1; pageBean.setPageSize(100000); String userName = SqlInfusion.FilteSqlInfusion(request("userName")); if (userName != null) userName = Convert.strToStr(userName, ""); try { Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); // 中文乱码转换 userName = URLDecoder.decode(userName, "UTF-8"); // 待还款详情 // fundManagementService.queryBackCashList(pageBean, uid, checkUser, // startTime, endTime, type, uname); if (pageBean.getPage() == null) { getOut().print("<script>alert(' 导出记录条数不能为空! ');window.history.go(-1);</script>"); return null; } if (pageBean.getPage().size() > IConstants.EXCEL_MAX) { getOut().print("<script>alert(' 导出记录条数不能大于50000条 ');window.history.go(-1);</script>"); return null; } fundManagementService.changeFigure2(pageBean); HSSFWorkbook wb = ExcelUtils.exportExcel("充值明细", pageBean.getPage(), new String[] { "用户名", "真实姓名", "类型", "操作金额", "手续费", "操作人员", "充值结果", "操作时间", "备注" }, new String[] { "uname", "realName", "type", "dealMoney", "cost", "userName", "result", "checkTime", "remark" }); this.export(wb, new Date().getTime() + ".xls"); // 添加系统操作日志 operationLogService.addOperationLog("v_t_user_backrw_lists", admin.getUserName(), IConstants.EXCEL, admin.getLastIP(), 0, "导出充值明细", 2); } catch (Exception e) { e.printStackTrace(); } return null; } public void setFrontpayService(FrontMyPaymentService frontpayService) { this.frontpayService = frontpayService; } /** 平台取现列表 初始化 */ public String proxyWithdrawInit() { return SUCCESS; } /** 平台取现 列表 */ public String proxyWithdrawList() throws Exception { String username = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("username")), ""); String startTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("startTime")), ""); String endTime = Convert.strToStr(SqlInfusion.FilteSqlInfusion(paramMap.get("endTime")), ""); int status = Convert.strToInt(SqlInfusion.FilteSqlInfusion(paramMap.get("status")), -1); if (StringUtils.isNotBlank(endTime)) { endTime = FrontMyPaymentAction.changeEndTime(endTime); } try { fundManagementService.queryProxyWithList(pageBean, username, startTime, endTime, status); } catch (Exception e) { e.printStackTrace(); } // List<Map<String, Object>> list = pageBean.getPage(); // if (null != list) { // long id = 0; // String AvlBal = "0.00"; // String FrzBal = "0.00"; // // // 后台查询余额 接口 // for (int i = 0; i < list.size(); i++) { // Map<String, Object> map = list.get(i); // id = Convert.strToLong(map.get("id") + "", -1); // String usrCustId = map.get("usrCustId") + ""; // if (Convert.strToLong(usrCustId, -1) <= 0) { // continue; // } // String usableSumStr = map.get("usableSum") + ""; // String freezeSum = map.get("freezeSum") + ""; // 系统中用户冻结金额 // String jsonStr = ChinaPnRInterface.queryBalanceBg(usrCustId); // JSONObject json = JSONObject.fromObject(jsonStr); // int RespCode = json.getInt("RespCode"); // if (RespCode != 0) { // continue; // } // AvlBal = json.getString("AvlBal"); // 用户在汇付可用余额 // FrzBal = json.getString("FrzBal"); // 用户在汇付冻结金额 // AvlBal = AvlBal.replaceAll(",", ""); // FrzBal = FrzBal.replaceAll(",", ""); // if ((usableSumStr != AvlBal) || freezeSum != FrzBal) { // myHomeSerivce.usableAmountUpdate(id, Double.valueOf(AvlBal), Double.valueOf(FrzBal)); // } // } // } int pageNum = (int) (pageBean.getPageNum() - 1) * pageBean.getPageSize(); request().setAttribute("pageNum", pageNum); request().setAttribute("totalNum", pageBean.getTotalNum()); return SUCCESS; } /** 平台取现 初始化 */ public String merCashInit() { request().setAttribute("userId", request("userId")); request().setAttribute("username", request("username")); request().setAttribute("usrCustId", request("usrCustId")); request().setAttribute("cardNo", request("cardNo")); return SUCCESS; } /** 平台提交取现请求 */ public String merCashSubmit() throws Exception { String usrCustId = request("usrCustId"); String userId = request("userId"); String username = Convert.strToStr(request("username"), ""); double transAmt = Convert.strToDouble(request("transAmt"), 0); Admin admin = (Admin) session().getAttribute(IConstants.SESSION_ADMIN); String ret = fundManagementService.addMerCash(transAmt, userId, admin.getId(), usrCustId, username); JSONUtils.printStr2(ret); return null; } }