package com.sp2p.service.admin; import java.sql.Connection; import com.shove.Convert; import com.shove.data.dao.MySQL; import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.shove.base.BaseService; import com.shove.data.DataException; import com.shove.vo.PageBean; import com.sp2p.dao.admin.RiskManageDao; /** * @ClassName: RiskManageService.java * @Author: gang.lv * @Date: 2013-4-7 上午11:19:06 * @Copyright: 2013 www.emis.com Inc. All rights reserved. * @Version: V1.0.1 * @Descrb: 后台风险保障金处理 */ public class RiskManageService extends BaseService { public static Log log = LogFactory.getLog(RiskManageService.class); private RiskManageDao riskManageDao; public RiskManageDao getRiskManageDao() { return riskManageDao; } public void setRiskManageDao(RiskManageDao riskManageDao) { this.riskManageDao = riskManageDao; } /** * @MethodName: queryRiskByCondition * @Param: RiskManageService * @Author: gang.lv * @Date: 2013-4-7 上午11:22:29 * @Return: * @Descb: 查询风险保障金列表 * @Throws: */ public void queryRiskByCondition(String resource, String timeStart, String timeEnd, String riskType, PageBean pageBean) throws SQLException, DataException { Connection conn = connectionManager.getConnection(); StringBuffer condition =new StringBuffer(); if(StringUtils.isNotBlank(resource)){ condition.append(" and resource like '%"+StringEscapeUtils.escapeSql(resource.trim())+"%' "); } if(StringUtils.isNotBlank(riskType)){ condition.append(" and riskType ='"+StringEscapeUtils.escapeSql(riskType.trim())+"'"); } if(StringUtils.isNotBlank(timeStart)){ condition.append(" and riskDate >='"+StringEscapeUtils.escapeSql(timeStart)+"'"); } if(StringUtils.isNotBlank(timeEnd)){ condition.append(" and riskDate <='"+StringEscapeUtils.escapeSql(timeEnd)+"'"); } try { dataPage(conn, pageBean, "v_t_risk_list_h", "*", " ", condition.toString()); }catch (DataException e) { log.error(e); e.printStackTrace(); throw e; }finally{ conn.close(); } } /** * @throws SQLException * @throws DataException * @MethodName: queryRiskDetailById * @Param: RechargeService * @Author: gang.lv * @Date: 2013-4-6 下午11:10:26 * @Return: * @Descb: 查询风险保证金详情 * @Throws: */ public Map<String,String> queryRiskDetailById(long id) throws SQLException, DataException{ Connection conn = connectionManager.getConnection(); Map<String, String> map = new HashMap<String, String>(); try { map = riskManageDao.queryRiskDetailById(conn, id); } catch (SQLException e) { log.error(e); e.printStackTrace(); throw e; } catch (DataException e) { log.error(e); e.printStackTrace(); throw e; } finally { conn.close(); } return map; } /** * @MethodName: addRisk * @Param: RiskManageService * @Author: gang.lv * @Date: 2013-4-7 下午03:03:45 * @Return: * @Descb: 手动添加风险保障金 * @Throws: */ public long addRisk(double amountDouble,long adminId,String remark) throws SQLException, DataException { Connection conn = MySQL.getConnection(); long result = -1L; try { Map<String,String> map = riskManageDao.queryRiskBalance(conn); String riskBalance = map.get("riskBalance"); double riskBalanceDouble = 1000000+Convert.strToDouble(riskBalance, 0); Date riskDate = new Date(); String riskType = "收入"; String resource = "手动添加风险保障金"; result = riskManageDao.addRisk(conn,amountDouble,adminId,remark,riskBalanceDouble,riskDate,riskType,resource); if (result <= 0) { conn.rollback(); return -1; } conn.commit(); } catch (SQLException e) { log.error(e); conn.rollback(); e.printStackTrace(); throw e; } finally { conn.close(); } return result; } /** * @MethodName: deductedRisk * @Param: RiskManageService * @Author: gang.lv * @Date: 2013-4-7 下午03:03:33 * @Return: * @Descb: 手动扣除风险保障金 * @Throws: */ public long deductedRisk(double amountDouble,long adminId,String remark) throws SQLException, DataException { Connection conn = MySQL.getConnection(); long result = -1L; try { Map<String,String> map = riskManageDao.queryRiskBalance(conn); String riskBalance = map.get("riskBalance"); double riskBalanceDouble = 1000000+Convert.strToDouble(riskBalance, 0); Date riskDate = new Date(); String riskType = "支出"; String resource = "手动扣除风险保障金"; result = riskManageDao.deductedRisk(conn,amountDouble,adminId,remark,riskBalanceDouble,riskDate,riskType,resource); if (result <= 0) { conn.rollback(); return -1; } conn.commit(); } catch (SQLException e) { log.error(e); conn.rollback(); e.printStackTrace(); throw e; } finally { conn.close(); } return result; } }