From b7bdd6c36f8a3d721cf2f94b984874bdff72465e Mon Sep 17 00:00:00 2001 From: winter Date: Sun, 21 Apr 2024 18:08:55 +0800 Subject: [PATCH] fix --- .../rent/WxBillOtherDepositController.java | 13 ++- .../domain/po/WxBillOtherDeposit.java | 3 + .../service/WxBillOtherDepositService.java | 3 +- .../impl/WxBillOtherDepositServiceImpl.java | 105 ++++++++++++++---- .../mapper/WxBillOtherDepositMapper.xml | 13 ++- 5 files changed, 110 insertions(+), 27 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java index 827b880ea..3434d2818 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherDepositController.java @@ -7,6 +7,7 @@ import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillOtherDeposit; +import com.iformall.domain.po.WxUserDataRule; import com.iformall.service.WxBillOtherDepositService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -39,6 +40,11 @@ public class WxBillOtherDepositController extends BaseController { if (null == wxBillOtherDeposit) { wxBillOtherDeposit = new WxBillOtherDeposit(); } + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxBillOtherDeposit.setFloorForRule(dataRule.getFloorForRule()); + wxBillOtherDeposit.setBusinessForRule(dataRule.getBusinessForRule()); + } wxBillOtherDeposit.updateTenantInfo(getTenantInfo()); final PageInfo page = wxBillOtherDepositService.listAsPage(wxBillOtherDeposit, pageNum, pageSize); return new ResultData(page); @@ -78,7 +84,7 @@ public class WxBillOtherDepositController extends BaseController { @SystemControllerLog(description = "其它押金账单-查询") public ResultData findById(Long id) { logger.debug("[" + getIpAddr() + "] WxBillOtherDepositController::findById"); - return new ResultData(Result.SUCCESS, "查询成功", wxBillOtherDepositService.getById(id)); + return new ResultData(Result.SUCCESS, "查询成功", wxBillOtherDepositService.getById(this.getTenantInfo(),id)); } @GetMapping("/updatePaid") @@ -108,6 +114,11 @@ public class WxBillOtherDepositController extends BaseController { @SystemControllerLog(description = "其它押金账单-导出") public void exportBill(@ModelAttribute WxBillOtherDeposit wxBillDeposit, HttpServletRequest request, HttpServletResponse response) { wxBillDeposit.updateTenantInfo(getTenantInfo()); + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxBillDeposit.setFloorForRule(dataRule.getFloorForRule()); + wxBillDeposit.setBusinessForRule(dataRule.getBusinessForRule()); + } wxBillOtherDepositService.exportBill(request, response, wxBillDeposit); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java index 40114a6d2..be0d0ea54 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOtherDeposit.java @@ -163,4 +163,7 @@ public class WxBillOtherDeposit extends TenantEntity { public String getRealReceivePayStr() { return new BigDecimal(realReceivePay == null ? 0 : realReceivePay).divide(new BigDecimal(100)).toPlainString(); } + + @TableField(exist = false) + private List merchantIds; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java b/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java index 9f3f239fe..e0489a7c6 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java @@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillOtherDeposit; +import com.iformall.domain.po.base.TenantEntity; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -31,7 +32,7 @@ public interface WxBillOtherDepositService { * @param id * @return */ - WxBillOtherDeposit getById(Long id); + WxBillOtherDeposit getById(TenantEntity tenantEntity,Long id); /** * 保存或更新实体 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java index a7eb6fa4c..84259c2b5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java @@ -9,8 +9,11 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillAction; +import com.iformall.domain.po.WxBillDaily; import com.iformall.domain.po.WxBillOtherDeposit; +import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxPayAccountBill; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBillOtherDepositMapper; @@ -19,17 +22,23 @@ import com.iformall.mapper.WxShopMapper; import com.iformall.service.ExcelService; import com.iformall.service.WxBillActionService; import com.iformall.service.WxBillOtherDepositService; +import com.iformall.service.WxMerchantService; import com.iformall.service.WxPayAccountBillService; import com.iformall.utils.DateUtils; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -59,23 +68,75 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService @Autowired WxPayAccountBillService wxPayAccountBillService; + + @Lazy + @Autowired + WxMerchantService wxMerchantService; @Override public PageInfo listAsPage(WxBillOtherDeposit record, Integer pageIndex, Integer pageSize) { WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(record); - //分页对象设置页数和条数 - PageHelper.startPage(pageIndex, pageSize); - //查询 - List billList = wxBillOtherDepositMapper.queryBillList(record); - billList.stream().forEach(e->{ - //手续费 = 合同应收+手续费+滞纳金 - computeTotalMoney(wxPayAccountBill, e); - }); - //结果放入分页对象 - PageInfo pageInfo = new PageInfo<>(billList); - return pageInfo; + return getBillRentPropertyList(pageIndex, pageSize, record, wxPayAccountBill); } + + private PageInfo getBillRentPropertyList(Integer pageIndex, Integer pageSize,WxBillOtherDeposit record,WxPayAccountBill wxPayAccountBill) { + if (null != record.getFloorForRule()) { + List merchantIds = wxMerchantService.getFloorBuildMerchantIds(record, record.getFloorForRule(), null, null, 0, 0); + if (null != merchantIds) { + record.setMerchantIds(merchantIds); + }else { + record.setId(-1L); + } + } + + if (StringUtils.isNotBlank(record.getMerchantName())) { + WxMerchant mq = new WxMerchant(); + mq.updateTenantInfo(record); + mq.setName(StringUtils.trimToNull(record.getMerchantName())); + List mids = wxMerchantService.findIdList(mq); + if (null != mids && mids.size() > 0 ) { + if (null != record.getMerchantIds()) { + List _mids = (List) CollectionUtils.intersection(mids, record.getMerchantIds()); + if (null == _mids || _mids.size() <= 0) { + record.setId(-1L); + }else { + record.setMerchantIds(_mids); + } + }else { + record.setMerchantIds(mids); + } + }else { + record.setId(-1L); + } + } + + PageInfo page = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxBillOtherDepositMapper.queryBillList(record)); + if (null == page) { + return null; + } + + WxMerchant wq = new WxMerchant(); + wq.updateTenantInfo(record); + Map merchantMap = wxMerchantService.findMerchantMap(wq); + + if (null != page.getList()) { + for (int i = 0 ; i < page.getList().size() ; i ++) { + WxBillOtherDeposit e = page.getList().get(i); + //手续费 = 合同应收+手续费+滞纳金 + computeTotalMoney(wxPayAccountBill, e); + + if (null != e.getMerchantId()) { + WxMerchant m = merchantMap.get(e.getMerchantId()); + if (null != m ) { + e.setMerchantName(m.getName()); + } + } + } + } + + return page; + } public void computeTotalMoney(WxPayAccountBill wxPayAccountBill, WxBillOtherDeposit e) { if (e.getReceivePay() != null) { @@ -136,12 +197,12 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService } @Override - public WxBillOtherDeposit getById(Long id) { + public WxBillOtherDeposit getById(TenantEntity tenantEntity,Long id) { + WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(tenantEntity); WxBillOtherDeposit record = new WxBillOtherDeposit(); record.setId(id); - WxBillOtherDeposit wxBillOther = wxBillOtherDepositMapper.queryBillList(record).get(0); - WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(wxBillOther); - computeTotalMoney(wxPayAccountBill, wxBillOther); + record.updateTenantInfo(tenantEntity); + WxBillOtherDeposit wxBillOther = getBillRentPropertyList(1, 10000, record, wxPayAccountBill).getList().get(0); wxBillOther.setOwe(wxBillOther.getRealReceivePay() - wxBillOther.getPay()); wxBillOther.setMerchant(wxMerchantMapper.selectById(wxBillOther.getMerchantId())); // if (wxBillOther.getShopId() != null) { @@ -345,12 +406,14 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService @Override public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOtherDeposit wxBillDeposit) { WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(wxBillDeposit); - List datalist = wxBillOtherDepositMapper.queryBillList(wxBillDeposit); - datalist.stream().forEach(e->{ - //手续费 = 合同应收+手续费+滞纳金 - computeTotalMoney(wxPayAccountBill, e); - }); - excelService.exportExcel(datalist, null, "其他押金账单", WxBillOtherDeposit.class, "其他押金账单.xlsx", response, false); + PageInfo datalist = getBillRentPropertyList(1, 10000, wxBillDeposit, wxPayAccountBill); + List list = null; + if (null != datalist && null != datalist.getList()) { + list = datalist.getList(); + }else { + list = new ArrayList(); + } + excelService.exportExcel(list, null, "其他押金账单", WxBillOtherDeposit.class, "其他押金账单.xlsx", response, false); } diff --git a/mallinkService/src/main/resources/mapper/WxBillOtherDepositMapper.xml b/mallinkService/src/main/resources/mapper/WxBillOtherDepositMapper.xml index aa711029e..c1ceeb050 100644 --- a/mallinkService/src/main/resources/mapper/WxBillOtherDepositMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillOtherDepositMapper.xml @@ -89,15 +89,13 @@