diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java index 03cdad497..08d295866 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java @@ -263,4 +263,13 @@ public class WxMerchant extends BaseEntity { @TableField(exist = false) @SortColumn(column = "tradeDate") private String tradeDate; + + @TableField(exist = false) + @SortColumn(column = "consumeCountP") + private String consumeCountP; + + @TableField(exist = false) + @SortColumn(column = "consumeCount") + private String consumeCount; + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 5f919f0d7..1d0be0548 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -751,7 +751,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService //生成金额直接计算 if(!saveDb){ - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); return needpay; } @@ -766,7 +766,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService months++; needpay = new Double(months * priceD).longValue(); }else { - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); } }else if(i == 0){//第一期 if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ @@ -775,7 +775,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService months++; needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); } }else{ if(isFirstDay(startDate)){ @@ -785,7 +785,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService } needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); + needpay = new Double(WxRentContractServiceImpl.getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); } } }else{//中间 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 e99d62196..85de7d0b8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1258,18 +1258,18 @@ public class WxRentContractServiceImpl implements WxRentContractService { long needpayAfter = 0; //同一天,算一天 if(sd.format(billTimeVo.getStartDate()).equals(sd.format(billTimeVo.getEndDate()))){ - needpayFront = getNeedPayMoney(wxRentContract,priceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod); + needpayFront = getNeedPayMoney(wxRentContract,priceArrs[index-1],billTimeVo.getStartDate(),endDate,i,billTimeVoList.size(),saveDb,dayType,receivePeriod,false); }else{ if(billTimeVo.getStartDate().before(endDate)){ if (EnumRentContractType.RENT_BY_JOINT.getCode().equals(wxRentContract.getType()) && EnumMissTimeType.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())) { //设置跳点率为年周期 price不变 needpayFront = priceArrs[index - 1]; }else { - needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod); - needpayAfter = getNeedPayMoney(wxRentContract, priceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod); + needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index - 1], billTimeVo.getStartDate(), DateUtils.getDaySet(endDate, Calendar.DATE, -1), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true); + needpayAfter = getNeedPayMoney(wxRentContract, priceArrs[index], endDate, billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb, dayType, receivePeriod,true); } }else{ - needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod); + needpayFront = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(), saveDb,dayType,receivePeriod,false); } } needpay = needpayFront+needpayAfter; @@ -1288,7 +1288,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { //计算金额 if(!flag){ - needpay = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb,dayType,receivePeriod); + needpay = getNeedPayMoney(wxRentContract, priceArrs[index], billTimeVo.getStartDate(), billTimeVo.getEndDate(), i, billTimeVoList.size(),saveDb,dayType,receivePeriod,false); } WxBillRent wxBillRent = new WxBillRent(); @@ -1332,7 +1332,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { return resultMap; } - public long getNeedPayMoney(WxRentContract wxRentContract,long price,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb,int dayType,int receivePeriod){ + public long getNeedPayMoney(WxRentContract wxRentContract,long price,Date startDate,Date endDate,int i,int billTimeVoListSize,boolean saveDb,int dayType,int receivePeriod,boolean part){ long needpay; //按日 if (wxRentContract.getPriceUnit().equals(EnumPriceUnit.D.getCode())){ @@ -1360,7 +1360,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { //生成金额直接计算 if(!saveDb){ - needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); + needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,part)).longValue(); return needpay; } @@ -1377,7 +1377,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { int months = getMonths(sdM.format(startDate)+"-01",sdM.format(DateUtils.getDaySet(endDate,Calendar.DATE,1))+"-01"); needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); + needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); } }else if(i == 0){//第一期 if(wxRentContract.getAdjustPeriod().equals(EnumRentContractAdjustPeriod.ADJUST_PERIOD_NAR_MONTH.getCode())){ @@ -1386,7 +1386,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { months++; needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); + needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); } }else{ if(isFirstDay(startDate)){ @@ -1396,7 +1396,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { } needpay = new Double(months * priceD).longValue(); }else{ - needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod)).longValue(); + needpay = new Double(getMonthNeedPay(priceD, startDate, endDate,dayType,receivePeriod,false)).longValue(); } } }else{//中间 @@ -2253,7 +2253,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { return wxRentContractMapper.getShopType(wxRentContract); } - public static double getMonthNeedPay(Double price,Date start,Date end,int dayType,int receivePeriod){ + public static double getMonthNeedPay(Double price,Date start,Date end,int dayType,int receivePeriod,boolean part){ SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdM = new SimpleDateFormat("yyyy-MM"); SimpleDateFormat sdD = new SimpleDateFormat("d"); @@ -2276,11 +2276,24 @@ public class WxRentContractServiceImpl implements WxRentContractService { } //判断是否满足整月 - Calendar instance = Calendar.getInstance(); - instance.setTime(start); - instance.add(dayType, receivePeriod); - instance.add(Calendar.DATE, -1); - if(sd.format(instance.getTime()).equals(sd.format(end))){ + boolean isFullMonth = false; + if(part){ + int startInt = Integer.parseInt(sdD.format(start)); + int endInt = Integer.parseInt(sdD.format(DateUtils.getDaySet(end,Calendar.DATE,1))); + if(startInt == endInt){ + isFullMonth = true; + } + }else{ + Calendar instance = Calendar.getInstance(); + instance.setTime(start); + instance.add(dayType, receivePeriod); + instance.add(Calendar.DATE, -1); + if(sd.format(instance.getTime()).equals(sd.format(end))){ + isFullMonth = true; + } + } + + if(isFullMonth){ int months = getMonths(sdM.format(start)+"-01",sdM.format(DateUtils.getDaySet(end,Calendar.DATE,1))+"-01"); return (months) * price; } diff --git a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml index f79870ff0..d554d840b 100644 --- a/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxMerchantMapper.xml @@ -475,6 +475,8 @@ and `link_person` like concat('%', #{linkPerson},'%') + + order by ${sortColumns}