|
|
|
@ -344,10 +344,10 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
|
|
|
|
|
int year = monthCal.get(Calendar.YEAR);
|
|
|
|
|
int month = monthCal.get(Calendar.MONTH) + 1;
|
|
|
|
|
|
|
|
|
|
List<JSONObject> list = financialPartnerCommissionMapper.list(year, month);
|
|
|
|
|
if (list != null && !list.isEmpty()) {
|
|
|
|
|
throw new ServerErrorException("请不要重复生成合伙人记录");
|
|
|
|
|
}
|
|
|
|
|
// List<JSONObject> list = financialPartnerCommissionMapper.list(year, month);
|
|
|
|
|
// if (list != null && !list.isEmpty()) {
|
|
|
|
|
// throw new ServerErrorException("请不要重复生成合伙人记录");
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
financialPartnerCommissionDetailMapper.clearData(year, month, 1);
|
|
|
|
|
financialPartnerCommissionMapper.clearData(year, month, 1);
|
|
|
|
@ -429,26 +429,73 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
|
|
|
|
|
JSONObject json = new JSONObject();
|
|
|
|
|
String channel = oneChannel.getKey();
|
|
|
|
|
if (orgInfo.get(channel.toLowerCase() + "_rate_value") == null) {
|
|
|
|
|
throw new ServerErrorException(orgInfo.getString("name") + "组织下" + oneChannel.getKey() + "成本手续费未设置");
|
|
|
|
|
if(StringUtils.equals(channel.toLowerCase() + "_rate_value","rpaypmt_card_rate_value")){
|
|
|
|
|
if(orgInfo.get("rpaypmt_domestic_card_rate_value")==null){
|
|
|
|
|
throw new ServerErrorException(orgInfo.getString("name") + "组织下domestic_card成本手续费未设置");
|
|
|
|
|
}
|
|
|
|
|
if(orgInfo.get("rpaypmt_overseas_card_rate_value")==null){
|
|
|
|
|
throw new ServerErrorException(orgInfo.getString("name") + "组织下overseas_card成本手续费未设置");
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
throw new ServerErrorException(orgInfo.getString("name") + "组织下" + oneChannel.getKey() + "成本手续费未设置");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (JSONObject params : oneChannel.getValue()) {
|
|
|
|
|
BigDecimal tmpClearingAmount = params.getBooleanValue("customer_surcharge") ? params.getBigDecimal("settle_amount") : params.getBigDecimal("clearing_amount");
|
|
|
|
|
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
|
|
|
|
|
//增加transaction_fee为null异常
|
|
|
|
|
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
|
|
|
|
|
params.put("transaction_fee", BigDecimal.ZERO);
|
|
|
|
|
if(StringUtils.equals("rpaypmt_card",channel.toLowerCase())){
|
|
|
|
|
//rpaypmt_domestic_card
|
|
|
|
|
BigDecimal tmpClearingAmount = params.getBooleanValue("customer_surcharge") ? params.getBigDecimal("settle_amount") : params.getBigDecimal("clearing_amount");
|
|
|
|
|
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("rpaypmt_domestic_card" + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
|
|
|
|
|
//增加transaction_fee为null异常
|
|
|
|
|
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
|
|
|
|
|
params.put("transaction_fee", BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge")
|
|
|
|
|
.subtract(params.getBigDecimal("surcharge_cashback"))
|
|
|
|
|
.subtract(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
//增加货币判断
|
|
|
|
|
int i = currencyScale(params.getString("clearing_currency"));
|
|
|
|
|
total = total.add(tmpClearingAmount);
|
|
|
|
|
total_surage = total_surage.add(tmpTotalSurcharge).setScale(i, RoundingMode.HALF_UP);
|
|
|
|
|
royalpay_surage = royalpay_surage.add(tmpClearingAmount.multiply(channelRate).setScale(i, RoundingMode.HALF_UP));
|
|
|
|
|
net_surage = net_surage.add(params.getBigDecimal("channel_surcharge"));
|
|
|
|
|
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
|
|
|
|
|
//rpaypmt_overseas_card
|
|
|
|
|
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("rpaypmt_overseas_card" + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
|
|
|
|
|
//增加transaction_fee为null异常
|
|
|
|
|
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
|
|
|
|
|
params.put("transaction_fee", BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
tmpTotalSurcharge = params.getBigDecimal("total_surcharge")
|
|
|
|
|
.subtract(params.getBigDecimal("surcharge_cashback"))
|
|
|
|
|
.subtract(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
//增加货币判断
|
|
|
|
|
total = total.add(tmpClearingAmount);
|
|
|
|
|
total_surage = total_surage.add(tmpTotalSurcharge).setScale(i, RoundingMode.HALF_UP);
|
|
|
|
|
royalpay_surage = royalpay_surage.add(tmpClearingAmount.multiply(channelRate).setScale(i, RoundingMode.HALF_UP));
|
|
|
|
|
net_surage = net_surage.add(params.getBigDecimal("channel_surcharge"));
|
|
|
|
|
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
}else{
|
|
|
|
|
BigDecimal tmpClearingAmount = params.getBooleanValue("customer_surcharge") ? params.getBigDecimal("settle_amount") : params.getBigDecimal("clearing_amount");
|
|
|
|
|
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
|
|
|
|
|
//增加transaction_fee为null异常
|
|
|
|
|
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
|
|
|
|
|
params.put("transaction_fee", BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge")
|
|
|
|
|
.subtract(params.getBigDecimal("surcharge_cashback"))
|
|
|
|
|
.subtract(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
//增加货币判断
|
|
|
|
|
int i = currencyScale(params.getString("clearing_currency"));
|
|
|
|
|
total = total.add(tmpClearingAmount);
|
|
|
|
|
total_surage = total_surage.add(tmpTotalSurcharge).setScale(i, RoundingMode.HALF_UP);
|
|
|
|
|
royalpay_surage = royalpay_surage.add(tmpClearingAmount.multiply(channelRate).setScale(i, RoundingMode.HALF_UP));
|
|
|
|
|
// net_surage = net_surage.add(getThirdPartyCharge(params.getString("channel"), params.getBigDecimal("clearing_amount"), channelCharge));
|
|
|
|
|
net_surage = net_surage.add(params.getBigDecimal("channel_surcharge"));
|
|
|
|
|
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge")
|
|
|
|
|
.subtract(params.getBigDecimal("surcharge_cashback"))
|
|
|
|
|
.subtract(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
//增加货币判断
|
|
|
|
|
int i = currencyScale(params.getString("clearing_currency"));
|
|
|
|
|
total = total.add(tmpClearingAmount);
|
|
|
|
|
total_surage = total_surage.add(tmpTotalSurcharge).setScale(i, RoundingMode.HALF_UP);
|
|
|
|
|
royalpay_surage = royalpay_surage.add(tmpClearingAmount.multiply(channelRate).setScale(i, RoundingMode.HALF_UP));
|
|
|
|
|
// net_surage = net_surage.add(getThirdPartyCharge(params.getString("channel"), params.getBigDecimal("clearing_amount"), channelCharge));
|
|
|
|
|
net_surage = net_surage.add(params.getBigDecimal("channel_surcharge"));
|
|
|
|
|
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
}
|
|
|
|
|
BigDecimal org_charge = total_surage.subtract(royalpay_surage);
|
|
|
|
|
json.put("channel", oneChannel.getKey());
|
|
|
|
@ -458,7 +505,7 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
|
|
|
|
|
json.put("net_charge", net_surage);
|
|
|
|
|
json.put("org_rate", orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value"));
|
|
|
|
|
json.put("royalpay_charge", royalpay_surage);
|
|
|
|
|
json.put("org_charge", org_charge);
|
|
|
|
|
json.put("org_charge", org_charge.signum()<0?new BigDecimal(0):org_charge);
|
|
|
|
|
json.put("commission_type", "1");
|
|
|
|
|
json.put("create_time", new Date());
|
|
|
|
|
amountByChannel.add(json);
|
|
|
|
@ -549,32 +596,83 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
|
|
|
|
|
}
|
|
|
|
|
for (JSONObject params : oneChannel.getValue()) {
|
|
|
|
|
BigDecimal tmpClearingAmount = params.getBooleanValue("customer_surcharge") ? params.getBigDecimal("settle_amount") : params.getBigDecimal("clearing_amount");
|
|
|
|
|
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
|
|
|
|
|
BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge").subtract(params.getBigDecimal("surcharge_cashback"));
|
|
|
|
|
//增加货币判断
|
|
|
|
|
//增加transaction_fee为null异常
|
|
|
|
|
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
|
|
|
|
|
params.put("transaction_fee", BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
int i = currencyScale(params.getString("clearing_currency"));
|
|
|
|
|
if (total.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
|
|
datefrom = params.getDate("transaction_time");
|
|
|
|
|
dateto = params.getDate("transaction_time");
|
|
|
|
|
} else {
|
|
|
|
|
if (params.getDate("transaction_time").before(datefrom)) {
|
|
|
|
|
if(StringUtils.equals(channel.toLowerCase() + "_rate_value","rpaypmt_card_rate_value")){
|
|
|
|
|
//rpaypmt_domestic_card
|
|
|
|
|
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal("rpaypmt_domestic_card_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
|
|
|
|
|
BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge").subtract(params.getBigDecimal("surcharge_cashback"));
|
|
|
|
|
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
|
|
|
|
|
params.put("transaction_fee", BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
int i = currencyScale(params.getString("clearing_currency"));
|
|
|
|
|
if (total.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
|
|
datefrom = params.getDate("transaction_time");
|
|
|
|
|
dateto = params.getDate("transaction_time");
|
|
|
|
|
} else {
|
|
|
|
|
if (params.getDate("transaction_time").before(datefrom)) {
|
|
|
|
|
datefrom = params.getDate("transaction_time");
|
|
|
|
|
}
|
|
|
|
|
if (params.getDate("transaction_time").after(dateto)) {
|
|
|
|
|
dateto = params.getDate("transaction_time");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
total = total.add(tmpClearingAmount);
|
|
|
|
|
total_surage = total_surage.add(tmpTotalSurcharge).setScale(i, RoundingMode.HALF_UP);
|
|
|
|
|
royalpay_surage = royalpay_surage.add(tmpClearingAmount.multiply(channelRate).setScale(i, RoundingMode.HALF_UP));
|
|
|
|
|
net_surage = net_surage.add(params.getBigDecimal("channel_surcharge"));
|
|
|
|
|
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
|
|
|
|
|
//rpaypmt_overseas_card
|
|
|
|
|
channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal( "rpaypmt_overseas_card_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
|
|
|
|
|
tmpTotalSurcharge = params.getBigDecimal("total_surcharge").subtract(params.getBigDecimal("surcharge_cashback"));
|
|
|
|
|
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
|
|
|
|
|
params.put("transaction_fee", BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
if (params.getDate("transaction_time").after(dateto)) {
|
|
|
|
|
if (total.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
|
|
datefrom = params.getDate("transaction_time");
|
|
|
|
|
dateto = params.getDate("transaction_time");
|
|
|
|
|
} else {
|
|
|
|
|
if (params.getDate("transaction_time").before(datefrom)) {
|
|
|
|
|
datefrom = params.getDate("transaction_time");
|
|
|
|
|
}
|
|
|
|
|
if (params.getDate("transaction_time").after(dateto)) {
|
|
|
|
|
dateto = params.getDate("transaction_time");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
total = total.add(tmpClearingAmount);
|
|
|
|
|
total_surage = total_surage.add(tmpTotalSurcharge).setScale(i, RoundingMode.HALF_UP);
|
|
|
|
|
royalpay_surage = royalpay_surage.add(tmpClearingAmount.multiply(channelRate).setScale(i, RoundingMode.HALF_UP));
|
|
|
|
|
//net_surage = net_surage.add(getThirdPartyCharge(params.getString("channel"), params.getBigDecimal("clearing_amount"), channelCharge));
|
|
|
|
|
net_surage = net_surage.add(params.getBigDecimal("channel_surcharge"));
|
|
|
|
|
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
total = total.add(tmpClearingAmount);
|
|
|
|
|
total_surage = total_surage.add(tmpTotalSurcharge).setScale(i, RoundingMode.HALF_UP);
|
|
|
|
|
royalpay_surage = royalpay_surage.add(tmpClearingAmount.multiply(channelRate).setScale(i, RoundingMode.HALF_UP));
|
|
|
|
|
net_surage = net_surage.add(params.getBigDecimal("channel_surcharge"));
|
|
|
|
|
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee"));
|
|
|
|
|
}else{
|
|
|
|
|
BigDecimal channelRate = params.get("org_rate") != null ? params.getBigDecimal("org_rate") : (orgInfo.getBigDecimal(channel.toLowerCase() + "_rate_value").divide(CommonConsts.HUNDRED, 4, RoundingMode.DOWN));
|
|
|
|
|
BigDecimal tmpTotalSurcharge = params.getBigDecimal("total_surcharge").subtract(params.getBigDecimal("surcharge_cashback"));
|
|
|
|
|
//增加货币判断
|
|
|
|
|
//增加transaction_fee为null异常
|
|
|
|
|
if (!params.containsKey("transaction_fee") || StringUtils.isEmpty(params.getString("transaction_fee"))) {
|
|
|
|
|
params.put("transaction_fee", BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
int i = currencyScale(params.getString("clearing_currency"));
|
|
|
|
|
if (total.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
|
|
datefrom = params.getDate("transaction_time");
|
|
|
|
|
dateto = params.getDate("transaction_time");
|
|
|
|
|
} else {
|
|
|
|
|
if (params.getDate("transaction_time").before(datefrom)) {
|
|
|
|
|
datefrom = params.getDate("transaction_time");
|
|
|
|
|
}
|
|
|
|
|
if (params.getDate("transaction_time").after(dateto)) {
|
|
|
|
|
dateto = params.getDate("transaction_time");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
total = total.add(tmpClearingAmount);
|
|
|
|
|
total_surage = total_surage.add(tmpTotalSurcharge).setScale(i, RoundingMode.HALF_UP);
|
|
|
|
|
royalpay_surage = royalpay_surage.add(tmpClearingAmount.multiply(channelRate).setScale(i, RoundingMode.HALF_UP));
|
|
|
|
|
//net_surage = net_surage.add(getThirdPartyCharge(params.getString("channel"), params.getBigDecimal("clearing_amount"), channelCharge));
|
|
|
|
|
net_surage = net_surage.add(params.getBigDecimal("channel_surcharge"));
|
|
|
|
|
transaction_fee = transaction_fee.add(params.getBigDecimal("transaction_fee")); }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
BigDecimal org_charge = total_surage.subtract(royalpay_surage);
|
|
|
|
|
if (channel.toLowerCase().equals("alipay_direct")) {
|
|
|
|
@ -599,7 +697,7 @@ public class CityPartnerPrizeServiceImpl implements CityPartnerPrizeService {
|
|
|
|
|
if (type == 2) {
|
|
|
|
|
json.put("org_net_charge", net_surage);
|
|
|
|
|
}
|
|
|
|
|
json.put("org_charge", org_charge);
|
|
|
|
|
json.put("org_charge", org_charge.signum()<0?new BigDecimal(0):org_charge);
|
|
|
|
|
json.put("transaction_fee", transaction_fee);
|
|
|
|
|
json.put("commission_type", "1");
|
|
|
|
|
json.put("create_time", new Date());
|
|
|
|
|