diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java index 9cd01193e..30c46ecb8 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponController.java @@ -28,10 +28,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.alibaba.fastjson.JSON; +import com.iformall.annotation.TenantIgnore; import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponChannel; +import com.iformall.domain.po.WxMall; import com.iformall.domain.vo.WxCouponCVo; import com.iformall.domain.vo.WxMerchantVo; import com.iformall.enums.EnumCouponChannelActivityStatus; @@ -281,6 +283,7 @@ public class WxCouponController extends BaseController { return new ResultData(sb.toString()); } + @TenantIgnore @ApiOperation("根据id(couponChannel)查询商品商户接口") @GetMapping("/couponMerchant") @ApiImplicitParams({ @@ -314,7 +317,7 @@ public class WxCouponController extends BaseController { CouponCacheUtils.setCouponChannelCache(redisTemplate, couponChannelIdL, couponChannel); } - List volist = CouponCacheUtils.getCouponMerchantCache(redisTemplate, couponChannel.getId()); + Map> volist = CouponCacheUtils.getCouponMerchantCache(redisTemplate, couponChannel.getId()); if (null == volist) { volist = couponService.getCouponMerchantList(getTenantInfo(), couponChannel.getCouponId()); if (null != volist && volist.size() > 0 ) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java index f4ee77673..7d30051b6 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponService.java @@ -10,6 +10,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.TtCouponChannelPoi; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxCoupon; +import com.iformall.domain.po.WxMall; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.TtCouponVo; @@ -278,7 +279,7 @@ public interface WxCouponService { Map getCouponMap(List couponIds, TenantEntity tenantEntity); - List getCouponMerchantList(TenantEntity tenantInfo, Long couponId); + Map> getCouponMerchantList(TenantEntity tenantInfo, Long couponId); /** * 作废卷 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index fb8211348..26834c665 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -150,6 +150,9 @@ public class WxCouponServiceImpl implements WxCouponService { @Autowired WxCouponMallMapper wxCouponMallMapper; + + @Autowired + WxMallMapper wxMallMapper; @Override public ResultData list(TenantEntity tenantEntity,WxCoupon wxCoupon, Integer pageNum, Integer pageSize) { @@ -1507,10 +1510,36 @@ public class WxCouponServiceImpl implements WxCouponService { } @Override - public List getCouponMerchantList(TenantEntity tenantInfo, Long couponId) { - List couponIdList = new ArrayList(); + public Map> getCouponMerchantList(TenantEntity tenantInfo, Long couponId) { + WxCoupon wxCoupon = wxCouponMapper.selectById(couponId,tenantInfo.getTenantId()); + if (EnumCouponType.isParentCoupon(wxCoupon.getType())){ + WxCouponMall couponMall = new WxCouponMall(); + couponMall.updateTenantInfo(tenantInfo); + couponMall.setProductId(couponId); + couponMall.setStatus(EnumCouponMallStatus.FINISED.getCode()); + List couponMallList = wxCouponMallMapper.findList(couponMall); + if (null != couponMallList && couponMallList.size()> 0 ) { + Map> mallMerchantMap = new HashMap>(); + for (int i = 0 ; i < couponMallList.size();i++) { + WxCouponMall cm = couponMallList.get(i); + WxMall mall = wxMallMapper.getByTenantId(cm.getMallTenantId()); + mallMerchantMap.put(mall, getCouponMerchantList(couponId,mall)); + } + return mallMerchantMap; + } + return null; + }else { + Map> mallMerchantMap = new HashMap>(); + WxMall mall = wxMallMapper.getByTenantId(tenantInfo.getTenantId()); + mallMerchantMap.put(mall, getCouponMerchantList(couponId,mall)); + return mallMerchantMap; + } + } + + private List getCouponMerchantList(Long couponId,TenantEntity mallTenantEntity) { + List couponIdList = new ArrayList(); couponIdList.add(couponId); - Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, tenantInfo,true); + Map> couponMerchantVoMap = wxMerchantService.findCouponMerchantVoList(couponIdList, mallTenantEntity,true); List merchantList = couponMerchantVoMap.get(couponId); if (merchantList != null) { 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 0c418c33b..cc239f228 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -1411,15 +1411,15 @@ public class WxMerchantServiceImpl implements WxMerchantService { } @Override - public Map> findCouponMerchantVoList(List couponIds,TenantEntity tenantEntity,boolean hasShop) { + public Map> findCouponMerchantVoList(List couponIds,TenantEntity mallTenantEntity,boolean hasShop) { Map> retMap = new HashMap>(); if (null == couponIds || couponIds.size() <= 0) { return retMap; } - List merchantIds = wxCouponMerchantMapper.findMerchantByProductIds(tenantEntity.getTenantId(), couponIds); + List merchantIds = wxCouponMerchantMapper.findMerchantByProductIds(mallTenantEntity.getTenantId(), couponIds); if(null != merchantIds && merchantIds.size() > 0 ) { TtMerchantPoi poiQ = new TtMerchantPoi(); - poiQ.updateTenantInfo(tenantEntity); + poiQ.updateTenantInfo(mallTenantEntity); poiQ.setIds(merchantIds); List poiList = ttMerchantPoiMapper.findList(poiQ); Map poiMap = new HashMap(); @@ -1433,7 +1433,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { } WxMerchant merchantQ = new WxMerchant(); - merchantQ.updateTenantInfo(tenantEntity); + merchantQ.updateTenantInfo(mallTenantEntity); merchantQ.setIds(merchantIds); List merchantList = wxMerchantMapper.findList(merchantQ); Map merchantMap = new HashMap(); @@ -1455,7 +1455,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { } WxCouponMerchant couponMerchantQ = new WxCouponMerchant(); - couponMerchantQ.updateTenantInfo(tenantEntity); + couponMerchantQ.updateTenantInfo(mallTenantEntity); couponMerchantQ.setStatus(0); couponMerchantQ.setProductIds(couponIds); List couponMerchantList = wxCouponMerchantMapper.findList(couponMerchantQ); @@ -1465,7 +1465,7 @@ public class WxMerchantServiceImpl implements WxMerchantService { Map> merchantShopVoList = null; if (hasShop) { - merchantShopVoList = wxShopService.findMerchantShopVoListMap(tenantEntity,merchantIds); + merchantShopVoList = wxShopService.findMerchantShopVoListMap(mallTenantEntity,merchantIds); } diff --git a/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java b/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java index a9e97702d..d498a3ed7 100644 --- a/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java +++ b/mallinkService/src/main/java/com/iformall/service/util/CouponCacheUtils.java @@ -1,6 +1,7 @@ package com.iformall.service.util; import java.util.List; +import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.springframework.data.redis.core.RedisTemplate; @@ -8,6 +9,7 @@ import org.springframework.data.redis.core.RedisTemplate; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxCoupon; import com.iformall.domain.po.WxCouponChannel; +import com.iformall.domain.po.WxMall; import com.iformall.domain.vo.WxMerchantVo; import com.iformall.enums.EnumCacheKey; import com.iformall.utils.RedisCacheUtils; @@ -50,14 +52,14 @@ public class CouponCacheUtils { RedisCacheUtils.removeCache(template, key); } - public static void setCouponMerchantCache(RedisTemplate template,Long couponId,List merchantList) { + public static void setCouponMerchantCache(RedisTemplate template,Long couponId,Map> merchantList) { String key = "couponMerchant:"+couponId; RedisCacheUtils.cache(template, key, merchantList, 24*3600); } - public static List getCouponMerchantCache(RedisTemplate template,Long couponId) { + public static Map> getCouponMerchantCache(RedisTemplate template,Long couponId) { String key = "couponMerchant:"+couponId; - return RedisCacheUtils.getCacheListObject(template, key,WxMerchantVo.class); + return (Map>) RedisCacheUtils.getCacheListObject(template, key,Map.class); } public static void removeDouyinLivePageCache(RedisTemplate template,String tenantId,Integer targetAd,Integer bussiness) {