Przeglądaj źródła

[合同][修改][开发联营跳点率]

release_toaliyun_real
luozukai 6 lat temu
rodzic
commit
221c7960d8
2 zmienionych plików z 35 dodań i 2 usunięć
  1. +0
    -2
      mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java
  2. +35
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 0
- 2
mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java Wyświetl plik

@@ -7,12 +7,10 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;


+ 35
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Wyświetl plik

@@ -248,6 +248,39 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return result;
}

/**
* 获取设置的跳点率
* ["1000-1200:10",">3000:20"]
* @param record
*/
public void getPayRatio(WxRentContract record){
BigDecimal revenue = new BigDecimal(record.getRevenue()).divide(new BigDecimal(1000000)).setScale(4, RoundingMode.HALF_EVEN);
List<String> ratioList = JSONArray.parseArray(record.getBusDiscountRatio(), String.class);

for (String e:ratioList) {
String[] array = e.split(":");
Integer ratio = Integer.parseInt(array[1]);

if(e.indexOf("-") >= 0){
String[] revenueArray = array[0].split("-");
BigDecimal start = new BigDecimal(revenueArray[0]);
BigDecimal end = new BigDecimal(revenueArray[1]);
if (revenue.compareTo(start) >= 0 && revenue.compareTo(end)<= 0){
record.setPayRatio(ratio);
break;
}

}if(e.indexOf(">") >= 0){
String[] revenueArray = array[0].split(">");
BigDecimal end = new BigDecimal(revenueArray[1]);
if (revenue.compareTo(end) >= 0){
record.setPayRatio(ratio);
break;
}
}
}
}

@Transactional(rollbackFor = {Exception.class})
@Override
public ResultData save(WxRentContract record,Long userId,String userName,Date oldRentStartDate) {
@@ -271,9 +304,11 @@ public class WxRentContractServiceImpl implements WxRentContractService {
}

if (record.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
getPayRatio(record);
BigDecimal hundred = new BigDecimal(100);
BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred);
BigDecimal payRatio = new BigDecimal(record.getPayRatio() == null ? 0 : record.getPayRatio()).divide(new BigDecimal(10000));

BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN);
record.setPrice(price.multiply(hundred).longValue());
} else {


Ładowanie…
Anuluj
Zapisz