diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 5497f0dbd..bfeae45cc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -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> 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 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 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 integers = new ArrayList<>(); + if(array != null && array.size() > 0){ + for (int i=0;i 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(); - } } }