diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index f4a4088cc..037b100e9 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -131,7 +131,6 @@ public class WxCouponOrderController extends BaseController { } - @RedisCache @ApiOperation("某日期交易总流水") @GetMapping("getUnverifiedAmountOnDate") @ApiImplicitParams({ @@ -140,7 +139,6 @@ public class WxCouponOrderController extends BaseController { return wxCouponOrderService.listOnDateAsPage(getLoginBUser().getId(), date, null, null, false); } - @RedisCache @ApiOperation("某日期核销总流水") @GetMapping("getVerifiedAmountOnDate") @ApiImplicitParams({ diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java index a8bbb0fef..80b3fe640 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java @@ -64,12 +64,21 @@ public class WxCouponChannelController extends BaseController { wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); wxCouponChannel.setCouponStatus(EnumCouponStatus.COUPON_STATUS_THROW_IN.getCode()); - if(StringUtils.isNotBlank(wxCouponChannel.getSortColumn())){ +// if(StringUtils.isNotBlank(wxCouponChannel.getSortColumn())){ +// +// }else{ +// wxCouponChannel.setSortColumns(BaseEntity.SortField.CCUpdateDate_DESC, BaseEntity.SortField.CCId_DESC); +// } + wxCouponChannel.setSortColumn(null); + wxCouponChannel.setSortColumns(BaseEntity.SortField.CCUpdateDate_DESC, BaseEntity.SortField.CCId_DESC); + wxCouponChannel.setShowBeginTime(new Date()); - }else{ - wxCouponChannel.setSortColumns(BaseEntity.SortField.CCUpdateDate_DESC, BaseEntity.SortField.CCId_DESC); + if(EnumCouponChannelType.COUPON_CHANNEL_ID_CARD.getCode().equals(wxCouponChannel.getTargetAd()) + || EnumCouponChannelType.COUPON_CHANNEL_ID_CREDIT.getCode().equals(wxCouponChannel.getTargetAd())){ + PageInfo page = wxCouponChannelService.newListPageVo(wxCouponChannel, pageNum, pageSize); + filterTimed(wxCouponChannel, page); + return new ResultData(page); } - wxCouponChannel.setShowBeginTime(new Date()); String key = EnumCacheKey.C_INDEX_PAGE_LIST.getMessage() + wxCouponChannel.getTenantId() + "_" diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java index 46ffae331..f4fc4aabe 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java @@ -2,6 +2,7 @@ package com.iformall.schedule; import com.iformall.common.IdWorker; import com.iformall.domain.po.*; +import com.iformall.domain.vo.WxMerchantProductVo; import com.iformall.enums.EnumDateAmtType; import com.iformall.enums.EnumMerchantStatus; import com.iformall.mapper.*; @@ -41,22 +42,38 @@ public class DaliyAmountSchedule { @Autowired WxMerchantBUserMapper wxMerchantBUserMapper; + + @Autowired + WxCouponMerchantMapper wxCouponMerchantMapper; @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public void daliyAmountMerchant(Date startDate,Date endDate,Calendar cal,WxMerchant merchant){ - Map dateMap = new HashMap(); - dateMap.put("startDate", startDate); - dateMap.put("endDate", endDate); - dateMap.put("merchantId", merchant.getId()); - dateMap.put("tenantId", merchant.getTenantId()); - WxMerchantBUser merchantBUserQ = new WxMerchantBUser(); - merchantBUserQ.updateTenantInfo(merchant); - merchantBUserQ.setMerchantId(merchant.getId()); - List bUserIds = wxMerchantBUserMapper.findIdList(merchantBUserQ); - dateMap.put("bUserIds", bUserIds); - - List list = wxCouponOrderMapper.findListOfOrderedByDate(dateMap); + + Map orderdateMap = new HashMap(); + orderdateMap.put("startDateTimes", startDate.getTime()); + orderdateMap.put("endDateTimes", endDate.getTime()); + orderdateMap.put("merchantId", merchant.getId()); + orderdateMap.put("tenantId", merchant.getTenantId()); + List merchantIdList = new ArrayList(); + merchantIdList.add(merchant.getId()); + List merchantProductVos = wxCouponMerchantMapper.findOnlyMerchantProduct(merchant.getTenantId(), merchantIdList); + boolean hasCoupons = true; + if (null != merchantProductVos && merchantProductVos.size() > 0 ){ + List couponIds = new ArrayList(); + for (int i = 0 ; i < merchantProductVos.size(); i ++) { + WxMerchantProductVo mp = merchantProductVos.get(i); + if (!couponIds.contains(mp.getProductId())) { + couponIds.add(mp.getProductId()); + } + } + if (couponIds.size() > 0 ) { + orderdateMap.put("couponIds", couponIds); + }else { + return; + } + } + List list = wxCouponOrderMapper.findListOfOrderedByDate(orderdateMap); logger.info("find " + list.size() + " coupon order from " + startDate + " to " + endDate); int total_price = list.stream().mapToInt(p -> p.getCouponPrice()).sum(); @@ -77,6 +94,16 @@ public class DaliyAmountSchedule { wxDateAmountRecordService.saveAmount(dateAmountRecord); + Map dateMap = new HashMap(); + dateMap.put("startDate", startDate); + dateMap.put("endDate", endDate); + dateMap.put("merchantId", merchant.getId()); + dateMap.put("tenantId", merchant.getTenantId()); + WxMerchantBUser merchantBUserQ = new WxMerchantBUser(); + merchantBUserQ.updateTenantInfo(merchant); + merchantBUserQ.setMerchantId(merchant.getId()); + List bUserIds = wxMerchantBUserMapper.findIdList(merchantBUserQ); + dateMap.put("bUserIdList", bUserIds); list = wxCouponOrderMapper.findListOfVerifiedByDate(dateMap); if (null != list && list.size() > 0) { logger.info("\nfind " + list.size() + " coupon order from " + startDate + " to " + endDate); 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..be1154754 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -306,6 +306,9 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { if(wxCouponChannel.getSourceType() != null){ couponQ.setSourceType(wxCouponChannel.getSourceType()); } + if(wxCouponChannel.getSupportTransfer() != null){ + couponQ.setSupportTransfer(wxCouponChannel.getSupportTransfer()); + } List cids = wxCouponMapper.findIdList(couponQ); return cids; } @@ -317,7 +320,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 5bd023f3c..5202e0a04 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -284,29 +284,32 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { merchantBUserQ.updateTenantInfo(wxMerchant); merchantBUserQ.setMerchantId(wxMerchant.getId()); List bUserIds = wxMerchantBUserMapper.findIdList(merchantBUserQ); - dateMap.put("bUserIds", bUserIds); + dateMap.put("bUserIdList", bUserIds); list = wxCouponOrderMapper.findListOfVerifiedByDate(dateMap); }else { dateMap.put("startDateTimes", startDate.getTime()); 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()); @@ -331,7 +334,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { merchantBUserQ.updateTenantInfo(tenantEntity); merchantBUserQ.setMerchantId(merchantId); List bUserIds = wxMerchantBUserMapper.findIdList(merchantBUserQ); - dateMap.put("bUserIds", bUserIds); + dateMap.put("bUserIdList", bUserIds); PageInfo couponOrderPage = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() ->wxCouponOrderMapper.findListOfVerifiedByDateForBUser(dateMap)); PageInfo pageInfo = new PageInfo(); @@ -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..8476fc91c 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,false)); } 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,false)); } 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 || merchantIds.size() <= 0) { + 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} + + + + + + - - diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 5e8774166..e62176a4c 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -160,9 +160,9 @@ from wx_coupon_order co where co.tenant_id = #{tenantId} AND co.coupon_order_status = '1' - + and co.b_user_id in - + #{bUserIdItem}