From b956efdbc8a07c2fb721972677bd6e7108a77e69 Mon Sep 17 00:00:00 2001 From: winter Date: Sun, 21 Apr 2024 17:54:29 +0800 Subject: [PATCH] fix --- .../rent/WxBillOtherController.java | 14 ++- .../com/iformall/domain/po/WxBillOther.java | 4 + .../iformall/service/WxBillOtherService.java | 3 +- .../service/impl/WxBillDailyServiceImpl.java | 2 + .../service/impl/WxBillOtherServiceImpl.java | 105 ++++++++++++++---- .../resources/mapper/WxBillOtherMapper.xml | 16 ++- 6 files changed, 114 insertions(+), 30 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.java index 758e73a57..c3efef547 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillOtherController.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.WxBillOther; +import com.iformall.domain.po.WxUserDataRule; import com.iformall.service.WxBillOtherService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -33,12 +34,16 @@ public class WxBillOtherController extends BaseController { @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query", required = true)}) - @SystemControllerLog(description = "其它账单-列表") public ResultData list(@ModelAttribute WxBillOther wxBillOther, Integer pageNum, Integer pageSize) { logger.debug("[" + getIpAddr() + "] WxBillOtherController::list"); if (null == wxBillOther) { wxBillOther = new WxBillOther(); } + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxBillOther.setFloorForRule(dataRule.getFloorForRule()); + wxBillOther.setBusinessForRule(dataRule.getBusinessForRule()); + } wxBillOther.updateTenantInfo(getTenantInfo()); final PageInfo page = wxBillOtherService.listAsPage(wxBillOther, pageNum, pageSize); return new ResultData(page); @@ -78,7 +83,7 @@ public class WxBillOtherController extends BaseController { @SystemControllerLog(description = "其它账单-查询") public ResultData findById(Long id) { logger.debug("[" + getIpAddr() + "] WxBillOtherController::findById"); - return new ResultData(Result.SUCCESS, "查询成功", wxBillOtherService.getById(id)); + return new ResultData(Result.SUCCESS, "查询成功", wxBillOtherService.getById(this.getTenantInfo(),id)); } /** @@ -98,6 +103,11 @@ public class WxBillOtherController extends BaseController { @SystemControllerLog(description = "其它账单-导出") public void exportBill(@ModelAttribute WxBillOther wxBillOther, HttpServletRequest request, HttpServletResponse response) { wxBillOther.updateTenantInfo(getTenantInfo()); + WxUserDataRule dataRule = this.getCurrentDataFloors(); + if (null != dataRule) { + wxBillOther.setFloorForRule(dataRule.getFloorForRule()); + wxBillOther.setBusinessForRule(dataRule.getBusinessForRule()); + } wxBillOtherService.exportBill(request, response, wxBillOther); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java index 3e94f522e..c745151f9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillOther.java @@ -11,6 +11,7 @@ import lombok.ToString; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * @author gongbiao @@ -159,5 +160,8 @@ public class WxBillOther 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/WxBillOtherService.java b/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java index 216466b5b..a3bf7004a 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.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.WxBillOther; +import com.iformall.domain.po.base.TenantEntity; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -31,7 +32,7 @@ public interface WxBillOtherService { * @param id * @return */ - WxBillOther getById(Long id); + WxBillOther getById(TenantEntity tenantEntity,Long id); /** * 保存或更新实体 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java index 5aba27ea2..e20081c09 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java @@ -29,6 +29,7 @@ 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.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -64,6 +65,7 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { @Autowired WxPayAccountBillService wxPayAccountBillService; + @Lazy @Autowired WxMerchantService wxMerchantService; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java index 076008e48..6e20c6964 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.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.WxBillOther; +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.WxBillOtherMapper; @@ -19,17 +22,23 @@ import com.iformall.mapper.WxShopMapper; import com.iformall.service.ExcelService; import com.iformall.service.WxBillActionService; import com.iformall.service.WxBillOtherService; +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 WxBillOtherServiceImpl implements WxBillOtherService { @Autowired WxPayAccountBillService wxPayAccountBillService; + + @Lazy + @Autowired + WxMerchantService wxMerchantService; @Override public PageInfo listAsPage(WxBillOther record, Integer pageIndex, Integer pageSize) { WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(record); - //分页对象设置页数和条数 - PageHelper.startPage(pageIndex, pageSize); - //查询 - List billList = wxBillOtherMapper.queryBillList(record); - billList.stream().forEach(e->{ - //手续费 = 合同应收+手续费+滞纳金 - computeTotalMoney(wxPayAccountBill, e); - }); - //结果放入分页对象 - PageInfo pageInfo = new PageInfo<>(billList); - return pageInfo; + return getBillOtherPropertyList(pageIndex, pageSize, record, wxPayAccountBill); } + + private PageInfo getBillOtherPropertyList(Integer pageIndex, Integer pageSize,WxBillOther 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(() -> wxBillOtherMapper.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 ++) { + WxBillOther 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, WxBillOther e) { if (e.getReceivePay() != null) { @@ -136,12 +197,12 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { } @Override - public WxBillOther getById(Long id) { + public WxBillOther getById(TenantEntity tenantEntity,Long id) { + WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(tenantEntity); WxBillOther record = new WxBillOther(); record.setId(id); - WxBillOther wxBillOther = wxBillOtherMapper.queryBillList(record).get(0); - WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(wxBillOther); - computeTotalMoney(wxPayAccountBill, wxBillOther); + record.updateTenantInfo(tenantEntity); + WxBillOther wxBillOther = getBillOtherPropertyList(1, 1, record, wxPayAccountBill).getList().get(0); wxBillOther.setOwe(wxBillOther.getRealReceivePay() - wxBillOther.getPay()); wxBillOther.setMerchant(wxMerchantMapper.selectById(wxBillOther.getMerchantId())); // if (wxBillOther.getShopId() != null) { @@ -289,12 +350,14 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { @Override public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillOther wxBillOther) { WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(wxBillOther); - List datalist = wxBillOtherMapper.queryBillList(wxBillOther); - datalist.stream().forEach(e->{ - //手续费 = 合同应收+手续费+滞纳金 - computeTotalMoney(wxPayAccountBill, e); - }); - excelService.exportExcel(datalist, null, "其他费用账单", WxBillOther.class, "其他费用账单.xlsx", response, false); + PageInfo datalist = getBillOtherPropertyList(1, 10000, wxBillOther, wxPayAccountBill); + List list = null; + if (null != datalist && null != datalist.getList()) { + list = datalist.getList(); + }else { + list = new ArrayList(); + } + excelService.exportExcel(list, null, "其他费用账单", WxBillOther.class, "其他费用账单.xlsx", response, false); } diff --git a/mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml b/mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml index 67d858582..e2923184c 100644 --- a/mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillOtherMapper.xml @@ -85,16 +85,14 @@