diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java index 932c659f0..60cdf389e 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCouponMerchantMapper.java @@ -19,8 +19,8 @@ public interface WxCouponMerchantMapper extends CommonMapper findMerchantNameList(@Param("productId")Long productId,@Param("tenantId")String tenantId); List findMerchantBaseList(@Param("productId")Long productId,@Param("tenantId")String tenantId); List findMerchantProduct(@Param("tenantId")String tenantId,@Param("merchantIdList")List merchantIdList); + List findOnlyMerchantProduct(@Param("tenantId")String tenantId,@Param("merchantIdList")List merchantIdList); List findMerchantProductIds(@Param("tenantId")String tenantId,@Param("merchantIdList")List merchantIdList,@Param("status")Integer status); - List findOneMerchantProductIds(@Param("tenantId")String tenantId,@Param("merchantId")Long merchantId); List findMerchantByProductIds(@Param("tenantId")String tenantId,@Param("productIds")List productIds); - List findMerchantByProductId(@Param("tenantId")String tenantId,@Param("productId")Long productId); + List findOnlyMerchantByProductIds(@Param("tenantId")String tenantId,@Param("productIds")List productIds); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index a25ae114d..5968764e4 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -259,7 +259,7 @@ public interface WxCouponService { * 获取券商户map * */ - Map getCouponMerchantMap(List couponIds,TenantEntity tenantEntity); + Map getCouponMerchantMap(List couponIds,TenantEntity tenantEntity,boolean onlyOneMerchantCoupons); Map getCouponMap(List couponIds, TenantEntity tenantEntity); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index c41218955..e10e20c6e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -317,7 +317,9 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { return; } if(wxCouponChannel.getMerchantId() != null){ - List mcids = wxCouponMerchantMapper.findOneMerchantProductIds(wxCouponChannel.getTenantId(), wxCouponChannel.getMerchantId()); + List merchantIds = new ArrayList(); + merchantIds.add(wxCouponChannel.getMerchantId()); + List mcids = wxCouponMerchantMapper.findMerchantProductIds(wxCouponChannel.getTenantId(), merchantIds,0); if(mcids == null || mcids.isEmpty()){ wxCouponChannel.setId(-999L); return; 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 28696ee95..205bbc78b 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -291,22 +291,25 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { dateMap.put("endDateTimes", endDate.getTime()); List merchantIdList = new ArrayList(); merchantIdList.add(wxMerchant.getId()); - List merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(wxMerchant.getTenantId(), merchantIdList); - if (null != merchantProductVos) { + List merchantProductVos = wxCouponMerchantMapper.findOnlyMerchantProduct(wxMerchant.getTenantId(), merchantIdList); + if (null != merchantProductVos && merchantProductVos.size() > 0 ){ List couponIds = new ArrayList(); for (int i = 0 ; i < merchantProductVos.size(); i ++) { WxMerchantProductVo mp = merchantProductVos.get(i); - if (mp.getMc() == 1) { - if (!couponIds.contains(mp.getProductId())) { - couponIds.add(mp.getProductId()); - } - } + if (!couponIds.contains(mp.getProductId())) { + couponIds.add(mp.getProductId()); + } } if (couponIds.size() > 0 ) { dateMap.put("couponIds", couponIds); + list = wxCouponOrderMapper.findListOfOrderedByDate(dateMap); + }else { + list = new ArrayList(); } + }else { + list = new ArrayList(); } - list = wxCouponOrderMapper.findListOfOrderedByDate(dateMap); + } //logger.info("find " + list.size() + " coupon order from " + /startDate + " to " + new Date()); resultMap.put("amount", list.stream().mapToInt(p -> p.getCouponPrice()).sum()); @@ -350,29 +353,35 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { dateMap.put("endDateTimes", endDate.getTime()); List merchantIdList = new ArrayList(); merchantIdList.add(merchantId); - List merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(tenantEntity.getTenantId(), merchantIdList); - if (null != merchantProductVos) { + List merchantProductVos = wxCouponMerchantMapper.findOnlyMerchantProduct(tenantEntity.getTenantId(), merchantIdList); + PageInfo couponOrderPage = null; + if (null != merchantProductVos && merchantProductVos.size() > 0 ) { List couponIds = new ArrayList(); for (int i = 0 ; i < merchantProductVos.size(); i ++) { WxMerchantProductVo mp = merchantProductVos.get(i); - if (mp.getMc() == 1) { - if (!couponIds.contains(mp.getProductId())) { - couponIds.add(mp.getProductId()); - } - } + if (!couponIds.contains(mp.getProductId())) { + couponIds.add(mp.getProductId()); + } } if (couponIds.size() > 0 ) { dateMap.put("couponIds", couponIds); + couponOrderPage = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() ->wxCouponOrderMapper.findListOfOrderedByDateForBUser(dateMap)); } } - - PageInfo couponOrderPage = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() ->wxCouponOrderMapper.findListOfOrderedByDateForBUser(dateMap)); PageInfo pageInfo = new PageInfo(); - pageInfo.setList(handleToCouponOrderBVoList(tenantEntity,couponOrderPage.getList(),false,false)); - pageInfo.setPageNum(couponOrderPage.getPageNum()); - pageInfo.setPageSize(couponOrderPage.getPageSize()); - pageInfo.setPages(couponOrderPage.getPages()); - pageInfo.setTotal(couponOrderPage.getTotal()); + if (null != couponOrderPage) { + pageInfo.setList(handleToCouponOrderBVoList(tenantEntity,couponOrderPage.getList(),false,false)); + pageInfo.setPageNum(couponOrderPage.getPageNum()); + pageInfo.setPageSize(couponOrderPage.getPageSize()); + pageInfo.setPages(couponOrderPage.getPages()); + pageInfo.setTotal(couponOrderPage.getTotal()); + }else { + pageInfo.setList(null); + pageInfo.setPageNum(pageIndex); + pageInfo.setPageSize(pageSize); + pageInfo.setPages(0); + pageInfo.setTotal(0); + } return pageInfo; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java index 1d3c16b01..a594d15fe 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java @@ -129,7 +129,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { pageInfo.setPageSize(sendPageInfo.getPageSize()); pageInfo.setPages(sendPageInfo.getPages()); pageInfo.setTotal(sendPageInfo.getTotal()); - pageInfo.setList(couponSendToVoList(record,sendPageInfo.getList(),true,false)); + pageInfo.setList(couponSendToVoList(record,sendPageInfo.getList(),true,false,true)); } else { record.setStatus(EnumCouponSendStatus.VALID.getCode()); record.setSortColumns(BaseEntity.SortField.CreateDate_DESC); @@ -139,7 +139,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { pageInfo.setPageSize(sendPageInfo.getPageSize()); pageInfo.setPages(sendPageInfo.getPages()); pageInfo.setTotal(sendPageInfo.getTotal()); - pageInfo.setList(couponSendToVoList(record,sendPageInfo.getList(),false,true)); + pageInfo.setList(couponSendToVoList(record,sendPageInfo.getList(),false,true,true)); } return pageInfo; } @@ -147,10 +147,10 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { @Override public List findListVo(WxCouponSend record) { List couponSendList = wxCouponSendMapper.findList(record); - return couponSendToVoList(record,couponSendList,false,false); + return couponSendToVoList(record,couponSendList,false,false,false); } - private List couponSendToVoList(TenantEntity tenantEntity,List couponSendList,boolean setInventoryAndExpired,boolean setMerchantNameAndSendCount) { + private List couponSendToVoList(TenantEntity tenantEntity,List couponSendList,boolean setInventoryAndExpired,boolean setMerchantNameAndSendCount,boolean onlyOneMerchantCoupons) { if (null != couponSendList) { List couponIdList = new ArrayList<>(); List mallUserInfoIdList = new ArrayList(); @@ -199,7 +199,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { //couponMerchant Map couponMerchantMap = null; if (setMerchantNameAndSendCount) { - couponMerchantMap = wxCouponService.getCouponMerchantMap(couponIdList,tenantEntity); + couponMerchantMap = wxCouponService.getCouponMerchantMap(couponIdList,tenantEntity,onlyOneMerchantCoupons); } List retList = new ArrayList(); for (int i = 0 ; i getCouponMerchantMap(List couponIds, TenantEntity tenantEntity) { + public Map getCouponMerchantMap(List couponIds, TenantEntity tenantEntity,boolean onlyOneMerchantCoupons) { Map couponMerchantMap = new HashMap(); if(null != couponIds && couponIds.size() > 0){ - List merchantIds = wxCouponMerchantMapper.findMerchantByProductIds(tenantEntity.getTenantId(),couponIds); - + List merchantIds = null; + if (onlyOneMerchantCoupons) { + merchantIds = wxCouponMerchantMapper.findOnlyMerchantByProductIds(tenantEntity.getTenantId(),couponIds); + }else { + merchantIds = wxCouponMerchantMapper.findMerchantByProductIds(tenantEntity.getTenantId(),couponIds); + } + if (null == merchantIds) { + return couponMerchantMap; + } WxMerchant merchantQ = new WxMerchant(); merchantQ.updateTenantInfo(tenantEntity); merchantQ.setIds(merchantIds); @@ -979,8 +986,13 @@ public class WxCouponServiceImpl implements WxCouponService { } } - List merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(tenantEntity.getTenantId(), merchantIds); - if (null != merchantProductVos) { + List merchantProductVos = null; + if (onlyOneMerchantCoupons) { + merchantProductVos = wxCouponMerchantMapper.findOnlyMerchantProduct(tenantEntity.getTenantId(), merchantIds); + }else { + merchantProductVos = wxCouponMerchantMapper.findMerchantProduct(tenantEntity.getTenantId(), merchantIds); + } + if (null != merchantProductVos && merchantProductVos.size() > 0 ) { for (int i = 0 ; i < merchantProductVos.size(); i ++) { WxMerchantProductVo mp = merchantProductVos.get(i); if(couponIds.contains(mp.getProductId())){ diff --git a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml index 62403a5bf..47f64516d 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMerchantMapper.xml @@ -186,26 +186,48 @@ - + SELECT distinct wcm.merchant_id FROM wx_coupon_merchant wcm WHERE wcm.STATUS = 0 and wcm.`tenant_id` = #{tenantId} - - - and wcm.merchant_id = #{merchantId} + + and wcm.product_id in + + #{productIdItem} + - - + SELECT wcm.product_id,wcm.merchant_id,COUNT(1) AS mc + FROM wx_coupon_merchant wcm + WHERE wcm.STATUS = 0 + + and wcm.`tenant_id` = #{tenantId} + + GROUP BY product_id + HAVING mc = 1 + + and wcm.merchant_id in + + #{merchantIdItem} + + + + + + - -