| @@ -6,6 +6,7 @@ import com.iformall.common.ResultData; | |||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| import com.iformall.domain.po.BaseEntity; | import com.iformall.domain.po.BaseEntity; | ||||
| import com.iformall.domain.po.WxBillSettle; | import com.iformall.domain.po.WxBillSettle; | ||||
| import com.iformall.domain.po.WxBillSettleRecord; | |||||
| import com.iformall.service.WxBillSettleRecordService; | import com.iformall.service.WxBillSettleRecordService; | ||||
| import com.iformall.service.WxBillSettleService; | import com.iformall.service.WxBillSettleService; | ||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| @@ -57,6 +58,15 @@ public class WxBillSettleController extends BaseController { | |||||
| return wxBillSettleService.saveOrUpdate(wxBillSettle,getUser()); | 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") | @GetMapping("exportSettle") | ||||
| @SystemControllerLog(description = "账单管理-结算单-导出") | @SystemControllerLog(description = "账单管理-结算单-导出") | ||||
| public void exportBill(@ModelAttribute WxBillSettle wxBillSettle, HttpServletRequest request, HttpServletResponse response) { | public void exportBill(@ModelAttribute WxBillSettle wxBillSettle, HttpServletRequest request, HttpServletResponse response) { | ||||
| @@ -0,0 +1,2 @@ | |||||
| alter table wx_bill_rent | |||||
| add column `bus_discount_ratio` varchar(500) NULL DEFAULT NULL COMMENT '联营扣点率'; | |||||
| @@ -193,4 +193,5 @@ public class WxBillRent extends BaseEntity { | |||||
| @Transient | @Transient | ||||
| private String latePayMoneyUpdate; | private String latePayMoneyUpdate; | ||||
| private String busDiscountRatio; | |||||
| } | } | ||||
| @@ -8,4 +8,6 @@ public class RatioVo { | |||||
| private Integer ratio = 0; | private Integer ratio = 0; | ||||
| //金额 | //金额 | ||||
| private Long price = 0l; | private Long price = 0l; | ||||
| private String useRatio = ""; | |||||
| } | } | ||||
| @@ -2,6 +2,7 @@ package com.iformall.service; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.MallUserInfo; | |||||
| import com.iformall.domain.po.WxBillSettleRecord; | import com.iformall.domain.po.WxBillSettleRecord; | ||||
| /** | /** | ||||
| @@ -17,12 +18,11 @@ public interface WxBillSettleRecordService { | |||||
| */ | */ | ||||
| PageInfo<WxBillSettleRecord> listAsPage(WxBillSettleRecord record, Integer pageIndex, Integer pageSize); | PageInfo<WxBillSettleRecord> listAsPage(WxBillSettleRecord record, Integer pageIndex, Integer pageSize); | ||||
| /** | /** | ||||
| * 保存或更新实体 | * 保存或更新实体 | ||||
| * | * | ||||
| * @param record | * @param record | ||||
| */ | */ | ||||
| ResultData saveOrUpdate(WxBillSettleRecord record); | |||||
| ResultData saveOrUpdate(WxBillSettleRecord record,MallUserInfo mallUserInfo); | |||||
| } | } | ||||
| @@ -321,7 +321,7 @@ public class WxBillRentServiceImpl implements WxBillRentService { | |||||
| long newReceivePay; | long newReceivePay; | ||||
| if(ratioVo != null){ | if(ratioVo != null){ | ||||
| newReceivePay = ratioVo.getPrice(); | newReceivePay = ratioVo.getPrice(); | ||||
| ratio = ratioVo.getRatio(); | |||||
| //ratio = ratioVo.getRatio(); | |||||
| }else{ | }else{ | ||||
| BigDecimal hundred = new BigDecimal(100); | BigDecimal hundred = new BigDecimal(100); | ||||
| BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred); | 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())){ | if(StringUtils.isNotBlank(wxRentContract.getBusDiscountRatio())){ | ||||
| wxBillRent.setBusDiscountRatio(ratioVo.getUseRatio()); | |||||
| wxBillRent.setPayRatio(new Long(ratio)); | wxBillRent.setPayRatio(new Long(ratio)); | ||||
| } | } | ||||
| wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); | wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); | ||||
| @@ -2,6 +2,7 @@ package com.iformall.service.impl; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.MallUserInfo; | |||||
| import com.iformall.domain.po.WxBillSettleRecord; | import com.iformall.domain.po.WxBillSettleRecord; | ||||
| import com.iformall.mapper.WxBillSettleRecordMapper; | import com.iformall.mapper.WxBillSettleRecordMapper; | ||||
| import com.iformall.service.WxBillSettleRecordService; | import com.iformall.service.WxBillSettleRecordService; | ||||
| @@ -24,7 +25,9 @@ public class WxBillSettleRecordServiceImpl implements WxBillSettleRecordService | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ResultData saveOrUpdate(WxBillSettleRecord record) { | |||||
| public ResultData saveOrUpdate(WxBillSettleRecord record,MallUserInfo mallUserInfo) { | |||||
| return null; | return null; | ||||
| } | } | ||||
| } | } | ||||
| @@ -280,6 +280,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| } | } | ||||
| List<String> ratioList = JSONArray.parseArray(busDiscountRatio, String.class); | List<String> ratioList = JSONArray.parseArray(busDiscountRatio, String.class); | ||||
| ratioVo.setUseRatio("["); | |||||
| for (int i = 0; i < ratioList.size(); i++) { | for (int i = 0; i < ratioList.size(); i++) { | ||||
| BigDecimal revenue = new BigDecimal(revenueLong).divide(new BigDecimal(1000000)).setScale(4, RoundingMode.HALF_EVEN); | BigDecimal revenue = new BigDecimal(revenueLong).divide(new BigDecimal(1000000)).setScale(4, RoundingMode.HALF_EVEN); | ||||
| String e = ratioList.get(i); | String e = ratioList.get(i); | ||||
| @@ -314,6 +316,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| if (revenue.compareTo(start) >= 0 && revenue.compareTo(end)<= 0){ | if (revenue.compareTo(start) >= 0 && revenue.compareTo(end)<= 0){ | ||||
| ratioVo.setRatio(ratio); | ratioVo.setRatio(ratio); | ||||
| ratioVo.setPrice(countPrice(ratioVo.getRatio(),revenueLong,timeType,period,from)); | ratioVo.setPrice(countPrice(ratioVo.getRatio(),revenueLong,timeType,period,from)); | ||||
| ratioVo.setUseRatio(ratioVo.getUseRatio()+e+","); | |||||
| break; | break; | ||||
| } | } | ||||
| }else if(e.indexOf(">") >= 0){ | }else if(e.indexOf(">") >= 0){ | ||||
| @@ -340,6 +343,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||||
| if (revenue.compareTo(end) >= 0){ | if (revenue.compareTo(end) >= 0){ | ||||
| ratioVo.setRatio(ratio); | ratioVo.setRatio(ratio); | ||||
| ratioVo.setUseRatio(ratioVo.getUseRatio()+e+","); | |||||
| //计算超出部分 | //计算超出部分 | ||||
| BigDecimal payRatio = new BigDecimal(ratio).divide(new BigDecimal(10000)); | 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)); | BigDecimal frontPrice = frontEnd.multiply(new BigDecimal(1000000).multiply(frontRatio).setScale(2, RoundingMode.HALF_EVEN)); | ||||
| ratioVo.setPrice(price.add(frontPrice).longValue()); | ratioVo.setPrice(price.add(frontPrice).longValue()); | ||||
| return ratioVo; | |||||
| break; | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| ratioVo.setUseRatio(ratioVo.getUseRatio().substring(0,ratioVo.getUseRatio().lastIndexOf(","))+"]"); | |||||
| return ratioVo; | return ratioVo; | ||||
| } | } | ||||
| @@ -39,7 +39,7 @@ | |||||
| <result column="rent_type" property="rentType"/> | <result column="rent_type" property="rentType"/> | ||||
| <result column="all_period" property="allPeriod"/> | <result column="all_period" property="allPeriod"/> | ||||
| <result column="pay_ratio" property="payRatio"/> | <result column="pay_ratio" property="payRatio"/> | ||||
| <result column="bus_discount_ratio" property="busDiscountRatio"/> | |||||
| <result column="late_pay_day" property="latePayDay"/> | <result column="late_pay_day" property="latePayDay"/> | ||||
| <result column="late_pay_ratio" property="latePayRatio"/> | <result column="late_pay_ratio" property="latePayRatio"/> | ||||
| @@ -50,7 +50,7 @@ | |||||
| `createtime`,`expired_day`,`tenant_id`,`owe`,`status`,`is_del`,`need_pay`, | `createtime`,`expired_day`,`tenant_id`,`owe`,`status`,`is_del`,`need_pay`, | ||||
| `merchant_id`,`user_id`,`shop_id`,`updatetime`,`rent_shop_type`, | `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`, | `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 | |||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||