|
|
|
@ -76,13 +76,6 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService {
|
|
|
|
|
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)) {
|
|
|
|
|
try {
|
|
|
|
|
Map<String, Date> settleDate = new HashMap<>();
|
|
|
|
@ -137,13 +130,13 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService {
|
|
|
|
|
List<Date> dateList = TimeZoneUtils.getStatetime();
|
|
|
|
|
for (Date dateStr : dateList) {
|
|
|
|
|
try {
|
|
|
|
|
doVerifyAlipayOnlineSettleLog(dateStr);
|
|
|
|
|
doVerifyAlipaySettleLog(dateStr);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
logger.error("获取" + dateStr + "AlipayOnline清算记录失败", e);
|
|
|
|
|
logger.error("获取" + dateStr + "Alipay清算记录失败", e);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
logger.error("获取AlipayOnline清算记录时间失败", e);
|
|
|
|
|
logger.error("获取Alipay清算记录时间失败", e);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
@ -292,30 +285,50 @@ public class PlatformClearAnalysisServiceImpl implements PlatformClearService {
|
|
|
|
|
return alipaySettleLog;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public JSONObject getSystemClearingAmount(Date settle_date, SettlementLog settlementLog, String channel){
|
|
|
|
|
public JSONObject getSystemClearingAmount(Date settle_date, SettlementLog settlementLog, String channel) throws Exception {
|
|
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 02:00:00");
|
|
|
|
|
JSONObject sysLogs = new JSONObject();
|
|
|
|
|
String start_date = null;
|
|
|
|
|
String end_date = null;
|
|
|
|
|
if (StringUtils.equals("Wechat", channel)) {
|
|
|
|
|
start_date = sdf.format(settlementLog.getStart());
|
|
|
|
|
end_date = sdf.format(settlementLog.getEnd());
|
|
|
|
|
logger.info("Wechat System Settle Logs:" + start_date + "<====>" + end_date);
|
|
|
|
|
} else {
|
|
|
|
|
if (StringUtils.equals("Alipay", 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);
|
|
|
|
|
logger.info("Alipay System Settle Logs:"+start_date+"<====>" +end_date);
|
|
|
|
|
|
|
|
|
|
} else if (StringUtils.equals("Wechat", channel)) {
|
|
|
|
|
start_date = sdf.format(settlementLog.getStart());
|
|
|
|
|
end_date = sdf.format(settlementLog.getEnd());
|
|
|
|
|
logger.info("Wechat System Settle Logs:"+start_date+"<====>" +end_date);
|
|
|
|
|
} else {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//2017-11-01后微信手续费0.5
|
|
|
|
|
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 {
|
|
|
|
|
JSONObject creditLogs = platformSettlementMapper.calculateSysSettleLog(start_date, end_date, channel, "Credit");
|
|
|
|
|
JSONObject creditLogs = platformSettlementMapper.calculateSysSettleLog(start_date, end_date, channel, "Credit", wechat_rate);
|
|
|
|
|
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_net_fee", creditLogs.getBigDecimal("aud_amount").subtract(debitLogs.getBigDecimal("aud_amount")));
|
|
|
|
|
sysLogs.put("sys_surcharge", creditLogs.getBigDecimal("charge_amount").subtract(debitLogs.getBigDecimal("charge_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_settle_fee", sysLogs.getBigDecimal("sys_net_fee").subtract(sysLogs.getBigDecimal("sys_surcharge")));
|
|
|
|
|
return sysLogs;
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
//do nothing
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|