From e30f954e61599a3483cb3daa2792e1bdea233f58 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 14 Jan 2022 17:34:14 +0800 Subject: [PATCH] =?UTF-8?q?/=E3=80=81.optimize?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxCampaignController.java | 6 +-- .../controller/WxCouponChannelController.java | 43 +++++++++++++------ .../controller/WxTopicController.java | 21 ++++++++- .../iformall/domain/po/WxCouponChannel.java | 2 + .../java/com/iformall/enums/EnumCacheKey.java | 6 ++- .../impl/WxCouponChannelServiceImpl.java | 39 +++-------------- .../mapper/WxCouponChannelMapper.xml | 6 +++ 7 files changed, 70 insertions(+), 53 deletions(-) diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java index 1ec4d519f..ba1d6f3ee 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCampaignController.java @@ -60,11 +60,11 @@ public class WxCampaignController extends BaseController { wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); wxCampaign.setSortColumns(BaseEntity.SortField.SortNum_ASC, BaseEntity.SortField.CreateTime_ASC); - String key = getTenantInfo().getTenantId(); - PageInfo page = RedisCacheUtils.getCacheObject(redisTemplate, "wxCampaignList:"+key, PageInfo.class); + String key = EnumCacheKey.CAMPAIGN_PAGE_LIST.getMessage() + wxCampaign.getTenantId() + "_" + pageNum + ":"; + PageInfo page = RedisCacheUtils.getCacheObject(redisTemplate, key, PageInfo.class); if (null == page ) { page = wxCampaignService.clistAsPage(wxCampaign, pageNum, pageSize); - RedisCacheUtils.cache(redisTemplate, "wxCampaignList:"+key, page, 100); + RedisCacheUtils.cache(redisTemplate, key, page, 100); } return new ResultData(page); } diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java index 81d6317b5..57627923e 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponChannelController.java @@ -1,10 +1,15 @@ package com.iformall.controller; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.concurrent.TimeUnit; +import com.github.pagehelper.PageHelper; import com.iformall.common.ErrorCode; +import com.iformall.domain.po.WxCampaign; +import com.iformall.enums.*; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -12,6 +17,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.ValueOperations; import org.springframework.web.bind.annotation.*; import com.github.pagehelper.PageInfo; @@ -21,10 +27,6 @@ import com.iformall.domain.po.WxCouponChannel; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.vo.WxCouponChannelVo; -import com.iformall.enums.EnumCouponChannelActivityStatus; -import com.iformall.enums.EnumCouponChannelStatus; -import com.iformall.enums.EnumCouponChannelType; -import com.iformall.enums.EnumCouponStatus; import com.iformall.service.WxCouponChannelService; import com.iformall.service.WxMerchantService; import com.iformall.utils.RedisCacheUtils; @@ -68,8 +70,14 @@ public class WxCouponChannelController extends BaseController { wxCouponChannel.setSortColumns(BaseEntity.SortField.CCUpdateDate_DESC, BaseEntity.SortField.CCId_DESC); } wxCouponChannel.setShowBeginTime(new Date()); - PageInfo page = wxCouponChannelService.newListPageVo(wxCouponChannel, pageNum, pageSize); - filterTimed(wxCouponChannel, page); + + String key = EnumCacheKey.C_INDEX_PAGE_LIST.getMessage() + wxCouponChannel.getTenantId() + "_" + pageNum + ":"; + PageInfo page = RedisCacheUtils.getCacheObject(redisTemplate, key, PageInfo.class); + if (null == page ) { + page = wxCouponChannelService.newListPageVo(wxCouponChannel, pageNum, pageSize); + filterTimed(wxCouponChannel, page); + RedisCacheUtils.cache(redisTemplate, key, page, 100); + } return new ResultData(page); } @@ -126,22 +134,29 @@ public class WxCouponChannelController extends BaseController { wxCouponChannel.updateTenantInfo(getTenantInfo()); wxCouponChannel.setStatus(EnumCouponChannelStatus.STATUS_THROW_IN.getCode()); wxCouponChannel.setSortColumns(BaseEntity.SortField.UpdateDate_DESC, BaseEntity.SortField.Id_DESC); + List targetAds = new ArrayList<>(); + targetAds.add(EnumCouponChannelType.COUPON_CHANNEL_ID_LIST.getCode()); + targetAds.add(EnumCouponChannelType.COUPON_CHANNEL_ID_TIMED.getCode()); + targetAds.add(EnumCouponChannelType.COUPON_CHANNEL_ID_CARD.getCode()); + targetAds.add(EnumCouponChannelType.COUPON_CHANNEL_ID_PRESS.getCode()); + targetAds.add(EnumCouponChannelType.COUPON_CHANNEL_ID_ORDER_GROUP.getCode()); + wxCouponChannel.setTargetAds(targetAds); wxCouponChannel.setShowBeginTime(new Date()); Map map = new HashedMap(); - - String key = wxCouponChannel.getTenantId(); + String key = wxCouponChannel.getTenantId()+"_"; if (null != merchantId) { - key = String.valueOf(merchantId); + key += String.valueOf(merchantId); }else if (null != merchantIds){ - key = merchantIds.toString(); + key += merchantIds.toString(); } - PageInfo page = RedisCacheUtils.getCacheObject(redisTemplate, "merchantCouponList:"+key, PageInfo.class); + key = EnumCacheKey.MERCHANT_COUPON_PAGE_LIST.getMessage() + key + "_" + pageNum + ":"; + PageInfo page = RedisCacheUtils.getCacheObject(redisTemplate, key, PageInfo.class); if (null == page ) { - page = wxCouponChannelService.newListPageVo(wxCouponChannel,pageNum,pageSize); - filterTimed(wxCouponChannel, page); - RedisCacheUtils.cache(redisTemplate, "merchantCouponList:"+key, page, 100); + page = wxCouponChannelService.newListPageVo(wxCouponChannel, pageNum, pageSize); + filterTimed(wxCouponChannel, page); + RedisCacheUtils.cache(redisTemplate, key, page, 100); } if(wxCouponChannel.getMerchantId() != null){ diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxTopicController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxTopicController.java index 5967cdc52..a9afd0b88 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxTopicController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxTopicController.java @@ -3,6 +3,7 @@ package com.iformall.controller; import com.iformall.annotation.RedisCache; import com.iformall.common.ResultData; import com.iformall.domain.po.WxTopic; +import com.iformall.enums.EnumCacheKey; import com.iformall.enums.EnumWxTopicType; import com.iformall.service.WxTopicService; import com.iformall.utils.RedisCacheUtils; @@ -15,6 +16,8 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; +import java.util.List; + @RestController @RequestMapping("/api/topic") @@ -40,7 +43,14 @@ public class WxTopicController extends BaseController { WxTopic wxTopic = new WxTopic(); wxTopic.updateTenantInfo(getTenantInfo()); wxTopic.setTopicType(topicType); - return new ResultData(wxTopicService.show(wxTopic)); + + String key = EnumCacheKey.TOPIC_ONE.getMessage() + wxTopic.getTenantId() + ":"; + WxTopic show = RedisCacheUtils.getCacheObject(redisTemplate, key, WxTopic.class); + if (null == show ) { + show = wxTopicService.show(wxTopic); + RedisCacheUtils.cache(redisTemplate, key, show, 100); + } + return new ResultData(show); } @RedisCache @@ -50,7 +60,14 @@ public class WxTopicController extends BaseController { WxTopic wxTopic = new WxTopic(); wxTopic.updateTenantInfo(getTenantInfo()); wxTopic.setTopicType(EnumWxTopicType.SPECIAL_TOPIC.getCode()); - return new ResultData(wxTopicService.showList(wxTopic)); + + String key = EnumCacheKey.TOPIC_LIST.getMessage() + wxTopic.getTenantId() + ":"; + List topicList = RedisCacheUtils.getCacheObject(redisTemplate, key, List.class); + if (null == topicList ) { + topicList = wxTopicService.showList(wxTopic); + RedisCacheUtils.cache(redisTemplate, key, topicList, 100); + } + return new ResultData(topicList); } @RedisCache diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponChannel.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponChannel.java index bebed23fd..88d725f72 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCouponChannel.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCouponChannel.java @@ -35,6 +35,8 @@ public class WxCouponChannel extends TenantEntity { @TableField(exist = false) protected List couponIds; + @TableField(exist = false) + protected List targetAds; @io.swagger.annotations.ApiModelProperty(value="卡券id",name="couponId") private Long couponId; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java b/mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java index 6d608fd99..3ed79fc03 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCacheKey.java @@ -10,7 +10,11 @@ public enum EnumCacheKey { C_INDEX_PAGE_LIST(0, "couponChannelList_"), COUPON_STOCK(1,"couponStock:couponStock_"), - ACTIVITY_STOCK(2,"activityStock:activityStock_") + ACTIVITY_STOCK(2,"activityStock:activityStock_"), + CAMPAIGN_PAGE_LIST(3,"campaignList_"), + MERCHANT_COUPON_PAGE_LIST(4, "merchantCouponList_"), + TOPIC_ONE(5, "topicOne_"), + TOPIC_LIST(6, "topiList_"), ; private static Map map = new HashMap(); static { 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 4841014b9..69488890a 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -370,40 +370,13 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { */ @Override public PageInfo newListPageVo(WxCouponChannel record, Integer pageIndex, Integer pageSize) { - PageInfo pageInfo; - //仅c端首页走缓存 - if((EnumCouponChannelType.COUPON_CHANNEL_ID_LIST.getCode().equals(record.getTargetAd()) - || EnumCouponChannelType.COUPON_CHANNEL_ID_DOUYIN_LIST.getCode().equals(record.getTargetAd())) - && new Integer(6).equals(pageSize) - && pageIndex.intValue() <=5 - && record.getBusiness() == null) { - - logger.info("listPageCVo.chache"); - String key = EnumCacheKey.C_INDEX_PAGE_LIST.getMessage() +record.getTenantId()+"_" + pageIndex + ":"; - ValueOperations> operations = cdRedisTemplate.opsForValue(); - boolean hasKey = cdRedisTemplate.hasKey(key); - if (hasKey) { - pageInfo = operations.get(key); - logger.info("listPageCVo.chache.get:{}", pageInfo.getList()==null?0:pageInfo.getList().size()); - }else{ - handleCouponIds(record); - if(record.getId() != null && record.getId().equals(-999L)){ - return new PageInfo(); - } - pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponChannelMapper.newfindCList(record)); - handleWxCouponChannelVo(pageInfo.getList(),record); - //插入缓存 - operations.set(key, pageInfo, 100, TimeUnit.SECONDS); - } - }else{ - handleCouponIds(record); - if(record.getId() != null && record.getId().equals(-999L)){ - return new PageInfo(); - } - pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponChannelMapper.newfindCList(record)); - handleWxCouponChannelVo(pageInfo.getList(),record); - } + handleCouponIds(record); + if(record.getId() != null && record.getId().equals(-999L)){ + return new PageInfo(); + } + PageInfo pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCouponChannelMapper.newfindCList(record)); + handleWxCouponChannelVo(pageInfo.getList(),record); return pageInfo; } diff --git a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml index ee1a85d74..1828c3e55 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml @@ -505,6 +505,12 @@ #{couponIdsItem} + + and cc.target_ad in + + #{targetAdsItem} + + order by ${sortColumns}