From ae26e9e05c1345f92c5e3df75df8de2b9fedb6fe Mon Sep 17 00:00:00 2001 From: winter Date: Sat, 14 May 2022 21:01:29 +0800 Subject: [PATCH] fix bug --- .../controller/WxCouponChannelController.java | 3 +- .../java/com/iformall/domain/po/WxCoupon.java | 2 + .../com/iformall/service/WxCouponService.java | 1 + .../iformall/service/WxMerchantService.java | 1 + .../impl/WxCouponChannelServiceImpl.java | 2 + .../service/impl/WxMerchantServiceImpl.java | 67 +++++++++++++++++++ .../mapper/WxCouponChannelMapper.xml | 4 -- .../main/resources/mapper/WxCouponMapper.xml | 2 +- 8 files changed, 75 insertions(+), 7 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java index 8f569046e..6ce3d9fc1 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java @@ -98,7 +98,6 @@ public class WxCouponChannelController extends BaseController { return new ResultData(page); } - @RedisCache @ApiOperation("分页列表接口") @GetMapping("douyinLiveList") @ApiImplicitParams({ @@ -124,7 +123,7 @@ public class WxCouponChannelController extends BaseController { if (null == page ) { page = wxCouponChannelService.liveHomePage(wxCouponChannel, pageNum, pageSize); if(page.getList() != null && page.getList().size() > 0){ - RedisCacheUtils.cache(redisTemplate, key, page, 100); + RedisCacheUtils.cache(redisTemplate, key, page, 60*60); } } return new ResultData(page); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java index f43e6d8ec..c9c7340cf 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -192,6 +192,8 @@ public class WxCoupon extends TenantEntity { private String merchantParams; @TableField(exist = false) private Long merchantId; + @TableField(exist = false) + private String merchantName; @TableField(exist = false) @io.swagger.annotations.ApiModelProperty(value="投放频道参数,用来过滤",name="targetAd") diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index 79614e9bd..4ccb6db99 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -268,4 +268,5 @@ public interface WxCouponService { Map getCouponMap(List couponIds, TenantEntity tenantEntity); List getCouponMerchantList(TenantEntity tenantInfo, Long couponId); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java index 65aaa5a3c..5ad5eda4c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMerchantService.java @@ -160,6 +160,7 @@ public interface WxMerchantService { List findMerchantVoList(Long couponId,TenantEntity tenantEntity,boolean hasShop); Map> findCouponMerchantVoList(List couponIds,TenantEntity tenantEntity,boolean hasShop); + Map getLiveCouponMerchantMap(List couponIds,TenantEntity tenantEntity); List getMerchantList(WxMerchant wxMerchant); 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 81aefcae3..2b2cc45da 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -512,6 +512,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } List couponIds = list.stream().map(cc -> cc.getCouponId()).collect(Collectors.toList()); Map couponMap = wxCouponService.getCouponMap(couponIds,tenantEntity); + Map merchantNameMap = wxMerchantService.getLiveCouponMerchantMap(couponIds,tenantEntity); List retList = new ArrayList<>(); for (WxCouponChannel cc:list) { WxCoupon cm = couponMap.get(cc.getCouponId()); @@ -525,6 +526,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { vo.setInventory(cm.getInventory()); vo.setSalePrice(cm.getSalePrice()); vo.setPrice(cm.getPrice()); + vo.setMerchantName(merchantNameMap.get(cc.getCouponId())); retList.add(vo); } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index e80c43b18..a16db4d29 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -1230,6 +1230,73 @@ public class WxMerchantServiceImpl implements WxMerchantService { return wxCouponOrderService.userTradeDetailList(record,record.getStarttime(),record.getEndtime(),pageIndex,pageSize); } + @Override + public Map getLiveCouponMerchantMap(List couponIds,TenantEntity tenantEntity) { + Map retMap = new HashMap(); + if (null == couponIds || couponIds.size() <= 0) { + return retMap; + } + WxCouponMerchant couponMerchantQ = new WxCouponMerchant(); + couponMerchantQ.updateTenantInfo(tenantEntity); + couponMerchantQ.setStatus(0); + couponMerchantQ.setProductIds(couponIds); + List couponMerchantList = wxCouponMerchantMapper.findList(couponMerchantQ); + if (null == couponMerchantList) { + return retMap; + } + Map> couponMerchantIdMap = new HashMap>(); + List merchantIdList = new ArrayList(); + for (int i = 0 ; i < couponMerchantList.size() ; i ++) { + WxCouponMerchant cm = couponMerchantList.get(i); + Long couponId = cm.getProductId(); + Long merchantId = cm.getMerchantId(); + if (null != couponId && null != merchantId) { + List mIdList = couponMerchantIdMap.get(couponId); + if (null == mIdList) { + mIdList = new ArrayList(); + couponMerchantIdMap.put(couponId, mIdList); + } + mIdList.add(merchantId); + merchantIdList.add(merchantId); + } + } + Map merchantMap = new HashMap(); + if (merchantIdList.size() > 0 ) { + WxMerchant merchantQ = new WxMerchant(); + merchantQ.updateTenantInfo(tenantEntity); + merchantQ.setIds(merchantIdList); + List merchantList = wxMerchantMapper.findList(merchantQ); + if (null != merchantList) { + for (int i = 0 ; i < merchantList.size() ; i++) { + WxMerchant m = merchantList.get(i); + if (null != m) { + merchantMap.put(m.getId(), m); + } + } + } + } + + for (Iterator it = couponMerchantIdMap.keySet().iterator();it.hasNext();) { + Long couponId = it.next(); + List mids = couponMerchantIdMap.get(couponId); + if (null != mids) { + if (mids.size() == 1) { + WxMerchant merchant = merchantMap.get(mids.get(0)); + if (null != merchant) { + retMap.put(couponId, merchant.getName()); + }else { + retMap.put(couponId, "暂无商户可用"); + } + }else if(mids.size() > 1){ + retMap.put(couponId, mids.size()+"家商户通用"); + }else { + retMap.put(couponId, "暂无商户可用"); + } + } + } + return retMap; + } + @Override public Map> findCouponMerchantVoList(List couponIds,TenantEntity tenantEntity,boolean hasShop) { Map> retMap = new HashMap>(); diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index f30079226..5463aa150 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -354,10 +354,6 @@ and cc.`status` = #{status} - - and cc.`coupon_status` = #{couponStatus} - - and cc.`sub_target_id` = #{subTargetId} diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index e85ee551e..d11e65cce 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -1260,7 +1260,7 @@