From e3c92b1215b2fa2a587c767932bef61d1197caad Mon Sep 17 00:00:00 2001 From: winter Date: Mon, 10 Jan 2022 20:44:34 +0800 Subject: [PATCH] fix couponorder export --- .../impl/WxCouponOrderServiceImpl.java | 143 ++++++++++++++---- .../resources/mapper/WxCouponOrderMapper.xml | 4 +- 2 files changed, 112 insertions(+), 35 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 445aabce8..02db3c434 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -342,6 +342,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { public ResultData listAdminAsPage(WxCouponOrderBVo wxCouponOrderBVo, Integer pageIndex, Integer pageSize) { handleWxCouponOrderBVoQueryParam(wxCouponOrderBVo); PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponOrderMapper.findListOfAdmin(wxCouponOrderBVo)); + if (null != pageInfo && null != pageInfo.getList()){ + handleQueryResult(pageInfo.getList(), wxCouponOrderBVo); + } return new ResultData(pageInfo); } @@ -479,48 +482,124 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } + private void handleQueryResult(List list,TenantEntity tenantEntity) { + if (null != list ) { + + WxMerchant merchantQ = new WxMerchant(); + merchantQ.updateTenantInfo(tenantEntity); + List merchantList = wxMerchantMapper.findIdNameList(merchantQ); + Map merchantNameMap = new HashMap(); + if (null != merchantList) { + merchantList.parallelStream().forEach(m -> { + merchantNameMap.put(m.getId(), m.getName()); + }); + } + + WxCoupon couponQ = new WxCoupon(); + couponQ.updateTenantInfo(tenantEntity); + List couponList = wxCouponMapper.findList(couponQ); + Map couponMap = new HashMap(); + if (null != couponList) { + couponList.parallelStream().forEach(c -> { + couponMap.put(c.getId(), c); + }); + } + + + List merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(tenantEntity.getTenantId(), null); + Map merchantProductIdMap = new HashMap(); + if (null != merchantProductVos) { + merchantProductVos.parallelStream().forEach(mp -> { + if (mp.getMc() > 1) { + merchantProductIdMap.put(mp.getProductId(), -999L); + }else { + merchantProductIdMap.put(mp.getProductId(), mp.getMerchantId()); + } + }); + } + + list.parallelStream().forEach(co -> { + if (co.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode())) { + co.setUpdateDate(null); + } + if (null != co.getSendMerchantId()) { + co.setSendMerchantName(merchantNameMap.get(co.getSendMerchantId())); + } + WxCoupon coupon = couponMap.get(co.getCouponId()); + if (null != coupon) { + co.setTitle(coupon.getTitle()); + co.setSalePrice(coupon.getSalePrice()); + co.setUsePrice(coupon.getUsePrice()); + co.setPrice(coupon.getPrice()); + co.setAutoRefund(coupon.getAutoRefund()); + co.setBusiness(coupon.getBusiness()); + co.setSubsidyType(coupon.getSubsidyType()); + co.setSourceType(coupon.getSourceType()); + } + + WxMerchantSubsidy merchantSubsidyQ = new WxMerchantSubsidy(); + merchantSubsidyQ.setCouponOrderId(co.getId()); + merchantSubsidyQ.setCouponType(co.getCouponType()); + merchantSubsidyQ.setType(EnumMerchantSubsidyType.MANUAL.getCode()); + merchantSubsidyQ.updateTenantInfo(co); + List msList = wxMerchantSubsidyMapper.selectList(new QueryWrapper(merchantSubsidyQ)); + if (msList.size() > 0) { + co.setSubsidyNum(msList.get(0).getSubsidy()); + } + + Long merchanId = merchantProductIdMap.get(co.getCouponId()); + if (merchanId == 999L) { + co.setMerchantName("多商户通用"); + co.setMerchantId(0L); + }else { + co.setMerchantName(merchantNameMap.get(merchanId)); + co.setMerchantId(merchanId); + } + + WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.getById(co.getCUserId(), co.getFinalTenantId()); + if (null != basicInfo) { + co.setcuserPhone(basicInfo.getPhone()); + co.setUserNickName(basicInfo.getNickName()); + } + + WxMerchantBUser buser = wxMerchantBUserService.getById(co.getBUserId()); + if (null != buser) { + co.setVerifyMerchantName(merchantNameMap.get(buser.getMerchantId())); + } + //co.setChannelType();) + + + // if (!c.getMerchantId().equals(0L)) { + // List merchantVoList = c.getMerchantVoList(); + // if (!CollectionUtils.isEmpty(merchantVoList)) { + // StringBuilder shopNumber = new StringBuilder(); + // StringBuilder building = new StringBuilder(); + // WxMerchantVo wxMerchantVo = merchantVoList.get(0); + // List shopVoList = wxMerchantVo.getShopVoList(); + // for (WxShopVo wxShopVo : shopVoList) { + // shopNumber.append(wxShopVo.getShopNumber()).append(";"); + // building.append(wxShopVo.getBuildingName()).append(wxShopVo.getFloorName()).append(";"); + // } + // c.setShopNumber(shopNumber.toString()); + // c.setBuildingStr(building.toString()); + // } + // } + }); + } + + } + @Override public void exportData(WxCouponOrderBVo wxCouponOrder, HttpServletRequest request, HttpServletResponse response) { String filename = "券订单"; if(EnumCouponType.COUPON_DISTRIBUTION.getCode().equals(wxCouponOrder.getCouponType())){ filename = "商品订单"; } - WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(wxCouponOrder); - List merchantList = wxMerchantMapper.findIdNameList(merchantQ); - Map merchantNameMap = new HashMap(); - if (null != merchantList) { - merchantList.parallelStream().forEach(m -> { - merchantNameMap.put(m.getId(), m.getName()); - }); - } handleWxCouponOrderBVoQueryParam(wxCouponOrder); List list = wxCouponOrderMapper.findListOfAdmin(wxCouponOrder); - list.parallelStream().forEach(c -> { - if (c.getCouponOrderStatus().equals(EnumCouponOrderStatus.COUPON_ORDER_USE_WAIT.getCode())) { - c.setUpdateDate(null); - } - if (null != c.getSendMerchantId()) { - c.setSendMerchantName(merchantNameMap.get(c.getSendMerchantId())); - } -// if (!c.getMerchantId().equals(0L)) { -// List merchantVoList = c.getMerchantVoList(); -// if (!CollectionUtils.isEmpty(merchantVoList)) { -// StringBuilder shopNumber = new StringBuilder(); -// StringBuilder building = new StringBuilder(); -// WxMerchantVo wxMerchantVo = merchantVoList.get(0); -// List shopVoList = wxMerchantVo.getShopVoList(); -// for (WxShopVo wxShopVo : shopVoList) { -// shopNumber.append(wxShopVo.getShopNumber()).append(";"); -// building.append(wxShopVo.getBuildingName()).append(wxShopVo.getFloorName()).append(";"); -// } -// c.setShopNumber(shopNumber.toString()); -// c.setBuildingStr(building.toString()); -// } -// } - }); + handleQueryResult(list,wxCouponOrder); excelService.exportCsv(list, null, filename, WxCouponOrderBVo.class, filename + ".csv", response, false); } diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 950b1cd6b..506c6929d 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -841,7 +841,6 @@ - @@ -885,8 +884,7 @@