Browse Source

Merge branch 'release_toaliyun_20210901' of https://git.malls.iformall.com/server/formallProject into release_toaliyun_20210901

release_toaliyun_real
xiaohanzi 4 years ago
parent
commit
2b47def540
1 changed files with 15 additions and 49 deletions
  1. +15
    -49
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 15
- 49
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java View File

@@ -970,7 +970,8 @@ public class WxRentContractServiceImpl implements WxRentContractService {
Date rentalStartDate = wxRentContract.getRentalStartDate();
Long price = wxRentContract.getPrice();
if(EnumContractOperationType.JINMAO.getCode().equals(wxRentContract.getOperationType())){
// rentList = buildRentJinmao(userId, wxRentContract, receivePeriod, lease, rentalStartDate, price, isPreview,saveDb);
Date startDate = wxRentContract.getStartDate();
rentList = buildRentJinmao(userId, wxRentContract, receivePeriod, lease, startDate, price, isPreview,saveDb);
}else{

//按月计租
@@ -1170,67 +1171,32 @@ public class WxRentContractServiceImpl implements WxRentContractService {
int size = 0;
long[] priceArrs = null;
List<Map<String, Object>> shopInfos = new ArrayList<>();
if (//wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode()) &&
wxRentContract.getRentInputWay().equals(EnumRentContractRentInputWay.PART.getCode()) &&
!wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode()) &&
!wxRentContract.getType().equals(EnumRentContractType.RENT_BY_COUNT.getCode())) {
String rentInfo = wxRentContract.getRentInfo();
JSONArray rentInfoArray = JSONArray.parseArray(rentInfo);
List<long[]> priceList = computePrice(rentInfo, wxRentContract);
size = priceList.size();
priceArrs = new long[size];
for (int i = 0; i < size; i++) {
long[] priceInt = priceList.get(i);
long sum = 0;
for (long p : priceInt) {
sum += p;
}
priceArrs[i] = sum;
}
if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())
&& wxRentContract.getType().equals(EnumRentContractType.RENT_BY_AREA.getCode())){

for (int i = 0; i < size; i++) {
Map<String, Object> shopInfo = new HashMap<>();
long[] ints = priceList.get(i);
for (int j = 0; j < ints.length; j++) {
JSONObject rentInfoObject = rentInfoArray.getJSONObject(j);
String s = new BigDecimal(ints[j]).divide(new BigDecimal(100)).toPlainString();
shopInfo.put(rentInfoObject.getString("shopNumber"), s);
String adjustRatio = wxRentContract.getAdjustRatio();
JSONArray array = JSONArray.parseArray(adjustRatio);
List<Integer> integers = new ArrayList<>();
if(array != null && array.size() > 0){
for (int i=0;i<array.size();i++){
JSONObject jsonObject = array.getJSONObject(0);
String increasingProportion = jsonObject.getString("increasingProportion");
if(StringUtils.isNotBlank(increasingProportion)){
integers.add(Integer.parseInt(increasingProportion));
}
}
shopInfos.add(shopInfo);
}
} else {
String adjustRatio = wxRentContract.getAdjustRatio();
List<Integer> integers = JSONArray.parseArray(adjustRatio, Integer.class);
integers.add(0, 0);
size = integers.size();
priceArrs = new long[size];
priceArrs[0] = price;
BigDecimal priceD = new BigDecimal(price);
if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) {
if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.RATIO.getCode())) {
for (int i = 1; i < size; i++) {
BigDecimal divide = priceD.multiply(new BigDecimal(integers.get(i))).divide(new BigDecimal(10000));
priceD = priceD.add(divide);
priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue();
}
} else if (wxRentContract.getAdjustRatioWay().equals(EnumRentContractAdjustRatioWay.MONEY.getCode())) {
for (int i = 1; i < size; i++) {
priceD = priceD.add(new BigDecimal(integers.get(i)));
priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue();
}
} else {
for (int i = 1; i < size; i++) {
if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) {
if (EnumMissTimeType.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())) {
priceArrs[i] = new BigDecimal(integers.get(i)).multiply(new BigDecimal(12)).setScale(0, RoundingMode.HALF_EVEN).longValue();
continue;
}
if (EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) {
priceArrs[i] = new BigDecimal(integers.get(i)).multiply(new BigDecimal(wxRentContract.getReceivePeriod())).setScale(0, RoundingMode.HALF_EVEN).longValue();
continue;
}
}
priceArrs[i] = new BigDecimal(integers.get(i)).setScale(0, RoundingMode.HALF_EVEN).longValue();
}
}
}



Loading…
Cancel
Save