From 6ce01ffeab79d198c7f219baf7b7a7a4405ee1d3 Mon Sep 17 00:00:00 2001 From: luozukai Date: Thu, 29 Aug 2019 19:50:15 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=90=88=E5=90=8C][=E4=BF=AE=E6=94=B9][?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E8=B4=A6=E5=8D=95=E7=BB=93=E7=AE=97]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/rent/WxBillSettleController.java | 10 ++++++++++ .../db/migration/V201908291938__L_CONTRACT.sql | 2 ++ .../main/java/com/iformall/domain/po/WxBillRent.java | 1 + .../src/main/java/com/iformall/domain/vo/RatioVo.java | 2 ++ .../iformall/service/WxBillSettleRecordService.java | 4 ++-- .../iformall/service/impl/WxBillRentServiceImpl.java | 3 ++- .../service/impl/WxBillSettleRecordServiceImpl.java | 5 ++++- .../service/impl/WxRentContractServiceImpl.java | 7 ++++++- .../src/main/resources/mapper/WxBillRentMapper.xml | 4 ++-- 9 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 mallinkAdmin/src/main/resources/db/migration/V201908291938__L_CONTRACT.sql diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java index 7c78f09eb..fba4b6dd5 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillSettleController.java @@ -6,6 +6,7 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.BaseEntity; import com.iformall.domain.po.WxBillSettle; +import com.iformall.domain.po.WxBillSettleRecord; import com.iformall.service.WxBillSettleRecordService; import com.iformall.service.WxBillSettleService; import io.swagger.annotations.ApiImplicitParam; @@ -57,6 +58,15 @@ public class WxBillSettleController extends BaseController { return wxBillSettleService.saveOrUpdate(wxBillSettle,getUser()); } + @PostMapping("settle") + @ApiOperation("账单管理-结算单-结算") + @SystemControllerLog(description = "账单管理-结算单-结算") + public ResultData settle(@RequestBody WxBillSettleRecord wxBillSettleRecord) { + logger.debug("[" + getIpAddr() + "] WxBillSettleController::settle"); + wxBillSettleRecord.setTenantId(getTenantId()); + return wxBillSettleRecordService.saveOrUpdate(wxBillSettleRecord,getUser()); + } + @GetMapping("exportSettle") @SystemControllerLog(description = "账单管理-结算单-导出") public void exportBill(@ModelAttribute WxBillSettle wxBillSettle, HttpServletRequest request, HttpServletResponse response) { diff --git a/mallinkAdmin/src/main/resources/db/migration/V201908291938__L_CONTRACT.sql b/mallinkAdmin/src/main/resources/db/migration/V201908291938__L_CONTRACT.sql new file mode 100644 index 000000000..87767988b --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201908291938__L_CONTRACT.sql @@ -0,0 +1,2 @@ +alter table wx_bill_rent +add column `bus_discount_ratio` varchar(500) NULL DEFAULT NULL COMMENT '联营扣点率'; \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java index 08e7d8bd8..617fe4334 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillRent.java @@ -193,4 +193,5 @@ public class WxBillRent extends BaseEntity { @Transient private String latePayMoneyUpdate; + private String busDiscountRatio; } 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 a0e73aba7..493e63c9e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/RatioVo.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/RatioVo.java @@ -8,4 +8,6 @@ public class RatioVo { private Integer ratio = 0; //金额 private Long price = 0l; + + private String useRatio = ""; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillSettleRecordService.java b/mallinkService/src/main/java/com/iformall/service/WxBillSettleRecordService.java index ce0d11ab6..f87d05a1a 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillSettleRecordService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillSettleRecordService.java @@ -2,6 +2,7 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillSettleRecord; /** @@ -17,12 +18,11 @@ public interface WxBillSettleRecordService { */ PageInfo listAsPage(WxBillSettleRecord record, Integer pageIndex, Integer pageSize); - /** * 保存或更新实体 * * @param record */ - ResultData saveOrUpdate(WxBillSettleRecord record); + ResultData saveOrUpdate(WxBillSettleRecord record,MallUserInfo mallUserInfo); } 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 95aa005c7..9c3237b05 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -321,7 +321,7 @@ public class WxBillRentServiceImpl implements WxBillRentService { long newReceivePay; if(ratioVo != null){ newReceivePay = ratioVo.getPrice(); - ratio = ratioVo.getRatio(); + //ratio = ratioVo.getRatio(); }else{ BigDecimal hundred = new BigDecimal(100); BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred); @@ -340,6 +340,7 @@ public class WxBillRentServiceImpl implements WxBillRentService { //如果在跳点区间中,修改扣点率 if(StringUtils.isNotBlank(wxRentContract.getBusDiscountRatio())){ + wxBillRent.setBusDiscountRatio(ratioVo.getUseRatio()); wxBillRent.setPayRatio(new Long(ratio)); } wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java index a5393948f..96a3edd20 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java @@ -2,6 +2,7 @@ package com.iformall.service.impl; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillSettleRecord; import com.iformall.mapper.WxBillSettleRecordMapper; import com.iformall.service.WxBillSettleRecordService; @@ -24,7 +25,9 @@ public class WxBillSettleRecordServiceImpl implements WxBillSettleRecordService } @Override - public ResultData saveOrUpdate(WxBillSettleRecord record) { + public ResultData saveOrUpdate(WxBillSettleRecord record,MallUserInfo mallUserInfo) { + + return null; } } 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 062701cce..feb187c9c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -280,6 +280,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { } List ratioList = JSONArray.parseArray(busDiscountRatio, String.class); + ratioVo.setUseRatio("["); + for (int i = 0; i < ratioList.size(); i++) { BigDecimal revenue = new BigDecimal(revenueLong).divide(new BigDecimal(1000000)).setScale(4, RoundingMode.HALF_EVEN); String e = ratioList.get(i); @@ -314,6 +316,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { if (revenue.compareTo(start) >= 0 && revenue.compareTo(end)<= 0){ ratioVo.setRatio(ratio); ratioVo.setPrice(countPrice(ratioVo.getRatio(),revenueLong,timeType,period,from)); + ratioVo.setUseRatio(ratioVo.getUseRatio()+e+","); break; } }else if(e.indexOf(">") >= 0){ @@ -340,6 +343,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { if (revenue.compareTo(end) >= 0){ ratioVo.setRatio(ratio); + ratioVo.setUseRatio(ratioVo.getUseRatio()+e+","); //计算超出部分 BigDecimal payRatio = new BigDecimal(ratio).divide(new BigDecimal(10000)); @@ -365,10 +369,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { BigDecimal frontPrice = frontEnd.multiply(new BigDecimal(1000000).multiply(frontRatio).setScale(2, RoundingMode.HALF_EVEN)); ratioVo.setPrice(price.add(frontPrice).longValue()); - return ratioVo; + break; } } } + ratioVo.setUseRatio(ratioVo.getUseRatio().substring(0,ratioVo.getUseRatio().lastIndexOf(","))+"]"); return ratioVo; } diff --git a/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml b/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml index 18d1bf7ae..34572f470 100644 --- a/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml @@ -39,7 +39,7 @@ - + @@ -50,7 +50,7 @@ `createtime`,`expired_day`,`tenant_id`,`owe`,`status`,`is_del`,`need_pay`, `merchant_id`,`user_id`,`shop_id`,`updatetime`,`rent_shop_type`, `revenue`,`late_pay_ratio`,`late_pay_time`,`late_pay_price`,`period`,`is_preview`,`shop_info`, - `pay_way`,`late_pay_status`,`comments`,starttime,endtime + `pay_way`,`late_pay_status`,`comments`,starttime,endtime,bus_discount_ratio