Kaynağa Gözat

[租赁合同][添加][多商铺计算月租金]

release_toaliyun_real
gongbiao 7 yıl önce
ebeveyn
işleme
52e3d91b7e
1 değiştirilmiş dosya ile 35 ekleme ve 24 silme
  1. +35
    -24
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 35
- 24
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Dosyayı Görüntüle

@@ -481,39 +481,50 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return rentList;
}

public int[] computePrice(WxRentContract wxRentContract) {
//计算租金
public int[] computePrice(String rentInfo) {

JSONArray rentInfoArray = JSONArray.parseArray(wxRentContract.getRentInfo());
JSONArray rentInfoArray = JSONArray.parseArray(rentInfo);
int arraySize = rentInfoArray.size();
List<int[]> priceList = new ArrayList<>();
//第一年
int[] priceArr = new int[arraySize];
for (int i = 0; i < arraySize; i++) {
double priceSum = 0;
for (int j = i; j < arraySize; j++) {
JSONObject rentInfoObject = rentInfoArray.getJSONObject(j);
double price = rentInfoObject.getDoubleValue("price");//1000 2000 3000
JSONArray adjustRatio = rentInfoObject.getJSONArray("adjustRatio");//[1000]
adjustRatio.set(0, 0);
int ratio = adjustRatio.getIntValue(j);//0 1000
price = price + price * ratio / 10000.0;//1000 2000 3000
priceSum = priceSum + price;//1000 2000 3000
JSONObject rentInfoObject = rentInfoArray.getJSONObject(i);
priceArr[i] = rentInfoObject.getIntValue("price");
}
priceList.add(priceArr);
//大于一年
JSONObject rentInfoObject = rentInfoArray.getJSONObject(0);
JSONArray adjustRatio = rentInfoObject.getJSONArray("adjustRatio");
int adjustRatioSize = adjustRatio.size();

for (int i = 0; i < adjustRatioSize; i++) {
int[] priceArrs = new int[arraySize];
for (int j = 0; j < arraySize; j++) {
rentInfoObject = rentInfoArray.getJSONObject(j);
adjustRatio = rentInfoObject.getJSONArray("adjustRatio");
double price = priceList.get(i)[j] + priceList.get(i)[j] * adjustRatio.getIntValue(i) / 10000.0;
priceArrs[j] = new BigDecimal(price).setScale(0, RoundingMode.HALF_EVEN).intValue();
}
priceArr[i] = new BigDecimal(priceSum).setScale(0, RoundingMode.HALF_EVEN).intValue();//6000
priceList.add(priceArrs);
}
return priceArr;
int size = priceList.size();
int[] priceArrs = new int[size];
for (int i = 0; i < size; i++) {
int[] price = priceList.get(i);
int sum = 0;
for (int p : price) {
sum += p;
}
priceArrs[i] = sum;
}
return priceArrs;
}

public List<WxBillRent> buildRentMonth(WxMerchant wxMerchant, Long userId, WxRentContract wxRentContract, int receivePeriod, Integer lease, Date rentalStartDate, Integer price,Integer isPreview) {
String adjustRatio = wxRentContract.getAdjustRatio();
List<Integer> integers = JSONArray.parseArray(adjustRatio, Integer.class);
integers.add(0, 0);
int size = integers.size();
int[] priceArr = new int[size];
priceArr[0] = price;
double priceD = price;
for (int i = 1; i < size; i++) {
priceD = priceD + priceD * integers.get(i) / 10000.0;
priceArr[i] = new BigDecimal(priceD).setScale(0, RoundingMode.HALF_EVEN).intValue();
}
int[] priceArr = computePrice(wxRentContract.getRentInfo());
int size = priceArr.length;
int month = 12;
int divide = lease / month;
int mod = lease % month;


Yükleniyor…
İptal
Kaydet