From 14e1449175850888b2d1fe4611ecbf5c1003676e Mon Sep 17 00:00:00 2001 From: lin <642018748@qq.com> Date: Tue, 28 Feb 2023 21:11:27 +0800 Subject: [PATCH] fix card --- .../iformall/domain/po/WxMerchantSubsidy.java | 2 + .../iformall/mapper/WxCardSpendMapper.java | 2 + .../mapper/WxMerchantSubsidyMapper.java | 4 + .../service/impl/WxCardSpendServiceImpl.java | 197 +++++++++++++----- .../resources/mapper/WxCardSpendMapper.xml | 40 ++-- .../mapper/WxMerchantSubsidyMapper.xml | 24 ++- 6 files changed, 192 insertions(+), 77 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java index 23ca2981c..93370ade8 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxMerchantSubsidy.java @@ -40,6 +40,8 @@ public class WxMerchantSubsidy extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="商户ID",name="merchantId") private Long merchantId; + @TableField(exist = false) + private List merchantIdList; @io.swagger.annotations.ApiModelProperty(value = "b端核销商场tenantId", name = "bTenantId") private String bTenantId; diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCardSpendMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCardSpendMapper.java index 2e996474e..7d716a2a0 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCardSpendMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCardSpendMapper.java @@ -14,6 +14,8 @@ public interface WxCardSpendMapper extends CommonMapper { int findCount(WxCardSpend wxCardSpend); List> getMerchantCount(WxCardSpend wxCardSpend); + + List getMerchantIdList(WxCardSpend wxCardSpend); List> sumCardSpendVoForMerchant(WxCardSpendVo wxCardSpend); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantSubsidyMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantSubsidyMapper.java index b4b81825e..10972de1d 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxMerchantSubsidyMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxMerchantSubsidyMapper.java @@ -23,4 +23,8 @@ public interface WxMerchantSubsidyMapper extends CommonMapper> sumByMerchantId(WxMerchantSubsidy wxMerchantSubsidy); + + Map sum(WxMerchantSubsidy wxMerchantSubsidy); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java index 3ee4ad6f7..7f593cacf 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCardSpendServiceImpl.java @@ -404,6 +404,74 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { return false; } + private Map getMerchantMap(List merchantIdList,TenantEntity tenantEntity) { + Map merchantMap = new HashMap(); + if (merchantIdList.size() > 0 ){ + WxMerchant mq = new WxMerchant(); + mq.updateTenantInfo(tenantEntity); + mq.setIds(merchantIdList); + List merchantList = wxMerchantMapper.findList(mq); + if (null != merchantList && merchantList.size() > 0 ){ + for (int i = 0 ;i < merchantList.size();i++){ + WxMerchant m = merchantList.get(i); + merchantMap.put(m.getId(), m); + } + } + } + return merchantMap; + } + + private Map getCouponMap(List couponIdList,TenantEntity tenantEntity) { + Map couponMap = new HashMap(); + if (couponIdList.size() > 0 ){ + WxCoupon cq = new WxCoupon(); + cq.updateTenantInfo(tenantEntity); + cq.setIds(couponIdList); + List couponList = wxCouponMapper.findList(cq); + if (null != couponList && couponList.size() > 0 ){ + for (int i = 0 ;i < couponList.size();i++){ + WxCoupon c = couponList.get(i); + couponMap.put(c.getId(),c); + } + } + } + return couponMap; + } + + private Map getOrderSubsidyMap(List merchantSubsidyOrderIdList,TenantEntity tenantEntity){ + Map orderSubsidyMap = new HashMap(); + if (merchantSubsidyOrderIdList.size() > 0 ){ + WxMerchantSubsidy msq = new WxMerchantSubsidy(); + msq.updateTenantInfo(tenantEntity); + msq.setOrderIdList(merchantSubsidyOrderIdList); + List msqList = wxMerchantSubsidyMapper.findList(msq); + if (null != msqList && msqList.size() > 0 ){ + for (int i = 0 ;i < msqList.size();i++){ + WxMerchantSubsidy c = msqList.get(i); + orderSubsidyMap.put(c.getOrderId(),c); + } + } + } + return orderSubsidyMap; + } + + private Map getUserMap(List userIdList,TenantEntity tenantEntity) { + Map userMap = new HashMap(); + if (userIdList.size() > 0 ){ + WxCUserBasicInfo u = new WxCUserBasicInfo(); + u.setFinalTenantId(tenantEntity.getFinalTenantId()); + u.setIds(userIdList); + List msqList = wxCUserBasicInfoMapper.findList(u); + if (null != msqList && msqList.size() > 0 ){ + for (int i = 0 ;i < msqList.size();i++){ + WxCUserBasicInfo c = msqList.get(i); + userMap.put(c.getId(),c); + } + } + } + return userMap; + } + private List handleToCardSpendVoList(List list,TenantEntity tenantEntity) { if (null != list && list.size() > 0 ){ List merchantIdList = new ArrayList(); @@ -428,19 +496,8 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { } - Map merchantMap = new HashMap(); - if (merchantIdList.size() > 0 ){ - WxMerchant mq = new WxMerchant(); - mq.updateTenantInfo(tenantEntity); - mq.setIds(merchantIdList); - List merchantList = wxMerchantMapper.findList(mq); - if (null != merchantList && merchantList.size() > 0 ){ - for (int i = 0 ;i < merchantList.size();i++){ - WxMerchant m = merchantList.get(i); - merchantMap.put(m.getId(), m); - } - } - } + Map merchantMap = getMerchantMap(merchantIdList, tenantEntity); + Map cardCouponIdMap = new HashMap(); if (cardInfoIdList.size() > 0 ){ @@ -459,47 +516,11 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { } } - Map couponMap = new HashMap(); - if (couponIdList.size() > 0 ){ - WxCoupon cq = new WxCoupon(); - cq.updateTenantInfo(tenantEntity); - cq.setIds(couponIdList); - List couponList = wxCouponMapper.findList(cq); - if (null != couponList && couponList.size() > 0 ){ - for (int i = 0 ;i < couponList.size();i++){ - WxCoupon c = couponList.get(i); - couponMap.put(c.getId(),c); - } - } - } + Map couponMap = getCouponMap(couponIdList, tenantEntity); - Map orderSubsidyMap = new HashMap(); - if (merchantSubsidyOrderIdList.size() > 0 ){ - WxMerchantSubsidy msq = new WxMerchantSubsidy(); - msq.updateTenantInfo(tenantEntity); - msq.setOrderIdList(merchantSubsidyOrderIdList); - List msqList = wxMerchantSubsidyMapper.findList(msq); - if (null != msqList && msqList.size() > 0 ){ - for (int i = 0 ;i < msqList.size();i++){ - WxMerchantSubsidy c = msqList.get(i); - orderSubsidyMap.put(c.getOrderId(),c); - } - } - } + Map orderSubsidyMap = getOrderSubsidyMap(merchantSubsidyOrderIdList, tenantEntity); - Map userMap = new HashMap(); - if (userIdList.size() > 0 ){ - WxCUserBasicInfo u = new WxCUserBasicInfo(); - u.setFinalTenantId(tenantEntity.getFinalTenantId()); - u.setIds(userIdList); - List msqList = wxCUserBasicInfoMapper.findList(u); - if (null != msqList && msqList.size() > 0 ){ - for (int i = 0 ;i < msqList.size();i++){ - WxCUserBasicInfo c = msqList.get(i); - userMap.put(c.getId(),c); - } - } - } + Map userMap = getUserMap(userIdList, tenantEntity); List retList = new ArrayList(); for (int i = 0 ; i < list.size(); i++ ){ @@ -543,7 +564,6 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { } catch (InvocationTargetException e) { e.printStackTrace(); } - } } @@ -615,12 +635,79 @@ public class WxCardSpendServiceImpl implements WxCardSpendService { @Override public List> sumCardSpendForMerchant(WxCardSpendVo record) { - return wxCardSpendMapper.sumCardSpendVoForMerchant(record); + handleQueryParam(record); + List merchantIdList = wxCardSpendMapper.getMerchantIdList(record); + Map merchantMap = this.getMerchantMap(merchantIdList, record); + WxMerchantSubsidy sq = getWxMerchantSubsidyQuery(record,merchantIdList); + List> merchantSubsidyMap = wxMerchantSubsidyMapper.sumByMerchantId(sq); + Map> msmap = new HashMap>(); + if (null != merchantSubsidyMap && merchantSubsidyMap.size() > 0 ) { + for (int i = 0 ; i < merchantSubsidyMap.size(); i++) { + Map result = merchantSubsidyMap.get(i) ; + Map submap = new HashMap(); + submap.put("sum_subsidy", (Integer)result.get("sum_subsidy")); + submap.put("sum_real_subsidy", (Integer)result.get("sum_real_subsidy")); + msmap.put((Long)result.get("merchant_id"), submap) ; + } + } + + List> resultList = wxCardSpendMapper.sumCardSpendVoForMerchant(record); + if (null != resultList && resultList.size() > 0 ) { + for (int i = 0 ; i < resultList.size(); i++) { + Map result = resultList.get(i); + Long merchantId = (Long)result.get("merchant_id") ; + if (null != merchantId) { + WxMerchant merchant = merchantMap.get(merchantId); + if (null != merchant) { + result.put("merchantName", merchant.getName()); + } + Map busmap = msmap.get(merchantId); + if (null != busmap) { + result.put("sum_subsidy", (null == busmap.get("sum_subsidy"))?0:busmap.get("sum_subsidy")); + result.put("sum_real_subsidy", (null == busmap.get("sum_real_subsidy")?0:busmap.get("sum_real_subsidy"))); + }else { + result.put("sum_subsidy", 0); + result.put("sum_real_subsidy", 0); + } + } + } + } + + return resultList; } + private WxMerchantSubsidy getWxMerchantSubsidyQuery(WxCardSpendVo record,List merchantIdList) { + WxMerchantSubsidy sq = new WxMerchantSubsidy(); + sq.updateTenantInfo(record); + sq.setStatus(record.getStatus()); + sq.setSourceList(record.getSources()); + sq.setCardSpendListShow(record.getCardSpendListShow()); + if (null != merchantIdList && merchantIdList.size() > 0 ) { + sq.setMerchantIdList(merchantIdList); + } + return sq; + } + @Override public List> sumCardSpendForOwner(WxCardSpendVo record) { - return wxCardSpendMapper.sumCardSpendVoForOwner(record); + handleQueryParam(record); + List merchantIdList = wxCardSpendMapper.getMerchantIdList(record); + WxMerchantSubsidy sq = getWxMerchantSubsidyQuery(record,merchantIdList); + Map submap = wxMerchantSubsidyMapper.sum(sq); + List> resultList = wxCardSpendMapper.sumCardSpendVoForOwner(record); + if (null != resultList && resultList.size() > 0 ) { + for (int i = 0 ; i < resultList.size(); i++) { + Map result = resultList.get(i); + if (null != submap) { + result.put("sum_subsidy", (null == submap.get("sum_subsidy"))?0:submap.get("sum_subsidy")); + result.put("sum_real_subsidy", (null == submap.get("sum_real_subsidy")?0:submap.get("sum_real_subsidy"))); + }else { + result.put("sum_subsidy", 0); + result.put("sum_real_subsidy", 0); + } + } + } + return resultList; } @Override diff --git a/mallinkService/src/main/resources/mapper/WxCardSpendMapper.xml b/mallinkService/src/main/resources/mapper/WxCardSpendMapper.xml index 011b13721..8ae2b7b86 100644 --- a/mallinkService/src/main/resources/mapper/WxCardSpendMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCardSpendMapper.xml @@ -257,38 +257,36 @@ group by cs.merchant_id + + - + + select merchant_id, + IFNULL(SUM(ms.`subsidy`), 0) as sum_subsidy, + IFNULL(SUM(ms.`real_subsidy`), 0) as sum_real_subsidy + from wx_merchant_subsidy + + group by merchant_id + + +