global.dao.dbcp.xml:
<?xml version="1.0" encoding="UTF-8"?> <!-- 全局数据访问模型 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- =================== G4Studio平台数据源配置 ================== --> <!-- Apache Commons DBCP 数据源 <bean id="dataSourceG4" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${pmpf.jdbc.driverClassName}" /> <property name="url" value="${pmpf.jdbc.url}" /> <property name="username" value="${pmpf.jdbc.username}" /> <property name="password" value="${pmpf.jdbc.password}" /> <property name="initialSize" value="10" /> <property name="maxActive" value="30" /> <property name="maxIdle" value="15" /> <property name="minIdle" value="5" /> <property name="removeAbandoned" value="true" /> <property name="removeAbandonedTimeout" value="60" /> <property name="maxWait" value="10000" /> <property name="logAbandoned" value="true" /> </bean> --> <!-- Alibaba Druid 数据源 --> <bean id="dataSourceG4" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${pmpf.jdbc.url}" /> <property name="username" value="${pmpf.jdbc.username}" /> <property name="password" value="${pmpf.jdbc.password}" /> <!-- 配置初始化大小、最小、最大 --> <property name="initialSize" value="${pmpf.jdbc.initialSize}" /> <property name="maxActive" value="${pmpf.jdbc.maxActive}" /> <property name="minIdle" value="${pmpf.jdbc.minIdle}" /> <!-- 配置获取连接等待超时的时间 --> <property name="maxWait" value="${pmpf.jdbc.maxWait}" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="${pmpf.jdbc.minEvictableIdleTimeMillis}" /> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="${pmpf.jdbc.timeBetweenEvictionRunsMillis}" /> <property name="validationQuery" value="${pmpf.jdbc.validationQuery}" /> <property name="testWhileIdle" value="${pmpf.jdbc.testWhileIdle}" /> <property name="testOnBorrow" value="${pmpf.jdbc.testOnBorrow}" /> <property name="testOnReturn" value="${pmpf.jdbc.testOnReturn}" /> <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> <property name="poolPreparedStatements" value="${pmpf.jdbc.poolPreparedStatements}" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="${pmpf.jdbc.maxPoolPreparedStatementPerConnectionSize}" /> <!-- 配置监控统计拦截的filters --> <property name="filters" value="${pmpf.jdbc.filters}" /> <!-- 关闭长时间不使用的连接超时时间,单位秒 --> <property name="removeAbandoned" value="${pmpf.jdbc.removeAbandoned}" /> <property name="removeAbandonedTimeout" value="${pmpf.jdbc.removeAbandonedTimeout}" /> <property name="logAbandoned" value="${pmpf.jdbc.logAbandoned}" /> </bean> <!-- JNDI 数据源 <bean id="dataSourceG4" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>${global.datasource}</value> </property> </bean> --> <!-- 配置平台层面的qlmapClientFactory --> <bean id="sqlMapClientG4" class="org.g4studio.core.orm.xibatis.support.SqlMapClientFactoryBean"> <property name="configLocations"> <list> <value>config/g4/g4.sqlmap.xml</value> <value>classpath*:config/app/*.sqlmap.xml</value> </list> </property> <property name="dataSource" ref="dataSourceG4" /> </bean> <!-- 配置平台层面的G4Reader --> <bean id="g4Reader" class="org.g4studio.core.model.dao.impl.ReaderImpl"> <property name="sqlMapClient" ref="sqlMapClientG4" /> </bean> <!-- 配置平台层面的G4Dao --> <bean id="g4Dao" class="org.g4studio.core.model.dao.impl.DaoImpl"> <property name="sqlMapClient" ref="sqlMapClientG4" /> </bean> <!-- JDBC事务管理器配置 --> <bean id="transactionManagerG4" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource"> <ref bean="dataSourceG4" /> </property> </bean> <!-- 配置事务代理的基类 --> <bean id="baseTransactionProxyG4" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager"> <ref bean="transactionManagerG4" /> </property> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="do*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="del*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="drop*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="update*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="edit*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="modify*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="call*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="get*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="query*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="batch*">PROPAGATION_REQUIRED,-Exception</prop> <prop key="*">PROPAGATION_SUPPORTS,-Exception</prop> </props> </property> </bean> </beans>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> <!-- 退款处理--> <bean id="refundManageService" parent="baseTransactionProxyG4"> <property name="target"> <bean class="com.saicfc.pmpf.internal.manage.service.impl.RefundManageServiceImpl"> <property name="g4Dao" ref="g4Dao" /> <property name="refundInfoExpServiceMap"> <map> <entry key="ICBC" value-ref="icbcRefundManageService"/> <entry key="CEB" value-ref="cebRefundManageService"/> <entry key="BOC" value-ref="bocRefundManageService"/> <entry key="CCB" value-ref="ccbRefundManageService"/> <entry key="BOCOM" value-ref="bocomRefundManageService"/> <entry key="CIB" value-ref="cibRefundManageService"/> <entry key="CMB" value-ref="cmbRefundManageService"/> <entry key="CITIC" value-ref="citicRefundManageService"/> </map> </property> </bean> </property> </bean> <!-- 工商银行退款导出管理--> <bean id="icbcRefundManageService" parent="baseTransactionProxyG4"> <property name="target"> <bean class="com.saicfc.pmpf.internal.manage.renfund.impl.ICBCRefundInfoExportServiceImpl"> <property name="g4Dao" ref="g4Dao" /> </bean> </property> </bean> <!-- 光大银行退款导出管理--> <bean id="cebRefundManageService" parent="baseTransactionProxyG4"> <property name="target"> <bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CEBRefundInfoExportServiceImpl"> <property name="g4Dao" ref="g4Dao" /> </bean> </property> </bean> <!-- 中国银行退款导出管理--> <bean id="bocRefundManageService" parent="baseTransactionProxyG4"> <property name="target"> <bean class="com.saicfc.pmpf.internal.manage.renfund.impl.BOCRefundInfoExportServiceImpl"> <property name="g4Dao" ref="g4Dao" /> </bean> </property> </bean> <!-- 建设银行退款导出管理--> <bean id="ccbRefundManageService" parent="baseTransactionProxyG4"> <property name="target"> <bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CCBRefundInfoExportServiceImpl"> <property name="g4Dao" ref="g4Dao" /> </bean> </property> </bean> <!-- 交通银行退款导出管理--> <bean id="bocomRefundManageService" parent="baseTransactionProxyG4"> <property name="target"> <bean class="com.saicfc.pmpf.internal.manage.renfund.impl.BOCOMRefundInfoExportServiceImpl"> <property name="g4Dao" ref="g4Dao" /> </bean> </property> </bean> <!-- 兴业银行退款导出管理--> <bean id="cibRefundManageService" parent="baseTransactionProxyG4"> <property name="target"> <bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CIBRefundInfoExportServiceImpl"> <property name="g4Dao" ref="g4Dao" /> </bean> </property> </bean> <!-- 招商银行退款导出管理--> <bean id="cmbRefundManageService" parent="baseTransactionProxyG4"> <property name="target"> <bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CMBRefundInfoExportServiceImpl"> <property name="g4Dao" ref="g4Dao" /> </bean> </property> </bean> <!-- 中信银行退款导出管理--> <bean id="citicRefundManageService" parent="baseTransactionProxyG4"> <property name="target"> <bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CITICRefundInfoExportServiceImpl"> <property name="g4Dao" ref="g4Dao" /> </bean> </property> </bean> </beans>
/** * */ package com.saicfc.pmpf.internal.manage.service; import java.sql.SQLException; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import org.g4studio.core.metatype.Dto; /** * 退款处理 * @author lizhiyong * @version $Id: RefundManageService.java, v 0.1 2014年7月7日 下午1:33:34 Exp $ */ public interface RefundManageService { /** * 配置导出的详细信息 * @param channelCode * 渠道代码 * @param paymentMap * 订单信息 * @param map * 退款信息 * @return * @throws Exception */ @SuppressWarnings("rawtypes") public LinkedHashMap getExportDetailInfo(String channelCode, HashMap paymentMap, HashMap refundMap) throws Exception; /** * 设置导出文件头部信息 * @param channelCode 渠道代码 * @return * @throws Exception */ @SuppressWarnings("rawtypes") public LinkedHashMap getExportTile(String channelCode) throws Exception; /** * 上传网银格式文件的最大数目 * @param channelCode * @return */ public int maxCount(String channelCode); }
/** * */ package com.saicfc.pmpf.internal.manage.service.impl; import java.sql.SQLException; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.g4studio.core.metatype.Dto; import org.g4studio.core.metatype.impl.BaseDto; import org.g4studio.core.model.service.impl.BizServiceImpl; import com.saicfc.pmpf.internal.manage.renfund.RefundInfoExportService; import com.saicfc.pmpf.internal.manage.service.RefundManageService; import com.saicfc.pmpf.internal.manage.utils.CommonUtils; import com.saicfc.pmpf.internal.manage.utils.Contants; import com.saicfc.pmpf.internal.manage.utils.DateUtil; /** * 退款处理 * @author lizhiyong * @version $Id: RefundManageServiceImpl.java, v 0.1 2014年7月7日 下午1:33:49 Exp $ */ public class RefundManageServiceImpl extends BizServiceImpl implements RefundManageService { private Log logger = LogFactory.getLog(getClass()); private Map<String, RefundInfoExportService> refundInfoExpServiceMap; public void setRefundInfoExpServiceMap(Map<String, RefundInfoExportService> refundInfoExpServiceMap) { this.refundInfoExpServiceMap = refundInfoExpServiceMap; } @SuppressWarnings("rawtypes") @Override public LinkedHashMap getExportDetailInfo(String channelCode, HashMap paymentMap, HashMap refundMap) throws Exception { try { return this.refundInfoExpServiceMap.get(channelCode).getExportDetailInfo(paymentMap, refundMap); } catch (Exception e) { throw e; } } @SuppressWarnings("rawtypes") @Override public LinkedHashMap getExportTile(String channelCode) throws Exception { try { return this.refundInfoExpServiceMap.get(channelCode).getExportTile(); } catch (Exception e) { throw e; } } @Override public int maxCount(String channelCode) { return this.refundInfoExpServiceMap.get(channelCode).maxCount(); } }
package com.saicfc.pmpf.internal.manage.renfund; import java.util.HashMap; import java.util.LinkedHashMap; /** * 退款导出网银格式文件service * @author lizhiyong * @version $Id: RefundInfoExportService.java, v 0.1 2014年9月10日 下午4:06:26 Exp $ */ public interface RefundInfoExportService { /** * 配置导出的详细信息 * @param channelCode * 渠道代码 * @param paymentMap * 订单信息 * @param map * 退款信息 * @return */ @SuppressWarnings("rawtypes") public LinkedHashMap getExportDetailInfo(HashMap paymentMap, HashMap refundMap); /** * 设置导出文件头部信息 * @param channelCode 渠道代码 * @return */ @SuppressWarnings("rawtypes") public LinkedHashMap getExportTile(); /** * 设置最大导出条数 * @param channelCode * @return */ int maxCount(); }
package com.saicfc.pmpf.internal.manage.renfund.impl; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.LinkedHashMap; import org.g4studio.core.model.service.impl.BizServiceImpl; import com.saicfc.pmpf.internal.manage.renfund.RefundInfoExportService; import com.saicfc.pmpf.internal.manage.utils.DateUtil; public class ICBCRefundInfoExportServiceImpl extends BizServiceImpl implements RefundInfoExportService { /** * 配置工商银行导出的详细信息 * @param channelCode * @param paymentMap * @param map * @return * @see com.saicfc.pmpf.internal.manage.renfund.RefundInfoExportService#getExportDetailInfo(java.lang.String, java.util.HashMap, java.util.HashMap) */ @SuppressWarnings({ "rawtypes", "unchecked" }) @Override public LinkedHashMap getExportDetailInfo(HashMap paymentMap, HashMap refundMap) { LinkedHashMap datamMap = new LinkedHashMap(); String orderTime = DateUtil.convertDateToString("yyyyMMdd", (Date) paymentMap.get("orderTime")); String channelOrderNo = (String) paymentMap.get("channelOrderNo"); datamMap.put("1", channelOrderNo); datamMap.put("2", orderTime); BigDecimal amount = (BigDecimal) refundMap.get("amount"); String amountString = amount.divide(new BigDecimal(10)).toPlainString(); datamMap.put("3", amountString); datamMap.put("4", refundMap.get("remark") != null ? refundMap.get("remark") : ""); datamMap.put("5", ""); return datamMap; } /** * 设置工商银行导出文件头部信息 * @param channelCode * @return * @see com.saicfc.pmpf.internal.manage.renfund.RefundInfoExportService#getExportTile(java.lang.String) */ @SuppressWarnings({ "rawtypes", "unchecked" }) @Override public LinkedHashMap getExportTile() { LinkedHashMap map = new LinkedHashMap(); map.put("1", "订单号"); map.put("2", "支付日期"); map.put("3", "退货现金金额(整数金额 单位:分)"); map.put("4", "退货原因"); map.put("5", "退货积分商户金额(整数金额 单位 : 分)"); return map; } @Override public int maxCount() { return 0; } }