diff --git a/mallinkAdmin/src/main/resources/db/migration/V201908281030__G_USER_DATA_RULE.sql b/mallinkAdmin/src/main/resources/db/migration/V201908281030__G_USER_DATA_RULE.sql
new file mode 100644
index 000000000..6a36ccb01
--- /dev/null
+++ b/mallinkAdmin/src/main/resources/db/migration/V201908281030__G_USER_DATA_RULE.sql
@@ -0,0 +1 @@
+alter table wx_user_data_rule add unique uni_user(user_id);
\ No newline at end of file
diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/RatioVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/RatioVo.java
index b328b7811..a0e73aba7 100644
--- a/mallinkService/src/main/java/com/iformall/domain/vo/RatioVo.java
+++ b/mallinkService/src/main/java/com/iformall/domain/vo/RatioVo.java
@@ -7,5 +7,5 @@ public class RatioVo {
//扣点率
private Integer ratio = 0;
//金额
- private Long price;
+ private Long price = 0l;
}
diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAllVo.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAllVo.java
index 382164387..632b71865 100644
--- a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAllVo.java
+++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAllVo.java
@@ -71,6 +71,9 @@ public class WxBillAllVo {
@io.swagger.annotations.ApiModelProperty(value = "明细", name = "priceDetail")
private String priceDetail;
+ @io.swagger.annotations.ApiModelProperty(value = "更新时间", name = "updatetime")
+ private Date updatetime;
+
public String getReceivePayStr() {
if(getReceivePay()!=null) {
receivePayStr = new BigDecimal(getReceivePay()).divide(new BigDecimal(100)).toString();
diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java
index 42400b591..87d1f2d8b 100644
--- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java
+++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java
@@ -9,6 +9,7 @@ import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.*;
+import com.iformall.domain.vo.RatioVo;
import com.iformall.enums.*;
import com.iformall.exception.MallinkException;
import com.iformall.mapper.*;
@@ -291,6 +292,7 @@ public class WxBillRentServiceImpl implements WxBillRentService {
wxBillRent.setRevenue(record.getRevenue());
Integer ratio = 0;
+ RatioVo ratioVo = null;
if(wxRentContract.getPayRatio() != null && wxRentContract.getPayRatio().intValue() > 0){
ratio = wxRentContract.getPayRatio();
}else{
@@ -299,28 +301,34 @@ public class WxBillRentServiceImpl implements WxBillRentService {
if(EnumBusRatioTime.YEAR.getCode().equals(wxRentContract.getBusDiscountTime())){
if(startInt == endInt && months == 12){
//刚好1年
- ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0).getRatio();
+ ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0);
}else{
- ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0).getRatio();
+ ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.YEAR.getCode(),dayCount,0);
}
}else if(EnumBusRatioTime.MONTH.getCode().equals(wxRentContract.getBusDiscountTime())){
if(startInt == endInt && months == 1){
//刚好1个月
- ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0).getRatio();
+ ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.OTHER.getCode(),dayCount,0);
}else{
- ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0).getRatio();
+ ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.MONTH.getCode(),dayCount,0);
}
}else if(EnumBusRatioTime.PERIOD.getCode().equals(wxRentContract.getBusDiscountTime())){
- ratio = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod()).getRatio();
+ ratioVo = WxRentContractServiceImpl.getPayRatio(EnumGetRatioFrom.BILL.getCode(),wxBillRent.getRevenue(),wxRentContract.getBusDiscountRatio(),EnumMissTimeType.PERIOD.getCode(),dayCount,wxRentContract.getReceivePeriod());
}
}
}
- BigDecimal hundred = new BigDecimal(100);
- BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred);
- BigDecimal payRatio = new BigDecimal(ratio).divide(new BigDecimal(10000));
- BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN);
- long newReceivePay = price.multiply(hundred).longValue();
+ long newReceivePay;
+ if(ratioVo != null){
+ newReceivePay = ratioVo.getPrice();
+ }else{
+ BigDecimal hundred = new BigDecimal(100);
+ BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred);
+ BigDecimal payRatio = new BigDecimal(ratio).divide(new BigDecimal(10000));
+ BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN);
+ newReceivePay = price.multiply(hundred).longValue();
+ }
+
if(newReceivePay > wxBillRent.getReceivePay()){
wxBillRent.setReceivePay(newReceivePay);
}
diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml
index ab2e2383f..8baca7a54 100644
--- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml
+++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml
@@ -37,6 +37,7 @@
+
@@ -52,46 +53,46 @@
bill.pay_date payDate,expired_day expiredDay,bill.status,bill.starttime,
bill.endtime,bill.name,bill.rent_shop_type rentShopType,m.name merchantName,
s.shop_number shopNumber, s.manager, s.manager_phone managerPhone,bill.shop_info
- shopInfo,bill.comments,bill.price_detail
+ shopInfo,bill.comments,bill.price_detail,updatetime
from (
select id,merchant_id,shop_id,tenant_id,'租金' name,1 bill_type_value,'租金'
bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,''
endtime,rent_shop_type,case when shop_info is null then '[]' else shop_info end shop_info,comments,''
- price_detail
+ price_detail,updatetime
from wx_bill_rent where tenant_id=#{tenantId} and is_preview = 0
union all
select id,merchant_id,shop_id,tenant_id,'租赁押金' name,2 bill_type_value,'租赁押金'
bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,''
- endtime,rent_shop_type,shop_info,NULL comments,'' price_detail from wx_bill_rent_deposit where
+ endtime,rent_shop_type,shop_info,NULL comments,'' price_detail,updatetime from wx_bill_rent_deposit where
tenant_id=#{tenantId}
union all
select id,merchant_id,shop_id,tenant_id,'物业费' name,3 bill_type_value,'物业费'
bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,''
endtime,rent_shop_type,case when shop_info is null then '[]' else shop_info end shop_info,comments,''
- price_detail
+ price_detail,updatetime
from wx_bill_property where tenant_id=#{tenantId} and is_preview = 0
union all
select id,merchant_id,shop_id,tenant_id,'物业押金' name,4 bill_type_value,'物业押金'
bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,''
- endtime,rent_shop_type,shop_info,NULL comments,'' price_detail from wx_bill_property_deposit where
+ endtime,rent_shop_type,shop_info,NULL comments,'' price_detail,updatetime from wx_bill_property_deposit where
tenant_id=#{tenantId}
union all
select id,merchant_id,shop_id,tenant_id,case when type=1 then '水费' when type=2 then '电费' else '空调费' end name,
case when type=1 then 5 when type=2 then 6 else 9 end bill_type_value,
case when type=1 then '水费' when type=2 then '电费' else '空调费' end bill_type,0 as
need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime,
- rent_shop_type,'[]' shop_info, NULL comments,price_detail
+ rent_shop_type,'[]' shop_info, NULL comments,price_detail,updatetime
from wx_bill_daily where tenant_id=#{tenantId}
union all
select id,merchant_id,shop_id,tenant_id,name,7 bill_type_value,concat('其他费用-',name) as bill_type,0 as
need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime,
- rent_shop_type,'[]' shop_info,comments,'' price_detail
+ rent_shop_type,'[]' shop_info,comments,'' price_detail,updatetime
from wx_bill_other where tenant_id=#{tenantId}
union all
select id,merchant_id,shop_id,tenant_id,comments as name,8 bill_type_value,concat('其他押金-',comments) as
bill_type,0 as
need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime,
- rent_shop_type,'[]' shop_info,comments,'' price_detail
+ rent_shop_type,'[]' shop_info,comments,'' price_detail,updatetime
from wx_bill_other_deposit where tenant_id=#{tenantId}
) bill
left join wx_merchant m on bill.merchant_id=m.id