master
Tayl0r 7 years ago
parent eb5fdb48df
commit ae589d563a

@ -76,6 +76,13 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService {
logger.error("PlatformClearAnalysisServiceImpl.verifySettleLogByDate ==> 校验" + end_date + "支付宝到账失败:", e); logger.error("PlatformClearAnalysisServiceImpl.verifySettleLogByDate ==> 校验" + end_date + "支付宝到账失败:", e);
} }
} }
if (StringUtils.equals("AlipayOnline", channel)) {
try {
doVerifyAlipayOnlineSettleLog(sdfClear.parse(end_date));
} catch (Exception e) {
logger.error("PlatformClearAnalysisServiceImpl.verifySettleLogByDate ==> 校验" + end_date + "支付宝Online到账失败", e);
}
}
if (StringUtils.equals("Wechat", channel)) { if (StringUtils.equals("Wechat", channel)) {
try { try {
Map<String, Date> settleDate = new HashMap<>(); Map<String, Date> settleDate = new HashMap<>();
@ -130,13 +137,13 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService {
List<Date> dateList = TimeZoneUtils.getStatetime(); List<Date> dateList = TimeZoneUtils.getStatetime();
for (Date dateStr : dateList) { for (Date dateStr : dateList) {
try { try {
doVerifyAlipaySettleLog(dateStr); doVerifyAlipayOnlineSettleLog(dateStr);
} catch (Exception e) { } catch (Exception e) {
logger.error("获取" + dateStr + "Alipay清算记录失败", e); logger.error("获取" + dateStr + "AlipayOnline清算记录失败", e);
} }
} }
} catch (Exception e) { } catch (Exception e) {
logger.error("获取Alipay清算记录时间失败", e); logger.error("获取AlipayOnline清算记录时间失败", e);
} }
} }
@ -285,50 +292,30 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService {
return alipaySettleLog; return alipaySettleLog;
} }
public JSONObject getSystemClearingAmount(Date settle_date, SettlementLog settlementLog, String channel) throws Exception { public JSONObject getSystemClearingAmount(Date settle_date, SettlementLog settlementLog, String channel){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 02:00:00"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 02:00:00");
JSONObject sysLogs = new JSONObject(); JSONObject sysLogs = new JSONObject();
String start_date = null; String start_date = null;
String end_date = null; String end_date = null;
if (StringUtils.equals("Alipay", channel)) { if (StringUtils.equals("Wechat", channel)) {
JSONObject lastClearDay = estimateAnalysisMapper.findLastCleanDays(sdfClear.format(settle_date), 1);
start_date = sdf.format(lastClearDay.getDate("date_str"));
end_date = sdf.format(settle_date);
logger.info("Alipay System Settle Logs:"+start_date+"<====>" +end_date);
} else if (StringUtils.equals("Wechat", channel)) {
start_date = sdf.format(settlementLog.getStart()); start_date = sdf.format(settlementLog.getStart());
end_date = sdf.format(settlementLog.getEnd()); end_date = sdf.format(settlementLog.getEnd());
logger.info("Wechat System Settle Logs:"+start_date+"<====>" +end_date); logger.info("Wechat System Settle Logs:" + start_date + "<====>" + end_date);
} else { } else {
return null; JSONObject lastClearDay = estimateAnalysisMapper.findLastCleanDays(sdfClear.format(settle_date), 1);
} start_date = sdf.format(lastClearDay.getDate("date_str"));
end_date = sdf.format(settle_date);
//2017-11-01后微信手续费0.5 logger.info("Alipay System Settle Logs:" + start_date + "<====>" + end_date);
BigDecimal wechat_rate;
if(end_date.compareTo("2017-11-01 03:00:00")<=0){
wechat_rate = new BigDecimal("0.006");
}else {
wechat_rate = new BigDecimal("0.005");
} }
try { try {
JSONObject creditLogs = platformSettlementMapper.calculateSysSettleLog(start_date, end_date, channel, "Credit", wechat_rate); JSONObject creditLogs = platformSettlementMapper.calculateSysSettleLog(start_date, end_date, channel, "Credit");
sysLogs.put("sys_pay_fee", creditLogs.getBigDecimal("aud_amount")); sysLogs.put("sys_pay_fee", creditLogs.getBigDecimal("aud_amount"));
JSONObject debitLogs = platformSettlementMapper.calculateSysSettleLog(start_date, end_date, channel, "Debit");
JSONObject debitLogs = platformSettlementMapper.calculateSysSettleLog(start_date, end_date, channel, "Debit", wechat_rate);
sysLogs.put("sys_refund_fee", debitLogs.getBigDecimal("aud_amount")); sysLogs.put("sys_refund_fee", debitLogs.getBigDecimal("aud_amount"));
sysLogs.put("sys_net_fee", creditLogs.getBigDecimal("aud_amount").subtract(debitLogs.getBigDecimal("aud_amount"))); sysLogs.put("sys_net_fee", creditLogs.getBigDecimal("aud_amount").subtract(debitLogs.getBigDecimal("aud_amount")));
if(StringUtils.equals("Alipay",channel)){
sysLogs.put("sys_surcharge",platformSettlementMapper.calculateRmbCharge(start_date, end_date, channel));
}else {
sysLogs.put("sys_surcharge", creditLogs.getBigDecimal("charge_amount").subtract(debitLogs.getBigDecimal("charge_amount"))); sysLogs.put("sys_surcharge", creditLogs.getBigDecimal("charge_amount").subtract(debitLogs.getBigDecimal("charge_amount")));
}
sysLogs.put("sys_settle_fee", sysLogs.getBigDecimal("sys_net_fee").subtract(sysLogs.getBigDecimal("sys_surcharge"))); sysLogs.put("sys_settle_fee", sysLogs.getBigDecimal("sys_net_fee").subtract(sysLogs.getBigDecimal("sys_surcharge")));
return sysLogs; return sysLogs;
} catch (Exception e) { } catch (Exception e) {
//do nothing //do nothing
e.printStackTrace(); e.printStackTrace();

@ -32,7 +32,7 @@ public interface PlatformSettlementMapper {
PageList<JSONObject> findSettleLogsAllMerchant(@Param("channel") String channel, PageBounds pageBounds); PageList<JSONObject> findSettleLogsAllMerchant(@Param("channel") String channel, PageBounds pageBounds);
JSONObject calculateSysSettleLog(@Param("start_date") String start_date, @Param("end_date") String end_date, @Param("channel") String channel, @Param("transaction_type") String type, @Param("wechat_rate") BigDecimal wechat_rate); JSONObject calculateSysSettleLog(@Param("start_date") String start_date, @Param("end_date") String end_date, @Param("channel") String channel, @Param("transaction_type") String type);
JSONObject calculateSysSettleLog5(@Param("start_date") String start_date, @Param("end_date") String end_date, @Param("channel") String channel, @Param("transaction_type") String type); JSONObject calculateSysSettleLog5(@Param("start_date") String start_date, @Param("end_date") String end_date, @Param("channel") String channel, @Param("transaction_type") String type);

@ -14,7 +14,7 @@
SELECT SELECT
sum(cny_amount) rmb_amount, sum(cny_amount) rmb_amount,
ifnull(sum(clearing_amount),0.00) aud_amount, ifnull(sum(clearing_amount),0.00) aud_amount,
ifnull(sum(ROUND(clearing_amount * #{wechat_rate},2)),0.00) charge_amount ifnull(sum(ROUND(channel_surcharge)),0.00) charge_amount
FROM FROM
pmt_transactions pmt_transactions
WHERE WHERE
@ -28,8 +28,8 @@
<select id="calculateRmbCharge" resultType="decimal"> <select id="calculateRmbCharge" resultType="decimal">
SELECT SELECT
IFNULL( IFNULL(
SUM(CASE transaction_type WHEN 'Credit' THEN ROUND(ROUND(cny_amount * 0.006, 2) / exchange_rate,2) SUM(CASE transaction_type WHEN 'Credit' THEN channel_surcharge)
WHEN 'Debit' THEN -ROUND(ROUND(cny_amount * 0.006, 2) / exchange_rate,2) WHEN 'Debit' THEN -channel_surcharge)
ELSE 0 END), ELSE 0 END),
0.00) ali_charge_amount 0.00) ali_charge_amount
FROM pmt_transactions FROM pmt_transactions

Loading…
Cancel
Save